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