mirror of
https://github.com/reactos/reactos.git
synced 2025-02-25 01:39:30 +00:00
52 lines
929 B
C
52 lines
929 B
C
#include "gdi32api.h"
|
|
|
|
HINSTANCE g_hInstance;
|
|
PGDI_TABLE_ENTRY GdiHandleTable;
|
|
|
|
BOOL
|
|
IsFunctionPresent(LPWSTR lpszFunction)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
static
|
|
PGDI_TABLE_ENTRY
|
|
MyGdiQueryTable()
|
|
{
|
|
PTEB pTeb = NtCurrentTeb();
|
|
PPEB pPeb = pTeb->ProcessEnvironmentBlock;
|
|
return pPeb->GdiSharedHandleTable;
|
|
}
|
|
|
|
BOOL
|
|
IsHandleValid(HGDIOBJ hobj)
|
|
{
|
|
USHORT Index = (ULONG_PTR)hobj;
|
|
PGDI_TABLE_ENTRY pentry = &GdiHandleTable[Index];
|
|
|
|
if (pentry->KernelData == NULL ||
|
|
pentry->KernelData < (PVOID)0x80000000 ||
|
|
(USHORT)pentry->FullUnique != (USHORT)((ULONG_PTR)hobj >> 16))
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
int APIENTRY
|
|
WinMain(HINSTANCE hInstance,
|
|
HINSTANCE hPrevInstance,
|
|
LPSTR lpCmdLine,
|
|
int nCmdShow)
|
|
{
|
|
g_hInstance = hInstance;
|
|
|
|
GdiHandleTable = MyGdiQueryTable();
|
|
if(!GdiHandleTable)
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
return TestMain(L"gdi32api", L"gdi32.dll");
|
|
}
|