HRESULT 为一个可以分为三个域的32位值。
 

自定义HRESULT一般规则:

1、不要将0x0000到0x01FF范围内作为返回码。
2、不要传播FACILITY_ITF错误代码。
3、尽可能使用通用com成功或失败代码。
4、避免定义自己的 HRESULT,可以在函数中使用输出参数。

利用MAKE_HRESULT宏来定一个HRESULT值。


GUID
是一个128位16字节的GUID结构。
MS提供两个工具生成GUID,一个是UUIDGEN。EXE   另一个是 GUIDGEN.EXE。

定义一个GUID:
extern "C"    const   IID      IID_IX  = 
{
      .....
}
声明:
extern "C"   congst   IID      IID_IX;

或者宏

DEFINE_GUID(IID_IX, .....);


将一个GUID做为组件标志符。
IUnknown    *    CoCreateInstance(.....);

com中用以标志组件的GUID被称为类标志符,用CLSID与IID区分。


通过引用传递GUID。

注册表。
CoCreateInstance将利用CLSID作为关键字在注册表中找所需文件名。

com只用了这册表的一个分支:HKEY_CLASSES_ROOT,  其下有一个CLSID关键字,其下列有系统中安装的所有组件的CLSID。
Posted on 2005-11-23 16:30 艾凡赫 阅读(1451) 评论(0)  编辑 收藏 引用 所属分类: COM

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理