diff options
Diffstat (limited to 'src/tools/extractor_common')
-rw-r--r-- | src/tools/extractor_common/CascHandles.cpp | 10 | ||||
-rw-r--r-- | src/tools/extractor_common/CascHandles.h | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/tools/extractor_common/CascHandles.cpp b/src/tools/extractor_common/CascHandles.cpp index baed5e61b7a..cfce1c22999 100644 --- a/src/tools/extractor_common/CascHandles.cpp +++ b/src/tools/extractor_common/CascHandles.cpp @@ -55,10 +55,16 @@ void CASC::FileDeleter::operator()(HANDLE handle) ::CascCloseFile(handle); } -CASC::StorageHandle CASC::OpenStorage(boost::filesystem::path const& path, DWORD localeMask) +CASC::StorageHandle CASC::OpenStorage(boost::filesystem::path const& path, DWORD localeMask, char const* product) { + std::string strPath = path.string(); + CASC_OPEN_STORAGE_ARGS args = {}; + args.Size = sizeof(CASC_OPEN_STORAGE_ARGS); + args.szLocalPath = strPath.c_str(); + args.szCodeName = product; + args.dwLocaleMask = localeMask; HANDLE handle = nullptr; - if (!::CascOpenStorage(path.string().c_str(), localeMask, &handle)) + if (!::CascOpenStorageEx(nullptr, &args, false, &handle)) { DWORD lastError = GetLastError(); // support checking error set by *Open* call, not the next *Close* printf("Error opening casc storage '%s': %s\n", path.string().c_str(), HumanReadableCASCError(lastError)); diff --git a/src/tools/extractor_common/CascHandles.h b/src/tools/extractor_common/CascHandles.h index 4f536ce9ecc..008f118c68d 100644 --- a/src/tools/extractor_common/CascHandles.h +++ b/src/tools/extractor_common/CascHandles.h @@ -48,7 +48,7 @@ namespace CASC char const* HumanReadableCASCError(DWORD error); - StorageHandle OpenStorage(boost::filesystem::path const& path, DWORD localeMask); + StorageHandle OpenStorage(boost::filesystem::path const& path, DWORD localeMask, char const* product); DWORD GetBuildNumber(StorageHandle const& storage); DWORD GetInstalledLocalesMask(StorageHandle const& storage); bool HasTactKey(StorageHandle const& storage, ULONGLONG keyLookup); |