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) で説明した関数を使用します。

参照

概念

IDispatch データ型および構造体

データ型、構造体、列挙型 (コンポーネント オートメーション)