OSDN Git Service

Fix bugs of playing sound.
[ffftp/ffftp.git] / mbswrapper.h
index aaf6e1b..af8ba4a 100644 (file)
-// mbswrapper.h
-// Copyright (C) 2011 Suguru Kawamoto
-// \83}\83\8b\83`\83o\83C\83g\95\8e\9a\83\8f\83C\83h\95\8e\9aAPI\83\89\83b\83p\81[
-
-#ifndef __MBSWRAPPER_H__
-#define __MBSWRAPPER_H__
-
-#ifndef DO_NOT_REPLACE
-
-#undef CreateFile
-#define CreateFile CreateFileM
-#undef MessageBox
-#define MessageBox MessageBoxM
-#undef FindFirstFile
-#define FindFirstFile FindFirstFileM
-#undef FindNextFile
-#define FindNextFile FindNextFileM
-#undef GetLogicalDriveStrings
-#define GetLogicalDriveStrings GetLogicalDriveStringsM
-#undef RegisterClassEx
-#define RegisterClassEx RegisterClassExM
-#undef CreateWindowEx
-#define CreateWindowEx CreateWindowExM
-#undef GetWindowLong
-#define GetWindowLong GetWindowLongM
-#undef SetWindowLong
-#define SetWindowLong SetWindowLongM
-#undef DefWindowProc
-#define DefWindowProc DefWindowProcM
-#undef CallWindowProc
-#define CallWindowProc CallWindowProcM
-#undef SendMessage
-#define SendMessage SendMessageM
-#undef SendDlgItemMessage
-#define SendDlgItemMessage SendDlgItemMessageM
-#undef SetWindowText
-#define SetWindowText SetWindowTextM
-#undef DragQueryFile
-#define DragQueryFile DragQueryFileM
-#undef GetCurrentDirectory
-#define GetCurrentDirectory GetCurrentDirectoryM
-#undef SetCurrentDirectory
-#define SetCurrentDirectory SetCurrentDirectoryM
-#undef SetDllDirectory
-#define SetDllDirectory SetDllDirectoryM
-#undef GetTempPath
-#define GetTempPath GetTempPathM
-#undef GetFileAttributes
-#define GetFileAttributes GetFileAttributesM
-#undef GetModuleFileName
-#define GetModuleFileName GetModuleFileNameM
-#undef RegOpenKeyEx
-#define RegOpenKeyEx RegOpenKeyExM
-#undef RegCreateKeyEx
-#define RegCreateKeyEx RegCreateKeyExM
-#undef RegDeleteValue
-#define RegDeleteValue RegDeleteValueM
-#undef RegQueryValueEx
-#define RegQueryValueEx RegQueryValueExM
-#undef RegSetValueEx
-#define RegSetValueEx RegSetValueExM
-#undef TextOut
-#define TextOut TextOutM
-#undef GetTextExtentPoint32
-#define GetTextExtentPoint32 GetTextExtentPoint32M
-#undef PropertySheet
-#define PropertySheet PropertySheetM
-#undef GetOpenFileName
-#define GetOpenFileName GetOpenFileNameM
-#undef GetSaveFileName
-#define GetSaveFileName GetSaveFileNameM
-#undef HtmlHelp
-#define HtmlHelp HtmlHelpM
-#undef CreateProcess
-#define CreateProcess CreateProcessM
-#undef FindExecutable
-#define FindExecutable FindExecutableM
-#undef ShellExecute
-#define ShellExecute ShellExecuteM
-#undef SHBrowseForFolder
-#define SHBrowseForFolder SHBrowseForFolderM
-#undef SHGetPathFromIDList
-#define SHGetPathFromIDList SHGetPathFromIDListM
-#undef SHFileOperation
-#define SHFileOperation SHFileOperationM
-#undef AppendMenu
-#define AppendMenu AppendMenuM
-#undef GetMenuItemInfo
-#define GetMenuItemInfo GetMenuItemInfoM
-#undef CreateFontIndirect
-#define CreateFontIndirect CreateFontIndirectM
-#undef ChooseFont
-#define ChooseFont ChooseFontM
-#undef DialogBoxParam
-#define DialogBoxParam DialogBoxParamM
-#undef CreateDialogParam
-#define CreateDialogParam CreateDialogParamM
-#undef mkdir
-#define mkdir _mkdirM
-#undef _mkdir
-#define _mkdir _mkdirM
-#undef rmdir
-#define rmdir rmdirM
-#undef _rmdir
-#define _rmdir _rmdirM
-#undef _mbslen
-#define _mbslen _mbslenM
-#undef _mbschr
-#define _mbschr _mbschrM
-#undef _mbsrchr
-#define _mbsrchr _mbsrchrM
-#undef _mbsstr
-#define _mbsstr _mbsstrM
-#undef _mbscmp
-#define _mbscmp _mbscmpM
-#undef _mbsicmp
-#define _mbsicmp _mbsicmpM
-#undef _mbsncmp
-#define _mbsncmp _mbsncmpM
-#undef _mbslwr
-#define _mbslwr _mbslwrM
-#undef _mbsupr
-#define _mbsupr _mbsuprM
-#undef _mbsninc
-#define _mbsninc _mbsnincM
-
-#undef CreateWindow
-#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)
-#undef DialogBox
-#define DialogBox(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxParam(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
-
-#endif
-
-int MtoW(LPWSTR pDst, int size, LPCSTR pSrc, int count);
-int WtoM(LPSTR pDst, int size, LPCWSTR pSrc, int count);
-int WtoA(LPSTR pDst, int size, LPCWSTR pSrc, int count);
-int TerminateStringM(LPSTR lpString, int size);
-int TerminateStringW(LPWSTR lpString, int size);
-int TerminateStringA(LPWSTR lpString, int size);
-size_t GetMultiStringLengthM(LPCSTR lpString);
-size_t GetMultiStringLengthW(LPCWSTR lpString);
-size_t GetMultiStringLengthA(LPCWSTR lpString);
-int MtoWMultiString(LPWSTR pDst, int size, LPCSTR pSrc);
-int WtoMMultiString(LPSTR pDst, int size, LPCWSTR pSrc);
-int WtoAMultiString(LPSTR pDst, int size, LPCWSTR pSrc);
-char* AllocateStringM(int size);
-wchar_t* AllocateStringW(int size);
-char* AllocateStringA(int size);
-wchar_t* DuplicateMtoW(LPCSTR lpString, int c);
-wchar_t* DuplicateMtoWBuffer(LPCSTR lpString, int c, int size);
-wchar_t* DuplicateMtoWMultiString(LPCSTR lpString);
-wchar_t* DuplicateMtoWMultiStringBuffer(LPCSTR lpString, int size);
-char* DuplicateWtoM(LPCWSTR lpString, int c);
-char* DuplicateWtoA(LPCWSTR lpString, int c);
-void FreeDuplicatedString(void* p);
-
-#endif
-
+// mbswrapper.h\r
+// Copyright (C) 2011 Suguru Kawamoto\r
+// マルチバイト文字ワイド文字APIラッパー\r
+\r
+#ifndef __MBSWRAPPER_H__\r
+#define __MBSWRAPPER_H__\r
+\r
+#include <stdio.h>\r
+#include <windows.h>\r
+#include <shlobj.h>\r
+\r
+#ifndef DO_NOT_REPLACE\r
+\r
+#undef WinMain\r
+#define WinMain WinMainM\r
+int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow);\r
+#undef LoadLibrary\r
+#define LoadLibrary LoadLibraryM\r
+HMODULE LoadLibraryM(LPCSTR lpLibFileName);\r
+#undef CreateFile\r
+#define CreateFile CreateFileM\r
+HANDLE CreateFileM(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);\r
+#undef MessageBox\r
+#define MessageBox MessageBoxM\r
+int MessageBoxM(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType);\r
+#undef FindFirstFile\r
+#define FindFirstFile FindFirstFileM\r
+HANDLE FindFirstFileM(LPCSTR lpFileName, LPWIN32_FIND_DATAA lpFindFileData);\r
+#undef FindNextFile\r
+#define FindNextFile FindNextFileM\r
+BOOL FindNextFileM(HANDLE hFindFile, LPWIN32_FIND_DATAA lpFindFileData);\r
+#undef GetLogicalDriveStrings\r
+#define GetLogicalDriveStrings GetLogicalDriveStringsM\r
+DWORD GetLogicalDriveStringsM(DWORD nBufferLength, LPSTR lpBuffer);\r
+#undef RegisterClassEx\r
+#define RegisterClassEx RegisterClassExM\r
+ATOM RegisterClassExM(CONST WNDCLASSEXA * v0);\r
+#undef CreateWindowEx\r
+#define CreateWindowEx CreateWindowExM\r
+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
+#undef GetWindowLong\r
+#define GetWindowLong GetWindowLongM\r
+LONG GetWindowLongM(HWND hWnd, int nIndex);\r
+#undef SetWindowLong\r
+#define SetWindowLong SetWindowLongM\r
+LONG SetWindowLongM(HWND hWnd, int nIndex, LONG dwNewLong);\r
+#undef DefWindowProc\r
+#define DefWindowProc DefWindowProcM\r
+LRESULT DefWindowProcM(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);\r
+#undef CallWindowProc\r
+#define CallWindowProc CallWindowProcM\r
+LRESULT CallWindowProcM(WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);\r
+#undef SendMessage\r
+#define SendMessage SendMessageM\r
+LRESULT SendMessageM(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);\r
+#undef DefDlgProc\r
+#define DefDlgProc DefDlgProcM\r
+LRESULT DefDlgProcM(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);\r
+#undef SendDlgItemMessage\r
+#define SendDlgItemMessage SendDlgItemMessageM\r
+LRESULT SendDlgItemMessageM(HWND hDlg, int nIDDlgItem, UINT Msg, WPARAM wParam, LPARAM lParam);\r
+#undef SetWindowText\r
+#define SetWindowText SetWindowTextM\r
+BOOL SetWindowTextM(HWND hWnd, LPCSTR lpString);\r
+#undef DragQueryFile\r
+#define DragQueryFile DragQueryFileM\r
+UINT DragQueryFileM(HDROP hDrop, UINT iFile, LPSTR lpszFile, UINT cch);\r
+#undef GetCommandLine\r
+#define GetCommandLine GetCommandLineM\r
+LPSTR GetCommandLineM();\r
+#undef GetCurrentDirectory\r
+#define GetCurrentDirectory GetCurrentDirectoryM\r
+DWORD GetCurrentDirectoryM(DWORD nBufferLength, LPSTR lpBuffer);\r
+#undef SetCurrentDirectory\r
+#define SetCurrentDirectory SetCurrentDirectoryM\r
+BOOL SetCurrentDirectoryM(LPCSTR lpPathName);\r
+#undef GetTempPath\r
+#define GetTempPath GetTempPathM\r
+DWORD GetTempPathM(DWORD nBufferLength, LPSTR lpBuffer);\r
+#undef GetFileAttributes\r
+#define GetFileAttributes GetFileAttributesM\r
+DWORD GetFileAttributesM(LPCSTR lpFileName);\r
+#undef GetModuleFileName\r
+#define GetModuleFileName GetModuleFileNameM\r
+DWORD GetModuleFileNameM(HMODULE hModule, LPCH lpFilename, DWORD nSize);\r
+#undef RegOpenKeyEx\r
+#define RegOpenKeyEx RegOpenKeyExM\r
+LSTATUS RegOpenKeyExM(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult);\r
+#undef RegCreateKeyEx\r
+#define RegCreateKeyEx RegCreateKeyExM\r
+LSTATUS RegCreateKeyExM(HKEY hKey, LPCSTR lpSubKey, DWORD Reserved, LPSTR lpClass, DWORD dwOptions, REGSAM samDesired, CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition);\r
+#undef RegDeleteValue\r
+#define RegDeleteValue RegDeleteValueM\r
+LSTATUS RegDeleteValueM(HKEY hKey, LPCSTR lpValueName);\r
+#undef RegQueryValueEx\r
+#define RegQueryValueEx RegQueryValueExM\r
+LSTATUS RegQueryValueExM(HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData);\r
+#undef RegSetValueEx\r
+#define RegSetValueEx RegSetValueExM\r
+LSTATUS RegSetValueExM(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE* lpData, DWORD cbData);\r
+#undef TextOut\r
+#define TextOut TextOutM\r
+BOOL TextOutM(HDC hdc, int x, int y, LPCSTR lpString, int c);\r
+#undef GetTextExtentPoint32\r
+#define GetTextExtentPoint32 GetTextExtentPoint32M\r
+BOOL GetTextExtentPoint32M(HDC hdc, LPCSTR lpString, int c, LPSIZE psizl);\r
+#undef PropertySheet\r
+#define PropertySheet PropertySheetM\r
+INT_PTR PropertySheetM(LPCPROPSHEETHEADERA v0);\r
+#undef GetOpenFileName\r
+#define GetOpenFileName GetOpenFileNameM\r
+BOOL GetOpenFileNameM(LPOPENFILENAMEA v0);\r
+#undef GetSaveFileName\r
+#define GetSaveFileName GetSaveFileNameM\r
+BOOL GetSaveFileNameM(LPOPENFILENAMEA v0);\r
+#undef HtmlHelp\r
+#define HtmlHelp HtmlHelpM\r
+HWND HtmlHelpM(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData);\r
+#undef CreateProcess\r
+#define CreateProcess CreateProcessM\r
+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
+#undef FindExecutable\r
+#define FindExecutable FindExecutableM\r
+HINSTANCE FindExecutableM(LPCSTR lpFile, LPCSTR lpDirectory, LPSTR lpResult);\r
+#undef ShellExecute\r
+#define ShellExecute ShellExecuteM\r
+HINSTANCE ShellExecuteM(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd);\r
+#undef SHBrowseForFolder\r
+#define SHBrowseForFolder SHBrowseForFolderM\r
+PIDLIST_ABSOLUTE SHBrowseForFolderM(LPBROWSEINFOA lpbi);\r
+#undef SHGetPathFromIDList\r
+#define SHGetPathFromIDList SHGetPathFromIDListM\r
+BOOL SHGetPathFromIDListM(PCIDLIST_ABSOLUTE pidl, LPSTR pszPath);\r
+#undef SHFileOperation\r
+#define SHFileOperation SHFileOperationM\r
+int SHFileOperationM(LPSHFILEOPSTRUCTA lpFileOp);\r
+#undef AppendMenu\r
+#define AppendMenu AppendMenuM\r
+BOOL AppendMenuM(HMENU hMenu, UINT uFlags, UINT_PTR uIDNewItem, LPCSTR lpNewItem);\r
+#undef GetMenuItemInfo\r
+#define GetMenuItemInfo GetMenuItemInfoM\r
+BOOL GetMenuItemInfoM(HMENU hmenu, UINT item, BOOL fByPosition, LPMENUITEMINFOA lpmii);\r
+#undef CreateFontIndirect\r
+#define CreateFontIndirect CreateFontIndirectM\r
+HFONT CreateFontIndirectM(CONST LOGFONTA *lplf);\r
+#undef ChooseFont\r
+#define ChooseFont ChooseFontM\r
+BOOL ChooseFontM(LPCHOOSEFONTA v0);\r
+#undef DialogBoxParam\r
+#define DialogBoxParam DialogBoxParamM\r
+INT_PTR DialogBoxParamM(HINSTANCE hInstance, LPCSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam);\r
+#undef CreateDialogParam\r
+#define CreateDialogParam CreateDialogParamM\r
+HWND CreateDialogParamM(HINSTANCE hInstance, LPCSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam);\r
+#undef sndPlaySound\r
+#define sndPlaySound sndPlaySoundM\r
+BOOL sndPlaySoundM(LPCSTR pszSound, UINT fuSound);\r
+#undef mkdir\r
+#define mkdir _mkdirM\r
+int mkdirM(const char * _Path);\r
+#undef _mkdir\r
+#define _mkdir _mkdirM\r
+int _mkdirM(const char * _Path);\r
+#undef rmdir\r
+#define rmdir rmdirM\r
+int rmdirM(const char * _Path);\r
+#undef _rmdir\r
+#define _rmdir _rmdirM\r
+int _rmdirM(const char * _Path);\r
+#undef _mbslen\r
+#define _mbslen _mbslenM\r
+size_t _mbslenM(const unsigned char * _Str);\r
+#undef _mbschr\r
+#define _mbschr _mbschrM\r
+unsigned char * _mbschrM(const unsigned char * _Str, unsigned int _Ch);\r
+#undef _mbsrchr\r
+#define _mbsrchr _mbsrchrM\r
+unsigned char * _mbsrchrM(const unsigned char * _Str, unsigned int _Ch);\r
+#undef _mbsstr\r
+#define _mbsstr _mbsstrM\r
+unsigned char * _mbsstrM(const unsigned char * _Str, const unsigned char * _Substr);\r
+#undef _mbscmp\r
+#define _mbscmp _mbscmpM\r
+int _mbscmpM(const unsigned char * _Str1, const unsigned char * _Str2);\r
+#undef _mbsicmp\r
+#define _mbsicmp _mbsicmpM\r
+int _mbsicmpM(const unsigned char * _Str1, const unsigned char * _Str2);\r
+#undef _mbsncmp\r
+#define _mbsncmp _mbsncmpM\r
+int _mbsncmpM(const unsigned char * _Str1, const unsigned char * _Str2, size_t _MaxCount);\r
+#undef _mbslwr\r
+#define _mbslwr _mbslwrM\r
+unsigned char * _mbslwrM(unsigned char * _String);\r
+#undef _mbsupr\r
+#define _mbsupr _mbsuprM\r
+unsigned char * _mbsuprM(unsigned char * _String);\r
+#undef _mbsninc\r
+#define _mbsninc _mbsnincM\r
+unsigned char * _mbsnincM(const unsigned char * _Str, size_t _Count);\r
+#undef fopen\r
+#define fopen fopenM\r
+FILE * fopenM(const char * _Filename, const char * _Mode);\r
+\r
+#undef CreateWindow\r
+#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
+#undef DialogBox\r
+#define DialogBox(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxParam(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)\r
+\r
+#endif\r
+\r
+int MtoW(LPWSTR pDst, int size, LPCSTR pSrc, int count);\r
+int WtoM(LPSTR pDst, int size, LPCWSTR pSrc, int count);\r
+int AtoW(LPWSTR pDst, int size, LPCSTR pSrc, int count);\r
+int WtoA(LPSTR pDst, int size, LPCWSTR pSrc, int count);\r
+int TerminateStringM(LPSTR lpString, int size);\r
+int TerminateStringW(LPWSTR lpString, int size);\r
+int TerminateStringA(LPSTR lpString, int size);\r
+size_t GetMultiStringLengthM(LPCSTR lpString);\r
+size_t GetMultiStringLengthW(LPCWSTR lpString);\r
+size_t GetMultiStringLengthA(LPCSTR lpString);\r
+int MtoWMultiString(LPWSTR pDst, int size, LPCSTR pSrc);\r
+int WtoMMultiString(LPSTR pDst, int size, LPCWSTR pSrc);\r
+int AtoWMultiString(LPWSTR pDst, int size, LPCSTR pSrc);\r
+int WtoAMultiString(LPSTR pDst, int size, LPCWSTR pSrc);\r
+char* AllocateStringM(int size);\r
+wchar_t* AllocateStringW(int size);\r
+char* AllocateStringA(int size);\r
+wchar_t* DuplicateMtoW(LPCSTR lpString, int c);\r
+wchar_t* DuplicateMtoWBuffer(LPCSTR lpString, int c, int size);\r
+wchar_t* DuplicateMtoWMultiString(LPCSTR lpString);\r
+wchar_t* DuplicateMtoWMultiStringBuffer(LPCSTR lpString, int size);\r
+char* DuplicateWtoM(LPCWSTR lpString, int c);\r
+wchar_t* DuplicateAtoW(LPCSTR lpString, int c);\r
+char* DuplicateWtoA(LPCWSTR lpString, int c);\r
+void FreeDuplicatedString(void* p);\r
+\r
+int WINAPI WinMainM(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);\r
+\r
+#endif\r
+\r