Leaked source code of windows server 2003
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.
|
|
/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
unicode.h
Abstract:
Declares the interfaces for unicode/ansi conversion.
See macros at the end of this file for details! (Search for ***)
Author:
Jim Schmidt (jimschm) 02-Sep-1997
Revision History:
jimschm 16-Mar-2000 PTSTR<->PCSTR/PCWSTR routines jimschm 15-Feb-1999 Eliminated AnsiFromUnicode and UnicodeFromAnsi calinn 07-Jul-1998 SetGlobalPage/GetGlobalPage mikeco 03-Nov-1997 AnsiFromUnicode/UnicodeFromAnsi
--*/
#pragma once
#ifdef __cplusplus
extern "C" { #endif
//
// Function Prototoypes
//
//
// Pre-allocated buffer conversion routines.
// End of string is returned.
//
PWSTR SzConvertBufferBytesAToW ( OUT PWSTR OutputBuffer, IN PCSTR InputString, IN UINT ByteCountInclNul );
#define SzConvertBufferAToW(out,in) SzConvertBufferBytesAToW(out,in,SzSizeA(in))
PSTR SzConvertBufferBytesWToA ( OUT PSTR OutputBuffer, IN PCWSTR InputString, IN UINT ByteCountInclNul );
#define SzConvertBufferWToA(out,in) SzConvertBufferBytesWToA(out,in,SzSizeW(in))
//
// Duplicate & convert routines
//
// SzConvertAToW(ansi) returns unicode
// SzConvertWToA(unicode) returns ansi
//
PWSTR RealSzConvertBytesAToW ( IN PCSTR AnsiString, IN UINT ByteCountInclNul );
#define SzConvertBytesAToW(ansi,bytes) DBGTRACK(PWSTR, SzConvertBytesAToW, (ansi,bytes))
#define SzConvertAToW(ansi) SzConvertBytesAToW(ansi,SzSizeA(ansi))
PSTR RealSzConvertBytesWToA ( IN PCWSTR UnicodeString, IN UINT ByteCountInclNul );
#define SzConvertBytesWToA(unicode,bytes) DBGTRACK(PSTR, SzConvertBytesWToA, (unicode,bytes))
#define SzConvertWToA(unicode) SzConvertBytesWToA(unicode,SzSizeW(unicode))
//
// Routines to convert to & from TCHAR
//
#ifdef UNICODE
#define SzConvertToTstrA(ansi) SzConvertAToW(ansi)
#define SzConvertToTstrW(unicode) (unicode)
#define SzConvertFromTstrA(tstr) SzConvertWToA(tstr)
#define SzConvertFromTstrW(tstr) (tstr)
#else
#define SzConvertToTstrA(ansi) (ansi)
#define SzConvertToTstrW(unicode) SzConvertWToA(unicode)
#define SzConvertFromTstrA(tstr) (tstr)
#define SzConvertFromTstrW(tstr) SzConvertAToW(tstr)
#endif
#define SzFreeTstrConversion(original,converted) ((converted) && ((PBYTE) (converted) != (PBYTE) (original)) ? FAST_FREE(converted) : 1)
#ifdef __cplusplus
} #endif
|