24 DPRINT1(
"WinSpooler.Drv Did not load!\n");
31 if ((!lpwszDevice) && (!lpwszDriver))
38 if ((lpwszDevice) && (
wcslen(lpwszDevice) != 0))
82 Dc_Attr->
pvLDC = pLDC;
85 DbgPrint(
"DC_ATTR Allocated -> 0x%x\n",Dc_Attr);
109 if (pdcattr->pvLIcm) IcmCompatibleDC(hdcNew,
hdc, pdcattr);
138 if (lpszDriver !=
NULL)
148 if (lpszDevice !=
NULL)
158 if (lpszOutput !=
NULL)
168 if (lpdvmInit !=
NULL)
174 lpdvmInit ? dvmInitW :
NULL,
238 LPWSTR lpszDriverW, lpszDeviceW, lpszOutputW;
263 lpdvmInit ? dvmInitW :
NULL,
349 pDc_Attr->
ulDirty_ &= ~DC_PLAYMETAFILE;
435 if ((uObjectType ==
OBJ_PEN) ||
453 return pdcattr->
hpen;
516 if (!ObjectsCount)
return 0;
572 if (!NtGdiGetDeviceCapsAll(
hdc, &pldc->
DevCaps) )
583 if ( pdcattr ==
NULL )
758 ulMFId != EMR_MAX + 1 )
773 if (!NtGdiGetAndSetDCDword(
hdc,
u,
dwIn, &dwResult))
854 return NtGdiGetAppClipBox(
hdc,
lprc);
1010 if (pdcattr ==
NULL)
1041 if (pdcattr ==
NULL)
1066 DPRINT1(
"SetBkMode: Incorrect value\n");
1074 if (pdcattr ==
NULL)
1100 if (pdcattr ==
NULL)
1106 return pdcattr->
jROP2;
1125 if (pdcattr ==
NULL)
1136 pdcattr->
ulDirty_ &= ~DC_MODE_DIRTY;
1140 rop2Old = pdcattr->
jROP2;
1159 if (pdcattr ==
NULL)
1176 _In_ int iPolyFillMode)
1178 INT iOldPolyFillMode;
1185 if (pdcattr ==
NULL)
1196 pdcattr->
ulDirty_ &= ~DC_MODE_DIRTY;
1203 return iOldPolyFillMode;
1218 if (pdcattr ==
NULL)
1249 if (pdcattr ==
NULL)
1264 pdcattr->
ulDirty_ &= ~DC_MODE_DIRTY;
1315 BOOL ForceBackground);
1322 BOOL bForceBackground)
1359 if (pdcattr ==
NULL)
1375 _In_ int iStretchMode)
1384 if (pdcattr ==
NULL)
1412 if (pdcattr ==
NULL)
1446 if (pdcattr ==
NULL)
1453 hbrOld = pdcattr->
hbrush;
1476 if (pdcattr ==
NULL)
1483 hpenOld = pdcattr->
hpen;
1484 if (hpenOld ==
hpen)
1506 if (pdcattr ==
NULL)
1514 if (hfontOld ==
hfont)
#define UlongToHandle(ul)
DWORD APIENTRY NtGdiGetBoundsRect(IN HDC hdc, OUT LPRECT prc, IN DWORD flags)
#define ERROR_NOT_ENOUGH_MEMORY
#define ERROR_INVALID_FUNCTION
#define NT_SUCCESS(StatCode)
#define ERROR_INVALID_PARAMETER
#define HeapFree(x, y, z)
#define ERROR_INVALID_HANDLE
FORCEINLINE PVOID GdiAllocBatchCommand(HDC hdc, USHORT Cmd)
BOOL WINAPI GdiValidateHandle(HGDIOBJ)
HGDIOBJ WINAPI GdiFixUpHandle(HGDIOBJ hGO)
BOOL WINAPI EMFDC_SetD(_In_ PLDC pldc, _In_ DWORD dwIn, _In_ ULONG ulMFId)
VOID GdiSAPCallback(PLDC pldc)
BOOL WINAPI METADC_RosGlueDeleteDC(_In_ HDC hdc)
#define HANDLE_METADC16(_RetType, _Func, dwError, hdc,...)
#define HANDLE_METADC(_RetType, _Func, dwError, hdc,...)
NTSTATUS HEAP_strdupA2W(LPWSTR *ppszW, LPCSTR lpszA)
BOOL WINAPI METADC_SetD(_In_ HDC hdc, _In_ DWORD dwIn, _In_ USHORT usMF16Id)
BOOL EMFDC_SelectPalette(LDC *dc_attr, HPALETTE palette) DECLSPEC_HIDDEN
#define HANDLE_METADC1P(_RetType, _Func, dwError, hdc,...)
VOID HEAP_free(LPVOID memory)
FORCEINLINE PDC_ATTR GdiGetDcAttr(HDC hdc)
BOOL METADC_SelectPalette(HDC hdc, HPALETTE palette) DECLSPEC_HIDDEN
PLDC FASTCALL GdiGetLDC(HDC hDC)
#define HANDLE_EMETAFDC(_RetType, _Func, dwError, hdc,...)
BOOL FASTCALL LoadTheSpoolerDrv(VOID)
#define GDI_OBJECT_TYPE_DC
#define GDI_HANDLE_GET_TYPE(h)
#define GDI_OBJECT_TYPE_BITMAP
#define GDI_OBJECT_TYPE_PALETTE
#define GDI_OBJECT_TYPE_FONT
#define GDI_OBJECT_TYPE_METADC
@ GDILoObjType_LO_FONT_TYPE
@ GDILoObjType_LO_PALETTE_TYPE
@ GDILoObjType_LO_BRUSH_TYPE
@ GDILoObjType_LO_BITMAP_TYPE
@ GDILoObjType_LO_METADC16_TYPE
@ GDILoObjType_LO_REGION_TYPE
@ GDILoObjType_LO_EXTPEN_TYPE
@ GDILoObjType_LO_ICMLCS_TYPE
@ GDILoObjType_LO_DC_TYPE
@ GDILoObjType_LO_PEN_TYPE
@ GDILoObjType_LO_DIBSECTION_TYPE
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
BOOL APIENTRY NtGdiGetDCPoint(HDC hDC, UINT iPoint, PPOINTL Point)
__kernel_entry W32KAPI DWORD APIENTRY NtGdiSetBoundsRect(_In_ HDC hdc, _In_ LPRECT prc, _In_ DWORD f)
__kernel_entry W32KAPI HDC APIENTRY NtGdiCreateCompatibleDC(_In_opt_ HDC hdc)
__kernel_entry W32KAPI INT APIENTRY NtGdiGetDeviceCaps(_In_ HDC hdc, _In_ INT i)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiRestoreDC(_In_ HDC hdc, _In_ INT iLevel)
__kernel_entry W32KAPI NTSTATUS APIENTRY NtGdiFlush(VOID)
_In_ UINT _In_ DWORD dwIn
__kernel_entry W32KAPI BOOL APIENTRY NtGdiGetDCDword(_In_ HDC hdc, _In_ UINT u, _Out_ DWORD *Result)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiCancelDC(_In_ HDC hdc)
__kernel_entry W32KAPI INT APIENTRY NtGdiSaveDC(_In_ HDC hdc)
__kernel_entry W32KAPI HBITMAP APIENTRY NtGdiSelectBitmap(_In_ HDC hdc, _In_ HBITMAP hbm)
__kernel_entry W32KAPI ULONG APIENTRY NtGdiEnumObjects(_In_ HDC hdc, _In_ INT iObjectType, _In_ ULONG cjBuf, _Out_writes_bytes_opt_(cjBuf) PVOID pvBuf)
__kernel_entry W32KAPI HANDLE APIENTRY NtGdiGetDCObject(_In_ HDC hdc, _In_ INT itype)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiDeleteObjectApp(_In_ HANDLE hobj)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiResetDC(_In_ HDC hdc, _In_ LPDEVMODEW pdm, _Out_ PBOOL pbBanding, _In_opt_ DRIVER_INFO_2W *pDriverInfo2, _At_((PUMDHPDEV *) ppUMdhpdev, _Out_) PVOID ppUMdhpdev)
__kernel_entry W32KAPI HDC APIENTRY NtGdiOpenDCW(_In_opt_ PUNICODE_STRING pustrDevice, _In_ DEVMODEW *pdm, _In_ PUNICODE_STRING pustrLogAddr, _In_ ULONG iType, _In_ BOOL bDisplay, _In_opt_ HANDLE hspool, _At_((PUMDHPDEV *) pUMdhpdev, _Out_) PVOID pUMdhpdev)
__kernel_entry W32KAPI HFONT APIENTRY NtGdiSelectFont(_In_ HDC hdc, _In_ HFONT hf)
#define LDC_INIT_DOCUMENT
#define DC_PRIMARY_DISPLAY
#define LDC_KILL_DOCUMENT
@ GdiGetAspectRatioFilter
_Check_return_ _CRTIMP int __cdecl _wcsnicmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
_Must_inspect_result_ _In_ WDFDEVICE Device
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
HDC WINAPI GdiConvertAndCheckDC(HDC hdc)
BOOL WINAPI CancelDC(HDC hDC)
int WINAPI SetGraphicsMode(_In_ HDC hdc, _In_ int iMode)
COLORREF WINAPI SetDCPenColor(_In_ HDC hdc, _In_ COLORREF crColor)
int WINAPI GetROP2(_In_ HDC hdc)
INT WINAPI GetArcDirection(_In_ HDC hdc)
HBRUSH WINAPI GdiSelectBrush(_In_ HDC hdc, _In_ HBRUSH hbr)
INT WINAPI SetRelAbs(HDC hdc, INT Mode)
int WINAPI SetROP2(_In_ HDC hdc, _In_ int rop2)
HPALETTE WINAPI NtUserSelectPalette(HDC hDC, HPALETTE hpal, BOOL ForceBackground)
HDC WINAPI CreateDCW(LPCWSTR lpwszDriver, LPCWSTR lpwszDevice, LPCWSTR lpwszOutput, CONST DEVMODEW *lpInitData)
HFONT WINAPI GdiSelectFont(_In_ HDC hdc, _In_ HFONT hfont)
COLORREF WINAPI GetDCPenColor(_In_ HDC hdc)
BOOL WINAPI GetAspectRatioFilterEx(HDC hdc, LPSIZE lpAspectRatio)
int WINAPI SetBkMode(_In_ HDC hdc, _In_ int iBkMode)
HGDIOBJ WINAPI GetCurrentObject(_In_ HDC hdc, _In_ UINT uObjectType)
DWORD WINAPI GetRelAbs(_In_ HDC hdc, _In_ DWORD dwIgnore)
HDC WINAPI CreateICA(LPCSTR lpszDriver, LPCSTR lpszDevice, LPCSTR lpszOutput, CONST DEVMODEA *lpdvmInit)
HFONT WINAPI GetHFONT(HDC hdc)
DWORD WINAPI GetDCDWord(_In_ HDC hdc, _In_ UINT u, _In_ DWORD dwError)
DWORD WINAPI GetAndSetDCDWord(_In_ HDC hdc, _In_ UINT u, _In_ DWORD dwIn, _In_ ULONG ulMFId, _In_ USHORT usMF16Id, _In_ DWORD dwError)
HDC WINAPI CreateICW(LPCWSTR lpszDriver, LPCWSTR lpszDevice, LPCWSTR lpszOutput, CONST DEVMODEW *lpdvmInit)
int WINAPI EnumObjects(HDC hdc, int nObjectType, GOBJENUMPROC lpObjectFunc, LPARAM lParam)
BOOL WINAPI GdiCleanCacheDC(HDC hdc)
HPALETTE WINAPI SelectPalette(HDC hdc, HPALETTE hpal, BOOL bForceBackground)
INT WINAPI SetArcDirection(_In_ HDC hdc, _In_ INT nDirection)
HPEN WINAPI GdiSelectPen(_In_ HDC hdc, _In_ HPEN hpen)
COLORREF WINAPI SetDCBrushColor(_In_ HDC hdc, _In_ COLORREF crColor)
int WINAPI GetStretchBltMode(HDC hdc)
HDC FASTCALL IntCreateDICW(LPCWSTR lpwszDriver, LPCWSTR lpwszDevice, LPCWSTR lpwszOutput, PDEVMODEW lpInitData, ULONG iType)
BOOL WINAPI GdiReleaseDC(HDC hdc)
int WINAPI GetGraphicsMode(HDC hdc)
COLORREF WINAPI GetDCBrushColor(_In_ HDC hdc)
int WINAPI GetPolyFillMode(HDC hdc)
int WINAPI GetBkMode(HDC hdc)
int WINAPI SetPolyFillMode(_In_ HDC hdc, _In_ int iPolyFillMode)
HBITMAP WINAPI GdiSelectBitmap(_In_ HDC hdc, _In_ HBITMAP hbmp)
int WINAPI SetStretchBltMode(_In_ HDC hdc, _In_ int iStretchMode)
HDC WINAPI ResetDCW(_In_ HDC hdc, _In_ CONST DEVMODEW *lpInitData)
HCOLORSPACE WINAPI SetColorSpace(_In_ HDC, _In_ HCOLORSPACE)
int WINAPI GetClipBox(_In_ HDC, _Out_ LPRECT)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
DEVMODEW *WINAPI GdiConvertToDevmodeW(const DEVMODEA *)
HDC WINAPI ResetDCA(_In_ HDC, _In_ const DEVMODEA *)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
HDC WINAPI CreateDCA(_In_opt_ LPCSTR pszDriver, _In_opt_ LPCSTR pszDevice, _In_opt_ LPCSTR pszOutput, _In_opt_ const DEVMODEA *pdmInit)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
BOOL WINAPI RestoreDC(_In_ HDC, _In_ int)
#define EMR_SETARCDIRECTION
COLORREF WINAPI GetBkColor(_In_ HDC)
int WINAPI StartPage(_In_ HDC)
BOOL WINAPI DeleteDC(_In_ HDC)
UINT WINAPI SetBoundsRect(_In_ HDC, _In_opt_ LPCRECT, _In_ UINT)
int WINAPI SaveDC(_In_ HDC)
int WINAPI ExtSelectClipRgn(_In_ HDC, _In_opt_ HRGN, _In_ int)
UINT WINAPI GetBoundsRect(_In_ HDC, _Out_ LPRECT, _In_ UINT)
struct tagLOGBRUSH LOGBRUSH
#define MAXSTRETCHBLTMODE
_In_ int _Inout_ LPRECT lprc
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO