⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clienttoinner2.cpp

📁 com 中聚合的情况实现范例
💻 CPP
字号:
#include <iostream.h>
#include <objbase.h>

#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;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -