CComVariant 클래스

이 클래스는 VARIANT 저장된 데이터의 형식을 나타내는 멤버를 제공하여 형식을 래핑합니다.

구문

class CComVariant : public tagVARIANT

멤버

Public 생성자

속성 설명
CComVariant::CComVariant 생성자입니다.
CComVariant::~CComVariant 소멸자입니다.

공용 메서드

이름 설명
CComVariant::Attach 개체에 VARIANTCComVariant 연결합니다.
CComVariant::ChangeType 개체를 CComVariant 새 형식으로 변환합니다.
CComVariant::Clear 개체를 CComVariant 지웁니다.
CComVariant::Copy 개체에 복사 VARIANTCComVariant 합니다.
CComVariant::CopyTo 개체의 CComVariant 내용을 복사합니다.
CComVariant::Detach 개체에서 CComVariant 내부를 VARIANT 분리합니다.
CComVariant::GetSize 개체 내용의 크기(바이트)를 반환합니다 CComVariant .
CComVariant::ReadFromStream 스트림에서 로드 VARIANT 합니다.
CComVariant::SetByRef 개체를 CComVariant 초기화하고 멤버를 .로 vtVT_BYREF설정합니다.
CComVariant::WriteToStream 원본 VARIANT 을 스트림에 저장합니다.

공용 연산자

연산자 설명
CComVariant::operator < 개체가 CComVariant 지정된 VARIANT개체보다 작은지 여부를 나타냅니다.
CComVariant::operator > 개체가 CComVariant 지정된 VARIANT개체보다 큰지 여부를 나타냅니다.
CComVariant::operator != 개체가 CComVariant 지정된 VARIANT개체와 같지 않은지 여부를 나타냅니다.
CComVariant::operator = 개체에 값을 CComVariant 할당합니다.
CComVariant::operator == 개체가 CComVariant 지정된 VARIANT개체와 같은지 여부를 나타냅니다.

설명

CComVariantVARIANT 공용 구조체 및 공용 구조체에 저장된 데이터의 형식을 나타내는 멤버로 구성된 형식을 VARIANTARG 래핑합니다. VARIANTs는 일반적으로 Automation에서 사용됩니다.

CComVariant는 사용할 수 있는 모든 VARIANT 위치에서 사용할 수 있도록 형식에서 VARIANT 파생됩니다. 예를 들어 매크로를 V_VT 사용하여 형식 CComVariant 을 추출할 수도 있고, 멤버에 vt 직접 액세스할 수도 있습니다 VARIANT.

상속 계층

tagVARIANT
 └ CComVariant

요구 사항

헤더atlcomcli.h:

CComVariant::Attach

금고 개체의 CComVariant 현재 내용을 지우고, 이 개체에 pSrc 내용을 복사한 다음, 변형 형식 pSrcVT_EMPTY로 설정합니다.

HRESULT Attach(VARIANT* pSrc);

매개 변수

pSrc
[in] 개체에 VARIANT 연결할 대상을 가리킵니다.

반환 값

표준 HRESULT 값입니다.

설명

보유 pSrc 하는 데이터의 소유권은 개체로 CComVariant 전송됩니다.

CComVariant::CComVariant

각 생성자는 Win32 함수를 호출 VariantInit 하거나 전달된 매개 변수에 따라 개체의 값과 형식을 설정하여 개체의 안전한 초기화를 CComVariant 처리합니다.

