COM基础扫盲,各种零星记录

来源:互联网 发布:早餐吃什么 知乎 编辑:程序博客网 时间:2024/05/29 18:00

首先承认COM是过时的技术,但程序猿不应该太纠结于这些,养家糊口而已,每个人的情况不一样,求不喷。

1,idl接口描述文件,

<span style="font-size:14px;">[object,uuid(AEE20538-F825-44EB-85F0-B06D28DD4687),dual,nonextensible,helpstring("IQueryFilter 接口"),pointer_default(unique)]interface IQueryFilter : IDispatch{[propget, helpstring("属性 WhereClause")] HRESULT WhereClause([out, retval] BSTR* pVal);[propput, helpstring("属性 WhereClause")] HRESULT WhereClause([in] BSTR newVal);[propget, helpstring("属性 SubFields")] HRESULT SubFields([out, retval] BSTR* pVal);[propput, helpstring("属性 SubFields")] HRESULT SubFields([in] BSTR newVal);[propget, helpstring("属性 SubFieldCount")] HRESULT SubFieldCount([out, retval] LONG* pVal);[propget, helpstring("属性 Field")] HRESULT Field([in]LONG nIndex,[out, retval] BSTR* pVal);[, helpstring("方法 AddField")] HRESULT AddField([in]BSTR newVal,[out,retval]VARIANT_BOOL*pVal);[propget, id(1), helpstring("属性GeometryWkt")] HRESULT GeometryWkt([out, retval] BSTR* pVal);[propput, id(1), helpstring("属性GeometryWkt")] HRESULT GeometryWkt([in] BSTR newVal);[propget, id(2), helpstring("属性GeometryType")] HRESULT GeometryType([out, retval] LONG* pVal);[propput, id(2), helpstring("属性GeometryType")] HRESULT GeometryType([in] LONG newVal);};</span>


 

 

另外有一个接口的函数用到该接口,参数如果写成这样,,,, [in] IQueryFilter* queryFilter,,,,。。。则CoClass类QueryFilter在客户端变为了queryFilter。之前死活找不到原因在哪里,后来改为了,,,, [in] IQueryFilter* queryFilter2,,,,。。。又恢复为QueryFilter,所以说参数影响了组件类的名称,原因目前未知,望知道的朋友给我说一下,idl真心弱爆了!!

0 0