1//+------------------------------------------------------------------------- 2// 3// Microsoft Windows 4// Copyright (C) Microsoft Corporation, 1992-2000. 5// 6// File: dimm.idl 7// 8// Contents: ActiveIMM interface definitions 9// 10// 11//-------------------------------------------------------------------------- 12 13cpp_quote("//=--------------------------------------------------------------------------=") 14cpp_quote("// dimm.h") 15cpp_quote("//=--------------------------------------------------------------------------=") 16cpp_quote("// (C) Copyright 1995-1998 Microsoft Corporation. All Rights Reserved.") 17cpp_quote("//") 18cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF") 19cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO") 20cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A") 21cpp_quote("// PARTICULAR PURPOSE.") 22cpp_quote("//=--------------------------------------------------------------------------=") 23cpp_quote("") 24cpp_quote("#pragma comment(lib,\"uuid.lib\")") 25cpp_quote("") 26cpp_quote("//--------------------------------------------------------------------------") 27cpp_quote("// IActiveIMM Interfaces.") 28cpp_quote("") 29 30/* 31Disable a warning about lack of polymorphic type support for the following reasons 32- the only reason to have library block in the file is to make midl accept coclass 33 statement and generate CLSID for CActiveIMM. 34- the generated dimm_i.c has the clsid and that file is used to have clsid available 35- the dimm.tlb is not used at all 36- on top of it, there is no plans to port the app using dimm.idl to 64b platform. 37*/ 38/* 39 * midl_pragma is unsupported in midl version 3.01 shipped with VC5.0. 40 * It is supported in midl version 5.01 shipped with VC6.0 41 * I could not produce message 2395. Is this needed? W.Briscoe 2001-08-14 42 */ 43#if (__midl >= 501) 44midl_pragma warning( disable: 2395) // polymorphic types not supported in the TLB 45#endif 46 47#ifndef DO_NO_IMPORTS 48import "unknwn.idl"; 49#endif 50 51[ 52 uuid(4955DD30-B159-11d0-8FCF-00AA006BCC59), 53 helpstring("ActiveIMM"), 54 lcid(0x0000), 55 version(0.1) 56] 57library ActiveIMM 58{ 59 importlib("stdole2.tlb"); 60 61 cpp_quote("#include <imm.h>") 62 63 cpp_quote("#if 0") 64 65 typedef WORD LANGID; 66 67 typedef struct 68 { 69 LPSTR lpReading; 70 LPSTR lpWord; 71 } REGISTERWORDA; 72 73 typedef struct 74 { 75 LPWSTR lpReading; 76 LPWSTR lpWord; 77 } REGISTERWORDW; 78 79 #define LF_FACESIZE 32 80 81 typedef struct 82 { 83 LONG lfHeight; 84 LONG lfWidth; 85 LONG lfEscapement; 86 LONG lfOrientation; 87 LONG lfWeight; 88 BYTE lfItalic; 89 BYTE lfUnderline; 90 BYTE lfStrikeOut; 91 BYTE lfCharSet; 92 BYTE lfOutPrecision; 93 BYTE lfClipPrecision; 94 BYTE lfQuality; 95 BYTE lfPitchAndFamily; 96 CHAR lfFaceName[LF_FACESIZE]; 97 } LOGFONTA; 98 99 typedef struct 100 { 101 LONG lfHeight; 102 LONG lfWidth; 103 LONG lfEscapement; 104 LONG lfOrientation; 105 LONG lfWeight; 106 BYTE lfItalic; 107 BYTE lfUnderline; 108 BYTE lfStrikeOut; 109 BYTE lfCharSet; 110 BYTE lfOutPrecision; 111 BYTE lfClipPrecision; 112 BYTE lfQuality; 113 BYTE lfPitchAndFamily; 114 WCHAR lfFaceName[LF_FACESIZE]; 115 } LOGFONTW; 116 117 typedef DWORD HIMC; 118 typedef DWORD HIMCC; 119 120 typedef struct 121 { 122 DWORD dwIndex; 123 DWORD dwStyle; 124 POINT ptCurrentPos; 125 RECT rcArea; 126 } CANDIDATEFORM; 127 128 typedef struct 129 { 130 DWORD dwStyle; 131 POINT ptCurrentPos; 132 RECT rcArea; 133 } COMPOSITIONFORM; 134 135 typedef struct 136 { 137 DWORD dwSize; 138 DWORD dwStyle; 139 DWORD dwCount; 140 DWORD dwSelection; 141 DWORD dwPageStart; 142 DWORD dwPageSize; 143 DWORD dwOffset[1]; 144 } CANDIDATELIST; 145 146 #define STYLE_DESCRIPTION_SIZE 32 147 148 typedef struct 149 { 150 DWORD dwStyle; 151 CHAR szDescription[STYLE_DESCRIPTION_SIZE]; 152 } STYLEBUFA; 153 154 typedef struct 155 { 156 DWORD dwStyle; 157 WCHAR szDescription[STYLE_DESCRIPTION_SIZE]; 158 } STYLEBUFW; 159 160 typedef WORD ATOM; 161 162 cpp_quote("#endif") 163 164 cpp_quote("#if (WINVER < 0x040A)") 165 166 #define IMEMENUITEM_STRING_SIZE 80 167 168 typedef struct 169 { 170 UINT cbSize; 171 UINT fType; 172 UINT fState; 173 UINT wID; 174 HBITMAP hbmpChecked; 175 HBITMAP hbmpUnchecked; 176 DWORD dwItemData; 177 CHAR szString[IMEMENUITEM_STRING_SIZE]; 178 HBITMAP hbmpItem; 179 } IMEMENUITEMINFOA; 180 181 typedef struct 182 { 183 UINT cbSize; 184 UINT fType; 185 UINT fState; 186 UINT wID; 187 HBITMAP hbmpChecked; 188 HBITMAP hbmpUnchecked; 189 DWORD dwItemData; 190 WCHAR szString[IMEMENUITEM_STRING_SIZE]; 191 HBITMAP hbmpItem; 192 } IMEMENUITEMINFOW; 193 194 cpp_quote("#endif") 195 196 cpp_quote("#ifndef _DDKIMM_H_") 197 198 typedef struct 199 { 200 HWND hWnd; 201 BOOL fOpen; 202 POINT ptStatusWndPos; 203 POINT ptSoftKbdPos; 204 DWORD fdwConversion; 205 DWORD fdwSentence; 206 union 207 { 208 LOGFONTA A; 209 LOGFONTW W; 210 } lfFont; 211 COMPOSITIONFORM cfCompForm; 212 CANDIDATEFORM cfCandForm[4]; 213 HIMCC hCompStr; 214 HIMCC hCandInfo; 215 HIMCC hGuideLine; 216 HIMCC hPrivate; 217 DWORD dwNumMsgBuf; 218 HIMCC hMsgBuf; 219 DWORD fdwInit; 220 DWORD dwReserve[3]; 221 } INPUTCONTEXT; 222 223 typedef struct 224 { 225 DWORD dwPrivateDataSize; 226 DWORD fdwProperty; 227 DWORD fdwConversionCaps; 228 DWORD fdwSentenceCaps; 229 DWORD fdwUICaps; 230 DWORD fdwSCSCaps; 231 DWORD fdwSelectCaps; 232 } IMEINFO; 233 234 cpp_quote("#endif") 235 236 [ 237 object, 238 uuid(08C03412-F96B-11d0-A475-00AA006BCC59), 239 pointer_default(unique) 240 ] 241 interface IEnumRegisterWordA : IUnknown 242 { 243 HRESULT Clone([out] IEnumRegisterWordA **ppEnum); 244 HRESULT Next([in] ULONG ulCount, [out] REGISTERWORDA *rgRegisterWord, [out] ULONG *pcFetched); 245 HRESULT Reset(); 246 HRESULT Skip([in] ULONG ulCount); 247 }; 248 249 [ 250 object, 251 uuid(4955DD31-B159-11d0-8FCF-00AA006BCC59), 252 pointer_default(unique) 253 ] 254 interface IEnumRegisterWordW : IUnknown 255 { 256 HRESULT Clone([out] IEnumRegisterWordW **ppEnum); 257 HRESULT Next([in] ULONG ulCount, [out] REGISTERWORDW *rgRegisterWord, [out] ULONG *pcFetched); 258 HRESULT Reset(); 259 HRESULT Skip([in] ULONG ulCount); 260 }; 261 262 263 [ 264 object, 265 uuid(09b5eab0-f997-11d1-93d4-0060b067b86e), 266 pointer_default(unique) 267 ] 268 interface IEnumInputContext : IUnknown 269 { 270 HRESULT Clone([out] IEnumInputContext **ppEnum); 271 HRESULT Next([in] ULONG ulCount, [out] HIMC *rgInputContext, [out] ULONG *pcFetched); 272 HRESULT Reset(); 273 HRESULT Skip([in] ULONG ulCount); 274 }; 275 276 277 [ 278 object, 279 uuid(b3458082-bd00-11d1-939b-0060b067b86e), 280 pointer_default(unique) 281 ] 282 interface IActiveIMMRegistrar : IUnknown 283 { 284 HRESULT RegisterIME([in] REFCLSID rclsid, [in] LANGID lgid, [in] LPCWSTR pszIconFile, [in] LPCWSTR pszDesc); 285 HRESULT UnregisterIME([in] REFCLSID rclsid); 286 }; 287 288 [ 289 object, 290 uuid(b5cf2cfa-8aeb-11d1-9364-0060b067b86e), 291 pointer_default(unique) 292 ] 293 interface IActiveIMMMessagePumpOwner : IUnknown 294 { 295 HRESULT Start(); 296 HRESULT End(); 297 HRESULT OnTranslateMessage([in] const MSG *pMsg); 298 HRESULT Pause([out] DWORD *pdwCookie); 299 HRESULT Resume([in] DWORD dwCookie); 300 } 301 302 [ 303 object, 304 uuid(08c0e040-62d1-11d1-9326-0060b067b86e), 305 pointer_default(unique) 306 ] 307 interface IActiveIMMApp : IUnknown 308 { 309 HRESULT AssociateContext([in] HWND hWnd, [in] HIMC hIME, [out] HIMC *phPrev); 310 HRESULT ConfigureIMEA([in] HKL hKL, [in] HWND hWnd, [in] DWORD dwMode, [in] REGISTERWORDA *pData); 311 HRESULT ConfigureIMEW([in] HKL hKL, [in] HWND hWnd, [in] DWORD dwMode, [in] REGISTERWORDW *pData); 312 HRESULT CreateContext([out] HIMC *phIMC); 313 HRESULT DestroyContext([in] HIMC hIME); 314 HRESULT EnumRegisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szRegister, [in] LPVOID pData, [out] IEnumRegisterWordA **pEnum); 315 HRESULT EnumRegisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szRegister, [in] LPVOID pData, [out] IEnumRegisterWordW **pEnum); 316 HRESULT EscapeA([in] HKL hKL, [in] HIMC hIMC, [in] UINT uEscape, [in, out] LPVOID pData, [out] LRESULT *plResult); 317 HRESULT EscapeW([in] HKL hKL, [in] HIMC hIMC, [in] UINT uEscape, [in, out] LPVOID pData, [out] LRESULT *plResult); 318 HRESULT GetCandidateListA([in] HIMC hIMC, [in] DWORD dwIndex, [in] UINT uBufLen, [out] CANDIDATELIST *pCandList, [out] UINT *puCopied); 319 HRESULT GetCandidateListW([in] HIMC hIMC, [in] DWORD dwIndex, [in] UINT uBufLen, [out] CANDIDATELIST *pCandList, [out] UINT *puCopied); 320 HRESULT GetCandidateListCountA([in] HIMC hIMC, [out] DWORD *pdwListSize, [out] DWORD *pdwBufLen); 321 HRESULT GetCandidateListCountW([in] HIMC hIMC, [out] DWORD *pdwListSize, [out] DWORD *pdwBufLen); 322 HRESULT GetCandidateWindow([in] HIMC hIMC, [in] DWORD dwIndex, [out] CANDIDATEFORM *pCandidate); 323 HRESULT GetCompositionFontA([in] HIMC hIMC, [out] LOGFONTA *plf); 324 HRESULT GetCompositionFontW([in] HIMC hIMC, [out] LOGFONTW *plf); 325 HRESULT GetCompositionStringA([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LONG *plCopied, [out] LPVOID pBuf); 326 HRESULT GetCompositionStringW([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LONG *plCopied, [out] LPVOID pBuf); 327 HRESULT GetCompositionWindow([in] HIMC hIMC, [out] COMPOSITIONFORM *pCompForm); 328 HRESULT GetContext([in] HWND hWnd, [out] HIMC *phIMC); 329 HRESULT GetConversionListA([in] HKL hKL, [in] HIMC hIMC, [in] LPSTR pSrc, [in] UINT uBufLen, [in] UINT uFlag, [out] CANDIDATELIST *pDst, [out] UINT *puCopied); 330 HRESULT GetConversionListW([in] HKL hKL, [in] HIMC hIMC, [in] LPWSTR pSrc, [in] UINT uBufLen, [in] UINT uFlag, [out] CANDIDATELIST *pDst, [out] UINT *puCopied); 331 HRESULT GetConversionStatus([in] HIMC hIMC, [out] DWORD *pfdwConversion, [out] DWORD *pfdwSentence); 332 HRESULT GetDefaultIMEWnd([in] HWND hWnd, [out] HWND *phDefWnd); 333 HRESULT GetDescriptionA([in] HKL hKL, [in] UINT uBufLen, [out] LPSTR szDescription, [out] UINT *puCopied); 334 HRESULT GetDescriptionW([in] HKL hKL, [in] UINT uBufLen, [out] LPWSTR szDescription, [out] UINT *puCopied); 335 HRESULT GetGuideLineA([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LPSTR pBuf, [out] DWORD *pdwResult); 336 HRESULT GetGuideLineW([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LPWSTR pBuf, [out] DWORD *pdwResult); 337 HRESULT GetIMEFileNameA([in] HKL hKL, [in] UINT uBufLen, [out] LPSTR szFileName, [out] UINT *puCopied); 338 HRESULT GetIMEFileNameW([in] HKL hKL, [in] UINT uBufLen, [out] LPWSTR szFileName, [out] UINT *puCopied); 339 HRESULT GetOpenStatus([in] HIMC hIMC); 340 HRESULT GetProperty([in] HKL hKL, [in] DWORD fdwIndex, [out] DWORD *pdwProperty); 341 HRESULT GetRegisterWordStyleA([in] HKL hKL, [in] UINT nItem, [out] STYLEBUFA *pStyleBuf, [out] UINT *puCopied); 342 HRESULT GetRegisterWordStyleW([in] HKL hKL, [in] UINT nItem, [out] STYLEBUFW *pStyleBuf, [out] UINT *puCopied); 343 HRESULT GetStatusWindowPos([in] HIMC hIMC, [out] POINT *pptPos); 344 HRESULT GetVirtualKey([in] HWND hWnd, [out] UINT *puVirtualKey); 345 HRESULT InstallIMEA([in] LPSTR szIMEFileName, [in] LPSTR szLayoutText, [out] HKL *phKL); 346 HRESULT InstallIMEW([in] LPWSTR szIMEFileName, [in] LPWSTR szLayoutText, [out] HKL *phKL); 347 HRESULT IsIME([in] HKL hKL); 348 HRESULT IsUIMessageA([in] HWND hWndIME, [in] UINT msg, [in] WPARAM wParam, [in] LPARAM lParam); 349 HRESULT IsUIMessageW([in] HWND hWndIME, [in] UINT msg, [in] WPARAM wParam, [in] LPARAM lParam); 350 HRESULT NotifyIME([in] HIMC hIMC, [in] DWORD dwAction, [in] DWORD dwIndex, [in] DWORD dwValue); 351 HRESULT RegisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szRegister); 352 HRESULT RegisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szRegister); 353 HRESULT ReleaseContext([in] HWND hWnd, [in] HIMC hIMC); 354 HRESULT SetCandidateWindow([in] HIMC hIMC, [in] CANDIDATEFORM *pCandidate); 355 HRESULT SetCompositionFontA([in] HIMC hIMC, [in] LOGFONTA *plf); 356 HRESULT SetCompositionFontW([in] HIMC hIMC, [in] LOGFONTW *plf); 357 HRESULT SetCompositionStringA([in] HIMC hIMC, [in] DWORD dwIndex, [in] LPVOID pComp, [in] DWORD dwCompLen, [in] LPVOID pRead, [in] DWORD dwReadLen); 358 HRESULT SetCompositionStringW([in] HIMC hIMC, [in] DWORD dwIndex, [in] LPVOID pComp, [in] DWORD dwCompLen, [in] LPVOID pRead, [in] DWORD dwReadLen); 359 HRESULT SetCompositionWindow([in] HIMC hIMC, [in] COMPOSITIONFORM *pCompForm); 360 HRESULT SetConversionStatus([in] HIMC hIMC, [in] DWORD fdwConversion, [in] DWORD fdwSentence); 361 HRESULT SetOpenStatus([in] HIMC hIMC, [in] BOOL fOpen); 362 HRESULT SetStatusWindowPos([in] HIMC hIMC, [in] POINT *pptPos); 363 HRESULT SimulateHotKey([in] HWND hWnd, [in] DWORD dwHotKeyID); 364 HRESULT UnregisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szUnregister); 365 HRESULT UnregisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szUnregister); 366 367 HRESULT Activate([in] BOOL fRestoreLayout); 368 HRESULT Deactivate(); 369 370 HRESULT OnDefWindowProc([in] HWND hWnd, [in] UINT Msg, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); 371 372 HRESULT FilterClientWindows([in] ATOM *aaClassList, [in] UINT uSize); 373 374 HRESULT GetCodePageA([in] HKL hKL, [out] UINT *uCodePage); 375 HRESULT GetLangId([in] HKL hKL, [out] LANGID *plid); 376 377 // win98/nt5 apis 378 HRESULT AssociateContextEx([in] HWND hWnd, [in] HIMC hIMC, [in] DWORD dwFlags); 379 HRESULT DisableIME([in] DWORD idThread); 380 HRESULT GetImeMenuItemsA([in] HIMC hIMC, [in] DWORD dwFlags, [in] DWORD dwType, [in] IMEMENUITEMINFOA *pImeParentMenu, [out] IMEMENUITEMINFOA *pImeMenu, [in] DWORD dwSize, [out] DWORD *pdwResult); 381 HRESULT GetImeMenuItemsW([in] HIMC hIMC, [in] DWORD dwFlags, [in] DWORD dwType, [in] IMEMENUITEMINFOW *pImeParentMenu, [out] IMEMENUITEMINFOW *pImeMenu, [in] DWORD dwSize, [out] DWORD *pdwResult); 382 HRESULT EnumInputContext([in] DWORD idThread, [out] IEnumInputContext **ppEnum); 383 }; 384 385 [ 386 object, 387 uuid(08C03411-F96B-11d0-A475-00AA006BCC59), 388 pointer_default(unique) 389 ] 390 interface IActiveIMMIME : IUnknown 391 { 392 HRESULT AssociateContext([in] HWND hWnd, [in] HIMC hIME, [out] HIMC *phPrev); 393 HRESULT ConfigureIMEA([in] HKL hKL, [in] HWND hWnd, [in] DWORD dwMode, [in] REGISTERWORDA *pData); 394 HRESULT ConfigureIMEW([in] HKL hKL, [in] HWND hWnd, [in] DWORD dwMode, [in] REGISTERWORDW *pData); 395 HRESULT CreateContext([out] HIMC *phIMC); 396 HRESULT DestroyContext([in] HIMC hIME); 397 HRESULT EnumRegisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szRegister, [in] LPVOID pData, [out] IEnumRegisterWordA **pEnum); 398 HRESULT EnumRegisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szRegister, [in] LPVOID pData, [out] IEnumRegisterWordW **pEnum); 399 HRESULT EscapeA([in] HKL hKL, [in] HIMC hIMC, [in] UINT uEscape, [in, out] LPVOID pData, [out] LRESULT *plResult); 400 HRESULT EscapeW([in] HKL hKL, [in] HIMC hIMC, [in] UINT uEscape, [in, out] LPVOID pData, [out] LRESULT *plResult); 401 HRESULT GetCandidateListA([in] HIMC hIMC, [in] DWORD dwIndex, [in] UINT uBufLen, [out] CANDIDATELIST *pCandList, [out] UINT *puCopied); 402 HRESULT GetCandidateListW([in] HIMC hIMC, [in] DWORD dwIndex, [in] UINT uBufLen, [out] CANDIDATELIST *pCandList, [out] UINT *puCopied); 403 HRESULT GetCandidateListCountA([in] HIMC hIMC, [out] DWORD *pdwListSize, [out] DWORD *pdwBufLen); 404 HRESULT GetCandidateListCountW([in] HIMC hIMC, [out] DWORD *pdwListSize, [out] DWORD *pdwBufLen); 405 HRESULT GetCandidateWindow([in] HIMC hIMC, [in] DWORD dwIndex, [out] CANDIDATEFORM *pCandidate); 406 HRESULT GetCompositionFontA([in] HIMC hIMC, [out] LOGFONTA *plf); 407 HRESULT GetCompositionFontW([in] HIMC hIMC, [out] LOGFONTW *plf); 408 HRESULT GetCompositionStringA([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LONG *plCopied, [out] LPVOID pBuf); 409 HRESULT GetCompositionStringW([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LONG *plCopied, [out] LPVOID pBuf); 410 HRESULT GetCompositionWindow([in] HIMC hIMC, [out] COMPOSITIONFORM *pCompForm); 411 HRESULT GetContext([in] HWND hWnd, [out] HIMC *phIMC); 412 HRESULT GetConversionListA([in] HKL hKL, [in] HIMC hIMC, [in] LPSTR pSrc, [in] UINT uBufLen, [in] UINT uFlag, [out] CANDIDATELIST *pDst, [out] UINT *puCopied); 413 HRESULT GetConversionListW([in] HKL hKL, [in] HIMC hIMC, [in] LPWSTR pSrc, [in] UINT uBufLen, [in] UINT uFlag, [out] CANDIDATELIST *pDst, [out] UINT *puCopied); 414 HRESULT GetConversionStatus([in] HIMC hIMC, [out] DWORD *pfdwConversion, [out] DWORD *pfdwSentence); 415 HRESULT GetDefaultIMEWnd([in] HWND hWnd, [out] HWND *phDefWnd); 416 HRESULT GetDescriptionA([in] HKL hKL, [in] UINT uBufLen, [out] LPSTR szDescription, [out] UINT *puCopied); 417 HRESULT GetDescriptionW([in] HKL hKL, [in] UINT uBufLen, [out] LPWSTR szDescription, [out] UINT *puCopied); 418 HRESULT GetGuideLineA([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LPSTR pBuf, [out] DWORD *pdwResult); 419 HRESULT GetGuideLineW([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LPWSTR pBuf, [out] DWORD *pdwResult); 420 HRESULT GetIMEFileNameA([in] HKL hKL, [in] UINT uBufLen, [out] LPSTR szFileName, [out] UINT *puCopied); 421 HRESULT GetIMEFileNameW([in] HKL hKL, [in] UINT uBufLen, [out] LPWSTR szFileName, [out] UINT *puCopied); 422 HRESULT GetOpenStatus([in] HIMC hIMC); 423 HRESULT GetProperty([in] HKL hKL, [in] DWORD fdwIndex, [out] DWORD *pdwProperty); 424 HRESULT GetRegisterWordStyleA([in] HKL hKL, [in] UINT nItem, [out] STYLEBUFA *pStyleBuf, [out] UINT *puCopied); 425 HRESULT GetRegisterWordStyleW([in] HKL hKL, [in] UINT nItem, [out] STYLEBUFW *pStyleBuf, [out] UINT *puCopied); 426 HRESULT GetStatusWindowPos([in] HIMC hIMC, [out] POINT *pptPos); 427 HRESULT GetVirtualKey([in] HWND hWnd, [out] UINT *puVirtualKey); 428 HRESULT InstallIMEA([in] LPSTR szIMEFileName, [in] LPSTR szLayoutText, [out] HKL *phKL); 429 HRESULT InstallIMEW([in] LPWSTR szIMEFileName, [in] LPWSTR szLayoutText, [out] HKL *phKL); 430 HRESULT IsIME([in] HKL hKL); 431 HRESULT IsUIMessageA([in] HWND hWndIME, [in] UINT msg, [in] WPARAM wParam, [in] LPARAM lParam); 432 HRESULT IsUIMessageW([in] HWND hWndIME, [in] UINT msg, [in] WPARAM wParam, [in] LPARAM lParam); 433 HRESULT NotifyIME([in] HIMC hIMC, [in] DWORD dwAction, [in] DWORD dwIndex, [in] DWORD dwValue); 434 HRESULT RegisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szRegister); 435 HRESULT RegisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szRegister); 436 HRESULT ReleaseContext([in] HWND hWnd, [in] HIMC hIMC); 437 HRESULT SetCandidateWindow([in] HIMC hIMC, [in] CANDIDATEFORM *pCandidate); 438 HRESULT SetCompositionFontA([in] HIMC hIMC, [in] LOGFONTA *plf); 439 HRESULT SetCompositionFontW([in] HIMC hIMC, [in] LOGFONTW *plf); 440 HRESULT SetCompositionStringA([in] HIMC hIMC, [in] DWORD dwIndex, [in] LPVOID pComp, [in] DWORD dwCompLen, [in] LPVOID pRead, [in] DWORD dwReadLen); 441 HRESULT SetCompositionStringW([in] HIMC hIMC, [in] DWORD dwIndex, [in] LPVOID pComp, [in] DWORD dwCompLen, [in] LPVOID pRead, [in] DWORD dwReadLen); 442 HRESULT SetCompositionWindow([in] HIMC hIMC, [in] COMPOSITIONFORM *pCompForm); 443 HRESULT SetConversionStatus([in] HIMC hIMC, [in] DWORD fdwConversion, [in] DWORD fdwSentence); 444 HRESULT SetOpenStatus([in] HIMC hIMC, [in] BOOL fOpen); 445 HRESULT SetStatusWindowPos([in] HIMC hIMC, [in] POINT *pptPos); 446 HRESULT SimulateHotKey([in] HWND hWnd, [in] DWORD dwHotKeyID); 447 HRESULT UnregisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szUnregister); 448 HRESULT UnregisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szUnregister); 449 450 // ime helper methods 451 HRESULT GenerateMessage([in] HIMC hIMC); 452 453 // HIMC and HIMCC management api's 454 HRESULT LockIMC([in] HIMC hIMC, [out] INPUTCONTEXT **ppIMC); 455 HRESULT UnlockIMC([in] HIMC hIMC); 456 HRESULT GetIMCLockCount([in] HIMC hIMC, [out] DWORD *pdwLockCount); 457 HRESULT CreateIMCC([in] DWORD dwSize, [out] HIMCC *phIMCC); 458 HRESULT DestroyIMCC([in] HIMCC hIMCC); 459 HRESULT LockIMCC([in] HIMCC hIMCC, [out] void **ppv); 460 HRESULT UnlockIMCC([in] HIMCC hIMCC); 461 HRESULT ReSizeIMCC([in] HIMCC hIMCC, [in] DWORD dwSize, [out] HIMCC *phIMCC); 462 HRESULT GetIMCCSize([in] HIMCC hIMCC, [out] DWORD *pdwSize); 463 HRESULT GetIMCCLockCount([in] HIMCC hIMCC, [out] DWORD *pdwLockCount); 464 465 // hot key manipulation api's 466 HRESULT GetHotKey([in] DWORD dwHotKeyID, [out] UINT *puModifiers, [out] UINT *puVKey, [out] HKL *phKL); 467 HRESULT SetHotKey([in] DWORD dwHotKeyID, [in] UINT uModifiers, [in] UINT uVKey, [in] HKL hKL); 468 469 // soft keyboard api's 470 HRESULT CreateSoftKeyboard([in] UINT uType, [in] HWND hOwner, [in] int x, [in] int y, [out] HWND *phSoftKbdWnd); 471 HRESULT DestroySoftKeyboard([in] HWND hSoftKbdWnd); 472 HRESULT ShowSoftKeyboard([in] HWND hSoftKbdWnd, [in] int nCmdShow); 473 474 HRESULT GetCodePageA([in] HKL hKL, [out] UINT *uCodePage); 475 HRESULT GetLangId([in] HKL hKL, [out] LANGID *plid); 476 477 HRESULT KeybdEvent([in] LANGID lgidIME, [in] BYTE bVk, [in] BYTE bScan, [in] DWORD dwFlags, [in] DWORD dwExtraInfo); 478 479 HRESULT LockModal(); 480 HRESULT UnlockModal(); 481 482 // win98/nt5 apis 483 HRESULT AssociateContextEx([in] HWND hWnd, [in] HIMC hIMC, [in] DWORD dwFlags); 484 HRESULT DisableIME([in] DWORD idThread); 485 HRESULT GetImeMenuItemsA([in] HIMC hIMC, [in] DWORD dwFlags, [in] DWORD dwType, [in] IMEMENUITEMINFOA *pImeParentMenu, [out] IMEMENUITEMINFOA *pImeMenu, [in] DWORD dwSize, [out] DWORD *pdwResult); 486 HRESULT GetImeMenuItemsW([in] HIMC hIMC, [in] DWORD dwFlags, [in] DWORD dwType, [in] IMEMENUITEMINFOW *pImeParentMenu, [out] IMEMENUITEMINFOW *pImeMenu, [in] DWORD dwSize, [out] DWORD *pdwResult); 487 HRESULT EnumInputContext([in] DWORD idThread, [out] IEnumInputContext **ppEnum); 488 HRESULT RequestMessageA([in] HIMC hIMC, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); 489 HRESULT RequestMessageW([in] HIMC hIMC, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); 490 491 HRESULT SendIMCA([in] HWND hWnd, [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); 492 HRESULT SendIMCW([in] HWND hWnd, [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); 493 494 HRESULT IsSleeping(); 495 }; 496 497 [ 498 object, 499 uuid(6FE20962-D077-11d0-8FE7-00AA006BCC59), 500 pointer_default(unique) 501 ] 502 interface IActiveIME : IUnknown 503 { 504 HRESULT Inquire([in] DWORD dwSystemInfoFlags, [out] IMEINFO *pIMEInfo, [out] LPWSTR szWndClass, [out] DWORD *pdwPrivate); 505 HRESULT ConversionList([in] HIMC hIMC, [in] LPWSTR szSource, [in] UINT uFlag, [in] UINT uBufLen, [out] CANDIDATELIST *pDest, [out] UINT *puCopied); 506 HRESULT Configure([in] HKL hKL, [in] HWND hWnd, [in] DWORD dwMode, [in] REGISTERWORDW *pRegisterWord); 507 HRESULT Destroy([in] UINT uReserved); 508 HRESULT Escape([in] HIMC hIMC, [in] UINT uEscape, [in, out] void *pData, [out] LRESULT *plResult); 509 HRESULT SetActiveContext([in] HIMC hIMC, [in] BOOL fFlag); 510 HRESULT ProcessKey([in] HIMC hIMC, [in] UINT uVirKey, [in] DWORD lParam, [in] BYTE *pbKeyState); 511 HRESULT Notify([in] HIMC hIMC, [in] DWORD dwAction, [in] DWORD dwIndex, [in] DWORD dwValue); 512 HRESULT Select([in] HIMC hIMC, [in] BOOL fSelect); 513 HRESULT SetCompositionString([in] HIMC hIMC, [in] DWORD dwIndex, [in] void *pComp, [in] DWORD dwCompLen, [in] void *pRead, [in] DWORD dwReadLen); 514 HRESULT ToAsciiEx([in] UINT uVirKey, [in] UINT uScanCode, [in] BYTE *pbKeyState, [in] UINT fuState, [in] HIMC hIMC, [out] DWORD *pdwTransBuf, [out] UINT *puSize); 515 HRESULT RegisterWord([in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szString); 516 HRESULT UnregisterWord([in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szString); 517 HRESULT GetRegisterWordStyle([in] UINT nItem, [out] STYLEBUFW *pStyleBuf, [out] UINT *puBufSize); 518 HRESULT EnumRegisterWord([in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szRegister, [in] LPVOID pData, [out] IEnumRegisterWordW **ppEnum); 519 HRESULT GetCodePageA([out] UINT *uCodePage); 520 HRESULT GetLangId([out] LANGID *plid); 521 }; 522 523 [ 524 object, 525 uuid(e1c4bf0e-2d53-11d2-93e1-0060b067b86e), 526 pointer_default(unique) 527 ] 528 interface IActiveIME2 : IActiveIME 529 { 530 HRESULT Sleep(); 531 HRESULT Unsleep([in] BOOL fDead); 532 }; 533 534 [ 535 uuid(4955DD33-B159-11d0-8FCF-00AA006BCC59), 536 ] 537 coclass CActiveIMM 538 { 539 [default] interface IActiveIMMApp; 540 interface IActiveIMMIME; 541 interface IActiveIMMRegistrar; 542 interface IActiveIMMMessagePumpOwner; 543 }; 544} 545