Path: blob/main/crypto/krb5/src/windows/include/loadfuncs.h
34907 views
#ifndef __LOADFUNCS_H__1#define __LOADFUNCS_H__23#ifdef __cplusplus4extern "C" {5#endif67#include <windows.h>89typedef struct _FUNC_INFO {10void** func_ptr_var;11char* func_name;12} FUNC_INFO;1314#define DECL_FUNC_PTR(x) FP_##x p##x15#define MAKE_FUNC_INFO(x) { (void**) &p##x, #x }16#define END_FUNC_INFO { 0, 0 }17#define TYPEDEF_FUNC(ret, call, name, args) typedef ret (call *FP_##name) args1819void20UnloadFuncs(21FUNC_INFO fi[],22HINSTANCE h23);2425int26LoadFuncs(27const char* dll_name,28FUNC_INFO fi[],29HINSTANCE* ph, // [out, optional] - DLL handle30int* pindex, // [out, optional] - index of last func loaded (-1 if none)31int cleanup, // cleanup function pointers and unload on error32int go_on, // continue loading even if some functions cannot be loaded33int silent // do not pop-up a system dialog if DLL cannot be loaded34);3536#ifdef __cplusplus37}38#endif3940#endif /* __LOADFUNCS_H__ */414243