草庐IT

CComSafeArray

全部标签

c++ - 如何将本地 CComSafeArray 返回到 LPSAFEARRAY 输出参数?

我有一个应该通过LPSAFEARRAY*返回SafeArray的COM函数出参数。该函数使用ATL的CComSafeArray创建SafeArray模板类。我天真的实现使用CComSafeArray::Detach()为了将所有权从局部变量转移到输出参数:voidfoo(LPSAFEARRAY*psa){CComSafeArrayret;ret.Add(CComVariant(42));*psa=ret.Detach();}intmain(){CComSafeArraysa;foo(sa.GetSafeArrayPtr());std::cout问题是CComSafeArray::Det