You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.0 KiB
98 lines
2.0 KiB
/*++
|
|
|
|
Copyright (c) 1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
unilib.c
|
|
|
|
Abstract:
|
|
|
|
This string handling the KM code for Unidrv
|
|
|
|
Environment:
|
|
|
|
Win32 subsystem, Unidrv driver
|
|
|
|
Revision History:
|
|
|
|
11/12/96 -eigos-
|
|
Created it.
|
|
|
|
dd-mm-yy -author-
|
|
description
|
|
|
|
--*/
|
|
|
|
#include "precomp.h"
|
|
|
|
DWORD
|
|
DwCopyStringToUnicodeString(
|
|
IN UINT uiCodePage,
|
|
IN PSTR pstrCharIn,
|
|
OUT PWSTR pwstrCharOut,
|
|
IN INT iwcOutSize)
|
|
|
|
{
|
|
INT iCharCountIn;
|
|
INT iRetVal;
|
|
size_t stStringLength;
|
|
|
|
if ( NULL == pwstrCharOut )
|
|
{
|
|
return (DWORD)(-1);
|
|
}
|
|
|
|
iCharCountIn = strlen(pstrCharIn) + 1;
|
|
|
|
iRetVal = EngMultiByteToWideChar(uiCodePage,
|
|
pwstrCharOut,
|
|
iwcOutSize * sizeof(WCHAR),
|
|
pstrCharIn,
|
|
iCharCountIn);
|
|
|
|
if ( -1 == iRetVal ||
|
|
FAILED ( StringCchLengthW ( pwstrCharOut, iwcOutSize, &stStringLength ) ) )
|
|
{
|
|
pwstrCharOut[iwcOutSize-1] = TEXT('\0');
|
|
}
|
|
|
|
return (DWORD)iRetVal;
|
|
|
|
}
|
|
|
|
DWORD
|
|
DwCopyUnicodeStringToString(
|
|
IN UINT uiCodePage,
|
|
IN PWSTR pwstrCharIn,
|
|
OUT PSTR pstrCharOut,
|
|
IN INT icbOutSize)
|
|
|
|
{
|
|
INT iCharCountIn;
|
|
INT iRetVal;
|
|
size_t stStringLength;
|
|
|
|
if ( NULL == pstrCharOut )
|
|
{
|
|
return (DWORD)(-1);
|
|
}
|
|
|
|
|
|
iCharCountIn = wcslen(pwstrCharIn) + 1;
|
|
|
|
iRetVal = EngWideCharToMultiByte(uiCodePage,
|
|
pwstrCharIn,
|
|
iCharCountIn * sizeof(WCHAR),
|
|
pstrCharOut,
|
|
icbOutSize);
|
|
|
|
if ( -1 == iRetVal ||
|
|
FAILED ( StringCchLengthA ( pstrCharOut, icbOutSize, &stStringLength ) ) )
|
|
{
|
|
pstrCharOut[icbOutSize-1] = '\0';
|
|
}
|
|
|
|
return (DWORD)iRetVal;
|
|
}
|
|
|