COMで使用するVARIANT配列を生成するコンパクトな実装コードです。 ATL使用が前提で,1次元のみ対応しています。
COMで使用するVARIANT配列を生成するコンパクトな実装コードです。 ATL使用が前提で,1次元のみ対応しています。
templatestatic HRESULT createVariantArray(T* value, int count, VARIANT*& retval) { SAFEARRAYBOUND sab = { count, 0 }; // 0 〜 count-1 CComSafeArray sarray(sab); for(int n = 0; n < count; ++n) { sarray.Add(*value++); } return CComVariant(sarray).Detach(retval); }