这是接口的2个函数
[helpstring("获得变量值")] virtual HRESULT STDMETHODCALLTYPE GetDataValue(/*[in]*/ BSTR bstrSymble,/*[out, retval]*/ VARIANT* value) = 0;
[helpstring("设置变量值")] virtual HRESULT STDMETHODCALLTYPE SetDataValue(/*[in]*/ BSTR bstrSymble,/*[in]*/ VARIANT value) = 0;
我查了一下需要写了一个类继承此接口并重写了这两个函数,但是调用的时候怎么掉用?VARIANT value这个变量我该用什么参数?value不是接口送过来我需要得到的数据吗?为什么是函数的变量?
[helpstring("获得变量值")] virtual HRESULT STDMETHODCALLTYPE GetDataValue(/*[in]*/ BSTR bstrSymble,/*[out, retval]*/ VARIANT* value) = 0;
[helpstring("设置变量值")] virtual HRESULT STDMETHODCALLTYPE SetDataValue(/*[in]*/ BSTR bstrSymble,/*[in]*/ VARIANT value) = 0;
我查了一下需要写了一个类继承此接口并重写了这两个函数,但是调用的时候怎么掉用?VARIANT value这个变量我该用什么参数?value不是接口送过来我需要得到的数据吗?为什么是函数的变量?
至于。你说的variant value 应该是得到的数据。在你这个函数里面。进行使用的。就和消息一样。消息进来的参数。转换一下你自己就可以使用了。!!!
这是一个。mfc的winsocket 控件的接收例子。
void CTest_UDPDlg::OnDataArrivalWinsock1(long bytesTotal)
{
unsigned char msg[256];
VARIANT type;
VARIANT maxLen;
COleVariant data;
CString str;
type.vt = VT_I4;
type.lVal = VT_BSTR;
maxLen.lVal = bytesTotal;m_ctrlUDPSock.GetData(&data, type, maxLen);
_bstr_t instr;
instr = data;
memcpy(msg, instr.operator const char*(),bytesTotal);
}希望对你有用