BOOL WINAPI RegisterIMEClass(VOID) { WNDCLASSEXW WndClass; ATOM atom; ZeroMemory(&WndClass, sizeof(WndClass)); WndClass.cbSize = sizeof(WndClass); WndClass.lpszClassName = imeW; WndClass.style = CS_GLOBALCLASS; WndClass.lpfnWndProc = ImeWndProcW; WndClass.cbWndExtra = sizeof(LONG_PTR); WndClass.hCursor = LoadCursorW(NULL, IDC_ARROW); atom = RegisterClassExWOWW( &WndClass, 0, FNID_IME, 0, FALSE); if (atom) { RegisterDefaultClasses |= ICLASS_TO_MASK(ICLS_IME); TRACE("Register IME Class!\n"); return TRUE; } ERR("Failed to register IME Class!\n"); return FALSE; }
BOOL WINAPI RegisterSystemControls(VOID) { WNDCLASSEXW WndClass; UINT i; ATOM atom; if (RegisterDefaultClasses) return TRUE; ZeroMemory(&WndClass, sizeof(WndClass)); WndClass.cbSize = sizeof(WndClass); for (i = 0; i != sizeof(g_SysClasses) / sizeof(g_SysClasses[0]); i++) { WndClass.lpszClassName = g_SysClasses[i].desc->name; // Set Global bit! WndClass.style = g_SysClasses[i].desc->style|CS_GLOBALCLASS; WndClass.lpfnWndProc = g_SysClasses[i].desc->procW; WndClass.cbWndExtra = g_SysClasses[i].desc->extra; WndClass.hCursor = LoadCursorW(NULL, g_SysClasses[i].desc->cursor); WndClass.hbrBackground= g_SysClasses[i].desc->brush; atom = RegisterClassExWOWW( &WndClass, 0, g_SysClasses[i].fnid, 0, FALSE); if (atom) RegisterDefaultClasses |= ICLASS_TO_MASK(g_SysClasses[i].ClsId); } return TRUE; }
BOOL WINAPI RegisterSystemControls(VOID) { WNDCLASSEXW WndClass; UINT i; ATOM atom; if (RegisterDefaultClasses) return TRUE; ZeroMemory(&WndClass, sizeof(WndClass)); WndClass.cbSize = sizeof(WndClass); for (i = 0; i != sizeof(g_SysClasses) / sizeof(g_SysClasses[0]); i++) { WndClass.lpszClassName = g_SysClasses[i].desc->name; // Set Global bit! WndClass.style = g_SysClasses[i].desc->style|CS_GLOBALCLASS; WndClass.lpfnWndProc = g_SysClasses[i].desc->procW; WndClass.cbWndExtra = g_SysClasses[i].desc->extra; WndClass.hCursor = LoadCursorW(NULL, g_SysClasses[i].desc->cursor); WndClass.hbrBackground= g_SysClasses[i].desc->brush; atom = RegisterClassExWOWW( &WndClass, 0, g_SysClasses[i].fnid, 0, FALSE); if (atom) RegisterDefaultClasses |= ICLASS_TO_MASK(g_SysClasses[i].ClsId); } if ( //gpsi->dwSRVIFlags & SRVINFO_IMM32 && Not supported yet, need NlsMbCodePageTag working in Win32k. !(RegisterDefaultClasses & ICLASS_TO_MASK(ICLS_IME))) // So, work like XP. { RegisterIMEClass(); } return TRUE; }