分享方式:


COleVariant 類別

封裝 VARIANT 資料類型。

語法

class COleVariant : public tagVARIANT

成員

公用建構函式

名稱 描述
COleVariant::COleVariant 建構 COleVariant 物件。

公用方法

名稱 描述
COleVariant::Attach 將 VARIANT 附加至 COleVariant
COleVariant::ChangeType 變更這個 COleVariant 物件的變體類型。
COleVariant::Clear 清除這個 COleVariant 物件。
COleVariant::D etach COleVariant 中斷連結 VARIANT,並傳回 VARIANT。
COleVariant::GetByteArrayFromVariantArray 從現有的變數組擷取位元組陣列。
COleVariant::SetString 將字串設定為特定類型,通常是 ANSI。

公用運算子

名稱 描述
COleVariant::operator LPCVARIANT COleVariant 值轉換成 LPCVARIANT
COleVariant::operator LPVARIANT COleVariant 物件轉換成 LPVARIANT
COleVariant::operator = COleVariant複製值。
COleVariant::operator == 比較兩個 COleVariant 值。
COleVariant::operator <<, COleVariant::operator >> COleVariant 值輸出至 CArchiveCDumpContext ,並從 中輸入 COleVariant 物件 CArchive

備註

此數據類型用於 OLE 自動化。 具體而言, DISPPARAMS 結構包含 VARIANT 結構的數位指標。 DISPPARAMS結構可用來將參數傳遞至 IDispatch::Invoke

注意

這個類別衍生自 VARIANT 結構。 這表示您可以在呼叫 VARIANT 的參數中傳遞 COleVariant ,而且 結構的數據成員VARIANT是的可存取數據成員COleVariant

