COleVariant クラス

VARIANT データ型をカプセル化します。

構文

class COleVariant : public tagVARIANT

メンバー

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

名前 [説明]
COleVariant::COleVariant COleVariant オブジェクトを構築します。

パブリック メソッド

名前 [説明]
COleVariant::Attach VARIANT を にアタッチします COleVariant
COleVariant::ChangeType このオブジェクトのバリアント型を変更 COleVariant します。
COleVariant::Clear この COleVariant オブジェクトをクリアします。
COleVariant::D etach から VARIANT をデタッチ COleVariant し、VARIANT を返します。
COleVariant::GetByteArrayFromVariantArray 既存のバリアント配列からバイト配列を取得します。
COleVariant::SetString 文字列を特定の型 (通常は ANSI) に設定します。

パブリック演算子

名前 [説明]
COleVariant::operator LPCVARIANT 値を COleVariant に変換します LPCVARIANT
COleVariant::operator LPVARIANT オブジェクトを COleVariant に変換します LPVARIANT
COleVariant::operator = 値をコピー COleVariant します。
COleVariant::operator == 2 つの値を COleVariant 比較します。
COleVariant::operator < < ,>> または に COleVariant 値を出力 CArchive CDumpContext し、 から COleVariant オブジェクトを入力します CArchive

Remarks

このデータ型は、OLE オートメーションで使用されます。 具体的には 、DISRAMRAMS 構造体には VARIANT 構造体の配列へのポインターが含まれています。 構造体 DISPPARAMS、IDispatch::Invoke にパラメーターを渡す場合に使用されます

注意

このクラスは、 構造体から派生 VARIANT します。 つまり、 を呼び出す パラメーターに を渡し、構造体のデータ メンバーが のアクセス可能な COleVariant VARIANT データ VARIANT メンバーである可能性があります COleVariant

2 つの関連する MFC クラス COleCurrencyCOleDateTime は、VARIANT データ型 CURRENCY ( ) と DATE ( VT_CY ) をカプセル化します VT_DATE 。 クラスは DAO クラスで広く使用されています COleVariant 。CDaoQueryDefCDaoRecordsetなど、このクラスの一般的な使用方法については、これらのクラスを参照してください。

詳細については、WINDOWS SDK のVARIANTエントリ、CURRENCYエントリ、DISRAMRAMSエントリ、IDispatch::Invokeエントリに関するページを参照してください。

クラスとその OLE オートメーションでの使用の詳細については、「オートメーション」の「OLE オートメーションでパラメーターを渡 COleVariant す」を参照 してください

継承階層

tagVARIANT

COleVariant

必要条件

ヘッダー : afxdisp.h

COleVariant::Attach

指定した VARIANT オブジェクトを現在の オブジェクト にアタッチするには 、この関数を呼び出 COleVariant します。

void Attach(VARIANT& varSrc);

パラメーター

varSrc
現在の VARIANT オブジェクトにアタッチされる既存の COleVariant オブジェクト。

Remarks

この関数は、varSrc の VARTYPE を に設定VT_EMPTY。

詳細については、WINDOWS SDK のVARIANTエントリとVARENUMエントリを参照してください。

COleVariant::COleVariant

COleVariant オブジェクトを構築します。

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);

パラメーター

varSrc
新しい COleVariant オブジェクト VARIANT にコピーする既存の オブジェクトまたは COleVariant オブジェクト。

pSrc
新しい VARIANT オブジェクトにコピーされる オブジェクトへの COleVariant ポインター。

lpszSrc
新しい オブジェクトにコピーされる null 終端文字列 COleVariant

vtSrc
VARTYPE しい オブジェクトの COleVariant

strSrc
新しい オブジェクトにコピーされる CString COleVariant オブジェクト。

nSrc 、lSrc 新しい オブジェクトにコピーする数値 COleVariant

vtSrc
VARTYPE しい オブジェクトの COleVariant

curSrc
しい オブジェクトにコピーする COleCurrency COleVariant オブジェクト。

fltSrc 、dblSrc
新しい COleVariant オブジェクトにコピーされる数値。

timeSrc
しい オブジェクトにコピーする COleDateTime COleVariant オブジェクト。

arrSrc
しい オブジェクトにコピーされる CByteArray COleVariant オブジェクト。

lbSrc
しい オブジェクトにコピーする CLongBinary COleVariant オブジェクト。

