mirror of
https://github.com/reactos/reactos.git
synced 2024-07-07 05:05:09 +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_MEMORY 1
|
||||||
#define METAFILE_DISK 2
|
#define METAFILE_DISK 2
|
||||||
|
|
||||||
|
#define SAPCALLBACKDELAY 244
|
||||||
|
|
||||||
/* MACRO ********************************************************************/
|
/* MACRO ********************************************************************/
|
||||||
|
|
||||||
#define ROP_USES_SOURCE(Rop) (((Rop) << 2 ^ Rop) & 0xCC0000)
|
#define ROP_USES_SOURCE(Rop) (((Rop) << 2 ^ Rop) & 0xCC0000)
|
||||||
|
@ -238,4 +240,6 @@ int
|
||||||
WINAPI
|
WINAPI
|
||||||
GdiGetBitmapBitsSize(BITMAPINFO *lpbmi);
|
GdiGetBitmapBitsSize(BITMAPINFO *lpbmi);
|
||||||
|
|
||||||
|
VOID GdiSAPCallback(PLDC pldc);
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -164,6 +164,23 @@ PLDC GdiGetLDC(HDC hDC)
|
||||||
return Dc_Attr->pvLDC;
|
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
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1142,15 +1142,26 @@ GdiCleanCacheDC(HDC hdc)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
HDC
|
HDC
|
||||||
WINAPI
|
WINAPI
|
||||||
GdiConvertAndCheckDC(HDC hdc)
|
GdiConvertAndCheckDC(HDC hdc)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
PLDC pldc;
|
||||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
ULONG hType = GDI_HANDLE_GET_TYPE(hdc);
|
||||||
return 0;
|
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_SAPCALLBACK 0x00000020
|
||||||
#define LDC_INIT_DOCUMENT 0x00000040
|
#define LDC_INIT_DOCUMENT 0x00000040
|
||||||
#define LDC_INIT_PAGE 0x00000080
|
#define LDC_INIT_PAGE 0x00000080
|
||||||
|
#define LDC_STARTPAGE 0x00000100
|
||||||
#define LDC_PLAY_MFDC 0x00000800
|
#define LDC_PLAY_MFDC 0x00000800
|
||||||
#define LDC_CLOCKWISE 0x00002000
|
#define LDC_CLOCKWISE 0x00002000
|
||||||
#define LDC_KILL_DOCUMENT 0x00010000
|
#define LDC_KILL_DOCUMENT 0x00010000
|
||||||
|
|
Loading…
Reference in a new issue