发表于:2007-02-19 13:06:00
楼主
E-Mail:zhan826@163.com
MSN:zhan826@hotmail.com
QQ:10167223
在Win32平台上的服务器程序可以组件分类作为注册表的一部分内容,这样允许客户程序更加方便地浏览OPC服务器,目前WinCE平台(一种嵌入式控制器的操作系统)并不提供该功能,直接原因是没有办法移植OPCEnum.exe到WinCE平台上。要让OPC服务器在WinCE平台上支持组件分类的功能,就势必自己重写OPCEnum.exe的程序。
OPCEnum.exe本质上也是一个COM组件,有以下接口:ICatRegister和ICatInformation。其成员函数分别如下:
// ICatRegister
virtual HRESULT STDMETHODCALLTYPE RegisterCategories(
/* [in] */ ULONG cCategories,
/* [size_is][in] */ CATEGORYINFO __RPC_FAR rgCategoryInfo[ ]);
virtual HRESULT STDMETHODCALLTYPE UnRegisterCategories(
/* [in] */ ULONG cCategories,
/* [size_is][in] */ CATID __RPC_FAR rgcatid[ ]);
virtual HRESULT STDMETHODCALLTYPE RegisterClassImplCategories(
/* [in] */ REFCLSID rclsid,
/* [in] */ ULONG cCategories,
/* [size_is][in] */ CATID __RPC_FAR rgcatid[ ]);
virtual HRESULT STDMETHODCALLTYPE UnRegisterClassImplCategories(
/* [in] */ REFCLSID rclsid,
/* [in] */ ULONG cCategories,
/* [size_is][in] */ CATID __RPC_FAR rgcatid[ ]);
virtual HRESULT STDMETHODCALLTYPE RegisterClassReqCategories(
/* [in] */ REFCLSID rclsid,
/* [in] */ ULONG cCategories,
/* [size_is][in] */ CATID __RPC_FAR rgcatid[ ]);
virtual HRESULT STDMETHODCALLTYPE UnRegisterClassReqCategories(
/* [in] */ REFCLSID rclsid,
/* [in] */ ULONG cCategories,
/* [size_is][in] */ CATID __RPC_FAR rgcatid[ ]);
// ICatInformation
virtual HRESULT STDMETHODCALLTYPE EnumCategories(
/* [in] */ LCID lcid,
/* [out] */ IEnumC