#if !defined(__GENTHUNK_H) && !defined(__WIN32__) #define __GENTHUNK_H DECLARE_HANDLE32 (HPROC32); DECLARE_HANDLE32 (HINSTANCE32); class TGenericThunk { public: ~TGenericThunk (); bool IsOK () const { return mInst32 != 0; } protected: TGenericThunk (const char * fileName); DWORD __cdecl CallProc32 (HPROC32, DWORD fAddrCvt, DWORD nArgs, ...); void FreeVdmPtr32 (void far *); HPROC32 GetProcAddr32 (const char * procName); DWORD GetVdmPtr16 (void far *buffer, unsigned cbSize); void far * GetVdmPtr32 (DWORD dwAddr32, DWORD cbSize); HINSTANCE32 GetInstance () const { return mInst32; } private: HINSTANCE32 mInst32; static HINSTANCE32 (WINAPI *LoadLibraryEx32W) (LPCSTR, DWORD, DWORD); static BOOL (WINAPI *FreeLibrary32W) (HINSTANCE32); static HPROC32 (WINAPI *GetProcAddress32W)(HINSTANCE32, LPCSTR); static DWORD (WINAPI *GetVDMPointer32W) (LPVOID, UINT); static DWORD (WINAPI *CallProc32W) (HPROC32, DWORD, DWORD); }; #endif // __GENTHUNK_H || __WIN32__