X-Git-Url: https://sfsrealm.hopto.org/projects/gitweb.cgi?a=blobdiff_plain;f=grpapi%2Fgrpapi_no-lib.cpp;h=d77bac3faa15ce7449fece64fbe705ba4f2e14c3;hb=2d86db8c62512403ab189a8f7eacf7898e3df4e3;hp=909d1c53bd40f871d6009bb94e5ad848b6d957f6;hpb=7f7b4247b021a783cbba059c344ddcdc1a80e58f;p=grpapi.git diff --git a/grpapi/grpapi_no-lib.cpp b/grpapi/grpapi_no-lib.cpp index 909d1c5..d77bac3 100644 --- a/grpapi/grpapi_no-lib.cpp +++ b/grpapi/grpapi_no-lib.cpp @@ -1,64 +1,72 @@ -#include "grpapi_no-lib.h" - -struct GRPAPIMODULE { - GRPAPIMODULE(); - ~GRPAPIMODULE(); -} GrpApi; - -HINSTANCE hGrpApi = 0; - -funcLoadPalette LoadPalette = 0; -funcLoadGrp LoadGrp = 0; -funcDestroyGrp DestroyGrp = 0; -funcDrawGrp DrawGrp = 0; -funcGetGrpInfo GetGrpInfo = 0; -funcSetFunctionGetPixel SetFunctionGetPixel = 0; -funcSetFunctionSetPixel SetFunctionSetPixel = 0; -funcSetMpqDll SetMpqDll = 0; -funcLoadGrpApi LoadGrpApi = 0; -funcFreeGrpApi FreeGrpApi = 0; - -GRPAPIMODULE::GRPAPIMODULE() -{ - if (hGrpApi!=0) return; - hGrpApi = LoadLibrary("grpapi.dll"); - - if (hGrpApi!=0) { - LoadPalette = (funcLoadPalette)GetProcAddress(hGrpApi,"LoadPalette"); - LoadGrp = (funcLoadGrp)GetProcAddress(hGrpApi,"LoadGrp"); - DestroyGrp = (funcDestroyGrp)GetProcAddress(hGrpApi,"DestroyGrp"); - DrawGrp = (funcDrawGrp)GetProcAddress(hGrpApi,"DrawGrp"); - GetGrpInfo = (funcGetGrpInfo)GetProcAddress(hGrpApi,"GetGrpInfo"); - SetFunctionGetPixel = (funcSetFunctionGetPixel)GetProcAddress(hGrpApi,"SetFunctionGetPixel"); - SetFunctionSetPixel = (funcSetFunctionSetPixel)GetProcAddress(hGrpApi,"SetFunctionSetPixel"); - SetMpqDll = (funcSetMpqDll)GetProcAddress(hGrpApi,"SetMpqDll"); - LoadGrpApi = (funcLoadGrpApi)GetProcAddress(hGrpApi,"LoadGrpApi"); - FreeGrpApi = (funcFreeGrpApi)GetProcAddress(hGrpApi,"FreeGrpApi"); - } -} - -GRPAPIMODULE::~GRPAPIMODULE() -{ - LoadPalette = 0; - LoadGrp = 0; - DestroyGrp = 0; - DrawGrp = 0; - GetGrpInfo = 0; - SetFunctionGetPixel = 0; - SetFunctionSetPixel = 0; - SetMpqDll = 0; - LoadGrpApi = 0; - FreeGrpApi = 0; - - if (hGrpApi==0) return; - FreeLibrary(hGrpApi); - hGrpApi = 0; -} - -void LoadGrpApiLib() -{ -} - -void FreeGrpApiLib() -{ -} +/* License information for this code is in license.txt */ + +#include "grpapi_no-lib.h" + +struct GRPAPIMODULE { + GRPAPIMODULE(); + ~GRPAPIMODULE(); +} GrpApi; + +HINSTANCE hGrpApi = 0; + +BOOL (WINAPI* LoadPalette)(LPCSTR lpFileName, DWORD *dwPaletteBuffer) = 0; +HANDLE (WINAPI* LoadGrp)(LPCSTR lpFileName) = 0; +BOOL (WINAPI* DestroyGrp)(HANDLE hGrp) = 0; +BOOL (WINAPI* DrawGrp)(HANDLE hGrp, HDC hdcDest, int nXDest, int nYDest, WORD nFrame, DWORD *dwPalette, DWORD dwFlags, DWORD dwAlpha) = 0; +BOOL (WINAPI* GetGrpInfo)(HANDLE hGrp, GRPHEADER *GrpInfo) = 0; +BOOL (WINAPI* GetGrpFrameInfo)(HANDLE hGrp, WORD nFrame, DWORD *nLeft, DWORD *nTop, DWORD *nWidth, DWORD *nHeight) = 0; +HANDLE (WINAPI* CreateGrp)(signed short *lpImageData, WORD nFrames, WORD wMaxWidth, WORD wMaxHeight, BOOL bNoCompress, DWORD *nGrpSize) = 0; +void (WINAPI* SetFunctionGetPixel)(GETPIXELPROC lpGetPixelProc) = 0; +void (WINAPI* SetFunctionSetPixel)(SETPIXELPROC lpSetPixelProc) = 0; +BOOL (WINAPI* SetMpqDll)(LPCSTR lpDllFileName) = 0; +BOOL (WINAPI* LoadGrpApi)() = 0; +void (WINAPI* FreeGrpApi)() = 0; + +GRPAPIMODULE::GRPAPIMODULE() +{ + if (hGrpApi!=0) return; + hGrpApi = LoadLibrary("grpapi.dll"); + + if (hGrpApi!=0) { + *(FARPROC *)&LoadPalette = GetProcAddress(hGrpApi,"LoadPalette"); + *(FARPROC *)&LoadGrp = GetProcAddress(hGrpApi,"LoadGrp"); + *(FARPROC *)&DestroyGrp = GetProcAddress(hGrpApi,"DestroyGrp"); + *(FARPROC *)&DrawGrp = GetProcAddress(hGrpApi,"DrawGrp"); + *(FARPROC *)&GetGrpInfo = GetProcAddress(hGrpApi,"GetGrpInfo"); + *(FARPROC *)&GetGrpFrameInfo = GetProcAddress(hGrpApi,"GetGrpFrameInfo"); + *(FARPROC *)&CreateGrp = GetProcAddress(hGrpApi,"CreateGrp"); + *(FARPROC *)&SetFunctionGetPixel = GetProcAddress(hGrpApi,"SetFunctionGetPixel"); + *(FARPROC *)&SetFunctionSetPixel = GetProcAddress(hGrpApi,"SetFunctionSetPixel"); + *(FARPROC *)&SetMpqDll = GetProcAddress(hGrpApi,"SetMpqDll"); + *(FARPROC *)&LoadGrpApi = GetProcAddress(hGrpApi,"LoadGrpApi"); + *(FARPROC *)&FreeGrpApi = GetProcAddress(hGrpApi,"FreeGrpApi"); + } +} + +GRPAPIMODULE::~GRPAPIMODULE() +{ + LoadPalette = 0; + LoadGrp = 0; + DestroyGrp = 0; + DrawGrp = 0; + GetGrpInfo = 0; + GetGrpFrameInfo = 0; + CreateGrp = 0; + SetFunctionGetPixel = 0; + SetFunctionSetPixel = 0; + SetMpqDll = 0; + LoadGrpApi = 0; + FreeGrpApi = 0; + + if (hGrpApi==0) return; + FreeLibrary(hGrpApi); + hGrpApi = 0; +} + +void LoadGrpApiLib() +{ +} + +void FreeGrpApiLib() +{ +}