OSDN Git Service

Update to c30cc851b60a7c4006cd02b4718d9738a6c4049a about bug fixes.
authors_kawamoto <s_kawamoto@users.sourceforge.jp>
Tue, 4 Oct 2011 10:37:48 +0000 (19:37 +0900)
committers_kawamoto <s_kawamoto@users.sourceforge.jp>
Tue, 4 Oct 2011 10:37:48 +0000 (19:37 +0900)
Fix bugs of UTF-8 to UTF-16 API bridge.
Fix bugs of simultaneous connection.
Add support for additional features of hosts.
Fix inconsistent WINVER, _WIN32_WINNT and _WIN32_IE.

18 files changed:
FFFTP.vc90.vcproj
FFFTP.vcproj
FFFTP_Eng_Release/FFFTP.exe
FFFTP_English.vc90.vcproj
FFFTP_English.vcproj
Release/FFFTP.exe
bookmark.c
common.h
connect.c
filelist.c
getput.c
hostman.c
main.c
mbswrapper.c
mbswrapper.h
option.c
ras.c
socketwrapper.c

index 6ea6f40..8fafa74 100644 (file)
@@ -47,7 +47,7 @@
                                Name="VCCLCompilerTool"
                                Optimization="0"
                                AdditionalIncludeDirectories="Resource"
-                               PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS,_WIN32_IE=0x300,_CRT_SECURE_NO_WARNINGS"
+                               PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS,WINVER=0x0500,_WIN32_WINNT=0x0500,_WIN32_IE=0x0400,_CRT_SECURE_NO_WARNINGS"
                                RuntimeLibrary="1"
                                PrecompiledHeaderFile=".\Debug\FFFTP.pch"
                                AssemblerListingLocation=".\Debug\"
@@ -71,7 +71,7 @@
                        <Tool
                                Name="VCLinkerTool"
                                AdditionalOptions="/MACHINE:I386"
-                               AdditionalDependencies="wsock32.lib comctl32.lib winmm.lib htmlhelp.lib"
+                               AdditionalDependencies="comctl32.lib htmlhelp.lib rasapi32.lib winmm.lib wsock32.lib"
                                OutputFile=".\Debug\FFFTP.exe"
                                LinkIncremental="2"
                                SuppressStartupBanner="true"
                                Name="VCCLCompilerTool"
                                InlineFunctionExpansion="1"
                                AdditionalIncludeDirectories="Resource"
-                               PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS,_WIN32_IE=0x300,_CRT_SECURE_NO_WARNINGS"
+                               PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS,WINVER=0x0500,_WIN32_WINNT=0x0500,_WIN32_IE=0x0400,_CRT_SECURE_NO_WARNINGS"
                                StringPooling="true"
                                RuntimeLibrary="0"
                                EnableFunctionLevelLinking="true"
                        <Tool
                                Name="VCLinkerTool"
                                AdditionalOptions="/MACHINE:I386"
-                               AdditionalDependencies="wsock32.lib comctl32.lib winmm.lib RASAPI32.LIB htmlhelp.lib"
+                               AdditionalDependencies="comctl32.lib htmlhelp.lib rasapi32.lib winmm.lib wsock32.lib"
                                OutputFile=".\Release\FFFTP.exe"
                                LinkIncremental="1"
                                SuppressStartupBanner="true"
index ad16916..a8b5eb6 100644 (file)
@@ -46,7 +46,7 @@
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="Resource"\r
-                               PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS,_WIN32_IE=0x300,_CRT_SECURE_NO_WARNINGS"\r
+                               PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS,WINVER=0x0500,_WIN32_WINNT=0x0500,_WIN32_IE=0x0400,_CRT_SECURE_NO_WARNINGS"\r
                                RuntimeLibrary="1"\r
                                PrecompiledHeaderFile=".\Debug\FFFTP.pch"\r
                                AssemblerListingLocation=".\Debug\"\r
@@ -70,7 +70,7 @@
                        <Tool\r
                                Name="VCLinkerTool"\r
                                AdditionalOptions="/MACHINE:I386"\r
-                               AdditionalDependencies="wsock32.lib comctl32.lib winmm.lib htmlhelp.lib"\r
+                               AdditionalDependencies="comctl32.lib htmlhelp.lib rasapi32.lib winmm.lib wsock32.lib"\r
                                OutputFile=".\Debug\FFFTP.exe"\r
                                LinkIncremental="2"\r
                                SuppressStartupBanner="true"\r
                                Name="VCCLCompilerTool"\r
                                InlineFunctionExpansion="1"\r
                                AdditionalIncludeDirectories="Resource"\r
-                               PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS,_WIN32_IE=0x300,_CRT_SECURE_NO_WARNINGS"\r
+                               PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS,WINVER=0x0500,_WIN32_WINNT=0x0500,_WIN32_IE=0x0400,_CRT_SECURE_NO_WARNINGS"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
                        <Tool\r
                                Name="VCLinkerTool"\r
                                AdditionalOptions="/MACHINE:I386"\r
-                               AdditionalDependencies="wsock32.lib comctl32.lib winmm.lib RASAPI32.LIB htmlhelp.lib"\r
+                               AdditionalDependencies="comctl32.lib htmlhelp.lib rasapi32.lib winmm.lib wsock32.lib"\r
                                OutputFile=".\Release\FFFTP.exe"\r
                                LinkIncremental="1"\r
                                SuppressStartupBanner="true"\r
index 0b64ded..0ec3869 100644 (file)
Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
index 3226993..1c91af2 100644 (file)
@@ -48,7 +48,7 @@
                                Name="VCCLCompilerTool"
                                Optimization="0"
                                AdditionalIncludeDirectories="Resource_eng"
-                               PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS,_WIN32_IE=0x300,_CRT_SECURE_NO_WARNINGS,ENGLISH"
+                               PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS,WINVER=0x0500,_WIN32_WINNT=0x0500,_WIN32_IE=0x0400,_CRT_SECURE_NO_WARNINGS,ENGLISH"
                                BasicRuntimeChecks="3"
                                RuntimeLibrary="1"
                                PrecompiledHeaderFile=".\FFFTP_Eng_Debug\FFFTP_English.pch"
