imm32: Unregister IME class on process detach.

This commit is contained in:
Aric Stewart 2012-10-11 07:46:45 -05:00 committed by Alexandre Julliard
parent db07083e4c
commit 59c144f197
1 changed files with 3 additions and 2 deletions

View File

@ -110,6 +110,8 @@ static const WCHAR szImeFileW[] = {'I','m','e',' ','F','i','l','e',0};
static const WCHAR szLayoutTextW[] = {'L','a','y','o','u','t',' ','T','e','x','t',0}; static const WCHAR szLayoutTextW[] = {'L','a','y','o','u','t',' ','T','e','x','t',0};
static const WCHAR szImeRegFmt[] = {'S','y','s','t','e','m','\\','C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\','C','o','n','t','r','o','l','\\','K','e','y','b','o','a','r','d',' ','L','a','y','o','u','t','s','\\','%','0','8','l','x',0}; static const WCHAR szImeRegFmt[] = {'S','y','s','t','e','m','\\','C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\','C','o','n','t','r','o','l','\\','K','e','y','b','o','a','r','d',' ','L','a','y','o','u','t','s','\\','%','0','8','l','x',0};
static const WCHAR szwIME[] = {'I','M','E',0};
static LRESULT WINAPI DefIME_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, static LRESULT WINAPI DefIME_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,
LPARAM lParam); LPARAM lParam);
@ -378,7 +380,6 @@ static void IMM_RegisterMessages(void)
static void IMM_RegisterIMEClass(void) static void IMM_RegisterIMEClass(void)
{ {
static const WCHAR szwIME[] = {'I','M','E',0};
WNDCLASSW wndClass; WNDCLASSW wndClass;
ZeroMemory(&wndClass, sizeof(WNDCLASSW)); ZeroMemory(&wndClass, sizeof(WNDCLASSW));
@ -413,6 +414,7 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpReserved)
IMM_FreeThreadData(); IMM_FreeThreadData();
IMM_FreeAllImmHkl(); IMM_FreeAllImmHkl();
TlsFree(tlsIndex); TlsFree(tlsIndex);
UnregisterClassW(szwIME, NULL);
break; break;
} }
return TRUE; return TRUE;
@ -1507,7 +1509,6 @@ BOOL WINAPI ImmGetConversionStatus(
*/ */
HWND WINAPI ImmGetDefaultIMEWnd(HWND hWnd) HWND WINAPI ImmGetDefaultIMEWnd(HWND hWnd)
{ {
static const WCHAR szwIME[] = {'I','M','E',0};
if (IMM_GetThreadData()->hwndDefault == NULL) if (IMM_GetThreadData()->hwndDefault == NULL)
IMM_GetThreadData()->hwndDefault = CreateWindowExW( WS_EX_TOOLWINDOW, IMM_GetThreadData()->hwndDefault = CreateWindowExW( WS_EX_TOOLWINDOW,
szwIME, NULL, WS_POPUP, 0, 0, 1, 1, 0, 0, 0, 0); szwIME, NULL, WS_POPUP, 0, 0, 1, 1, 0, 0, 0, 0);