C++ Component
C++组件
这个COM示例是由C++ 和动态模板库(Active Template Library/ATL)实现的。代码段4-13里面是接口ICOMDemo的GetContextID方法的实现。在COM中,你可以通过名为GetObjectContext的API来得到对象所在的上下文,这个方法会返回一个指向IObjectContext的指针。这个上下文对象除了IObjectContext以外还实现了其他几个接口。而为了访问上下文标识,你还需要使用IObjectContextInfo接口。这个接口定义了方法GetContextId,它可以被用于返回上下文标识。
代码段4-13 C++ COM对象的方法——返回上下文ID
STDMETHODIMP CCOMDemo::GetContextID(GUID* context)
{
HRESULT hr;
IObjectContext* pContext;
hr = GetObjectContext(&pContext);
if (hr != S_OK)
{
return hr;
}
if (hr == S_OK)
{
IObjectContextInfo* pContextInfo;
pContext->QueryInterface(&pContextInfo);
pContext->Release();
hr = pContextInfo->GetContextId(context);
pContextInfo->Release();
}
return hr;
}






