CoCreateInstanceEx常用于创建远程组件,因为考虑到远程访问时要在网络上来回传递信息,所以此函数允许一次询多个接口。
CoCreateInstanceEx参数说明
共有如下六个参数,分别为:
REFCLSID
IUnknown
DWORD
CLSCTX_INPROC_SERVER:指明组件与客户端程序运行在同一进程中,组件服务器是一个DLL。如果组件远行在远和计算机上,将在本地启动一个代理服务器程序或代理。
CLSTX_INPROC_HANDLER:指明组件是一个远程的,但有本地客户羰程序的类结构的实现。
CLSCTX_LOCAL_SERVER:指明服务器程序是一个本地的可执行文件;因此,运行在一个单独的里程中。
CLSCTX_REMOTE_SERVER:指明组件服务器运行在不同的远程计算机上,组件是在远程计算机上创建和管理的。
COSERVERINFO
typedef
{
}
ULONG
MULTI_QI
2.2.2. CoCreateInstanceEx调用实例:
HRESULT
COSERVERINFO
MULTI_QI
WCHAR*
TCHAR
ICM* pICM
ICA* pICA
::ZeroMemory(&szBuffer,
si.pwszName
si.dwReserved1
si.pAuthInfo
si.dwReserved2
mqi
mqi
mqi
mqi
mqi
mqi
hr
if
{
}
pICM
pICA
CoCreateInstance的用法
CoCreateInstance
HRESULT __stdcall CoCreateInstance(
dwClsContext值:
CLSCTX_INPROC_SERVER
是在DLL中实现的。
CLSCTX_INPROC_HANDLER
客户希望创建进程中处理器。一个进程中处理器实际上是一个只实现了某个组件一部分的
进程中组件。该组件的其他部分将由本地或远程服务器上的某个进程外组件实现。
CLSCTX_LOCAL_SERVER
客户希望创建一个在同一机器上的另外一个进程中运行的组件。本地服务器由EXE实现的。
CLSCTX_REMOTE_SERVER
客户希望创建一个在远程机器上运行的组件。此标志需要分布式COM正常工作。