[LPK][GDI32] Enable mirroring via version resource (#965)
[reactos.git] / dll / win32 / lpk / ros_lpk.h
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 "wine/unicode.h"
22 #include "wine/debug.h"
23
24 /* FIXME USP10 api that does not have prototype in any include file */
25 VOID WINAPI LpkPresent(VOID);
26
27 /* FIXME move _LPK_LPEDITCONTROL_LIST to global place so user32 can access it */
28 typedef struct _LPK_LPEDITCONTROL_LIST
29 {
30 PVOID EditCreate;
31 PVOID EditIchToXY;
32 PVOID EditMouseToIch;
33 PVOID EditCchInWidth;
34 PVOID EditGetLineWidth;
35 PVOID EditDrawText;
36 PVOID EditHScroll;
37 PVOID EditMoveSelection;
38 PVOID EditVerifyText;
39 PVOID EditNextWord;
40 PVOID EditSetMenu;
41 PVOID EditProcessMenu;
42 PVOID EditCreateCaret;
43 PVOID EditAdjustCaret;
44 } LPK_LPEDITCONTROL_LIST, *PLPK_LPEDITCONTROL_LIST;
45
46 /* This List are exported */
47
48
49 DWORD WINAPI EditCreate( DWORD x1, DWORD x2);
50 DWORD WINAPI EditIchToXY( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5);
51 DWORD WINAPI EditMouseToIch( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5);
52 DWORD WINAPI EditCchInWidth( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5);
53
54 DWORD WINAPI EditGetLineWidth( DWORD x1, DWORD x2, DWORD x3, DWORD x4);
55 DWORD WINAPI EditDrawText( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5, DWORD x6, DWORD x7);
56 DWORD WINAPI EditHScroll( DWORD x1, DWORD x2, DWORD x3);
57 DWORD WINAPI EditMoveSelection( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5);
58
59 DWORD WINAPI EditVerifyText( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5, DWORD x6);
60 DWORD WINAPI EditNextWord(DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5, DWORD x6, DWORD x7);
61 DWORD WINAPI EditSetMenu(DWORD x1, DWORD x2);
62 DWORD WINAPI EditProcessMenu(DWORD x1, DWORD x2);
63 DWORD WINAPI EditCreateCaret(DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5);
64 DWORD WINAPI EditAdjustCaret(DWORD x1, DWORD x2, DWORD x3, DWORD x5);
65
66 DWORD WINAPI LpkInitialize(DWORD x1);
67 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);
68 BOOL WINAPI LpkDllInitialize (HANDLE hDll, DWORD dwReason, LPVOID lpReserved);
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 LpkGetTextExtentExPoint(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8,DWORD x9);
71 DWORD WINAPI LpkUseGDIWidthCache(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5);
72 DWORD WINAPI ftsWordBreak(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5);
73
74 /* Implemented */
75
76 BOOL WINAPI LpkExtTextOut(HDC hdc, int x, int y, UINT fuOptions, const RECT *lprc,
77 LPCWSTR lpString, UINT uCount , const INT *lpDx, INT unknown);
78
79 DWORD WINAPI LpkGetCharacterPlacement(HDC hdc, LPCWSTR lpString, INT uCount, INT nMaxExtent,
80 GCP_RESULTSW *lpResults, DWORD dwFlags, DWORD dwUnused);
81
82 INT WINAPI LpkPSMTextOut(HDC hdc, int x, int y, LPCWSTR lpString, int cString, DWORD dwFlags);
83 /* bidi.c */
84
85 #define WINE_GCPW_FORCE_LTR 0
86 #define WINE_GCPW_FORCE_RTL 1
87 #define WINE_GCPW_LOOSE_LTR 2
88 #define WINE_GCPW_LOOSE_RTL 3
89 #define WINE_GCPW_DIR_MASK 3
90 #define WINE_GCPW_LOOSE_MASK 2
91
92 BOOL BIDI_Reorder(
93 _In_ HDC hDC, /* [in] Display DC */
94 _In_ LPCWSTR lpString, /* [in] The string for which information is to be returned */
95 _In_ INT uCount, /* [in] Number of WCHARs in string. */
96 _In_ DWORD dwFlags, /* [in] GetCharacterPlacement compatible flags specifying how to process the string */
97 _In_ DWORD dwWineGCP_Flags, /* [in] Wine internal flags - Force paragraph direction */
98 _Out_ LPWSTR lpOutString, /* [out] Reordered string */
99 _In_ INT uCountOut, /* [in] Size of output buffer */
100 _Out_ UINT *lpOrder, /* [out] Logical -> Visual order map */
101 _Out_ WORD **lpGlyphs, /* [out] reordered, mirrored, shaped glyphs to display */
102 _Out_ INT *cGlyphs /* [out] number of glyphs generated */
103 );
104
105 #endif /* _LPK_H */