diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-11-03 01:15:30 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-11-03 01:15:30 +0100 |
commit | c4564566b0b308f88f3664ec124a8557bdc278f0 (patch) | |
tree | f09d604f961e5d605556bc652aea5ec5d505d025 /dep/CascLib/src/CascLib.h | |
parent | 722201e01c7809f1e85eb480499630a7d7d748b5 (diff) |
Dep/CascLib: Update to ladislav-zezula/CascLib@136c6e05537bd7123620ddb28671d1f2cf060e0b
Diffstat (limited to 'dep/CascLib/src/CascLib.h')
-rw-r--r-- | dep/CascLib/src/CascLib.h | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/dep/CascLib/src/CascLib.h b/dep/CascLib/src/CascLib.h index 815ca7e3376..3f4445e9351 100644 --- a/dep/CascLib/src/CascLib.h +++ b/dep/CascLib/src/CascLib.h @@ -140,6 +140,8 @@ extern "C" { #define CASC_FEATURE_LOCALE_FLAGS 0x00000040 // Locale flags are supported #define CASC_FEATURE_CONTENT_FLAGS 0x00000080 // Content flags are supported #define CASC_FEATURE_ONLINE 0x00000100 // The storage is an online storage +#define CASC_FEATURE_LOCAL_CDNS 0x00000200 // (Online) use cached "cdns" file, if available +#define CASC_FEATURE_LOCAL_VERSIONS 0x00000400 // (Online) use cached "versions" file, if available // Macro to convert FileDataId to the argument of CascOpenFile #define CASC_FILE_DATA_ID(FileDataId) ((LPCSTR)(size_t)FileDataId) @@ -329,7 +331,7 @@ typedef struct _CASC_OPEN_STORAGE_ARGS void * PtrProductParam; // Pointer-sized parameter that will be passed to PfnProgressCallback DWORD dwLocaleMask; // Locale mask to open - DWORD dwFlags; // Reserved. Set to zero. + DWORD dwFlags; // Additional CASC_FEATURE_XXX can be set here // // Any additional member from here on must be checked for availability using the ExtractVersionedArgument function. @@ -341,31 +343,34 @@ typedef struct _CASC_OPEN_STORAGE_ARGS LPCTSTR szBuildKey; // If non-null, this will specify a build key (aka MD5 of build config that is different that current online version) + LPCTSTR szCdnHostUrl; // If non-null, specifies the custom CDN URL. Must contain protocol, can contain port number + // Example: http://eu.custom-wow-cdn.com:8000 + } CASC_OPEN_STORAGE_ARGS, *PCASC_OPEN_STORAGE_ARGS; //----------------------------------------------------------------------------- // Functions for storage manipulation -bool WINAPI CascOpenStorageEx(LPCTSTR szParams, PCASC_OPEN_STORAGE_ARGS pArgs, bool bOnlineStorage, HANDLE * phStorage); -bool WINAPI CascOpenStorage(LPCTSTR szParams, DWORD dwLocaleMask, HANDLE * phStorage); -bool WINAPI CascOpenOnlineStorage(LPCTSTR szParams, DWORD dwLocaleMask, HANDLE * phStorage); -bool WINAPI CascGetStorageInfo(HANDLE hStorage, CASC_STORAGE_INFO_CLASS InfoClass, void * pvStorageInfo, size_t cbStorageInfo, size_t * pcbLengthNeeded); -bool WINAPI CascCloseStorage(HANDLE hStorage); +bool WINAPI CascOpenStorageEx(LPCTSTR szParams, PCASC_OPEN_STORAGE_ARGS pArgs, bool bOnlineStorage, HANDLE * phStorage); +bool WINAPI CascOpenStorage(LPCTSTR szParams, DWORD dwLocaleMask, HANDLE * phStorage); +bool WINAPI CascOpenOnlineStorage(LPCTSTR szParams, DWORD dwLocaleMask, HANDLE * phStorage); +bool WINAPI CascGetStorageInfo(HANDLE hStorage, CASC_STORAGE_INFO_CLASS InfoClass, void * pvStorageInfo, size_t cbStorageInfo, size_t * pcbLengthNeeded); +bool WINAPI CascCloseStorage(HANDLE hStorage); -bool WINAPI CascOpenFile(HANDLE hStorage, const void * pvFileName, DWORD dwLocaleFlags, DWORD dwOpenFlags, HANDLE * PtrFileHandle); -bool WINAPI CascOpenLocalFile(LPCTSTR szFileName, DWORD dwOpenFlags, HANDLE * PtrFileHandle); -bool WINAPI CascGetFileInfo(HANDLE hFile, CASC_FILE_INFO_CLASS InfoClass, void * pvFileInfo, size_t cbFileInfo, size_t * pcbLengthNeeded); -bool WINAPI CascGetFileSize64(HANDLE hFile, PULONGLONG PtrFileSize); -bool WINAPI CascSetFilePointer64(HANDLE hFile, LONGLONG DistanceToMove, PULONGLONG PtrNewPos, DWORD dwMoveMethod); -bool WINAPI CascReadFile(HANDLE hFile, void * lpBuffer, DWORD dwToRead, PDWORD pdwRead); -bool WINAPI CascCloseFile(HANDLE hFile); +bool WINAPI CascOpenFile(HANDLE hStorage, const void * pvFileName, DWORD dwLocaleFlags, DWORD dwOpenFlags, HANDLE * PtrFileHandle); +bool WINAPI CascOpenLocalFile(LPCTSTR szFileName, DWORD dwOpenFlags, HANDLE * PtrFileHandle); +bool WINAPI CascGetFileInfo(HANDLE hFile, CASC_FILE_INFO_CLASS InfoClass, void * pvFileInfo, size_t cbFileInfo, size_t * pcbLengthNeeded); +bool WINAPI CascGetFileSize64(HANDLE hFile, PULONGLONG PtrFileSize); +bool WINAPI CascSetFilePointer64(HANDLE hFile, LONGLONG DistanceToMove, PULONGLONG PtrNewPos, DWORD dwMoveMethod); +bool WINAPI CascReadFile(HANDLE hFile, void * lpBuffer, DWORD dwToRead, PDWORD pdwRead); +bool WINAPI CascCloseFile(HANDLE hFile); -DWORD WINAPI CascGetFileSize(HANDLE hFile, PDWORD pdwFileSizeHigh); -DWORD WINAPI CascSetFilePointer(HANDLE hFile, LONG lFilePos, LONG * PtrFilePosHigh, DWORD dwMoveMethod); +DWORD WINAPI CascGetFileSize(HANDLE hFile, PDWORD pdwFileSizeHigh); +DWORD WINAPI CascSetFilePointer(HANDLE hFile, LONG lFilePos, LONG * PtrFilePosHigh, DWORD dwMoveMethod); HANDLE WINAPI CascFindFirstFile(HANDLE hStorage, LPCSTR szMask, PCASC_FIND_DATA pFindData, LPCTSTR szListFile); -bool WINAPI CascFindNextFile(HANDLE hFind, PCASC_FIND_DATA pFindData); -bool WINAPI CascFindClose(HANDLE hFind); +bool WINAPI CascFindNextFile(HANDLE hFind, PCASC_FIND_DATA pFindData); +bool WINAPI CascFindClose(HANDLE hFind); bool WINAPI CascAddEncryptionKey(HANDLE hStorage, ULONGLONG KeyName, LPBYTE Key); bool WINAPI CascAddStringEncryptionKey(HANDLE hStorage, ULONGLONG KeyName, LPCSTR szKey); @@ -375,6 +380,13 @@ LPBYTE WINAPI CascFindEncryptionKey(HANDLE hStorage, ULONGLONG KeyName); bool WINAPI CascGetNotFoundEncryptionKey(HANDLE hStorage, ULONGLONG * KeyName); //----------------------------------------------------------------------------- +// CDN Support + +LPCTSTR WINAPI CascCdnGetDefault(); +LPBYTE WINAPI CascCdnDownload(LPCTSTR szCdnHostUrl, LPCTSTR szProduct, LPCTSTR szFileName, DWORD * PtrSize); +void WINAPI CascCdnFree(void * buffer); + +//----------------------------------------------------------------------------- // Error code support void SetCascError(DWORD dwErrCode); |