Pidl
新しい オブジェクト にコピーされる ITEMIDLIST 構造体への COleVariant ポインター。

Remarks

これらのコンストラクターはすべて、指定した値に COleVariant 初期化された新しいオブジェクトを作成します。 これらの各コンストラクターの簡単な説明を次に示します。

  • COleVariant( ) 空の オブジェクトを COleVariant 作成VT_EMPTY。

  • COleVariant( varSrc ) 既存の または オブジェクトを VARIANT コピー COleVariant します。 バリアント型は保持されます。

  • COleVariant( pSrc ) 既存の または オブジェクトを VARIANT コピー COleVariant します。 バリアント型は保持されます。

  • COleVariant( lpszSrc ) 文字列を新しい オブジェクト (UNICODE) にVT_BSTRコピーします。

  • COleVariant( lpszSrc , vtSrc ) 新しい オブジェクトに文字列をコピーします。 パラメーター vtSrc は、(UNICODE) VT_BSTR (ANSI) VT_BSTRTする必要があります。

  • COleVariant( strSrc ) 文字列を新しい オブジェクト (UNICODE) にVT_BSTRコピーします。

  • COleVariant ( nSrc ) 新しいオブジェクト VT_UI1 に8ビットの整数をコピーします。

  • COleVariant ( nSrc vtsrc ) 新しいオブジェクトに16ビット整数 (またはブール値) をコピーします。 パラメーター Vtsrc は VT_I2 または VT_BOOL である必要があります。

  • COleVariant ( lsrc vtsrc ) 32ビット整数 (または SCODE 値) を新しいオブジェクトにコピーします。 Vtsrc のパラメーターには、VT_I4、VT_ERROR、または VT_BOOL を指定する必要があります。

  • COleVariant ( cursrc )COleCurrency新しいオブジェクト VT_CY に値をコピーします。

  • COleVariant ( fltsrc ) 新しいオブジェクト VT_R4 に32ビット浮動小数点値をコピーします。

  • COleVariant ( dblsrc ) 新しいオブジェクト VT_R8 に64ビット浮動小数点値をコピーします。

  • COleVariant ( timesrc )COleDateTime新しいオブジェクト VT_DATE に値をコピーします。

  • COleVariant ( arrsrc ) オブジェクトを CByteArray 新しいオブジェクト VT_EMPTY にコピーします。

  • COleVariant ( lbSrc ) オブジェクトを CLongBinary 新しいオブジェクト VT_EMPTY にコピーします。

SCODE の詳細については、「Windows SDK のCOM エラーコードの構造」を参照してください。

COleVariant:: ChangeType

このオブジェクトのバリアント値の型を変換 COleVariant します。

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

パラメーター

vartype
このオブジェクトの VARTYPE COleVariant

.Psrc
変換する バリアント オブジェクトへのポインター。 この値が NULL の場合、この COleVariant オブジェクトは変換のソースとして使用されます。

Remarks

詳細については、Windows SDK の「 VARIANT」、「 varenum」、および「 VariantChangeType 」の各エントリを参照してください。

COleVariant:: Clear

VARIANT を消去します。

void Clear();

Remarks

これにより、このオブジェクトの VARTYPE が VT_EMPTY に設定されます。 デストラクターは、 COleVariant この関数を呼び出します。

詳細については、 VARIANT Windows SDK の、VARTYPE、およびエントリを参照してください VariantClear

COleVariant::D etach

基になる バリアント オブジェクトをこのオブジェクトからデタッチし COleVariant ます。

VARIANT Detach();

Remarks

この関数は、このオブジェクトの VARTYPE を COleVariant VT_EMPTY に設定します。

注意

を呼び出した後 DetachVariantClear 結果の構造体に対してを呼び出すのは呼び出し元の責任です VARIANT

詳細については、Windows SDK の「 VARIANT」、「 varenum」、および「 VariantClear 」の各エントリを参照してください。

COleVariant:: GetByteArrayFromVariantArray

既存の variant 配列からバイト配列を取得します。

void GetByteArrayFromVariantArray(CByteArray& bytes);

パラメーター

bytes
既存の CByteArray オブジェクトへの参照。

COleVariant:: operator LPCVARIANT

このキャスト演算子は、 VARIANT このオブジェクトから値がコピーされる構造体を返し COleVariant ます。

operator LPCVARIANT() const;

Remarks

COleVariant:: operator LPVARIANT

