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。