关于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;
}
{
*str = CComBSTR("Hello, String").Copy();
return S_OK;
}