X-Git-Url: https://sfsrealm.hopto.org/projects/gitweb.cgi?a=blobdiff_plain;f=LoadStorm%2FStorm.cpp;h=c8e636631b1cdc02009c7061ea1fe4ac2d1a0bd1;hb=ecca31ff6c588a09592e9a0ca08180828ab8a5a7;hp=264914deea946a92d74e26fdf9c6d73853b2ff20;hpb=6de6dcc6d47a9e193b5a7a312fd54fbe04478592;p=grpapi.git diff --git a/LoadStorm/Storm.cpp b/LoadStorm/Storm.cpp index 264914d..c8e6366 100644 --- a/LoadStorm/Storm.cpp +++ b/LoadStorm/Storm.cpp @@ -9,6 +9,8 @@ struct STORMMODULE { ~STORMMODULE(); } Storm; +void FreeStorm(); + HINSTANCE hStorm = 0; BOOL AlreadyLoaded = FALSE; @@ -60,30 +62,12 @@ STORMMODULE::STORMMODULE() STORMMODULE::~STORMMODULE() { - SFileCloseArchive = 0; - SFileCloseFile = 0; - SFileDestroy = 0; - SFileGetFileArchive = 0; - SFileGetFileSize = 0; - SFileOpenArchive = 0; - SFileOpenFile = 0; - SFileOpenFileEx = 0; - SFileReadFile = 0; - SFileSetBasePath = 0; - SFileSetFilePointer = 0; - SFileSetLocale = 0; - SFileGetBasePath = 0; - SFileGetArchiveName = 0; - SFileGetFileName = 0; - - if (hStorm==0) return; - - if (AlreadyLoaded==FALSE) FreeLibrary(hStorm); - hStorm = 0; + FreeStorm(); } HINSTANCE LoadStorm(char * DllFileName) { + FreeStorm(); if (hStorm!=0) return 0; hStorm = GetModuleHandle(DllFileName); if (hStorm == NULL) hStorm = LoadLibrary(DllFileName); @@ -112,3 +96,26 @@ HINSTANCE LoadStorm(char * DllFileName) return hStorm; } +void FreeStorm() +{ + SFileCloseArchive = 0; + SFileCloseFile = 0; + SFileDestroy = 0; + SFileGetFileArchive = 0; + SFileGetFileSize = 0; + SFileOpenArchive = 0; + SFileOpenFile = 0; + SFileOpenFileEx = 0; + SFileReadFile = 0; + SFileSetBasePath = 0; + SFileSetFilePointer = 0; + SFileSetLocale = 0; + SFileGetBasePath = 0; + SFileGetArchiveName = 0; + SFileGetFileName = 0; + + if (hStorm==0) return; + + if (AlreadyLoaded==FALSE) FreeLibrary(hStorm); + hStorm = 0; +}