@@ -73,7 +73,7 @@
                        <Tool
                                Name="VCLinkerTool"
                                AdditionalOptions="/MACHINE:I386"
-                               AdditionalDependencies="wsock32.lib comctl32.lib winmm.lib htmlhelp.lib"
+                               AdditionalDependencies="comctl32.lib htmlhelp.lib rasapi32.lib winmm.lib wsock32.lib"
                                OutputFile=".\FFFTP_Eng_Debug\FFFTP.exe"
                                LinkIncremental="2"
                                SuppressStartupBanner="true"
                                Name="VCCLCompilerTool"
                                InlineFunctionExpansion="1"
                                AdditionalIncludeDirectories="Resource_eng"
-                               PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS,_WIN32_IE=0x300,_CRT_SECURE_NO_WARNINGS,ENGLISH"
+                               PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS,WINVER=0x0500,_WIN32_WINNT=0x0500,_WIN32_IE=0x0400,_CRT_SECURE_NO_WARNINGS,ENGLISH"
                                StringPooling="true"
                                RuntimeLibrary="0"
                                EnableFunctionLevelLinking="true"
                        <Tool
                                Name="VCLinkerTool"
                                AdditionalOptions="/MACHINE:I386"
-                               AdditionalDependencies="wsock32.lib comctl32.lib winmm.lib htmlhelp.lib"
+                               AdditionalDependencies="comctl32.lib htmlhelp.lib rasapi32.lib winmm.lib wsock32.lib"
                                OutputFile=".\FFFTP_Eng_Release\FFFTP.exe"
                                LinkIncremental="1"
                                SuppressStartupBanner="true"
index d2c99af..143cd66 100644 (file)
@@ -47,7 +47,7 @@
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="Resource_eng"\r
-                               PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS,_WIN32_IE=0x300,_CRT_SECURE_NO_WARNINGS,ENGLISH"\r
+                               PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS,WINVER=0x0500,_WIN32_WINNT=0x0500,_WIN32_IE=0x0400,_CRT_SECURE_NO_WARNINGS,ENGLISH"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                PrecompiledHeaderFile=".\FFFTP_Eng_Debug\FFFTP_English.pch"\r
@@ -72,7 +72,7 @@
                        <Tool\r
                                Name="VCLinkerTool"\r
                                AdditionalOptions="/MACHINE:I386"\r
-                               AdditionalDependencies="wsock32.lib comctl32.lib winmm.lib htmlhelp.lib"\r
+                               AdditionalDependencies="comctl32.lib htmlhelp.lib rasapi32.lib winmm.lib wsock32.lib"\r
                                OutputFile=".\FFFTP_Eng_Debug\FFFTP.exe"\r
                                LinkIncremental="2"\r
                                SuppressStartupBanner="true"\r
                                Name="VCCLCompilerTool"\r
                                InlineFunctionExpansion="1"\r
                                AdditionalIncludeDirectories="Resource_eng"\r
-                               PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS,_WIN32_IE=0x300,_CRT_SECURE_NO_WARNINGS,ENGLISH"\r
+                               PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS,WINVER=0x0500,_WIN32_WINNT=0x0500,_WIN32_IE=0x0400,_CRT_SECURE_NO_WARNINGS,ENGLISH"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
                        <Tool\r
                                Name="VCLinkerTool"\r
                                AdditionalOptions="/MACHINE:I386"\r
-                               AdditionalDependencies="wsock32.lib comctl32.lib winmm.lib htmlhelp.lib"\r
+                               AdditionalDependencies="comctl32.lib htmlhelp.lib rasapi32.lib winmm.lib wsock32.lib"\r
                                OutputFile=".\FFFTP_Eng_Release\FFFTP.exe"\r
                                LinkIncremental="1"\r
                                SuppressStartupBanner="true"\r
index d7e988d..8f981dd 100644 (file)
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
index f9443c7..d674d45 100644 (file)
@@ -27,7 +27,8 @@
 / THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
 /============================================================================*/\r
 \r
-#define WINVER 0x400\r
+// UTF-8対応\r
+//#define WINVER 0x400\r
 \r
 #define        STRICT\r
 #include <windows.h>\r
index 0061c89..6d5814b 100644 (file)
--- a/common.h
+++ b/common.h
@@ -868,6 +868,10 @@ LIST_UNIX_70
 #define CRYPT_FTPIS                    2\r
 #define CRYPT_SFTP                     3\r
 \r
+// FEAT対応\r
+// UTF-8対応\r
+#define FEATURE_UTF8           0x00000001\r
+\r
 \r
 /*=================================================\r
 *              ストラクチャ\r
@@ -918,6 +922,8 @@ typedef struct {
        int UseSFTP;                                            /* SFTPで接続する (YES/NO) */\r
        // 同時接続対応\r
        int MaxThreadCount;                                     /* 同時接続数 */\r
+       // FEAT対応\r
+       int Feature;                                            /* 利用可能な機能のフラグ (FEATURE_xxx) */\r
 } HOSTDATA;\r
 \r
 \r
@@ -1383,6 +1389,8 @@ int AskUseFTPIS(void);
 int AskUseSFTP(void);\r
 // 同時接続対応\r
 int AskMaxThreadCount(void);\r
+// FEAT対応\r
+int AskHostFeature(void);\r
 \r
 /*===== cache.c =====*/\r
 \r
index bb43e11..ac90bcb 100644 (file)
--- a/connect.c
+++ b/connect.c
@@ -957,7 +957,7 @@ int ReConnectCmdSkt(void)
 // 同時接続対応\r
 int ReConnectTrnSkt(SOCKET *Skt)\r
 {\r
-       char Path[FMAX_PATH+1];\r
+//     char Path[FMAX_PATH+1];\r
        int Sts;\r
 \r
        Sts = FFFTP_FAIL;\r
@@ -1092,8 +1092,8 @@ int AskShareProh(void)
        int Sts;\r
 \r
        Sts = YES;\r
-       if(CmdCtrlSocket == TrnCtrlSocket)\r
-               Sts = NO;\r
+//     if(CmdCtrlSocket == TrnCtrlSocket)\r
+//             Sts = NO;\r
 \r
        return(Sts);\r
 }\r
