COleVariant クラスCOleVariant Class

VARIANT データ型をカプセル化します。Encapsulates the VARIANT data type.

構文Syntax

class COleVariant : public tagVARIANT

メンバーMembers

パブリック コンストラクターPublic Constructors

名前Name 説明Description
COleVariant:: COleVariantCOleVariant::COleVariant COleVariant オブジェクトを構築します。Constructs a COleVariant object.

パブリック メソッドPublic Methods

名前Name 説明Description
COleVariant:: AttachCOleVariant::Attach バリアントをにCOleVariant結び付けます。Attaches a VARIANT to a COleVariant.
COleVariant:: ChangeTypeCOleVariant::ChangeType このCOleVariantオブジェクトのバリアント型を変更します。Changes the variant type of this COleVariant object.
COleVariant:: ClearCOleVariant::Clear このCOleVariantオブジェクトをクリアします。Clears this COleVariant object.
COleVariant::D etachCOleVariant::Detach からCOleVariant variant を切り離し、バリアントを返します。Detaches a VARIANT from a COleVariant and returns the VARIANT.
COleVariant:: GetByteArrayFromVariantArrayCOleVariant::GetByteArrayFromVariantArray 既存の variant 配列からバイト配列を取得します。Retrieves a byte array from an existing variant array.
COleVariant:: SetStringCOleVariant::SetString 文字列を特定の型 (通常は ANSI) に設定します。Sets the string to a particular type, typically ANSI.

パブリック演算子Public Operators

名前Name 説明Description
COleVariant:: operator LPCVARIANTCOleVariant::operator LPCVARIANT COleVariantLPCVARIANTをに変換します。Converts a COleVariant value into an LPCVARIANT.
COleVariant:: operator LPVARIANTCOleVariant::operator LPVARIANT COleVariant オブジェクトLPVARIANTをに変換します。Converts a COleVariant object into an LPVARIANT.
COleVariant:: operator =COleVariant::operator = 値をCOleVariantコピーします。Copies a COleVariant value.
COleVariant:: operator = =COleVariant::operator == 2つCOleVariantの値を比較します。Compares two COleVariant values.
COleVariant:: operator <、 <>>COleVariant::operator <<, >> CArchive COleVariant値をまたはCArchive CDumpContextに出力し、からオブジェクトを入力します。 COleVariantOutputs a COleVariant value to CArchive or CDumpContext and inputs a COleVariant object from CArchive.

RemarksRemarks

このデータ型は、OLE オートメーションで使用されます。This data type is used in OLE automation. 具体的には、 Dispparams構造体には、VARIANT 構造体の配列へのポインターが含まれています。Specifically, the DISPPARAMS structure contains a pointer to an array of VARIANT structures. 構造DISPPARAMS体は、パラメーターをIDispatch:: Invokeに渡すために使用されます。A DISPPARAMS structure is used to pass parameters to IDispatch::Invoke.

注意

このクラスは、 VARIANT構造体から派生します。This class is derived from the VARIANT structure. これCOleVariantは、を呼び出すVARIANTパラメーターでを渡すことができ、 VARIANT構造体のデータメンバーがのCOleVariantアクセス可能なデータメンバーであることを意味します。This means you can pass a COleVariant in a parameter that calls for a VARIANT and that the data members of the VARIANT structure are accessible data members of COleVariant.

2つの関連する MFC クラスCOleCurrencyおよびCOleDateTimeは、variant データ型VT_CYCURRENCY () とVT_DATEDATE () をカプセル化します。The two related MFC classes COleCurrency and COleDateTime encapsulate the variant data types CURRENCY ( VT_CY) and DATE ( VT_DATE). COleVariant クラスは、DAO クラスで広く使用されています。このクラスの一般的な使用方法については、CDaoQueryDefCDaoRecordset などのクラスを参照してください。The COleVariant class is used extensively in the DAO classes; see these classes for typical usage of this class, for example CDaoQueryDef and CDaoRecordset.

詳細については、Windows SDK の「 VARIANT」、「 CURRENCY」、「 Dispparams」、および「 IDispatch:: Invokeエントリ」を参照してください。For more information, see the VARIANT, CURRENCY, DISPPARAMS, and IDispatch::Invoke entries in the Windows SDK.

