- 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
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;
//