* Addendum to r58214.
[reactos.git] / rostests / apitests / user32 / InitializeLpkHooks.c
1 /*
2 * PROJECT: ReactOS api tests
3 * LICENSE: GPL - See COPYING in the top level directory
4 * PURPOSE: Test for InitializeLpkHooks
5 * PROGRAMMERS: Magnus Olsen
6 */
7
8 #include <wine/test.h>
9 #include <winuser.h>
10
11 typedef struct _LPK_LPEDITCONTROL_LIST
12 {
13 PVOID EditCreate;
14 PVOID EditIchToXY;
15 PVOID EditMouseToIch;
16 PVOID EditCchInWidth;
17 PVOID EditGetLineWidth;
18 PVOID EditDrawText;
19 PVOID EditHScroll;
20 PVOID EditMoveSelection;
21 PVOID EditVerifyText;
22 PVOID EditNextWord;
23 PVOID EditSetMenu;
24 PVOID EditProcessMenu;
25 PVOID EditCreateCaret;
26 PVOID EditAdjustCaret;
27 } LPK_LPEDITCONTROL_LIST, *PLPK_LPEDITCONTROL_LIST;
28
29
30 DWORD (APIENTRY *fpLpkTabbedTextOut) (LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID);
31 DWORD (APIENTRY *fpLpkPSMTextOut) (LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID);
32 DWORD (APIENTRY *fpLpkDrawTextEx) (LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID);
33 PLPK_LPEDITCONTROL_LIST (APIENTRY *fpLpkEditControl) ();
34
35 int Count_myLpkTabbedTextOut = 0;
36 int Count_myLpkPSMTextOut = 0;
37 int Count_myLpkDrawTextEx = 0;
38
39 DWORD WINAPI myLpkTabbedTextOut (LPVOID x1,LPVOID x2,LPVOID x3, LPVOID x4, LPVOID x5, LPVOID x6, LPVOID x7, LPVOID x8,
40 LPVOID x9, LPVOID x10, LPVOID x11, LPVOID x12)
41 {
42 Count_myLpkTabbedTextOut++;
43 return fpLpkTabbedTextOut(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12);
44 }
45
46 DWORD myLpkPSMTextOut (LPVOID x1,LPVOID x2,LPVOID x3,LPVOID x4,LPVOID x5,LPVOID x6)
47 {
48 Count_myLpkPSMTextOut++;
49 return fpLpkPSMTextOut ( x1, x2, x3, x4, x5, x6);
50 }
51
52 DWORD myLpkDrawTextEx(LPVOID x1,LPVOID x2,LPVOID x3,LPVOID x4,LPVOID x5, LPVOID x6, LPVOID x7, LPVOID x8, LPVOID x9,LPVOID x10)
53 {
54 Count_myLpkDrawTextEx++;
55 return fpLpkDrawTextEx(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10);
56 }
57
58
59 typedef struct _USER32_INTERN_INITALIZEHOOKS
60 {
61 PVOID fpLpkTabbedTextOut;
62 PVOID fpLpkPSMTextOut;
63 PVOID fpLpkDrawTextEx;
64 PLPK_LPEDITCONTROL_LIST fpListLpkEditControl;
65 } USER32_INTERN_INITALIZEHOOKS, *PUSER32_INTERN_INITALIZEHOOKS;
66
67 VOID WINAPI InitializeLpkHooks (PUSER32_INTERN_INITALIZEHOOKS);
68
69 void Test_InitializeLpkHooks()
70 {
71 USER32_INTERN_INITALIZEHOOKS setup;
72 HMODULE lib = LoadLibrary("LPK.DLL");
73
74 ok(lib != NULL, "lib = 0\n");
75 if (lib != NULL)
76 {
77 fpLpkTabbedTextOut = (DWORD (APIENTRY *) (LPVOID,LPVOID,LPVOID,LPVOID,LPVOID, LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID)) GetProcAddress(lib, "LpkTabbedTextOut");
78 fpLpkPSMTextOut = (DWORD (APIENTRY *) (LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID)) GetProcAddress(lib, "fpLpkPSMTextOut");
79 fpLpkDrawTextEx = (DWORD (APIENTRY *) (LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID,LPVOID)) GetProcAddress(lib, "LpkDrawTextEx");
80 fpLpkEditControl = (PLPK_LPEDITCONTROL_LIST (APIENTRY *) (VOID)) GetProcAddress(lib, "LpkEditControl");
81
82 setup.fpLpkTabbedTextOut = myLpkTabbedTextOut;
83 setup.fpLpkPSMTextOut = myLpkPSMTextOut;
84 setup.fpLpkDrawTextEx = myLpkDrawTextEx;
85
86 /* we have not add any test to this api */
87 setup.fpListLpkEditControl = (PLPK_LPEDITCONTROL_LIST)fpLpkEditControl;
88
89 /* use our own api that we just made */
90 InitializeLpkHooks(&setup);
91
92 /* FIXME add test now */
93
94 /* restore */
95 setup.fpLpkTabbedTextOut = fpLpkTabbedTextOut;
96 setup.fpLpkPSMTextOut = fpLpkPSMTextOut;
97 setup.fpLpkDrawTextEx = fpLpkDrawTextEx;
98 setup.fpListLpkEditControl = (PLPK_LPEDITCONTROL_LIST)fpLpkEditControl;
99 InitializeLpkHooks(&setup);
100 }
101
102 }
103
104 START_TEST(InitializeLpkHooks)
105 {
106 Test_InitializeLpkHooks();
107 }
108