Create  Edit  Diff  FrontPage  Index  Search  Changes  Login

SAFEARRAY

VBの配列

多次元配列での注意事項

0開始か1開始か

自動変数としてのSAFEARRAY

in引数に対するSAFEARRAYであれば、自動変数を利用することができる。

なぜならば、inは呼び出し元がメモリーアサインの責任を持っているからである。また、in,out引数として利用することも可能である。なぜならば、SafeArrayDestroy APIに対して、自動変数に割り当てられていることを知らせることができるからである。

以下にサンプルコードを示す。

GUID guid;
CLSIDFromString(L"{xxxxxx-xx...}", &guid);
SAFEARRAY sa = {
   1, FADF_AUTO | FADF_FIXEDSIZE, 1, 0, &guid, { sizeof(GUID), 0 }
};
VARIANT v, vData;
VariantInit(&v);
v.vt = VT_ARRAY | VT_UI1;
v.parray = &sa;
obj->call(v);
FADF_AUTO
スタックに割り当てられた(自動変数である)SAFEARRAYを示す
FADF_FIXEDSIZE
伸張不可能なSAFEARRAYを示す
  • 詳細については、MSDNのSAFEARRAY Data Typeの項を参照
Last modified:2003/10/15 11:14:35
Keyword(s):
References: