Current News
Archived News
Search News
Discussion Forum


Old Forum
Install Programs More Downloads...
Troubleshooting
Source Code
Format Specs.
Misc. Information
Non-SF Stuff
Links




1 #ifndef STORM_H_INCLUDED
2 #define STORM_H_INCLUDED
4 #include <windows.h>
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
10 // This no longer needs to be called
11 extern HINSTANCE LoadStorm(char * DllFileName);
13 #define SFILE_OPEN_HARD_DISK_FILE 0x0000 //Open archive without regard to the drive type it resides on
14 #define SFILE_OPEN_CD_ROM_FILE    0x0001 //Open the archive only if it is on a CD-ROM
16 #define SFILE_SEARCH_CURRENT_ONLY 0x00 //Used with SFileOpenFileEx; only the archive with the handle specified will be searched for the file
17 #define SFILE_SEARCH_ALL_OPEN     0x01 //SFileOpenFileEx will look through all open archives for the file
19 #define MPQHANDLE HANDLE
21 // Storm Function Prototypes
22 typedef BOOL  (WINAPI* funcSFileOpenArchive)(LPCSTR lpFilename, DWORD dwPriority, DWORD dwFlags, MPQHANDLE *hMPQ);
23 typedef BOOL  (WINAPI* funcSFileCloseArchive)(MPQHANDLE hMPQ);
24 typedef BOOL  (WINAPI* funcSFileOpenFile)(LPCSTR lpFileName, MPQHANDLE *hFile);
25 typedef BOOL  (WINAPI* funcSFileOpenFileEx)(MPQHANDLE hMPQ, LPCSTR lpFileName, DWORD dwSearchScope, MPQHANDLE *hFile);
26 typedef BOOL  (WINAPI* funcSFileCloseFile)(MPQHANDLE hFile);
27 typedef DWORD (WINAPI* funcSFileGetFileSize)(MPQHANDLE hFile, LPDWORD lpFileSizeHigh);
28 typedef DWORD (WINAPI* funcSFileSetFilePointer)(MPQHANDLE hFile, long lDistanceToMove, PLONG lplDistanceToMoveHigh, DWORD dwMoveMethod);
29 typedef BOOL  (WINAPI* funcSFileReadFile)(MPQHANDLE hFile,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,LPDWORD lpNumberOfBytesRead,LPOVERLAPPED lpOverlapped);
30 typedef LCID  (WINAPI* funcSFileSetLocale)(LCID nNewLocale);
31 typedef BOOL  (WINAPI* funcSFileDestroy)();
32 typedef BOOL  (WINAPI* funcSFileGetArchiveName)(MPQHANDLE hMPQ, LPCSTR lpBuffer, DWORD dwBufferLength);
33 typedef BOOL  (WINAPI* funcSFileGetFileName)(MPQHANDLE hFile, LPCSTR lpBuffer, DWORD dwBufferLength);
34 typedef BOOL  (WINAPI* funcSFileGetFileArchive)(MPQHANDLE hFile, MPQHANDLE *hMPQ);
35 typedef BOOL  (WINAPI* funcSFileGetBasePath)(LPCSTR lpBuffer, DWORD dwBufferLength);
36 typedef BOOL  (WINAPI* funcSFileSetBasePath)(LPCSTR lpNewBasePath);
38 // Storm Function Names
39 extern funcSFileCloseArchive SFileCloseArchive;
40 extern funcSFileCloseFile SFileCloseFile;
41 extern funcSFileDestroy SFileDestroy;
42 extern funcSFileGetFileArchive SFileGetFileArchive;
43 extern funcSFileGetFileSize SFileGetFileSize;
44 extern funcSFileOpenArchive SFileOpenArchive;
45 extern funcSFileOpenFile SFileOpenFile;
46 extern funcSFileOpenFileEx SFileOpenFileEx;
47 extern funcSFileReadFile SFileReadFile;
48 extern funcSFileSetBasePath SFileSetBasePath;
49 extern funcSFileSetFilePointer SFileSetFilePointer;
50 extern funcSFileSetLocale SFileSetLocale;
51 extern funcSFileGetBasePath SFileGetBasePath;
52 extern funcSFileGetArchiveName SFileGetArchiveName;
53 extern funcSFileGetFileName SFileGetFileName;
55 #ifdef __cplusplus
56 };  // extern "C" 
57 #endif
59 #endif