我正在开发一些与IDL文件的COM接口。一些接口方法返回HRESULT,但是我检查了MSDN上的MIDL语言参考,没有HRESULT的线索。那么,我在哪里可以找到这种数据类型的官方定义呢?
更新
多亏了Shog9,我在wtypes.idl找到了它。我把它贴在这里供别人看:
...
cpp_quote("#ifndef _HRESULT_DEFINED")
cpp_quote("#define _HRESULT_DEFINED")
#if defined(_STRICT_HRESULT)
typedef struct _HRESULT_STRUCT {
DWORD Data1;
} HRESULT_STRUCT, *PHRESULT_STRUCT;
typedef PHRESULT_STRUCT HRESULT;
#else // defined(_STRICT_HRESULT)
cpp_quote("#ifdef __midl")
typedef LONG HRESULT;
...但是,当我在IDL文件中使用DWORD或LONG显式时,MIDL编译器将报告一个错误:
"error MIDL2269: procedures in an object interface must return an HRESULT" 有点可笑..。
发布于 2010-08-10 15:55:03
任何实用的.idl文件都应该从
import "oaidl.idl";
import "ocidl.idl";宣布了基本类型。比如HRESULT和变体。等等。
https://stackoverflow.com/questions/3450821
复制相似问题