@@ -1476,6 +1476,26 @@ static SOCKET DoConnect(char *Host, char *User, char *Pass, char *Acct, int Port
 #endif\r
        TryConnect = NO;\r
 \r
+       // FEAT対応\r
+       // ホストの機能を確認\r
+       if(ContSock != INVALID_SOCKET)\r
+       {\r
+               if((Sts = command(ContSock, Reply, &CancelFlg, "FEAT")) == 211)\r
+               {\r
+                       // 改行文字はReadReplyMessageで消去されるため区切り文字に空白を使用\r
+                       // UTF-8対応\r
+                       if(strstr(Reply, " UTF8 "))\r
+                               CurHost.Feature |= FEATURE_UTF8;\r
+               }\r
+               // UTF-8対応\r
+               if(CurHost.NameKanjiCode == KANJI_AUTO && (CurHost.Feature & FEATURE_UTF8))\r
+               {\r
+                       if((Sts = command(ContSock, Reply, &CancelFlg, "OPTS UTF8 ON")) == 200)\r
+                       {\r
+                       }\r
+               }\r
+       }\r
+\r
        return(ContSock);\r
 }\r
 \r
@@ -2238,3 +2258,9 @@ int AskMaxThreadCount(void)
        return(CurHost.MaxThreadCount);\r
 }\r
 \r
+// FEAT対応\r
+int AskHostFeature(void)\r
+{\r
+       return(CurHost.Feature);\r
+}\r
+\r
index 9436ac5..17bee4c 100644 (file)
@@ -27,7 +27,8 @@
 / THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
 /============================================================================*/\r
 \r
-#define _WIN32_WINNT   0x400\r
+// UTF-8対応\r
+//#define _WIN32_WINNT 0x400\r
 \r
 #define        STRICT\r
 #include <windows.h>\r
@@ -3593,7 +3594,6 @@ static int AnalizeFileInfo(char *Str)
                                }\r
                        }\r
                }\r
-\r
        }\r
 \r
 DoPrintf("ListType=%d", Ret);\r
index d7e00c2..937aa2f 100644 (file)
--- a/getput.c
+++ b/getput.c
@@ -120,6 +120,8 @@ static HANDLE hListAccMutex;                        /* 転送ファイルアクセス用ミューテ
 \r
 static int TransFiles = 0;                             /* 転送待ちファイル数 */\r
 static TRANSPACKET *TransPacketBase = NULL;    /* 転送ファイルリスト */\r
+// 同時接続対応\r
+static TRANSPACKET *NextTransPacketBase = NULL;\r
 \r
 // 同時接続対応\r
 //static int Canceled;         /* 中止フラグ YES/NO */\r
@@ -373,6 +375,9 @@ void AddTransFileList(TRANSPACKET *Pkt)
                        PostMessage(GetMainHwnd(), WM_CHANGE_COND, 0, 0);\r
                }\r
        }\r
+       // 同時接続対応\r
+       if(NextTransPacketBase == NULL)\r
+               NextTransPacketBase = TransPacketBase;\r
        ReleaseMutex(hListAccMutex);\r
 \r
        return;\r
@@ -413,6 +418,9 @@ void AppendTransFileList(TRANSPACKET *Pkt)
                        Pos = Pos->Next;\r
                Pos->Next = Pkt;\r
        }\r
+       // 同時接続対応\r
+       if(NextTransPacketBase == NULL)\r
+               NextTransPacketBase = TransPacketBase;\r
 \r
        while(Pkt != NULL)\r
        {\r
@@ -494,19 +502,26 @@ static void EraseTransFileList(void)
                if(strcmp(New->Cmd, "BACKCUR") == 0)\r
                {\r
                        if(NotDel != NULL)\r
-                               free(NotDel);\r
+                               // 同時接続対応\r
+//                             free(NotDel);\r
+                               strcpy(NotDel->Cmd, "");\r
                        NotDel = New;\r
                        New = New->Next;\r
-                       NotDel->Next = NULL;\r
+                       // 同時接続対応\r
+//                     NotDel->Next = NULL;\r
                }\r
                else\r
                {\r
                        Next = New->Next;\r
-                       free(New);\r
+                       // 同時接続対応\r
+//                     free(New);\r
+                       strcpy(New->Cmd, "");\r
                        New = Next;\r
                }\r
        }\r
        TransPacketBase = NotDel;\r
+       // 同時接続対応\r
+       NextTransPacketBase = TransPacketBase;\r
        TransFiles = 0;\r
        PostMessage(GetMainHwnd(), WM_CHANGE_COND, 0, 0);\r
        ReleaseMutex(hListAccMutex);\r
@@ -611,8 +626,10 @@ static ULONG WINAPI TransferThread(void *Dummy)
        char Tmp[FMAX_PATH+1];\r
        int CwdSts;\r
        int GoExit;\r
-       int Down;\r
-       int Up;\r
+//     int Down;\r
+//     int Up;\r
+       static int Down;\r
+       static int Up;\r
        int DelNotify;\r
        int ThreadCount;\r
        SOCKET CmdSkt;\r
@@ -650,6 +667,12 @@ static ULONG WINAPI TransferThread(void *Dummy)
 //             Canceled = NO;\r
                Canceled[ThreadCount] = NO;\r
 \r
