1/* 2 * Copyright 2008 Aric Stewart, CodeWeavers 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 19#ifndef DO_NO_IMPORTS 20import "oaidl.idl"; 21import "comcat.idl"; 22import "textstor.idl"; 23import "ctfutb.idl"; 24#endif 25 26cpp_quote("#define TF_E_STACKFULL MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0501)") 27cpp_quote("#define TF_E_DISCONNECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0504)") 28cpp_quote("#define TF_E_ALREADY_EXISTS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0506)") 29cpp_quote("#define TF_E_NOLOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)") 30 31cpp_quote("HRESULT WINAPI TF_CreateThreadMgr(ITfThreadMgr **pptim);") 32cpp_quote("HRESULT WINAPI TF_GetThreadMgr(ITfThreadMgr **pptim);") 33cpp_quote("HRESULT WINAPI TF_CreateInputProcessorProfiles(ITfInputProcessorProfiles **ppipr);") 34cpp_quote("HRESULT WINAPI TF_CreateLangBarMgr(ITfLangBarMgr **pppbm);") 35cpp_quote("HRESULT WINAPI TF_CreateLangBarItemMgr(ITfLangBarItemMgr **pplbim);") 36cpp_quote("HRESULT WINAPI TF_InvalidAssemblyListCacheIfExist(void);") 37 38cpp_quote("EXTERN_C const GUID GUID_PROP_TEXTOWNER;") 39cpp_quote("DEFINE_GUID(GUID_PROP_ATTRIBUTE,0x34b45670,0x7526,0x11d2,0xa1,0x47,0x00,0x10,0x5a,0x27,0x99,0xb5);") 40cpp_quote("EXTERN_C const GUID GUID_PROP_LANGID;") 41cpp_quote("EXTERN_C const GUID GUID_PROP_READING;") 42cpp_quote("EXTERN_C const GUID GUID_PROP_COMPOSING;") 43 44cpp_quote("EXTERN_C const CLSID CLSID_TF_ThreadMgr;") 45cpp_quote("EXTERN_C const CLSID CLSID_TF_InputProcessorProfiles;") 46cpp_quote("EXTERN_C const CLSID CLSID_TF_LangBarMgr;") 47cpp_quote("EXTERN_C const CLSID CLSID_TF_CategoryMgr;") 48cpp_quote("EXTERN_C const CLSID CLSID_TF_DisplayAttributeMgr;") 49 50/* GUIDs for Compartments */ 51cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_DISABLED;") 52cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_OPENCLOSE;") 53cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_HANDWRITING_OPENCLOSE;") 54cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_DISABLED;") 55cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_OPENCLOSE;") 56cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_GLOBALSTATE;") 57cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_PERSISTMENUENABLED;") 58cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_EMPTYCONTEXT;") 59cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_TIPUISTATUS;") 60 61/* GUIDs for Categories */ 62cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_KEYBOARD;") 63cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_SPEECH;") 64cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_HANDWRITING;") 65cpp_quote("EXTERN_C const GUID GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER;") 66 67typedef [uuid(7213778c-7bb0-4270-b050-6189ee594e97)] DWORD TfEditCookie; 68typedef [uuid(de403c21-89fd-4f85-8b87-64584d063fbc)] DWORD TfClientId; 69typedef [uuid(88a9c478-f3ec-4763-8345-cd9250443f8d)] DWORD TfGuidAtom; 70 71cpp_quote("#define TF_MOD_ALT 0x0001") 72cpp_quote("#define TF_MOD_CONTROL 0x0002") 73cpp_quote("#define TF_MOD_SHIFT 0x0004") 74cpp_quote("#define TF_MOD_RALT 0x0008") 75cpp_quote("#define TF_MOD_RCONTROL 0x0010") 76cpp_quote("#define TF_MOD_RSHIFT 0x0020") 77cpp_quote("#define TF_MOD_LALT 0x0040") 78cpp_quote("#define TF_MOD_LCONTROL 0x0080") 79cpp_quote("#define TF_MOD_LSHIFT 0x0100") 80cpp_quote("#define TF_MOD_ON_KEYUP 0x0200") 81cpp_quote("#define TF_MOD_IGNORE_ALL_MODIFIER 0x0400") 82 83cpp_quote("#define TF_PROFILETYPE_INPUTPROCESSOR 0x0001") 84cpp_quote("#define TF_PROFILETYPE_KEYBOARDLAYOUT 0x0002") 85 86cpp_quote("#define TF_IPSINK_FLAG_ACTIVE 0x0001") 87 88interface ITfDocumentMgr; 89interface ITfContext; 90interface IEnumTfDocumentMgrs; 91interface IEnumTfContexts; 92interface ITfCompartmentMgr; 93interface ITfEditSession; 94interface ITfRange; 95interface ITfProperty; 96interface ITfReadOnlyProperty; 97interface IEnumTfLanguageProfiles; 98interface ITfCompositionView; 99interface ITfKeyEventSink; 100interface ITfPersistentPropertyLoaderACP; 101interface ITfRangeACP; 102 103cpp_quote("#if 0") 104typedef [uuid(4f5d560f-5ab5-4dde-8c4d-404592857ab0)] UINT_PTR HKL; 105cpp_quote("#endif") 106 107typedef [uuid(e26d9e1d-691e-4f29-90d7-338dcf1f8cef)] struct TF_PERSISTENT_PROPERTY_HEADER_ACP 108{ 109 GUID guidType; 110 LONG ichStart; 111 LONG cch; 112 ULONG cb; 113 DWORD dwPrivate; 114 CLSID clsidTIP; 115} TF_PERSISTENT_PROPERTY_HEADER_ACP; 116 117typedef [uuid(e1b5808d-1e46-4c19-84dc-68c5f5978cc8)] struct TF_LANGUAGEPROFILE 118{ 119 CLSID clsid; 120 LANGID langid; 121 GUID catid; 122 BOOL fActive; 123 GUID guidProfile; 124} TF_LANGUAGEPROFILE; 125 126typedef [uuid(77c12f95-b783-450d-879f-1cd2362c6521)] struct TF_PRESERVEDKEY 127{ 128 UINT uVKey; 129 UINT uModifiers; 130} TF_PRESERVEDKEY; 131 132typedef [uuid(5a886226-ae9a-489b-b991-2b1e25ee59a9)] enum { TF_ANCHOR_START = 0, TF_ANCHOR_END = 1 } TfAnchor; 133 134[ 135 object, 136 uuid(101d6610-0990-11d3-8df0-00105a2799b5), 137 pointer_default(unique) 138] 139interface ITfFunctionProvider : IUnknown 140{ 141 HRESULT GetType( 142 [out] GUID *guid); 143 144 HRESULT GetDescription( 145 [out] BSTR *desc); 146 147 HRESULT GetFunction( 148 [in] REFGUID guid, 149 [in] REFIID riid, 150 [out, iid_is(riid)] IUnknown **func); 151} 152 153[ 154 object, 155 uuid(e4b24db0-0990-11d3-8df0-00105a2799b5), 156 pointer_default(unique) 157] 158interface IEnumTfFunctionProviders : IUnknown 159{ 160 HRESULT Clone( 161 [out] IEnumTfFunctionProviders **ret); 162 163 HRESULT Next( 164 [in] ULONG count, 165 [out, size_is(count), length_is(*fetched)] ITfFunctionProvider **prov, 166 [out] ULONG *fetched); 167 168 HRESULT Reset(); 169 170 HRESULT Skip( 171 [in] ULONG count); 172} 173 174[ 175 object, 176 uuid(aa80e801-2021-11d2-93e0-0060b067b86e), 177 pointer_default(unique) 178] 179interface ITfThreadMgr: IUnknown 180{ 181 HRESULT Activate( 182 [out] TfClientId *ptid); 183 184 HRESULT Deactivate(); 185 186 HRESULT CreateDocumentMgr( 187 [out] ITfDocumentMgr **ppdim); 188 189 HRESULT EnumDocumentMgrs( 190 [out] IEnumTfDocumentMgrs **ppEnum); 191 192 HRESULT GetFocus( 193 [out] ITfDocumentMgr **ppdimFocus); 194 195 HRESULT SetFocus( 196 [in] ITfDocumentMgr *pdimFocus); 197 198 HRESULT AssociateFocus( 199 [in] HWND hwnd, 200 [in, unique] ITfDocumentMgr *pdimNew, 201 [out] ITfDocumentMgr **ppdimPrev); 202 203 HRESULT IsThreadFocus( 204 [out] BOOL *pfThreadFocus); 205 206 HRESULT GetFunctionProvider( 207 [in] REFCLSID clsid, 208 [out] ITfFunctionProvider **ppFuncProv); 209 210 HRESULT EnumFunctionProviders( 211 [out] IEnumTfFunctionProviders **ppEnum); 212 213 HRESULT GetGlobalCompartment( 214 [out] ITfCompartmentMgr **ppCompMgr); 215} 216 217[ 218 object, 219 uuid(3e90ade3-7594-4cb0-bb58-69628f5f458c), 220 pointer_default(unique) 221] 222interface ITfThreadMgrEx : ITfThreadMgr 223{ 224 HRESULT ActivateEx( 225 [out] TfClientId *id, 226 [in] DWORD flags); 227 HRESULT GetActiveFlags( 228 [out] DWORD *flags); 229} 230 231[ 232 object, 233 uuid(d7540241-f9a1-4364-befc-dbcd2c4395b7), 234 pointer_default(unique) 235] 236interface ITfCompositionView : IUnknown 237{ 238 HRESULT GetOwnerClsid([out] CLSID *pclsid); 239 240 HRESULT GetRange([out] ITfRange **ppRange); 241} 242 243[ 244 object, 245 uuid(aa80e7f4-2021-11d2-93e0-0060b067b86e), 246 pointer_default(unique) 247] 248interface ITfDocumentMgr: IUnknown 249{ 250 HRESULT CreateContext( 251 [in] TfClientId tidOwner, 252 [in] DWORD dwFlags, 253 [in, unique] IUnknown *punk, 254 [out] ITfContext **ppic, 255 [out] TfEditCookie *pecTextStore); 256 257 HRESULT Push( 258 [in] ITfContext *pic); 259 260 const DWORD TF_POPF_ALL = 0x0001; 261 262 HRESULT Pop( 263 [in] DWORD dwFlags); 264 265 HRESULT GetTop( 266 [out] ITfContext **ppic); 267 268 HRESULT GetBase( 269 [out] ITfContext **ppic); 270 271 HRESULT EnumContexts( 272 [out] IEnumTfContexts **ppEnum); 273} 274 275[ 276 object, 277 uuid(2433bf8e-0f9b-435c-ba2c-180611978c30), 278 pointer_default(unique) 279] 280interface ITfContextView : IUnknown 281{ 282 HRESULT GetRangeFromPoint( 283 [in] TfEditCookie cookie, 284 [in] const POINT *pt, 285 [in] DWORD flags, 286 [out] ITfRange **range); 287 288 HRESULT GetTextExt( 289 [in] TfEditCookie cookie, 290 [in] ITfRange *range, 291 [out] RECT *rect, 292 [out] BOOL *clipped); 293 294 HRESULT GetScreenExt( 295 [out] RECT *rect); 296 297 HRESULT GetWnd( 298 [out] HWND *hwnd); 299} 300 301[ 302 object, 303 uuid(f0c0f8dd-cf38-44e1-bb0f-68cf0d551c78), 304 pointer_default(unique) 305] 306interface IEnumTfContextViews : IUnknown 307{ 308 HRESULT Clone( 309 [out] IEnumTfContextViews **ret); 310 311 HRESULT Next( 312 [in] ULONG count, 313 [out, size_is(count), length_is(*fetched)] ITfContextView **views, 314 [out] ULONG *fetched); 315 316 HRESULT Reset(); 317 318 HRESULT Skip( 319 [in] ULONG count); 320} 321 322[ 323 object, 324 uuid(19188cb0-aca9-11d2-afc5-00105a2799b5), 325 pointer_default(unique) 326] 327interface IEnumTfProperties : IUnknown 328{ 329 HRESULT Clone( 330 [out] IEnumTfProperties **ret); 331 332 HRESULT Next( 333 [in] ULONG count, 334 [out, size_is(count), length_is(*fetched)] ITfProperty **props, 335 [out] ULONG *fetched); 336 337 HRESULT Reset(); 338 339 HRESULT Skip( 340 [in] ULONG count); 341} 342 343[ 344 object, 345 uuid(463a506d-6992-49d2-9b88-93d55e70bb16), 346 pointer_default(unique) 347] 348interface ITfRangeBackup : IUnknown 349{ 350 HRESULT Restore( 351 [in] TfEditCookie cookie, 352 [in] ITfRange *range); 353} 354 355[ 356 object, 357 uuid(aa80e901-2021-11d2-93e0-0060b067b86e), 358 pointer_default(unique) 359] 360interface ITextStoreACPServices : IUnknown 361{ 362 HRESULT Serialize( 363 [in] ITfProperty *prop, 364 [in] ITfRange *range, 365 [out] TF_PERSISTENT_PROPERTY_HEADER_ACP *header, 366 [in] IStream *stream); 367 368 HRESULT Unserialize( 369 [in] ITfProperty *prop, 370 [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *header, 371 [in] IStream *stream, 372 [in] ITfPersistentPropertyLoaderACP *loader); 373 374 HRESULT ForceLoadProperty( 375 [in] ITfProperty *prop); 376 377 HRESULT CreateRange( 378 [in] LONG start, 379 [in] LONG end, 380 [out] ITfRangeACP **range); 381} 382 383[ 384 object, 385 uuid(aa80e7fd-2021-11d2-93e0-0060b067b86e), 386 pointer_default(unique) 387] 388interface ITfContext : IUnknown 389{ 390 const DWORD TF_ES_ASYNCDONTCARE = 0x0; 391 const DWORD TF_ES_SYNC = 0x1; 392 const DWORD TF_ES_READ = 0x2; 393 const DWORD TF_ES_READWRITE = 0x6; 394 const DWORD TF_ES_ASYNC = 0x8; 395 396 HRESULT RequestEditSession( 397 [in] TfClientId tid, 398 [in] ITfEditSession *pes, 399 [in] DWORD dwFlags, 400 [out] HRESULT *phrSession); 401 402 HRESULT InWriteSession( 403 [in] TfClientId tid, 404 [out] BOOL *pfWriteSession); 405 406 typedef [uuid(1690be9b-d3e9-49f6-8d8b-51b905af4c43)] enum { TF_AE_NONE, TF_AE_START, TF_AE_END } TfActiveSelEnd; 407 408 typedef [uuid(36ae42a4-6989-4bdc-b48a-6137b7bf2e42)] struct TF_SELECTIONSTYLE 409 { 410 TfActiveSelEnd ase; 411 BOOL fInterimChar; 412 } TF_SELECTIONSTYLE; 413 414 typedef [uuid(75eb22f2-b0bf-46a8-8006-975a3b6efcf1)] struct TF_SELECTION 415 { 416 ITfRange *range; 417 TF_SELECTIONSTYLE style; 418 } TF_SELECTION; 419 420 const ULONG TF_DEFAULT_SELECTION = TS_DEFAULT_SELECTION; 421 422 HRESULT GetSelection( 423 [in] TfEditCookie ec, 424 [in] ULONG ulIndex, 425 [in] ULONG ulCount, 426 [out, size_is(ulCount), length_is(*pcFetched)] TF_SELECTION *pSelection, 427 [out] ULONG *pcFetched); 428 429 HRESULT SetSelection( 430 [in] TfEditCookie ec, 431 [in] ULONG ulCount, 432 [in, size_is(ulCount)] const TF_SELECTION *pSelection); 433 434 HRESULT GetStart( 435 [in] TfEditCookie ec, 436 [out] ITfRange **ppStart); 437 438 HRESULT GetEnd( 439 [in] TfEditCookie ec, 440 [out] ITfRange **ppEnd); 441 442 typedef [uuid(bc7d979a-846a-444d-afef-0a9bfa82b961)] TS_STATUS TF_STATUS; 443 const DWORD TF_SD_READONLY = TS_SD_READONLY; 444 const DWORD TF_SD_LOADING = TS_SD_LOADING; 445 const DWORD TF_SS_DISJOINTSEL = TS_SS_DISJOINTSEL; 446 const DWORD TF_SS_REGIONS = TS_SS_REGIONS; 447 const DWORD TF_SS_TRANSITORY = TS_SS_TRANSITORY; 448 449 450 HRESULT GetActiveView( 451 [out] ITfContextView **ppView); 452 453 HRESULT EnumViews( 454 [out] IEnumTfContextViews **ppEnum); 455 456 HRESULT GetStatus( 457 [out] TF_STATUS *pdcs); 458 459 HRESULT GetProperty( 460 [in] REFGUID guidProp, 461 [out] ITfProperty **ppProp); 462 463 HRESULT GetAppProperty( 464 [in] REFGUID guidProp, 465 [out] ITfReadOnlyProperty **ppProp); 466 467 HRESULT TrackProperties( 468 [in, size_is(cProp)] const GUID **prgProp, 469 [in] ULONG cProp, 470 [in, size_is(cAppProp)] const GUID **prgAppProp, 471 [in] ULONG cAppProp, 472 [out] ITfReadOnlyProperty **ppProperty); 473 474 HRESULT EnumProperties( 475 [out] IEnumTfProperties **ppEnum); 476 477 HRESULT GetDocumentMgr( 478 [out] ITfDocumentMgr **ppDm); 479 480 HRESULT CreateRangeBackup( 481 [in] TfEditCookie ec, 482 [in] ITfRange *pRange, 483 [out] ITfRangeBackup **ppBackup); 484} 485 486const DWORD TF_INVALID_COOKIE = 0xffffffff; 487 488[ 489 object, 490 uuid(4ea48a35-60ae-446f-8fd6-e6a8d82459f7), 491 pointer_default(unique) 492] 493interface ITfSource : IUnknown 494{ 495 HRESULT AdviseSink( 496 [in] REFIID riid, 497 [in, iid_is(riid)] IUnknown *punk, 498 [out] DWORD *pdwCookie); 499 500 HRESULT UnadviseSink( 501 [in] DWORD dwCookie); 502} 503 504[ 505 object, 506 local, 507 uuid(1F02B6C5-7842-4EE6-8A0B-9A24183A95CA), 508 pointer_default(unique) 509] 510interface ITfInputProcessorProfiles : IUnknown 511{ 512 HRESULT Register( 513 [in] REFCLSID rclsid); 514 515 HRESULT Unregister( 516 [in] REFCLSID rclsid); 517 518 HRESULT AddLanguageProfile( 519 [in] REFCLSID rclsid, 520 [in] LANGID langid, 521 [in] REFGUID guidProfile, 522 [in, size_is(cchDesc)] const WCHAR *pchDesc, 523 [in] ULONG cchDesc, 524 [in, size_is(cchFile)] const WCHAR *pchIconFile, 525 [in] ULONG cchFile, 526 [in] ULONG uIconIndex); 527 528 HRESULT RemoveLanguageProfile( 529 [in] REFCLSID rclsid, 530 [in] LANGID langid, 531 [in] REFGUID guidProfile); 532 533 HRESULT EnumInputProcessorInfo( 534 [out] IEnumGUID **ppEnum); 535 536 HRESULT GetDefaultLanguageProfile( 537 [in] LANGID langid, 538 [in] REFGUID catid, 539 [out] CLSID *pclsid, 540 [out] GUID *pguidProfile); 541 542 HRESULT SetDefaultLanguageProfile( 543 [in] LANGID langid, 544 [in] REFCLSID rclsid, 545 [in] REFGUID guidProfiles); 546 547 HRESULT ActivateLanguageProfile( 548 [in] REFCLSID rclsid, 549 [in] LANGID langid, 550 [in] REFGUID guidProfiles); 551 552 HRESULT GetActiveLanguageProfile( 553 [in] REFCLSID rclsid, 554 [out] LANGID *plangid, 555 [out] GUID *pguidProfile); 556 557 HRESULT GetLanguageProfileDescription( 558 [in] REFCLSID rclsid, 559 [in] LANGID langid, 560 [in] REFGUID guidProfile, 561 [out] BSTR *pbstrProfile); 562 563 HRESULT GetCurrentLanguage( 564 [out] LANGID *plangid); 565 566 HRESULT ChangeCurrentLanguage( 567 [in] LANGID langid); 568 569 HRESULT GetLanguageList( 570 [out] LANGID **ppLangId, 571 [out] ULONG *pulCount); 572 573 HRESULT EnumLanguageProfiles( 574 [in] LANGID langid, 575 [out] IEnumTfLanguageProfiles **ppEnum); 576 577 HRESULT EnableLanguageProfile( 578 [in] REFCLSID rclsid, 579 [in] LANGID langid, 580 [in] REFGUID guidProfile, 581 [in] BOOL fEnable); 582 583 HRESULT IsEnabledLanguageProfile( 584 [in] REFCLSID rclsid, 585 [in] LANGID langid, 586 [in] REFGUID guidProfile, 587 [out] BOOL *pfEnable); 588 589 HRESULT EnableLanguageProfileByDefault( 590 [in] REFCLSID rclsid, 591 [in] LANGID langid, 592 [in] REFGUID guidProfile, 593 [in] BOOL fEnable); 594 595 HRESULT SubstituteKeyboardLayout( 596 [in] REFCLSID rclsid, 597 [in] LANGID langid, 598 [in] REFGUID guidProfile, 599 [in] HKL hKL); 600} 601 602typedef [uuid(44d2825a-10e5-43b2-877f-6cb2f43b7e7e)] 603struct TF_INPUTPROCESSORPROFILE { 604 DWORD dwProfileType; 605 LANGID langid; 606 CLSID clsid; 607 GUID guidProfile; 608 GUID catid; 609 HKL hklSubstitute; 610 DWORD dwCaps; 611 HKL hkl; 612 DWORD dwFlags; 613} TF_INPUTPROCESSORPROFILE; 614 615[ 616 object, 617 uuid(71c6e74d-0f28-11d8-a82a-00065b84435c), 618 pointer_default(unique) 619] 620interface IEnumTfInputProcessorProfiles : IUnknown 621{ 622 HRESULT Clone( 623 [out] IEnumTfInputProcessorProfiles **ppEnum); 624 625 HRESULT Next( 626 [in] ULONG ulCount, 627 [out, size_is(ulCount), length_is(*pcFetch)] TF_INPUTPROCESSORPROFILE *pProfile, 628 [out] ULONG *pcFetch); 629 630 HRESULT Reset(); 631 632 HRESULT Skip( 633 [in] ULONG ulCount); 634} 635 636[ 637 object, 638 uuid(71c6e74c-0f28-11d8-a82a-00065b84435c), 639 pointer_default(unique) 640] 641interface ITfInputProcessorProfileMgr : IUnknown 642{ 643 HRESULT ActivateProfile( 644 [in] DWORD dwProfileType, 645 [in] LANGID langid, 646 [in] REFCLSID clsid, 647 [in] REFGUID guidProfile, 648 [in] HKL hkl, 649 [in] DWORD dwFlags); 650 651 HRESULT DeactivateProfile( 652 [in] DWORD dwProfileType, 653 [in] LANGID langid, 654 [in] REFCLSID clsid, 655 [in] REFGUID guidProfile, 656 [in] HKL hkl, 657 [in] DWORD dwFlags); 658 659 HRESULT GetProfile( 660 [in] DWORD dwProfileType, 661 [in] LANGID langid, 662 [in] REFCLSID clsid, 663 [in] REFGUID guidProfile, 664 [in] HKL hkl, 665 [out] TF_INPUTPROCESSORPROFILE *pProfile); 666 667 668 HRESULT EnumProfiles( 669 [in] LANGID langid, 670 [out] IEnumTfInputProcessorProfiles **ppEnum); 671 672 HRESULT ReleaseInputProcessor( 673 [in] REFCLSID rclsid, 674 [in] DWORD dwFlags); 675 676 HRESULT RegisterProfile( 677 [in] REFCLSID rclsid, 678 [in] LANGID langid, 679 [in] REFGUID guidProfile, 680 [in, size_is(cchDesc)] const WCHAR *pchDesc, 681 [in] ULONG cchDesc, 682 [in, size_is(cchFile)] const WCHAR *pchIconFile, 683 [in] ULONG cchFile, 684 [in] ULONG uIconIndex, 685 [in] HKL hklsubstitute, 686 [in] DWORD dwPreferredLayout, 687 [in] BOOL bEnabledByDefault, 688 [in] DWORD dwFlags); 689 690 HRESULT UnregisterProfile( 691 [in] REFCLSID rclsid, 692 [in] LANGID langid, 693 [in] REFGUID guidProfile, 694 [in] DWORD dwFlags); 695 696 HRESULT GetActiveProfile( 697 [in] REFGUID catid, 698 [out] TF_INPUTPROCESSORPROFILE *pProfile); 699} 700 701typedef [uuid(c4cc07f1-80cc-4a7b-bc54-98512782cbe3)] 702enum { 703 TF_LS_NONE = 0, 704 TF_LS_SOLID = 1, 705 TF_LS_DOT = 2, 706 TF_LS_DASH = 3, 707 TF_LS_SQUIGGLE = 4 708} TF_DA_LINESTYLE; 709 710typedef [uuid(d9b92e21-084a-401b-9c64-1e6dad91a1ab)] 711enum { 712 TF_CT_NONE = 0, 713 TF_CT_SYSCOLOR = 1, 714 TF_CT_COLORREF = 2 715} TF_DA_COLORTYPE; 716 717typedef [uuid(90d0cb5e-6520-4a0f-b47c-c39bd955f0d6)] 718struct TF_DA_COLOR { 719 TF_DA_COLORTYPE type; 720 [switch_type(TF_DA_COLORTYPE), switch_is(type)] 721 union { 722 [case(TF_CT_SYSCOLOR)] int nIndex; 723 [case(TF_CT_COLORREF)] COLORREF cr; 724 }; 725} TF_DA_COLOR; 726 727typedef [uuid(33d2fe4b-6c24-4f67-8d75-3bc1819e4126)] 728enum { 729 TF_ATTR_INPUT = 0, 730 TF_ATTR_TARGET_CONVERTED = 1, 731 TF_ATTR_CONVERTED = 2, 732 TF_ATTR_TARGET_NOTCONVERTED = 3, 733 TF_ATTR_INPUT_ERROR = 4, 734 TF_ATTR_FIXEDCONVERTED = 5, 735 TF_ATTR_OTHER = -1 736} TF_DA_ATTR_INFO; 737 738typedef [uuid(1bf1c305-419b-4182-a4d2-9bfadc3f021f)] 739struct TF_DISPLAYATTRIBUTE { 740 TF_DA_COLOR crText; 741 TF_DA_COLOR crBk; 742 TF_DA_LINESTYLE lsStyle; 743 BOOL fBoldLine; 744 TF_DA_COLOR crLine; 745 TF_DA_ATTR_INFO bAttr; 746} TF_DISPLAYATTRIBUTE; 747 748[ 749 object, 750 uuid(70528852-2f26-4aea-8c96-215150578932), 751 pointer_default(unique) 752] 753interface ITfDisplayAttributeInfo : IUnknown 754{ 755 HRESULT GetGUID([out] GUID *pguid); 756 757 HRESULT GetDescription([out] BSTR *pbstrDesc); 758 759 HRESULT GetAttributeInfo([out] TF_DISPLAYATTRIBUTE *pda); 760 761 HRESULT SetAttributeInfo([in] const TF_DISPLAYATTRIBUTE *pda); 762 763 HRESULT Reset(); 764} 765 766[ 767 object, 768 uuid(7cef04d7-cb75-4e80-a7ab-5f5bc7d332de), 769 pointer_default(unique) 770] 771interface IEnumTfDisplayAttributeInfo : IUnknown 772{ 773 HRESULT Clone([out] IEnumTfDisplayAttributeInfo **ppEnum); 774 775 HRESULT Next( 776 [in] ULONG ulCount, 777 [out, size_is(ulCount), length_is(*pcFetched)] ITfDisplayAttributeInfo **rgInfo, 778 [out] ULONG *pcFetched); 779 780 HRESULT Reset(); 781 782 HRESULT Skip([in] ULONG ulCount); 783} 784 785[ 786 object, 787 local, 788 uuid(8ded7393-5db1-475c-9e71-a39111b0ff67), 789 pointer_default(unique) 790] 791interface ITfDisplayAttributeMgr : IUnknown 792{ 793 HRESULT OnUpdateInfo(); 794 795 HRESULT EnumDisplayAttributeInfo([out] IEnumTfDisplayAttributeInfo **ppEnum); 796 797 HRESULT GetDisplayAttributeInfo( 798 [in] REFGUID guid, 799 [out] ITfDisplayAttributeInfo **ppInfo, 800 [out] CLSID *pclsidOwner); 801 802} 803 804[ 805 object, 806 local, 807 uuid(c3acefb5-f69d-4905-938f-fcadcf4be830), 808 pointer_default(unique) 809] 810interface ITfCategoryMgr : IUnknown 811{ 812 HRESULT RegisterCategory([in] REFCLSID rclsid, 813 [in] REFGUID rcatid, 814 [in] REFGUID rguid); 815 816 HRESULT UnregisterCategory([in] REFCLSID rclsid, 817 [in] REFGUID rcatid, 818 [in] REFGUID rguid); 819 820 HRESULT EnumCategoriesInItem([in] REFGUID rguid, 821 [out] IEnumGUID **ppEnum); 822 823 HRESULT EnumItemsInCategory([in] REFGUID rcatid, 824 [out] IEnumGUID **ppEnum); 825 826 HRESULT FindClosestCategory([in] REFGUID rguid, 827 [out] GUID *pcatid, 828 [in, size_is(ulCount)] const GUID **ppcatidList, 829 [in] ULONG ulCount); 830 831 HRESULT RegisterGUIDDescription([in] REFCLSID rclsid, 832 [in] REFGUID rguid, 833 [in, size_is(cch)] const WCHAR *pchDesc, 834 [in] ULONG cch); 835 836 HRESULT UnregisterGUIDDescription([in] REFCLSID rclsid, 837 [in] REFGUID rguid); 838 839 HRESULT GetGUIDDescription([in] REFGUID rguid, 840 [out] BSTR *pbstrDesc); 841 842 HRESULT RegisterGUIDDWORD([in] REFCLSID rclsid, 843 [in] REFGUID rguid, 844 [in] DWORD dw); 845 846 HRESULT UnregisterGUIDDWORD([in] REFCLSID rclsid, 847 [in] REFGUID rguid); 848 849 HRESULT GetGUIDDWORD([in] REFGUID rguid, 850 [out] DWORD *pdw); 851 852 HRESULT RegisterGUID([in] REFGUID rguid, 853 [out] TfGuidAtom *pguidatom); 854 855 HRESULT GetGUID([in] TfGuidAtom guidatom, 856 [out] GUID *pguid); 857 858 HRESULT IsEqualTfGuidAtom([in] TfGuidAtom guidatom, 859 [in] REFGUID rguid, 860 [out] BOOL *pfEqual); 861} 862 863[ 864 object, 865 uuid(f99d3f40-8e32-11d2-bf46-00105a2799b5), 866 pointer_default(unique) 867] 868interface IEnumTfRanges : IUnknown 869{ 870 HRESULT Clone([out] IEnumTfRanges **ppEnum); 871 872 HRESULT Next( 873 [in] ULONG ulCount, 874 [out, size_is(ulCount), length_is(*pcFetched)] ITfRange **ppRange, 875 [out] ULONG *pcFetched); 876 877 HRESULT Reset(); 878 879 HRESULT Skip(ULONG ulCount); 880} 881 882[ 883 object, 884 uuid(42d4d099-7c1a-4a89-b836-6c6f22160df0), 885 pointer_default(unique) 886] 887interface ITfEditRecord : IUnknown 888{ 889 const DWORD TF_GTP_INCL_TEXT = 0x1; 890 891 HRESULT GetSelectionStatus( 892 [out] BOOL *changed); 893 894 HRESULT GetTextAndPropertyUpdates( 895 [in] DWORD flags, 896 [in, size_is(count)] const GUID **props, 897 [in] ULONG count, 898 [out] IEnumTfRanges **ret); 899} 900 901[ 902 object, 903 uuid(8127d409-ccd3-4683-967a-b43d5b482bf7), 904 pointer_default(unique) 905] 906interface ITfTextEditSink : IUnknown 907{ 908 HRESULT OnEndEdit( 909 [in] ITfContext *pic, 910 [in] TfEditCookie ecReadOnly, 911 [in] ITfEditRecord *pEditRecord); 912} 913 914[ 915 object, 916 uuid(5F20AA40-B57A-4F34-96AB-3576F377CC79), 917 pointer_default(unique) 918] 919interface ITfContextOwnerCompositionSink : IUnknown 920{ 921 HRESULT OnStartComposition( 922 [in] ITfCompositionView *pComposition, 923 [out] BOOL *pfOk); 924 925 HRESULT OnUpdateComposition( 926 [in] ITfCompositionView *pComposition, 927 [in] ITfRange *pRangeNew); 928 929 HRESULT OnEndComposition( 930 [in] ITfCompositionView *pComposition); 931} 932 933[ 934 object, 935 uuid(b246cb75-a93e-4652-bf8c-b3fe0cfd7e57), 936 pointer_default(unique) 937] 938interface ITfActiveLanguageProfileNotifySink : IUnknown 939{ 940 HRESULT OnActivated( 941 [in] REFCLSID clsid, 942 [in] REFGUID guidProfile, 943 [in] BOOL fActivated); 944} 945 946[ 947 object, 948 uuid(3d61bf11-ac5f-42c8-a4cb-931bcc28c744), 949 pointer_default(unique) 950] 951interface IEnumTfLanguageProfiles : IUnknown 952{ 953 HRESULT Clone( 954 [out] IEnumTfLanguageProfiles **ppEnum); 955 956 HRESULT Next( 957 [in] ULONG ulCount, 958 [out, size_is(ulCount), length_is(*pcFetch)] TF_LANGUAGEPROFILE *pProfile, 959 [out] ULONG *pcFetch); 960 961 HRESULT Reset(); 962 963 HRESULT Skip( 964 [in] ULONG ulCount); 965} 966 967[ 968 object, 969 local, 970 uuid(aa80e7f7-2021-11d2-93e0-0060b067b86e), 971 pointer_default(unique) 972] 973interface ITfTextInputProcessor : IUnknown 974{ 975 HRESULT Activate( 976 [in] ITfThreadMgr *ptim, 977 [in] TfClientId tid); 978 979 HRESULT Deactivate(); 980} 981 982[ 983 object, 984 uuid(aa80e80e-2021-11d2-93e0-0060b067b86e), 985 pointer_default(unique) 986] 987interface ITfThreadMgrEventSink : IUnknown 988{ 989 HRESULT OnInitDocumentMgr( 990 [in] ITfDocumentMgr *pdim); 991 992 HRESULT OnUninitDocumentMgr( 993 [in] ITfDocumentMgr *pdim); 994 995 HRESULT OnSetFocus( 996 [in] ITfDocumentMgr *pdimFocus, 997 [in] ITfDocumentMgr *pdimPrevFocus); 998 999 HRESULT OnPushContext( 1000 [in] ITfContext *pic); 1001 1002 HRESULT OnPopContext( 1003 [in] ITfContext *pic); 1004} 1005 1006[ 1007 object, 1008 local, 1009 uuid(aa80e7f0-2021-11d2-93e0-0060b067b86e), 1010 pointer_default(unique) 1011] 1012interface ITfKeystrokeMgr : IUnknown 1013{ 1014 HRESULT AdviseKeyEventSink( 1015 [in] TfClientId tid, 1016 [in] ITfKeyEventSink *pSink, 1017 [in] BOOL fForeground); 1018 1019 HRESULT UnadviseKeyEventSink( 1020 [in] TfClientId tid); 1021 1022 HRESULT GetForeground( 1023 [out] CLSID *pclsid); 1024 1025 HRESULT TestKeyDown( 1026 [in] WPARAM wParam, 1027 [in] LPARAM lParam, 1028 [out] BOOL *pfEaten); 1029 1030 HRESULT TestKeyUp( 1031 [in] WPARAM wParam, 1032 [in] LPARAM lParam, 1033 [out] BOOL *pfEaten); 1034 1035 HRESULT KeyDown( 1036 [in] WPARAM wParam, 1037 [in] LPARAM lParam, 1038 [out] BOOL *pfEaten); 1039 1040 HRESULT KeyUp( 1041 [in] WPARAM wParam, 1042 [in] LPARAM lParam, 1043 [out] BOOL *pfEaten); 1044 1045 HRESULT GetPreservedKey( 1046 [in] ITfContext *pic, 1047 [in] const TF_PRESERVEDKEY *pprekey, 1048 [out] GUID *pguid); 1049 1050 HRESULT IsPreservedKey( 1051 [in] REFGUID rguid, 1052 [in] const TF_PRESERVEDKEY *pprekey, 1053 [out] BOOL *pfRegistered); 1054 1055 HRESULT PreserveKey( 1056 [in] TfClientId tid, 1057 [in] REFGUID rguid, 1058 [in] const TF_PRESERVEDKEY *prekey, 1059 [in, size_is(cchDesc)] const WCHAR *pchDesc, 1060 [in] ULONG cchDesc); 1061 1062 HRESULT UnpreserveKey( 1063 [in] REFGUID rguid, 1064 [in] const TF_PRESERVEDKEY *pprekey); 1065 1066 HRESULT SetPreservedKeyDescription( 1067 [in] REFGUID rguid, 1068 [in, size_is(cchDesc)] const WCHAR *pchDesc, 1069 [in] ULONG cchDesc); 1070 1071 HRESULT GetPreservedKeyDescription( 1072 [in] REFGUID rguid, 1073 [out] BSTR *pbstrDesc); 1074 1075 HRESULT SimulatePreservedKey( 1076 [in] ITfContext *pic, 1077 [in] REFGUID rguid, 1078 [out] BOOL *pfEaten); 1079} 1080 1081[ 1082 object, 1083 local, 1084 uuid(aa80e7f5-2021-11d2-93e0-0060b067b86e), 1085 pointer_default(unique) 1086] 1087interface ITfKeyEventSink : IUnknown 1088{ 1089 HRESULT OnSetFocus( 1090 [in] BOOL fForeground); 1091 1092 HRESULT OnTestKeyDown( 1093 [in] ITfContext *pic, 1094 [in] WPARAM wParam, 1095 [in] LPARAM lParam, 1096 [out] BOOL *pfEaten); 1097 1098 HRESULT OnTestKeyUp( 1099 [in] ITfContext *pic, 1100 [in] WPARAM wParam, 1101 [in] LPARAM lParam, 1102 [out] BOOL *pfEaten); 1103 1104 HRESULT OnKeyDown( 1105 [in] ITfContext *pic, 1106 [in] WPARAM wParam, 1107 [in] LPARAM lParam, 1108 [out] BOOL *pfEaten); 1109 1110 HRESULT OnKeyUp( 1111 [in] ITfContext *pic, 1112 [in] WPARAM wParam, 1113 [in] LPARAM lParam, 1114 [out] BOOL *pfEaten); 1115 1116 HRESULT OnPreservedKey( 1117 [in] ITfContext *pic, 1118 [in] REFGUID rguid, 1119 [out] BOOL *pfEaten); 1120} 1121 1122[ 1123 object, 1124 local, 1125 uuid(1cd4c13b-1c36-4191-a70a-7f3e611f367d), 1126 pointer_default(unique) 1127] 1128interface ITfKeyTraceEventSink : IUnknown 1129{ 1130 HRESULT OnKeyTraceDown( 1131 [in] WPARAM wParam, 1132 [in] LPARAM lParam); 1133 1134 HRESULT OnKeyTraceUp( 1135 [in] WPARAM wParam, 1136 [in] LPARAM lParam); 1137} 1138 1139[ 1140 object, 1141 local, 1142 uuid(8f1b8ad8-0b6b-4874-90c5-bd76011e8f7c), 1143 pointer_default(unique) 1144] 1145interface ITfMessagePump : IUnknown 1146{ 1147 HRESULT PeekMessageA( 1148 [out] LPMSG pMsg, 1149 [in] HWND hwnd, 1150 [in] UINT wMsgFilterMin, 1151 [in] UINT wMsgFilterMax, 1152 [in] UINT wRemoveMsg, 1153 [out] BOOL *pfResult); 1154 1155 HRESULT GetMessageA( 1156 [out] LPMSG pMsg, 1157 [in] HWND hwnd, 1158 [in] UINT wMsgFilterMin, 1159 [in] UINT wMsgFilterMax, 1160 [out] BOOL *pfResult); 1161 1162 HRESULT PeekMessageW( 1163 [out] LPMSG pMsg, 1164 [in] HWND hwnd, 1165 [in] UINT wMsgFilterMin, 1166 [in] UINT wMsgFilterMax, 1167 [in] UINT wRemoveMsg, 1168 [out] BOOL *pfResult); 1169 1170 HRESULT GetMessageW( 1171 [out] LPMSG pMsg, 1172 [in] HWND hwnd, 1173 [in] UINT wMsgFilterMin, 1174 [in] UINT wMsgFilterMax, 1175 [out] BOOL *pfResult); 1176} 1177 1178[ 1179 object, 1180 local, 1181 uuid(d60a7b49-1b9f-4be2-b702-47e9dc05dec3), 1182 pointer_default(unique) 1183] 1184interface ITfClientId : IUnknown 1185{ 1186 HRESULT GetClientId( 1187 [in] REFCLSID rclsid, 1188 [out] TfClientId *ptid); 1189} 1190 1191[ 1192 object, 1193 uuid(43c9fe15-f494-4c17-9de2-b8a4ac350aa8), 1194 pointer_default(unique) 1195] 1196interface ITfLanguageProfileNotifySink : IUnknown 1197{ 1198 HRESULT OnLanguageChange( 1199 [in] LANGID langid, 1200 [out] BOOL *pfAccept); 1201 1202 HRESULT OnLanguageChanged(); 1203} 1204 1205[ 1206 object, 1207 uuid(aa80e803-2021-11d2-93e0-0060b067b86e), 1208 pointer_default(unique) 1209] 1210interface ITfEditSession : IUnknown 1211{ 1212 HRESULT DoEditSession( 1213 [in] TfEditCookie ec); 1214} 1215 1216[ 1217 object, 1218 uuid(aa80e7ff-2021-11d2-93e0-0060b067b86e), 1219 pointer_default(unique) 1220] 1221interface ITfRange : IUnknown 1222{ 1223 const WCHAR TF_CHAR_EMBEDDED = TS_CHAR_EMBEDDED; 1224 1225 typedef [uuid(cf610f06-2882-46f6-abe5-298568b664c4)] enum { TF_GRAVITY_BACKWARD = 0, TF_GRAVITY_FORWARD = 1 } TfGravity; 1226 1227 typedef [uuid(1e512533-bbdc-4530-9a8e-a1dc0af67468)] enum { TF_SD_BACKWARD = 0, TF_SD_FORWARD = 1 } TfShiftDir; 1228 1229 const DWORD TF_HF_OBJECT = 1; 1230 const DWORD TF_TF_MOVESTART = 1; 1231 const DWORD TF_TF_IGNOREEND = 2; 1232 const DWORD TF_ST_CORRECTION = 1; 1233 const DWORD TF_IE_CORRECTION = 1; 1234 1235 typedef [uuid(49930d51-7d93-448c-a48c-fea5dac192b1)] struct TF_HALTCOND 1236 { 1237 ITfRange *pHaltRange; 1238 TfAnchor aHaltPos; 1239 DWORD dwFlags; 1240 } TF_HALTCOND; 1241 1242 HRESULT GetText( 1243 [in] TfEditCookie ec, 1244 [in] DWORD dwFlags, 1245 [out, size_is(cchMax), length_is(*pcch)] WCHAR *pchText, 1246 [in] ULONG cchMax, 1247 [out] ULONG *pcch); 1248 1249 HRESULT SetText( 1250 [in] TfEditCookie ec, 1251 [in] DWORD dwFlags, 1252 [in, size_is(cch), unique] const WCHAR *pchText, 1253 [in] LONG cch); 1254 1255 HRESULT GetFormattedText( 1256 [in] TfEditCookie ec, 1257 [out] IDataObject **ppDataObject); 1258 1259 HRESULT GetEmbedded( 1260 [in] TfEditCookie ec, 1261 [in] REFGUID rguidService, 1262 [in] REFIID riid, 1263 [out, iid_is(riid)] IUnknown **ppunk); 1264 1265 HRESULT InsertEmbedded( 1266 [in] TfEditCookie ec, 1267 [in] DWORD dwFlags, 1268 [in] IDataObject *pDataObject); 1269 1270 HRESULT ShiftStart( 1271 [in] TfEditCookie ec, 1272 [in] LONG cchReq, 1273 [out] LONG *pcch, 1274 [in, unique] const TF_HALTCOND *pHalt); 1275 1276 HRESULT ShiftEnd( 1277 [in] TfEditCookie ec, 1278 [in] LONG cchReq, 1279 [out] LONG *pcch, 1280 [in, unique] const TF_HALTCOND *pHalt); 1281 1282 HRESULT ShiftStartToRange( 1283 [in] TfEditCookie ec, 1284 [in] ITfRange *pRange, 1285 [in] TfAnchor aPos); 1286 1287 HRESULT ShiftEndToRange( 1288 [in] TfEditCookie ec, 1289 [in] ITfRange *pRange, 1290 [in] TfAnchor aPos); 1291 1292 HRESULT ShiftStartRegion( 1293 [in] TfEditCookie ec, 1294 [in] TfShiftDir dir, 1295 [out] BOOL *pfNoRegion); 1296 1297 HRESULT ShiftEndRegion( 1298 [in] TfEditCookie ec, 1299 [in] TfShiftDir dir, 1300 [out] BOOL *pfNoRegion); 1301 1302 HRESULT IsEmpty( 1303 [in] TfEditCookie ec, 1304 [out] BOOL *pfEmpty); 1305 1306 HRESULT Collapse( 1307 [in] TfEditCookie ec, 1308 [in] TfAnchor aPos); 1309 1310 HRESULT IsEqualStart( 1311 [in] TfEditCookie ec, 1312 [in] ITfRange *pWith, 1313 [in] TfAnchor aPos, 1314 [out] BOOL *pfEqual); 1315 1316 HRESULT IsEqualEnd( 1317 [in] TfEditCookie ec, 1318 [in] ITfRange *pWith, 1319 [in] TfAnchor aPos, 1320 [out] BOOL *pfEqual); 1321 1322 HRESULT CompareStart( 1323 [in] TfEditCookie ec, 1324 [in] ITfRange *pWith, 1325 [in] TfAnchor aPos, 1326 [out] LONG *plResult); 1327 1328 HRESULT CompareEnd( 1329 [in] TfEditCookie ec, 1330 [in] ITfRange *pWith, 1331 [in] TfAnchor aPos, 1332 [out] LONG *plResult); 1333 1334 HRESULT AdjustForInsert( 1335 [in] TfEditCookie ec, 1336 [in] ULONG cchInsert, 1337 [out] BOOL *pfInsertOk); 1338 1339 HRESULT GetGravity( 1340 [out] TfGravity *pgStart, 1341 [out] TfGravity *pgEnd); 1342 1343 HRESULT SetGravity( 1344 [in] TfEditCookie ec, 1345 [in] TfGravity gStart, 1346 [in] TfGravity gEnd); 1347 1348 HRESULT Clone( 1349 [out] ITfRange **ppClone); 1350 1351 HRESULT GetContext( 1352 [out] ITfContext **ppContext); 1353} 1354 1355[ 1356 object, 1357 uuid(057a6296-029b-4154-b79a-0d461d4ea94c), 1358 pointer_default(unique) 1359] 1360interface ITfRangeACP : ITfRange 1361{ 1362 HRESULT GetExtent([out] LONG *pacpAnchor, 1363 [out] LONG *pcch); 1364 1365 HRESULT SetExtent([in] LONG acpAnchor, 1366 [in] LONG cch); 1367} 1368 1369[ 1370 object, 1371 uuid(55ce16ba-3014-41c1-9ceb-fade1446ac6c), 1372 pointer_default(unique) 1373] 1374interface ITfInsertAtSelection : IUnknown 1375{ 1376 const DWORD TF_IAS_NOQUERY = 0x1; 1377 const DWORD TF_IAS_QUERYONLY = 0x2; 1378 const DWORD TF_IAS_NO_DEFAULT_COMPOSITION = 0x80000000; 1379 1380 HRESULT InsertTextAtSelection( 1381 [in] TfEditCookie ec, 1382 [in] DWORD dwFlags, 1383 [in, size_is(cch)] const WCHAR *pchText, 1384 [in] LONG cch, 1385 [out] ITfRange **ppRange); 1386 1387 HRESULT InsertEmbeddedAtSelection( 1388 [in] TfEditCookie ec, 1389 [in] DWORD dwFlags, 1390 [in] IDataObject *pDataObject, 1391 [out] ITfRange **ppRange); 1392} 1393 1394[ 1395 object, 1396 uuid(6834b120-88cb-11d2-bf45-00105a2799b5), 1397 pointer_default(unique) 1398] 1399interface ITfPropertyStore : IUnknown 1400{ 1401 const DWORD TF_TU_CORRECTION = 0x1; 1402 1403 HRESULT GetType([out] GUID *pguid); 1404 1405 HRESULT GetDataType([out] DWORD *pdwReserved); 1406 1407 HRESULT GetData([out] VARIANT *pvarValue); 1408 1409 HRESULT OnTextUpdated( 1410 [in] DWORD dwFlags, 1411 [in] ITfRange *pRangeNew, 1412 [out] BOOL *pfAccept); 1413 1414 HRESULT Shrink( 1415 [in] ITfRange *pRangeNew, 1416 [out] BOOL *pfFree); 1417 1418 HRESULT Divide( 1419 [in] ITfRange *pRangeThis, 1420 [in] ITfRange *pRangeNew, 1421 [out] ITfPropertyStore **ppPropStore); 1422 1423 HRESULT Clone( 1424 [out] ITfPropertyStore **pPropStore); 1425 1426 HRESULT GetPropertyRangeCreator( 1427 [out] CLSID *pclsid); 1428 1429 HRESULT Serialize( 1430 [in] IStream *pStream, 1431 [out] ULONG *pcb); 1432} 1433 1434[ 1435 object, 1436 uuid(5efd22Ba-7838-46cb-88e2-cadb14124f8f), 1437 pointer_default(unique) 1438] 1439interface IEnumITfCompositionView : IUnknown 1440{ 1441 HRESULT Clone([out] IEnumITfCompositionView **ppEnum); 1442 1443 HRESULT Next( 1444 [in] ULONG ulCount, 1445 [out, size_is(ulCount), length_is(*pcFetched)] ITfCompositionView **rgCompositionView, 1446 [out] ULONG *pcFetched); 1447 1448 HRESULT Reset(); 1449 1450 HRESULT Skip([in] ULONG ulCount); 1451} 1452 1453[ 1454 object, 1455 uuid(20168d64-5a8f-4a5a-b7bd-cfa29f4D0fd9), 1456 pointer_default(unique) 1457] 1458interface ITfComposition : IUnknown 1459{ 1460 HRESULT GetRange([out] ITfRange **ppRange); 1461 1462 HRESULT ShiftStart( 1463 [in] TfEditCookie ecWrite, 1464 [in] ITfRange *pNewStart); 1465 1466 HRESULT ShiftEnd( 1467 [in] TfEditCookie ecWrite, 1468 [in] ITfRange *pNewEnd); 1469 1470 HRESULT EndComposition([in] TfEditCookie ecWrite); 1471} 1472 1473[ 1474 object, 1475 uuid(a781718c-579a-4b15-a280-32b8577acc5e), 1476 pointer_default(unique) 1477] 1478interface ITfCompositionSink : IUnknown 1479{ 1480 HRESULT OnCompositionTerminated( 1481 [in] TfEditCookie ecWrite, 1482 [in] ITfComposition *pComposition); 1483} 1484 1485[ 1486 object, 1487 uuid(d40C8aae-aC92-4fc7-9a11-0ee0e23aa39b), 1488 pointer_default(unique) 1489] 1490interface ITfContextComposition : IUnknown 1491{ 1492 HRESULT StartComposition( 1493 [in] TfEditCookie ecWrite, 1494 [in] ITfRange *pCompositionRange, 1495 [in] ITfCompositionSink *pSink, 1496 [out] ITfComposition **ppComposition); 1497 1498 HRESULT EnumCompositions([out] IEnumITfCompositionView **ppEnum); 1499 1500 HRESULT FindComposition( 1501 [in] TfEditCookie ecRead, 1502 [in] ITfRange *pTestRange, 1503 [out] IEnumITfCompositionView **ppEnum); 1504 1505 HRESULT TakeOwnership( 1506 [in] TfEditCookie ecWrite, 1507 [in] ITfCompositionView *pComposition, 1508 [in] ITfCompositionSink *pSink, 1509 [out] ITfComposition **ppComposition); 1510} 1511 1512[ 1513 object, 1514 uuid(86462810-593b-4916-9764-19c08e9ce110), 1515 pointer_default(unique) 1516] 1517interface ITfContextOwnerCompositionServices : ITfContextComposition 1518{ 1519 HRESULT TerminateComposition([in] ITfCompositionView *pComposition); 1520} 1521 1522[ 1523 object, 1524 uuid(4ef89150-0807-11d3-8df0-00105a2799b5), 1525 pointer_default(unique) 1526] 1527interface ITfPersistentPropertyLoaderACP : IUnknown 1528{ 1529 HRESULT LoadProperty( 1530 [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr, 1531 [out] IStream **ppStream); 1532} 1533 1534[ 1535 object, 1536 uuid(b23eb630-3e1c-11d3-a745-0050040ab407), 1537 pointer_default(unique) 1538] 1539interface ITfContextOwnerServices : IUnknown 1540{ 1541 HRESULT OnLayoutChange(); 1542 1543 HRESULT OnStatusChange([in] DWORD dwFlags); 1544 1545 HRESULT OnAttributeChange([in] REFGUID rguidAttribute); 1546 1547 HRESULT Serialize( 1548 [in] ITfProperty *pProp, 1549 [in] ITfRange *pRange, 1550 [out] TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr, 1551 [in] IStream *pStream); 1552 1553 HRESULT Unserialize( 1554 [in] ITfProperty *pProp, 1555 [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr, 1556 [in] IStream *pStream, 1557 [in] ITfPersistentPropertyLoaderACP *pLoader); 1558 1559 HRESULT ForceLoadProperty([in] ITfProperty *pProp); 1560 1561 HRESULT CreateRange( 1562 [in] LONG acpStart, 1563 [in] LONG acpEnd, 1564 [out] ITfRangeACP **ppRange); 1565} 1566 1567[ 1568 object, 1569 uuid(17d49a3d-f8b8-4b2f-b254-52319dd64c53), 1570 pointer_default(unique) 1571] 1572interface ITfReadOnlyProperty : IUnknown 1573{ 1574 HRESULT GetType([out] GUID *pguid); 1575 1576 HRESULT EnumRanges( 1577 [in] TfEditCookie ec, 1578 [out] IEnumTfRanges **ppEnum, 1579 [in] ITfRange *pTargetRange); 1580 1581 HRESULT GetValue( 1582 [in] TfEditCookie ec, 1583 [in] ITfRange *pRange, 1584 [out] VARIANT *pvarValue); 1585 1586 HRESULT GetContext([out] ITfContext **ppContext); 1587} 1588 1589[ 1590 object, 1591 uuid(e2449660-9542-11d2-bf46-00105a2799b5), 1592 pointer_default(unique) 1593] 1594interface ITfProperty : ITfReadOnlyProperty 1595{ 1596 HRESULT FindRange( 1597 [in] TfEditCookie ec, 1598 [in] ITfRange *pRange, 1599 [out] ITfRange **ppRange, 1600 [in] TfAnchor aPos); 1601 1602 HRESULT SetValueStore( 1603 [in] TfEditCookie ec, 1604 [in] ITfRange *pRange, 1605 [in] ITfPropertyStore *pPropStore); 1606 1607 HRESULT SetValue( 1608 [in] TfEditCookie ec, 1609 [in] ITfRange *pRange, 1610 [in] const VARIANT *pvarValue); 1611 1612 HRESULT Clear( 1613 [in] TfEditCookie ec, 1614 [in] ITfRange *pRange); 1615} 1616 1617[ 1618 object, 1619 uuid(bb08f7a9-607a-4384-8623-056892b64371), 1620 pointer_default(unique) 1621] 1622interface ITfCompartment : IUnknown 1623{ 1624 HRESULT SetValue( 1625 [in] TfClientId tid, 1626 [in] const VARIANT *pvarValue); 1627 1628 HRESULT GetValue( 1629 [out] VARIANT *pvarValue); 1630} 1631 1632[ 1633 object, 1634 uuid(7dcf57ac-18ad-438b-824d-979bffb74b7c), 1635 pointer_default(unique) 1636] 1637interface ITfCompartmentMgr : IUnknown 1638{ 1639 HRESULT GetCompartment( 1640 [in] REFGUID rguid, 1641 [out] ITfCompartment **ppcomp); 1642 1643 HRESULT ClearCompartment( 1644 [in] TfClientId tid, 1645 [in] REFGUID rguid); 1646 1647 HRESULT EnumCompartments( 1648 [out] IEnumGUID **ppEnum); 1649} 1650 1651[ 1652 object, 1653 uuid(743abd5f-f26d-48df-8cc5-238492419b64), 1654 pointer_default(unique) 1655] 1656interface ITfCompartmentEventSink : IUnknown 1657{ 1658 HRESULT OnChange( 1659 [in] REFGUID rguid); 1660} 1661 1662[ 1663 object, 1664 uuid(8f1a7ea6-1654-4502-a86e-b2902344d507), 1665 pointer_default(unique) 1666] 1667interface IEnumTfContexts : IUnknown 1668{ 1669 HRESULT Clone( 1670 [out] IEnumTfContexts **ppEnum); 1671 1672 HRESULT Next( 1673 [in] ULONG ulCount, 1674 [out, size_is(ulCount), length_is(*pcFetched)] ITfContext **rgContext, 1675 [out] ULONG *pcFetched); 1676 1677 HRESULT Reset(); 1678 1679 HRESULT Skip( 1680 [in] ULONG ulCount); 1681} 1682 1683[ 1684 object, 1685 uuid(aa80e808-2021-11d2-93e0-0060b067b86e), 1686 pointer_default(unique) 1687] 1688interface IEnumTfDocumentMgrs : IUnknown 1689{ 1690 HRESULT Clone( 1691 [out] IEnumTfDocumentMgrs **ppEnum); 1692 1693 HRESULT Next( 1694 [in] ULONG ulCount, 1695 [out, size_is(ulCount), length_is(*pcFetched)] ITfDocumentMgr **rgDocumentMgr, 1696 [out] ULONG *pcFetched); 1697 1698 HRESULT Reset(); 1699 1700 HRESULT Skip( 1701 [in] ULONG ulCount); 1702} 1703 1704[ 1705 object, 1706 local, 1707 uuid(ea1ea137-19df-11d7-a6d2-00065b84435c), 1708 pointer_default(unique) 1709] 1710interface ITfUIElement : IUnknown 1711{ 1712 HRESULT GetDescription( 1713 [out] BSTR *description); 1714 1715 HRESULT GetGUID( 1716 [out] GUID *guid); 1717 1718 HRESULT Show( 1719 [in] BOOL show); 1720 1721 HRESULT IsShown( 1722 [out] BOOL *show); 1723} 1724 1725[ 1726 object, 1727 local, 1728 uuid(887aa91e-acba-4931-84da-3c5208cf543f), 1729 pointer_default(unique) 1730] 1731interface IEnumTfUIElements : IUnknown 1732{ 1733 HRESULT Clone( 1734 [out] IEnumTfUIElements **enum_elements); 1735 1736 HRESULT Next( 1737 [in] ULONG count, 1738 [out, size_is(count), length_is(fetched)] ITfUIElement **element, 1739 [out] ULONG fetched); 1740 1741 HRESULT Reset(); 1742 1743 HRESULT Skip( 1744 [in] ULONG count); 1745} 1746 1747[ 1748 object, 1749 local, 1750 uuid(ea1ea135-19df-11d7-a6d2-00065b84435c), 1751 pointer_default(unique) 1752] 1753interface ITfUIElementMgr : IUnknown 1754{ 1755 HRESULT BeginUIElement( 1756 [in] ITfUIElement *element, 1757 [in, out] BOOL *show, 1758 [out] DWORD *id); 1759 1760 HRESULT UpdateUIElement( 1761 [in] DWORD id); 1762 1763 HRESULT EndUIElement( 1764 [in] DWORD id); 1765 1766 HRESULT GetUIElement( 1767 [in] DWORD id, 1768 [out] ITfUIElement **element); 1769 1770 HRESULT EnumUIElements( 1771 [out] IEnumTfUIElements **enum_elements); 1772} 1773 1774[ 1775 object, 1776 uuid(73131f9c-56a9-49dd-b0ee-d046633f7528), 1777 pointer_default(unique) 1778] 1779interface ITfSourceSingle : IUnknown 1780{ 1781 HRESULT AdviseSingleSink( 1782 [in] TfClientId tid, 1783 [in] REFIID riid, 1784 [in, iid_is(riid)] IUnknown *punk); 1785 1786 HRESULT UnadviseSingleSink( 1787 [in] TfClientId tid, 1788 [in] REFIID riid); 1789} 1790 1791[ 1792 object, 1793 local, 1794 uuid(c0f1db0c-3a20-405c-a303-96b6010a885f), 1795 pointer_default(unique) 1796] 1797interface ITfThreadFocusSink : IUnknown 1798{ 1799 HRESULT OnSetThreadFocus(); 1800 1801 HRESULT OnKillThreadFocus(); 1802} 1803 1804[ 1805 object, 1806 uuid(71c6e74e-0f28-11d8-a82a-00065b84435c), 1807 pointer_default(unique) 1808] 1809interface ITfInputProcessorProfileActivationSink : IUnknown 1810{ 1811 HRESULT OnActivated( 1812 [in] DWORD dwProfileType, 1813 [in] LANGID langid, 1814 [in] REFCLSID clsid, 1815 [in] REFGUID catid, 1816 [in] REFGUID guidProfile, 1817 [in] HKL hkl, 1818 [in] DWORD dwFlags); 1819} 1820 1821[ 1822 object, 1823 local, 1824 uuid(a1adaaa2-3a24-449d-ac96-5183e7f5c217), 1825 pointer_default(unique) 1826] 1827interface ITfMouseSink : IUnknown 1828{ 1829 HRESULT OnMouseEvent( 1830 [in] ULONG uEdge, 1831 [in] ULONG uQuadrant, 1832 [in] DWORD dwBtnStatus, 1833 [out] BOOL *pfEaten); 1834} 1835 1836[ 1837 object, 1838 uuid(09d146cd-a544-4132-925b-7afa8ef322d0), 1839 pointer_default(unique) 1840] 1841interface ITfMouseTracker : IUnknown 1842{ 1843 HRESULT AdviseMouseSink( 1844 [in] ITfRange *range, 1845 [in] ITfMouseSink *pSink, 1846 [out] DWORD *pdwCookie); 1847 1848 HRESULT UnadviseMouseSink([in] DWORD dwCookie); 1849} 1850 1851[ 1852 object, 1853 uuid(3bdd78e2-c16e-47fd-b883-ce6facc1a208), 1854 pointer_default(unique) 1855] 1856interface ITfMouseTrackerACP : IUnknown 1857{ 1858 HRESULT AdviseMouseSink( 1859 [in] ITfRangeACP *range, 1860 [in] ITfMouseSink *pSink, 1861 [out] DWORD *pdwCookie); 1862 1863 HRESULT UnadviseMouseSink([in] DWORD dwCookie); 1864} 1865 1866[ 1867 object, 1868 local, 1869 uuid(a615096f-1c57-4813-8a15-55ee6e5a839c), 1870 pointer_default(unique) 1871] 1872interface ITfTransitoryExtensionSink : IUnknown 1873{ 1874 HRESULT OnTransitoryExtensionUpdated( 1875 [in] ITfContext *pic, 1876 [in] TfEditCookie ecReadOnly, 1877 [in] ITfRange *pResultRange, 1878 [in] ITfRange *pCompositionRange, 1879 [out] BOOL *pfDeleteResultRange); 1880} 1881