如何在Excel :: Range中包装传入VARIANT的Excel Range对象

时间:2013-09-07 03:45:49

标签: c++ com

我正在编写一个c ++函数,它接收作为LPVARIANT类型的参数传递的Excel Range。

在该函数中,我想使用#import创建的Excel :: Range类来操作Range以方便使用。如何在Excel :: Range?

中包装作为VARIANT传递的对象

Web上的所有示例似乎都假设从父对象检索范围对象,这些对象已经是Excel :: classes。

1 个答案:

答案 0 :(得分:1)

这样的事情:

VARIANT* pArg = NULL;

// Call Excell to get pArg
//...

// Get Excel::Range from VARIANT 
Excel::RangePtr range;
if (V_VT(pArg) == VT_DISPATCH || V_VT(pArg) == VT_UNKNOWN))
  V_UNKNOWN(pArg)->QueryInterface(&range);