用MapX写程序时,有些方法的输入参数和返回值都是VARIANT类型,在VB中用dim pvas variant就可以了,而在Vc中稍微麻烦一点,不过稍微尝试一二,就会发现不过如此了。在vc中主要用COleVariant对象定义variant变量,以下面的例子为说明:
例如:要取得pdataset中某一行某一列的属性值,pfeature,pfield分别表示行和列,要读取某一个值,该值为String类型变量。
COleVariantvRow;
COleVariantvCol;
COleVariantvVal;
vRow.vt=VT_DISPATCH;
vRow.pdispVal=pfeature.m_lpDispatch;
vRow.pdispVal->AddRef();
vCol.vt=VT_DISPATCH;
vCol.pdispVal=pfield.m_lpDispatch;
vCol.pdispVal->AddRef();
vVal=pdataset.GetValue(vRow,vCol);//COleVariant(7L));
vVal.ChangeType(VT_BSTR);
m_strfeaturevalue=vVal.bstrVal;
m_edtfeaturevalue.SetWindowText(m_strfeaturevalue);