Example #1
0
File: str.cpp Project: stankusl/evo
static LPWSTR xToUnicodeEx(DWORD codePage, LPSTR source, int size)
{
  if(size == -1)size = Str::_LengthA(source);
  int destSize = xToUnicode(codePage, source, size, NULL, 0);
  if(destSize > 0)
  {
    destSize += sizeof(BYTE);
    LPWSTR dest = (LPWSTR)Mem::alloc(destSize * sizeof(WCHAR));
    if(dest != NULL)
    {
      xToUnicode(codePage, source, size, dest, destSize);
      return dest;
    }
  }
  return NULL;
}
Example #2
0
LPWSTR xToUnicodeEx(DWORD codePage,LPSTR source,int size)
{
    if (size == -1)
        size=lstrlenA(source);
    int destSize=xToUnicode(codePage,source,size,NULL,0);
    if (destSize > 0)
    {
        destSize+=sizeof(BYTE);
        LPWSTR dest=(LPWSTR)_alloc(destSize*sizeof(WCHAR));
        if (dest)
        {
            xToUnicode(codePage,source,size,dest,destSize);
            return dest;
        }
    }
    return NULL;
}
Example #3
0
SYSLIBFUNC(DWORD) StrAnsiToUnicode(LPCSTR lpSource,DWORD dwSourceSize,LPWSTR lpDest,DWORD dwDestSize)
{
    DWORD dwRet=0;
    do
    {
        if (!SYSLIB_SAFE::CheckStrParamA(lpSource,dwSourceSize))
            break;

        if (!dwDestSize)
            dwDestSize=lstrlenA(lpSource)+1;

        if (!SYSLIB_SAFE::CheckParamWrite(lpDest,dwDestSize*sizeof(WCHAR)))
            break;

        dwRet=xToUnicode(1251,lpSource,dwSourceSize,lpDest,dwDestSize);
    }
    while (false);
    return dwRet;
}
Example #4
0
SYSLIBFUNC(LPWSTR) StrOemToUnicodeEx(LPCSTR lpSource,DWORD dwSourceSize,LPDWORD lpOutSize)
{
    LPWSTR lpOut=NULL;
    do
    {
        if (!SYSLIB_SAFE::CheckStrParamsExA(lpSource,dwSourceSize,&lpOutSize))
            break;

        if (!dwSourceSize)
        {
            dwSourceSize=lstrlenA(lpSource);
            if (!dwSourceSize)
                break;
        }

        DWORD dwRequedSize=xToUnicode(CP_OEMCP,lpSource,dwSourceSize,NULL,0);
        if (!dwRequedSize)
            break;

        lpOut=WCHAR_QuickAlloc(dwRequedSize+1);
        if (!lpOut)
            break;

        DWORD dwOutSize=StrOemToUnicode(lpSource,dwSourceSize,lpOut,dwRequedSize);
        if (dwOutSize)
        {
            if (lpOutSize)
                *lpOutSize=dwOutSize;

            lpOut[dwOutSize]=0;
            break;
        }

        MemFree(lpOut);
        lpOut=NULL;
    }
    while (false);
    return lpOut;
}
Example #5
0
int AnsiToUnicode(LPSTR source,int sourceSize,LPWSTR dest,int destSize)
{
    return xToUnicode(1251,source,sourceSize,dest,destSize);
}