Commit 6d28f302 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

gdi32: Support StockFlag in GDI_HANDLE_ENTRY.

parent 6b22f2bd
......@@ -613,6 +613,16 @@ static void set_gdi_shared(void)
NtCurrentTeb()->Peb->GdiSharedHandleTable = &gdi_shared;
}
static HGDIOBJ make_stock_object( HGDIOBJ obj )
{
GDI_HANDLE_ENTRY *entry;
if (!(entry = handle_entry( obj ))) return 0;
entry_obj( entry )->system = TRUE;
entry->StockFlag = 1;
return entry_to_handle( entry );
}
/***********************************************************************
* DllMain
*
......@@ -668,8 +678,8 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved )
/* clear the NOSYSTEM bit on all stock objects*/
for (i = 0; i < NB_STOCK_OBJECTS; i++)
{
if (stock_objects[i]) __wine_make_gdi_object_system( stock_objects[i], TRUE );
if (scaled_stock_objects[i]) __wine_make_gdi_object_system( scaled_stock_objects[i], TRUE );
stock_objects[i] = make_stock_object( stock_objects[i] );
scaled_stock_objects[i] = make_stock_object( scaled_stock_objects[i] );
}
return TRUE;
}
......
......@@ -396,7 +396,6 @@ static void test_shared_handle_entry( HGDIOBJ obj, unsigned int type, BOOL is_st
todo_wine
ok(entry->ExtType == NTGDI_OBJ_DC, "ExtType = %x, expected NTGDI_OBJ_DC\n", entry->ExtType);
}
todo_wine_if(is_stock)
ok(entry->StockFlag == is_stock, "StockFlag = %x\n", entry->StockFlag);
ok(entry->Type == (type & 0x1f), "Type = %x, expected %x\n", entry->Type, type & 0x1f);
ok(entry->Object, "Object = NULL\n");
......
......@@ -69,6 +69,7 @@ typedef struct _GDI_HANDLE_ENTRY
#define NTGDI_HANDLE_TYPE_SHIFT 16
#define NTGDI_HANDLE_TYPE_MASK 0x007f0000
#define NTGDI_HANDLE_STOCK_OBJECT 0x00800000
typedef struct _GDI_SHARED_MEMORY
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment