aboutsummaryrefslogtreecommitdiff
path: root/Patches/dllcall.h
diff options
context:
space:
mode:
Diffstat (limited to 'Patches/dllcall.h')
-rw-r--r--Patches/dllcall.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/Patches/dllcall.h b/Patches/dllcall.h
new file mode 100644
index 0000000..ab7b128
--- /dev/null
+++ b/Patches/dllcall.h
@@ -0,0 +1,46 @@
+#ifndef __DLLCALL_H
+#define __DLLCALL_H
+
+#include "windows.h"
+
+void loadeffect(HMODULE *lib, FARPROC *proc, char *name)
+{
+ if(*lib) FreeLibrary(*lib);
+
+ *lib = LoadLibrary(name);
+ if(!*lib)
+ {
+ post("loadeffect: failed to load %s", name);
+ return;
+ }
+ *proc = GetProcAddress(*lib, "perform_effect");
+ if(!*proc)
+ {
+ post("loadeffect: failed to get perform_effect from %s", name);
+ FreeLibrary(*lib);
+ *lib=NULL;
+ return;
+ }
+}
+
+void loadcopy(HMODULE *lib, FARPROC *proc, char *name)
+{
+ if(*lib) FreeLibrary(*lib);
+
+ *lib = LoadLibrary(name);
+ if(!*lib)
+ {
+ post("loadcopy: failed to load %s", name);
+ return;
+ }
+ *proc = GetProcAddress(*lib, "perform_copy");
+ if(!*proc)
+ {
+ post("loadcopy: failed to get perform_copy from %s", name);
+ FreeLibrary(*lib);
+ *lib=NULL;
+ return;
+ }
+}
+
+#endif