/******************************Module*Header*******************************\ * Module Name: nlsconv.h * * Created: 08-Sep-1991 14:01:23 * Author: Bodin Dresevic [BodinD] * 02-Feb-1993 00:32:35 * Copyright (c) 1991-1999 Microsoft Corporation. * * (General description of its use) * \**************************************************************************/ #include "winuserp.h" // nls conversion routines #include // c rtl library include file off of nt\public\sdk\inc /******************************Public*Macro******************************\ * bToASCIIN(pszDst, cch, pwszSrc, cwch) * * Calls the Rtl function that convert multi-byte ANSI to Unicode via * the current codepage. Note that this macro does not guarantee a * terminating NULL for the destination. * * Returns: * TRUE if converted successfully, FALSE otherwise. * \**************************************************************************/ #define bToASCII_N(pszDst, cch, pwszSrc, cwch) \ ( \ NT_SUCCESS(RtlUnicodeToMultiByteN((PCH)(pszDst), (ULONG)(cch), \ (PULONG)NULL,(PWSZ)(pwszSrc), (ULONG)((cwch)*sizeof(WCHAR)))) \ ) /******************************Public*Macro******************************\ * vToUnicodeN(awchDst, cwchDst, achSrc, cchSrc) * * Calls the Rtl function that convert Unicode to multi-byte ANSI via * the current codepage. Note that this macro does not guarantee a * terminating NULL for the destination. * * Returns: * Nothing. Should not be able to fail. * \**************************************************************************/ #if DBG #define vToUnicodeN( awchDst, cwchDst, achSrc, cchSrc ) \ { \ NTSTATUS st = \ RtlMultiByteToUnicodeN( \ (PWSZ)(awchDst),(ULONG)((cwchDst)*sizeof(WCHAR)), \ (PULONG)NULL,(PSZ)(achSrc),(ULONG)(cchSrc)); \ \ ASSERTGDI(NT_SUCCESS(st), \ "gdi32!vToUnicodeN(MACRO): Rtl func. failed\n"); \ } #else #define vToUnicodeN( awchDst, cwchDst, achSrc, cchSrc ) \ { \ RtlMultiByteToUnicodeN( \ (PWSZ)(awchDst),(ULONG)((cwchDst)*sizeof(WCHAR)), \ (PULONG)NULL,(PSZ)(achSrc),(ULONG)(cchSrc)); \ } #endif