CComVariant() throw();
CComVariant(const CComVariant& varSrc);
CComVariant(const VARIANT& varSrc);
CComVariant(LPCOLESTR lpszSrc);
CComVariant(LPCSTR lpszSrc);
CComVariant(bool bSrc);
CComVariant(BYTE nSrc) throw();
CComVariant(int nSrc, VARTYPE vtSrc = VT_I4) throw();
CComVariant(unsigned int  nSrc, VARTYPE vtSrc = VT_UI4) throw();
CComVariant(shor  nSrc) throw();
CComVariant(unsigned short nSrc) throw();
CComVariant(long  nSrc, VARTYPE vtSrc = VT_I4) throw();
CComVariant(unsigned long  nSrc) throw();
CComVariant(LONGLONG  nSrc) throw();
CComVariant(ULONGLONG  nSrc) throw();
CComVariant(float  fltSrc) throw();
CComVariant(double  dblSrc, VARTYPE vtSrc = VT_R8) throw();
CComVariant(CY  cySrc) throw();
CComVariant(IDispatch* pSrc) throw();
CComVariant(IUnknown* pSrc) throw();
CComVariant(const SAFEARRAY* pSrc);
CComVariant(char  cSrc) throw();
CComVariant(const CComBSTR& bstrSrc);

매개 변수

varSrc
[in] CComVariant 개체를 초기화하는 데 사용되는 개체입니다 VARIANTCComVariant . 원본 변형의 내용은 변환 없이 대상에 복사됩니다.

lpszSrc
[in] 개체를 초기화하는 데 사용되는 문자열입니다 CComVariant . 0으로 끝나는 와이드(유니코드) 문자열 LPCOLESTR 을 생성자 버전 또는 ANSI 문자열 버전에 LPCSTR 전달할 수 있습니다. 두 경우 모두 문자열은 .를 사용하여 SysAllocString할당된 유니코드 BSTR 로 변환됩니다. 개체의 CComVariant 형식은 .입니다 VT_BSTR.

bSrc
[in] bool 개체를 초기화하는 데 사용되는 개체입니다 CComVariant . 인수는 bool 저장되기 전에 a VARIANT_BOOL 로 변환됩니다. 개체의 CComVariant 형식은 .입니다 VT_BOOL.

nSrc
[in] 개체를 초기화하는 데 사용되는 , unsigned shortLONGLONGULONGLONGshortlongBYTE, 또는 unsigned longunsigned intCComVariantint 개체의 CComVariant 형식은 VT_I4각각 , VT_UI1,VT_I4VT_I2, VT_I8, VT_UI8VT_UI2, VT_UI4또는 VT_UI4입니다.

vtSrc
[in] 변형의 형식입니다. 첫 번째 매개 변수가 있으면 int유효한 형식은 다음과 같습니다 VT_I4VT_INT. 첫 번째 매개 변수가 있으면 long유효한 형식은 다음과 같습니다 VT_I4VT_ERROR. 첫 번째 매개 변수가 있으면 double유효한 형식은 다음과 같습니다 VT_R8VT_DATE. 첫 번째 매개 변수가 있으면 unsigned int유효한 형식은 다음과 같습니다 VT_UI4VT_UINT.

fltSrc
[in] float 개체를 초기화하는 데 사용되는 개체입니다 CComVariant . 개체의 CComVariant 형식은 .입니다 VT_R4.

dblSrc
[in] double 개체를 초기화하는 데 사용되는 개체입니다 CComVariant . 개체의 CComVariant 형식은 .입니다 VT_R8.

cySrc
[in] CY 개체를 초기화하는 데 사용되는 개체입니다 CComVariant . 개체의 CComVariant 형식은 .입니다 VT_CY.

pSrc
[in] IDispatch 개체를 초기화하는 CComVariant 데 사용되는 포인터입니다IUnknown. AddRef 는 인터페이스 포인터에서 호출됩니다. 개체의 CComVariant 형식은 각각 또는 VT_UNKNOWN그 유형입니다VT_DISPATCH.

또는 개체를 SAFERRAY 초기화하는 데 사용되는 포인터입니다 CComVariant . 개체의 SAFEARRAY 복사본이 저장됩니다 CComVariant . 개체의 CComVariant 형식은 원래 형식 SAFEARRAYVT_ARRAY.

cSrc
[in] char 개체를 초기화하는 데 사용되는 개체입니다 CComVariant . 개체의 CComVariant 형식은 .입니다 VT_I1.

