OSDN Git Service

CheckArchiveからnFileCountを削除。
authorsirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Thu, 23 Sep 2010 06:49:03 +0000 (06:49 +0000)
committersirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Thu, 23 Sep 2010 06:49:03 +0000 (06:49 +0000)
いくつかの関数に省略値を設定。

git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/tpi/tpi@337 9df91469-1e22-0410-86e7-ea8537beb833

12 files changed:
src/common/handle/TPIHandle.cpp
src/common/handle/TPIHandle.h
src/common/header/plugin.h
src/lychee/dlg_make.cpp
src/lychee/frm_main.cpp
src/plugin/7zArc/7zArc.cpp
src/plugin/calLibrary/calLibrary.cpp
src/plugin/cuiWrapper/cuiWrapper.cpp
src/plugin/eggArc/eggArc.cpp
src/plugin/rarArc/rarArc.cpp
src/plugin/spiLibrary/spiLibrary.cpp
src/plugin/xpiLibrary/xpiLibrary.cpp

index baed0e5..91959b9 100644 (file)
@@ -129,19 +129,19 @@ bool TPIHandle::GetFormatInformation(TPI_FORMATINFO * _fiInfo, bool _bFirst)
        return this->nErrorCode == TPI_ERROR_SUCCESS;\r
 }\r
 \r
-bool TPIHandle::CheckArchive(const wxString & _szArcName, wxULongLong_t * _llFileCount)\r
+bool TPIHandle::CheckArchive(const wxString & _szArcName)\r
 {\r
        this->nErrorCode = TPI_ERROR_SUCCESS;\r
        GetAPIAddress("CheckArchive", p);\r
-       this->nErrorCode = ((int (__stdcall *)(const wxString &, wxULongLong_t *)) p)(_szArcName, _llFileCount);\r
+       this->nErrorCode = ((int (__stdcall *)(const wxString &)) p)(_szArcName);\r
        return this->nErrorCode == TPI_ERROR_SUCCESS;\r
 }\r
 \r
-bool TPIHandle::OpenArchive(const wxString & _szArcName)\r
+bool TPIHandle::OpenArchive(const wxString & _szArcName, wxULongLong_t * _llFileCount)\r
 {\r
        this->nErrorCode = TPI_ERROR_SUCCESS;\r
        GetAPIAddress("OpenArchive", p);\r
-       this->nErrorCode = ((int (__stdcall *)(const wxString &, void * *)) p)(_szArcName, & this->archive);\r
+       this->nErrorCode = ((int (__stdcall *)(const wxString &, void * *, wxULongLong_t *)) p)(_szArcName, & this->archive, _llFileCount);\r
        return this->nErrorCode == TPI_ERROR_SUCCESS;\r
 }\r
 \r
index 5e4489e..d83e844 100644 (file)
@@ -34,21 +34,21 @@ class TPIHandle
        public:\r
                TPIHandle(void);\r
                ~TPIHandle(void);\r
-               bool InitLibrary(const wxString &, const wxString &, wxULongLong_t);\r
+               bool InitLibrary(const wxString & _szLibName, const wxString & _szArcName, wxULongLong_t _llTypeId = 0);\r
                bool FreeLibrary(void);\r
 \r
-               bool GetPluginInformation(unsigned int, wxULongLong_t, void *);\r
-               bool GetFormatInformation(TPI_FORMATINFO *, bool);\r
+               bool GetPluginInformation(unsigned int _uInfoId, wxULongLong_t _llSubOption, void * _pPtr);\r
+               bool GetFormatInformation(TPI_FORMATINFO * _fiInfo, bool _bFirst = false);\r
 \r
-               bool CheckArchive(const wxString &, wxULongLong_t *);\r
-               bool OpenArchive(const wxString &);\r
+               bool CheckArchive(const wxString & _szArcName);\r
+               bool OpenArchive(const wxString & _szArcName, wxULongLong_t * _llFileCount = NULL);\r
                bool CloseArchive(void);\r
-               bool GetFileInformation(TPI_FILEINFO *, bool);\r
-               bool GetArchiveInformation(TPI_ARCHIVEINFO *);\r
+               bool GetFileInformation(TPI_FILEINFO * _fiInfo, bool _bFirst = false);\r
+               bool GetArchiveInformation(TPI_ARCHIVEINFO * _aiInfo);\r
 \r
