
Originally Posted by
da_cobra
how to convert a CString to a Variant
CString to VARIANT Conversion: Method I
Code:
// Your CString
CString strInput (_T ("Test String"));
VARIANT varString;
// Create a BSTR, assign it.
varString.bstrVal = strInput.AllocSysString ();
// Set Variant Type
varString.vt = VT_BSTR;
// Use the VARIANT
// De-Allocate it: Don't forget this step if you are using Raw Variants
::VariantClear (&varString);
CString to VARIANT Conversion: Method II
Code:
// Using the CComVariant: Smart Wrapper Class for VARIANT
CComVariant varSmartVariantString (strInput);
// Use varSmartVariantString...

Originally Posted by
da_cobra
or maybe can someone explain to me how I must use the VARIANT type?
Q. What is a VARIANT?
A. A VARIANT is a structure.
Code:
typedef struct tagVARIANT VARIANT;
typedef struct tagVARIANT VARIANTARG;
struct tagVARIANT
{
// ... variant members...
};
It can support many data-types because it (the structure) contains a UNION as a member.
The Variant Type is identified by the member VARIANT::vt

Originally Posted by
da_cobra
I already searched MSDN and the web, but nowhere any good explanation on VARIANT
The link above contains detailed information.
Let me know if your query is solved.
Bookmarks