VOID FASTCALL GetConnected(VOID) { USERCONNECT UserCon; // ERR("GetConnected\n"); if ((PTHREADINFO)NtCurrentTeb()->Win32ThreadInfo == NULL) NtUserGetThreadState(THREADSTATE_GETTHREADINFO); if (gpsi && g_ppi) return; // FIXME HAX: Due to the "Dll Initialization Bug" we have to call this too. GdiDllInitialize(NULL, DLL_PROCESS_ATTACH, NULL); NtUserProcessConnect( NtCurrentProcess(), &UserCon, sizeof(USERCONNECT)); g_ppi = GetWin32ClientInfo()->ppi; g_ulSharedDelta = UserCon.siClient.ulSharedDelta; gpsi = SharedPtrToUser(UserCon.siClient.psi); gHandleTable = SharedPtrToUser(UserCon.siClient.aheList); gHandleEntries = SharedPtrToUser(gHandleTable->handles); }
/* * @implemented */ HWND WINAPI GetActiveWindow(VOID) { return (HWND)NtUserGetThreadState(THREADSTATE_ACTIVEWINDOW); }