类似问题was asked before,但我还没有找到答案。
据我了解,为了制作自定义HRESULT代码,我创建了一个.mc
文件,我在其中描述代码,然后编译它并获得.h
文件。但我无法避免如何防止可能与系统重叠。
示例:
LanguageNames=(English=0x409:MSG00409)
MessageId = 0x0
Severity = Success
Facility = Application
SymbolicName = CUSTOME_CODE
Language=English
Cusome message
.
生成
#define CUSTOME_CODE 0x00000000L
实际上与S_OK
相同。
如果我从我的方法返回CUSTOME_CODE
,则来电者无法将其与S_OK
区分开来;
Wiki说HRESULT包含一些用于区分Microsoft /用户定义代码属性的内容,但我不了解如何设置它。此外,MSDN表示该位只是"保留"。
如何制作不能与系统重叠的代码?
答案 0 :(得分:3)
描述特定于接口的返回码的HRESULT应包含FACILTY_ITF
设施代码。但请注意,0x0000和0x01FF之间的返回值是为COM定义的FACILITY_ITF
代码保留的。
有关详细信息,请参阅this链接。