www.pudn.com > Aggregation.zip > ClientToInner2.cpp
#include#include #include "..\Agrregation\Client\Iface.h" void trace(const char* msg) { cout << "Client: \t" << msg << endl ;} // // Main Function // int main() { CoInitialize(NULL); IY* pIUnknown = NULL; trace("从Component2中获取IUnknown接口.") ; HRESULT hr = ::CoCreateInstance(CLSID_Component2, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)&pIUnknown) ; if (FAILED(hr)) { cout<< "不能创建组件CLSID_Component2" << endl; return -1; } trace("从IUnknown获取IY接口!"); IY* pIY = NULL; hr = pIUnknown->QueryInterface(IID_IY, (void**)&pIY); if (FAILED(hr)) { cout<< "不能从IUnknown获取IY接口!" << endl; return -1; } pIY->Fy(); trace("从IY再次获取IY接口!"); IY* pIY2 = NULL; hr = pIY->QueryInterface(IID_IY,(void**)&pIY2); if (FAILED(hr)) { cout<< "不能从IY再次获取IY接口!" << endl; return -1; } pIY2->Fy(); pIY2->Release(); pIY->Release(); pIUnknown->Release(); CoUninitialize(); return 1; }