<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