ObjectContext 类的相关信息通常在 comsvcs.h 头文件中找不到,而是在 comsvcs.lib 库中实现的。
以下是一些 ObjectContext 类的常用方法:
#include <comsvcs.h>
class ObjectContext
{
public:
HRESULT CreateInstance(const CLSID& clsid, const IID& iid, void** ppv);
HRESULT CreateInstance(const CLSID& clsid, IUnknown* punkOuter, DWORD dwClsContext, const IID& iid, void** ppv);
HRESULT CreateInstance(const CLSID& clsid, IUnknown* punkOuter, DWORD dwClsContext, const IID& iid, BSTR bstrSession, void** ppv);
HRESULT SetComplete();
HRESULT SetAbort();
HRESULT EnableCommit();
HRESULT DisableCommit();
HRESULT IsCallerInRole(BSTR bstrRole, VARIANT_BOOL* pfIsInRole);
// 其他方法...
ITransaction* GetTransaction();
ISecurityCallContext* GetSecurityCallContext();
IObjectContextInfo* GetObjectContextInfo();
};
请注意,使用 ObjectContext 类的方法时,需要在调用之前进行 COM 初始化(CoInitialize 或 CoInitializeEx)。此外,ObjectContext 主要用于 COM+ 服务环境,因此在一些简单的 COM 程序或者非 COM+ 环境中可能用得较少。
在现代的 Windows 开发中,更常见的是使用 COM+ 服务中的对象上下文(Object Context)来处理事务、安全性等方面的需求。
转载请注明出处:http://www.zyzy.cn/article/detail/25097/Win32 API/Comsvcs.h/ObjectContext