+               while(TransPacketBase != NULL && strcmp(TransPacketBase->Cmd, "") == 0)\r
+               {\r
+                       Pos = TransPacketBase;\r
+                       TransPacketBase = TransPacketBase->Next;\r
+                       free(Pos);\r
+               }\r
                NewCmdSkt = AskCmdCtrlSkt();\r
                if(TransPacketBase && NewCmdSkt != INVALID_SOCKET && ThreadCount < AskMaxThreadCount())\r
                {\r
@@ -682,10 +705,10 @@ static ULONG WINAPI TransferThread(void *Dummy)
                }\r
                CmdSkt = NewCmdSkt;\r
 //             if(TransPacketBase != NULL)\r
-               if(TrnSkt != INVALID_SOCKET && TransPacketBase != NULL)\r
+               if(TrnSkt != INVALID_SOCKET && NextTransPacketBase != NULL)\r
                {\r
-                       Pos = TransPacketBase;\r
-                       TransPacketBase = TransPacketBase->Next;\r
+                       Pos = NextTransPacketBase;\r
+                       NextTransPacketBase = NextTransPacketBase->Next;\r
                        // ディレクトリ操作は非同期で行わない\r
 //                     ReleaseMutex(hListAccMutex);\r
                        if(hWndTrans == NULL)\r
@@ -1003,6 +1026,7 @@ static ULONG WINAPI TransferThread(void *Dummy)
                                        for(i = 0; i < MAX_DATA_CONNECTION; i++)\r
                                                Canceled[i] = YES;\r
                                        EraseTransFileList();\r
+                                       Pos = NULL;\r
                                }\r
                                else\r
                                {\r
@@ -1032,7 +1056,8 @@ static ULONG WINAPI TransferThread(void *Dummy)
                        }\r
                        if(hWndTrans != NULL)\r
                                SendMessage(hWndTrans, WM_SET_PACKET, 0, 0);\r
-                       free(Pos);\r
+                       if(Pos != NULL)\r
+                               strcpy(Pos->Cmd, "");\r
                }\r
 //             else\r
                else if(TransPacketBase == NULL)\r
@@ -1047,20 +1072,20 @@ static ULONG WINAPI TransferThread(void *Dummy)
                                        DestroyWindow(hWndTrans);\r
                                        hWndTrans = NULL;\r
 \r
-                                       if(GoExit == YES)\r
-                                       {\r
-                                               SoundPlay(SND_TRANS);\r
-\r
-                                               if(AskAutoExit() == NO)\r
-                                               {\r
-                                                       if(Down == YES)\r
-                                                               PostMessage(GetMainHwnd(), WM_REFRESH_LOCAL_FLG, 0, 0);\r
-                                                       if(Up == YES)\r
-                                                               PostMessage(GetMainHwnd(), WM_REFRESH_REMOTE_FLG, 0, 0);\r
-                                               }\r
-                                               Down = NO;\r
-                                               Up = NO;\r
-                                       }\r
+//                                     if(GoExit == YES)\r
+//                                     {\r
+//                                             SoundPlay(SND_TRANS);\r
+//\r
+//                                             if(AskAutoExit() == NO)\r
+//                                             {\r
+//                                                     if(Down == YES)\r
+//                                                             PostMessage(GetMainHwnd(), WM_REFRESH_LOCAL_FLG, 0, 0);\r
+//                                                     if(Up == YES)\r
+//                                                             PostMessage(GetMainHwnd(), WM_REFRESH_REMOTE_FLG, 0, 0);\r
+//                                             }\r
+//                                             Down = NO;\r
+//                                             Up = NO;\r
+//                                     }\r
                                }\r
                        }\r
                        BackgrndMessageProc();\r
@@ -1068,6 +1093,16 @@ static ULONG WINAPI TransferThread(void *Dummy)
 \r
                        if(GoExit == YES)\r
                        {\r
+                               SoundPlay(SND_TRANS);\r
+                               if(AskAutoExit() == NO)\r
+                               {\r
+                                       if(Down == YES)\r
+                                               PostMessage(GetMainHwnd(), WM_REFRESH_LOCAL_FLG, 0, 0);\r
+                                       if(Up == YES)\r
+                                               PostMessage(GetMainHwnd(), WM_REFRESH_REMOTE_FLG, 0, 0);\r
+                               }\r
+                               Down = NO;\r
+                               Up = NO;\r
                                PostMessage(GetMainHwnd(), WM_COMMAND, MAKEWPARAM(MENU_AUTO_EXIT, 0), 0);\r
                                GoExit = NO;\r
                        }\r
index b1e0343..0de3da5 100644 (file)
--- a/hostman.c
+++ b/hostman.c
@@ -1309,6 +1309,7 @@ void CopyDefaultHost(HOSTDATA *Set)
        Set->UseSFTP = YES;\r
        // 同時接続対応\r
        Set->MaxThreadCount = 1;\r
+       Set->Feature = 0;\r
        return;\r
 }\r
 \r
@@ -1526,6 +1527,10 @@ static int DispHostSetDlg(HWND hDlg)
        PROPSHEETPAGE psp[7];\r
        PROPSHEETHEADER psh;\r
 \r
+       // 変数が未初期化のバグ修正\r
+       memset(&psp, 0, sizeof(psp));\r
+       memset(&psh, 0, sizeof(psh));\r
+\r
        psp[0].dwSize = sizeof(PROPSHEETPAGE);\r
        psp[0].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
        psp[0].hInstance = GetFtpInst();\r
diff --git a/main.c b/main.c
index 704be47..9a3b40e 100644 (file)
--- a/main.c
+++ b/main.c
@@ -244,6 +244,7 @@ int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLi
 \r
        InitCommonControls();\r
 \r
+       // FTPS対応\r
 #ifdef USE_OPENSSL\r
        LoadOpenSSL();\r
 #endif\r
@@ -277,6 +278,7 @@ int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLi
                Ret = Msg.wParam;\r
        }\r
     UnregisterClass(FtpClassStr, hInstFtp);\r
+       // FTPS対応\r
 #ifdef USE_OPENSSL\r
        FreeOpenSSL();\r
 #endif\r
