/*++ Copyright (C) 1995-2001 Microsoft Corporation Module Name: CVARIANT.H Abstract: Declares the CVariantClass History: a-davj 9-27-95 Created. --*/ #ifndef _CVARIANT_H_ #define _CVARIANT_H_ #include "stdprov.h" //*************************************************************************** // // CLASS NAME: // // CVariant // // DESCRIPTION: // // A wrapper around the VARIANT stucture. // //*************************************************************************** class CVariant : public CObject { public: CVariant(); CVariant(LPWSTR pwcStr); SCODE SetData(void * pData, VARTYPE vt, int iSize = -1); SCODE GetData(void ** pData, DWORD dwRegType, DWORD * pdwSize); SCODE DoPut(long lFlags,IWbemClassObject FAR *,BSTR PropName, CVariant * pVar); ~CVariant(); void SetType(VARTYPE vtNew){var.vt = vtNew;}; VARTYPE GetType(){return var.vt;}; void * GetDataPtr(){return (void *)&var.lVal;}; VARIANT * GetVarPtr(){return &var;}; BSTR GetBstr(){return var.bstrVal;}; BOOL bGetBOOL(){return var.boolVal;}; DWORD GetNumElements(void); BOOL IsArray(void){return var.vt & VT_ARRAY;}; SCODE ChangeType(VARTYPE vtNew); void Clear(void); private: VARIANT var; int CalcNumStrings(TCHAR *pTest); SCODE SetArrayData(void * pData,VARTYPE vtSimple, int iSize); SCODE GetArrayData(void ** pData, DWORD * pdwSize); }; #endif