xref: /reactos/dll/win32/lpk/ros_lpk.h (revision 299e4305)
1 /*
2  * COPYRIGHT:            See COPYING in the top level directory
3  * PROJECT:              ReactOS
4  * PURPOSE:              LPK Library
5  * PROGRAMMER:           Magnus Olsen (greatlrd)
6  *
7  */
8 
9 #ifndef _LPK_H
10 #define _LPK_H
11 
12 #include <stdarg.h>
13 
14 #define WIN32_NO_STATUS
15 #include <windef.h>
16 #include <winbase.h>
17 #include <wingdi.h>
18 #include <winnls.h>
19 #include <usp10.h>
20 #include <strsafe.h>
21 #include "undocgdi.h"
22 #include "wine/unicode.h"
23 #include "wine/debug.h"
24 
25 /* FIXME USP10 api that does not have prototype in any include file */
26 VOID WINAPI LpkPresent(VOID);
27 
28 /* FIXME move _LPK_LPEDITCONTROL_LIST to global place so user32 can access it */
29 typedef struct _LPK_LPEDITCONTROL_LIST
30 {
31     PVOID EditCreate;
32     PVOID EditIchToXY;
33     PVOID EditMouseToIch;
34     PVOID EditCchInWidth;
35     PVOID EditGetLineWidth;
36     PVOID EditDrawText;
37     PVOID EditHScroll;
38     PVOID EditMoveSelection;
39     PVOID EditVerifyText;
40     PVOID EditNextWord;
41     PVOID EditSetMenu;
42     PVOID EditProcessMenu;
43     PVOID EditCreateCaret;
44     PVOID EditAdjustCaret;
45 } LPK_LPEDITCONTROL_LIST, *PLPK_LPEDITCONTROL_LIST;
46 
47 /* This List are exported */
48 
49 
50 DWORD WINAPI EditCreate( DWORD x1, DWORD x2);
51 DWORD WINAPI EditIchToXY( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5);
52 DWORD WINAPI EditMouseToIch( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5);
53 DWORD WINAPI EditCchInWidth( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5);
54 
55 DWORD WINAPI EditGetLineWidth( DWORD x1, DWORD x2, DWORD x3, DWORD  x4);
56 DWORD WINAPI EditDrawText( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5, DWORD x6, DWORD x7);
57 DWORD WINAPI EditHScroll( DWORD x1, DWORD x2, DWORD x3);
58 DWORD WINAPI EditMoveSelection( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5);
59 
60 DWORD WINAPI EditVerifyText( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5, DWORD x6);
61 DWORD WINAPI EditNextWord(DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5, DWORD x6, DWORD x7);
62 DWORD WINAPI EditSetMenu(DWORD x1, DWORD x2);
63 DWORD WINAPI EditProcessMenu(DWORD x1, DWORD x2);
64 DWORD WINAPI EditCreateCaret(DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5);
65 DWORD WINAPI EditAdjustCaret(DWORD x1, DWORD x2, DWORD x3, DWORD x5);
66 
67 DWORD WINAPI LpkInitialize(DWORD x1);
68 DWORD WINAPI LpkTabbedTextOut(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8,DWORD x9,DWORD x10,DWORD x11,DWORD x12);
69 DWORD WINAPI LpkDrawTextEx(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8,DWORD x9, DWORD x10);
70 DWORD WINAPI LpkUseGDIWidthCache(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5);
71 DWORD WINAPI ftsWordBreak(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5);
72 
73 /* Implemented */
74 
75 BOOL WINAPI LpkExtTextOut(HDC hdc, int x, int y, UINT fuOptions, const RECT *lprc,
76                           LPCWSTR lpString, UINT uCount , const INT *lpDx, INT unknown);
77 
78 DWORD WINAPI LpkGetCharacterPlacement(HDC hdc, LPCWSTR lpString, INT uCount, INT nMaxExtent,
79                                       GCP_RESULTSW *lpResults, DWORD dwFlags, DWORD dwUnused);
80 
81 INT WINAPI LpkPSMTextOut(HDC hdc, int x, int y, LPCWSTR lpString, int cString, DWORD dwFlags);
82 
83 BOOL WINAPI LpkGetTextExtentExPoint(HDC hdc, LPCWSTR lpString, INT cString, INT nMaxExtent,
84                                     LPINT lpnFit, LPINT lpnDx, LPSIZE lpSize, DWORD dwUnused,
85                                     int unknown);
86 /* bidi.c */
87 
88 #define WINE_GCPW_FORCE_LTR 0
89 #define WINE_GCPW_FORCE_RTL 1
90 #define WINE_GCPW_LOOSE_LTR 2
91 #define WINE_GCPW_LOOSE_RTL 3
92 #define WINE_GCPW_DIR_MASK 3
93 #define WINE_GCPW_LOOSE_MASK 2
94 
95 BOOL BIDI_Reorder(
96     _In_ HDC hDC,                /* [in] Display DC */
97     _In_ LPCWSTR lpString,       /* [in] The string for which information is to be returned */
98     _In_ INT uCount,             /* [in] Number of WCHARs in string. */
99     _In_ DWORD dwFlags,          /* [in] GetCharacterPlacement compatible flags specifying how to process the string */
100     _In_ DWORD dwWineGCP_Flags,  /* [in] Wine internal flags - Force paragraph direction */
101     _Out_ LPWSTR lpOutString,    /* [out] Reordered string */
102     _In_ INT uCountOut,          /* [in] Size of output buffer */
103     _Out_ UINT *lpOrder,         /* [out] Logical -> Visual order map */
104     _Out_ WORD **lpGlyphs,       /* [out] reordered, mirrored, shaped glyphs to display */
105     _Out_ INT *cGlyphs           /* [out] number of glyphs generated */
106     );
107 
108 #endif /* _LPK_H */
109