mirror of
https://github.com/reactos/reactos.git
synced 2025-04-26 00:20:34 +00:00
- More implement User32InitializeImmEntryTable
svn path=/trunk/; revision=39163
This commit is contained in:
parent
5e4a5d2b4b
commit
156ea61f0f
1 changed files with 83 additions and 10 deletions
|
@ -18,7 +18,21 @@ WINE_DEFAULT_DEBUG_CHANNEL(user32);
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
BOOL (WINAPI* pImmIsIME) (HKL);
|
BOOL (WINAPI* pImmIsIME) (HKL);
|
||||||
|
LRESULT (WINAPI* pImmEscapeA) (HKL, HIMC, UINT, LPVOID);
|
||||||
|
LRESULT (WINAPI* pImmEscapeW) (HKL, HIMC, UINT, LPVOID);
|
||||||
|
LONG (WINAPI* pImmGetCompositionStringA) (HIMC, DWORD, LPVOID, DWORD);
|
||||||
|
LONG (WINAPI* pImmGetCompositionStringW) (HIMC, DWORD, LPVOID, DWORD);
|
||||||
|
BOOL (WINAPI* pImmGetCompositionFontA) (HIMC, LPLOGFONTA);
|
||||||
|
BOOL (WINAPI* pImmGetCompositionFontW) (HIMC, LPLOGFONTW);
|
||||||
|
BOOL (WINAPI* pImmSetCompositionFontA)(HIMC, LPLOGFONTA);
|
||||||
|
BOOL (WINAPI* pImmSetCompositionFontW)(HIMC, LPLOGFONTW);
|
||||||
|
BOOL (WINAPI* pImmGetCompositionWindow) (HIMC, LPCOMPOSITIONFORM);
|
||||||
|
BOOL (WINAPI* pImmSetCompositionWindow) (HIMC, LPCOMPOSITIONFORM);
|
||||||
HIMC (WINAPI* pImmAssociateContext) (HWND, HIMC);
|
HIMC (WINAPI* pImmAssociateContext) (HWND, HIMC);
|
||||||
|
BOOL (WINAPI* pImmReleaseContext) (HWND, HIMC);
|
||||||
|
HIMC (WINAPI* pImmGetContext) (HWND);
|
||||||
|
HWND (WINAPI* pImmGetDefaultIMEWnd) (HWND);
|
||||||
|
BOOL (WINAPI* pImmNotifyIME) (HIMC, DWORD, DWORD, DWORD);
|
||||||
} Imm32ApiTable;
|
} Imm32ApiTable;
|
||||||
|
|
||||||
Imm32ApiTable *pImmApiTable = {0};
|
Imm32ApiTable *pImmApiTable = {0};
|
||||||
|
@ -34,16 +48,19 @@ static BOOL IsInitialized()
|
||||||
* This function should not be implemented, it is used,
|
* This function should not be implemented, it is used,
|
||||||
* if you can not load function from imm32.dll
|
* if you can not load function from imm32.dll
|
||||||
*/
|
*/
|
||||||
BOOL WINAPI IMM_ImmIsIME(HKL hKL)
|
BOOL WINAPI IMM_ImmIsIME(HKL hKL) { return 0; }
|
||||||
{
|
HIMC WINAPI IMM_ImmAssociateContext(HWND hwnd, HIMC himc) { return 0; }
|
||||||
return 0;
|
BOOL WINAPI IMM_ImmReleaseContext(HWND hwnd, HIMC himc) { return 0; }
|
||||||
}
|
LRESULT WINAPI IMM_ImmEscapeAW(HKL hkl, HIMC himc, UINT uint, LPVOID lpvoid) { return 0; }
|
||||||
|
LONG WINAPI IMM_ImmGetCompositionStringAW(HIMC himc, DWORD dword1, LPVOID lpvoid, DWORD dword2) { return 0; }
|
||||||
/* See comment for IMM_ImmIsIME */
|
BOOL WINAPI IMM_ImmGetCompositionFontA(HIMC himc, LPLOGFONTA lplf) { return 0; }
|
||||||
HIMC WINAPI IMM_ImmAssociateContext(HWND hwnd, HIMC himc)
|
BOOL WINAPI IMM_ImmGetCompositionFontW(HIMC himc, LPLOGFONTW lplf) { return 0; }
|
||||||
{
|
BOOL WINAPI IMM_ImmSetCompositionFontA(HIMC himc, LPLOGFONTA lplf) { return 0; }
|
||||||
return 0;
|
BOOL WINAPI IMM_ImmSetCompositionFontW(HIMC himc, LPLOGFONTW lplf) { return 0; }
|
||||||
}
|
BOOL WINAPI IMM_ImmSetGetCompositionWindow(HIMC himc, LPCOMPOSITIONFORM lpcf) { return 0; }
|
||||||
|
HIMC WINAPI IMM_ImmGetContext(HWND hwnd) { return 0; }
|
||||||
|
HWND WINAPI IMM_ImmGetDefaultIMEWnd(HWND hwnd) { return 0; }
|
||||||
|
BOOL WINAPI IMM_ImmNotifyIME(HIMC himc, DWORD dword1, DWORD dword2, DWORD dword3) { return 0; }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
|
@ -68,10 +85,66 @@ BOOL WINAPI User32InitializeImmEntryTable(DWORD dwUnknown)
|
||||||
if (!pImmApiTable->pImmIsIME)
|
if (!pImmApiTable->pImmIsIME)
|
||||||
pImmApiTable->pImmIsIME = IMM_ImmIsIME;
|
pImmApiTable->pImmIsIME = IMM_ImmIsIME;
|
||||||
|
|
||||||
|
pImmApiTable->pImmEscapeA = (LRESULT (WINAPI*)(HKL, HIMC, UINT, LPVOID)) GetProcAddress(hImmInstance, "ImmEscapeA");
|
||||||
|
if (!pImmApiTable->pImmEscapeA)
|
||||||
|
pImmApiTable->pImmEscapeA = IMM_ImmEscapeAW;
|
||||||
|
|
||||||
|
pImmApiTable->pImmEscapeW = (LRESULT (WINAPI*)(HKL, HIMC, UINT, LPVOID)) GetProcAddress(hImmInstance, "ImmEscapeW");
|
||||||
|
if (!pImmApiTable->pImmEscapeW)
|
||||||
|
pImmApiTable->pImmEscapeW = IMM_ImmEscapeAW;
|
||||||
|
|
||||||
|
pImmApiTable->pImmGetCompositionStringA = (LONG (WINAPI*)(HIMC, DWORD, LPVOID, DWORD)) GetProcAddress(hImmInstance, "ImmGetCompositionStringA");
|
||||||
|
if (!pImmApiTable->pImmGetCompositionStringA)
|
||||||
|
pImmApiTable->pImmGetCompositionStringA = IMM_ImmGetCompositionStringAW;
|
||||||
|
|
||||||
|
pImmApiTable->pImmGetCompositionStringW = (LONG (WINAPI*)(HIMC, DWORD, LPVOID, DWORD)) GetProcAddress(hImmInstance, "ImmGetCompositionStringW");
|
||||||
|
if (!pImmApiTable->pImmGetCompositionStringW)
|
||||||
|
pImmApiTable->pImmGetCompositionStringW = IMM_ImmGetCompositionStringAW;
|
||||||
|
|
||||||
|
pImmApiTable->pImmGetCompositionFontA = (BOOL (WINAPI*)(HIMC, LPLOGFONTA)) GetProcAddress(hImmInstance, "ImmGetCompositionFontA");
|
||||||
|
if (!pImmApiTable->pImmGetCompositionFontA)
|
||||||
|
pImmApiTable->pImmGetCompositionFontA = IMM_ImmGetCompositionFontA;
|
||||||
|
|
||||||
|
pImmApiTable->pImmGetCompositionFontW = (BOOL (WINAPI*)(HIMC, LPLOGFONTW)) GetProcAddress(hImmInstance, "ImmGetCompositionFontW");
|
||||||
|
if (!pImmApiTable->pImmGetCompositionFontW)
|
||||||
|
pImmApiTable->pImmGetCompositionFontW = IMM_ImmGetCompositionFontW;
|
||||||
|
|
||||||
|
pImmApiTable->pImmSetCompositionFontA = (BOOL (WINAPI*)(HIMC, LPLOGFONTA)) GetProcAddress(hImmInstance, "ImmSetCompositionFontA");
|
||||||
|
if (!pImmApiTable->pImmSetCompositionFontA)
|
||||||
|
pImmApiTable->pImmSetCompositionFontA = IMM_ImmSetCompositionFontA;
|
||||||
|
|
||||||
|
pImmApiTable->pImmSetCompositionFontW = (BOOL (WINAPI*)(HIMC, LPLOGFONTW)) GetProcAddress(hImmInstance, "ImmSetCompositionFontW");
|
||||||
|
if (!pImmApiTable->pImmSetCompositionFontW)
|
||||||
|
pImmApiTable->pImmSetCompositionFontW = IMM_ImmSetCompositionFontW;
|
||||||
|
|
||||||
|
pImmApiTable->pImmGetCompositionWindow = (BOOL (WINAPI*)(HIMC, LPCOMPOSITIONFORM)) GetProcAddress(hImmInstance, "ImmGetCompositionWindow");
|
||||||
|
if (!pImmApiTable->pImmGetCompositionWindow)
|
||||||
|
pImmApiTable->pImmGetCompositionWindow = IMM_ImmSetGetCompositionWindow;
|
||||||
|
|
||||||
|
pImmApiTable->pImmSetCompositionWindow = (BOOL (WINAPI*)(HIMC, LPCOMPOSITIONFORM)) GetProcAddress(hImmInstance, "ImmSetCompositionWindow");
|
||||||
|
if (!pImmApiTable->pImmSetCompositionWindow)
|
||||||
|
pImmApiTable->pImmSetCompositionWindow = IMM_ImmSetGetCompositionWindow;
|
||||||
|
|
||||||
pImmApiTable->pImmAssociateContext = (HIMC (WINAPI*)(HWND, HIMC)) GetProcAddress(hImmInstance, "ImmAssociateContext");
|
pImmApiTable->pImmAssociateContext = (HIMC (WINAPI*)(HWND, HIMC)) GetProcAddress(hImmInstance, "ImmAssociateContext");
|
||||||
if (!pImmApiTable->pImmAssociateContext)
|
if (!pImmApiTable->pImmAssociateContext)
|
||||||
pImmApiTable->pImmAssociateContext = IMM_ImmAssociateContext;
|
pImmApiTable->pImmAssociateContext = IMM_ImmAssociateContext;
|
||||||
|
|
||||||
|
pImmApiTable->pImmReleaseContext = (BOOL (WINAPI*)(HWND, HIMC)) GetProcAddress(hImmInstance, "ImmReleaseContext");
|
||||||
|
if (!pImmApiTable->pImmReleaseContext)
|
||||||
|
pImmApiTable->pImmReleaseContext = IMM_ImmReleaseContext;
|
||||||
|
|
||||||
|
pImmApiTable->pImmGetContext = (HIMC (WINAPI*)(HWND)) GetProcAddress(hImmInstance, "ImmGetContext");
|
||||||
|
if (!pImmApiTable->pImmGetContext)
|
||||||
|
pImmApiTable->pImmGetContext = IMM_ImmGetContext;
|
||||||
|
|
||||||
|
pImmApiTable->pImmGetDefaultIMEWnd = (HWND (WINAPI*)(HWND)) GetProcAddress(hImmInstance, "ImmGetDefaultIMEWnd");
|
||||||
|
if (!pImmApiTable->pImmGetDefaultIMEWnd)
|
||||||
|
pImmApiTable->pImmGetDefaultIMEWnd = IMM_ImmGetDefaultIMEWnd;
|
||||||
|
|
||||||
|
pImmApiTable->pImmNotifyIME = (BOOL (WINAPI*)(HIMC, DWORD, DWORD, DWORD)) GetProcAddress(hImmInstance, "ImmNotifyIME");
|
||||||
|
if (!pImmApiTable->pImmNotifyIME)
|
||||||
|
pImmApiTable->pImmNotifyIME = IMM_ImmNotifyIME;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO: Load more functions from imm32.dll
|
* TODO: Load more functions from imm32.dll
|
||||||
* Function like IMPSetIMEW, IMPQueryIMEW etc. call functions
|
* Function like IMPSetIMEW, IMPQueryIMEW etc. call functions
|
||||||
|
|
Loading…
Reference in a new issue