2 * Copyright 2008 Aric Stewart, CodeWeavers
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.
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.
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
22 import "textstor.idl";
26 cpp_quote("#define TF_E_STACKFULL MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0501)")
27 cpp_quote("#define TF_E_DISCONNECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0504)")
28 cpp_quote("#define TF_E_ALREADY_EXISTS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0506)")
29 cpp_quote("#define TF_E_NOLOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)")
31 cpp_quote("HRESULT WINAPI TF_CreateThreadMgr(ITfThreadMgr **pptim);")
32 cpp_quote("HRESULT WINAPI TF_GetThreadMgr(ITfThreadMgr **pptim);")
33 cpp_quote("HRESULT WINAPI TF_CreateInputProcessorProfiles(ITfInputProcessorProfiles **ppipr);")
34 cpp_quote("HRESULT WINAPI TF_CreateLangBarMgr(ITfLangBarMgr **pppbm);")
35 cpp_quote("HRESULT WINAPI TF_CreateLangBarItemMgr(ITfLangBarItemMgr **pplbim);")
36 cpp_quote("HRESULT WINAPI TF_InvalidAssemblyListCacheIfExist(void);")
38 cpp_quote("EXTERN_C const GUID GUID_PROP_TEXTOWNER;")
39 cpp_quote("DEFINE_GUID(GUID_PROP_ATTRIBUTE,0x34b45670,0x7526,0x11d2,0xa1,0x47,0x00,0x10,0x5a,0x27,0x99,0xb5);")
40 cpp_quote("EXTERN_C const GUID GUID_PROP_LANGID;")
41 cpp_quote("EXTERN_C const GUID GUID_PROP_READING;")
42 cpp_quote("EXTERN_C const GUID GUID_PROP_COMPOSING;")
44 cpp_quote("EXTERN_C const CLSID CLSID_TF_ThreadMgr;")
45 cpp_quote("EXTERN_C const CLSID CLSID_TF_InputProcessorProfiles;")
46 cpp_quote("EXTERN_C const CLSID CLSID_TF_LangBarMgr;")
47 cpp_quote("EXTERN_C const CLSID CLSID_TF_CategoryMgr;")
48 cpp_quote("EXTERN_C const CLSID CLSID_TF_DisplayAttributeMgr;")
50 /* GUIDs for Compartments */
51 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_DISABLED;")
52 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_OPENCLOSE;")
53 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_HANDWRITING_OPENCLOSE;")
54 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_DISABLED;")
55 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_OPENCLOSE;")
56 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_GLOBALSTATE;")
57 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_PERSISTMENUENABLED;")
58 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_EMPTYCONTEXT;")
59 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_TIPUISTATUS;")
61 /* GUIDs for Categories */
62 cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_KEYBOARD;")
63 cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_SPEECH;")
64 cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_HANDWRITING;")
65 cpp_quote("EXTERN_C const GUID GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER;")
67 typedef [uuid(7213778c-7bb0-4270-b050-6189ee594e97)] DWORD TfEditCookie;
68 typedef [uuid(de403c21-89fd-4f85-8b87-64584d063fbc)] DWORD TfClientId;
69 typedef [uuid(88a9c478-f3ec-4763-8345-cd9250443f8d)] DWORD TfGuidAtom;
71 cpp_quote("#define TF_MOD_ALT 0x0001")
72 cpp_quote("#define TF_MOD_CONTROL 0x0002")
73 cpp_quote("#define TF_MOD_SHIFT 0x0004")
74 cpp_quote("#define TF_MOD_RALT 0x0008")
75 cpp_quote("#define TF_MOD_RCONTROL 0x0010")
76 cpp_quote("#define TF_MOD_RSHIFT 0x0020")
77 cpp_quote("#define TF_MOD_LALT 0x0040")
78 cpp_quote("#define TF_MOD_LCONTROL 0x0080")
79 cpp_quote("#define TF_MOD_LSHIFT 0x0100")
80 cpp_quote("#define TF_MOD_ON_KEYUP 0x0200")
81 cpp_quote("#define TF_MOD_IGNORE_ALL_MODIFIER 0x0400")
83 cpp_quote("#define TF_PROFILETYPE_INPUTPROCESSOR 0x0001")
84 cpp_quote("#define TF_PROFILETYPE_KEYBOARDLAYOUT 0x0002")
86 cpp_quote("#define TF_IPSINK_FLAG_ACTIVE 0x0001")
88 interface ITfDocumentMgr;
90 interface IEnumTfDocumentMgrs;
91 interface IEnumTfContexts;
92 interface ITfCompartmentMgr;
93 interface ITfEditSession;
95 interface ITfProperty;
96 interface ITfReadOnlyProperty;
97 interface IEnumTfLanguageProfiles;
98 interface ITfCompositionView;
99 interface ITfKeyEventSink;
100 interface ITfPersistentPropertyLoaderACP;
101 interface ITfRangeACP;
104 typedef [uuid(4f5d560f-5ab5-4dde-8c4d-404592857ab0)] UINT_PTR HKL;
107 typedef [uuid(e26d9e1d-691e-4f29-90d7-338dcf1f8cef)] struct TF_PERSISTENT_PROPERTY_HEADER_ACP
115 } TF_PERSISTENT_PROPERTY_HEADER_ACP;
117 typedef [uuid(e1b5808d-1e46-4c19-84dc-68c5f5978cc8)] struct TF_LANGUAGEPROFILE
124 } TF_LANGUAGEPROFILE;
126 typedef [uuid(77c12f95-b783-450d-879f-1cd2362c6521)] struct TF_PRESERVEDKEY
132 typedef [uuid(5a886226-ae9a-489b-b991-2b1e25ee59a9)] enum { TF_ANCHOR_START = 0, TF_ANCHOR_END = 1 } TfAnchor;
136 uuid(101d6610-0990-11d3-8df0-00105a2799b5),
137 pointer_default(unique)
139 interface ITfFunctionProvider : IUnknown
144 HRESULT GetDescription(
150 [out, iid_is(riid)] IUnknown **func);
155 uuid(e4b24db0-0990-11d3-8df0-00105a2799b5),
156 pointer_default(unique)
158 interface IEnumTfFunctionProviders : IUnknown
161 [out] IEnumTfFunctionProviders **ret);
165 [out, size_is(count), length_is(*fetched)] ITfFunctionProvider **prov,
166 [out] ULONG *fetched);
176 uuid(aa80e801-2021-11d2-93e0-0060b067b86e),
177 pointer_default(unique)
179 interface ITfThreadMgr: IUnknown
182 [out] TfClientId *ptid);
184 HRESULT Deactivate();
186 HRESULT CreateDocumentMgr(
187 [out] ITfDocumentMgr **ppdim);
189 HRESULT EnumDocumentMgrs(
190 [out] IEnumTfDocumentMgrs **ppEnum);
193 [out] ITfDocumentMgr **ppdimFocus);
196 [in] ITfDocumentMgr *pdimFocus);
198 HRESULT AssociateFocus(
200 [in, unique] ITfDocumentMgr *pdimNew,
201 [out] ITfDocumentMgr **ppdimPrev);
203 HRESULT IsThreadFocus(
204 [out] BOOL *pfThreadFocus);
206 HRESULT GetFunctionProvider(
208 [out] ITfFunctionProvider **ppFuncProv);
210 HRESULT EnumFunctionProviders(
211 [out] IEnumTfFunctionProviders **ppEnum);
213 HRESULT GetGlobalCompartment(
214 [out] ITfCompartmentMgr **ppCompMgr);
219 uuid(3e90ade3-7594-4cb0-bb58-69628f5f458c),
220 pointer_default(unique)
222 interface ITfThreadMgrEx : ITfThreadMgr
225 [out] TfClientId *id,
227 HRESULT GetActiveFlags(
233 uuid(d7540241-f9a1-4364-befc-dbcd2c4395b7),
234 pointer_default(unique)
236 interface ITfCompositionView : IUnknown
238 HRESULT GetOwnerClsid([out] CLSID *pclsid);
240 HRESULT GetRange([out] ITfRange **ppRange);
245 uuid(aa80e7f4-2021-11d2-93e0-0060b067b86e),
246 pointer_default(unique)
248 interface ITfDocumentMgr: IUnknown
250 HRESULT CreateContext(
251 [in] TfClientId tidOwner,
253 [in, unique] IUnknown *punk,
254 [out] ITfContext **ppic,
255 [out] TfEditCookie *pecTextStore);
258 [in] ITfContext *pic);
260 const DWORD TF_POPF_ALL = 0x0001;
266 [out] ITfContext **ppic);
269 [out] ITfContext **ppic);
271 HRESULT EnumContexts(
272 [out] IEnumTfContexts **ppEnum);
277 uuid(2433bf8e-0f9b-435c-ba2c-180611978c30),
278 pointer_default(unique)
280 interface ITfContextView : IUnknown
282 HRESULT GetRangeFromPoint(
283 [in] TfEditCookie cookie,
284 [in] const POINT *pt,
286 [out] ITfRange **range);
289 [in] TfEditCookie cookie,
290 [in] ITfRange *range,
292 [out] BOOL *clipped);
294 HRESULT GetScreenExt(
303 uuid(f0c0f8dd-cf38-44e1-bb0f-68cf0d551c78),
304 pointer_default(unique)
306 interface IEnumTfContextViews : IUnknown
309 [out] IEnumTfContextViews **ret);
313 [out, size_is(count), length_is(*fetched)] ITfContextView **views,
314 [out] ULONG *fetched);
324 uuid(19188cb0-aca9-11d2-afc5-00105a2799b5),
325 pointer_default(unique)
327 interface IEnumTfProperties : IUnknown
330 [out] IEnumTfProperties **ret);
334 [out, size_is(count), length_is(*fetched)] ITfProperty **props,
335 [out] ULONG *fetched);
345 uuid(463a506d-6992-49d2-9b88-93d55e70bb16),
346 pointer_default(unique)
348 interface ITfRangeBackup : IUnknown
351 [in] TfEditCookie cookie,
352 [in] ITfRange *range);
357 uuid(aa80e901-2021-11d2-93e0-0060b067b86e),
358 pointer_default(unique)
360 interface ITextStoreACPServices : IUnknown
363 [in] ITfProperty *prop,
364 [in] ITfRange *range,
365 [out] TF_PERSISTENT_PROPERTY_HEADER_ACP *header,
366 [in] IStream *stream);
369 [in] ITfProperty *prop,
370 [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *header,
371 [in] IStream *stream,
372 [in] ITfPersistentPropertyLoaderACP *loader);
374 HRESULT ForceLoadProperty(
375 [in] ITfProperty *prop);
380 [out] ITfRangeACP **range);
385 uuid(aa80e7fd-2021-11d2-93e0-0060b067b86e),
386 pointer_default(unique)
388 interface ITfContext : IUnknown
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;
396 HRESULT RequestEditSession(
398 [in] ITfEditSession *pes,
400 [out] HRESULT *phrSession);
402 HRESULT InWriteSession(
404 [out] BOOL *pfWriteSession);
406 typedef [uuid(1690be9b-d3e9-49f6-8d8b-51b905af4c43)] enum { TF_AE_NONE, TF_AE_START, TF_AE_END } TfActiveSelEnd;
408 typedef [uuid(36ae42a4-6989-4bdc-b48a-6137b7bf2e42)] struct TF_SELECTIONSTYLE
414 typedef [uuid(75eb22f2-b0bf-46a8-8006-975a3b6efcf1)] struct TF_SELECTION
417 TF_SELECTIONSTYLE style;
420 const ULONG TF_DEFAULT_SELECTION = TS_DEFAULT_SELECTION;
422 HRESULT GetSelection(
423 [in] TfEditCookie ec,
426 [out, size_is(ulCount), length_is(*pcFetched)] TF_SELECTION *pSelection,
427 [out] ULONG *pcFetched);
429 HRESULT SetSelection(
430 [in] TfEditCookie ec,
432 [in, size_is(ulCount)] const TF_SELECTION *pSelection);
435 [in] TfEditCookie ec,
436 [out] ITfRange **ppStart);
439 [in] TfEditCookie ec,
440 [out] ITfRange **ppEnd);
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;
450 HRESULT GetActiveView(
451 [out] ITfContextView **ppView);
454 [out] IEnumTfContextViews **ppEnum);
457 [out] TF_STATUS *pdcs);
460 [in] REFGUID guidProp,
461 [out] ITfProperty **ppProp);
463 HRESULT GetAppProperty(
464 [in] REFGUID guidProp,
465 [out] ITfReadOnlyProperty **ppProp);
467 HRESULT TrackProperties(
468 [in, size_is(cProp)] const GUID **prgProp,
470 [in, size_is(cAppProp)] const GUID **prgAppProp,
472 [out] ITfReadOnlyProperty **ppProperty);
474 HRESULT EnumProperties(
475 [out] IEnumTfProperties **ppEnum);
477 HRESULT GetDocumentMgr(
478 [out] ITfDocumentMgr **ppDm);
480 HRESULT CreateRangeBackup(
481 [in] TfEditCookie ec,
482 [in] ITfRange *pRange,
483 [out] ITfRangeBackup **ppBackup);
486 const DWORD TF_INVALID_COOKIE = 0xffffffff;
490 uuid(4ea48a35-60ae-446f-8fd6-e6a8d82459f7),
491 pointer_default(unique)
493 interface ITfSource : IUnknown
497 [in, iid_is(riid)] IUnknown *punk,
498 [out] DWORD *pdwCookie);
500 HRESULT UnadviseSink(
501 [in] DWORD dwCookie);
507 uuid(1F02B6C5-7842-4EE6-8A0B-9A24183A95CA),
508 pointer_default(unique)
510 interface ITfInputProcessorProfiles : IUnknown
513 [in] REFCLSID rclsid);
516 [in] REFCLSID rclsid);
518 HRESULT AddLanguageProfile(
519 [in] REFCLSID rclsid,
521 [in] REFGUID guidProfile,
522 [in, size_is(cchDesc)] const WCHAR *pchDesc,
524 [in, size_is(cchFile)] const WCHAR *pchIconFile,
526 [in] ULONG uIconIndex);
528 HRESULT RemoveLanguageProfile(
529 [in] REFCLSID rclsid,
531 [in] REFGUID guidProfile);
533 HRESULT EnumInputProcessorInfo(
534 [out] IEnumGUID **ppEnum);
536 HRESULT GetDefaultLanguageProfile(
540 [out] GUID *pguidProfile);
542 HRESULT SetDefaultLanguageProfile(
544 [in] REFCLSID rclsid,
545 [in] REFGUID guidProfiles);
547 HRESULT ActivateLanguageProfile(
548 [in] REFCLSID rclsid,
550 [in] REFGUID guidProfiles);
552 HRESULT GetActiveLanguageProfile(
553 [in] REFCLSID rclsid,
554 [out] LANGID *plangid,
555 [out] GUID *pguidProfile);
557 HRESULT GetLanguageProfileDescription(
558 [in] REFCLSID rclsid,
560 [in] REFGUID guidProfile,
561 [out] BSTR *pbstrProfile);
563 HRESULT GetCurrentLanguage(
564 [out] LANGID *plangid);
566 HRESULT ChangeCurrentLanguage(
569 HRESULT GetLanguageList(
570 [out] LANGID **ppLangId,
571 [out] ULONG *pulCount);
573 HRESULT EnumLanguageProfiles(
575 [out] IEnumTfLanguageProfiles **ppEnum);
577 HRESULT EnableLanguageProfile(
578 [in] REFCLSID rclsid,
580 [in] REFGUID guidProfile,
583 HRESULT IsEnabledLanguageProfile(
584 [in] REFCLSID rclsid,
586 [in] REFGUID guidProfile,
587 [out] BOOL *pfEnable);
589 HRESULT EnableLanguageProfileByDefault(
590 [in] REFCLSID rclsid,
592 [in] REFGUID guidProfile,
595 HRESULT SubstituteKeyboardLayout(
596 [in] REFCLSID rclsid,
598 [in] REFGUID guidProfile,
602 typedef [uuid(44d2825a-10e5-43b2-877f-6cb2f43b7e7e)]
603 struct TF_INPUTPROCESSORPROFILE {
613 } TF_INPUTPROCESSORPROFILE;
617 uuid(71c6e74d-0f28-11d8-a82a-00065b84435c),
618 pointer_default(unique)
620 interface IEnumTfInputProcessorProfiles : IUnknown
623 [out] IEnumTfInputProcessorProfiles **ppEnum);
627 [out, size_is(ulCount), length_is(*pcFetch)] TF_INPUTPROCESSORPROFILE *pProfile,
628 [out] ULONG *pcFetch);
638 uuid(71c6e74c-0f28-11d8-a82a-00065b84435c),
639 pointer_default(unique)
641 interface ITfInputProcessorProfileMgr : IUnknown
643 HRESULT ActivateProfile(
644 [in] DWORD dwProfileType,
647 [in] REFGUID guidProfile,
651 HRESULT DeactivateProfile(
652 [in] DWORD dwProfileType,
655 [in] REFGUID guidProfile,
660 [in] DWORD dwProfileType,
663 [in] REFGUID guidProfile,
665 [out] TF_INPUTPROCESSORPROFILE *pProfile);
668 HRESULT EnumProfiles(
670 [out] IEnumTfInputProcessorProfiles **ppEnum);
672 HRESULT ReleaseInputProcessor(
673 [in] REFCLSID rclsid,
676 HRESULT RegisterProfile(
677 [in] REFCLSID rclsid,
679 [in] REFGUID guidProfile,
680 [in, size_is(cchDesc)] const WCHAR *pchDesc,
682 [in, size_is(cchFile)] const WCHAR *pchIconFile,
684 [in] ULONG uIconIndex,
685 [in] HKL hklsubstitute,
686 [in] DWORD dwPreferredLayout,
687 [in] BOOL bEnabledByDefault,
690 HRESULT UnregisterProfile(
691 [in] REFCLSID rclsid,
693 [in] REFGUID guidProfile,
696 HRESULT GetActiveProfile(
698 [out] TF_INPUTPROCESSORPROFILE *pProfile);
701 typedef [uuid(c4cc07f1-80cc-4a7b-bc54-98512782cbe3)]
710 typedef [uuid(d9b92e21-084a-401b-9c64-1e6dad91a1ab)]
717 typedef [uuid(90d0cb5e-6520-4a0f-b47c-c39bd955f0d6)]
719 TF_DA_COLORTYPE type;
720 [switch_type(TF_DA_COLORTYPE), switch_is(type)]
722 [case(TF_CT_SYSCOLOR)] int nIndex;
723 [case(TF_CT_COLORREF)] COLORREF cr;
727 typedef [uuid(33d2fe4b-6c24-4f67-8d75-3bc1819e4126)]
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,
738 typedef [uuid(1bf1c305-419b-4182-a4d2-9bfadc3f021f)]
739 struct TF_DISPLAYATTRIBUTE {
742 TF_DA_LINESTYLE lsStyle;
745 TF_DA_ATTR_INFO bAttr;
746 } TF_DISPLAYATTRIBUTE;
750 uuid(70528852-2f26-4aea-8c96-215150578932),
751 pointer_default(unique)
753 interface ITfDisplayAttributeInfo : IUnknown
755 HRESULT GetGUID([out] GUID *pguid);
757 HRESULT GetDescription([out] BSTR *pbstrDesc);
759 HRESULT GetAttributeInfo([out] TF_DISPLAYATTRIBUTE *pda);
761 HRESULT SetAttributeInfo([in] const TF_DISPLAYATTRIBUTE *pda);
768 uuid(7cef04d7-cb75-4e80-a7ab-5f5bc7d332de),
769 pointer_default(unique)
771 interface IEnumTfDisplayAttributeInfo : IUnknown
773 HRESULT Clone([out] IEnumTfDisplayAttributeInfo **ppEnum);
777 [out, size_is(ulCount), length_is(*pcFetched)] ITfDisplayAttributeInfo **rgInfo,
778 [out] ULONG *pcFetched);
782 HRESULT Skip([in] ULONG ulCount);
788 uuid(8ded7393-5db1-475c-9e71-a39111b0ff67),
789 pointer_default(unique)
791 interface ITfDisplayAttributeMgr : IUnknown
793 HRESULT OnUpdateInfo();
795 HRESULT EnumDisplayAttributeInfo([out] IEnumTfDisplayAttributeInfo **ppEnum);
797 HRESULT GetDisplayAttributeInfo(
799 [out] ITfDisplayAttributeInfo **ppInfo,
800 [out] CLSID *pclsidOwner);
807 uuid(c3acefb5-f69d-4905-938f-fcadcf4be830),
808 pointer_default(unique)
810 interface ITfCategoryMgr : IUnknown
812 HRESULT RegisterCategory([in] REFCLSID rclsid,
816 HRESULT UnregisterCategory([in] REFCLSID rclsid,
820 HRESULT EnumCategoriesInItem([in] REFGUID rguid,
821 [out] IEnumGUID **ppEnum);
823 HRESULT EnumItemsInCategory([in] REFGUID rcatid,
824 [out] IEnumGUID **ppEnum);
826 HRESULT FindClosestCategory([in] REFGUID rguid,
828 [in, size_is(ulCount)] const GUID **ppcatidList,
831 HRESULT RegisterGUIDDescription([in] REFCLSID rclsid,
833 [in, size_is(cch)] const WCHAR *pchDesc,
836 HRESULT UnregisterGUIDDescription([in] REFCLSID rclsid,
839 HRESULT GetGUIDDescription([in] REFGUID rguid,
840 [out] BSTR *pbstrDesc);
842 HRESULT RegisterGUIDDWORD([in] REFCLSID rclsid,
846 HRESULT UnregisterGUIDDWORD([in] REFCLSID rclsid,
849 HRESULT GetGUIDDWORD([in] REFGUID rguid,
852 HRESULT RegisterGUID([in] REFGUID rguid,
853 [out] TfGuidAtom *pguidatom);
855 HRESULT GetGUID([in] TfGuidAtom guidatom,
858 HRESULT IsEqualTfGuidAtom([in] TfGuidAtom guidatom,
860 [out] BOOL *pfEqual);
865 uuid(f99d3f40-8e32-11d2-bf46-00105a2799b5),
866 pointer_default(unique)
868 interface IEnumTfRanges : IUnknown
870 HRESULT Clone([out] IEnumTfRanges **ppEnum);
874 [out, size_is(ulCount), length_is(*pcFetched)] ITfRange **ppRange,
875 [out] ULONG *pcFetched);
879 HRESULT Skip(ULONG ulCount);
884 uuid(42d4d099-7c1a-4a89-b836-6c6f22160df0),
885 pointer_default(unique)
887 interface ITfEditRecord : IUnknown
889 const DWORD TF_GTP_INCL_TEXT = 0x1;
891 HRESULT GetSelectionStatus(
892 [out] BOOL *changed);
894 HRESULT GetTextAndPropertyUpdates(
896 [in, size_is(count)] const GUID **props,
898 [out] IEnumTfRanges **ret);
903 uuid(8127d409-ccd3-4683-967a-b43d5b482bf7),
904 pointer_default(unique)
906 interface ITfTextEditSink : IUnknown
909 [in] ITfContext *pic,
910 [in] TfEditCookie ecReadOnly,
911 [in] ITfEditRecord *pEditRecord);
916 uuid(5F20AA40-B57A-4F34-96AB-3576F377CC79),
917 pointer_default(unique)
919 interface ITfContextOwnerCompositionSink : IUnknown
921 HRESULT OnStartComposition(
922 [in] ITfCompositionView *pComposition,
925 HRESULT OnUpdateComposition(
926 [in] ITfCompositionView *pComposition,
927 [in] ITfRange *pRangeNew);
929 HRESULT OnEndComposition(
930 [in] ITfCompositionView *pComposition);
935 uuid(b246cb75-a93e-4652-bf8c-b3fe0cfd7e57),
936 pointer_default(unique)
938 interface ITfActiveLanguageProfileNotifySink : IUnknown
942 [in] REFGUID guidProfile,
943 [in] BOOL fActivated);
948 uuid(3d61bf11-ac5f-42c8-a4cb-931bcc28c744),
949 pointer_default(unique)
951 interface IEnumTfLanguageProfiles : IUnknown
954 [out] IEnumTfLanguageProfiles **ppEnum);
958 [out, size_is(ulCount), length_is(*pcFetch)] TF_LANGUAGEPROFILE *pProfile,
959 [out] ULONG *pcFetch);
970 uuid(aa80e7f7-2021-11d2-93e0-0060b067b86e),
971 pointer_default(unique)
973 interface ITfTextInputProcessor : IUnknown
976 [in] ITfThreadMgr *ptim,
977 [in] TfClientId tid);
979 HRESULT Deactivate();
984 uuid(aa80e80e-2021-11d2-93e0-0060b067b86e),
985 pointer_default(unique)
987 interface ITfThreadMgrEventSink : IUnknown
989 HRESULT OnInitDocumentMgr(
990 [in] ITfDocumentMgr *pdim);
992 HRESULT OnUninitDocumentMgr(
993 [in] ITfDocumentMgr *pdim);
996 [in] ITfDocumentMgr *pdimFocus,
997 [in] ITfDocumentMgr *pdimPrevFocus);
999 HRESULT OnPushContext(
1000 [in] ITfContext *pic);
1002 HRESULT OnPopContext(
1003 [in] ITfContext *pic);
1009 uuid(aa80e7f0-2021-11d2-93e0-0060b067b86e),
1010 pointer_default(unique)
1012 interface ITfKeystrokeMgr : IUnknown
1014 HRESULT AdviseKeyEventSink(
1015 [in] TfClientId tid,
1016 [in] ITfKeyEventSink *pSink,
1017 [in] BOOL fForeground);
1019 HRESULT UnadviseKeyEventSink(
1020 [in] TfClientId tid);
1022 HRESULT GetForeground(
1023 [out] CLSID *pclsid);
1025 HRESULT TestKeyDown(
1028 [out] BOOL *pfEaten);
1033 [out] BOOL *pfEaten);
1038 [out] BOOL *pfEaten);
1043 [out] BOOL *pfEaten);
1045 HRESULT GetPreservedKey(
1046 [in] ITfContext *pic,
1047 [in] const TF_PRESERVEDKEY *pprekey,
1050 HRESULT IsPreservedKey(
1052 [in] const TF_PRESERVEDKEY *pprekey,
1053 [out] BOOL *pfRegistered);
1055 HRESULT PreserveKey(
1056 [in] TfClientId tid,
1058 [in] const TF_PRESERVEDKEY *prekey,
1059 [in, size_is(cchDesc)] const WCHAR *pchDesc,
1060 [in] ULONG cchDesc);
1062 HRESULT UnpreserveKey(
1064 [in] const TF_PRESERVEDKEY *pprekey);
1066 HRESULT SetPreservedKeyDescription(
1068 [in, size_is(cchDesc)] const WCHAR *pchDesc,
1069 [in] ULONG cchDesc);
1071 HRESULT GetPreservedKeyDescription(
1073 [out] BSTR *pbstrDesc);
1075 HRESULT SimulatePreservedKey(
1076 [in] ITfContext *pic,
1078 [out] BOOL *pfEaten);
1084 uuid(aa80e7f5-2021-11d2-93e0-0060b067b86e),
1085 pointer_default(unique)
1087 interface ITfKeyEventSink : IUnknown
1090 [in] BOOL fForeground);
1092 HRESULT OnTestKeyDown(
1093 [in] ITfContext *pic,
1096 [out] BOOL *pfEaten);
1098 HRESULT OnTestKeyUp(
1099 [in] ITfContext *pic,
1102 [out] BOOL *pfEaten);
1105 [in] ITfContext *pic,
1108 [out] BOOL *pfEaten);
1111 [in] ITfContext *pic,
1114 [out] BOOL *pfEaten);
1116 HRESULT OnPreservedKey(
1117 [in] ITfContext *pic,
1119 [out] BOOL *pfEaten);
1125 uuid(8f1b8ad8-0b6b-4874-90c5-bd76011e8f7c),
1126 pointer_default(unique)
1128 interface ITfMessagePump : IUnknown
1130 HRESULT PeekMessageA(
1133 [in] UINT wMsgFilterMin,
1134 [in] UINT wMsgFilterMax,
1135 [in] UINT wRemoveMsg,
1136 [out] BOOL *pfResult);
1138 HRESULT GetMessageA(
1141 [in] UINT wMsgFilterMin,
1142 [in] UINT wMsgFilterMax,
1143 [out] BOOL *pfResult);
1145 HRESULT PeekMessageW(
1148 [in] UINT wMsgFilterMin,
1149 [in] UINT wMsgFilterMax,
1150 [in] UINT wRemoveMsg,
1151 [out] BOOL *pfResult);
1153 HRESULT GetMessageW(
1156 [in] UINT wMsgFilterMin,
1157 [in] UINT wMsgFilterMax,
1158 [out] BOOL *pfResult);
1164 uuid(d60a7b49-1b9f-4be2-b702-47e9dc05dec3),
1165 pointer_default(unique)
1167 interface ITfClientId : IUnknown
1169 HRESULT GetClientId(
1170 [in] REFCLSID rclsid,
1171 [out] TfClientId *ptid);
1176 uuid(43c9fe15-f494-4c17-9de2-b8a4ac350aa8),
1177 pointer_default(unique)
1179 interface ITfLanguageProfileNotifySink : IUnknown
1181 HRESULT OnLanguageChange(
1183 [out] BOOL *pfAccept);
1185 HRESULT OnLanguageChanged();
1190 uuid(aa80e803-2021-11d2-93e0-0060b067b86e),
1191 pointer_default(unique)
1193 interface ITfEditSession : IUnknown
1195 HRESULT DoEditSession(
1196 [in] TfEditCookie ec);
1201 uuid(aa80e7ff-2021-11d2-93e0-0060b067b86e),
1202 pointer_default(unique)
1204 interface ITfRange : IUnknown
1206 const WCHAR TF_CHAR_EMBEDDED = TS_CHAR_EMBEDDED;
1208 typedef [uuid(cf610f06-2882-46f6-abe5-298568b664c4)] enum { TF_GRAVITY_BACKWARD = 0, TF_GRAVITY_FORWARD = 1 } TfGravity;
1210 typedef [uuid(1e512533-bbdc-4530-9a8e-a1dc0af67468)] enum { TF_SD_BACKWARD = 0, TF_SD_FORWARD = 1 } TfShiftDir;
1212 const DWORD TF_HF_OBJECT = 1;
1213 const DWORD TF_TF_MOVESTART = 1;
1214 const DWORD TF_TF_IGNOREEND = 2;
1215 const DWORD TF_ST_CORRECTION = 1;
1216 const DWORD TF_IE_CORRECTION = 1;
1218 typedef [uuid(49930d51-7d93-448c-a48c-fea5dac192b1)] struct TF_HALTCOND
1220 ITfRange *pHaltRange;
1226 [in] TfEditCookie ec,
1228 [out, size_is(cchMax), length_is(*pcch)] WCHAR *pchText,
1233 [in] TfEditCookie ec,
1235 [in, size_is(cch), unique] const WCHAR *pchText,
1238 HRESULT GetFormattedText(
1239 [in] TfEditCookie ec,
1240 [out] IDataObject **ppDataObject);
1242 HRESULT GetEmbedded(
1243 [in] TfEditCookie ec,
1244 [in] REFGUID rguidService,
1246 [out, iid_is(riid)] IUnknown **ppunk);
1248 HRESULT InsertEmbedded(
1249 [in] TfEditCookie ec,
1251 [in] IDataObject *pDataObject);
1254 [in] TfEditCookie ec,
1257 [in, unique] const TF_HALTCOND *pHalt);
1260 [in] TfEditCookie ec,
1263 [in, unique] const TF_HALTCOND *pHalt);
1265 HRESULT ShiftStartToRange(
1266 [in] TfEditCookie ec,
1267 [in] ITfRange *pRange,
1268 [in] TfAnchor aPos);
1270 HRESULT ShiftEndToRange(
1271 [in] TfEditCookie ec,
1272 [in] ITfRange *pRange,
1273 [in] TfAnchor aPos);
1275 HRESULT ShiftStartRegion(
1276 [in] TfEditCookie ec,
1277 [in] TfShiftDir dir,
1278 [out] BOOL *pfNoRegion);
1280 HRESULT ShiftEndRegion(
1281 [in] TfEditCookie ec,
1282 [in] TfShiftDir dir,
1283 [out] BOOL *pfNoRegion);
1286 [in] TfEditCookie ec,
1287 [out] BOOL *pfEmpty);
1290 [in] TfEditCookie ec,
1291 [in] TfAnchor aPos);
1293 HRESULT IsEqualStart(
1294 [in] TfEditCookie ec,
1295 [in] ITfRange *pWith,
1297 [out] BOOL *pfEqual);
1300 [in] TfEditCookie ec,
1301 [in] ITfRange *pWith,
1303 [out] BOOL *pfEqual);
1305 HRESULT CompareStart(
1306 [in] TfEditCookie ec,
1307 [in] ITfRange *pWith,
1309 [out] LONG *plResult);
1312 [in] TfEditCookie ec,
1313 [in] ITfRange *pWith,
1315 [out] LONG *plResult);
1317 HRESULT AdjustForInsert(
1318 [in] TfEditCookie ec,
1319 [in] ULONG cchInsert,
1320 [out] BOOL *pfInsertOk);
1323 [out] TfGravity *pgStart,
1324 [out] TfGravity *pgEnd);
1327 [in] TfEditCookie ec,
1328 [in] TfGravity gStart,
1329 [in] TfGravity gEnd);
1332 [out] ITfRange **ppClone);
1335 [out] ITfContext **ppContext);
1340 uuid(057a6296-029b-4154-b79a-0d461d4ea94c),
1341 pointer_default(unique)
1343 interface ITfRangeACP : ITfRange
1345 HRESULT GetExtent([out] LONG *pacpAnchor,
1348 HRESULT SetExtent([in] LONG acpAnchor,
1354 uuid(55ce16ba-3014-41c1-9ceb-fade1446ac6c),
1355 pointer_default(unique)
1357 interface ITfInsertAtSelection : IUnknown
1359 const DWORD TF_IAS_NOQUERY = 0x1;
1360 const DWORD TF_IAS_QUERYONLY = 0x2;
1361 const DWORD TF_IAS_NO_DEFAULT_COMPOSITION = 0x80000000;
1363 HRESULT InsertTextAtSelection(
1364 [in] TfEditCookie ec,
1366 [in, size_is(cch)] const WCHAR *pchText,
1368 [out] ITfRange **ppRange);
1370 HRESULT InsertEmbeddedAtSelection(
1371 [in] TfEditCookie ec,
1373 [in] IDataObject *pDataObject,
1374 [out] ITfRange **ppRange);
1379 uuid(6834b120-88cb-11d2-bf45-00105a2799b5),
1380 pointer_default(unique)
1382 interface ITfPropertyStore : IUnknown
1384 const DWORD TF_TU_CORRECTION = 0x1;
1386 HRESULT GetType([out] GUID *pguid);
1388 HRESULT GetDataType([out] DWORD *pdwReserved);
1390 HRESULT GetData([out] VARIANT *pvarValue);
1392 HRESULT OnTextUpdated(
1394 [in] ITfRange *pRangeNew,
1395 [out] BOOL *pfAccept);
1398 [in] ITfRange *pRangeNew,
1399 [out] BOOL *pfFree);
1402 [in] ITfRange *pRangeThis,
1403 [in] ITfRange *pRangeNew,
1404 [out] ITfPropertyStore **ppPropStore);
1407 [out] ITfPropertyStore **pPropStore);
1409 HRESULT GetPropertyRangeCreator(
1410 [out] CLSID *pclsid);
1413 [in] IStream *pStream,
1419 uuid(5efd22Ba-7838-46cb-88e2-cadb14124f8f),
1420 pointer_default(unique)
1422 interface IEnumITfCompositionView : IUnknown
1424 HRESULT Clone([out] IEnumITfCompositionView **ppEnum);
1428 [out, size_is(ulCount), length_is(*pcFetched)] ITfCompositionView **rgCompositionView,
1429 [out] ULONG *pcFetched);
1433 HRESULT Skip([in] ULONG ulCount);
1438 uuid(20168d64-5a8f-4a5a-b7bd-cfa29f4D0fd9),
1439 pointer_default(unique)
1441 interface ITfComposition : IUnknown
1443 HRESULT GetRange([out] ITfRange **ppRange);
1446 [in] TfEditCookie ecWrite,
1447 [in] ITfRange *pNewStart);
1450 [in] TfEditCookie ecWrite,
1451 [in] ITfRange *pNewEnd);
1453 HRESULT EndComposition([in] TfEditCookie ecWrite);
1458 uuid(a781718c-579a-4b15-a280-32b8577acc5e),
1459 pointer_default(unique)
1461 interface ITfCompositionSink : IUnknown
1463 HRESULT OnCompositionTerminated(
1464 [in] TfEditCookie ecWrite,
1465 [in] ITfComposition *pComposition);
1470 uuid(d40C8aae-aC92-4fc7-9a11-0ee0e23aa39b),
1471 pointer_default(unique)
1473 interface ITfContextComposition : IUnknown
1475 HRESULT StartComposition(
1476 [in] TfEditCookie ecWrite,
1477 [in] ITfRange *pCompositionRange,
1478 [in] ITfCompositionSink *pSink,
1479 [out] ITfComposition **ppComposition);
1481 HRESULT EnumCompositions([out] IEnumITfCompositionView **ppEnum);
1483 HRESULT FindComposition(
1484 [in] TfEditCookie ecRead,
1485 [in] ITfRange *pTestRange,
1486 [out] IEnumITfCompositionView **ppEnum);
1488 HRESULT TakeOwnership(
1489 [in] TfEditCookie ecWrite,
1490 [in] ITfCompositionView *pComposition,
1491 [in] ITfCompositionSink *pSink,
1492 [out] ITfComposition **ppComposition);
1497 uuid(86462810-593b-4916-9764-19c08e9ce110),
1498 pointer_default(unique)
1500 interface ITfContextOwnerCompositionServices : ITfContextComposition
1502 HRESULT TerminateComposition([in] ITfCompositionView *pComposition);
1507 uuid(4ef89150-0807-11d3-8df0-00105a2799b5),
1508 pointer_default(unique)
1510 interface ITfPersistentPropertyLoaderACP : IUnknown
1512 HRESULT LoadProperty(
1513 [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
1514 [out] IStream **ppStream);
1519 uuid(b23eb630-3e1c-11d3-a745-0050040ab407),
1520 pointer_default(unique)
1522 interface ITfContextOwnerServices : IUnknown
1524 HRESULT OnLayoutChange();
1526 HRESULT OnStatusChange([in] DWORD dwFlags);
1528 HRESULT OnAttributeChange([in] REFGUID rguidAttribute);
1531 [in] ITfProperty *pProp,
1532 [in] ITfRange *pRange,
1533 [out] TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
1534 [in] IStream *pStream);
1536 HRESULT Unserialize(
1537 [in] ITfProperty *pProp,
1538 [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
1539 [in] IStream *pStream,
1540 [in] ITfPersistentPropertyLoaderACP *pLoader);
1542 HRESULT ForceLoadProperty([in] ITfProperty *pProp);
1544 HRESULT CreateRange(
1547 [out] ITfRangeACP **ppRange);
1552 uuid(17d49a3d-f8b8-4b2f-b254-52319dd64c53),
1553 pointer_default(unique)
1555 interface ITfReadOnlyProperty : IUnknown
1557 HRESULT GetType([out] GUID *pguid);
1560 [in] TfEditCookie ec,
1561 [out] IEnumTfRanges **ppEnum,
1562 [in] ITfRange *pTargetRange);
1565 [in] TfEditCookie ec,
1566 [in] ITfRange *pRange,
1567 [out] VARIANT *pvarValue);
1569 HRESULT GetContext([out] ITfContext **ppContext);
1574 uuid(e2449660-9542-11d2-bf46-00105a2799b5),
1575 pointer_default(unique)
1577 interface ITfProperty : ITfReadOnlyProperty
1580 [in] TfEditCookie ec,
1581 [in] ITfRange *pRange,
1582 [out] ITfRange **ppRange,
1583 [in] TfAnchor aPos);
1585 HRESULT SetValueStore(
1586 [in] TfEditCookie ec,
1587 [in] ITfRange *pRange,
1588 [in] ITfPropertyStore *pPropStore);
1591 [in] TfEditCookie ec,
1592 [in] ITfRange *pRange,
1593 [in] const VARIANT *pvarValue);
1596 [in] TfEditCookie ec,
1597 [in] ITfRange *pRange);
1602 uuid(bb08f7a9-607a-4384-8623-056892b64371),
1603 pointer_default(unique)
1605 interface ITfCompartment : IUnknown
1608 [in] TfClientId tid,
1609 [in] const VARIANT *pvarValue);
1612 [out] VARIANT *pvarValue);
1617 uuid(7dcf57ac-18ad-438b-824d-979bffb74b7c),
1618 pointer_default(unique)
1620 interface ITfCompartmentMgr : IUnknown
1622 HRESULT GetCompartment(
1624 [out] ITfCompartment **ppcomp);
1626 HRESULT ClearCompartment(
1627 [in] TfClientId tid,
1628 [in] REFGUID rguid);
1630 HRESULT EnumCompartments(
1631 [out] IEnumGUID **ppEnum);
1636 uuid(743abd5f-f26d-48df-8cc5-238492419b64),
1637 pointer_default(unique)
1639 interface ITfCompartmentEventSink : IUnknown
1642 [in] REFGUID rguid);
1647 uuid(8f1a7ea6-1654-4502-a86e-b2902344d507),
1648 pointer_default(unique)
1650 interface IEnumTfContexts : IUnknown
1653 [out] IEnumTfContexts **ppEnum);
1657 [out, size_is(ulCount), length_is(*pcFetched)] ITfContext **rgContext,
1658 [out] ULONG *pcFetched);
1663 [in] ULONG ulCount);
1668 uuid(aa80e808-2021-11d2-93e0-0060b067b86e),
1669 pointer_default(unique)
1671 interface IEnumTfDocumentMgrs : IUnknown
1674 [out] IEnumTfDocumentMgrs **ppEnum);
1678 [out, size_is(ulCount), length_is(*pcFetched)] ITfDocumentMgr **rgDocumentMgr,
1679 [out] ULONG *pcFetched);
1684 [in] ULONG ulCount);
1690 uuid(ea1ea137-19df-11d7-a6d2-00065b84435c),
1691 pointer_default(unique)
1693 interface ITfUIElement : IUnknown
1695 HRESULT GetDescription(
1696 [out] BSTR *description);
1711 uuid(887aa91e-acba-4931-84da-3c5208cf543f),
1712 pointer_default(unique)
1714 interface IEnumTfUIElements : IUnknown
1717 [out] IEnumTfUIElements **enum_elements);
1721 [out, size_is(count), length_is(fetched)] ITfUIElement **element,
1722 [out] ULONG fetched);
1733 uuid(ea1ea135-19df-11d7-a6d2-00065b84435c),
1734 pointer_default(unique)
1736 interface ITfUIElementMgr : IUnknown
1738 HRESULT BeginUIElement(
1739 [in] ITfUIElement *element,
1740 [in, out] BOOL *show,
1743 HRESULT UpdateUIElement(
1746 HRESULT EndUIElement(
1749 HRESULT GetUIElement(
1751 [out] ITfUIElement **element);
1753 HRESULT EnumUIElements(
1754 [out] IEnumTfUIElements **enum_elements);
1759 uuid(73131f9c-56a9-49dd-b0ee-d046633f7528),
1760 pointer_default(unique)
1762 interface ITfSourceSingle : IUnknown
1764 HRESULT AdviseSingleSink(
1765 [in] TfClientId tid,
1767 [in, iid_is(riid)] IUnknown *punk);
1769 HRESULT UnadviseSingleSink(
1770 [in] TfClientId tid,
1777 uuid(c0f1db0c-3a20-405c-a303-96b6010a885f),
1778 pointer_default(unique)
1780 interface ITfThreadFocusSink : IUnknown
1782 HRESULT OnSetThreadFocus();
1784 HRESULT OnKillThreadFocus();
1789 uuid(71c6e74e-0f28-11d8-a82a-00065b84435c),
1790 pointer_default(unique)
1792 interface ITfInputProcessorProfileActivationSink : IUnknown
1794 HRESULT OnActivated(
1795 [in] DWORD dwProfileType,
1797 [in] REFCLSID clsid,
1799 [in] REFGUID guidProfile,
1801 [in] DWORD dwFlags);
1807 uuid(a1adaaa2-3a24-449d-ac96-5183e7f5c217),
1808 pointer_default(unique)
1810 interface ITfMouseSink : IUnknown
1812 HRESULT OnMouseEvent(
1814 [in] ULONG uQuadrant,
1815 [in] DWORD dwBtnStatus,
1816 [out] BOOL *pfEaten);
1821 uuid(09d146cd-a544-4132-925b-7afa8ef322d0),
1822 pointer_default(unique)
1824 interface ITfMouseTracker : IUnknown
1826 HRESULT AdviseMouseSink(
1827 [in] ITfRange *range,
1828 [in] ITfMouseSink *pSink,
1829 [out] DWORD *pdwCookie);
1831 HRESULT UnadviseMouseSink([in] DWORD dwCookie);
1836 uuid(3bdd78e2-c16e-47fd-b883-ce6facc1a208),
1837 pointer_default(unique)
1839 interface ITfMouseTrackerACP : IUnknown
1841 HRESULT AdviseMouseSink(
1842 [in] ITfRangeACP *range,
1843 [in] ITfMouseSink *pSink,
1844 [out] DWORD *pdwCookie);
1846 HRESULT UnadviseMouseSink([in] DWORD dwCookie);
1852 uuid(a615096f-1c57-4813-8a15-55ee6e5a839c),
1853 pointer_default(unique)
1855 interface ITfTransitoryExtensionSink : IUnknown
1857 HRESULT OnTransitoryExtensionUpdated(
1858 [in] ITfContext *pic,
1859 [in] TfEditCookie ecReadOnly,
1860 [in] ITfRange *pResultRange,
1861 [in] ITfRange *pCompositionRange,
1862 [out] BOOL *pfDeleteResultRange);