- GDI_TABLE_ENTRY ProcessId is a dword or int not a short.
- Notice also the pid for f5e, it's set GDI_OBJ_HMGR_NONE with pUser 0. Our DCE code handling pUser is right with that respect.
- Tested wine gdi32: dc gdiobj and user32: dce, all result same as before.

 object list for DC type objects owned by ALL PIDs
   I,   handle,   Lock, sCount,  pid,       pv,     objt, unique,  Flags,    pUser,    Tlock
--------------------------------------------------------------------------------------------
 f4c, ca010f4c,      0,      0,  d60, e2ebc2a0,       DC,   ca01,      0, 00f80570, 00f80570
 f5e, 60010f5e,      0,      0, 80000012, e28ce008,       DC,   6001,      4, 00000000, 00000000
 f9d, b4010f9d,      0,      0,  d60, e2ee6008,       DC,   b401,      0, 00350000, 00350000


svn path=/trunk/; revision=33605
This commit is contained in:
James Tabor 2008-05-20 02:54:33 +00:00
parent 7e73882c3e
commit 1879a9fa70

View file

@ -200,16 +200,15 @@
typedef struct _GDI_TABLE_ENTRY
{
PVOID KernelData; /* Points to the kernel mode structure */
SHORT ProcessId; /* process id that created the object, 0 for stock objects */
SHORT nCount; /* usage count of object handles */
DWORD ProcessId; /* process id that created the object, 0 for stock objects */
union{ // temp union structure.
LONG Type; /* the first 16 bit is the object type including the stock obj flag, the last 16 bits is just the object type */
struct{
SHORT FullUnique;
CHAR ObjectType;
CHAR Flags;
SHORT FullUnique; // unique
CHAR ObjectType; // objt
CHAR Flags; // Flags
};};
PVOID UserData; /* Points to the user mode structure, usually NULL though */
PVOID UserData; /* pUser Points to the user mode structure, usually NULL though */
} GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY;
//