From 8fd9f85a76bd7bf13ce0f23fd98f237afe3bc050 Mon Sep 17 00:00:00 2001 From: James Tabor Date: Sun, 26 Aug 2007 01:50:14 +0000 Subject: [PATCH] AXESLIST, AXISINFO and ENUMTEXTMETRIC structures. Updated ENUMFONTDATAW structure with my best guess. It needs testing with Timo program. svn path=/trunk/; revision=28568 --- reactos/include/psdk/wingdi.h | 55 ++++++++++++++++++++++- reactos/include/reactos/win32k/ntgdityp.h | 12 ++++- 2 files changed, 65 insertions(+), 2 deletions(-) diff --git a/reactos/include/psdk/wingdi.h b/reactos/include/psdk/wingdi.h index 35feb209fb7..0d22fe13735 100644 --- a/reactos/include/psdk/wingdi.h +++ b/reactos/include/psdk/wingdi.h @@ -2532,7 +2532,7 @@ typedef struct _DESIGNVECTOR { DWORD dvReserved; DWORD dvNumAxes; LONG dvValues[MM_MAX_NUMAXES]; -} DESIGNVECTOR, *PDESIGNVECTOR, FAR *LPDESIGNVECTOR; +} DESIGNVECTOR, *PDESIGNVECTOR, *LPDESIGNVECTOR; typedef struct tagENUMLOGFONTEXDVA { ENUMLOGFONTEXA elfEnumLogfontEx; @@ -2577,6 +2577,41 @@ typedef struct _DISPLAY_DEVICEW { WCHAR DeviceID[128]; WCHAR DeviceKey[128]; } DISPLAY_DEVICEW, *PDISPLAY_DEVICEW, *LPDISPLAY_DEVICEW; +#define MM_MAX_AXES_NAMELEN 16 +typedef struct _AXISINFOA +{ + LONG axMinValue; + LONG axMaxValue; + BYTE axAxisName[MM_MAX_AXES_NAMELEN]; +} AXISINFOA, *PAXISINFOA, *LPAXISINFOA; +typedef struct _AXISINFOW +{ + LONG axMinValue; + LONG axMaxValue; + WCHAR axAxisName[MM_MAX_AXES_NAMELEN]; +} AXISINFOW, *PAXISINFOW, *LPAXISINFOW; +typedef struct _AXESLISTA +{ + DWORD axlReserved; + DWORD axlNumAxes; + AXISINFOA axlAxisInfo[MM_MAX_NUMAXES]; +} AXESLISTA, *PAXESLISTA, *LPAXESLISTA; +typedef struct _AXESLISTW +{ + DWORD axlReserved; + DWORD axlNumAxes; + AXISINFOW axlAxisInfo[MM_MAX_NUMAXES]; +} AXESLISTW, *PAXESLISTW, *LPAXESLISTW; +typedef struct _ENUMTEXTMETRICA +{ + NEWTEXTMETRICEXA etmNewTextMetricEx; + AXESLISTA etmAxesList; +} ENUMTEXTMETRICA, *PENUMTEXTMETRICA, *LPENUMTEXTMETRICA; +typedef struct _ENUMTEXTMETRICW +{ + NEWTEXTMETRICEXW etmNewTextMetricEx; + AXESLISTW etmAxesList; +} ENUMTEXTMETRICW, *PENUMTEXTMETRICW, *LPENUMTEXTMETRICW; @@ -2973,6 +3008,12 @@ BOOL WINAPI TransparentBlt(HDC,int,int,int,int,HDC,int,int,int,int,UINT); #endif #ifdef UNICODE +typedef AXESLISTW AXESLIST; +typedef PAXESLISTW PAXESLIST; +typedef LPAXESLISTW LPAXESLIST; +typedef AXISINFOA AXISINFO; +typedef PAXISINFOA PAXISINFO; +typedef LPAXISINFOA LPAXISINFO; typedef WCHAR BCHAR; typedef DOCINFOW DOCINFO, *LPDOCINFO; typedef LOGFONTW LOGFONT,*PLOGFONT,*LPLOGFONT; @@ -2983,6 +3024,9 @@ typedef DEVMODEW DEVMODE,*PDEVMODE,*LPDEVMODE; typedef ENUMLOGFONTEXDVW ENUMLOGFONTEXDV; typedef PENUMLOGFONTEXDVW PENUMLOGFONTEXDV; typedef LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV; +typedef ENUMTEXTMETRICW ENUMTEXTMETRIC; +typedef PENUMTEXTMETRICW PENUMTEXTMETRIC; +typedef LPENUMTEXTMETRICW LPENUMTEXTMETRIC; typedef EXTLOGFONTW EXTLOGFONT,*PEXTLOGFONT,*LPEXTLOGFONT; typedef GCP_RESULTSW GCP_RESULTS,*LPGCP_RESULTS; typedef OUTLINETEXTMETRICW OUTLINETEXTMETRIC,*POUTLINETEXTMETRIC,*LPOUTLINETEXTMETRIC; @@ -3046,6 +3090,12 @@ typedef DISPLAY_DEVICEW DISPLAY_DEVICE, *PDISPLAY_DEVICE, *LPDISPLAY_DEVICE; #define wglUseFontBitmaps wglUseFontBitmapsW #define wglUseFontOutlines wglUseFontOutlinesW #else +typedef AXESLISTA AXESLIST; +typedef PAXESLISTA PAXESLIST; +typedef LPAXESLISTA LPAXESLIST; +typedef AXISINFOA AXISINFO; +typedef PAXISINFOA PAXISINFO; +typedef LPAXISINFOA LPAXISINFO; typedef BYTE BCHAR; typedef DOCINFOA DOCINFO, *LPDOCINFO; typedef LOGFONTA LOGFONT,*PLOGFONT,*LPLOGFONT; @@ -3056,6 +3106,9 @@ typedef DEVMODEA DEVMODE,*PDEVMODE,*LPDEVMODE; typedef ENUMLOGFONTEXDVA ENUMLOGFONTEXDV; typedef PENUMLOGFONTEXDVA PENUMLOGFONTEXDV; typedef LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV; +typedef ENUMTEXTMETRICA ENUMTEXTMETRIC; +typedef PENUMTEXTMETRICA PENUMTEXTMETRIC; +typedef LPENUMTEXTMETRICA LPENUMTEXTMETRIC; typedef EXTLOGFONTA EXTLOGFONT,*PEXTLOGFONT,*LPEXTLOGFONT; typedef GCP_RESULTSA GCP_RESULTS,*LPGCP_RESULTS; typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC,*POUTLINETEXTMETRIC,*LPOUTLINETEXTMETRIC; diff --git a/reactos/include/reactos/win32k/ntgdityp.h b/reactos/include/reactos/win32k/ntgdityp.h index 20872ad644e..2fc89cfb9c3 100644 --- a/reactos/include/reactos/win32k/ntgdityp.h +++ b/reactos/include/reactos/win32k/ntgdityp.h @@ -120,7 +120,17 @@ typedef struct _TMW_INTERNAL TMDIFF Diff; } TMW_INTERNAL, *PTMW_INTERNAL; -typedef struct _ENUMFONTDATAW ENUMFONTDATAW, *PENUMFONTDATAW; +typedef struct _ENUMFONTDATAW +{ + DWORD cbSize; // Size of ENUMFONTDATAW + (size of ENUMTEXTMETRIC + ENUMLOGFONTEXDV) + PENUMTEXTMETRIC lpentm; // Ptr with in this structure. ^^^ if Win2k + ^^^ + DWORD FontType; + PENUMLOGFONTEXDV lpelfedv; // Prt with in this structure. + // The rest of the structure is variable in size. + // Based on iEnumType and Win32Compat flags,, + // if w2k+ {ENUMTEXTMETRIC else NEWTEXTMETRICS} or TEXTMETRIC + // if w2k+ {ENUMLOGFONTEXDV else ENUMLOGFONT} or LOGFONT +} ENUMFONTDATAW, *PENUMFONTDATAW; /* Number Representation */ typedef struct _EFLOAT_S