From: sirakaba Date: Mon, 11 Nov 2013 11:35:01 +0000 (+0000) Subject: 最新のUnRAR.dllに対応。 X-Git-Url: http://git.osdn.net/view?p=tpi%2Flychee.git;a=commitdiff_plain;h=7d691df6f4265eefceab0ccd7f6f1006d50cabde 最新のUnRAR.dllに対応。 git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/tpi/tpi@641 9df91469-1e22-0410-86e7-ea8537beb833 --- diff --git a/doc/history.html b/doc/history.html index 03df073..c5acff1 100644 --- a/doc/history.html +++ b/doc/history.html @@ -29,7 +29,7 @@

History

-

Ver.0.01β15 (2013/02/--)

+

Ver.0.01β15 (2014/02/--)

Lychee
@@ -50,6 +50,7 @@
  • ライブラリが読み込めなかった場合のエラーダイアログを抑制するよう変更。
  • +
  • 最新のUnRAR.dllに対応。
diff --git a/doc/readme.html b/doc/readme.html index 1856ab6..7092e5b 100644 --- a/doc/readme.html +++ b/doc/readme.html @@ -70,10 +70,7 @@

rarArc

WinRARなどで作成されるrar書庫に対応するTPIです。

-

動作にはunrar.dllかlibunrar.soが必要です。Linuxでは、最新のunrarsrc-xxx.tar.gzを入手して次のコマンドを実行してください。

-
- make -f makefile.unix lib -
+

動作にはunrar.dllかlibunrar.soが必要です。

spiLibrary

SusieのPlug-inであるSPIに対応するTPIです。

