SafeArray

提供: RAD Studio
移動先: 案内検索

Delphi または RIDL の構文の利用 への移動


COM では、配列が、SafeArray という特殊なデータ型を介して渡されることを必須としています。それを行うためには、特殊 COM 関数を呼び出すことで SafeArray を作成および破壊でき、1 つの SafeArray 内のすべての要素は、有効なオートメーション互換型でなければなりません。Delphi コンパイラには、COM SafeArray の情報を組み込んであり、SaveArray を作成、コピー、破壊するための COM API を自動的に呼び出します。

Delphi:

 procedure HighLightLines(Lines: PSafeArray);
C++:
HRESULT STDMETHODCALLTYPE HighlightLines(LPSAFEARRAY Lines)

タイプ ライブラリ エディタでは、 SafeArray は要素の型を指定しなければなりません。たとえば、テキスト ページからの次の行は、Interger 型要素の SafeArray をパラメータとするメソッドを宣言しています。

 HRESULT _stdcall HighlightLines(SAFEARRAY(long) Lines);
メモ: SafeArray 型をタイプ ライブラリ エディタで宣言する際、要素の型を指定しなければなりませんが、生成された _TLB ユニット内での宣言では、要素の型が指定されていません。

関連項目