Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 67 of file gdibatch.c.
Referenced by NtGdiFlushUserBatch().
{ BOOL Hit = FALSE; ULONG Cmd = 0, Size = 0; PDC_ATTR pdcattr = NULL; if (dc) { pdcattr = dc->pdcattr; } _SEH2_TRY { Cmd = pHdr->Cmd; Size = pHdr->Size; // Return the full size of the structure. } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { Hit = TRUE; } _SEH2_END; if (Hit) { DPRINT1("WARNING! GdiBatch Fault!\n"); return 0; } // FYI! The thread is approaching the end of sunset. switch(Cmd) { case GdiBCPatBlt: // Highest pri first! break; case GdiBCPolyPatBlt: break; case GdiBCTextOut: break; case GdiBCExtTextOut: break; case GdiBCSetBrushOrg: { PGDIBSSETBRHORG pgSBO; if (!dc) break; pgSBO = (PGDIBSSETBRHORG) pHdr; pdcattr->ptlBrushOrigin = pgSBO->ptlBrushOrigin; DC_vSetBrushOrigin(dc, pgSBO->ptlBrushOrigin.x, pgSBO->ptlBrushOrigin.y); break; } case GdiBCExtSelClipRgn: break; case GdiBCSelObj: { PGDIBSOBJECT pgO; PTEXTOBJ pNewFnt = NULL; if (!dc) break; pgO = (PGDIBSOBJECT) pHdr; if (NT_SUCCESS(TextIntRealizeFont((HFONT)pgO->hgdiobj,NULL))) { /* LFONTOBJ use share and locking. */ pNewFnt = TEXTOBJ_LockText(pgO->hgdiobj); dc->dclevel.plfnt = pNewFnt; dc->hlfntCur = pgO->hgdiobj; pdcattr->hlfntNew = pgO->hgdiobj; pdcattr->ulDirty_ |= DIRTY_CHARSET; pdcattr->ulDirty_ &= ~SLOW_WIDTHS; } if (pNewFnt) TEXTOBJ_UnlockText(pNewFnt); break; } case GdiBCDelRgn: DPRINT("Delete Region Object!\n"); case GdiBCDelObj: { PGDIBSOBJECT pgO = (PGDIBSOBJECT) pHdr; GreDeleteObject( pgO->hgdiobj ); break; } default: break; } return Size; }