关于Com接口IDL的说明

本文讨论了COM接口中参数传递机制,特别是如何通过使用'in'和'out'关键字来确保跨进程组件间正确地修改和读取BSTR类型的参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  我们调用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被修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值