typedef UINT (CALLBACK* LPFNDLLFUNC1)(DWORD,UINT);
LPFNDLLFUNC1 GetFuncAddr(char *ModuleName, char *FunctionName)
{
LPFNDLLFUNC1 Func_Addr;
if(ModuleName == NULL || FunctionName == NULL) {
DebugSpewAlways("GetFuncAddr: ModuleName or FunctionName is NULL.");
return NULL;
}
HMODULE hModuleHandle = GetModuleHandle(ModuleName);
if (hModuleHandle == NULL) {
DebugSpewAlways("GetFuncAddr: Can't get module handle (%s).", ModuleName);
return NULL;
}
Func_Addr = (LPFNDLLFUNC1)GetProcAddress(hModuleHandle, FunctionName);
if (!Func_Addr) {
DebugSpewAlways("GetFuncAddr: Can't get Function Address (%s:%s).", ModuleName, FunctionName);
return NULL;
}
DebugSpewAlways("GetFuncAddr: Returning address for %s (%s): 0x%x.", FunctionName, ModuleName, Func_Addr);
return Func_Addr;
}