您的位置:首页 > 其它

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

2015-01-14 14:51 239 查看
首先承认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真心弱爆了!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: