OSDN Git Service

Windows上でwxWidgets2.9.1に移行。
[tpi/lychee.git] / src / plugin / cuiWrapper / cuiWrapper.cpp
index dbe8810..c53f7c2 100644 (file)
@@ -30,9 +30,6 @@
 #include <wx/stdpaths.h>\r
 #include <wx/xml/xml.h>\r
 #include <wx/tokenzr.h>\r
-#ifdef __WINDOWS__\r
-#include <windows.h>\r
-#endif\r
 #include "cuiWrapper.h"\r
 \r
 //******************************************************************************\r
@@ -53,17 +50,6 @@ wxString g_szCurrentArchive;
 wxArrayString g_asOutput;\r
 \r
 //******************************************************************************\r
-//    Entry\r
-//******************************************************************************\r
-\r
-#ifdef __WINDOWS__\r
-BOOL __stdcall DllMain(HMODULE, DWORD, void *)\r
-{\r
-       return TRUE;\r
-}\r
-#endif\r
-\r
-//******************************************************************************\r
 //    Inside Functions\r
 //******************************************************************************\r
 \r
@@ -76,7 +62,7 @@ int myExecute(wxString szCommandLine, wxString * szOutput, wxString szCwd)
        ::wxSetWorkingDirectory(sz);\r
        if (fp == NULL)\r
        {\r
-               ::wxLogError(L"Error :\n\nCommandLine:\n%s", szCommandLine.c_str());\r
+               wxLogError(L"Error :\n\nCommandLine:\n%s", szCommandLine.c_str());\r
                return TPI_ERROR_U_USE_LIBRARY;\r
        }\r
 \r
@@ -153,21 +139,20 @@ int myExecute(wxString szCommandLine, wxString * szOutput, wxString szCwd)
 PosInfo MakePosInfo(wxString szPrefix)\r
 {\r
        PosInfo pi;\r
-       g_LibInfo.node.GetPropVal(wxT("list-") + szPrefix + wxT("-s"), wxEmptyString).ToULong(& pi.nStart);\r
-       g_LibInfo.node.GetPropVal(wxT("list-") + szPrefix + wxT("-c"), wxEmptyString).ToULong(& pi.nCount);\r
-       g_LibInfo.node.GetPropVal(wxT("list-") + szPrefix + wxT("-l"), wxT("0")).ToULong(& pi.nLine);\r
+       g_LibInfo.node.GetAttribute(wxT("list-") + szPrefix + wxT("-s"), wxEmptyString).ToULongLong(& pi.nStart);\r
+       g_LibInfo.node.GetAttribute(wxT("list-") + szPrefix + wxT("-c"), wxEmptyString).ToULongLong(& pi.nCount);\r
+       g_LibInfo.node.GetAttribute(wxT("list-") + szPrefix + wxT("-l"), wxT("0")).ToULongLong(& pi.nLine);\r
        return pi;\r
 }\r
 \r
-wxULongLong_t GetSize(PosInfo & pi, size_t uCurrent, wxArrayString & as)\r
+wxULongLong_t GetSize(PosInfo & pi, wxULongLong_t nCurrent, wxArrayString & as)\r
 {\r
        if (pi.nStart == 0 && pi.nCount == 0)\r
        {\r
                return 0;\r
        }\r
 \r
-       wxULongLong_t nTemp;\r
-       size_t nPos = uCurrent + pi.nLine;\r
+       wxULongLong_t nTemp, nPos = nCurrent + pi.nLine;\r
        wxString sz = pi.nCount == 0 ? as[nPos].Mid(pi.nStart) : as[nPos].Mid(pi.nStart, pi.nCount);\r
        sz.ToULongLong(& nTemp);\r
        return nTemp;\r
@@ -231,14 +216,14 @@ int __stdcall GetFormatInformation(TPI_FORMATINFO * _fiInfo, bool _bFirst)
 \r
        if (xmlLibrary == NULL || xmlLibrary->GetName() != wxT("library"))\r
        {\r
-               // 終端に達した場合。\r
+               // データの終端に達した場合。\r
                return TPI_ERROR_S_ENDOFDATA;\r
        }\r
 \r
        MakeFormatInfo(wxT("cuiWrapper"), _fiInfo, xmlLibrary, s_nFileId++);\r
-       if (myExecute(xmlLibrary->GetPropVal(wxT("name"), wxEmptyString), NULL, wxEmptyString) != TPI_ERROR_SUCCESS)\r
+       if (myExecute(xmlLibrary->GetAttribute(wxT("name"), wxEmptyString), NULL, wxEmptyString) != TPI_ERROR_SUCCESS)\r
        {\r
-               _fiInfo->llSupportedCommand = 0;\r
+               _fiInfo->eSupportedCommand = 0;\r
        }\r
 \r
        return TPI_ERROR_SUCCESS;\r
@@ -274,8 +259,8 @@ int __stdcall LoadPlugin
                        // xml文法エラー。\r
                        return TPI_ERROR_UNDEFINED;\r
                }\r
-               g_LibInfo.szExeFile = xmlLibrary->GetPropVal(wxT("name"), wxEmptyString);\r
-               g_LibInfo.szExeFileAlt = xmlLibrary->GetPropVal(wxT("name-alt"), wxEmptyString);\r
+               g_LibInfo.szExeFile = xmlLibrary->GetAttribute(wxT("name"), wxEmptyString);\r
+               g_LibInfo.szExeFileAlt = xmlLibrary->GetAttribute(wxT("name-alt"), wxEmptyString);\r
                g_LibInfo.node = * xmlLibrary;\r
 \r
                return TPI_ERROR_SUCCESS;\r
@@ -285,8 +270,8 @@ int __stdcall LoadPlugin
        for (g_LibInfo.nLibIndex = 0; g_LibInfo.nLibIndex < 300 && xmlLibrary != NULL; g_LibInfo.nLibIndex++)\r
        {\r
                // ライブラリをロード。\r
-               g_LibInfo.szExeFile = xmlLibrary->GetPropVal(wxT("name"), wxEmptyString);\r
-               g_LibInfo.szExeFileAlt = xmlLibrary->GetPropVal(wxT("name-alt"), wxEmptyString);\r
+               g_LibInfo.szExeFile = xmlLibrary->GetAttribute(wxT("name"), wxEmptyString);\r
+               g_LibInfo.szExeFileAlt = xmlLibrary->GetAttribute(wxT("name-alt"), wxEmptyString);\r
                g_LibInfo.node = * xmlLibrary;\r
 \r
                // 書庫に対応しているかチェック。\r
@@ -317,8 +302,8 @@ int __stdcall CheckArchive
 )\r
 {\r
        wxFileName fnArchive(_szArcName);\r
-       wxArrayString asExt = ::wxStringTokenize(g_LibInfo.node.GetPropVal(wxT("suffix"), wxEmptyString), wxT(";"));\r
-       if (! g_LibInfo.node.HasProp(wxT("list")))\r
+       wxArrayString asExt = ::wxStringTokenize(g_LibInfo.node.GetAttribute(wxT("suffix"), wxEmptyString), wxT(";"));\r
+       if (! g_LibInfo.node.HasAttribute(wxT("list")))\r
        {\r
                return TPI_ERROR_ARC_UNSUPPORTED;\r
        }\r
@@ -354,7 +339,8 @@ int __stdcall OpenArchive
        if (g_szCurrentArchive != _szArcName)\r
        {\r
                wxString szOutput;\r
-               if (myExecute(g_LibInfo.szExeFile + wxT(" ") + MakeCommandLineSend(g_LibInfo.node.GetPropVal(wxT("list"), wxEmptyString), _szArcName, NULL, NULL, wxEmptyString), & szOutput, wxEmptyString) != TPI_ERROR_SUCCESS)\r
+               wxArrayString as;\r
+               if (myExecute(g_LibInfo.szExeFile + wxT(" ") + MakeCommandLineSend(g_LibInfo.node.GetAttribute(wxT("list"), wxEmptyString), _szArcName, NULL, as, wxEmptyString), & szOutput, wxEmptyString) != TPI_ERROR_SUCCESS)\r
                {\r
                        return TPI_ERROR_U_USE_LIBRARY;\r
                }\r
@@ -400,7 +386,7 @@ int __stdcall GetFileInformation
        if (_bFirst)\r
        {\r
                s_nFileId = 0;\r
-               wxString szStartLine = g_LibInfo.node.GetPropVal(wxT("list-line-s"), wxEmptyString);\r
+               wxString szStartLine = g_LibInfo.node.GetAttribute(wxT("list-line-s"), wxEmptyString);\r
                if (! szStartLine.IsEmpty())\r
                {\r
                        // 開始行の次の行にセット。\r
@@ -413,9 +399,9 @@ int __stdcall GetFileInformation
                }\r
 \r
                // 初期設定。\r
-               g_LibInfo.node.GetPropVal(wxT("list-line-c"), wxT("1")).ToULongLong(& nProcessPerLine);\r
-               szEndLine = g_LibInfo.node.GetPropVal(wxT("list-line-e"), szStartLine);\r
-               szDateFormat = g_LibInfo.node.GetPropVal(wxT("list-date-f"), wxDefaultDateTimeFormat);\r
+               g_LibInfo.node.GetAttribute(wxT("list-line-c"), wxT("1")).ToULongLong(& nProcessPerLine);\r
+               szEndLine = g_LibInfo.node.GetAttribute(wxT("list-line-e"), szStartLine);\r
+               szDateFormat = g_LibInfo.node.GetAttribute(wxT("list-date-f"), wxDefaultDateTimeFormat);\r
                piFName = MakePosInfo(wxT("fname"));\r
                piPSize = MakePosInfo(wxT("psize"));\r
                piUSize = MakePosInfo(wxT("usize"));\r
@@ -425,7 +411,7 @@ int __stdcall GetFileInformation
        if (s_nCurrentLine >= asOutput.GetCount())\r
        {\r
                // 空行で終わるとき以外はエラーとする。\r
-               return szEndLine == wxEmptyString ? TPI_ERROR_S_ENDOFDATA : TPI_ERROR_ARC_UNSUPPORTED;\r
+               return szEndLine.IsEmpty() ? TPI_ERROR_S_ENDOFDATA : TPI_ERROR_ARC_UNSUPPORTED;\r
        }\r
 \r
        // 最終行かどうか確認。\r
@@ -440,8 +426,8 @@ int __stdcall GetFileInformation
        _fiInfo->fnFileName = wxFileName::wxFileName(_fiInfo->szStoredName);\r
 \r
        // サイズ取得。\r
-       _fiInfo->llPackedSize   = GetSize(piPSize, s_nCurrentLine, asOutput);\r
-       _fiInfo->llUnpackedSize = GetSize(piUSize, s_nCurrentLine, asOutput);\r
+       _fiInfo->nPackedSize   = GetSize(piPSize, s_nCurrentLine, asOutput);\r
+       _fiInfo->nUnpackedSize = GetSize(piUSize, s_nCurrentLine, asOutput);\r
 \r
        // 更新時刻取得。\r
        if (piDate.nStart != 0 || piDate.nCount != 0)\r
@@ -450,7 +436,7 @@ int __stdcall GetFileInformation
        }\r
 \r
        // 最後に次の行へ進めておく。\r
-       _fiInfo->llFileId = s_nFileId++;\r
+       _fiInfo->nFileId = s_nFileId++;\r
        s_nCurrentLine += nProcessPerLine;\r
 \r
        return TPI_ERROR_SUCCESS;\r
@@ -469,7 +455,7 @@ int __stdcall GetArchiveInformation
 \r
 int __stdcall Command\r
 (\r
-       unsigned int _uCommand,\r
+       wxULongLong_t _eCommand,\r
        TPI_SWITCHES * _swInfo,\r
        const wxString & _szArcName,\r
        const wxArrayString & _szFiles\r
@@ -479,29 +465,29 @@ int __stdcall Command
        wxString szPath, szCommandLine;\r
 \r
        // APIアドレス取得。\r
-       if (! g_LibInfo.node.GetPropVal(\r
-                       _uCommand == TPI_COMMAND_CREATE  ? wxT("create") :\r
-                       _uCommand == TPI_COMMAND_ADD     ? wxT("add") :\r
-                       _uCommand == TPI_COMMAND_EXTRACT ? wxT("extract") : \r
-                       _uCommand == TPI_COMMAND_DELETE  ? wxT("delete") : \r
-                       _uCommand == TPI_COMMAND_UPDATE  ? wxT("update") : \r
-                       _uCommand == TPI_COMMAND_TEST    ? wxT("test") : \r
-                       _uCommand == TPI_COMMAND_REPAIR  ? wxT("repair") : \r
-                       _uCommand == TPI_COMMAND_MOVE    ? wxT("move") : \r
-                       _uCommand == TPI_COMMAND_SFX     ? wxT("sfx") : \r
-                       _uCommand == TPI_COMMAND_UNSFX   ? wxT("unsfx") : wxEmptyString, & szCommandLine))\r
+       if (! g_LibInfo.node.GetAttribute(\r
+                       _eCommand == TPI_COMMAND_CREATE  ? wxT("create") :\r
+                       _eCommand == TPI_COMMAND_ADD     ? wxT("add") :\r
+                       _eCommand == TPI_COMMAND_EXTRACT ? wxT("extract") : \r
+                       _eCommand == TPI_COMMAND_DELETE  ? wxT("delete") : \r
+                       _eCommand == TPI_COMMAND_UPDATE  ? wxT("update") : \r
+                       _eCommand == TPI_COMMAND_TEST    ? wxT("test") : \r
+                       _eCommand == TPI_COMMAND_REPAIR  ? wxT("repair") : \r
+                       _eCommand == TPI_COMMAND_MOVE    ? wxT("move") : \r
+                       _eCommand == TPI_COMMAND_SFX     ? wxT("sfx") : \r
+                       _eCommand == TPI_COMMAND_UNSFX   ? wxT("unsfx") : wxEmptyString, & szCommandLine))\r
        {\r
-               g_LibInfo.node.GetPropVal(\r
-                       _uCommand == TPI_COMMAND_CREATE  ? wxT("create-alt") :\r
-                       _uCommand == TPI_COMMAND_ADD     ? wxT("add-alt") :\r
-                       _uCommand == TPI_COMMAND_EXTRACT ? wxT("extract-alt") : \r
-                       _uCommand == TPI_COMMAND_DELETE  ? wxT("delete-alt") : \r
-                       _uCommand == TPI_COMMAND_UPDATE  ? wxT("update-alt") : \r
-                       _uCommand == TPI_COMMAND_TEST    ? wxT("test-alt") : \r
-                       _uCommand == TPI_COMMAND_REPAIR  ? wxT("repair-alt") : \r
-                       _uCommand == TPI_COMMAND_MOVE    ? wxT("move-alt") : \r
-                       _uCommand == TPI_COMMAND_SFX     ? wxT("sfx-alt") : \r
-                       _uCommand == TPI_COMMAND_UNSFX   ? wxT("unsfx-alt") : wxEmptyString, & szCommandLine);\r
+               g_LibInfo.node.GetAttribute(\r
+                       _eCommand == TPI_COMMAND_CREATE  ? wxT("create-alt") :\r
+                       _eCommand == TPI_COMMAND_ADD     ? wxT("add-alt") :\r
+                       _eCommand == TPI_COMMAND_EXTRACT ? wxT("extract-alt") : \r
+                       _eCommand == TPI_COMMAND_DELETE  ? wxT("delete-alt") : \r
+                       _eCommand == TPI_COMMAND_UPDATE  ? wxT("update-alt") : \r
+                       _eCommand == TPI_COMMAND_TEST    ? wxT("test-alt") : \r
+                       _eCommand == TPI_COMMAND_REPAIR  ? wxT("repair-alt") : \r
+                       _eCommand == TPI_COMMAND_MOVE    ? wxT("move-alt") : \r
+                       _eCommand == TPI_COMMAND_SFX     ? wxT("sfx-alt") : \r
+                       _eCommand == TPI_COMMAND_UNSFX   ? wxT("unsfx-alt") : wxEmptyString, & szCommandLine);\r
        }\r
 \r
        if (szCommandLine.IsEmpty())\r
@@ -511,7 +497,7 @@ int __stdcall Command
 \r
        // コマンドライン・レスポンスファイル作成。\r
        wxString\r
-               szResponceFileName = MakeResponceFile(_szFiles, g_LibInfo.node.GetPropVal(wxT("quote-resp"), wxT("1")) == wxT("1")),\r
+               szResponceFileName = MakeResponceFile(_szFiles, g_LibInfo.node.GetAttribute(wxT("quote-resp"), wxT("1")) == wxT("1")),\r
                szCommandLineSend  = MakeCommandLineSend(szCommandLine, _szArcName, _swInfo, _szFiles, szResponceFileName);\r
 \r
        // コマンドライン実行。\r
@@ -523,7 +509,7 @@ int __stdcall Command
 \r
        if (nErrorCode != TPI_ERROR_SUCCESS)\r
        {\r
-               ::wxLogError(L"Error :\n%x\n\nCommandLine:\n%s\n\nOutput:\n%s", nErrorCode, szCommandLineSend.c_str(), szOutput.c_str());\r
+               wxLogError(L"Error :\n%x\n\nCommandLine:\n%s\n\nOutput:\n%s", nErrorCode, szCommandLineSend.c_str(), szOutput.c_str());\r
        }\r
        return nErrorCode;\r
 }\r