1 /*****************************************************************************/
2 /* Storm.h Copyright Justin Olbrantz(Quantam) 2000 */
3 /*---------------------------------------------------------------------------*/
4 /* Storm Interface Library v1.0 for Windows */
6 /* Author : Justin Olbrantz(Quantam) */
7 /* E-mail : omega@dragonfire.net */
8 /* WWW : www.campaigncreations.com/starcraft/mpq2k/inside_mopaq/ */
9 /*---------------------------------------------------------------------------*/
10 /* Date Ver Who Comment */
11 /* -------- ---- --- ------- */
12 /* xx.xx.00 1.00 Qua The first version of Storm.h */
13 /* 11.04.03 1.00 Lad Added some functions */
14 /*****************************************************************************/
16 // We need the Windows data types for the Storm prototypes
22 // Somethimes is necessary to change the function names so they
23 // will not conflict with other MPQ tools.
24 #ifdef STORM_ALTERNATE_NAMES
25 #define SFILE(Name) Storm##Name
26 #define SCOMP(Name) Storm##Name
28 #define SFILE(Name) SFile##Name
29 #define SCOMP(Name) SComp##Name
33 // Just in case anyone is still using C out there
38 // Storm file function prototypes
39 BOOL WINAPI
SFILE(OpenArchive
)(LPCSTR lpFileName
, DWORD dwPriority
, DWORD dwFlags
, HANDLE
*hMPQ
);
40 BOOL WINAPI
SFILE(CloseArchive
)(HANDLE hMPQ
);
41 BOOL WINAPI
SFILE(GetArchiveName
)(HANDLE hMPQ
, LPCSTR lpBuffer
, DWORD dwBufferLength
);
42 BOOL WINAPI
SFILE(OpenFile
)(LPCSTR lpFileName
, HANDLE
*hFile
);
43 BOOL WINAPI
SFILE(OpenFileEx
)(HANDLE hMPQ
, LPCSTR lpFileName
, DWORD dwSearchScope
, HANDLE
*hFile
);
44 BOOL WINAPI
SFILE(CloseFile
)(HANDLE hFile
);
45 DWORD WINAPI
SFILE(GetFileSize
)(HANDLE hFile
, LPDWORD lpFileSizeHigh
);
46 BOOL WINAPI
SFILE(GetFileArchive
)(HANDLE hFile
, HANDLE
*hMPQ
);
47 BOOL WINAPI
SFILE(GetFileName
)(HANDLE hFile
, LPCSTR lpBuffer
, DWORD dwBufferLength
);
48 DWORD WINAPI
SFILE(SetFilePointer
)(HANDLE hFile
, long lDistanceToMove
, PLONG lplDistanceToMoveHigh
, DWORD dwMoveMethod
);
49 BOOL WINAPI
SFILE(ReadFile
)(HANDLE hFile
,LPVOID lpBuffer
,DWORD nNumberOfBytesToRead
,LPDWORD lpNumberOfBytesRead
,LPOVERLAPPED lpOverlapped
);
50 LCID WINAPI
SFILE(SetLocale
)(LCID nNewLocale
);
51 BOOL WINAPI
SFILE(GetBasePath
)(LPCSTR lpBuffer
, DWORD dwBufferLength
);
52 BOOL WINAPI
SFILE(SetBasePath
)(LPCSTR lpNewBasePath
);
54 // Storm (de)compression functions
55 BOOL WINAPI
SCOMP(Compress
) (char * pbOutBuffer
, int * pdwOutLength
, char * pbInBuffer
, int dwInLength
, int uCmp
, int uCmpType
, int nCmpLevel
);
56 BOOL WINAPI
SCOMP(Decompress
)(char * pbOutBuffer
, int * pdwOutLength
, char * pbInBuffer
, int dwInLength
);
59 #if defined(_MSC_VER) && !defined(BUILDING_STORM_CPP)
60 #pragma comment(lib, "Storm.lib") // Force linking Storm.lib and thus Storm.dll