1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _MAPINLS_H_
7#define _MAPINLS_H_
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13#ifndef WINAPI
14#if defined(_ARM_)
15#define WINAPI
16#else
17#define WINAPI __stdcall
18#endif
19#endif
20
21#ifdef DOS
22#include <string.h>
23#endif
24
25#ifndef FAR
26#define FAR
27#endif
28
29  typedef unsigned char BYTE;
30  typedef unsigned short WORD;
31  typedef unsigned __LONG32 DWORD;
32  typedef unsigned int UINT;
33  typedef int WINBOOL;
34
35#ifndef __CHAR_DEFINED__
36  typedef char CHAR;
37#endif
38
39#if defined(UNICODE)
40  typedef WCHAR TCHAR;
41#else
42  typedef char TCHAR;
43#endif
44
45#ifndef __WCHAR_DEFINED
46#define __WCHAR_DEFINED
47  typedef unsigned short WCHAR;
48#endif
49  typedef WCHAR *LPWSTR;
50  typedef const WCHAR *LPCWSTR;
51  typedef CHAR *LPSTR;
52  typedef const CHAR *LPCSTR;
53  typedef TCHAR *LPTSTR;
54  typedef const TCHAR *LPCTSTR;
55  typedef DWORD LCID;
56#ifndef _LPCVOID_DEFINED
57#define _LPCVOID_DEFINED
58  typedef const void *LPCVOID;
59#endif
60
61#ifndef LPOLESTR
62#define LPOLESTR LPWSTR
63#define LPCOLESTR LPCWSTR
64#define OLECHAR WCHAR
65#define OLESTR(str) L##str
66#endif
67
68#define NORM_IGNORECASE 0x00000001
69#define NORM_IGNORENONSPACE 0x00000002
70#define NORM_IGNORESYMBOLS 0x00000004
71#define NORM_IGNOREKANATYPE 0x00010000
72#define NORM_IGNOREWIDTH 0x00020000
73
74#define CP_ACP 0
75#define CP_OEMCP 1
76
77  LCID WINAPI MNLS_GetUserDefaultLCID(void);
78  UINT WINAPI MNLS_GetACP(void);
79  int WINAPI MNLS_CompareStringA(LCID Locale,DWORD dwCmpFlags,LPCSTR lpString1,int cchCount1,LPCSTR lpString2,int cchCount2);
80  int WINAPI MNLS_CompareStringW(LCID Locale,DWORD dwCmpFlags,LPCWSTR lpString1,int cchCount1,LPCWSTR lpString2,int cchCount2);
81  int WINAPI MNLS_MultiByteToWideChar(UINT uCodePage,DWORD dwFlags,LPCSTR lpMultiByteStr,int cchMultiByte,LPWSTR lpWideCharStr,int cchWideChar);
82  int WINAPI MNLS_WideCharToMultiByte(UINT uCodePage,DWORD dwFlags,LPCWSTR lpWideCharStr,int cchWideChar,LPSTR lpMultiByteStr,int cchMultiByte,LPCSTR lpDefaultChar,WINBOOL *lpfUsedDefaultChar);
83  int WINAPI MNLS_lstrlenW(LPCWSTR lpString);
84  int WINAPI MNLS_lstrcmpW(LPCWSTR lpString1,LPCWSTR lpString2);
85  LPWSTR WINAPI MNLS_lstrcpyW(LPWSTR lpString1,LPCWSTR lpString2);
86  WINBOOL WINAPI MNLS_IsBadStringPtrW(LPCWSTR lpsz,UINT ucchMax);
87
88#if !defined(_WINNT) && !defined(_WIN95)
89#define _WINNT
90#endif
91
92#if !defined(_WINNT) && !defined(_WIN95)
93#define GetUserDefaultLCID MNLS_GetUserDefaultLCID
94#define GetACP MNLS_GetACP
95#define MultiByteToWideChar MNLS_MultiByteToWideChar
96#define WideCharToMultiByte MNLS_WideCharToMultiByte
97#define CompareStringA MNLS_CompareStringA
98#endif
99
100#if !defined(MAPI_NOWIDECHAR)
101
102#define lstrlenW MNLS_lstrlenW
103#define lstrcmpW MNLS_lstrcmpW
104#define lstrcpyW MNLS_lstrcpyW
105#define CompareStringW MNLS_CompareStringW
106
107#if defined(_WINNT) || defined(_WIN95)
108#define IsBadStringPtrW MNLS_IsBadStringPtrW
109#else
110#define IsBadStringPtrW (FALSE)
111#endif
112#endif
113
114#ifdef __cplusplus
115}
116#endif
117#endif
118