COleCurrency 和 COleDateTime 這兩個相關的 MFC 類別會封裝 VARIANT 數據類型 CURRENCY (VT_CY) 和 DATE ( VT_DATE。 類別 COleVariant 在 DAO 類別中廣泛使用;如需此類別的典型用法,請參閱這些類別,例如 CDaoQueryDefCDaoRecordset

如需詳細資訊,請參閱 Windows SDK 中的 VARIANTCURRENCYDISPPARAMSIDispatch::Invoke 專案。

如需 類別COleVariant及其在 OLE 自動化中使用的詳細資訊,請參閱自動化一文中的<傳遞 OLE 自動化中的參數>

繼承階層架構

tagVARIANT

COleVariant

需求

標頭: afxdisp.h

COleVariant::Attach

呼叫此函式,將指定的 VARIANT 物件附加至目前的 COleVariant 物件。

void Attach(VARIANT& varSrc);

參數

varSrc
要附加至目前COleVariant對象的現有VARIANT物件。

備註

此函式會將 varSrcVARTYPE 設定為 VT_EMPTY。

如需詳細資訊,請參閱 Windows SDK 中的 VARIANTVARENUM 專案。

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物件的現有 COleVariantVARIANT 物件。

pSrc
將複製到新COleVariant物件之物件的指標VARIANT

lpszSrc
要複製到新 COleVariant 物件的 Null 終止字串。

vtSrc
VARTYPECOleVariant 物件的 。

strSrc
要複製到新COleVariant物件的 CString 物件。

nSrc、lSrc 要複製到新COleVariant物件的數值。

vtSrc
VARTYPECOleVariant 物件的 。

curSrc
要複製到新COleVariant物件的 COleCurrency 物件。

fltSrcdblSrc
要複製到新的 COleVariant 物件中的數值。

timeSrc
要複製到新COleVariant物件的 COleDateTime 物件。

arrSrc
要複製到新COleVariant物件的 CByteArray 物件。

lbSrc
要複製到新COleVariant物件的 CLongBinary 物件。

pidl
要複製到新COleVariant物件之 ITEMIDLIST 結構的指標

備註

所有這些建構函式都會建立初始化為指定值的新 COleVariant 物件。 下列每個建構函式的簡短描述。

  • COleVariant( ) 建立空 COleVariant 的物件,VT_EMPTY。

  • COleVariant(varSrc 複製現有的 VARIANTCOleVariant 物件。 variant 類型會保留。

  • COleVariant(pSrc 複製現有的 VARIANTCOleVariant 物件。 variant 類型會保留。

  • COleVariant(lpszSrc 將字串複製到新的物件,VT_BSTR (UNICODE)。

  • COleVariant(lpszSrc vtSrc 將字串複製到新的 物件中。 vtSrc 參數必須VT_BSTR (UNICODE) 或 VT_BSTRT (ANSI)。

  • COleVariant(strSrc 將字串複製到新的物件,VT_BSTR (UNICODE)。

  • COleVariant( nSrc 將 8 位整數複製到新的 物件,VT_UI1。

  • 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 將 32 位浮點值複製到新的 物件,VT_R4。

  • COleVariant(dblSrc) 會將 64 位浮點值複製到新的 物件,VT_R8。

  • COleVariant(timeSrc 將值複製到COleDateTime新的 物件中,VT_DATE。

  • COleVariant(arrSrc 將物件複製到CByteArray新的物件,VT_EMPTY。

  • COleVariant( lbSrc 將物件複製到 CLongBinary 新的 物件,VT_EMPTY。

如需 SCODE 的詳細資訊,請參閱 Windows SDK 中的 COM 錯誤碼 結構。

COleVariant::ChangeType

轉換這個 COleVariant 物件中的 Variant 值類型。

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

參數

vartype
這個 COleVariant 物件的 VARTYPE。

pSrc
要轉換之 VARIANT 物件的指標。 如果此值為 NULL,此 COleVariant 物件會作為轉換的來源。

備註

如需詳細資訊,請參閱 Windows SDK 中的 VARIANTVARENUMVariantChangeType 專案。

COleVariant::Clear

清除 VARIANT

void Clear();

備註

這會將這個物件的 VARTYPE 設定為VT_EMPTY。 解構函式會 COleVariant 呼叫此函式。

如需詳細資訊,請參閱 VARIANTWindows SDK 中的 、VARTYPE 和 VariantClear 專案。

COleVariant::D etach

將基礎 VARIANT 對象與這個 COleVariant 物件中斷連結。

VARIANT Detach();

備註

此函式會將這個 COleVariant 物件的 VARTYPE 設定為VT_EMPTY。

注意

呼叫 Detach之後,呼叫端負責呼叫 VariantClear 產生的 VARIANT 結構。

如需詳細資訊,請參閱 Windows SDK 中的 VARIANTVARENUMVariantClear 專案。

COleVariant::GetByteArrayFromVariantArray

從現有的變數組擷取位元組陣列

void GetByteArrayFromVariantArray(CByteArray& bytes);

參數

bytes
現有 CByteArray 物件的參考。

COleVariant::operator LPCVARIANT

這個轉換運算符會 VARIANT 傳回結構,其值會從這個 COleVariant 物件複製。

operator LPCVARIANT() const;

備註

COleVariant::operator LPVARIANT

呼叫這個轉換運算符,以存取這個COleVariant對象的基礎VARIANT結構。

operator LPVARIANT();

備註

警告

變更此函式所傳回之指標所存取之結構中的 VARIANT 值,將會變更這個 COleVariant 物件的值。

COleVariant::operator =

這些多載指派運算符會將來源值複製到這個 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);

備註

每個運算子的簡短描述如下:

  • operator =( varSrc 將現有的 VARIANT 或 COleVariant 物件複製到這個物件中。

  • operator =( pSrc ) 將 pSrc 存取的 VARIANT 物件複製到這個物件。

  • 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 =( dateSrc 將 COleDateTime 物件複製到這個物件,並將 VARTYPE 設定為VT_DATE。

  • operator =( arrSrc 將 CByteArray 物件複製到這個COleVariant物件。

  • operator =( lbSrc 將 CLongBinary 物件複製到這個COleVariant物件中。

如需詳細資訊,請參閱 Windows SDK 中的 VARIANTVARENUM 專案。

COleVariant::operator ==

這個運算符會比較兩個變異值,如果相等,則會傳回非零值;否則為 0。

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

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

COleVariant 值輸出至 CArchiveCdumpContext ,並從 中輸入 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);

備註

COleVariant插入 (<<) 運算子支援診斷傾印和儲存至封存。 擷取 (>>) 運算子支援從封存載入。

COleVariant::SetString

將字串設定為特定類型。

void SetString(LPCTSTR lpszSrc, VARTYPE vtSrc);

參數

lpszSrc
要複製到新 COleVariant 物件的 Null 終止字串。

VtSrc
COleVariant 物件的 VARTYPE。

備註

vtSrc 參數必須VT_BSTR (UNICODE) 或 VT_BSTRT (ANSI)。 SetString通常用來將字串設定為 ANSI,因為 COleVariant::COleVariant 建構函式具有字串或字串指標參數的預設值,而且沒有 VARTYPE 是 UNICODE。

非 UNICODE 組建中的 DAO 記錄集預期字串為 ANSI。 因此,對於使用COleVariant物件的 DAO 函式,如果您未建立 UNICODE 記錄集,則必須使用 COleVariant::COleVariant(lpszSrc vtSrc) 形式的建構函式,並將 vtSrc 設定為 VT_BSTRT (ANSI) 或搭配 SetString vtSrc 設定為 VT_BSTRT 來建立 ANSI 字串串。 例如,CDaoRecordsetCDaoRecordset::SeekCDaoRecordset::SetFieldValue 函式會使用 COleVariant 對象作為參數。 如果 DAO 記錄集不是 UNICODE,這些對象必須是 ANSI。

另請參閱

階層架構圖表