debra 发表于 2021-4-25 19:54:26

com参数中的[in][out][retval]含义说明


用于COM自动化组件,主要是用于生成包装类用的

类型表明参数是一个输入参数,所以这个参数不会向外界返回结果

类型表明参数是个输出参数,所以这个参数会向外界返回结果,参数类型只能是指针类型

类型表明参数是个输出参数, retval 必须与 out 联用,并且在参数类表中只有最后一个参数可以被指定为 属性,包装类会用这个参数的类型作为包装类方法的返回值

我们举个例子
我们在 vc 中引入一个COM组件, vc 会分析 com 组件的类型库信息
假设有一个方法说明如下

HRESULT Foo( long lIn, BSTR* bstrOut, BSTR* bstrResult);

那么vc生成的包装类的方法可能是

BSTR Foo(long lIn , BSTR& bstrOut);

我们看到,由于 bstrResult 具有 属性,所以生成的包装类的方法返回值不再是 HRESULT类型,而是 BSTR 类型,这样,包装类就会更加易于使用
页: [1]
查看完整版本: com参数中的[in][out][retval]含义说明