|
|
/*++
Copyright(c) 1995 Microsoft Corporation
MODULE NAME tstr.h
ABSTRACT String conversion routines
AUTHOR Anthony Discolo (adiscolo) 19-Dec-1996
REVISION HISTORY
--*/
#ifndef _TSTR_H_
#define _TSTR_H_
CHAR * StrdupWtoA( IN LPCWSTR psz, IN DWORD dwCp );
WCHAR * StrdupAtoW( IN LPCSTR psz, IN DWORD dwCp );
VOID StrcpyWtoA( OUT CHAR *pszDst, IN LPCWSTR pszSrc, IN DWORD dwCp );
VOID StrcpyAtoW( OUT WCHAR *pszDst, IN LPCSTR pszSrc, IN DWORD dwCp );
VOID StrncpyWtoA( OUT CHAR *pszDst, IN LPCWSTR pszSrc, INT cb, IN DWORD dwCp );
VOID StrncpyAtoW( OUT WCHAR *pszDst, IN LPCSTR pszSrc, INT cb, IN DWORD dwCp );
CHAR * strdupA( IN LPCSTR psz );
WCHAR * strdupW( IN LPCWSTR psz );
size_t wcslenU( IN const WCHAR UNALIGNED *psz );
WCHAR * strdupWU( IN const WCHAR UNALIGNED *psz );
//
// Define string conversion variants for code pages used
// in public RAS api's.
//
#define strdupWtoA(_x) StrdupWtoA((_x), CP_UTF8)
#define strdupAtoW(_x) StrdupAtoW((_x), CP_UTF8)
#define strcpyWtoA(_x, _y) StrcpyWtoA((_x), (_y), CP_UTF8)
#define strcpyAtoW(_x, _y) StrcpyAtoW((_x), (_y), CP_UTF8)
#define strncpyWtoA(_x, _y, _z) StrncpyWtoA((_x), (_y), (_z), CP_UTF8)
#define strncpyAtoW(_x, _y, _z) StrncpyAtoW((_x), (_y), (_z), CP_UTF8)
#define strdupWtoAAnsi(_x) StrdupWtoA((_x), CP_ACP)
#define strdupAtoWAnsi(_x) StrdupAtoW((_x), CP_ACP)
#define strcpyWtoAAnsi(_x, _y) StrcpyWtoA((_x), (_y), CP_ACP)
#define strcpyAtoWAnsi(_x, _y) StrcpyAtoW((_x), (_y), CP_ACP)
#define strncpyWtoAAnsi(_x, _y, _z) StrncpyWtoA((_x), (_y), (_z), CP_ACP)
#define strncpyAtoWAnsi(_x, _y, _z) StrncpyAtoW((_x), (_y), (_z), CP_ACP)
#ifdef UNICODE
#define strdupTtoA strdupWtoA
#define strdupTtoW strdupW
#define strdupAtoT strdupAtoW
#define strdupWtoT strdupW
#define strcpyTtoA strcpyWtoA
#define strcpyTtoW wcscpy
#define strcpyAtoT strcpyAtoW
#define strcpyWtoT wcscpy
#define strncpyTtoA strncpyWtoA
#define strncpyTtoW wcsncpy
#define strncpyAtoT strncpyAtoW
#define strncpyWtoT wcsncpy
#define strdupTtoAAnsi strdupWtoAAnsi
#define strdupTtoWAnsi strdupW
#define strdupAtoTAnsi strdupAtoWAnsi
#define strdupWtoTAnsi strdupW
#define strcpyTtoAAnsi strcpyWtoAAnsi
#define strcpyTtoWAnsi wcscpy
#define strcpyAtoTAnsi strcpyAtoWAnsi
#define strcpyWtoTAnsi wcscpy
#define strncpyTtoAAnsi strncpyWtoAAnsi
#define strncpyTtoWAnsi wcsncpy
#define strncpyAtoTAnsi strncpyAtoWAnsi
#define strncpyWtoTAnsi wcsncpy
#else
#define strdupTtoA strdupA
#define strdupTtoW strdupAtoW
#define strdupAtoT strdupA
#define strdupWtoT strdupWtoA
#define strcpyTtoA strcpy
#define strcpyTtoW strcpyAtoW
#define strcpyAtoT strcpy
#define strcpyWtoT strcpyWtoA
#define strncpyTtoA strncpy
#define strncpyTtoW strncpyAtoW
#define strncpyAtoT strncpy
#define strncpyWtoT strncpyWtoA
#define strdupTtoAAnsi strdupA
#define strdupTtoWAnsi strdupAtoWAnsi
#define strdupAtoTAnsi strdupA
#define strdupWtoTAnsi strdupWtoAAnsi
#define strcpyTtoAAnsi strcpy
#define strcpyTtoWAnsi strcpyAtoWAnsi
#define strcpyAtoTAnsi strcpy
#define strcpyWtoTAnsi strcpyWtoAAnsi
#define strncpyTtoAAnsi strncpy
#define strncpyTtoWAnsi strncpyAtoWAnsi
#define strncpyAtoTAnsi strncpy
#define strncpyWtoTAnsi strncpyWtoAAnsi
#endif
#endif
|