OSDN Git Service

Add emulation for an old conversion method between UTF-8 and UTF-16.
[ffftp/ffftp.git] / putty / mbswrapper.h
1 // mbswrapper.h\r
2 // Copyright (C) 2011 Suguru Kawamoto\r
3 // マルチバイト文字ワイド文字APIラッパー\r
4 \r
5 #ifndef __MBSWRAPPER_H__\r
6 #define __MBSWRAPPER_H__\r
7 \r
8 #include <stdio.h>\r
9 #include <windows.h>\r
10 #include <shlobj.h>\r
11 \r
12 #ifndef DO_NOT_REPLACE\r
13 \r
14 #undef CreateFile\r
15 #define CreateFile CreateFileM\r
16 HANDLE CreateFileM(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);\r
17 #undef FindFirstFile\r
18 #define FindFirstFile FindFirstFileM\r
19 HANDLE FindFirstFileM(LPCSTR lpFileName, LPWIN32_FIND_DATAA lpFindFileData);\r
20 #undef FindNextFile\r
21 #define FindNextFile FindNextFileM\r
22 BOOL FindNextFileM(HANDLE hFindFile, LPWIN32_FIND_DATAA lpFindFileData);\r
23 #undef GetCurrentDirectory\r
24 #define GetCurrentDirectory GetCurrentDirectoryM\r
25 DWORD GetCurrentDirectoryM(DWORD nBufferLength, LPSTR lpBuffer);\r
26 #undef SetCurrentDirectory\r
27 #define SetCurrentDirectory SetCurrentDirectoryM\r
28 BOOL SetCurrentDirectoryM(LPCSTR lpPathName);\r
29 #undef GetTempPath\r
30 #define GetTempPath GetTempPathM\r
31 DWORD GetTempPathM(DWORD nBufferLength, LPSTR lpBuffer);\r
32 #undef GetFileAttributes\r
33 #define GetFileAttributes GetFileAttributesM\r
34 DWORD GetFileAttributesM(LPCSTR lpFileName);\r
35 #undef GetModuleFileName\r
36 #define GetModuleFileName GetModuleFileNameM\r
37 DWORD GetModuleFileNameM(HMODULE hModule, LPCH lpFilename, DWORD nSize);\r
38 #undef CopyFile\r
39 #define CopyFile CopyFileM\r
40 BOOL CopyFileM(LPCSTR lpExistingFileName, LPCSTR lpNewFileName, BOOL bFailIfExists);\r
41 #undef MoveFile\r
42 #define MoveFile MoveFileM\r
43 BOOL MoveFileM(LPCSTR lpExistingFileName, LPCSTR lpNewFileName);\r
44 #undef mkdir\r
45 #define mkdir _mkdirM\r
46 int mkdirM(const char * _Path);\r
47 #undef _mkdir\r
48 #define _mkdir _mkdirM\r
49 int _mkdirM(const char * _Path);\r
50 #undef rmdir\r
51 #define rmdir rmdirM\r
52 int rmdirM(const char * _Path);\r
53 #undef _rmdir\r
54 #define _rmdir _rmdirM\r
55 int _rmdirM(const char * _Path);\r
56 #undef remove\r
57 #define remove removeM\r
58 int removeM(const char * _Filename);\r
59 #undef _remove\r
60 #define _remove _removeM\r
61 int _removeM(const char * _Filename);\r
62 #undef _unlink\r
63 #define _unlink _unlinkM\r
64 int _unlinkM(const char * _Filename);\r
65 #undef _mbslen\r
66 #define _mbslen _mbslenM\r
67 size_t _mbslenM(const unsigned char * _Str);\r
68 #undef _mbschr\r
69 #define _mbschr _mbschrM\r
70 unsigned char * _mbschrM(const unsigned char * _Str, unsigned int _Ch);\r
71 #undef _mbsrchr\r
72 #define _mbsrchr _mbsrchrM\r
73 unsigned char * _mbsrchrM(const unsigned char * _Str, unsigned int _Ch);\r
74 #undef _mbsstr\r
75 #define _mbsstr _mbsstrM\r
76 unsigned char * _mbsstrM(const unsigned char * _Str, const unsigned char * _Substr);\r
77 #undef _mbscmp\r
78 #define _mbscmp _mbscmpM\r
79 int _mbscmpM(const unsigned char * _Str1, const unsigned char * _Str2);\r
80 #undef _mbsicmp\r
81 #define _mbsicmp _mbsicmpM\r
82 int _mbsicmpM(const unsigned char * _Str1, const unsigned char * _Str2);\r
83 #undef _mbsncmp\r
84 #define _mbsncmp _mbsncmpM\r
85 int _mbsncmpM(const unsigned char * _Str1, const unsigned char * _Str2, size_t _MaxCount);\r
86 #undef _mbslwr\r
87 #define _mbslwr _mbslwrM\r
88 unsigned char * _mbslwrM(unsigned char * _String);\r
89 #undef _mbsupr\r
90 #define _mbsupr _mbsuprM\r
91 unsigned char * _mbsuprM(unsigned char * _String);\r
92 #undef _mbsninc\r
93 #define _mbsninc _mbsnincM\r
94 unsigned char * _mbsnincM(const unsigned char * _Str, size_t _Count);\r
95 #undef fopen\r
96 #define fopen fopenM\r
97 FILE * fopenM(const char * _Filename, const char * _Mode);\r
98 \r
99 #endif\r
100 \r
101 #undef CP_ACP\r
102 #define CP_ACP 932\r
103 \r
104 int MtoW(LPWSTR pDst, int size, LPCSTR pSrc, int count);\r
105 int WtoM(LPSTR pDst, int size, LPCWSTR pSrc, int count);\r
106 int AtoW(LPWSTR pDst, int size, LPCSTR pSrc, int count);\r
107 int WtoA(LPSTR pDst, int size, LPCWSTR pSrc, int count);\r
108 int TerminateStringM(LPSTR lpString, int size);\r
109 int TerminateStringW(LPWSTR lpString, int size);\r
110 int TerminateStringA(LPSTR lpString, int size);\r
111 size_t GetMultiStringLengthM(LPCSTR lpString);\r
112 size_t GetMultiStringLengthW(LPCWSTR lpString);\r
113 size_t GetMultiStringLengthA(LPCSTR lpString);\r
114 int MtoWMultiString(LPWSTR pDst, int size, LPCSTR pSrc);\r
115 int WtoMMultiString(LPSTR pDst, int size, LPCWSTR pSrc);\r
116 int AtoWMultiString(LPWSTR pDst, int size, LPCSTR pSrc);\r
117 int WtoAMultiString(LPSTR pDst, int size, LPCWSTR pSrc);\r
118 char* AllocateStringM(int size);\r
119 wchar_t* AllocateStringW(int size);\r
120 char* AllocateStringA(int size);\r
121 wchar_t* DuplicateMtoW(LPCSTR lpString, int c);\r
122 wchar_t* DuplicateMtoWBuffer(LPCSTR lpString, int c, int size);\r
123 wchar_t* DuplicateMtoWMultiString(LPCSTR lpString);\r
124 wchar_t* DuplicateMtoWMultiStringBuffer(LPCSTR lpString, int size);\r
125 char* DuplicateWtoM(LPCWSTR lpString, int c);\r
126 wchar_t* DuplicateAtoW(LPCSTR lpString, int c);\r
127 char* DuplicateWtoA(LPCWSTR lpString, int c);\r
128 DWORD GetNextCharM(LPCSTR lpString, LPCSTR pLimit, LPCSTR* ppNext);\r
129 int PutNextCharM(LPSTR lpString, LPSTR pLimit, LPSTR* ppNext, DWORD Code);\r
130 DWORD GetNextCharW(LPCWSTR lpString, LPCWSTR pLimit, LPCWSTR* ppNext);\r
131 int PutNextCharW(LPWSTR lpString, LPWSTR pLimit, LPWSTR* ppNext, DWORD Code);\r
132 BOOL FixStringM(LPSTR pDst, LPCSTR pSrc);\r
133 BOOL FixMultiStringM(LPSTR pDst, LPCSTR pSrc);\r
134 BOOL CheckStringM(LPCSTR lpString);\r
135 BOOL CheckMultiStringM(LPCSTR lpString);\r
136 void FreeDuplicatedString(void* p);\r
137 int MultiByteToWideCharAlternative(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar);\r
138 int WideCharToMultiByteAlternative(UINT CodePage, DWORD dwFlags, LPCWSTR lpWideCharStr, int cchWideChar, LPSTR lpMultiByteStr, int cbMultiByte, LPCSTR lpDefaultChar, LPBOOL lpUsedDefaultChar);\r
139 \r
140 #endif\r
141 \r