VARIANT および VARIANTARG
[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]
VARIANTARG を使用して、参照によって渡すことはできませんするバリアント型 (Variant) のデータを指定するには DISPPARAMS、およびバリアント型 (Variant) 内で渡される引数について説明します。 バリエーションを指す別のバリエーションの VT_VARIANT を使用して | VT_BYREF vartype、参照先のバリエーションもできません VT_VARIANT の種類 | VT_BYREF。 バリエーション VARIANTARGs できない場合でも値を渡すできます。 バリアント型 (Variant) の次の定義は、OAIDL.H オートメーション ヘッダー ファイルに記載されています。
struct tagVARIANT
{
union
{
struct __tagVARIANT
{
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
union
{
LONGLONG llval; // VT_I8
LONG lVal; // VT_I4
BYTE bVal; // VT_UI1
SHORT iVal; // VT_I2
FLOAT fltVal; // VT_R4
DOUBLE dblVal; // VT_R8
VARIANT_BOOL boolVal; // VT_BOOL
_VARIANT_BOOL bool;
SCODE scode; // VT_ERROR
CY cyVal; // VT_CY
DATE date; // VT_DATE
BSTR bstrVal; // VT_BSTR
IUnknown * punkVal; // VT_UNKNOWN
IDispatch * pdispVal; // VT_DISPATCH
SAFEARRAY * parray; // VT_ARRAY|*
BYTE * pbVal; // VT_BYREF|VT_UI1
SHORT * piVal; // VT_BYREF|VT_I2
LONG * plVal; // VT_BYREF|VT_I4
LONGLONG * pllVal; // VT_BYREF|VT_I8
FLOAT * pfltVal; // VT_BYREF|VT_R4
DOUBLE * pdblVal; // VT_BYREF|VT_R8
VARIANT_BOOL * pboolVal; // VT_BYREF|VT_BOOL
_VARIANT_BOOL * pbool;
SCODE * pscode; // VT_BYREF|VT_ERROR
CY * pcyVal; // VT_BYREF|VT_CY
DATE * pdate; // VT_BYREF|VT_DATE
BSTR * pbstrVal; // VT_BYREF|VT_BSTR
IUnknown ** ppunkVal; // VT_BYREF|VT_UNKNOWN
IDispatch ** ppdispVal; // VT_BYREF|VT_DISPATCH
SAFEARRAY ** pparray; // VT_BYREF|VT_ARRAY
VARIANT * pvarVal; // VT_BYREF|VT_VARIANT
PVOID * byref; // Generic ByRef
CHAR cVal; // VT_I1
USHORT uiVal; // VT_UI2
ULONG ulVal; // VT_UI4
ULONGLONG ullVal; // VT_UI8
INT intVal; // VT_INT
UINT uintVal; // VT_UINT
DECIMAL * pdecVal; // VT_BYREF|VT_DECIMAL
CHAR * pcVal; // VT_BYREF|VT_I1
USHORT * puiVal; // VT_BYREF|VT_UI2
ULONG * pulVal; // VT_BYREF|VT_UI4
ULONGLONG * pullVal; // VT_BYREF|VT_UI8
INT * pintVal; // VT_BYREF|VT_INT
UINT * puintVal; // VT_BYREF|VT_UINT
struct __tagBRECORD
{
PVOID pvRecord;
IRecordInfo *pRecInfo;
} __VARIANT_NAME_4;
} __VARIANT_NAME_3;
} __VARIANT_NAME_2;
DECIMAL decVal;
} __VARIANT_NAME_1;
};
オートメーションはこの種類の操作用の一連の関数提供を VARIANTARGs から抽出の値を簡素化、する (変換および操作関数 (コンポーネント オートメーション) と 書式設定ルーチン (コンポーネント オートメーション) を参照してください)。 これらの関数の使用アプリケーション一貫した強制変換ルールを適用するように勧めします。
vt 値は、共用体の解釈をとおり制御します。
値 |
説明 |
---|---|
VT_EMPTY |
値が指定されていません。 オートメーション メソッドの省略可能な引数が空白の場合、バリアント型 VT_EMPTY の渡しません。 代わりに、DISP_E_PARAMNOTFOUND の値を持つ型 VT_ERROR の VARIANT を渡します。 |
VT_EMPTY | VT_BYREF |
有効ではありません。 |
VT_UI1 |
符号なし、1 バイト文字は bVal の に格納されます。 |
vt_ui1 | VT_BYREF |
符号なし 1 バイト文字への参照が渡されました。 ポインターの値が内に pbVal の 。 |
VT_UI2 |
2 バイトの符号なし整数値は uiVal の に格納されます。 |
vt_ui2 | VT_BYREF |
2 バイトの符号なし整数への参照が渡されました。 ポインターの値が内に puiVal の 。 |
VT_UI4 |
4 バイトの符号なし整数値は ulVal の に格納されます。 |
vt_ui4 | VT_BYREF |
4 バイトの符号なし整数への参照が渡されました。 ポインターの値が内に pulVal の 。 |
VT_UI8 |
8 バイトの符号なし整数値は ullVal の に格納されます。 VT_UI8 は、Windows Me と以前のバージョンでは、または Windows 2000 以前のバージョンで利用できません。 |
vt_ui8 | VT_BYREF |
8 バイトの符号なし整数への参照が渡されました。 ポインターの値が内に pullVal の 。 |
VT_UINT |
符号なし整数値は uintVal の に格納されます。 |
VT_UINT | VT_BYREF |
符号なし整数値への参照が渡されました。 ポインターの値が内に puintVal の 。 |
VT_INT |
整数値は intVal の に格納されます。 |
VT_INT | VT_BYREF |
整数値への参照が渡されました。 ポインターの値が内に pintVal の 。 |
VT_I1 |
1 バイト文字値は cVal の で格納されます。 |
vt_i1 | VT_BYREF |
1 バイト文字への参照が渡されました。 ポインターの値が内に pcVal の 。 |
VT_I2 |
2 バイトの整数値は iVal の に格納されます。 |
vt_i2 | VT_BYREF |
2 バイトの整数への参照が渡されました。 ポインターの値が内に piVal の 。 |
VT_I4 |
4 バイトの整数値は lVal の に格納されます。 |
vt_i4 | VT_BYREF |
4 バイトの整数への参照が渡されました。 ポインターの値が内に plVal の 。 |
VT_I8 |
8 バイトの整数値は llVal の に格納されます。 VT_I8 は Windows Me と以前のバージョンでは、または Windows 2000 以前のバージョンで利用できません。 |
vt_i8 | VT_BYREF |
8 バイトの整数への参照が渡されました。 ポインターの値が内に pllVal の 。 |
VT_R4 |
IEEE 4 バイトの実際値は fltVal の で格納されます。 |
vt_r4 | VT_BYREF |
IEEE 4 バイトの実際値への参照が渡されました。 ポインターの値が内に pfltVal の 。 |
VT_R8 |
8 バイトの IEEE 実際の値は dblVal の で格納されます。 |
vt_r8 | VT_BYREF |
8 バイトの IEEE 実際の値への参照が渡されました。 ポインターの値が内に pdblVal の 。 |
VT_CY |
通貨の値が指定されました。 通貨数値が 64 ビット (8-バイト)、2 の補数整数、4 桁、小数点の左、右に 15 桁での固定小数点数を 10, 000 でスケールとして格納されます。 値は cyVal の で指定します。 |
VT_CY | VT_BYREF |
通貨値への参照が渡されました。 ポインターの値が内に pcyVal の 。 |
VT_BSTR |
文字列が渡されました;bstrVal の で格納されます。 このポインターを入手して 変換および操作関数」に記載されている、BSTR 関数によって解放する必要があります。 |
VT_BSTR | VT_BYREF |
文字列への参照が渡されました。 BSTR * BSTR を指す pbstrVal の です。 参照ポインターする必要があります取得したか、BSTR 関数によって解放。 |
VT_DECIMAL |
10 進数の変数は 96 ビット (12 バイト) の符号なし整数変数 10 の累乗でスケーリングとして格納されます。 VT_DECIMAL は、全体の 16 バイト、バリアント型を使用します。 |
VT_DECIMAL | VT_BYREF |
10 進値への参照が渡されました。 ポインターの値が内に pdecVal です。 |
VT_NULL |
配布に Null 値が指定されました。 (この混同しないで、NULL ポインターで。)Null 値は 3 ステート ロジック、SQL 同様使用されます。 |
VT_NULL | VT_BYREF |
有効ではありません。 |
VT_ERROR |
SCODE が指定されました。 エラーの種類は、scodee の で指定します。 一般に、エラー値に対して操作する必要があります例外を発生させるまたはエラーに応じて、戻り値を反映します。 |
VT_ERROR | VT_BYREF |
SCODE への参照が渡されました。 ポインターの値が内に pscode です。 |
VT_BOOL |
16 ビット Boolean (True または False) の値が指定されました。 0 xFFFF (すべてのビット 1) の値は True を示します。0 (すべてのビット 0) の値は False を示します。 有効なその他の値はありません。 |
VT_BOOL | VT_BYREF |
ブール型 (Boolean) の値への参照。 ポインターをブール型 (Boolean) の値が内に pbool の 。 |
VT_DATE |
日付と時刻を示す値が指定されました。 日付で表される、午前 0 時、1900 年 1 月 1 日が 2. 0 では、倍精度浮動小数点数値としては、1900 年 1 月 2 日は 3. 0 となります。 日付の で値が渡されます。 存在、およびため、1900 年 1 月 1 日 1. 0 に設定を 1900 年 2 月 29日誤って指定いくつかはこれは、ほとんどのスプレッドシート プログラムで使用、同じの番号付けシステムです。 日付変換できます を使用して、MS-DOS の表現を VariantTimeToDosDateTime変換および操作関数 で説明します。 |
VT_DATE | VT_BYREF |
日付への参照が渡されました。 ポインターの値が内に pdate の 。 |
VT_DISPATCH |
オブジェクトへのポインターが指定されました。 ポインターが pdispVal の 。 このオブジェクトは、 の IDispatch を実装するだけ呼ばれます。 オブジェクトは QueryInterface の オブジェクトで呼び出すことにより、他の目的のインターフェイス サポートかどうかを照会できます。 の IDispatch を実装しないオブジェクトは、VT_UNKNOWN を使用して渡す必要があります。 |
VT_DISPATCH | VT_BYREF |
オブジェクトへのポインターを指すポインターが指定されました。 オブジェクトへのポインターが ppdispVal の によって参照される場所に格納します。 |
VT_VARIANT |
無効です。 VARIANTARGs は参照を渡しする必要があります。 |
VT_VARIANT | VT_BYREF |
pvarVal の 別の VARIANTARG へのポインターが渡されます。 この参照先の VARIANTARG、pvarVal、別の VT_VARIANT|VT_BYREF はできません。 この値は参照によって渡される変数の型を変更する機能を許可する言語をサポートする使用できます。 |
VT_UNKNOWN |
punkVal の IUnknown インターフェイスを実装するオブジェクトへのポインターが渡されます。 |
VT_UNKNOWN | VT_BYREF |
ppunkVal の IUnknown インターフェイスへのポインターが渡されます。 インターフェイスへのポインターが ppunkVal の によって参照される場所に格納します。 |
VT_ARRAY | < 何も > |
< 何も > データ型の配列渡されました。 (VT_EMPTY とは VT_ が無効な型 VT_ARRAY と結合する) です。parray の でポインターは、ディメンション、サイズ、および配列のメモリ内の場所を記述する配列記述子、体を指します。 配列の記述子が、直接アクセスしないが代わりには読み取り専用され変更変換および操作関数の https://msdn.microsoft.com/ja-jp/library/ms221236(v=vs.100) で説明した関数を使用します。 |