IDL文件模版

<span style="font-family: Arial, Helvetica, sans-serif;">上周接触了COM,并且自己照着别人的代码仿照了几个COM,记录一下IDL文件的规则,做一个模版方便以后再写</span>
<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
// complete IXXX.idl file
import "oaidl.idl";
import "ocidl.idl";

cpp_quote("#ifndef _Included_IXXX_idl_")
cpp_quote("#define _Included_IXXX_idl_")

cpp_quote("#endif // _Included_IXXX_idl_")

// Interface IXXX
[
    object,
    uuid(......),
    helpstring("IXXX Interface"),
    pointer_default(unique),
]

interface ICmrCaContextMenuModel : IUnknown
{
    HRESULT FunctionName(
        [in] TypeName in_parameter,
        [out, retval] TypeName out_and_retval_parameter
    );
    
    ......
}

[
    uuid(......)
]

library YYYYLib
{  
    [
        uuid(......)
    ]
    
    coclass CYYYY
    { 
        interface IYYYY;
    }
};

除此之外,还要设置一下工程属性,否则MIDL生成的.h文件将会带有_i,如果在其他COM中包含该COM,会导致无法找到.h文件

Project->Setting->MIDL->Output->Header File->去掉_i

或者

右击工程->Properties->MIDL->Output->Header File->去掉_i

猜你喜欢

转载自blog.csdn.net/ANvDbg/article/details/42640303