bstrSrc
[in] BSTR 개체를 초기화하는 데 사용되는 개체입니다 CComVariant . 개체의 CComVariant 형식은 .입니다 VT_BSTR.

설명

소멸자가 호출CComVariant::Clear하여 클린up을 관리합니다.

CComVariant::~CComVariant

소멸자입니다.

~CComVariant() throw();

설명

이 메서드는 호출CComVariant::Clear하여 클린up을 관리합니다.

CComVariant::ChangeType

개체를 CComVariant 새 형식으로 변환합니다.

HRESULT ChangeType(VARTYPE vtNew, const VARIANT* pSrc = NULL);

매개 변수

vtNew
[in] 개체의 새 형식입니다 CComVariant .

pSrc
[in] 해당 값이 VARIANT 새 형식으로 변환되는 포인터입니다. 기본값은 NULL개체가 CComVariant 현재 위치에서 변환되는 것을 의미합니다.

반환 값

표준 HRESULT 값입니다.

설명

값을 pSrcChangeType 전달하면 변환의 원본으로 사용합니다VARIANT. 그렇지 않으면 개체가 CComVariant 원본입니다.

CComVariant::Clear

CComVariant Win32 함수를 호출하여 개체를 VariantClear 지웁니다.

HRESULT Clear();

반환 값

표준 HRESULT 값입니다.

설명

소멸자가 자동으로 호출 Clear합니다.

CComVariant::Copy

개체를 CComVariant 해제한 다음 지정된 VARIANT복사본을 할당합니다.

HRESULT Copy(const VARIANT* pSrc);

매개 변수

pSrc
[in] 복사할 VARIANT 포인터입니다.

반환 값

표준 HRESULT 값입니다.

CComVariant::CopyTo

개체의 CComVariant 내용을 복사합니다.

HRESULT CopyTo(BSTR* pstrDest);

매개 변수

pstrDest
BSTR 개체의 내용 복사본을 받을 대상을 CComVariant 가리킵니다.

반환 값

표준 HRESULT 값입니다.

설명

개체는 CComVariant 형식 VT_BSTR이어야 합니다.

CComVariant::Detach

개체에서 CComVariant 내부 VARIANT 를 분리하고 개체의 형식을 .로 VT_EMPTY설정합니다.

HRESULT Detach(VARIANT* pDest);

매개 변수

pDest
[out] 개체의 기본 VARIANT 값을 반환합니다.

반환 값

표준 HRESULT 값입니다.

설명

호출 CComVariant 개체의 VARIANT 값과 형식이 할당되기 전에 참조 pDest 되는 내용이 자동으로 지워집니다.

CComVariant::GetSize

단순 고정 크기의 VARIANT경우 이 메서드는 기본 데이터 형식에 sizeof 대한 값과 sizeof(VARTYPE)함께 반환합니다.

ULONG GetSize() const;

반환 값

개체의 현재 콘텐츠 크기(바이트)입니다 CComVariant .

설명

인터페이스 포인터 GetSizeVARIANT 포함된 경우 쿼리하거나 IPersistStreamIPersistStreamInit 성공하면 반환 값은 더하기 sizeof(CLSID) 및 .에서 반환한 GetSizeMax 값의 하위 32비트sizeof(VARTYPE)입니다. 인터페이스 포인터가 NULLGetSize 있으면 더하기 .sizeof(CLSID)sizeof(VARTYPE) 총 크기가 보다 ULONG_MAXGetSize 크면 오류를 나타내는 반환sizeof(VARTYPE)합니다.

다른 모든 경우에서 형식 VT_BSTR 의 임시 VARIANT 는 현재VARIANT에서 강제 변환됩니다. 이 BSTR 길이는 문자열 길이와 문자열 자체의 길이 및 문자의 크기와 NULL 함께 sizeof(VARTYPE)계산됩니다. 형식 GetSizeVT_BSTR으로 VARIANT 강제 변환 VARIANT 할 수 없으면 반환합니다sizeof(VARTYPE).