クラスのCOleVariant詳細および ole オートメーションでの使用方法については、記事「オートメーション」の「ole オートメーションでのパラメーターの引き渡し」を参照してください。For more information on the COleVariant class and its use in OLE automation, see "Passing Parameters in OLE Automation" in the article Automation.

継承階層Inheritance Hierarchy

tagVARIANT

COleVariant

必要条件Requirements

ヘッダー : afxdisp.hHeader: afxdisp.h

COleVariant:: AttachCOleVariant::Attach

この関数を呼び出して、指定したバリアントオブジェクトをCOleVariant現在のオブジェクトにアタッチします。Call this function to attach the given VARIANT object to the current COleVariant object.

void Attach(VARIANT& varSrc);

パラメーターParameters

varSrcvarSrc
VARIANT 現在COleVariantのオブジェクトにアタッチする既存のオブジェクト。An existing VARIANT object to be attached to the current COleVariant object.

RemarksRemarks

この関数は、 Varsrcの VARTYPE を VT_EMPTY に設定します。This function sets the VARTYPE of varSrc to VT_EMPTY.

詳細については、Windows SDK のバリアントvarenumのエントリを参照してください。For more information, see the VARIANT and VARENUM entries in the Windows SDK.

COleVariant:: COleVariantCOleVariant::COleVariant

COleVariant オブジェクトを構築します。Constructs a COleVariant object.

COleVariant();
COleVariant(const VARIANT& varSrc);
COleVariant(const COleVariant& varSrc);
COleVariant(LPCVARIANT pSrc);
COleVariant(LPCTSTR lpszSrc);
COleVariant(LPCTSTR lpszSrc, VARTYPE vtSrc);
COleVariant(CString& strSrc);
COleVariant(BYTE nSrc);
COleVariant(short nSrc, VARTYPE vtSrc = VT_I2);
COleVariant(long lSrc,VARTYPE vtSrc = VT_I4);
COleVariant(const COleCurrency& curSrc);
COleVariant(float fltSrc);
COleVariant(double dblSrc);
COleVariant(const COleDateTime& timeSrc);
COleVariant(const CByteArray& arrSrc);
COleVariant(const CLongBinary& lbSrc);
COleVariant(LPCITEMIDLIST pidl);

パラメーターParameters

varSrcvarSrc
新しいVARIANT COleVariant オブジェクトにコピーされる既存のCOleVariantまたはオブジェクト。An existing COleVariant or VARIANT object to be copied into the new COleVariant object.

.PsrcpSrc
VARIANT 新しいCOleVariantオブジェクトにコピーされるオブジェクトへのポインター。A pointer to a VARIANT object that will be copied into the new COleVariant object.

lpszSrclpszSrc
新しいCOleVariantオブジェクトにコピーされる null で終わる文字列。A null-terminated string to be copied into the new COleVariant object.

vtSrcvtSrc
VARTYPE 新しいCOleVariantオブジェクトの。The VARTYPE for the new COleVariant object.

strSrcstrSrc
新しいCOleVariantオブジェクトにコピーされるCStringオブジェクト。A CString object to be copied into the new COleVariant object.

nSrclsrc新しいCOleVariantオブジェクトにコピーする数値。nSrc, lSrc A numerical value to be copied into the new COleVariant object.

vtSrcvtSrc
VARTYPE 新しいCOleVariantオブジェクトの。The VARTYPE for the new COleVariant object.

curSrccurSrc
新しいCOleVariantオブジェクトにコピーされるCOleCurrencyオブジェクト。A COleCurrency object to be copied into the new COleVariant object.

FltsrcdblsrcfltSrc, dblSrc
新しい COleVariant オブジェクトにコピーされる数値。A numerical value to be copied into the new COleVariant object.

timeSrctimeSrc
新しいCOleVariantオブジェクトにコピーされるCOleDateTimeオブジェクト。A COleDateTime object to be copied into the new COleVariant object.

arrSrcarrSrc
新しいCOleVariantオブジェクトにコピーされるCByteArrayオブジェクト。A CByteArray object to be copied into the new COleVariant object.

