The thread and process IDs are passed as DWORD to functions like OpenThread or from GetCurrentThreadID. I don't have a clue why they declare it as a HANDLE, that's why I added a comment in the struct.