I am developing some COM interfaces with IDL files. Some interface methods return HRESULT, but I checked the MIDL link on MSDN , there is no HRESULT hint there. So where can I find the official definition of this data type?
Update
Thanks to Shog9, I found it in wtypes.idl . I insert it here for another view:
...
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
cpp_quote("#ifdef __midl")
typedef LONG HRESULT;
...
However, when I use DWORD or LONG explicitly in my IDL files, the MIDL compiler reports an error:
"error MIDL2269: procedures in an object interface must return an HRESULT"
Kind of funny ...
source
share