Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

immuser.h

Go to the documentation of this file.
00001 /****************************** Module Header ******************************\ 00002 * Module Name: immuser.h 00003 * 00004 * Copyright (c) 1985 - 1999, Microsoft Corporation 00005 * 00006 * This header file contains the internal IMM structure definitions for 00007 * the user mode USER32/IMM32. 00008 * 00009 * History: 00010 * 25-Mar-1996 TakaoK Split from immstruc.h 00011 \***************************************************************************/ 00012 #ifndef _IMMUSER_ 00013 #define _IMMUSER_ 00014 00015 #include <imm.h> 00016 #include <immp.h> 00017 #include <ime.h> 00018 #include <imep.h> 00019 00020 /* 00021 * Client side input context structure. 00022 */ 00023 typedef struct tagCLIENTIMC { 00024 HANDLE hInputContext; 00025 LONG cLockObj; 00026 DWORD dwFlags; 00027 DWORD dwImeCompatFlags; // win95 compatible application compat flags 00028 RTL_CRITICAL_SECTION cs; 00029 DWORD dwCodePage; 00030 } CLIENTIMC, *PCLIENTIMC; 00031 00032 #define InitImcCrit(pClientImc) RtlInitializeCriticalSection(&pClientImc->cs) 00033 #define DeleteImcCrit(pClientImc) RtlDeleteCriticalSection(&pClientImc->cs) 00034 #define EnterImcCrit(pClientImc) RtlEnterCriticalSection(&pClientImc->cs) 00035 #define LeaveImcCrit(pClientImc) RtlLeaveCriticalSection(&pClientImc->cs) 00036 00037 /* 00038 * IME Dispatch Processing Interface 00039 */ 00040 typedef BOOL (CALLBACK* PFNINQUIREA)(LPIMEINFO, LPSTR, DWORD); 00041 typedef BOOL (CALLBACK* PFNINQUIREW)(LPIMEINFO, LPWSTR, DWORD); 00042 typedef DWORD (CALLBACK* PFNCONVLISTA)(HIMC, LPCSTR, LPCANDIDATELIST, DWORD, UINT); 00043 typedef DWORD (CALLBACK* PFNCONVLISTW)(HIMC, LPCWSTR, LPCANDIDATELIST, DWORD, UINT); 00044 typedef BOOL (CALLBACK* PFNREGWORDA)(LPCSTR, DWORD, LPCSTR); 00045 typedef BOOL (CALLBACK* PFNREGWORDW)(LPCWSTR, DWORD, LPCWSTR); 00046 typedef BOOL (CALLBACK* PFNUNREGWORDA)(LPCSTR, DWORD, LPCSTR); 00047 typedef BOOL (CALLBACK* PFNUNREGWORDW)(LPCWSTR, DWORD, LPCWSTR); 00048 typedef UINT (CALLBACK* PFNGETREGWORDSTYA)(UINT, LPSTYLEBUFA); 00049 typedef UINT (CALLBACK* PFNGETREGWORDSTYW)(UINT, LPSTYLEBUFW); 00050 typedef UINT (CALLBACK* PFNENUMREGWORDA)(REGISTERWORDENUMPROCA, LPCSTR, DWORD, LPCSTR, LPVOID); 00051 typedef UINT (CALLBACK* PFNENUMREGWORDW)(REGISTERWORDENUMPROCW, LPCWSTR, DWORD, LPCWSTR, LPVOID); 00052 typedef BOOL (CALLBACK* PFNCONFIGURE)(HKL, HWND, DWORD, LPVOID); 00053 typedef BOOL (CALLBACK* PFNDESTROY)(UINT); 00054 typedef LRESULT (CALLBACK* PFNESCAPE)(HIMC, UINT, LPVOID); 00055 typedef BOOL (CALLBACK* PFNPROCESSKEY)(HIMC, UINT, LPARAM, CONST LPBYTE); 00056 typedef BOOL (CALLBACK* PFNSELECT)(HIMC, BOOL); 00057 typedef BOOL (CALLBACK* PFNSETACTIVEC)(HIMC, BOOL); 00058 typedef UINT (CALLBACK* PFNTOASCEX)(UINT, UINT, CONST LPBYTE, PTRANSMSGLIST, UINT, HIMC); 00059 typedef BOOL (CALLBACK* PFNNOTIFY)(HIMC, DWORD, DWORD, DWORD); 00060 typedef BOOL (CALLBACK* PFNSETCOMPSTR)(HIMC, DWORD, LPCVOID, DWORD, LPCVOID, DWORD); 00061 typedef DWORD (CALLBACK* PFNGETIMEMENUITEMS)(HIMC, DWORD, DWORD, LPVOID, LPVOID, DWORD); 00062 00063 #define IMEDPI_UNLOADED 1 00064 #define IMEDPI_UNLOCKUNLOAD 2 00065 00066 typedef struct tagIMEDPI { 00067 struct tagIMEDPI *pNext; 00068 HANDLE hInst; 00069 HKL hKL; 00070 IMEINFO ImeInfo; 00071 DWORD dwCodePage; 00072 WCHAR wszUIClass[IM_UI_CLASS_SIZE]; 00073 DWORD cLock; 00074 DWORD dwFlag; 00075 00076 struct _tagImeFunctions { 00077 union {PFNINQUIREA a; PFNINQUIREW w; PVOID t;} ImeInquire; 00078 union {PFNCONVLISTA a; PFNCONVLISTW w; PVOID t;} ImeConversionList; 00079 union {PFNREGWORDA a; PFNREGWORDW w; PVOID t;} ImeRegisterWord; 00080 union {PFNUNREGWORDA a; PFNUNREGWORDW w; PVOID t;} ImeUnregisterWord; 00081 union {PFNGETREGWORDSTYA a; PFNGETREGWORDSTYW w; PVOID t;} ImeGetRegisterWordStyle; 00082 union {PFNENUMREGWORDA a; PFNENUMREGWORDW w; PVOID t;} ImeEnumRegisterWord; 00083 PFNCONFIGURE ImeConfigure; 00084 PFNDESTROY ImeDestroy; 00085 PFNESCAPE ImeEscape; 00086 PFNPROCESSKEY ImeProcessKey; 00087 PFNSELECT ImeSelect; 00088 PFNSETACTIVEC ImeSetActiveContext; 00089 PFNTOASCEX ImeToAsciiEx; 00090 PFNNOTIFY NotifyIME; 00091 PFNSETCOMPSTR ImeSetCompositionString; 00092 PFNGETIMEMENUITEMS ImeGetImeMenuItems; 00093 } pfn; 00094 00095 } IMEDPI, *PIMEDPI; 00096 00097 /* 00098 * IME Mode Saver 00099 */ 00100 00101 typedef struct tagIMEPRIVATESAVER { 00102 struct tagIMEPRIVATESAVER* next; 00103 HKL hkl; 00104 DWORD fdwSentence; 00105 } IMEPRIVATEMODESAVER, *PIMEPRIVATEMODESAVER; 00106 00107 typedef struct tagIMEMODESAVER { 00108 struct tagIMEMODESAVER* next; 00109 USHORT langId; // Primary LangId 00110 BOOLEAN fOpen; 00111 DWORD fdwConversion; 00112 DWORD fdwSentence; 00113 DWORD fdwInit; 00114 PIMEPRIVATEMODESAVER pImePrivateModeSaver; 00115 } IMEMODESAVER, *PIMEMODESAVER; 00116 00117 00118 /* 00119 * Private client side routines in IMM32.DLL. 00120 */ 00121 BOOL ImmSetActiveContext( 00122 HWND hWnd, 00123 HIMC hImc, 00124 BOOL fActivate); 00125 00126 BOOL WINAPI ImmLoadIME( 00127 HKL hKL); 00128 00129 BOOL WINAPI ImmUnloadIME( 00130 HKL hKL); 00131 00132 BOOL WINAPI ImmFreeLayout( 00133 DWORD dwFlag); 00134 00135 BOOL WINAPI ImmActivateLayout( 00136 HKL hSelKL); 00137 00138 BOOL WINAPI ImmLoadLayout( 00139 HKL hKL, 00140 PIMEINFOEX piiex); 00141 00142 BOOL WINAPI ImmDisableIme( 00143 DWORD dwThreadId); 00144 00145 PCLIENTIMC WINAPI ImmLockClientImc( 00146 HIMC hImc); 00147 00148 VOID WINAPI ImmUnlockClientImc( 00149 PCLIENTIMC pClientImc); 00150 00151 PIMEDPI WINAPI ImmLockImeDpi( 00152 HKL hKL); 00153 00154 VOID WINAPI ImmUnlockImeDpi( 00155 PIMEDPI pImeDpi); 00156 00157 BOOL WINAPI ImmGetImeInfoEx( 00158 PIMEINFOEX piiex, 00159 IMEINFOEXCLASS SearchType, 00160 PVOID pvSearchKey); 00161 00162 DWORD WINAPI ImmProcessKey( 00163 HWND hWnd, 00164 HKL hkl, 00165 UINT uVKey, 00166 LPARAM lParam, 00167 DWORD dwHotKeyID); 00168 00169 BOOL ImmTranslateMessage( 00170 HWND hwnd, 00171 UINT message, 00172 WPARAM wParam, 00173 LPARAM lParam); 00174 00175 VOID ImmInitializeHotKeys( BOOL bUserLoggedOn ); 00176 00177 #endif // _IMMUSER_

Generated on Sat May 15 19:40:21 2004 for test by doxygen 1.3.7