diff --git a/src/plugin/rarArc/rarArc.cpp b/src/plugin/rarArc/rarArc.cpp index 7633384..aa1f846 100644 --- a/src/plugin/rarArc/rarArc.cpp +++ b/src/plugin/rarArc/rarArc.cpp @@ -52,6 +52,7 @@ int __stdcall CallbackProc(unsigned int msg, long p, long P1, long P2) switch (msg) { case UCM_CHANGEVOLUME: + case UCM_CHANGEVOLUMEW: switch (P2) { case RAR_VOL_ASK: @@ -64,10 +65,10 @@ int __stdcall CallbackProc(unsigned int msg, long p, long P1, long P2) // 分割部分の読み込みを開始。 piInfo->eMessage = TPI_MESSAGE_STATUS; piInfo->eStatus = TPI_STATUS_OPENARCHIVE; - piInfo->fiInfo.fnFileName = wxFileName(UTF82String((char *) P1)); + piInfo->fiInfo.fnFileName = wxFileName(msg == UCM_CHANGEVOLUMEW ? WC2String((wchar_t *) P1) : UTF82String((char *) P1)); break; default: - return 1; + return 0; } break; case UCM_PROCESSDATA: @@ -76,20 +77,25 @@ int __stdcall CallbackProc(unsigned int msg, long p, long P1, long P2) piInfo->nProcessedSize += P2; break; case UCM_NEEDPASSWORD: + case UCM_NEEDPASSWORDW: piInfo->eMessage = TPI_MESSAGE_ASK; piInfo->eStatus = TPI_PARAM_PASSWORD; piInfo->szParam.Empty(); break; default: - return 1; + return 0; } // コールバック関数に送信。 if (g_prProc == NULL || g_prProc(TPI_NOTIFY_COMMON, piInfo) == TPI_CALLBACK_CONTINUE) { - if (msg != UCM_PROCESSDATA && P2 != RAR_VOL_NOTIFY) + if (msg == UCM_NEEDPASSWORDW || (msg == UCM_CHANGEVOLUMEW && P2 == RAR_VOL_ASK)) + { + wcsncpy((wchar_t *) P1, piInfo->szParam.wchar_str(), (msg == UCM_CHANGEVOLUMEW ? 1024 : P2) - 1); + } + if (msg == UCM_NEEDPASSWORD || (msg == UCM_CHANGEVOLUME && P2 == RAR_VOL_ASK)) { - strncpy((char *) P1, piInfo->szParam.char_str(), (msg == UCM_CHANGEVOLUME ? 1024 : P2) - 1); + strncpy((char *) P1, piInfo->szParam.char_str(), (msg == UCM_CHANGEVOLUME ? 1024 : P2) - 1); } return 1; } @@ -122,6 +128,8 @@ int ErrorCodeConvert(int nErrorCode) case ERAR_SMALL_BUF: return TPI_ERROR_UNDEFINED; case ERAR_UNKNOWN: return TPI_ERROR_UNDEFINED; case ERAR_MISSING_PASSWORD: return TPI_ERROR_ARC_ENCRYPTED; + case ERAR_EREFERENCE: return TPI_ERROR_UNDEFINED; + case ERAR_BAD_PASSWORD: return TPI_ERROR_ARC_ENCRYPTED; default: return TPI_ERROR_UNDEFINED; } } diff --git a/src/plugin/rarArc/rarArc.h b/src/plugin/rarArc/rarArc.h index 6fadd50..86bdd82 100644 --- a/src/plugin/rarArc/rarArc.h +++ b/src/plugin/rarArc/rarArc.h @@ -38,6 +38,8 @@ #define ERAR_SMALL_BUF 20 #define ERAR_UNKNOWN 21 #define ERAR_MISSING_PASSWORD 22 +#define ERAR_EREFERENCE 23 +#define ERAR_BAD_PASSWORD 24 // Open Mode #define RAR_OM_LIST 0 @@ -111,5 +113,7 @@ enum UNRARCALLBACK_MESSAGES { UCM_CHANGEVOLUME, UCM_PROCESSDATA, - UCM_NEEDPASSWORD + UCM_NEEDPASSWORD, + UCM_CHANGEVOLUMEW, + UCM_NEEDPASSWORDW }; diff --git a/src/tpi.sln b/src/tpi.sln index 491278f..07b7c6d 100644 --- a/src/tpi.sln +++ b/src/tpi.sln @@ -1,5 +1,5 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "plugin", "plugin", "{0E7CC57B-177A-4DFA-ADC7-1BCB89D0C199}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "handle", "handle", "{7A8E3A4A-C2D7-40FD-89E4-2E8621B16A4B}" @@ -16,32 +16,32 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "library", "library", "{85B5 common\library\xmldoc.h = common\library\xmldoc.h EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lychee", "lychee\lychee.vcproj", "{50F13951-5698-4418-8353-BFDFC5A6BC13}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{2D806CFE-A74F-4D32-8185-8E625F3C02A2}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "calLibrary", "plugin\calLibrary\calLibrary.vcproj", "{3AC2C4C6-6D2D-4774-829F-BA043A49FEAF}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "header", "header", "{B88CB053-1017-44FE-B51F-23BD13B6ADC1}" + ProjectSection(SolutionItems) = preProject + common\header\plugin-extra.h = common\header\plugin-extra.h + common\header\plugin.def = common\header\plugin.def + common\header\plugin.h = common\header\plugin.h + EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spiLibrary", "plugin\spiLibrary\spiLibrary.vcproj", "{E3AEAFF4-3AC3-4C0E-87D4-CD537F3C5B8D}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lychee", "lychee\lychee.vcxproj", "{50F13951-5698-4418-8353-BFDFC5A6BC13}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cuiWrapper", "plugin\cuiWrapper\cuiWrapper.vcproj", "{B01B0D18-68C4-4A83-B816-B9D722D38619}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "calLibrary", "plugin\calLibrary\calLibrary.vcxproj", "{3AC2C4C6-6D2D-4774-829F-BA043A49FEAF}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eggArc", "plugin\eggArc\eggArc.vcproj", "{BEE5C119-4DF9-4954-AC14-642B05BCB06A}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spiLibrary", "plugin\spiLibrary\spiLibrary.vcxproj", "{E3AEAFF4-3AC3-4C0E-87D4-CD537F3C5B8D}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rarArc", "plugin\rarArc\rarArc.vcproj", "{B4869FAD-3BDE-43C4-9C1E-4F5FE4194920}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cuiWrapper", "plugin\cuiWrapper\cuiWrapper.vcxproj", "{B01B0D18-68C4-4A83-B816-B9D722D38619}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xpiLibrary", "plugin\xpiLibrary\xpiLibrary.vcproj", "{4CE16674-C876-4459-A437-66CA97209E9E}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eggArc", "plugin\eggArc\eggArc.vcxproj", "{BEE5C119-4DF9-4954-AC14-642B05BCB06A}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "7zArc", "plugin\7zArc\7zArc.vcproj", "{29A9F56D-55A4-4961-95ED-ED217807BDA7}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rarArc", "plugin\rarArc\rarArc.vcxproj", "{B4869FAD-3BDE-43C4-9C1E-4F5FE4194920}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqxArc", "plugin\sqxArc\sqxArc.vcproj", "{A4EB87C8-B18C-486D-96F7-B1EF42685FBC}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xpiLibrary", "plugin\xpiLibrary\xpiLibrary.vcxproj", "{4CE16674-C876-4459-A437-66CA97209E9E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{2D806CFE-A74F-4D32-8185-8E625F3C02A2}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "7zArc", "plugin\7zArc\7zArc.vcxproj", "{29A9F56D-55A4-4961-95ED-ED217807BDA7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "header", "header", "{B88CB053-1017-44FE-B51F-23BD13B6ADC1}" - ProjectSection(SolutionItems) = preProject - common\header\plugin-extra.h = common\header\plugin-extra.h - common\header\plugin.def = common\header\plugin.def - common\header\plugin.h = common\header\plugin.h - EndProjectSection +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqxArc", "plugin\sqxArc\sqxArc.vcxproj", "{A4EB87C8-B18C-486D-96F7-B1EF42685FBC}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution