关于ActiveX控件的返回值

使用ATL写ActiveX控件时,方法的返回值类型固定为HRESULT。如果需要方法有返回值时,可以使用[out, retval]修饰参数,用脚本调用该方法时,该参数便是方法的返回值。

例如:定义的方法为

HRESULT GetResult([out, retval] BSTR *pVal);

在script里面 

var v = 控件ID.GetResult(); 

就可以返回bstr值。

还有,需要注意返回字符类型时的写法,示例如下:

STDMETHODIMP CReader::GetString(BSTR* str)
{
    
*str = CComBSTR("Hello, String").Copy();

    
return S_OK;
}

  

原文地址:https://www.cnblogs.com/chinadhf/p/1657432.html