Click to See Complete Forum and Search --> : Variants.


phlebas
May 4th, 1999, 06:52 PM
I use Variants all the time (mainly COleVariant), however today I simply wanted to construct a Variant using a CString. I hit my head against the wall many times, trying crappy things like

* T2OLE (with SysAlloc whatever)
* _variant_t.SetString
* var.pbVal = "such and such"
* COleVariant(str), var=olevar.Detach()

and I couldn't get it to work at all. I feel like an idiot, but could someone purlease put me out of my misery.

CString into Variant.

Consider Phlebas

rick
July 20th, 1999, 10:54 AM
Hi,

first of all there is no way that you can put a CString in to a VARIANT you first have to pass the CString to a BSTR then you will be able to add the BSTR to the VARIANT;

eg.


CString szSomeStr("Some text");

BSTR bstrSomeStr = szSomeStr.AllocSysString ( ); VARIANT vSomeVariant;
vSomeVariant.vt = VT_BSTR;
vSomeVariant.bstrVal = bstrSomeStr;





and that should do it...

Rick

Rick
July 20th, 1999, 10:54 AM
Hi,

first of all there is no way that you can put a CString in to a VARIANT you first have to pass the CString to a BSTR then you will be able to add the BSTR to the VARIANT;

eg.


CString szSomeStr("Some text");

BSTR bstrSomeStr = szSomeStr.AllocSysString ( ); VARIANT vSomeVariant;
vSomeVariant.vt = VT_BSTR;
vSomeVariant.bstrVal = bstrSomeStr;





and that should do it...

Rick

chiuyan
July 20th, 1999, 11:50 AM
Can't you just sayCString MyString("String");
COleVariant MyVariant (MyString);

ColeVariant has an LPCSTR constructor, and CString has an LPCSTR operator.

HTH
--michael