OSDN Git Service

Fix bugs of simultaneous connection.
[ffftp/ffftp.git] / 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 WinMain\r
15 #define WinMain WinMainM\r
16 int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow);\r
17 #undef LoadLibrary\r
18 #define LoadLibrary LoadLibraryM\r
19 HMODULE LoadLibraryM(LPCSTR lpLibFileName);\r
20 #undef CreateFile\r
21 #define CreateFile CreateFileM\r
22 HANDLE CreateFileM(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);\r
23 #undef MessageBox\r
24 #define MessageBox MessageBoxM\r
25 int MessageBoxM(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType);\r
26 #undef FindFirstFile\r
27 #define FindFirstFile FindFirstFileM\r
28 HANDLE FindFirstFileM(LPCSTR lpFileName, LPWIN32_FIND_DATAA lpFindFileData);\r
29 #undef FindNextFile\r
30 #define FindNextFile FindNextFileM\r
31 BOOL FindNextFileM(HANDLE hFindFile, LPWIN32_FIND_DATAA lpFindFileData);\r
32 #undef GetLogicalDriveStrings\r
33 #define GetLogicalDriveStrings GetLogicalDriveStringsM\r
34 DWORD GetLogicalDriveStringsM(DWORD nBufferLength, LPSTR lpBuffer);\r
35 #undef RegisterClassEx\r
36 #define RegisterClassEx RegisterClassExM\r
37 ATOM RegisterClassExM(CONST WNDCLASSEXA * v0);\r
38 #undef CreateWindowEx\r
39 #define CreateWindowEx CreateWindowExM\r
40 HWND CreateWindowExM(DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam);\r
41 #undef GetWindowLong\r
42 #define GetWindowLong GetWindowLongM\r
43 LONG GetWindowLongM(HWND hWnd, int nIndex);\r
44 #undef SetWindowLong\r
45 #define SetWindowLong SetWindowLongM\r
46 LONG SetWindowLongM(HWND hWnd, int nIndex, LONG dwNewLong);\r
47 #undef GetWindowLongPtr\r
48 #define GetWindowLongPtr GetWindowLongPtrM\r
49 LONG_PTR GetWindowLongPtrM(HWND hWnd, int nIndex);\r
50 #undef SetWindowLongPtr\r
51 #define SetWindowLongPtr SetWindowLongPtrM\r
52 LONG_PTR SetWindowLongPtrM(HWND hWnd, int nIndex, LONG_PTR dwNewLong);\r
53 #undef DefWindowProc\r
54 #define DefWindowProc DefWindowProcM\r
55 LRESULT DefWindowProcM(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);\r
56 #undef CallWindowProc\r
57 #define CallWindowProc CallWindowProcM\r
58 LRESULT CallWindowProcM(WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);\r
59 #undef SendMessage\r
60 #define SendMessage SendMessageM\r
61 LRESULT SendMessageM(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);\r
62 #undef DefDlgProc\r
63 #define DefDlgProc DefDlgProcM\r
64 LRESULT DefDlgProcM(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);\r
65 #undef SendDlgItemMessage\r
66 #define SendDlgItemMessage SendDlgItemMessageM\r
67 LRESULT SendDlgItemMessageM(HWND hDlg, int nIDDlgItem, UINT Msg, WPARAM wParam, LPARAM lParam);\r
68 #undef SetWindowText\r
69 #define SetWindowText SetWindowTextM\r
70 BOOL SetWindowTextM(HWND hWnd, LPCSTR lpString);\r
71 #undef DragQueryFile\r
72 #define DragQueryFile DragQueryFileM\r
73 UINT DragQueryFileM(HDROP hDrop, UINT iFile, LPSTR lpszFile, UINT cch);\r
74 #undef GetCommandLine\r
75 #define GetCommandLine GetCommandLineM\r
76 LPSTR GetCommandLineM();\r
77 #undef GetCurrentDirectory\r
78 #define GetCurrentDirectory GetCurrentDirectoryM\r
79 DWORD GetCurrentDirectoryM(DWORD nBufferLength, LPSTR lpBuffer);\r
80 #undef SetCurrentDirectory\r
81 #define SetCurrentDirectory SetCurrentDirectoryM\r
82 BOOL SetCurrentDirectoryM(LPCSTR lpPathName);\r
83 #undef GetTempPath\r
84 #define GetTempPath GetTempPathM\r
85 DWORD GetTempPathM(DWORD nBufferLength, LPSTR lpBuffer);\r
86 #undef GetFileAttributes\r
87 #define GetFileAttributes GetFileAttributesM\r
88 DWORD GetFileAttributesM(LPCSTR lpFileName);\r
89 #undef GetModuleFileName\r
90 #define GetModuleFileName GetModuleFileNameM\r
91 DWORD GetModuleFileNameM(HMODULE hModule, LPCH lpFilename, DWORD nSize);\r
92 #undef RegOpenKeyEx\r
93 #define RegOpenKeyEx RegOpenKeyExM\r
94 LSTATUS RegOpenKeyExM(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult);\r
95 #undef RegCreateKeyEx\r
96 #define RegCreateKeyEx RegCreateKeyExM\r
97 LSTATUS RegCreateKeyExM(HKEY hKey, LPCSTR lpSubKey, DWORD Reserved, LPSTR lpClass, DWORD dwOptions, REGSAM samDesired, CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition);\r
98 #undef RegDeleteValue\r
99 #define RegDeleteValue RegDeleteValueM\r
100 LSTATUS RegDeleteValueM(HKEY hKey, LPCSTR lpValueName);\r
101 #undef RegQueryValueEx\r
102 #define RegQueryValueEx RegQueryValueExM\r
103 LSTATUS RegQueryValueExM(HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData);\r
104 #undef RegSetValueEx\r
105 #define RegSetValueEx RegSetValueExM\r
106 LSTATUS RegSetValueExM(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE* lpData, DWORD cbData);\r
107 #undef TextOut\r
108 #define TextOut TextOutM\r
109 BOOL TextOutM(HDC hdc, int x, int y, LPCSTR lpString, int c);\r
110 #undef GetTextExtentPoint32\r
111 #define GetTextExtentPoint32 GetTextExtentPoint32M\r
112 BOOL GetTextExtentPoint32M(HDC hdc, LPCSTR lpString, int c, LPSIZE psizl);\r
113 #undef PropertySheet\r
114 #define PropertySheet PropertySheetM\r
115 INT_PTR PropertySheetM(LPCPROPSHEETHEADERA v0);\r
116 #undef GetOpenFileName\r
117 #define GetOpenFileName GetOpenFileNameM\r
118 BOOL GetOpenFileNameM(LPOPENFILENAMEA v0);\r
119 #undef GetSaveFileName\r
120 #define GetSaveFileName GetSaveFileNameM\r
121 BOOL GetSaveFileNameM(LPOPENFILENAMEA v0);\r
122 #undef HtmlHelp\r
123 #define HtmlHelp HtmlHelpM\r
124 HWND HtmlHelpM(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData);\r
125 #undef CreateProcess\r
126 #define CreateProcess CreateProcessM\r
127 BOOL CreateProcessM(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation);\r
128 #undef FindExecutable\r
129 #define FindExecutable FindExecutableM\r
130 HINSTANCE FindExecutableM(LPCSTR lpFile, LPCSTR lpDirectory, LPSTR lpResult);\r
131 #undef ShellExecute\r
132 #define ShellExecute ShellExecuteM\r
133 HINSTANCE ShellExecuteM(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd);\r
134 #undef ShellExecuteEx\r
135 #define ShellExecuteEx ShellExecuteExM\r
136 BOOL ShellExecuteExM(LPSHELLEXECUTEINFOA lpExecInfo);\r
137 #undef SHBrowseForFolder\r
138 #define SHBrowseForFolder SHBrowseForFolderM\r
139 PIDLIST_ABSOLUTE SHBrowseForFolderM(LPBROWSEINFOA lpbi);\r
140 #undef SHGetPathFromIDList\r
141 #define SHGetPathFromIDList SHGetPathFromIDListM\r
142 BOOL SHGetPathFromIDListM(PCIDLIST_ABSOLUTE pidl, LPSTR pszPath);\r
143 #undef SHFileOperation\r
144 #define SHFileOperation SHFileOperationM\r
145 int SHFileOperationM(LPSHFILEOPSTRUCTA lpFileOp);\r
146 #undef SHGetFileInfo\r
147 #define SHGetFileInfo SHGetFileInfoM\r
148 DWORD_PTR SHGetFileInfoM(LPCSTR pszPath, DWORD dwFileAttributes, SHFILEINFOA *psfi, UINT cbFileInfo, UINT uFlags);\r
149 #undef AppendMenu\r
150 #define AppendMenu AppendMenuM\r
151 BOOL AppendMenuM(HMENU hMenu, UINT uFlags, UINT_PTR uIDNewItem, LPCSTR lpNewItem);\r
152 #undef GetMenuItemInfo\r
153 #define GetMenuItemInfo GetMenuItemInfoM\r
154 BOOL GetMenuItemInfoM(HMENU hmenu, UINT item, BOOL fByPosition, LPMENUITEMINFOA lpmii);\r
155 #undef CreateFontIndirect\r
156 #define CreateFontIndirect CreateFontIndirectM\r
157 HFONT CreateFontIndirectM(CONST LOGFONTA *lplf);\r
158 #undef ChooseFont\r
159 #define ChooseFont ChooseFontM\r
160 BOOL ChooseFontM(LPCHOOSEFONTA v0);\r
161 #undef DialogBoxParam\r
162 #define DialogBoxParam DialogBoxParamM\r
163 INT_PTR DialogBoxParamM(HINSTANCE hInstance, LPCSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam);\r
164 #undef CreateDialogParam\r
165 #define CreateDialogParam CreateDialogParamM\r
166 HWND CreateDialogParamM(HINSTANCE hInstance, LPCSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam);\r
167 #undef sndPlaySound\r
168 #define sndPlaySound sndPlaySoundM\r
169 BOOL sndPlaySoundM(LPCSTR pszSound, UINT fuSound);\r
170 #undef SetClipboardData\r
171 #define SetClipboardData SetClipboardDataM\r
172 HANDLE SetClipboardDataM(UINT uFormat, HANDLE hMem);\r
173 #undef CopyFile\r
174 #define CopyFile CopyFileM\r
175 BOOL CopyFileM(LPCSTR lpExistingFileName, LPCSTR lpNewFileName, BOOL bFailIfExists);\r
176 #undef MoveFile\r
177 #define MoveFile MoveFileM\r
178 BOOL MoveFileM(LPCSTR lpExistingFileName, LPCSTR lpNewFileName);\r
179 #undef mkdir\r
180 #define mkdir _mkdirM\r
181 int mkdirM(const char * _Path);\r
182 #undef _mkdir\r
183 #define _mkdir _mkdirM\r
184 int _mkdirM(const char * _Path);\r
185 #undef rmdir\r
186 #define rmdir rmdirM\r
187 int rmdirM(const char * _Path);\r
188 #undef _rmdir\r
189 #define _rmdir _rmdirM\r
190 int _rmdirM(const char * _Path);\r
191 #undef remove\r
192 #define remove removeM\r
193 int removeM(const char * _Filename);\r
194 #undef _remove\r
195 #define _remove _removeM\r
196 int _removeM(const char * _Filename);\r
197 #undef _unlink\r
198 #define _unlink _unlinkM\r
199 int _unlinkM(const char * _Filename);\r
200 #undef _mbslen\r
201 #define _mbslen _mbslenM\r
202 size_t _mbslenM(const unsigned char * _Str);\r
203 #undef _mbschr\r
204 #define _mbschr _mbschrM\r
205 unsigned char * _mbschrM(const unsigned char * _Str, unsigned int _Ch);\r
206 #undef _mbsrchr\r
207 #define _mbsrchr _mbsrchrM\r
208 unsigned char * _mbsrchrM(const unsigned char * _Str, unsigned int _Ch);\r
209 #undef _mbsstr\r
210 #define _mbsstr _mbsstrM\r
211 unsigned char * _mbsstrM(const unsigned char * _Str, const unsigned char * _Substr);\r
212 #undef _mbscmp\r
213 #define _mbscmp _mbscmpM\r
214 int _mbscmpM(const unsigned char * _Str1, const unsigned char * _Str2);\r
215 #undef _mbsicmp\r
216 #define _mbsicmp _mbsicmpM\r
217 int _mbsicmpM(const unsigned char * _Str1, const unsigned char * _Str2);\r
218 #undef _mbsncmp\r
219 #define _mbsncmp _mbsncmpM\r
220 int _mbsncmpM(const unsigned char * _Str1, const unsigned char * _Str2, size_t _MaxCount);\r
221 #undef _mbslwr\r
222 #define _mbslwr _mbslwrM\r
223 unsigned char * _mbslwrM(unsigned char * _String);\r
224 #undef _mbsupr\r
225 #define _mbsupr _mbsuprM\r
226 unsigned char * _mbsuprM(unsigned char * _String);\r
227 #undef _mbsninc\r
228 #define _mbsninc _mbsnincM\r
229 unsigned char * _mbsnincM(const unsigned char * _Str, size_t _Count);\r
230 #undef fopen\r
231 #define fopen fopenM\r
232 FILE * fopenM(const char * _Filename, const char * _Mode);\r
233 \r
234 #undef CreateWindow\r
235 #define CreateWindow(lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) CreateWindowEx(0L, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\r
236 #undef DialogBox\r
237 #define DialogBox(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxParam(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)\r
238 \r
239 #endif\r
240 \r
241 int MtoW(LPWSTR pDst, int size, LPCSTR pSrc, int count);\r
242 int WtoM(LPSTR pDst, int size, LPCWSTR pSrc, int count);\r
243 int AtoW(LPWSTR pDst, int size, LPCSTR pSrc, int count);\r
244 int WtoA(LPSTR pDst, int size, LPCWSTR pSrc, int count);\r
245 int TerminateStringM(LPSTR lpString, int size);\r
246 int TerminateStringW(LPWSTR lpString, int size);\r
247 int TerminateStringA(LPSTR lpString, int size);\r
248 size_t GetMultiStringLengthM(LPCSTR lpString);\r
249 size_t GetMultiStringLengthW(LPCWSTR lpString);\r
250 size_t GetMultiStringLengthA(LPCSTR lpString);\r
251 int MtoWMultiString(LPWSTR pDst, int size, LPCSTR pSrc);\r
252 int WtoMMultiString(LPSTR pDst, int size, LPCWSTR pSrc);\r
253 int AtoWMultiString(LPWSTR pDst, int size, LPCSTR pSrc);\r
254 int WtoAMultiString(LPSTR pDst, int size, LPCWSTR pSrc);\r
255 char* AllocateStringM(int size);\r
256 wchar_t* AllocateStringW(int size);\r
257 char* AllocateStringA(int size);\r
258 wchar_t* DuplicateMtoW(LPCSTR lpString, int c);\r
259 wchar_t* DuplicateMtoWBuffer(LPCSTR lpString, int c, int size);\r
260 wchar_t* DuplicateMtoWMultiString(LPCSTR lpString);\r
261 wchar_t* DuplicateMtoWMultiStringBuffer(LPCSTR lpString, int size);\r
262 char* DuplicateWtoM(LPCWSTR lpString, int c);\r
263 wchar_t* DuplicateAtoW(LPCSTR lpString, int c);\r
264 char* DuplicateWtoA(LPCWSTR lpString, int c);\r
265 DWORD GetNextCharM(LPCSTR lpString, LPCSTR* ppNext);\r
266 BOOL FixStringM(LPSTR pDst, LPCSTR pSrc);\r
267 BOOL FixMultiStringM(LPSTR pDst, LPCSTR pSrc);\r
268 BOOL CheckStringM(LPCSTR lpString);\r
269 BOOL CheckMultiStringM(LPCSTR lpString);\r
270 void FreeDuplicatedString(void* p);\r
271 \r
272 int WINAPI WinMainM(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);\r
273 \r
274 #endif\r
275 \r