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。