\r
<h2>History</h2>\r
<dl id="history">\r
- <dt>2011/01/--</dt>\r
+ <dt>2011/02/--</dt>\r
<dd>\r
Ver.0.01β10\r
<dl>\r
<dt>Lychee</dt>\r
<dd>\r
<ul>\r
+ <li class="add">ステータスバーにポイントしたときに書庫やTPIの情報を表示する機能を追加。</li>\r
<li class="add">複製のメニューにアイコンを追加。</li>\r
<li class="chg">Linuxでは属性の部分にパーミッションを表示するよう変更。</li>\r
<li class="chg">格納パスにカレントディレクトリが含まれている場合は、それを除いて表示するよう変更。</li>\r
<li class="chg">UnRAR.dllの仕様変更に追随。</li>\r
</ul>\r
</dd>\r
+ <dt>spiLibrary</dt>\r
+ <dd>\r
+ <ul>\r
+ <li class="add">使用しているSPIの情報をTPI_ARCHIVEINFO::TPI_FORMATINFOに格納する機能を追加。</li>\r
+ </ul>\r
+ </dd>\r
+ <dt>xpiLibrary</dt>\r
+ <dd>\r
+ <ul>\r
+ <li class="add">使用しているSPIの情報をTPI_ARCHIVEINFO::TPI_FORMATINFOに格納する機能を追加。</li>\r
+ <li class="add">XPIの情報をTPI_FILEINFO::szCommentに格納する機能を追加。</li>\r
+ <li class="fix">GetFileInformationでのバッファオーバーフローを修正。</li>\r
+ </ul>\r
+ </dd>\r
</dl>\r
</dd>\r
<dt>2010/11/21</dt>\r
\r
// GetPluginInfoを実行。\r
FARPROC fpProc = ::GetProcAddress(hXPI, "GetPluginInfo");\r
- char szTemp[20];\r
+ char szTemp[513];\r
+ memset(szTemp, 0, sizeof(szTemp));\r
if (fpProc == NULL\r
- || ((int (PASCAL *)(int, char *, int)) fpProc)(0, szTemp, sizeof(szTemp)) <= 0\r
- || szTemp[2] != 'X' || szTemp[3] != 'N'\r
- || ((int (PASCAL *)(int, char *, int)) fpProc)(2, szTemp, sizeof(szTemp)) <= 0)\r
+ || ((int (PASCAL *)(int, char *, int)) fpProc)(0, szTemp, sizeof(szTemp) - 1) <= 0\r
+ || szTemp[2] != 'X' || szTemp[3] != 'N')\r
{\r
::FreeLibrary(hXPI);\r
continue;\r
}\r
\r
+ _fiInfo->fnFileName = wxFileName(szArcName);\r
+ _fiInfo->fnFileName.SetVolume(wxEmptyString);\r
+ _fiInfo->fnFileName.SetPath(szXPIName);\r
+ if (((int (PASCAL *)(int, char *, int)) fpProc)(1, szTemp, sizeof(szTemp) - 1) > 0)\r
+ {\r
+ _fiInfo->szComment = MB2String(szTemp);\r
+ }\r
+ if (((int (PASCAL *)(int, char *, int)) fpProc)(2, szTemp, sizeof(szTemp) - 1) > 0)\r
+ {\r
+ _fiInfo->fnFileName.SetExt(MB2String(szTemp));\r
+ }\r
+ _fiInfo->szStoredName = _fiInfo->fnFileName.GetFullPath();\r
+\r
// 対応確認。\r
fpProc = ::GetProcAddress(hXPI, "IsSupported");\r
if (fpProc == NULL || ! ((BOOL (PASCAL *)(int)) fpProc)(nColorDepth))\r
::FreeLibrary(hXPI);\r
continue;\r
}\r
-\r
- _fiInfo->fnFileName = wxFileName(szArcName);\r
- _fiInfo->fnFileName.SetVolume(wxEmptyString);\r
- _fiInfo->fnFileName.SetPath(szXPIName);\r
- _fiInfo->fnFileName.SetExt(MB2String(szTemp));\r
- _fiInfo->szStoredName = _fiInfo->fnFileName.GetFullPath();\r
return TPI_ERROR_SUCCESS;\r
}\r
while (fs.GetNext(& szXPIName));\r
fpProc = ::GetProcAddress(g_hLib, "GetPluginInfo");\r
if (fpProc != NULL)\r
{\r
- char szTemp[257];\r
+ char szTemp[513];\r
memset(szTemp, 0, sizeof(szTemp));\r
+ if (((int (PASCAL *)(int, char *, int)) fpProc)(1, szTemp, sizeof(szTemp) - 1) > 0)\r
+ {\r
+ _aiInfo->fiInfo.szEngineName = MB2String(szTemp);\r
+ }\r
if (((int (PASCAL *)(int, char *, int)) fpProc)(2, szTemp, sizeof(szTemp) - 1) > 0)\r
{\r
_aiInfo->fiInfo.szSuffix = MB2String(szTemp);\r