54 pgp = &ppdev->Pointer;
61 ppdev->SafetyRemoveCount++;
63 if (ppdev->SafetyRemoveLevel != 0)
68 if (HazardX1 > HazardX2)
74 if (HazardY1 > HazardY2)
86 ppdev->SafetyRemoveLevel = ppdev->SafetyRemoveCount;
87 ppdev->pfnMovePointer(&ppdev->pSurface->SurfObj, -1, -1,
NULL);
107 pgp = &ppdev->Pointer;
114 if (--ppdev->SafetyRemoveCount >= ppdev->SafetyRemoveLevel)
119 ppdev->pfnMovePointer(&ppdev->pSurface->SurfObj,
124 ppdev->SafetyRemoveLevel = 0;
145 pgp = &ppdev->Pointer;
156 DPRINT(
"No SaveSurface!\n");
169 ptlSave.
x = rclDest.
left -
pt.x;
170 ptlSave.
y = rclDest.
top -
pt.y;
193 RECTL rclSurf, rclPointer;
198 pgp = &ppdev->Pointer;
222 rclPointer.
top = rclSurf.
top -
pt.y;
300 rclPointer.top += pgp->
Size.
cy;
339 SIZEL sizel = {0, 0};
381 if (!psurfSave)
goto failure;
401 if (!psurfColor)
goto failure;
419 DPRINT1(
"Screen surface and cursor color bitmap format don't match!.\n");
430 if (!psurfColor)
goto failure;
459 if (!psurfMask)
goto failure;
624 if (pfnSetPointerShape)
631 ulResult = pfnSetPointerShape(
pso,
682 PSURFACE psurf, psurfMask, psurfColor;
689 DPRINT1(
"Failed to lock the DC.\n");
696 psurf = pdc->ppdev->pSurface;
699 DPRINT1(
"DC has no surface.\n");
743 &pdc->ppdev->Pointer.Exclude,
779 DPRINT1(
"Failed to lock the DC.\n");
788 if(pdc->ppdev->SafetyRemoveLevel == 0)
791 prcl = &pdc->ppdev->Pointer.Exclude;
794 pdc->ppdev->pfnMovePointer(&pdc->ppdev->pSurface->SurfObj,
x,
y,
prcl);
VOID WINAPI EngReleaseSemaphore(IN HSEMAPHORE hsem)
BOOL APIENTRY IntEngAlphaBlend(_Inout_ SURFOBJ *psoDest, _In_ SURFOBJ *psoSource, _In_opt_ CLIPOBJ *pco, _In_opt_ XLATEOBJ *pxlo, _In_ RECTL *prclDest, _In_ RECTL *prclSrc, _In_ BLENDOBJ *pBlendObj)
ULONG NTAPI GreSetPointerShape(_In_ HDC hdc, _In_opt_ HBITMAP hbmMask, _In_opt_ HBITMAP hbmColor, _In_ LONG xHot, _In_ LONG yHot, _In_ LONG x, _In_ LONG y, _In_ FLONG fl)
ENGAPI BOOL APIENTRY EngDeleteSurface(_In_ _Post_ptr_invalid_ HSURF hsurf)
FORCEINLINE PDC DC_LockDc(HDC hdc)
#define WIDTH_BYTES_ALIGN32(cx, bpp)
#define SURFACE_ShareUnlockSurface(pBMObj)
PFN_DrvMovePointer pfnMovePointer
#define BitsPerFormat(Format)
__drv_preferredFunction("(see documentation)", "Obsolete, always returns false. ") BOOL APIENTRY EngSetPointerTag(_In_ HDEV hdev
struct _PALETTE *const ppal
GLint GLint GLint GLint GLint x
VOID APIENTRY EngMovePointer(_In_ SURFOBJ *pso, _In_ LONG x, _In_ LONG y, _In_ RECTL *prcl)
_Requires_lock_held_ ppdev BOOL NTAPI MouseSafetyOnDrawEnd(_Inout_ PPDEVOBJ ppdev)
#define SURFACE_ShareLockSurface(hBMObj)
#define SPS_ACCEPT_NOEXCLUDE
VOID NTAPI EXLATEOBJ_vInitialize(_Out_ PEXLATEOBJ pexlo, _In_opt_ PALETTE *ppalSrc, _In_opt_ PALETTE *ppalDst, _In_ COLORREF crSrcBackColor, _In_ COLORREF crDstBackColor, _In_ COLORREF crDstForeColor)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ XLATEOBJ _In_ LONG _In_ LONG yHot
ULONG APIENTRY EngSetPointerShape(_In_ SURFOBJ *pso, _In_opt_ SURFOBJ *psoMask, _In_opt_ SURFOBJ *psoColor, _In_opt_ XLATEOBJ *pxlo, _In_ LONG xHot, _In_ LONG yHot, _In_ LONG x, _In_ LONG y, _In_ RECTL *prcl, _In_ FLONG fl)
_Requires_lock_held_ ppdev BOOL NTAPI MouseSafetyOnDrawStart(_Inout_ PPDEVOBJ ppdev, _In_ LONG HazardX1, _In_ LONG HazardY1, _In_ LONG HazardX2, _In_ LONG HazardY2)
ENGAPI VOID APIENTRY EngAcquireSemaphore(_Inout_ HSEMAPHORE hsem)
BOOL APIENTRY IntEngCopyBits(SURFOBJ *psoTrg, SURFOBJ *psoSrc, CLIPOBJ *pco, XLATEOBJ *pxlo, RECTL *prclTrg, POINTL *pptlSrc)
VOID NTAPI EXLATEOBJ_vCleanup(_Inout_ PEXLATEOBJ pexlo)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
#define PALETTE_ShareLockPalette(hpal)
typedef HSURF(APIENTRY FN_DrvEnableSurface)(_In_ DHPDEV dhpdev)
_In_ HANDLE _In_ SURFOBJ * pso
#define GDIDEVFUNCS(SurfObj)
VOID NTAPI GreMovePointer(_In_ HDC hdc, _In_ LONG x, _In_ LONG y)
FN_DrvSetPointerShape * PFN_DrvSetPointerShape
VOID NTAPI IntHideMousePointer(_Inout_ PDEVOBJ *ppdev, _Inout_ SURFOBJ *psoDest)
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ XLATEOBJ _In_ LONG xHot
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
VOID NTAPI IntShowMousePointer(_Inout_ PDEVOBJ *ppdev, _Inout_ SURFOBJ *psoDest)
_In_opt_ SURFOBJ _In_opt_ SURFOBJ * psoColor
FORCEINLINE VOID DC_UnlockDc(PDC pdc)
ULONG NTAPI IntEngSetPointerShape(_In_ SURFOBJ *pso, _In_opt_ SURFOBJ *psoMask, _In_opt_ SURFOBJ *psoColor, _In_opt_ XLATEOBJ *pxlo, _In_ LONG xHot, _In_ LONG yHot, _In_ LONG x, _In_ LONG y, _In_ RECTL *prcl, _In_ FLONG fl)
#define PALETTE_ShareUnlockPalette(ppal)
_In_opt_ SURFOBJ _In_opt_ SURFOBJ * psoMask
GLint GLint GLint GLint GLint GLint y
_In_ ULONG _In_ CLIPOBJ _In_ RECTL * prcl
#define ROP4_FROM_INDEX(index)
#define _Requires_lock_held_(a)
ENGAPI HBITMAP APIENTRY EngCreateBitmap(_In_ SIZEL sizl, _In_ LONG lWidth, _In_ ULONG iFormat, _In_ FLONG fl, _In_opt_ PVOID pvBits)
BOOL APIENTRY IntEngBitBlt(SURFOBJ *psoTrg, SURFOBJ *psoSrc, SURFOBJ *psoMask, CLIPOBJ *pco, XLATEOBJ *pxlo, RECTL *prclTrg, POINTL *pptlSrc, POINTL *pptlMask, BRUSHOBJ *pbo, POINTL *pptlBrush, ROP4 Rop4)
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ * pxlo
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _Reserved_ XLATEOBJ _In_ FLONG fl