HRESULT:区分自定义代码和系统一
HRESULT: distinguish custom code from system one
类似的问题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
是一样的。
如果我的方法 return CUSTOME_CODE
,调用者无法将它与 S_OK
;
区分开来
Wiki 说 HRESULT 包含一些用于区分 Microsoft / 用户定义的代码属性,但我不明白如何设置它。 MSDN 还说该位只是 "reserved".
如何编写不能与系统代码重叠的代码?
描述接口特定 return 代码的 HRESULT 应包含 FACILTY_ITF
设施代码。但是请注意,0x0000 和 0x01FF 之间的 return 值保留给 COM 定义的 FACILITY_ITF
代码。
有关详细信息,请参阅 this link。
类似的问题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
是一样的。
如果我的方法 return CUSTOME_CODE
,调用者无法将它与 S_OK
;
Wiki 说 HRESULT 包含一些用于区分 Microsoft / 用户定义的代码属性,但我不明白如何设置它。 MSDN 还说该位只是 "reserved".
如何编写不能与系统代码重叠的代码?
描述接口特定 return 代码的 HRESULT 应包含 FACILTY_ITF
设施代码。但是请注意,0x0000 和 0x01FF 之间的 return 值保留给 COM 定义的 FACILITY_ITF
代码。
有关详细信息,请参阅 this link。