lbSrclbSrc
新しいCOleVariantオブジェクトにコピーされるCLongBinaryオブジェクト。A CLongBinary object to be copied into the new COleVariant object.

pidlpidl
新しいCOleVariantオブジェクトにコピーされるitemidlist構造体へのポインター。A pointer to a ITEMIDLIST structure to be copied into the new COleVariant object.

RemarksRemarks

これらのすべてのコンストラクター COleVariantは、指定された値に初期化された新しいオブジェクトを作成します。All these constructors create new COleVariant objects initialized to the specified value. これらの各コンストラクターの簡単な説明を次に示します。A brief description of each of these constructors follows.

  • COleVariant ()COleVariantのオブジェクト VT_EMPTY を作成します。COleVariant( ) Creates an empty COleVariant object, VT_EMPTY.

  • COleVariant ( varsrc ) 既存VARIANTのまたはCOleVariantオブジェクトをコピーします。COleVariant( varSrc ) Copies an existing VARIANT or COleVariant object. バリアント型は保持されます。The variant type is retained.

  • COleVariant ( psrc ) 既存VARIANTのまたはCOleVariantオブジェクトをコピーします。COleVariant( pSrc ) Copies an existing VARIANT or COleVariant object. バリアント型は保持されます。The variant type is retained.

  • COleVariant ( lpszsrc ) 新しいオブジェクト VT_BSTR (UNICODE) に文字列をコピーします。COleVariant( lpszSrc ) Copies a string into the new object, VT_BSTR (UNICODE).

  • COleVariant ( lpszsrc vtsrc ) 新しいオブジェクトに文字列をコピーします。COleVariant( lpszSrc , vtSrc ) Copies a string into the new object. Vtsrcのパラメーターには、VT_BSTR (UNICODE) または VT_BSTRT (ANSI) を指定する必要があります。The parameter vtSrc must be VT_BSTR (UNICODE) or VT_BSTRT (ANSI).

  • COleVariant ( strsrc ) 新しいオブジェクト VT_BSTR (UNICODE) に文字列をコピーします。COleVariant( strSrc ) Copies a string into the new object, VT_BSTR (UNICODE).

  • COleVariant ( nSrc ) 新しいオブジェクト VT_UI1 に8ビットの整数をコピーします。COleVariant( nSrc ) Copies an 8-bit integer into the new object, VT_UI1.

  • COleVariant ( nSrc vtsrc ) 新しいオブジェクトに16ビット整数 (またはブール値) をコピーします。COleVariant( nSrc , vtSrc ) Copies a 16-bit integer (or Boolean value) into the new object. パラメーター Vtsrcは、VT_I2 または VT_BOOL である必要があります。The parameter vtSrc must be VT_I2 or VT_BOOL.

  • COleVariant ( lsrc vtsrc ) 32ビット整数 (または SCODE 値) を新しいオブジェクトにコピーします。COleVariant( lSrc , vtSrc ) Copies a 32-bit integer (or SCODE value) into the new object. パラメーター Vtsrcは、VT_I4、VT_ERROR、または VT_BOOL である必要があります。The parameter vtSrc must be VT_I4, VT_ERROR, or VT_BOOL.

  • COleVariant ( cursrc ) 新しいオブジェクトCOleCurrency VT_CY に値をコピーします。COleVariant( curSrc ) Copies a COleCurrency value into the new object, VT_CY.

  • COleVariant ( fltsrc ) 新しいオブジェクト VT_R4 に32ビット浮動小数点値をコピーします。COleVariant( fltSrc ) Copies a 32-bit floating-point value into the new object, VT_R4.

  • COleVariant ( dblsrc ) 新しいオブジェクト VT_R8 に64ビット浮動小数点値をコピーします。COleVariant( dblSrc ) Copies a 64-bit floating-point value into the new object, VT_R8.

  • COleVariant ( timesrc ) 新しいオブジェクトCOleDateTime VT_DATE に値をコピーします。COleVariant( timeSrc ) Copies a COleDateTime value into the new object, VT_DATE.

  • COleVariant ( arrsrc ) 新しいオブジェクト VT_EMPTY にオブジェクトをコピーします。CByteArrayCOleVariant( arrSrc ) Copies a CByteArray object into the new object, VT_EMPTY.

  • COleVariant ( lbSrc ) 新しいオブジェクト VT_EMPTY にオブジェクトをコピーします。CLongBinaryCOleVariant( lbSrc ) Copies a CLongBinary object into the new object, VT_EMPTY.

