|
|
//+--------------------------------------------------------------------------
//
// Copyright (c) 1997-1999 Microsoft Corporation
//
// File:
//
// Contents:
//
// History:
//
//---------------------------------------------------------------------------
#include "JetBlue.h"
//----------------------------------------------------------------
BOOL ConvertMJBstrToMWstr( JB_STRING in, DWORD length, LPTSTR* out ) /*
*/ { #if defined(UNICODE) && !defined(JET_BLUE_SUPPORT_UNICODE)
if(in == NULL) { *out = NULL; return TRUE; }
int bufSize;
bufSize = MultiByteToWideChar( GetACP(), MB_PRECOMPOSED, in, length, NULL, 0 );
if(bufSize == 0) { return FALSE; }
*out = (LPTSTR)LocalAlloc(LPTR, bufSize * sizeof(TCHAR)); if(*out == NULL) { return FALSE; }
return (MultiByteToWideChar( GetACP(), MB_PRECOMPOSED, in, length, *out, bufSize ) != 0); #else
*out = in; return TRUE;
#endif
}
//----------------------------------------------------------------
BOOL ConvertJBstrToWstr( JB_STRING in, LPTSTR* out ) /*
*/ { return ConvertMJBstrToMWstr(in, -1, out); } //----------------------------------------------------------------
BOOL ConvertMWstrToMJBstr( LPCTSTR in, DWORD length, JB_STRING* out ) /*
*/ { #if defined(UNICODE) && !defined(JET_BLUE_SUPPORT_UNICODE)
if(in == NULL) { *out = NULL; return TRUE; }
int bufSize;
bufSize = WideCharToMultiByte( GetACP(), 0, in, length, NULL, 0, NULL, NULL );
if(bufSize == 0) { return FALSE; }
*out = (LPSTR)LocalAlloc(LPTR, bufSize); if(*out == NULL) { return FALSE; }
return (WideCharToMultiByte( GetACP(), 0, in, length, *out, bufSize, NULL, NULL) != 0); #else
*out = in; return TRUE;
#endif
}
//----------------------------------------------------------------
BOOL ConvertWstrToJBstr( LPCTSTR in, JB_STRING* out ) { return ConvertMWstrToMJBstr( in, -1, out ); }
//----------------------------------------------------------------
void FreeJBstr( JB_STRING pstr ) { #if defined(UNICODE) && !defined(JET_BLUE_SUPPORT_UNICODE)
if(pstr) LocalFree(pstr); #endif
}
|