关于Com接口IDL的说明

来源:互联网 发布:常州单片机开发 编辑:程序博客网 时间:2024/05/29 08:45

  我们调用Com接口传入的参数可以被Com服务器修改返回,这个时候应在描述接口时使用out关键字,例如

HRESULT GetName([in,out] BSTR* bstrName);

假如没有out关键字,Com服务器修改了bstrName指向的字符串

1.Com服务器为进程内组件,则Com客户端可以看到bstrName被修改,

2.若Com服务器为进程外组件,则Com客户端bstrName不会被修改

 

加入没有in关键字,且为进程外组件,则Com服务器看不到bstrName指向的真实数据

 

另外我觉察到在描述出接口时,不管是否有关键字out,且Com组件为何种进程模型,若Com客户端修改了bstrName指向的字符串,则Com组件可以看到bstrName被修改

原创粉丝点击