(\r
const wxString & _szArcName,\r
void * * _hArchive,\r
- wxULongLong_t *\r
+ wxULongLong_t * _nFileCount\r
)\r
{\r
FARPROC fpProc = ::GetAPIAddress("IsValidArchive");\r
}\r
\r
fpProc = ::GetAPIAddress("OpenArchive");\r
- return fpProc == NULL ? TPI_ERROR_U_USE_LIBRARY : ErrorCodeConvert(((UINT (__cdecl *)(void *, wchar_t *)) fpProc)(* _hArchive, _szArcName.wchar_str()));\r
+ if (fpProc == NULL)\r
+ {\r
+ return TPI_ERROR_U_USE_LIBRARY;\r
+ }\r
+ nErrorCode = ErrorCodeConvert(((UINT (__cdecl *)(void *, wchar_t *)) fpProc)(* _hArchive, _szArcName.wchar_str()));\r
+ if (nErrorCode != TPI_ERROR_SUCCESS)\r
+ {\r
+ return nErrorCode;\r
+ }\r
+\r
+ if (_nFileCount != NULL)\r
+ {\r
+ fpProc = ::GetAPIAddress("GetFileCount");\r
+ if (fpProc == NULL)\r
+ {\r
+ return TPI_ERROR_U_USE_LIBRARY;\r
+ }\r
+ unsigned int n;\r
+ nErrorCode = ErrorCodeConvert(((UINT (__cdecl *)(void *, size_t *)) fpProc)(* _hArchive, & n));\r
+ if (nErrorCode != TPI_ERROR_SUCCESS)\r
+ {\r
+ return nErrorCode;\r
+ }\r
+ * _nFileCount = n;\r
+ }\r
+\r
+ return TPI_ERROR_SUCCESS;\r
}\r
\r
int __stdcall CloseArchive\r