-               bool Command(wxULongLong_t, TPI_SWITCHES *, const wxString &, const wxArrayString &);\r
+               bool Command(wxULongLong_t _eCommand, TPI_SWITCHES * _swInfo, const wxString & _szArcName, const wxArrayString & _szFiles);\r
 \r
-               bool SetCallbackProc(TPI_PROC);\r
+               bool SetCallbackProc(TPI_PROC _prProc);\r
 \r
                int nErrorCode;\r
 \r
index 9151c22..11c42c7 100644 (file)
@@ -411,7 +411,7 @@ int __stdcall GetPluginInformation
 int __stdcall GetFormatInformation\r
 (\r
        TPI_FORMATINFO * _fiInfo,\r
-       bool _bFirst\r
+       bool _bFirst = false\r
 );\r
 \r
 /** プラグインを使用するための初期化を行う。\r
@@ -422,7 +422,7 @@ int __stdcall GetFormatInformation
 int __stdcall LoadPlugin\r
 (\r
        const wxString & _szArcName,\r
-       wxULongLong_t _nTypeId\r
+       wxULongLong_t _nTypeId = 0\r
 );\r
 \r
 /** プラグインを解放する。\r
@@ -431,29 +431,29 @@ int __stdcall LoadPlugin
  */\r
 int __stdcall FreePlugin\r
 (\r
-       void * _pReserved\r
+       void * _pReserved = NULL\r
 );\r
 \r
 /** プラグインが対応しているファイルかどうか確認する。\r
  * @param  _szArcName   確認する対象となる書庫名。\r
- * @param  _nFileCount 書庫に格納されているファイル数を格納するためのポインタ。情報が不要ならばNULLを指定。\r
  * @return エラーコード。\r
  */\r
 int __stdcall CheckArchive\r
 (\r
-       const wxString & _szArcName,\r
-       wxULongLong_t * _nFileCount\r
+       const wxString & _szArcName\r
 );\r
 \r
 /** 書庫のハンドルを取得する。\r
  * @param  _szArcName   操作する対象となる書庫名。\r
  * @param  _hArchive    取得したハンドルを格納するためのポインタ。\r
+ * @param  _nFileCount  書庫に格納されているファイル数を格納するためのポインタ。情報が不要ならばNULLを指定。\r
  * @return エラーコード。\r
  */\r
 int __stdcall OpenArchive\r
 (\r
        const wxString & _szArcName,\r
-       void * * _hArchive\r
+       void * * _hArchive,\r
+       wxULongLong_t * _nFileCount = NULL\r
 );\r
 \r
 /** 書庫のハンドルを解放する。\r
@@ -475,7 +475,7 @@ int __stdcall GetFileInformation
 (\r
        void * _hArchive,\r
        TPI_FILEINFO * _fiInfo,\r
-       bool _bFirst\r
+       bool _bFirst = false\r
 );\r
 \r
 /** 書庫の情報を取得する。\r
index 1e5c22e..19ab0dd 100644 (file)
@@ -200,7 +200,7 @@ void MakeDialog::OnInit(wxInitDialogEvent&)
                        {\r
                                // ロード。\r
                                wxString szLibName = L_DIR_B_LIB + szTPIName;\r
-                               if (tpi.InitLibrary(szLibName, wxEmptyString, 0))\r
+                               if (tpi.InitLibrary(szLibName, wxEmptyString))\r
                                {\r
                                        // 対応する形式名を取得。\r
                                        TPI_FORMATINFO fiInfo;\r
@@ -215,7 +215,7 @@ void MakeDialog::OnInit(wxInitDialogEvent&)
                                                                this->chType->Append(fiInfo.szTypeName);\r
                                                        }\r
                                                }\r
-                                               while (tpi.GetFormatInformation(& fiInfo, false));\r
+                                               while (tpi.GetFormatInformation(& fiInfo));\r
                                        }\r
                                        tpi.FreeLibrary();\r
                                }\r
index 1e36d6d..26bf6a0 100644 (file)
@@ -431,7 +431,7 @@ void MainFrame::OnArcOpen(wxCommandEvent& e)
                        // 情報を保存してカウントアップ。\r
                        this->fileinfo.Add(piInfo.fiInfo);\r
                }\r
-               while (tpi.GetFileInformation(& piInfo.fiInfo, false));\r
+               while (tpi.GetFileInformation(& piInfo.fiInfo));\r
        }\r
 \r
        // GetFileInformationがエラー終了した場合。\r
@@ -1007,7 +1007,7 @@ bool MainFrame::LoadTPI(wxString szFileName, wxULongLong_t * llFileCount)
                do\r
                {\r
                        // 初期化。\r
-                       if (! tpi.InitLibrary(L_DIR_B_LIB + szTPIName, szFileName, 0))\r
+                       if (! tpi.InitLibrary(L_DIR_B_LIB + szTPIName, szFileName))\r
                        {\r
                                tpi.FreeLibrary();\r
                                continue;\r
@@ -1017,7 +1017,7 @@ bool MainFrame::LoadTPI(wxString szFileName, wxULongLong_t * llFileCount)
                        tpi.SetCallbackProc(TPICallbackProc);\r
 \r
                        // 対応確認。\r
-                       if (! tpi.CheckArchive(szFileName, llFileCount) || ! tpi.OpenArchive(szFileName))\r
+                       if (! tpi.CheckArchive(szFileName) || ! tpi.OpenArchive(szFileName, llFileCount))\r
                        {\r
                                tpi.FreeLibrary();\r
                                * llFileCount = 0;\r
index ec9a2cb..b5ec44e 100644 (file)
@@ -795,8 +795,7 @@ int __stdcall FreePlugin
 \r
 int __stdcall CheckArchive\r
 (\r
-       const wxString &,\r
-       wxULongLong_t *\r
+       const wxString &\r
 )\r
 {\r
        return TPI_ERROR_SUCCESS;\r
@@ -805,7 +804,8 @@ int __stdcall CheckArchive
 int __stdcall OpenArchive\r
 (\r
        const wxString & _szArcName,\r
-       void * * _hArchive\r
+       void * * _hArchive,\r
+       wxULongLong_t * _nFileCount\r
 )\r
 {\r
        // ***.tar.xxxは不便なので弾く。\r
@@ -848,6 +848,12 @@ int __stdcall OpenArchive
                }\r
                if (hArc->Open(file, & nMax, openCallback) == S_OK)\r
                {\r
+                       if (_nFileCount != NULL)\r
+                       {\r
+                               unsigned int n;\r
+                               hArc->GetNumberOfItems(& n);\r
+                               * _nFileCount = n;\r
+                       }\r
                        * _hArchive = hArc;\r
                        return TPI_ERROR_SUCCESS;\r
                }\r
@@ -943,7 +949,7 @@ int __stdcall Command
                                        nIndexes.Add(fiInfo.nFileId);\r
                                }\r
                        }\r
-                       while (GetFileInformation(hArc, & fiInfo, false) == TPI_ERROR_SUCCESS);\r
+                       while (GetFileInformation(hArc, & fiInfo) == TPI_ERROR_SUCCESS);\r
                }\r
 \r
                CArchiveExtractCallback * extractCallbackSpec = new CArchiveExtractCallback(hArc,_swInfo);\r
index 1911d1a..9ee8207 100644 (file)
@@ -506,7 +506,7 @@ int __stdcall LoadPlugin
                g_LibInfo.node = * xmlLibrary;\r
 \r
                // 書庫に対応しているかチェック。\r
-               if (CheckArchive(_szArcName, NULL) == TPI_ERROR_SUCCESS)\r
+               if (CheckArchive(_szArcName) == TPI_ERROR_SUCCESS)\r
                {\r
                        // 対応していれば処理を終了。\r
                        return TPI_ERROR_SUCCESS;\r
@@ -531,8 +531,7 @@ int __stdcall FreePlugin
 \r
 int __stdcall CheckArchive\r
 (\r
-       const wxString & _szArcName,\r
-       wxULongLong_t * _llFileCount\r
+       const wxString & _szArcName\r
 )\r
 {\r
        // Unicodeモードに設定。\r
@@ -556,7 +555,19 @@ int __stdcall CheckArchive
                return TPI_ERROR_D_UNSUPPORTED;\r
        }\r
 \r
-       if (_llFileCount != NULL)\r
+       return TPI_ERROR_SUCCESS;\r
+}\r
+\r
+int __stdcall OpenArchive\r
+(\r
+       const wxString & _szArcName,\r
+       void * * _hArchive,\r
+       wxULongLong_t * _nFileCount\r
+)\r
+{\r
+       // ファイル数を取得。\r
+       FARPROC fpProc;\r
+       if (_nFileCount != NULL)\r
        {\r
                fpProc = ::GetAPIAddress("GetFileCount", true);\r
                if (fpProc == NULL)\r
@@ -564,26 +575,17 @@ int __stdcall CheckArchive
                        return TPI_ERROR_U_USE_LIBRARY;\r
                }\r
 \r
-               int nFileCount = g_LibInfo.fUnicode\r
+               int n = g_LibInfo.fUnicode\r
                        ? ((int (__stdcall *)(const wchar_t *)) fpProc)(_szArcName.wchar_str())\r
                        : ((int (__stdcall *)(const char *)) fpProc)(_szArcName.ToUTF8());\r
-               if (nFileCount == -1)\r
+               if (n == -1)\r
                {\r
                        return TPI_ERROR_ARC_UNSUPPORTED;\r
                }\r
-               * _llFileCount = nFileCount;\r
+               * _nFileCount = n;\r
        }\r
 \r
-       return TPI_ERROR_SUCCESS;\r
-}\r
-\r
-int __stdcall OpenArchive\r
-(\r
-       const wxString & _szArcName,\r
-       void * * _hArchive\r
-)\r
-{\r
-       FARPROC fpProc = ::GetAPIAddress("OpenArchive", true);\r
+       fpProc = ::GetAPIAddress("OpenArchive", true);\r
        if (fpProc == NULL)\r
        {\r
                return TPI_ERROR_U_USE_LIBRARY;\r
index 7bca842..9716a91 100644 (file)
@@ -273,7 +273,7 @@ int __stdcall LoadPlugin
                g_LibInfo.node = * xmlLibrary;\r
 \r
                // 書庫に対応しているかチェック。\r
-               if (CheckArchive(_szArcName, NULL) == TPI_ERROR_SUCCESS)\r
+               if (CheckArchive(_szArcName) == TPI_ERROR_SUCCESS)\r
                {\r
                        // 対応していれば処理を終了。\r
                        return TPI_ERROR_SUCCESS;\r
@@ -295,8 +295,7 @@ int __stdcall FreePlugin
 \r
 int __stdcall CheckArchive\r
 (\r
-       const wxString & _szArcName,\r
-       wxULongLong_t *\r
+       const wxString & _szArcName\r
 )\r
 {\r
        wxFileName fnArchive(_szArcName);\r
@@ -322,7 +321,8 @@ int __stdcall CheckArchive
 int __stdcall OpenArchive\r
 (\r
        const wxString & _szArcName,\r
-       void * * _hArchive\r
+       void * * _hArchive,\r
+       wxULongLong_t * _nFileCount\r
 )\r
 {\r
        wxString szOutput;\r
@@ -333,6 +333,10 @@ int __stdcall OpenArchive
        wxArrayString * as = new wxArrayString(::wxStringTokenize(szOutput, wxT("\r\n")));\r
        * _hArchive = (void *) as;\r
        as->Shrink();\r
+       if (_nFileCount != NULL)\r
+       {\r
+               * _nFileCount = as->GetCount();\r
+       }\r
        return as->IsEmpty() ? TPI_ERROR_UNDEFINED : TPI_ERROR_SUCCESS;\r
 }\r
 \r
index 0e80f14..e1f3602 100644 (file)
@@ -231,8 +231,7 @@ int __stdcall FreePlugin
 \r
 int __stdcall CheckArchive\r
 (\r
-       const wxString & _szArcName,\r
-       wxULongLong_t *\r
+       const wxString & _szArcName\r
 )\r
 {\r
        FARPROC fpProc = ::GetAPIAddress("IsValidArchive");\r
@@ -248,7 +247,8 @@ int __stdcall CheckArchive
 int __stdcall OpenArchive\r
 (\r
        const wxString & _szArcName,\r
-       void * * _hArchive\r
+       void * * _hArchive,\r
+       wxULongLong_t *\r
 )\r
 {\r
        FARPROC fpProc = ::GetAPIAddress("CreateEgg");\r
index 0ebfc41..d728f97 100644 (file)
@@ -212,8 +212,7 @@ int __stdcall FreePlugin
 \r
 int __stdcall CheckArchive\r
 (\r
-       const wxString &,\r
-       wxULongLong_t *\r
+       const wxString &\r
 )\r
 {\r
        return TPI_ERROR_SUCCESS;\r
@@ -222,7 +221,8 @@ int __stdcall CheckArchive
 int __stdcall OpenArchive\r
 (\r
        const wxString & _szArcName,\r
-       void * * _hArchive\r
+       void * * _hArchive,\r
+       wxULongLong_t *\r
 )\r
 {\r
        if (! g_hLib.HasSymbol(wxT("RAROpenArchiveEx")))\r
index fa51bf4..894b0ed 100644 (file)
@@ -145,7 +145,7 @@ int __stdcall LoadPlugin
                        }\r
 \r
                        // 書庫に対応しているかチェック。\r
-                       if (CheckArchive(_szArcName, NULL) == TPI_ERROR_SUCCESS)\r
+                       if (CheckArchive(_szArcName) == TPI_ERROR_SUCCESS)\r
                        {\r
                                // 対応していれば処理を終了。\r
                                return TPI_ERROR_SUCCESS;\r
@@ -167,8 +167,7 @@ int __stdcall FreePlugin
 \r
 int __stdcall CheckArchive\r
 (\r
-       const wxString & _szArcName,\r
-       wxULongLong_t *\r
+       const wxString & _szArcName\r
 )\r
 {\r
        FARPROC fpProc = ::GetProcAddress(g_hLib, "IsSupported");\r
@@ -197,7 +196,8 @@ int __stdcall CheckArchive
 int __stdcall OpenArchive\r
 (\r
        const wxString & _szArcName,\r
-       void * * _hArchive\r
+       void * * _hArchive,\r
+       wxULongLong_t * _nFileCount\r
 )\r
 {\r
        FARPROC fpProc = ::GetProcAddress(g_hLib, "GetArchiveInfo");\r
@@ -211,7 +211,10 @@ int __stdcall OpenArchive
        {\r
                return nReturnCode;\r
        }\r
-\r
+       if (_nFileCount != NULL)\r
+       {\r
+               * _nFileCount = ::LocalSize(* _hArchive) / sizeof(fileInfo);\r
+       }\r
        return * _hArchive == NULL ? TPI_ERROR_IO_ARC_OPEN : nReturnCode;\r
 }\r
 \r
index 9436c2e..c5f8ae0 100644 (file)
@@ -151,7 +151,7 @@ int __stdcall LoadPlugin
                }\r
 \r
                // 書庫に対応しているかチェック。\r
-               if (CheckArchive(_szArcName, NULL) == TPI_ERROR_SUCCESS)\r
+               if (CheckArchive(_szArcName) == TPI_ERROR_SUCCESS)\r
                {\r
                        // 対応していれば処理を終了。\r
                        return TPI_ERROR_SUCCESS;\r
@@ -173,8 +173,7 @@ int __stdcall FreePlugin
 \r
 int __stdcall CheckArchive\r
 (\r
-       const wxString & _szArcName,\r
-       wxULongLong_t *\r
+       const wxString & _szArcName\r
 )\r
 {\r
        FARPROC fpProc = ::GetProcAddress(g_hLib, "IsSupported");\r
@@ -203,7 +202,8 @@ int __stdcall CheckArchive
 int __stdcall OpenArchive\r
 (\r
        const wxString & _szArcName,\r
-       void * * _hArchive\r
+       void * * _hArchive,\r
+       wxULongLong_t *\r
 )\r
 {\r
        * _hArchive = new wxString(_szArcName);\r