index 08a549b..d65022e 100644 (file)
@@ -1,4 +1,4 @@
-// mbswrapper.cpp
+// mbswrapper.c
 // Copyright (C) 2011 Suguru Kawamoto
 // マルチバイト文字ワイド文字APIラッパー
 // マルチバイト文字はUTF-8、ワイド文字はUTF-16であるものとする
@@ -6,9 +6,6 @@
 
 #define UNICODE
 #define _UNICODE
-#define _WIN32_WINNT 0x0600
-#undef _WIN32_IE
-#define _WIN32_IE 0x0400
 
 #include <tchar.h>
 #include <direct.h>
@@ -40,6 +37,16 @@ int WtoM(LPSTR pDst, int size, LPCWSTR pSrc, int count)
        return WideCharToMultiByte(CP_UTF8, 0, pSrc, count, NULL, 0, NULL, NULL);
 }
 
+// Shift_JIS文字列からワイド文字列へ変換
+int AtoW(LPWSTR pDst, int size, LPCSTR pSrc, int count)
+{
+       if(pSrc < (LPCSTR)0x00010000 || pSrc == (LPCSTR)~0)
+               return 0;
+       if(pDst)
+               return MultiByteToWideChar(CP_ACP, 0, pSrc, count, pDst, size);
+       return MultiByteToWideChar(CP_ACP, 0, pSrc, count, NULL, 0);
+}
+
 // ワイド文字列からShift_JIS文字列へ変換
 int WtoA(LPSTR pDst, int size, LPCWSTR pSrc, int count)
 {
@@ -179,6 +186,24 @@ int WtoMMultiString(LPSTR pDst, int size, LPCWSTR pSrc)
        return i;
 }
 
+// NULL区切りShift_JIS文字列からワイド文字列へ変換
+int AtoWMultiString(LPWSTR pDst, int size, LPCSTR pSrc)
+{
+       int i;
+       if(pSrc < (LPCSTR)0x00010000 || pSrc == (LPCSTR)~0)
+               return 0;
+       if(!pDst)
+               return GetMultiStringLengthA(pSrc);
+       i = 0;
+       while(*pSrc != '\0')
+       {
+               i += MultiByteToWideChar(CP_ACP, 0, pSrc, -1, pDst + i, size - i - 1);
+               pSrc += strlen(pSrc) + 1;
+       }
+       pDst[i] = L'\0';
+       return i;
+}
+
 // NULL区切りワイド文字列からShift_JIS文字列へ変換
 int WtoAMultiString(LPSTR pDst, int size, LPCWSTR pSrc)
 {
@@ -234,6 +259,7 @@ char* AllocateStringA(int size)
 }
 
 // メモリを確保してマルチバイト文字列からワイド文字列へ変換
+// リソースIDならば元の値を返す
 wchar_t* DuplicateMtoW(LPCSTR lpString, int c)
 {
        wchar_t* p;
@@ -252,6 +278,7 @@ wchar_t* DuplicateMtoW(LPCSTR lpString, int c)
 }
 
 // 指定したサイズのメモリを確保してマルチバイト文字列からワイド文字列へ変換
+// リソースIDならば元の値を返す
 wchar_t* DuplicateMtoWBuffer(LPCSTR lpString, int c, int size)
 {
        wchar_t* p;
@@ -270,6 +297,7 @@ wchar_t* DuplicateMtoWBuffer(LPCSTR lpString, int c, int size)
 }
 
 // メモリを確保してNULL区切りマルチバイト文字列からワイド文字列へ変換
+// リソースIDならば元の値を返す
 wchar_t* DuplicateMtoWMultiString(LPCSTR lpString)
 {
        int count;
@@ -284,6 +312,7 @@ wchar_t* DuplicateMtoWMultiString(LPCSTR lpString)
 }
 
 // 指定したサイズのメモリを確保してNULL区切りマルチバイト文字列からワイド文字列へ変換
+// リソースIDならば元の値を返す
 wchar_t* DuplicateMtoWMultiStringBuffer(LPCSTR lpString, int size)
 {
        int count;
@@ -302,6 +331,7 @@ wchar_t* DuplicateMtoWMultiStringBuffer(LPCSTR lpString, int size)
 }
 
 // メモリを確保してワイド文字列からマルチバイト文字列へ変換
+// リソースIDならば元の値を返す
 char* DuplicateWtoM(LPCWSTR lpString, int c)
 {
        char* p;
@@ -319,7 +349,27 @@ char* DuplicateWtoM(LPCWSTR lpString, int c)
        return p;
 }
 
+// メモリを確保してShift_JIS文字列からワイド文字列へ変換
+// リソースIDならば元の値を返す
+wchar_t* DuplicateAtoW(LPCSTR lpString, int c)
+{
+       wchar_t* p;
+       int i;
+       if(lpString < (LPCSTR)0x00010000 || lpString == (LPCSTR)~0)
+               return (wchar_t*)lpString;
+       if(c < 0)
+               c = strlen(lpString);
+       p = AllocateStringW(AtoW(NULL, 0, lpString, c) + 1);
+       if(p)
+       {
+               i = AtoW(p, 65535, lpString, c);
+               p[i] = L'\0';
+       }
+       return p;
+}
+
 // メモリを確保してワイド文字列からShift_JIS文字列へ変換
+// リソースIDならば元の値を返す
 char* DuplicateWtoA(LPCWSTR lpString, int c)
 {
        char* p;
@@ -338,6 +388,7 @@ char* DuplicateWtoA(LPCWSTR lpString, int c)
 }
 
 // 文字列用に確保したメモリを開放
