diff --git a/reactos/dll/win32/gdi32/include/gdi32p.h b/reactos/dll/win32/gdi32/include/gdi32p.h index 73e09c410d5..dd5c86fe680 100644 --- a/reactos/dll/win32/gdi32/include/gdi32p.h +++ b/reactos/dll/win32/gdi32/include/gdi32p.h @@ -10,9 +10,11 @@ /* DATA **********************************************************************/ extern PGDI_TABLE_ENTRY GdiHandleTable; +extern PGDI_SHARED_HANDLE_TABLE GdiSharedHandleTable; extern HANDLE hProcessHeap; extern HANDLE CurrentProcessId; extern DWORD GDI_BatchLimit; +extern PDEVCAPS GdiDevCaps; typedef INT (CALLBACK* EMFPLAYPROC)( diff --git a/reactos/dll/win32/gdi32/main/dllmain.c b/reactos/dll/win32/gdi32/main/dllmain.c index a4e2672ef22..a1394488761 100644 --- a/reactos/dll/win32/gdi32/main/dllmain.c +++ b/reactos/dll/win32/gdi32/main/dllmain.c @@ -11,6 +11,7 @@ extern HGDIOBJ stock_objects[]; BOOL SetStockObjects = FALSE; +PDEVCAPS GdiDevCaps = NULL; /* * GDI32.DLL doesn't have an entry point. The initialization is done by a call @@ -36,6 +37,8 @@ GdiProcessSetup (VOID) /* map the gdi handle table to user space */ GdiHandleTable = NtCurrentTeb()->ProcessEnvironmentBlock->GdiSharedHandleTable; + GdiSharedHandleTable = NtCurrentTeb()->ProcessEnvironmentBlock->GdiSharedHandleTable; + GdiDevCaps = &GdiSharedHandleTable->DevCaps; CurrentProcessId = NtCurrentTeb()->Cid.UniqueProcess; GDI_BatchLimit = (DWORD) NtCurrentTeb()->ProcessEnvironmentBlock->GdiDCAttributeList; } diff --git a/reactos/dll/win32/gdi32/misc/gdientry.c b/reactos/dll/win32/gdi32/misc/gdientry.c index a9e7c0acbba..227b73f2eb2 100644 --- a/reactos/dll/win32/gdi32/misc/gdientry.c +++ b/reactos/dll/win32/gdi32/misc/gdientry.c @@ -406,7 +406,6 @@ DdGetScanLine(LPDDHAL_GETSCANLINEDATA pGetScanLine) } /* PRIVATE FUNCTIONS *********************************************************/ -static ULONG RemberDdQueryDisplaySettingsUniquenessID = 0; BOOL WINAPI @@ -987,8 +986,7 @@ ULONG STDCALL DdQueryDisplaySettingsUniqueness() { - /* FIXME share memory */ - return RemberDdQueryDisplaySettingsUniquenessID; + return GdiSharedHandleTable->flDeviceUniq; } /* diff --git a/reactos/dll/win32/gdi32/misc/misc.c b/reactos/dll/win32/gdi32/misc/misc.c index c8dde9bd1a3..814ecd7ff28 100644 --- a/reactos/dll/win32/gdi32/misc/misc.c +++ b/reactos/dll/win32/gdi32/misc/misc.c @@ -29,6 +29,7 @@ #include "precomp.h" PGDI_TABLE_ENTRY GdiHandleTable = NULL; +PGDI_SHARED_HANDLE_TABLE GdiSharedHandleTable = NULL; HANDLE CurrentProcessId = NULL; DWORD GDI_BatchLimit = 1;