Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / dll / win32 / windowscodecs / msvc-thiscall.c
diff --git a/dll/win32/windowscodecs/msvc-thiscall.c b/dll/win32/windowscodecs/msvc-thiscall.c
new file mode 100644 (file)
index 0000000..0e347ba
--- /dev/null
@@ -0,0 +1,17 @@
+#include "wincodecs_private.h"
+
+#undef DEFINE_THISCALL_WRAPPER
+#define DEFINE_THISCALL_WRAPPER(func,args) \
+    typedef struct {int x[args/4];} _tag_##func; \
+    void __stdcall func(_tag_##func p1); \
+    __declspec(naked) void __stdcall __thiscall_##func(_tag_##func p1) \
+    { \
+        __asm pop eax \
+        __asm push ecx \
+        __asm push eax \
+        __asm jmp func \
+    }
+
+DEFINE_THISCALL_WRAPPER(IMILUnknown1Impl_unknown1, 8)
+DEFINE_THISCALL_WRAPPER(IMILUnknown1Impl_unknown3, 8)
+DEFINE_THISCALL_WRAPPER(IMILUnknown1Impl_unknown8, 4)