이 메서드에서 반환되는 크기는 성공적인 조건에서 사용되는 CComVariant::WriteToStream 바이트 수와 일치합니다.

CComVariant::operator =

개체에 값과 해당 형식을 CComVariant 할당합니다.

CComVariant& operator=(const CComVariant& varSrc);
CComVariant& operator=(const VARIANT& varSrc);
CComVariant& operator=(const CComBSTR& bstrSrc);
CComVariant& operator=(LPCOLESTR lpszSrc);
CComVariant& operator=(LPCSTR lpszSrc);
CComVariant& operator=(bool bSrc);
CComVariant& operator=(BYTE nSrc) throw();
CComVariant& operator=int nSrc) throw();
CComVariant& operator=(unsigned int nSrc) throw();
CComVariant& operator=(short nSrc) throw();
CComVariant& operator=(unsigned short nSrc) throw();
CComVariant& operator=(long nSrc) throw();
CComVariant& operator=(unsigned long nSrc) throw();
CComVariant& operator=(LONGLONG nSrc) throw();
CComVariant& operator=(ULONGLONG nSrc) throw();
CComVariant& operator=(float fltSrc) throw();
CComVariant& operator=(double dblSrc) throw();
CComVariant& operator=(CY cySrc) throw();
CComVariant& operator=(IDispatch* pSrc) throw();
CComVariant& operator=(IUnknown* pSrc) throw();
CComVariant& operator=(const SAFEARRAY* pSrc);
CComVariant& operator=(char cSrc) throw();

매개 변수

varSrc
[in] CComVariantVARIANT 개체에 할당 CComVariant 할 대상입니다. 원본 변형의 내용은 변환 없이 대상에 복사됩니다.

bstrSrc
[in] BSTR 개체에 할당할 대상입니다 CComVariant . 개체의 CComVariant 형식은 .입니다 VT_BSTR.

lpszSrc
[in] 개체에 할당할 문자열입니다 CComVariant . 0으로 끝나는 와이드(유니코드) 문자열 LPCOLESTR 을 연산자 버전 또는 ANSI 문자열에 버전에 LPCSTR 전달할 수 있습니다. 두 경우 모두 문자열은 .를 사용하여 SysAllocString할당된 유니코드 BSTR 로 변환됩니다. 개체의 CComVariant 형식은 .입니다 VT_BSTR.

bSrc
[in] bool 개체에 할당할 대상입니다 CComVariant . 인수는 bool 저장되기 전에 a VARIANT_BOOL 로 변환됩니다. 개체의 CComVariant 형식은 .입니다 VT_BOOL.

nSrc
[in] int개체에 할당할 , BYTE, longshort, ULONGLONGLONGLONG, unsigned short, unsigned long, 또는 unsigned int 할당 CComVariant 할 수 있습니다. 개체의 CComVariant 형식은 VT_I4각각 , VT_UI1,VT_I4VT_I2, VT_I8, VT_UI8VT_UI2, VT_UI4또는 VT_UI4입니다.

fltSrc
[in] float 개체에 할당할 대상입니다 CComVariant . 개체의 CComVariant 형식은 .입니다 VT_R4.

dblSrc
[in] double 개체에 할당할 대상입니다 CComVariant . 개체의 CComVariant 형식은 .입니다 VT_R8.

cySrc
[in] CY 개체에 할당할 대상입니다 CComVariant . 개체의 CComVariant 형식은 .입니다 VT_CY.

pSrc
[in] IDispatch 개체에 할당 CComVariant 할 포인터입니다IUnknown. AddRef 는 인터페이스 포인터에서 호출됩니다. 개체의 CComVariant 형식은 각각 또는 VT_UNKNOWN그 유형입니다VT_DISPATCH.

