CComVariant
클래스
이 클래스는 VARIANT
저장된 데이터의 형식을 나타내는 멤버를 제공하여 형식을 래핑합니다.
구문
class CComVariant : public tagVARIANT
멤버
Public 생성자
속성 | 설명 |
---|---|
CComVariant::CComVariant |
생성자입니다. |
CComVariant::~CComVariant |
소멸자입니다. |
공용 메서드
이름 | 설명 |
---|---|
CComVariant::Attach |
개체에 VARIANT CComVariant 연결합니다. |
CComVariant::ChangeType |
개체를 CComVariant 새 형식으로 변환합니다. |
CComVariant::Clear |
개체를 CComVariant 지웁니다. |
CComVariant::Copy |
개체에 복사 VARIANT CComVariant 합니다. |
CComVariant::CopyTo |
개체의 CComVariant 내용을 복사합니다. |
CComVariant::Detach |
개체에서 CComVariant 내부를 VARIANT 분리합니다. |
CComVariant::GetSize |
개체 내용의 크기(바이트)를 반환합니다 CComVariant . |
CComVariant::ReadFromStream |
스트림에서 로드 VARIANT 합니다. |
CComVariant::SetByRef |
개체를 CComVariant 초기화하고 멤버를 .로 vt VT_BYREF 설정합니다. |
CComVariant::WriteToStream |
원본 VARIANT 을 스트림에 저장합니다. |
Public 연산자
Operator | 설명 |
---|---|
CComVariant::operator < |
개체가 CComVariant 지정된 VARIANT 개체보다 작은지 여부를 나타냅니다. |
CComVariant::operator > |
개체가 CComVariant 지정된 VARIANT 개체보다 큰지 여부를 나타냅니다. |
CComVariant::operator != |
개체가 CComVariant 지정된 VARIANT 개체와 같지 않은지 여부를 나타냅니다. |
CComVariant::operator = |
개체에 값을 CComVariant 할당합니다. |
CComVariant::operator == |
개체가 CComVariant 지정된 VARIANT 개체와 같은지 여부를 나타냅니다. |
설명
CComVariant
는 VARIANT
공용 구조체 및 공용 구조체에 저장된 데이터의 형식을 나타내는 멤버로 구성된 형식을 VARIANTARG
래핑합니다. VARIANT
s는 일반적으로 Automation에서 사용됩니다.
CComVariant
는 사용할 수 있는 모든 VARIANT
위치에서 사용할 수 있도록 형식에서 VARIANT
파생됩니다. 예를 들어 매크로를 V_VT
사용하여 형식 CComVariant
을 추출할 수도 있고, 멤버에 vt
직접 액세스할 수도 있습니다 VARIANT
.
상속 계층
요구 사항
머리글: atlcomcli.h
CComVariant::Attach
개체의 CComVariant
현재 내용을 안전하게 지우고, 이 개체의 pSrc
내용을 복사한 다음, 변형 형식을 VT_EMPTY
pSrc
>로 설정합니다.
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
개체를 초기화하는 데 사용되는 개체입니다 VARIANT
CComVariant
. 원본 변형의 내용은 변환 없이 대상에 복사됩니다.
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 short
LONGLONG
ULONGLONG
short
long
BYTE
, 또는 unsigned long
unsigned int
CComVariant
int
개체의 CComVariant
형식은 VT_I4
각각 , VT_UI1
,VT_I4
VT_I2
, VT_I8
, VT_UI8
VT_UI2
, VT_UI4
또는 VT_UI4
입니다.
vtSrc
[in] 변형의 형식입니다. 첫 번째 매개 변수가 있으면 int
유효한 형식은 다음과 같습니다 VT_I4
VT_INT
. 첫 번째 매개 변수가 있으면 long
유효한 형식은 다음과 같습니다 VT_I4
VT_ERROR
. 첫 번째 매개 변수가 있으면 double
유효한 형식은 다음과 같습니다 VT_R8
VT_DATE
. 첫 번째 매개 변수가 있으면 unsigned int
유효한 형식은 다음과 같습니다 VT_UI4
VT_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
형식은 원래 형식 SAFEARRAY
과 VT_ARRAY
.
cSrc
[in] char
개체를 초기화하는 데 사용되는 개체입니다 CComVariant
. 개체의 CComVariant
형식은 .입니다 VT_I1
.
bstrSrc
[in] BSTR
개체를 초기화하는 데 사용되는 개체입니다 CComVariant
. 개체의 CComVariant
형식은 .입니다 VT_BSTR
.
설명
소멸자가 호출 CComVariant::Clear
하여 정리를 관리합니다.
CComVariant::~CComVariant
소멸자입니다.
~CComVariant() throw();
설명
이 메서드는 호출 CComVariant::Clear
하여 정리를 관리합니다.
CComVariant::ChangeType
개체를 CComVariant
새 형식으로 변환합니다.
HRESULT ChangeType(VARTYPE vtNew, const VARIANT* pSrc = NULL);
매개 변수
vtNew
[in] 개체의 새 형식입니다 CComVariant
.
pSrc
[in] 해당 값이 VARIANT
새 형식으로 변환되는 포인터입니다. 기본값은 NULL
개체가 CComVariant
현재 위치에서 변환되는 것을 의미합니다.
반환 값
표준 HRESULT
값입니다.
설명
값을 pSrc
ChangeType
전달하면 변환의 원본으로 사용합니다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
.
설명
인터페이스 포인터 GetSize
가 VARIANT
포함된 경우 쿼리하거나 IPersistStream
IPersistStreamInit
성공하면 반환 값은 더하기 sizeof(CLSID)
및 .에서 반환한 GetSizeMax
값의 하위 32비트sizeof(VARTYPE)
입니다. 인터페이스 포인터가 NULL
GetSize
있으면 더하기 .sizeof(CLSID)
sizeof(VARTYPE)
총 크기가 보다 ULONG_MAX
GetSize
크면 오류를 나타내는 반환sizeof(VARTYPE)
합니다.
다른 모든 경우에서 형식 VT_BSTR
의 임시 VARIANT
는 현재VARIANT
에서 강제 변환됩니다. 이 BSTR
길이는 문자열 길이와 문자열 자체의 길이 및 문자의 크기와 NULL
함께 sizeof(VARTYPE)
계산됩니다. 형식 GetSize
VT_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] CComVariant
VARIANT
개체에 할당 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
, long
short
, ULONGLONG
LONGLONG
, unsigned short
, unsigned long
, 또는 unsigned int
할당 CComVariant
할 수 있습니다. 개체의 CComVariant
형식은 VT_I4
각각 , VT_UI1
,VT_I4
VT_I2
, VT_I8
, VT_UI8
VT_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
형식은 원래 형식 SAFEARRAY
과 VT_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
개체 값이 .의 CComVariant
값varSrc
보다 작은지 반환합니다. 그렇지 않으면 FALSE
입니다. 연산자는 사용자의 기본 로캘을 사용하여 비교를 수행합니다.
CComVariant::operator >
개체가 CComVariant
지정된 VARIANT
개체보다 큰지 여부를 나타냅니다.
bool operator>(const VARIANT& varSrc) const throw();
설명
개체의 CComVariant
값이 값보다 큰 경우를 반환 TRUE
합니다varSrc
. 그렇지 않으면 FALSE
입니다. 연산자는 사용자의 기본 로캘을 사용하여 비교를 수행합니다.
CComVariant::ReadFromStream
지정된 스트림에 포함된 내부 VARIANT
VARIANT
를 설정합니다.
HRESULT ReadFromStream(IStream* pStream);
매개 변수
pStream
[in] 데이터를 포함하는 스트림의 IStream
인터페이스에 대한 포인터입니다.
반환 값
표준 HRESULT
값입니다.
설명
ReadToStream
에 대한 이전 호출이 필요합니다 WriteToStream
.
CComVariant::SetByRef
개체를 CComVariant
초기화하고 멤버를 .로 vt
VT_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
값입니다.