OSDN Git Service

最新のUnRAR.dllに対応。
authorsirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Mon, 11 Nov 2013 11:35:01 +0000 (11:35 +0000)
committersirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Mon, 11 Nov 2013 11:35:01 +0000 (11:35 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/tpi/tpi@641 9df91469-1e22-0410-86e7-ea8537beb833

doc/history.html
doc/readme.html
src/plugin/rarArc/rarArc.cpp
src/plugin/rarArc/rarArc.h
src/tpi.sln

index 03df073..c5acff1 100644 (file)
@@ -29,7 +29,7 @@
   </ul>\r
 \r
   <h2>History</h2>\r
-  <h3 id="v0.01beta15">Ver.0.01&beta;15 (2013/02/--)</h3>\r
+  <h3 id="v0.01beta15">Ver.0.01&beta;15 (2014/02/--)</h3>\r
   <dl>\r
    <dt>Lychee</dt>\r
    <dd>\r
@@ -50,6 +50,7 @@
    <dd>\r
     <ul>\r
      <li class="chg">ライブラリが読み込めなかった場合のエラーダイアログを抑制するよう変更。</li>\r
+     <li class="chg">最新のUnRAR.dllに対応。</li>\r
     </ul>\r
    </dd>\r
   </dl>\r
index 1856ab6..7092e5b 100644 (file)
 \r
   <h3 class="file">rarArc</h3>\r
   <p><a href="http://www.rarlab.com/">WinRAR</a>などで作成されるrar書庫に対応するTPIです。</p>\r
-  <p>動作には<span class="file_win">unrar.dll</span>か<span class="file_lin">libunrar.so</span>が必要です。Linuxでは、最新のunrarsrc-xxx.tar.gzを入手して次のコマンドを実行してください。</p>\r
-  <div>\r
-   <kbd>make -f makefile.unix lib</kbd>\r
-  </div>\r
+  <p>動作には<span class="file_win">unrar.dll</span>か<span class="file_lin">libunrar.so</span>が必要です。</p>\r
 \r
   <h3 class="file_win">spiLibrary</h3>\r
   <p><a href="http://www.digitalpad.co.jp/~takechin/">Susie</a>のPlug-inであるSPIに対応するTPIです。</p>\r
index 7633384..aa1f846 100644 (file)
@@ -52,6 +52,7 @@ int __stdcall CallbackProc(unsigned int msg, long p, long P1, long P2)
        switch (msg)\r
        {\r
        case UCM_CHANGEVOLUME:\r
+       case UCM_CHANGEVOLUMEW:\r
                switch (P2)\r
                {\r
                case RAR_VOL_ASK:\r
@@ -64,10 +65,10 @@ int __stdcall CallbackProc(unsigned int msg, long p, long P1, long P2)
                        // 分割部分の読み込みを開始。\r
                        piInfo->eMessage = TPI_MESSAGE_STATUS;\r
                        piInfo->eStatus  = TPI_STATUS_OPENARCHIVE;\r
-                       piInfo->fiInfo.fnFileName = wxFileName(UTF82String((char *) P1));\r
+                       piInfo->fiInfo.fnFileName = wxFileName(msg == UCM_CHANGEVOLUMEW ? WC2String((wchar_t *) P1) : UTF82String((char *) P1));\r
                        break;\r
                default:\r
-                       return 1;\r
+                       return 0;\r
                }\r
                break;\r
        case UCM_PROCESSDATA:\r
@@ -76,20 +77,25 @@ int __stdcall CallbackProc(unsigned int msg, long p, long P1, long P2)
                piInfo->nProcessedSize += P2;\r
                break;\r
        case UCM_NEEDPASSWORD:\r
+       case UCM_NEEDPASSWORDW:\r
                piInfo->eMessage = TPI_MESSAGE_ASK;\r
                piInfo->eStatus  = TPI_PARAM_PASSWORD;\r
                piInfo->szParam.Empty();\r
                break;\r
        default:\r
-               return 1;\r
+               return 0;\r
        }\r
 \r
        // コールバック関数に送信。\r
        if (g_prProc == NULL || g_prProc(TPI_NOTIFY_COMMON, piInfo) == TPI_CALLBACK_CONTINUE)\r
        {\r
-               if (msg != UCM_PROCESSDATA && P2 != RAR_VOL_NOTIFY)\r
+               if (msg == UCM_NEEDPASSWORDW || (msg == UCM_CHANGEVOLUMEW && P2 == RAR_VOL_ASK))\r
+               {\r
+                       wcsncpy((wchar_t *) P1, piInfo->szParam.wchar_str(), (msg == UCM_CHANGEVOLUMEW ? 1024 : P2) - 1);\r
+               }\r
+               if (msg == UCM_NEEDPASSWORD  || (msg == UCM_CHANGEVOLUME  && P2 == RAR_VOL_ASK))\r
                {\r
-                       strncpy((char *) P1, piInfo->szParam.char_str(), (msg == UCM_CHANGEVOLUME ? 1024 : P2) - 1);\r
+                       strncpy((char *)    P1, piInfo->szParam.char_str(),  (msg == UCM_CHANGEVOLUME  ? 1024 : P2) - 1);\r
                }\r
                return 1;\r
        }\r
@@ -122,6 +128,8 @@ int ErrorCodeConvert(int nErrorCode)
        case ERAR_SMALL_BUF:        return TPI_ERROR_UNDEFINED;\r
        case ERAR_UNKNOWN:          return TPI_ERROR_UNDEFINED;\r
        case ERAR_MISSING_PASSWORD: return TPI_ERROR_ARC_ENCRYPTED;\r
+       case ERAR_EREFERENCE:       return TPI_ERROR_UNDEFINED;\r
+       case ERAR_BAD_PASSWORD:     return TPI_ERROR_ARC_ENCRYPTED;\r
        default:                    return TPI_ERROR_UNDEFINED;\r
        }\r
 }\r
