/*++ BUILD Version: 0001
 *
 *  WOW v1.0
 *
 *  Copyright (c) 1991, Microsoft Corporation
 *
 *  WGDI.H
 *  WOW32 16-bit GDI API support
 *
 *  History:
 *  Created 07-Mar-1991 by Jeff Parsons (jeffpar)
--*/

typedef struct _LINEDDADATA {   /* LineDDAdata */
    VPPROC  vpfnLineDDAProc;    // 16-bit function
    DWORD   dwUserDDAParam;     // user param, if any
} LINEDDADATA, *PLINEDDADATA;

typedef struct _ENUMOBJDATA {   /* LineDDAdata */
    INT     ObjType;
    VPPROC  vpfnEnumObjProc;     // 16-bit function
    VPVOID  vpObjData;
    DWORD   dwUserParam;         // user param, if any
} ENUMOBJDATA, *PENUMOBJDATA;

ULONG FASTCALL   WG32Arc(PVDMFRAME pFrame);
ULONG FASTCALL   WG32BitBlt(PVDMFRAME pFrame);
ULONG FASTCALL   WG32Chord(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CombineRgn(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateBitmap(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateBitmapIndirect(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateBrushIndirect(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateCompatibleBitmap(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateCompatibleDC(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateDC(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateDIBPatternBrush(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateDIBitmap(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateDiscardableBitmap(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateEllipticRgn(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateEllipticRgnIndirect(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateHatchBrush(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateIC(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreatePatternBrush(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreatePen(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreatePenIndirect(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreatePolyPolygonRgn(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreatePolygonRgn(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateRectRgn(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateRectRgnIndirect(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateRoundRectRgn(PVDMFRAME pFrame);
ULONG FASTCALL   WG32CreateSolidBrush(PVDMFRAME pFrame);
ULONG FASTCALL   WG32DPtoLP(PVDMFRAME pFrame);
ULONG FASTCALL   WG32DeleteDC(PVDMFRAME pFrame);
ULONG FASTCALL   WG32DeleteObject(PVDMFRAME pFrame);
ULONG FASTCALL   WG32DeviceMode(PVDMFRAME pFrame);
ULONG FASTCALL   WG32Ellipse(PVDMFRAME pFrame);
ULONG FASTCALL   WG32EnumObjects(PVDMFRAME pFrame);
ULONG FASTCALL   WG32EqualRgn(PVDMFRAME pFrame);
ULONG FASTCALL   WG32Escape(PVDMFRAME pFrame);
ULONG FASTCALL   WG32ExcludeClipRect(PVDMFRAME pFrame);
ULONG FASTCALL   WG32ExtDeviceMode(PVDMFRAME pFrame);
ULONG FASTCALL   WG32DeviceCapabilities(PVDMFRAME pFrame);
ULONG FASTCALL   WG32ExtFloodFill(PVDMFRAME pFrame);
ULONG FASTCALL   WG32FillRgn(PVDMFRAME pFrame);
ULONG FASTCALL   WG32FloodFill(PVDMFRAME pFrame);
ULONG FASTCALL   WG32FrameRgn(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GdiFlush(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetBitmapBits(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetBitmapDimension(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetBkColor(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetBkMode(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetBrushOrg(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetClipBox(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetCurLogFont(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetCurrentObject(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetCurrentPosition(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetDCOrg(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetDIBits(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetDeviceCaps(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetEnvironment(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetMapMode(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetNearestColor(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetObject(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetObjectType(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetPixel(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetPolyFillMode(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetROP2(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetRegionData(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetRelAbs(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetRgnBox(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetStockObject(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetStretchBltMode(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetViewportExt(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetViewportOrg(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetWindowExt(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetWindowOrg(PVDMFRAME pFrame);
ULONG FASTCALL   WG32IntersectClipRect(PVDMFRAME pFrame);
ULONG FASTCALL   WG32InvertRgn(PVDMFRAME pFrame);
ULONG FASTCALL   WG32LPtoDP(PVDMFRAME pFrame);
ULONG FASTCALL   WG32LineDDA(PVDMFRAME pFrame);
ULONG FASTCALL   WG32LineTo(PVDMFRAME pFrame);
ULONG FASTCALL   WG32MoveTo(PVDMFRAME pFrame);
ULONG FASTCALL   WG32MulDiv(PVDMFRAME pFrame);
ULONG FASTCALL   WG32OffsetClipRgn(PVDMFRAME pFrame);
ULONG FASTCALL   WG32OffsetRgn(PVDMFRAME pFrame);
ULONG FASTCALL   WG32OffsetViewportOrg(PVDMFRAME pFrame);
ULONG FASTCALL   WG32OffsetWindowOrg(PVDMFRAME pFrame);
ULONG FASTCALL   WG32PaintRgn(PVDMFRAME pFrame);
ULONG FASTCALL   WG32PatBlt(PVDMFRAME pFrame);
ULONG FASTCALL   WG32Pie(PVDMFRAME pFrame);
ULONG FASTCALL   WG32PolyPolygon(PVDMFRAME pFrame);
ULONG FASTCALL   WG32Polygon(PVDMFRAME pFrame);
ULONG FASTCALL   WG32Polyline(PVDMFRAME pFrame);
ULONG FASTCALL   WG32PolyPolylineWOW(PVDMFRAME pFrame);
ULONG FASTCALL   WG32PtInRegion(PVDMFRAME pFrame);
ULONG FASTCALL   WG32PtVisible(PVDMFRAME pFrame);
ULONG FASTCALL   WG32RectInRegion(PVDMFRAME pFrame);
ULONG FASTCALL   WG32RectVisible(PVDMFRAME pFrame);
ULONG FASTCALL   WG32Rectangle(PVDMFRAME pFrame);
ULONG FASTCALL   WG32RestoreDC(PVDMFRAME pFrame);
ULONG FASTCALL   WG32RoundRect(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SaveDC(PVDMFRAME pFrame);
ULONG FASTCALL   WG32ScaleViewportExt(PVDMFRAME pFrame);
ULONG FASTCALL   WG32ScaleWindowExt(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SelectClipRgn(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SelectObject(PVDMFRAME pFrame);
LONG     W32AbortProc(HDC hPr, int code);
ULONG FASTCALL   WG32SetBitmapBits(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetBitmapDimension(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetBkColor(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetBkMode(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetBrushOrg(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetDIBits(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetDIBitsToDevice(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetMapMode(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetMapperFlags(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetObjectOwner(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetPixel(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetPolyFillMode(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetROP2(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetRectRgn(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetRelAbs(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetStretchBltMode(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetViewportExt(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetViewportOrg(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetWindowExt(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetWindowOrg(PVDMFRAME pFrame);
ULONG FASTCALL   WG32StretchBlt(PVDMFRAME pFrame);
ULONG FASTCALL   WG32StretchDIBits(PVDMFRAME pFrame);
ULONG FASTCALL   WG32UnrealizeObject(PVDMFRAME pFrame);

ULONG FASTCALL   WG32CreateDIBSection(PVDMFRAME pFrame);
ULONG FASTCALL   WG32GetDIBColorTable(PVDMFRAME pFrame);
ULONG FASTCALL   WG32SetDIBColorTable(PVDMFRAME pFrame);
ULONG FASTCALL   WG32DMBitBlt(PVDMFRAME pFrame);

BOOL  IsFaxPrinterSupportedDevice(PSZ pszDevice);
BOOL  IsFaxPrinterWriteProfileString(PSZ szSection, PSZ szKey, PSZ szString);
DWORD GetFaxPrinterProfileString(PSZ szSection, PSZ szKey, PSZ szDefault, PSZ szRetBuf, DWORD cbBufSize);

HANDLE hConvert16to32 (int h16);
HAND16 hConvert32to16 (DWORD h32);
