mirror of
https://github.com/reactos/reactos.git
synced 2024-06-30 18:01:07 +00:00
- Implement GdiConvertAndCheckDC and Abort callback support routine.
svn path=/trunk/; revision=41091
This commit is contained in:
parent
e9cab0901b
commit
e7651266fd
|
@ -31,6 +31,8 @@ typedef INT
|
|||
#define METAFILE_MEMORY 1
|
||||
#define METAFILE_DISK 2
|
||||
|
||||
#define SAPCALLBACKDELAY 244
|
||||
|
||||
/* MACRO ********************************************************************/
|
||||
|
||||
#define ROP_USES_SOURCE(Rop) (((Rop) << 2 ^ Rop) & 0xCC0000)
|
||||
|
@ -238,4 +240,6 @@ int
|
|||
WINAPI
|
||||
GdiGetBitmapBitsSize(BITMAPINFO *lpbmi);
|
||||
|
||||
VOID GdiSAPCallback(PLDC pldc);
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -164,6 +164,23 @@ PLDC GdiGetLDC(HDC hDC)
|
|||
return Dc_Attr->pvLDC;
|
||||
}
|
||||
|
||||
VOID GdiSAPCallback(PLDC pldc)
|
||||
{
|
||||
DWORD Time, NewTime = GetTickCount();
|
||||
|
||||
Time = NewTime - pldc->CallBackTick;
|
||||
|
||||
if ( Time < SAPCALLBACKDELAY) return;
|
||||
|
||||
pldc->CallBackTick = NewTime;
|
||||
|
||||
if ( pldc->pAbortProc(pldc->hDC, 0) )
|
||||
{
|
||||
CancelDC(pldc->hDC);
|
||||
AbortDoc(pldc->hDC);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
|
|
|
@ -1142,15 +1142,26 @@ GdiCleanCacheDC(HDC hdc)
|
|||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
* @implemented
|
||||
*/
|
||||
HDC
|
||||
WINAPI
|
||||
GdiConvertAndCheckDC(HDC hdc)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
PLDC pldc;
|
||||
ULONG hType = GDI_HANDLE_GET_TYPE(hdc);
|
||||
if (hType == GDILoObjType_LO_DC_TYPE || hType == GDILoObjType_LO_METADC16_TYPE)
|
||||
return hdc;
|
||||
pldc = GdiGetLDC(hdc);
|
||||
if (pldc)
|
||||
{
|
||||
if (pldc->Flags & LDC_SAPCALLBACK) GdiSAPCallback(pldc);
|
||||
if (pldc->Flags & LDC_KILL_DOCUMENT) return NULL;
|
||||
if (pldc->Flags & LDC_STARTPAGE) StartPage(hdc);
|
||||
return hdc;
|
||||
}
|
||||
SetLastError(ERROR_INVALID_HANDLE);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -178,6 +178,7 @@
|
|||
#define LDC_SAPCALLBACK 0x00000020
|
||||
#define LDC_INIT_DOCUMENT 0x00000040
|
||||
#define LDC_INIT_PAGE 0x00000080
|
||||
#define LDC_STARTPAGE 0x00000100
|
||||
#define LDC_PLAY_MFDC 0x00000800
|
||||
#define LDC_CLOCKWISE 0x00002000
|
||||
#define LDC_KILL_DOCUMENT 0x00010000
|
||||
|
|
Loading…
Reference in a new issue