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 /* License information for this code is in license.txt */
3 #include "grpapi_no-lib.h"
5 struct GRPAPIMODULE {
6         GRPAPIMODULE();
7         ~GRPAPIMODULE();
8 } GrpApi;
10 HINSTANCE hGrpApi = 0;
12 BOOL   (WINAPI* LoadPalette)(LPCSTR lpFileName, DWORD *dwPaletteBuffer) = 0;
13 HANDLE (WINAPI* LoadGrp)(LPCSTR lpFileName) = 0;
14 BOOL   (WINAPI* DestroyGrp)(HANDLE hGrp) = 0;
15 BOOL   (WINAPI* DrawGrp)(HANDLE hGrp, HDC hdcDest, int nXDest, int nYDest, WORD nFrame, DWORD *dwPalette, DWORD dwFlags, DWORD dwAlpha) = 0;
16 BOOL   (WINAPI* GetGrpInfo)(HANDLE hGrp, GRPHEADER *GrpInfo) = 0;
17 BOOL   (WINAPI* GetGrpFrameInfo)(HANDLE hGrp, WORD nFrame, DWORD *nLeft, DWORD *nTop, DWORD *nWidth, DWORD *nHeight) = 0;
18 HANDLE (WINAPI* CreateGrp)(signed short *lpImageData, WORD nFrames, WORD wMaxWidth, WORD wMaxHeight, BOOL bNoCompress, DWORD *nGrpSize) = 0;
19 void (WINAPI* SetFunctionGetPixel)(GETPIXELPROC lpGetPixelProc) = 0;
20 void (WINAPI* SetFunctionSetPixel)(SETPIXELPROC lpSetPixelProc) = 0;
21 BOOL (WINAPI* SetMpqDll)(LPCSTR lpDllFileName) = 0;
22 BOOL   (WINAPI* LoadGrpApi)() = 0;
23 void   (WINAPI* FreeGrpApi)() = 0;
25 GRPAPIMODULE::GRPAPIMODULE()
26 {
27         if (hGrpApi!=0) return;
28         hGrpApi = LoadLibrary("grpapi.dll");
30         if (hGrpApi!=0) {
31                 *(FARPROC *)&LoadPalette = GetProcAddress(hGrpApi,"LoadPalette");
32                 *(FARPROC *)&LoadGrp = GetProcAddress(hGrpApi,"LoadGrp");
33                 *(FARPROC *)&DestroyGrp = GetProcAddress(hGrpApi,"DestroyGrp");
34                 *(FARPROC *)&DrawGrp = GetProcAddress(hGrpApi,"DrawGrp");
35                 *(FARPROC *)&GetGrpInfo = GetProcAddress(hGrpApi,"GetGrpInfo");
36                 *(FARPROC *)&GetGrpFrameInfo = GetProcAddress(hGrpApi,"GetGrpFrameInfo");
37                 *(FARPROC *)&CreateGrp = GetProcAddress(hGrpApi,"CreateGrp");
38                 *(FARPROC *)&SetFunctionGetPixel = GetProcAddress(hGrpApi,"SetFunctionGetPixel");
39                 *(FARPROC *)&SetFunctionSetPixel = GetProcAddress(hGrpApi,"SetFunctionSetPixel");
40                 *(FARPROC *)&SetMpqDll = GetProcAddress(hGrpApi,"SetMpqDll");
41                 *(FARPROC *)&LoadGrpApi = GetProcAddress(hGrpApi,"LoadGrpApi");
42                 *(FARPROC *)&FreeGrpApi = GetProcAddress(hGrpApi,"FreeGrpApi");
43         }
44 }
46 GRPAPIMODULE::~GRPAPIMODULE()
47 {
48         LoadPalette = 0;
49         LoadGrp = 0;
50         DestroyGrp = 0;
51         DrawGrp = 0;
52         GetGrpInfo = 0;
53         GetGrpFrameInfo = 0;
54         CreateGrp = 0;
55         SetFunctionGetPixel = 0;
56         SetFunctionSetPixel = 0;
57         SetMpqDll = 0;
58         LoadGrpApi = 0;
59         FreeGrpApi = 0;
61         if (hGrpApi==0) return;
62         FreeLibrary(hGrpApi);
63         hGrpApi = 0;
64 }
66 void LoadGrpApiLib()
67 {
68 }
70 void FreeGrpApiLib()
71 {
72 }