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