for (g_LibInfo.nLibIndex = 0; g_LibInfo.nLibIndex < 300 && xmlLibrary != NULL; g_LibInfo.nLibIndex++)\r
{\r
// ライブラリをロード。\r
- const GUID guid = {0x23170F69, 0x40C1, 0x278A, {0x10, 0x00, 0x00, 0x01, 0x10, myGetAttributeInt(xmlLibrary, wxT("name"), 0, 16), 0x00, 0x00}};\r
+ const GUID guid = {0x23170F69, 0x40C1, 0x278A, {0x10, 0x00, 0x00, 0x01, 0x10, (unsigned char) myGetAttributeInt(xmlLibrary, wxT("name"), 0, 16), 0x00, 0x00}};\r
if (((unsigned int (__stdcall *)(const GUID *, const GUID *, void * *)) g_LibInfo.fpProc)(& guid, & IID_IInArchive, (void **) & hArc) != S_OK)\r
{\r
xmlLibrary = myGetNextLib(xmlLibrary);\r
break;\r
}\r
case TPI_COMMAND_CREATE:\r
-// case TPI_COMMAND_ADD:\r
+ case TPI_COMMAND_ADD:\r
{\r
// 入力リストを作成。\r
CObjectVector<NWindows::NFile::NFind::CFileInfo> fiItems;\r
fiItems.Add(fi);\r
}\r
\r
- // 書庫を作成。\r
COutFileStream * outFileStreamSpec = new COutFileStream;\r
CMyComPtr<IOutStream> outFileStream = outFileStreamSpec;\r
- if (! outFileStreamSpec->Create(_swInfo->szArcName.c_str(), false))\r
+ IOutArchive * hArc;\r
+ if (_eCommand == TPI_COMMAND_CREATE)\r
{\r
- return TPI_ERROR_IO_ARC_OPEN;\r
- }\r
+ // 書庫を作成。\r
+ if (! outFileStreamSpec->Create(_swInfo->szArcName.c_str(), false))\r
+ {\r
+ return TPI_ERROR_IO_ARC_OPEN;\r
+ }\r
\r
- // エンジンを読み込み。\r
- IOutArchive * hArc;\r
- const GUID guid = {0x23170F69, 0x40C1, 0x278A, {0x10, 0x00, 0x00, 0x01, 0x10, myGetAttributeInt(& g_LibInfo.node, wxT("name"), 0, 16), 0x00, 0x00}};\r
- if (((unsigned int (__stdcall *)(const GUID *, const GUID *, void **)) g_LibInfo.fpProc)(& guid, & IID_IOutArchive, (void **) & hArc) != S_OK)\r
+ // エンジンを読み込み。\r
+ const GUID guid = {0x23170F69, 0x40C1, 0x278A, {0x10, 0x00, 0x00, 0x01, 0x10, (unsigned char) myGetAttributeInt(& g_LibInfo.node, wxT("name"), 0, 16), 0x00, 0x00}};\r
+ if (((unsigned int (__stdcall *)(const GUID *, const GUID *, void **)) g_LibInfo.fpProc)(& guid, & IID_IOutArchive, (void **) & hArc) != S_OK)\r
+ {\r
+ return TPI_ERROR_ARC_UNSUPPORTED;\r
+ }\r
+ }\r
+ else\r
{\r
- return TPI_ERROR_ARC_UNSUPPORTED;\r
+ // 書庫を開く。\r
+ if (! outFileStreamSpec->Open(_swInfo->szArcName.c_str(), OPEN_EXISTING))\r
+ {\r
+ return TPI_ERROR_IO_ARC_OPEN;\r
+ }\r
+\r
+ // IOutArchiveインタフェースを取得。\r
+ if (((IInArchive *) _hArchive)->QueryInterface(IID_IOutArchive, (void **) & hArc) != S_OK)\r
+ {\r
+ return TPI_ERROR_ARC_UNSUPPORTED;\r
+ }\r
}\r
\r
// 形式情報を取得。\r