+// リソースIDならば何もしない
 void FreeDuplicatedString(void* p)
 {
        if(p < (void*)0x00010000 || p == (void*)~0)
@@ -351,10 +402,35 @@ void FreeDuplicatedString(void* p)
 // マルチバイト文字バッファ pm%d
 // 引数バッファ a%d
 
+#pragma warning(disable:4102)
 #define START_ROUTINE                                  do{
 #define END_ROUTINE                                            }while(0);end_of_routine:
 #define QUIT_ROUTINE                                   goto end_of_routine;
 
+int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
+{
+       int r = 0;
+       char* pm0 = NULL;
+START_ROUTINE
+       pm0 = DuplicateWtoM(lpCmdLine, -1);
+       r = WinMainM(hInstance, hPrevInstance, pm0, nCmdShow);
+END_ROUTINE
+       FreeDuplicatedString(pm0);
+       return r;
+}
+
+HMODULE LoadLibraryM(LPCSTR lpLibFileName)
+{
+       HMODULE r = NULL;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpLibFileName, -1);
+       r = LoadLibraryW(pw0);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
 HANDLE CreateFileM(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
 {
        HANDLE r = INVALID_HANDLE_VALUE;
@@ -874,11 +950,24 @@ END_ROUTINE
        return r;
 }
 
+LPSTR GetCommandLineM()
+{
+       LPSTR r = 0;
+       static char* pm0 = NULL;
+START_ROUTINE
+       if(!pm0)
+               pm0 = DuplicateWtoM(GetCommandLineW(), -1);
+       r = pm0;
+END_ROUTINE
+       return r;
+}
+
 DWORD GetCurrentDirectoryM(DWORD nBufferLength, LPSTR lpBuffer)
 {
        DWORD r = 0;
        wchar_t* pw0 = NULL;
 START_ROUTINE
+       // TODO: バッファが不十分な場合に必要なサイズを返す
        pw0 = AllocateStringW(nBufferLength * 4);
        GetCurrentDirectoryW(nBufferLength * 4, pw0);
        WtoM(lpBuffer, nBufferLength, pw0, -1);
@@ -900,18 +989,6 @@ END_ROUTINE
        return r;
 }
 
-BOOL SetDllDirectoryM(LPCSTR lpPathName)
-{
-       BOOL r = FALSE;
-       wchar_t* pw0 = NULL;
-START_ROUTINE
-       pw0 = DuplicateMtoW(lpPathName, -1);
-       r = SetDllDirectoryW(pw0);
-END_ROUTINE
-       FreeDuplicatedString(pw0);
-       return r;
-}
-
 DWORD GetTempPathM(DWORD nBufferLength, LPSTR lpBuffer)
 {
        DWORD r = 0;
@@ -1100,56 +1177,79 @@ START_ROUTINE
                a0.hIcon = v0->hIcon;
        a0.pszCaption = DuplicateMtoW(v0->pszCaption, -1);
        a0.nPages = v0->nPages;
-       a0.pStartPage = DuplicateMtoW(v0->pStartPage, -1);
-       if(v0->ppsp && (pwPage = (PROPSHEETPAGEW*)malloc(sizeof(PROPSHEETPAGEW) * v0->nPages)))
+       if(v0->dwFlags & PSH_USEPSTARTPAGE)
+               a0.pStartPage = DuplicateMtoW(v0->pStartPage, -1);
+       else
+               a0.nStartPage = v0->nStartPage;
+       if(v0->dwFlags & PSH_PROPSHEETPAGE)
        {
-               for(i = 0; i < v0->nPages; i++)
+               if(v0->ppsp && (pwPage = (PROPSHEETPAGEW*)malloc(sizeof(PROPSHEETPAGEW) * v0->nPages)))
                {
-                       pwPage[i].dwSize = sizeof(PROPSHEETPAGEW);
-                       pwPage[i].dwFlags = v0->ppsp[i].dwFlags;
-                       pwPage[i].hInstance = v0->ppsp[i].hInstance;
-                       pwPage[i].pszTemplate = DuplicateMtoW(v0->ppsp[i].pszTemplate, -1);
-                       if(v0->ppsp[i].dwFlags & PSP_USEICONID)
-                               pwPage[i].pszIcon = DuplicateMtoW(v0->ppsp[i].pszIcon, -1);
-                       else
-                               pwPage[i].hIcon = v0->ppsp[i].hIcon;
-                       if(v0->ppsp[i].dwFlags & PSP_USETITLE)
-                               pwPage[i].pszTitle = DuplicateMtoW(v0->ppsp[i].pszTitle, -1);
-                       pwPage[i].pfnDlgProc = v0->ppsp[i].pfnDlgProc;
-                       pwPage[i].lParam = v0->ppsp[i].lParam;
-                       // TODO: pfnCallback
-                       pwPage[i].pfnCallback = v0->ppsp[i].pfnCallback;
-                       pwPage[i].pcRefParent = v0->ppsp[i].pcRefParent;
-//                     pwPage[i].pszHeaderTitle = DuplicateMtoW(v0->ppsp[i].pszHeaderTitle, -1);
-//                     pwPage[i].pszHeaderSubTitle = DuplicateMtoW(v0->ppsp[i].pszHeaderSubTitle, -1);
-                       pwPage[i].hActCtx = v0->ppsp[i].hActCtx;
-//                     pwPage[i].pszbmHeader = DuplicateMtoW(v0->ppsp[i].pszbmHeader, -1);
+                       for(i = 0; i < v0->nPages; i++)
+                       {
+                               pwPage[i].dwSize = sizeof(PROPSHEETPAGEW);
+                               pwPage[i].dwFlags = v0->ppsp[i].dwFlags;
+                               pwPage[i].hInstance = v0->ppsp[i].hInstance;
+                               if(v0->ppsp[i].dwFlags & PSP_DLGINDIRECT)
+                                       pwPage[i].pResource = v0->ppsp[i].pResource;
+                               else
+                                       pwPage[i].pszTemplate = DuplicateMtoW(v0->ppsp[i].pszTemplate, -1);
+                               if(v0->ppsp[i].dwFlags & PSP_USEICONID)
+                                       pwPage[i].pszIcon = DuplicateMtoW(v0->ppsp[i].pszIcon, -1);
+                               else
+                                       pwPage[i].hIcon = v0->ppsp[i].hIcon;
+                               if(v0->ppsp[i].dwFlags & PSP_USETITLE)
+                                       pwPage[i].pszTitle = DuplicateMtoW(v0->ppsp[i].pszTitle, -1);
+                               pwPage[i].pfnDlgProc = v0->ppsp[i].pfnDlgProc;
+                               pwPage[i].lParam = v0->ppsp[i].lParam;
+                               // TODO: pfnCallback
+                               pwPage[i].pfnCallback = (LPFNPSPCALLBACKW)v0->ppsp[i].pfnCallback;
+                               pwPage[i].pcRefParent = v0->ppsp[i].pcRefParent;
+                               if(v0->ppsp[i].dwFlags & PSP_USEHEADERTITLE)
+                                       pwPage[i].pszHeaderTitle = DuplicateMtoW(v0->ppsp[i].pszHeaderTitle, -1);
+                               if(v0->ppsp[i].dwFlags & PSP_USEHEADERSUBTITLE)
+                                       pwPage[i].pszHeaderSubTitle = DuplicateMtoW(v0->ppsp[i].pszHeaderSubTitle, -1);
+                       }
                }
+               else
+                       pwPage = NULL;
+               a0.ppsp = pwPage;
        }
        else
-               pwPage = NULL;
-       a0.ppsp = pwPage;
+               a0.phpage = v0->phpage;
        a0.pfnCallback = v0->pfnCallback;
+       if(v0->dwFlags & PSH_USEHBMWATERMARK)
+               a0.hbmWatermark = v0->hbmWatermark;
+       else
+               a0.pszbmWatermark = DuplicateMtoW(v0->pszbmWatermark, -1);
        r = PropertySheetW(&a0);
        if(a0.dwFlags & PSH_USEICONID)
-               FreeDuplicatedString(a0.pszIcon);
-       FreeDuplicatedString(a0.pszCaption);
-       FreeDuplicatedString(a0.pStartPage);
-       if(pwPage)
+               FreeDuplicatedString((void*)a0.pszIcon);
+       FreeDuplicatedString((void*)a0.pszCaption);
+       if(v0->dwFlags & PSH_USEPSTARTPAGE)
+               FreeDuplicatedString((void*)a0.pStartPage);
+       if(v0->dwFlags & PSH_PROPSHEETPAGE)
        {
-               for(i = 0; i < v0->nPages; i++)
+               if(pwPage)
                {
-                       FreeDuplicatedString(pwPage[i].pszTemplate);
-                       if(pwPage[i].dwFlags & PSP_USEICONID)
-                               FreeDuplicatedString(pwPage[i].pszIcon);
-                       if(pwPage[i].dwFlags & PSP_USETITLE)
-                               FreeDuplicatedString(pwPage[i].pszTitle);
-//                     FreeDuplicatedString(pwPage[i].pszHeaderTitle);
-//                     FreeDuplicatedString(pwPage[i].pszHeaderSubTitle);
-//                     FreeDuplicatedString(pwPage[i].pszbmHeader);
+                       for(i = 0; i < v0->nPages; i++)
+                       {
+                               if(!(v0->ppsp[i].dwFlags & PSP_DLGINDIRECT))
+                                       FreeDuplicatedString((void*)pwPage[i].pszTemplate);
+                               if(v0->ppsp[i].dwFlags & PSP_USEICONID)
+                                       FreeDuplicatedString((void*)pwPage[i].pszIcon);
+                               if(v0->ppsp[i].dwFlags & PSP_USETITLE)
+                                       FreeDuplicatedString((void*)pwPage[i].pszTitle);
+                               if(v0->ppsp[i].dwFlags & PSP_USEHEADERTITLE)
+                                       FreeDuplicatedString((void*)pwPage[i].pszHeaderTitle);
+                               if(v0->ppsp[i].dwFlags & PSP_USEHEADERSUBTITLE)
+                                       FreeDuplicatedString((void*)pwPage[i].pszHeaderSubTitle);
+                       }
+                       free(pwPage);
                }
-               free(pwPage);
        }
+       if(!(v0->dwFlags & PSH_USEHBMWATERMARK))
+               FreeDuplicatedString((void*)a0.pszbmWatermark);
 END_ROUTINE
        return r;
 }
@@ -1437,7 +1537,8 @@ START_ROUTINE
        wFileOp.fFlags = lpFileOp->fFlags;
        wFileOp.fAnyOperationsAborted = lpFileOp->fAnyOperationsAborted;
        wFileOp.hNameMappings = lpFileOp->hNameMappings;
-       pw2 = DuplicateMtoW(lpFileOp->lpszProgressTitle, -1);
+       if(lpFileOp->fFlags & FOF_SIMPLEPROGRESS)
+               pw2 = DuplicateMtoW(lpFileOp->lpszProgressTitle, -1);
        r = SHFileOperationW(&wFileOp);
        lpFileOp->fAnyOperationsAborted = wFileOp.fAnyOperationsAborted;
 END_ROUTINE
@@ -1479,9 +1580,13 @@ START_ROUTINE
        wmii.hbmpChecked = lpmii->hbmpChecked;
        wmii.hbmpUnchecked = lpmii->hbmpUnchecked;
        wmii.dwItemData = lpmii->dwItemData;
-       pw0 = DuplicateMtoWBuffer(lpmii->dwTypeData, -1, lpmii->cch * 4);
-       wmii.dwTypeData = pw0;
-       wmii.cch = lpmii->cch * 4;
+       if(lpmii->fMask & MIIM_TYPE)
+       {
+               pw0 = DuplicateMtoWBuffer(lpmii->dwTypeData, -1, lpmii->cch * 4);
+               wmii.dwTypeData = pw0;
+               wmii.cch = lpmii->cch * 4;
+       }
+       wmii.hbmpItem = lpmii->hbmpItem;
        r = GetMenuItemInfoW(hmenu, item, fByPosition, &wmii);
        lpmii->fType = wmii.fType;
        lpmii->fState = wmii.fState;
@@ -1589,7 +1694,7 @@ START_ROUTINE
        v0->nFontType = a0.nFontType;
        if(pwlf)
                free(pwlf);
-       FreeDuplicatedString(a0.lpTemplateName);
+       FreeDuplicatedString((void*)a0.lpTemplateName);
        FreeDuplicatedString(a0.lpszStyle);
 END_ROUTINE
        FreeDuplicatedString(pw0);
@@ -1692,7 +1797,7 @@ START_ROUTINE
        if(wr)
        {
                *wr = L'\0';
-               r = _Str + WtoM(NULL, 0, pw0, -1) - 1;
+               r = (unsigned char*)_Str + WtoM(NULL, 0, pw0, -1) - 1;
        }
 END_ROUTINE
        FreeDuplicatedString(pw0);
@@ -1711,7 +1816,7 @@ START_ROUTINE
        if(wr)
        {
                *wr = L'\0';
-               r = _Str + WtoM(NULL, 0, pw0, -1) - 1;
+               r = (unsigned char*)_Str + WtoM(NULL, 0, pw0, -1) - 1;
        }
 END_ROUTINE
        FreeDuplicatedString(pw0);
@@ -1731,7 +1836,7 @@ START_ROUTINE
        if(wr)
        {
                *wr = L'\0';
-               r = _Str + WtoM(NULL, 0, pw0, -1) - 1;
+               r = (unsigned char*)_Str + WtoM(NULL, 0, pw0, -1) - 1;
        }
 END_ROUTINE
        FreeDuplicatedString(pw0);
@@ -1823,7 +1928,7 @@ START_ROUTINE
        if(wr)
        {
                *wr = L'\0';
-               r = _Str + WtoM(NULL, 0, pw0, -1) - 1;
+               r = (unsigned char*)_Str + WtoM(NULL, 0, pw0, -1) - 1;
        }
 END_ROUTINE
        FreeDuplicatedString(pw0);
index 50e1ae1..80a0848 100644 (file)
 
 #ifndef DO_NOT_REPLACE
 
+#undef WinMain
+#define WinMain WinMainM
+int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow);
+#undef LoadLibrary
+#define LoadLibrary LoadLibraryM
+HMODULE LoadLibraryM(LPCSTR lpLibFileName);
 #undef CreateFile
 #define CreateFile CreateFileM
 HANDLE CreateFileM(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
@@ -59,15 +65,15 @@ BOOL SetWindowTextM(HWND hWnd, LPCSTR lpString);
 #undef DragQueryFile
 #define DragQueryFile DragQueryFileM
 UINT DragQueryFileM(HDROP hDrop, UINT iFile, LPSTR lpszFile, UINT cch);
+#undef GetCommandLine
+#define GetCommandLine GetCommandLineM
+LPSTR GetCommandLineM();
 #undef GetCurrentDirectory
 #define GetCurrentDirectory GetCurrentDirectoryM
 DWORD GetCurrentDirectoryM(DWORD nBufferLength, LPSTR lpBuffer);
 #undef SetCurrentDirectory
 #define SetCurrentDirectory SetCurrentDirectoryM
 BOOL SetCurrentDirectoryM(LPCSTR lpPathName);
-#undef SetDllDirectory
-#define SetDllDirectory SetDllDirectoryM
-BOOL SetDllDirectoryM(LPCSTR lpPathName);
 #undef GetTempPath
 #define GetTempPath GetTempPathM
 DWORD GetTempPathM(DWORD nBufferLength, LPSTR lpBuffer);
@@ -201,15 +207,17 @@ FILE * fopenM(const char * _Filename, const char * _Mode);
 
 int MtoW(LPWSTR pDst, int size, LPCSTR pSrc, int count);
 int WtoM(LPSTR pDst, int size, LPCWSTR pSrc, int count);
+int AtoW(LPWSTR pDst, int size, LPCSTR 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);
+int TerminateStringA(LPSTR lpString, int size);
 size_t GetMultiStringLengthM(LPCSTR lpString);
 size_t GetMultiStringLengthW(LPCWSTR lpString);
-size_t GetMultiStringLengthA(LPCWSTR lpString);
+size_t GetMultiStringLengthA(LPCSTR lpString);
 int MtoWMultiString(LPWSTR pDst, int size, LPCSTR pSrc);
 int WtoMMultiString(LPSTR pDst, int size, LPCWSTR pSrc);
+int AtoWMultiString(LPWSTR pDst, int size, LPCSTR pSrc);
 int WtoAMultiString(LPSTR pDst, int size, LPCWSTR pSrc);
 char* AllocateStringM(int size);
 wchar_t* AllocateStringW(int size);
@@ -219,8 +227,11 @@ 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);
+wchar_t* DuplicateAtoW(LPCSTR lpString, int c);
 char* DuplicateWtoA(LPCWSTR lpString, int c);
 void FreeDuplicatedString(void* p);
 
+int WINAPI WinMainM(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
+
 #endif
 
index 9edd32a..2f7e00f 100644 (file)
--- a/option.c
+++ b/option.c
@@ -163,6 +163,10 @@ void SetOption(int Start)
        PROPSHEETPAGE psp[12];\r
        PROPSHEETHEADER psh;\r
 \r
+       // 変数が未初期化のバグ修正\r
+       memset(&psp, 0, sizeof(psp));\r
+       memset(&psh, 0, sizeof(psh));\r
+\r
        psp[0].dwSize = sizeof(PROPSHEETPAGE);\r
        psp[0].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
        psp[0].hInstance = GetFtpInst();\r
diff --git a/ras.c b/ras.c
index 4ad591c..ebcb896 100644 (file)
--- a/ras.c
+++ b/ras.c
@@ -29,7 +29,8 @@
 \r
 #define  STRICT\r
 \r
-#define WINVER 0x400\r
+// UTF-8対応\r
+//#define WINVER 0x400\r
 \r
 #include <windows.h>\r
 #include <stdio.h>\r
index 3159e93..6638333 100644 (file)
@@ -1,4 +1,4 @@
-// socketwrapper.cpp
+// socketwrapper.c
 // Copyright (C) 2011 Suguru Kawamoto
 // ソケットラッパー
 // socket関連関数をOpenSSL用に置換