このキャスト演算子を呼び出して、このオブジェクトの基になる構造体にアクセスし VARIANT COleVariant ます。

operator LPVARIANT();

Remarks

注意事項

VARIANTこの関数によって返されるポインターによってアクセスされる構造体の値を変更すると、このオブジェクトの値が変更され COleVariant ます。

COleVariant:: operator =

これらのオーバーロードされた代入演算子は、source 値をこのオブジェクトにコピー COleVariant します。

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);

Remarks

各演算子の簡単な説明を次に示します。

  • operator = ( varsrc ) 既存のバリアントまたは COleVariant オブジェクトをこのオブジェクトにコピーします。

  • operator = ( psrc **)**Psrc によってアクセスされるバリアントオブジェクトをこのオブジェクトにコピーします。

  • operator = ( lpszsrc ) Null で終わる文字列をこのオブジェクトにコピーし、VARTYPE を VT_BSTR に設定します。

  • operator = ( strsrc )CStringオブジェクトをこのオブジェクトにコピーし、VARTYPE を VT_BSTR に設定します。

  • operator = ( nSrc ) 8ビットまたは16ビットの整数値をこのオブジェクトにコピーします。 NSrc が8ビット値の場合、このの VARTYPE は VT_UI1 に設定されます。 NSrc が16ビット値で、このの VARTYPE が VT_BOOL 場合は、保持されます。それ以外の場合は、VT_I2 に設定されます。

  • operator = ( lsrc ) 32ビット整数値をこのオブジェクトにコピーします。 このの VARTYPE が VT_ERROR 場合は、保持されます。それ以外の場合は、VT_I4 に設定されます。

  • operator = ( cursrc )COleCurrencyオブジェクトをこのオブジェクトにコピーし、VARTYPE を VT_CY に設定します。

  • operator = ( fltsrc ) 32ビットの浮動小数点値をこのオブジェクトにコピーし、VARTYPE を VT_R4 に設定します。

  • operator = ( dblsrc ) 64ビットの浮動小数点値をこのオブジェクトにコピーし、VARTYPE を VT_R8 に設定します。

  • operator = ( ? rc )COleDateTimeオブジェクトをこのオブジェクトにコピーし、VARTYPE を VT_DATE に設定します。

  • operator = ( arrsrc )CByteArrayオブジェクトをこのオブジェクトにコピー COleVariant します。

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

詳細については、Windows SDK のバリアントvarenumのエントリを参照してください。

COleVariant:: operator = =

この演算子は、2つのバリアント型の値を比較し、等しい場合は0以外の値を返します。それ以外の場合は0です。

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

COleVariant:: operator < < 、>>

値を COleVariant CArchive またはに出力 CdumpContext し、 COleVariant からオブジェクトを入力し 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);

Remarks

COleVariant挿入 ( <<) operator supports diagnostic dumping and storing to an archive. The extraction (>> ) 演算子は、アーカイブからの読み込みをサポートしています。

COleVariant:: SetString

文字列を特定の型に設定します。

void SetString(LPCTSTR lpszSrc, VARTYPE vtSrc);

パラメーター

lpszSrc
新しいオブジェクトにコピーされる null で終わる文字列 COleVariant

VtSrc
新しいオブジェクトの VARTYPE COleVariant

Remarks

Vtsrc のパラメーターには、VT_BSTR (UNICODE) または VT_BSTRT (ANSI) を指定する必要があります。 SetString は通常、文字列または文字列ポインターパラメーターを持つ COleVariant:: COleVariant コンストラクターの既定値で、VARTYPE が UNICODE ではないため、文字列を ANSI に設定するために使用されます。

UNICODE 以外のビルドの DAO レコードセットは、文字列が ANSI であることを想定しています。 したがって、オブジェクトを使用する DAO 関数の COleVariant 場合、UNICODE レコードセットを作成しない場合は、 vtsrc が VT_BSTRT (ansi) に設定されているコンストラクターの COleVariant:: COleVariant ( lpszsrc , vtsrc ) 形式のコンストラクターを使用するか、 SetString vtsrc VT_BSTRT set を使用して ansi 文字列を作成する必要があります。 たとえば、関数の CDaoRecordset cdaorecordset:: Seekcdaorecordset:: SetFieldValue は、 COleVariant パラメーターとしてオブジェクトを使用します。 DAO レコードセットが UNICODE でない場合、これらのオブジェクトは ANSI である必要があります。

関連項目

階層図