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

immstruc.h

Go to the documentation of this file.
00001 /****************************** Module Header ******************************\ 00002 * Module Name: immstruc.h 00003 * 00004 * Copyright (c) 1985 - 1999, Microsoft Corporation 00005 * 00006 * This header file contains the internal IMM structure definitions 00007 * 00008 * used by both Client and Kernel 00009 * 00010 * History: 00011 * 28-Dec-1995 WKwok Created. 00012 \***************************************************************************/ 00013 00014 #ifndef _IMMSTRUC_ 00015 #define _IMMSTRUC_ 00016 00017 #include <imm.h> 00018 #include <immp.h> 00019 #include <ime.h> 00020 #include <imep.h> 00021 //#include "winnls32.h" 00022 //#include "winnls3p.h" 00023 00024 00025 #define NULL_HIMC (HIMC) 0 00026 #define INVALID_HIMC (HIMC) -1 00027 #define NULL_HIMCC (HIMCC) 0 00028 #define INVALID_HIMCC (HIMCC)-1 00029 00030 /* 00031 * dwFlags for tagIMC. 00032 */ 00033 #define IMCF_UNICODE 0x0001 00034 #define IMCF_ACTIVE 0x0002 00035 #define IMCF_CHGMSG 0x0004 00036 #define IMCF_SAVECTRL 0x0008 00037 #define IMCF_PROCESSEVENT 0x0010 00038 #define IMCF_FIRSTSELECT 0x0020 00039 #define IMCF_INDESTROY 0x0040 00040 #define IMCF_WINNLSDISABLE 0x0080 00041 #define IMCF_DEFAULTIMC 0x0100 00042 00043 /* 00044 * dwFlag for ImmGetSaveContext(). 00045 */ 00046 #define IGSC_DEFIMCFALLBACK 0x0001 00047 #define IGSC_WINNLSCHECK 0x0002 00048 00049 /* 00050 * dwFlag for ImmFreeLayout(). 00051 */ 00052 #define IFL_DEACTIVATEIME 0x0001 00053 #define IFL_UNLOADIME 0x0002 00054 00055 #define IS_IME_KBDLAYOUT(hkl) ((HIWORD((ULONG_PTR)(hkl)) & 0xf000) == 0xe000) 00056 00057 /* 00058 * Load flag for loading IME.DLL 00059 */ 00060 #define IMEF_NONLOAD 0x0000 00061 #define IMEF_LOADERROR 0x0001 00062 #define IMEF_LOADED 0x0002 00063 00064 #define IM_DESC_SIZE 50 00065 #define IM_FILE_SIZE 80 00066 #define IM_OPTIONS_SIZE 30 00067 #define IM_UI_CLASS_SIZE 16 00068 #define IM_USRFONT_SIZE 80 00069 00070 00071 /* 00072 * hotkey related defines that are common both client and kernel side 00073 */ 00074 #define MOD_MODIFY_KEYS (MOD_ALT|MOD_CONTROL|MOD_SHIFT|MOD_WIN) 00075 #define MOD_BOTH_SIDES (MOD_LEFT|MOD_RIGHT) 00076 #define ISHK_REMOVE 1 00077 #define ISHK_ADD 2 00078 #define ISHK_INITIALIZE 3 00079 00080 typedef struct _tagIMEHOTKEY { 00081 DWORD dwHotKeyID; // hot key ID 00082 UINT uVKey; // hot key vkey 00083 UINT uModifiers; // combination keys with the vkey 00084 HKL hKL; // target keyboard layout (IME) 00085 } IMEHOTKEY; 00086 typedef IMEHOTKEY *PIMEHOTKEY; 00087 typedef IMEHOTKEY CONST *PCIMEHOTKEY; 00088 00089 00090 typedef struct _tagIMEHOTKEYOBJ { 00091 struct _tagIMEHOTKEYOBJ *pNext; 00092 IMEHOTKEY hk; 00093 } IMEHOTKEYOBJ, *PIMEHOTKEYOBJ; 00094 00095 00096 /* 00097 * Extended IME information. 00098 */ 00099 typedef struct tagIMEINFOEX { 00100 HKL hkl; 00101 IMEINFO ImeInfo; 00102 WCHAR wszUIClass[IM_UI_CLASS_SIZE]; 00103 DWORD fdwInitConvMode; // Check this later 00104 BOOL fInitOpen; // Check this later 00105 BOOL fLoadFlag; 00106 DWORD dwProdVersion; 00107 DWORD dwImeWinVersion; 00108 WCHAR wszImeDescription[IM_DESC_SIZE]; 00109 WCHAR wszImeFile[IM_FILE_SIZE]; 00110 } IMEINFOEX, *PIMEINFOEX; 00111 00112 #ifndef W32KAPI 00113 #define W32KAPI DECLSPEC_ADDRSAFE 00114 #endif 00115 00116 /* 00117 * IMM related kernel calls 00118 */ 00119 W32KAPI 00120 HIMC 00121 NtUserCreateInputContext( 00122 IN ULONG_PTR dwClientImcData); 00123 00124 W32KAPI 00125 BOOL 00126 NtUserDestroyInputContext( 00127 IN HIMC hImc); 00128 00129 typedef enum _AIC_STATUS { 00130 AIC_SUCCESS, 00131 AIC_FOCUSCONTEXTCHANGED, 00132 AIC_ERROR, 00133 } AIC_STATUS; 00134 00135 W32KAPI 00136 AIC_STATUS 00137 NtUserAssociateInputContext( 00138 IN HWND hwnd, 00139 IN HIMC hImc, 00140 IN DWORD dwFlag); 00141 00142 typedef enum _UPDATEINPUTCONTEXTCLASS { 00143 UpdateClientInputContext, 00144 UpdateInUseImeWindow, 00145 } UPDATEINPUTCONTEXTCLASS; 00146 00147 W32KAPI 00148 BOOL 00149 NtUserUpdateInputContext( 00150 IN HIMC hImc, 00151 IN UPDATEINPUTCONTEXTCLASS UpdateType, 00152 IN ULONG_PTR UpdateValue); 00153 00154 typedef enum _INPUTCONTEXTINFOCLASS { 00155 InputContextProcess, 00156 InputContextThread, 00157 InputContextDefaultImeWindow, 00158 InputContextDefaultInputContext, 00159 } INPUTCONTEXTINFOCLASS; 00160 00161 W32KAPI 00162 ULONG_PTR 00163 NtUserQueryInputContext( 00164 IN HIMC hImc, 00165 IN INPUTCONTEXTINFOCLASS InputContextInfo); 00166 00167 W32KAPI 00168 NTSTATUS 00169 NtUserBuildHimcList( 00170 IN DWORD idThread, 00171 IN UINT cHimcMax, 00172 OUT HIMC *phimcFirst, 00173 OUT PUINT pcHimcNeeded); 00174 00175 typedef enum _IMEINFOEXCLASS { 00176 ImeInfoExKeyboardLayout, 00177 ImeInfoExImeWindow, 00178 ImeInfoExImeFileName, 00179 } IMEINFOEXCLASS; 00180 00181 W32KAPI 00182 BOOL 00183 NtUserGetImeInfoEx( 00184 IN OUT PIMEINFOEX piiex, 00185 IN IMEINFOEXCLASS SearchType); 00186 00187 W32KAPI 00188 BOOL 00189 NtUserSetImeInfoEx( 00190 IN PIMEINFOEX piiex); 00191 00192 W32KAPI 00193 BOOL 00194 NtUserGetImeHotKey( 00195 IN DWORD dwID, 00196 OUT PUINT puModifiers, 00197 OUT PUINT puVKey, 00198 OUT HKL *phkl); 00199 00200 W32KAPI 00201 BOOL 00202 NtUserSetImeHotKey( 00203 IN DWORD dwID, 00204 IN UINT uModifiers, 00205 IN UINT uVKey, 00206 IN HKL hkl, 00207 IN DWORD dwAction); 00208 00209 W32KAPI 00210 DWORD 00211 NtUserCheckImeHotKey( 00212 IN UINT uVKey, 00213 IN LPARAM lParam); 00214 00215 W32KAPI 00216 BOOL 00217 NtUserSetAppImeLevel( 00218 IN HWND hWnd, 00219 IN DWORD dwLevel); 00220 00221 W32KAPI 00222 DWORD 00223 NtUserGetAppImeLevel( 00224 IN HWND hWnd ); 00225 00226 00227 W32KAPI 00228 BOOL 00229 NtUserSetImeOwnerWindow( 00230 IN HWND hwndIme, 00231 IN HWND hwndFocus); 00232 00233 W32KAPI 00234 VOID 00235 NtUserSetThreadLayoutHandles( 00236 IN HKL hklNew, 00237 IN HKL hklOld); 00238 00239 W32KAPI 00240 VOID 00241 NtUserNotifyIMEStatus( 00242 IN HWND hwnd, 00243 IN DWORD dwOpenStatus, 00244 IN DWORD dwConversion); 00245 00246 W32KAPI 00247 BOOL 00248 NtUserDisableThreadIme( 00249 IN DWORD dwThreadId); 00250 00251 #endif // _IMMSTRUC_

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