프로그래밍/VC++

CString , BSTR , CComBSTR , CComVariant 간의 자료형변환

panpro 2007. 3. 8. 10:38

인클루드 #include <atlconv.h>

CString bstrToCString(BSTR bstr)
{
  char* pbstr;
  USES_CONVERSION;  //convert를 위한 매크로
  pbstr=OLE2A(bstr);     //bstr을 char로 convert
  return CString(pbstr);
}

BSTR CStringTobstr(CString str)
{
  return str.AllocSysString();    //CString을 bstr로 convert
}

[bstr-> char*]
BSTR inputdata;
char *pbstr;
pbstr=OLE2A(inputdata);

[char* -> bstr]
TCHAR szTitle[ 512 ];
_bstr_t bstrText = szTitle;
*bstrTitle = bstrText.copy();

//CString ==> CComVariant로 변환
CComVariant out(str.AllocSysString());  or  CComVariant out(str);

----------- VARIANT 구조체 사용예 ----------

VARIANT vVal;

VariantInit(&vVal); //초기화

vVal.vt = VT_BOOL;

vVal.boolVal = TRUE;

---------- BSTR 사용예 --------------

1) BSTR m_pStr;

m_pStr = L"Hello CodeIn"; // 문자의 개수가 지정되지 않음

2) wchar_t Example[] = L"String";

BSTR m_pStr = SysAllocString(Example); // BSTR 문자열 영역확보

//..

SysFreeString(m_pStr); // BSTR 문자열 영역 해제

---------------- CComVariant, CComBSTR ---------------

VARIANT  => CComVariant;

BSTR => CComBSTR

'프로그래밍 > VC++' 카테고리의 다른 글

BSTR  (0) 2007.03.08
ActiveX로 인스톨러 만들기  (0) 2007.03.08
TLB도 Release, Debug 모드에 맞춰서 Import 하자.  (0) 2007.02.23
COleDateTime으로 오늘 날짜 가져오기  (0) 2007.02.02
COM에서 DATE 타입 사용하기  (0) 2007.02.02