index 6fadd50..86bdd82 100644 (file)
@@ -38,6 +38,8 @@
 #define ERAR_SMALL_BUF          20\r
 #define ERAR_UNKNOWN            21\r
 #define ERAR_MISSING_PASSWORD   22\r
+#define ERAR_EREFERENCE         23\r
+#define ERAR_BAD_PASSWORD       24\r
 \r
 // Open Mode\r
 #define RAR_OM_LIST              0\r
@@ -111,5 +113,7 @@ enum UNRARCALLBACK_MESSAGES
 {\r
   UCM_CHANGEVOLUME,\r
   UCM_PROCESSDATA,\r
-  UCM_NEEDPASSWORD\r
+  UCM_NEEDPASSWORD,\r
+  UCM_CHANGEVOLUMEW,\r
+  UCM_NEEDPASSWORDW\r
 };\r
index 491278f..07b7c6d 100644 (file)
@@ -1,5 +1,5 @@
-Microsoft Visual Studio Solution File, Format Version 10.00\r
-# Visual Studio 2008\r
+Microsoft Visual Studio Solution File, Format Version 12.00\r
+# Visual Studio 2012\r
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "plugin", "plugin", "{0E7CC57B-177A-4DFA-ADC7-1BCB89D0C199}"\r
 EndProject\r
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "handle", "handle", "{7A8E3A4A-C2D7-40FD-89E4-2E8621B16A4B}"\r
@@ -16,32 +16,32 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "library", "library", "{85B5
                common\library\xmldoc.h = common\library\xmldoc.h\r
        EndProjectSection\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lychee", "lychee\lychee.vcproj", "{50F13951-5698-4418-8353-BFDFC5A6BC13}"\r
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{2D806CFE-A74F-4D32-8185-8E625F3C02A2}"\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "calLibrary", "plugin\calLibrary\calLibrary.vcproj", "{3AC2C4C6-6D2D-4774-829F-BA043A49FEAF}"\r
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "header", "header", "{B88CB053-1017-44FE-B51F-23BD13B6ADC1}"\r
+       ProjectSection(SolutionItems) = preProject\r
+               common\header\plugin-extra.h = common\header\plugin-extra.h\r
+               common\header\plugin.def = common\header\plugin.def\r
+               common\header\plugin.h = common\header\plugin.h\r
+       EndProjectSection\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spiLibrary", "plugin\spiLibrary\spiLibrary.vcproj", "{E3AEAFF4-3AC3-4C0E-87D4-CD537F3C5B8D}"\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lychee", "lychee\lychee.vcxproj", "{50F13951-5698-4418-8353-BFDFC5A6BC13}"\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cuiWrapper", "plugin\cuiWrapper\cuiWrapper.vcproj", "{B01B0D18-68C4-4A83-B816-B9D722D38619}"\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "calLibrary", "plugin\calLibrary\calLibrary.vcxproj", "{3AC2C4C6-6D2D-4774-829F-BA043A49FEAF}"\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eggArc", "plugin\eggArc\eggArc.vcproj", "{BEE5C119-4DF9-4954-AC14-642B05BCB06A}"\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spiLibrary", "plugin\spiLibrary\spiLibrary.vcxproj", "{E3AEAFF4-3AC3-4C0E-87D4-CD537F3C5B8D}"\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rarArc", "plugin\rarArc\rarArc.vcproj", "{B4869FAD-3BDE-43C4-9C1E-4F5FE4194920}"\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cuiWrapper", "plugin\cuiWrapper\cuiWrapper.vcxproj", "{B01B0D18-68C4-4A83-B816-B9D722D38619}"\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xpiLibrary", "plugin\xpiLibrary\xpiLibrary.vcproj", "{4CE16674-C876-4459-A437-66CA97209E9E}"\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eggArc", "plugin\eggArc\eggArc.vcxproj", "{BEE5C119-4DF9-4954-AC14-642B05BCB06A}"\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "7zArc", "plugin\7zArc\7zArc.vcproj", "{29A9F56D-55A4-4961-95ED-ED217807BDA7}"\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rarArc", "plugin\rarArc\rarArc.vcxproj", "{B4869FAD-3BDE-43C4-9C1E-4F5FE4194920}"\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqxArc", "plugin\sqxArc\sqxArc.vcproj", "{A4EB87C8-B18C-486D-96F7-B1EF42685FBC}"\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xpiLibrary", "plugin\xpiLibrary\xpiLibrary.vcxproj", "{4CE16674-C876-4459-A437-66CA97209E9E}"\r
 EndProject\r
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{2D806CFE-A74F-4D32-8185-8E625F3C02A2}"\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "7zArc", "plugin\7zArc\7zArc.vcxproj", "{29A9F56D-55A4-4961-95ED-ED217807BDA7}"\r
 EndProject\r
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "header", "header", "{B88CB053-1017-44FE-B51F-23BD13B6ADC1}"\r
-       ProjectSection(SolutionItems) = preProject\r
-               common\header\plugin-extra.h = common\header\plugin-extra.h\r
-               common\header\plugin.def = common\header\plugin.def\r
-               common\header\plugin.h = common\header\plugin.h\r
-       EndProjectSection\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqxArc", "plugin\sqxArc\sqxArc.vcxproj", "{A4EB87C8-B18C-486D-96F7-B1EF42685FBC}"\r
 EndProject\r
 Global\r
        GlobalSection(SolutionConfigurationPlatforms) = preSolution\r