또는 개체에 SAFEARRAY 할당할 포인터입니다 CComVariant . 개체의 SAFEARRAY 복사본이 저장됩니다 CComVariant . 개체의 CComVariant 형식은 원래 형식 SAFEARRAYVT_ARRAY.

cSrc
[in] 개체에 할당할 문자입니다 CComVariant . 개체의 CComVariant 형식은 .입니다 VT_I1.

CComVariant::operator ==

개체가 CComVariant 지정된 VARIANT개체와 같은지 여부를 나타냅니다.

bool operator==(const VARIANT& varSrc) const throw();

설명

TRUE 값과 형식이 각각 CComVariant 개체의 varSrc 값과 형식과 같은지 반환합니다. 그렇지 않으면 FALSE입니다. 연산자는 사용자의 기본 로캘을 사용하여 비교를 수행합니다.

연산자는 변형 형식의 값만 비교합니다. 문자열, 정수 및 부동 소수점을 비교하지만 배열이나 레코드는 비교하지 않습니다.

CComVariant::operator !=

개체가 CComVariant 지정된 VARIANT개체와 같지 않은지 여부를 나타냅니다.

bool operator!=(const VARIANT& varSrc) const throw();

설명

값 또는 형식이 각각 CComVariant 개체의 varSrc 값이나 형식과 같지 않은지 여부를 반환 TRUE 합니다. 그렇지 않으면 FALSE입니다. 연산자는 사용자의 기본 로캘을 사용하여 비교를 수행합니다.

연산자는 변형 형식의 값만 비교합니다. 문자열, 정수 및 부동 소수점을 비교하지만 배열이나 레코드는 비교하지 않습니다.

CComVariant::operator <

개체가 CComVariant 지정된 VARIANT개체보다 작은지 여부를 나타냅니다.

bool operator<(const VARIANT& varSrc) const throw();

설명

TRUE 개체 값이 .의 CComVariantvarSrc보다 작은지 반환합니다. 그렇지 않으면 FALSE입니다. 연산자는 사용자의 기본 로캘을 사용하여 비교를 수행합니다.

CComVariant::operator >

개체가 CComVariant 지정된 VARIANT개체보다 큰지 여부를 나타냅니다.

bool operator>(const VARIANT& varSrc) const throw();

설명

개체의 CComVariant 값이 값보다 큰 경우를 반환 TRUE 합니다varSrc. 그렇지 않으면 FALSE입니다. 연산자는 사용자의 기본 로캘을 사용하여 비교를 수행합니다.

CComVariant::ReadFromStream

지정된 스트림에 포함된 내부 VARIANTVARIANT 를 설정합니다.

HRESULT ReadFromStream(IStream* pStream);

매개 변수

pStream
[in] 데이터를 포함하는 스트림의 IStream 인터페이스에 대한 포인터입니다.

반환 값

표준 HRESULT 값입니다.

설명

ReadToStream 에 대한 이전 호출이 필요합니다 WriteToStream.

CComVariant::SetByRef

개체를 CComVariant 초기화하고 멤버를 .로 vtVT_BYREF설정합니다.

template < typename T >
void SetByRef(T* pT) throw();

매개 변수

T
의 형식 VARIANT(예: BSTR, int또는 char.

pT
개체를 초기화하는 데 사용되는 포인터입니다 CComVariant .

설명

SetByRef는 개체를 포인터 pT 로 초기화 CComVariant 하고 멤버VT_BYREF를 .로 설정하는 vt 함수 템플릿입니다. 예시:

CComVariant var;
int nData = 10;
var.SetByRef(&nData);   

CComVariant::WriteToStream

원본 VARIANT 을 스트림에 저장합니다.

HRESULT WriteToStream(IStream* pStream);

매개 변수

pStream
[in] 스트림의 IStream 인터페이스에 대한 포인터입니다.

반환 값

표준 HRESULT 값입니다.

참고 항목

클래스 개요