SCODE の詳細については、「Windows SDK のCOM エラーコードの構造」を参照してください。For more information on SCODE, see Structure of COM Error Codes in the Windows SDK.

COleVariant:: ChangeTypeCOleVariant::ChangeType

このCOleVariantオブジェクトのバリアント値の型を変換します。Converts the type of variant value in this COleVariant object.

void ChangeType(VARTYPE vartype, LPVARIANT pSrc = NULL);

パラメーターParameters

vartypevartype
このCOleVariantオブジェクトの VARTYPE。The VARTYPE for this COleVariant object.

.PsrcpSrc
変換するバリアントオブジェクトへのポインター。A pointer to the VARIANT object to be converted. この値が NULL の場合、 COleVariantこのオブジェクトは変換のソースとして使用されます。If this value is NULL, this COleVariant object is used as the source for the conversion.

RemarksRemarks

詳細については、Windows SDK の「 VARIANT」、「 varenum」、および「 VariantChangeType 」の各エントリを参照してください。For more information, see the VARIANT, VARENUM, and VariantChangeType entries in the Windows SDK.

COleVariant:: ClearCOleVariant::Clear

VARIANT を消去します。Clears the VARIANT.

void Clear();

RemarksRemarks

これにより、このオブジェクトの VARTYPE が VT_EMPTY に設定されます。This sets the VARTYPE for this object to VT_EMPTY. デストラクター COleVariantは、この関数を呼び出します。The COleVariant destructor calls this function.

詳細については、 VARIANTWindows SDK の、VARTYPE VariantClear 、およびエントリを参照してください。For more information, see the VARIANT, VARTYPE, and VariantClear entries in the Windows SDK.

COleVariant::D etachCOleVariant::Detach

基になるバリアントオブジェクトをこのCOleVariantオブジェクトからデタッチします。Detaches the underlying VARIANT object from this COleVariant object.

VARIANT Detach();

RemarksRemarks

この関数は、このCOleVariantオブジェクトの VARTYPE を VT_EMPTY に設定します。This function sets the VARTYPE for this COleVariant object to VT_EMPTY.

注意

を呼び出しDetachた後、結果VARIANTの構造体に対しVariantClearてを呼び出すのは呼び出し元の責任です。After calling Detach, it is the caller's responsibility to call VariantClear on the resulting VARIANT structure.

詳細については、Windows SDK の「 VARIANT」、「 varenum」、および「 VariantClear 」の各エントリを参照してください。For more information, see the VARIANT, VARENUM, and VariantClear entries in the Windows SDK.

COleVariant:: GetByteArrayFromVariantArrayCOleVariant::GetByteArrayFromVariantArray

既存の variant 配列からバイト配列を取得します。Retrieves a byte array from an existing variant array

void GetByteArrayFromVariantArray(CByteArray& bytes);

パラメーターParameters

メモリbytes
既存のCByteArrayオブジェクトへの参照。A reference to an existing CByteArray object.

COleVariant:: operator LPCVARIANTCOleVariant::operator LPCVARIANT

このキャスト演算子は、 VARIANTこのCOleVariantオブジェクトから値がコピーされる構造体を返します。This casting operator returns a VARIANT structure whose value is copied from this COleVariant object.

operator LPCVARIANT() const;

RemarksRemarks

COleVariant:: operator LPVARIANTCOleVariant::operator LPVARIANT

このキャスト演算子を呼び出して、このVARIANT COleVariantオブジェクトの基になる構造体にアクセスします。Call this casting operator to access the underlying VARIANT structure for this COleVariant object.

operator LPVARIANT();

RemarksRemarks

注意事項

この関数によってVARIANT返されるポインターによってアクセスされる構造体の値を変更COleVariantすると、このオブジェクトの値が変更されます。Changing the value in the VARIANT structure accessed by the pointer returned by this function will change the value of this COleVariant object.

COleVariant:: operator =COleVariant::operator =

