Sync with trunk revision 63128.
[reactos.git] / dll / win32 / riched20 / msvc-thiscall.c
1 #include "editor.h"
2
3 #define DEFINE_THISCALL_WRAPPER(func,args) \
4 typedef struct {int x[args/4];} _tag_##func; \
5 void __stdcall func(_tag_##func p1); \
6 __declspec(naked) void __stdcall __thiscall_##func(_tag_##func p1) \
7 { \
8 __asm pop eax \
9 __asm push ecx \
10 __asm push eax \
11 __asm jmp func \
12 }
13
14 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetDC,4)
15 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxReleaseDC,8)
16 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxShowScrollBar,12)
17 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxEnableScrollBar,12)
18 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetScrollRange,20)
19 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetScrollPos,16)
20 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxInvalidateRect,12)
21 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxViewChange,8)
22 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxCreateCaret,16)
23 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxShowCaret,8)
24 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCaretPos,12)
25 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetTimer,12)
26 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxKillTimer,8)
27 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxScrollWindowEx,32)
28 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCapture,8)
29 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetFocus,4)
30 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCursor,12)
31 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxScreenToClient,8)
32 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxClientToScreen,8)
33 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxActivate,8)
34 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxDeactivate,8)
35 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetClientRect,8)
36 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetViewInset,8)
37 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetCharFormat,8)
38 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetParaFormat,8)
39 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetSysColor,8)
40 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetBackStyle,8)
41 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetMaxLength,8)
42 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetScrollBars,8)
43 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetPasswordChar,8)
44 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetAcceleratorPos,8)
45 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetExtent,8)
46 DEFINE_THISCALL_WRAPPER(ITextHostImpl_OnTxCharFormatChange,8)
47 DEFINE_THISCALL_WRAPPER(ITextHostImpl_OnTxParaFormatChange,8)
48 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetPropertyBits,12)
49 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxNotify,12)
50 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxImmGetContext,4)
51 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxImmReleaseContext,8)
52 DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetSelectionBarWidth,8)
53
54 #define DEFINE_STDCALL_WRAPPER(num,func,args) \
55 __declspec(naked) void __stdcall __stdcall_##func(_tag_##func p1) \
56 { \
57 __asm pop eax \
58 __asm pop ecx \
59 __asm push eax \
60 __asm mov eax, [ecx] \
61 __asm jmp dword ptr [eax + 4*num] \
62 }
63
64 DEFINE_STDCALL_WRAPPER(3,ITextHostImpl_TxGetDC,4)
65 DEFINE_STDCALL_WRAPPER(4,ITextHostImpl_TxReleaseDC,8)
66 DEFINE_STDCALL_WRAPPER(5,ITextHostImpl_TxShowScrollBar,12)
67 DEFINE_STDCALL_WRAPPER(6,ITextHostImpl_TxEnableScrollBar,12)
68 DEFINE_STDCALL_WRAPPER(7,ITextHostImpl_TxSetScrollRange,20)
69 DEFINE_STDCALL_WRAPPER(8,ITextHostImpl_TxSetScrollPos,16)
70 DEFINE_STDCALL_WRAPPER(9,ITextHostImpl_TxInvalidateRect,12)
71 DEFINE_STDCALL_WRAPPER(10,ITextHostImpl_TxViewChange,8)
72 DEFINE_STDCALL_WRAPPER(11,ITextHostImpl_TxCreateCaret,16)
73 DEFINE_STDCALL_WRAPPER(12,ITextHostImpl_TxShowCaret,8)
74 DEFINE_STDCALL_WRAPPER(13,ITextHostImpl_TxSetCaretPos,12)
75 DEFINE_STDCALL_WRAPPER(14,ITextHostImpl_TxSetTimer,12)
76 DEFINE_STDCALL_WRAPPER(15,ITextHostImpl_TxKillTimer,8)
77 DEFINE_STDCALL_WRAPPER(16,ITextHostImpl_TxScrollWindowEx,32)
78 DEFINE_STDCALL_WRAPPER(17,ITextHostImpl_TxSetCapture,8)
79 DEFINE_STDCALL_WRAPPER(18,ITextHostImpl_TxSetFocus,4)
80 DEFINE_STDCALL_WRAPPER(19,ITextHostImpl_TxSetCursor,12)
81 DEFINE_STDCALL_WRAPPER(20,ITextHostImpl_TxScreenToClient,8)
82 DEFINE_STDCALL_WRAPPER(21,ITextHostImpl_TxClientToScreen,8)
83 DEFINE_STDCALL_WRAPPER(22,ITextHostImpl_TxActivate,8)
84 DEFINE_STDCALL_WRAPPER(23,ITextHostImpl_TxDeactivate,8)
85 DEFINE_STDCALL_WRAPPER(24,ITextHostImpl_TxGetClientRect,8)
86 DEFINE_STDCALL_WRAPPER(25,ITextHostImpl_TxGetViewInset,8)
87 DEFINE_STDCALL_WRAPPER(26,ITextHostImpl_TxGetCharFormat,8)
88 DEFINE_STDCALL_WRAPPER(27,ITextHostImpl_TxGetParaFormat,8)
89 DEFINE_STDCALL_WRAPPER(28,ITextHostImpl_TxGetSysColor,8)
90 DEFINE_STDCALL_WRAPPER(29,ITextHostImpl_TxGetBackStyle,8)
91 DEFINE_STDCALL_WRAPPER(30,ITextHostImpl_TxGetMaxLength,8)
92 DEFINE_STDCALL_WRAPPER(31,ITextHostImpl_TxGetScrollBars,8)
93 DEFINE_STDCALL_WRAPPER(32,ITextHostImpl_TxGetPasswordChar,8)
94 DEFINE_STDCALL_WRAPPER(33,ITextHostImpl_TxGetAcceleratorPos,8)
95 DEFINE_STDCALL_WRAPPER(34,ITextHostImpl_TxGetExtent,8)
96 DEFINE_STDCALL_WRAPPER(35,ITextHostImpl_OnTxCharFormatChange,8)
97 DEFINE_STDCALL_WRAPPER(36,ITextHostImpl_OnTxParaFormatChange,8)
98 DEFINE_STDCALL_WRAPPER(37,ITextHostImpl_TxGetPropertyBits,12)
99 DEFINE_STDCALL_WRAPPER(38,ITextHostImpl_TxNotify,12)
100 DEFINE_STDCALL_WRAPPER(39,ITextHostImpl_TxImmGetContext,4)
101 DEFINE_STDCALL_WRAPPER(40,ITextHostImpl_TxImmReleaseContext,8)
102 DEFINE_STDCALL_WRAPPER(41,ITextHostImpl_TxGetSelectionBarWidth,8)
103
104 DEFINE_THISCALL_WRAPPER(fnTextSrv_TxSendMessage,20)
105 DEFINE_THISCALL_WRAPPER(fnTextSrv_TxDraw,52)
106 DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetHScroll,24)
107 DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetVScroll,24)
108 DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxSetCursor,40)
109 DEFINE_THISCALL_WRAPPER(fnTextSrv_TxQueryHitPoint,44)
110 DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxInplaceActivate,8)
111 DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxInplaceDeactivate,4)
112 DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxUIActivate,4)
113 DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxUIDeactivate,4)
114 DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetText,8)
115 DEFINE_THISCALL_WRAPPER(fnTextSrv_TxSetText,8)
116 DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetCurTargetX,8)
117 DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetBaseLinePos,8)
118 DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetNaturalSize,36)
119 DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetDropTarget,8)
120 DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxPropertyBitsChange,12)
121 DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetCachedSize,12)