windows-nt/Source/XPSP1/NT/com/ole32/stg/ref/h/wchar.h
2020-09-26 16:20:57 +08:00

95 lines
3.4 KiB
C

/*+---------------------------------------------------------------------------
**
** File: WChar.h
**
** Contents: Defines wide character equivalents for standard functions
** usually in strings.h and ctypes.h
**
** Note: These routines uses WCHAR which is unsigned short (2 bytes)
** They are not compatible with some systems that uses 4 bytes
** wide characters
**--------------------------------------------------------------------------*/
#ifndef __WCHAR__H__
#define __WCHAR__H__
#define _WSTRING_DEFINED // prevent incompatibility with <string.h>
#include <stdlib.h>
#if !defined(FLAT) || defined(OLE32)
#include <stdarg.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef unsigned short WCHAR, *LPWSTR;
typedef const WCHAR* LPCWSTR;
/* use an alias */
#define _wcsnicmp wcsnicmp
/* Unicode Byte Order Mark (BOM) for Unicode text files */
#define BOM 0xFEFF
/* Padding constant and macro for localized buffer allocation*/
#define INTL_PADDING_VALUE 3
#define INTL_PADDING(cb) (INTL_PADDING_VALUE * (cb))
long __cdecl wcsatol(const WCHAR *wsz);
int __cdecl wcsatoi(const WCHAR *wsz);
WCHAR * __cdecl wcscat(WCHAR *wsz1, const WCHAR *wsz2);
WCHAR * __cdecl wcschr ( const WCHAR * string, WCHAR ch );
int __cdecl wcscmp(const WCHAR *wsz1, const WCHAR *wsz2);
int __cdecl wcsicmp(const WCHAR *wsz1, const WCHAR *wsz2);
int __cdecl wcscoll(const WCHAR * wsz1, const WCHAR * wsz2);
WCHAR * __cdecl wcscpy(WCHAR *wsz1, WCHAR const *wsz2);
WCHAR * __cdecl wcsitoa(int ival, WCHAR *wsz, int radix);
size_t __cdecl wcslen(WCHAR const *wsz);
WCHAR * __cdecl wcsltoa(long lval, WCHAR *wsz, int radix);
WCHAR * __cdecl wcslwr(WCHAR *wsz);
int __cdecl wcsncmp(const WCHAR *wsz1, const WCHAR *wsz2, size_t count);
int __cdecl wcsnicmp(const WCHAR *wsz1, const WCHAR *wsz2, size_t count);
WCHAR * __cdecl wcsncpy ( WCHAR * dest, const WCHAR * source, size_t count );
WCHAR * __cdecl wcsrchr(const WCHAR * wcs, WCHAR wc);
WCHAR * __cdecl wcsupr(WCHAR *wsz);
WCHAR * __cdecl wcswcs(const WCHAR *wsz1, const WCHAR *wsz2);
size_t __cdecl wcstosbs( char * s, const WCHAR * pwcs, size_t n);
size_t __cdecl sbstowcs(WCHAR *wcstr, const char *mbstr, size_t count);
#ifndef STDCALL
#ifdef _WIN32
#define STDCALL __stdcall
#else
#define STDCALL
#endif
#endif
extern int STDCALL MultiByteToWideChar(
unsigned int CodePage, /* code page */
unsigned long dwFlags, /* character-type options */
const char * lpMultiByteStr, /* address of string to map */
int cchMultiByte, /* number of characters in string */
WCHAR* lpWideCharStr, /* address of wide-character buffer */
int cchWideChar /* size of buffer */
);
extern int STDCALL WideCharToMultiByte(
unsigned int CodePage, /* code page */
unsigned long dwFlags, /* performance and mapping flags */
const WCHAR* lpWideCharStr, /* address of wide-character string */
int cchWideChar, /* number of characters in string */
char* lpMultiByteStr, /* address of buffer for new string */
int cchMultiByte, /* size of buffer */
const char* lpDefaultChar, /* addr of default for unmappable chars */
int* lpUsedDefaultChar /* addr of flag set when default char. used */
);
#ifdef __cplusplus
}
#endif
#endif /* !defined(FLAT) || defined(OLE32) */
#endif /* __WCHAR__H__ */