これらのオーバーロードされた代入演算子は、 COleVariant source 値をこのオブジェクトにコピーします。These overloaded assignment operators copy the source value into this COleVariant object.

const COleVariant& operator=(const VARIANT& varSrc);
const COleVariant& operator=(LPCVARIANT pSrc);
const COleVariant& operator=(const COleVariant& varSrc);
const COleVariant& operator=(const LPCTSTR lpszSrc);
const COleVariant& operator=(const CString& strSrc);
const COleVariant& operator=(BYTE nSrc);
const COleVariant& operator=(short nSrc);
const COleVariant& operator=(long lSrc);
const COleVariant& operator=(const COleCurrency& curSrc);
const COleVariant& operator=(float fltSrc);
const COleVariant& operator=(double dblSrc);
const COleVariant& operator=(const COleDateTime& dateSrc);
const COleVariant& operator=(const CByteArray& arrSrc);
const COleVariant& operator=(const CLongBinary& lbSrc);

RemarksRemarks

各演算子の簡単な説明を次に示します。A brief description of each operator follows:

  • operator = ( varsrc ) 既存のバリアントまたはCOleVariantオブジェクトをこのオブジェクトにコピーします。operator =( varSrc ) Copies an existing VARIANT or COleVariant object into this object.

  • operator = ( psrc ) Psrcによってアクセスされるバリアントオブジェクトをこのオブジェクトにコピーします。operator =( pSrc ) Copies the VARIANT object accessed by pSrc into this object.

  • operator = ( lpszsrc ) Null で終わる文字列をこのオブジェクトにコピーし、VARTYPE を VT_BSTR に設定します。operator =( lpszSrc ) Copies a null-terminated string into this object and sets the VARTYPE to VT_BSTR.

  • operator = ( strsrc ) CStringオブジェクトをこのオブジェクトにコピーし、VARTYPE を VT_BSTR に設定します。operator =( strSrc ) Copies a CString object into this object and sets the VARTYPE to VT_BSTR.

  • operator = ( nSrc ) 8ビットまたは16ビットの整数値をこのオブジェクトにコピーします。operator =( nSrc ) Copies an 8- or 16-bit integer value into this object. NSrcが8ビット値の場合、このの VARTYPE は VT_UI1 に設定されます。If nSrc is an 8-bit value, the VARTYPE of this is set to VT_UI1. NSrcが16ビット値で、このの VARTYPE が VT_BOOL の場合、この値は保持されます。それ以外の場合は、VT_I2 に設定されます。If nSrc is a 16-bit value and the VARTYPE of this is VT_BOOL, it is kept; otherwise, it is set to VT_I2.

  • operator = ( lsrc ) 32ビット整数値をこのオブジェクトにコピーします。operator =( lSrc ) Copies a 32-bit integer value into this object. このの VARTYPE が VT_ERROR の場合は、保持されます。それ以外の場合は、VT_I4 に設定されます。If the VARTYPE of this is VT_ERROR, it is kept; otherwise, it is set to VT_I4.

  • operator = ( cursrc ) COleCurrencyオブジェクトをこのオブジェクトにコピーし、VARTYPE を VT_CY に設定します。operator =( curSrc ) Copies a COleCurrency object into this object and sets the VARTYPE to VT_CY.

  • operator = ( fltsrc ) 32ビットの浮動小数点値をこのオブジェクトにコピーし、VARTYPE を VT_R4 に設定します。operator =( fltSrc ) Copies a 32-bit floating-point value into this object and sets the VARTYPE to VT_R4.

  • operator = ( dblsrc ) 64ビットの浮動小数点値をこのオブジェクトにコピーし、VARTYPE を VT_R8 に設定します。operator =( dblSrc ) Copies a 64-bit floating-point value into this object and sets the VARTYPE to VT_R8.

  • operator = ( ? rc ) COleDateTimeオブジェクトをこのオブジェクトにコピーし、VARTYPE を VT_DATE に設定します。operator =( dateSrc ) Copies a COleDateTime object into this object and sets the VARTYPE to VT_DATE.

  • operator = ( arrsrc ) CByteArrayオブジェクトをこのCOleVariantオブジェクトにコピーします。operator =( arrSrc ) Copies a CByteArray object into this COleVariant object.

  • operator = ( lbSrc ) CLongBinaryオブジェクトをこのCOleVariantオブジェクトにコピーします。operator =( lbSrc ) Copies a CLongBinary object into this COleVariant object.

