1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
void BSTRtoASC (BSTR str, char * &strRet)
{
if ( str != NULL )
{
unsigned long length = WideCharToMultiByte (CP_ACP, 0, str, SysStringLen(str),
NULL, 0, NULL, NULL);
strRet = new char[length];
length = WideCharToMultiByte (CP_ACP, 0, str, SysStringLen(str),
reinterpret_cast <char *>(strRet), length, NULL, NULL);
strRet[length] = '\0';
}
}
void ASCtoBSTR (char * str, BSTR * strRet)
{
if ( str != NULL )
{
unsigned long length = strlen(str);
int ResultLength = MultiByteToWideChar (CP_ACP,MB_PRECOMPOSED,
reinterpret_cast <char *>(str),length,NULL,0);
*strRet = SysAllocStringLen( NULL, ResultLength);
MultiByteToWideChar (CP_ACP,MB_PRECOMPOSED,
reinterpret_cast <char *>(str),length,*strRet,ResultLength);
}
} |
Partager