詳細については、Windows SDK のバリアントvarenumのエントリを参照してください。For more information, see the VARIANT and VARENUM entries in the Windows SDK.

COleVariant:: operator = =COleVariant::operator ==

この演算子は、2つのバリアント型の値を比較し、等しい場合は0以外の値を返します。それ以外の場合は0です。This operator compares two variant values and returns nonzero if they are equal; otherwise 0.

BOOL operator==(const VARIANT& varSrc) const;
BOOL operator==(LPCVARIANT pSrc) const;

COleVariant:: operator <、 <>>COleVariant::operator <<, >>

CArchive COleVariant値をまたはCArchive CdumpContextに出力し、からオブジェクトを入力します。 COleVariantOutputs a COleVariant value to CArchive or CdumpContext and inputs a COleVariant object from CArchive.

friend CDumpContext& AFXAPI operator<<(
    CDumpContext& dc,
    OleVariant varSrc);

friend CArchive& AFXAPI operator<<(
    CArchive& ar,
    COleVariant varSrc);

friend CArchive& AFXAPI operator>>(
    CArchive& ar,
    COleVariant& varSrc);

RemarksRemarks

挿入COleVariant (<) 演算子は、診断ダンプをサポートし、アーカイブに保存します。<The COleVariant insertion (<<) operator supports diagnostic dumping and storing to an archive. 抽出 ( >> ) 演算子は、アーカイブからの読み込みをサポートしています。The extraction (>>) operator supports loading from an archive.

COleVariant:: SetStringCOleVariant::SetString

文字列を特定の型に設定します。Sets the string to a particular type.

void SetString(LPCTSTR lpszSrc, VARTYPE vtSrc);

パラメーターParameters

lpszSrclpszSrc
新しいCOleVariantオブジェクトにコピーされる null で終わる文字列。A null-terminated string to be copied into the new COleVariant object.

VtSrcVtSrc
新しいCOleVariantオブジェクトの VARTYPE。The VARTYPE for the new COleVariant object.

RemarksRemarks

Vtsrcのパラメーターには、VT_BSTR (UNICODE) または VT_BSTRT (ANSI) を指定する必要があります。The parameter vtSrc must be VT_BSTR (UNICODE) or VT_BSTRT (ANSI). SetStringは通常、文字列または文字列ポインターパラメーターを持つCOleVariant:: COleVariantコンストラクターの既定値で、VARTYPE が UNICODE ではないため、文字列を ANSI に設定するために使用されます。SetString is typically used to set strings to ANSI, since the default for the COleVariant::COleVariant constructor with a string or string pointer parameter and no VARTYPE is UNICODE.

UNICODE 以外のビルドの DAO レコードセットは、文字列が ANSI であることを想定しています。A DAO recordset in a non-UNICODE build expects strings to be ANSI. したがって、dao の場合に使用する関数COleVariantUNICODE レコード セットを作成していない場合、オブジェクトが使用する必要があります、 COleVariant::COleVariant ( lpszSrc vtSrc ) 形式を持つコンストラクターのvtSrc VT_BSTRT (ANSI) に設定または使用SetStringvtSrc VT に設定ANSI 文字列の作成に _BSTRT します。Thus, for DAO functions that use COleVariant objects, if you are not creating a UNICODE recordset, you must use the COleVariant::COleVariant( lpszSrc , vtSrc ) form of constructor with vtSrc set to VT_BSTRT (ANSI) or use SetString with vtSrc set to VT_BSTRT to make ANSI strings. たとえば、関数のCDaoRecordset cdaorecordset:: Seekcdaorecordset:: SetFieldValueは、 COleVariantパラメーターとしてオブジェクトを使用します。For example, the CDaoRecordset functions CDaoRecordset::Seek and CDaoRecordset::SetFieldValue use COleVariant objects as parameters. DAO レコードセットが UNICODE でない場合、これらのオブジェクトは ANSI である必要があります。These objects must be ANSI if the DAO recordset is not UNICODE.

関連項目See also

階層図Hierarchy Chart