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";
23 /* import "ctfutb.idl"; */
25 cpp_quote("#include <winuser.h>")
27 /* FIXME: LANGID is defined in winnt.h and mlang.h in the platform SDK */
28 cpp_quote("#ifndef _WINNT_H")
32 cpp_quote("#define TF_E_STACKFULL MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0501)")
33 cpp_quote("#define TF_E_DISCONNECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0504)")
34 cpp_quote("#define TF_E_ALREADY_EXISTS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0506)")
35 cpp_quote("#define TF_E_NOLOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)")
37 cpp_quote("HRESULT WINAPI TF_CreateThreadMgr(ITfThreadMgr **pptim);")
38 cpp_quote("HRESULT WINAPI TF_GetThreadMgr(ITfThreadMgr **pptim);")
39 cpp_quote("HRESULT WINAPI TF_CreateInputProcessorProfiles(ITfInputProcessorProfiles **ppipr);")
41 cpp_quote("EXTERN_C const GUID GUID_PROP_TEXTOWNER;")
42 cpp_quote("DEFINE_GUID(GUID_PROP_ATTRIBUTE,0x34b45670,0x7526,0x11d2,0xa1,0x47,0x00,0x10,0x5a,0x27,0x99,0xb5);")
43 cpp_quote("EXTERN_C const GUID GUID_PROP_LANGID;")
44 cpp_quote("EXTERN_C const GUID GUID_PROP_READING;")
45 cpp_quote("EXTERN_C const GUID GUID_PROP_COMPOSING;")
47 cpp_quote("EXTERN_C const CLSID CLSID_TF_ThreadMgr;")
48 cpp_quote("EXTERN_C const CLSID CLSID_TF_InputProcessorProfiles;")
49 cpp_quote("EXTERN_C const CLSID CLSID_TF_CategoryMgr;")
50 cpp_quote("DEFINE_GUID(CLSID_TF_DisplayAttributeMgr,0x3ce74de4,0x53d3,0x4d74,0x8b,0x83,0x43,0x1b,0x38,0x28,0xba,0x53);")
52 /* GUIDs for Compartments */
53 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_DISABLED;")
54 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_OPENCLOSE;")
55 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_HANDWRITING_OPENCLOSE;")
56 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_DISABLED;")
57 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_OPENCLOSE;")
58 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_GLOBALSTATE;")
59 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_PERSISTMENUENABLED;")
60 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_EMPTYCONTEXT;")
61 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_TIPUISTATUS;")
63 /* GUIDs for Categories */
64 cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_KEYBOARD;")
65 cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_SPEECH;")
66 cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_HANDWRITING;")
67 cpp_quote("EXTERN_C const GUID GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER;")
69 typedef [uuid(7213778c-7bb0-4270-b050-6189ee594e97)] DWORD TfEditCookie;
70 typedef [uuid(de403c21-89fd-4f85-8b87-64584d063fbc)] DWORD TfClientId;
71 typedef [uuid(88a9c478-f3ec-4763-8345-cd9250443f8d)] DWORD TfGuidAtom;
73 cpp_quote("#define TF_MOD_ALT 0x0001")
74 cpp_quote("#define TF_MOD_CONTROL 0x0002")
75 cpp_quote("#define TF_MOD_SHIFT 0x0004")
76 cpp_quote("#define TF_MOD_RALT 0x0008")
77 cpp_quote("#define TF_MOD_RCONTROL 0x0010")
78 cpp_quote("#define TF_MOD_RSHIFT 0x0020")
79 cpp_quote("#define TF_MOD_LALT 0x0040")
80 cpp_quote("#define TF_MOD_LCONTROL 0x0080")
81 cpp_quote("#define TF_MOD_LSHIFT 0x0100")
82 cpp_quote("#define TF_MOD_ON_KEYUP 0x0200")
83 cpp_quote("#define TF_MOD_IGNORE_ALL_MODIFIER 0x0400")
85 interface ITfDocumentMgr;
87 interface IEnumTfDocumentMgrs;
88 interface IEnumTfContexts;
89 interface ITfFunctionProvider;
90 interface IEnumTfFunctionProviders;
91 interface ITfCompartmentMgr;
92 interface ITfEditSession;
94 interface ITfContextView;
95 interface IEnumTfContextViews;
96 interface ITfProperty;
97 interface ITfReadOnlyProperty;
98 interface IEnumTfProperties;
99 interface ITfRangeBackup;
100 interface IEnumTfLanguageProfiles;
101 interface ITfEditRecord;
102 interface ITfCompositionView;
103 interface ITfKeyEventSink;
105 typedef [uuid(e1b5808d-1e46-4c19-84dc-68c5f5978cc8)] struct TF_LANGUAGEPROFILE
112 } TF_LANGUAGEPROFILE;
114 typedef [uuid(77c12f95-b783-450d-879f-1cd2362c6521)] struct TF_PRESERVEDKEY
120 typedef [uuid(5a886226-ae9a-489b-b991-2b1e25ee59a9)] enum { TF_ANCHOR_START = 0, TF_ANCHOR_END = 1 } TfAnchor;
124 uuid(aa80e801-2021-11d2-93e0-0060b067b86e),
125 pointer_default(unique)
127 interface ITfThreadMgr: IUnknown
130 [out] TfClientId *ptid);
132 HRESULT Deactivate();
134 HRESULT CreateDocumentMgr(
135 [out] ITfDocumentMgr **ppdim);
137 HRESULT EnumDocumentMgrs(
138 [out] IEnumTfDocumentMgrs **ppEnum);
141 [out] ITfDocumentMgr **ppdimFocus);
144 [in] ITfDocumentMgr *pdimFocus);
146 HRESULT AssociateFocus(
148 [in, unique] ITfDocumentMgr *pdimNew,
149 [out] ITfDocumentMgr **ppdimPrev);
151 HRESULT IsThreadFocus(
152 [out] BOOL *pfThreadFocus);
154 HRESULT GetFunctionProvider(
156 [out] ITfFunctionProvider **ppFuncProv);
158 HRESULT EnumFunctionProviders(
159 [out] IEnumTfFunctionProviders **ppEnum);
161 HRESULT GetGlobalCompartment(
162 [out] ITfCompartmentMgr **ppCompMgr);
167 uuid(d7540241-f9a1-4364-befc-dbcd2c4395b7),
168 pointer_default(unique)
170 interface ITfCompositionView : IUnknown
172 HRESULT GetOwnerClsid([out] CLSID *pclsid);
174 HRESULT GetRange([out] ITfRange **ppRange);
179 uuid(aa80e7f4-2021-11d2-93e0-0060b067b86e),
180 pointer_default(unique)
182 interface ITfDocumentMgr: IUnknown
184 HRESULT CreateContext(
185 [in] TfClientId tidOwner,
187 [in, unique] IUnknown *punk,
188 [out] ITfContext **ppic,
189 [out] TfEditCookie *pecTextStore);
192 [in] ITfContext *pic);
194 const DWORD TF_POPF_ALL = 0x0001;
200 [out] ITfContext **ppic);
203 [out] ITfContext **ppic);
205 HRESULT EnumContexts(
206 [out] IEnumTfContexts **ppEnum);
211 uuid(aa80e7fd-2021-11d2-93e0-0060b067b86e),
212 pointer_default(unique)
214 interface ITfContext : IUnknown
216 const DWORD TF_ES_ASYNCDONTCARE = 0x0;
217 const DWORD TF_ES_SYNC = 0x1;
218 const DWORD TF_ES_READ = 0x2;
219 const DWORD TF_ES_READWRITE = 0x6;
220 const DWORD TF_ES_ASYNC = 0x8;
222 HRESULT RequestEditSession(
224 [in] ITfEditSession *pes,
226 [out] HRESULT *phrSession);
228 HRESULT InWriteSession(
230 [out] BOOL *pfWriteSession);
232 typedef [uuid(1690be9b-d3e9-49f6-8d8b-51b905af4c43)] enum { TF_AE_NONE, TF_AE_START, TF_AE_END } TfActiveSelEnd;
234 typedef [uuid(36ae42a4-6989-4bdc-b48a-6137b7bf2e42)] struct TF_SELECTIONSTYLE
240 typedef [uuid(75eb22f2-b0bf-46a8-8006-975a3b6efcf1)] struct TF_SELECTION
243 TF_SELECTIONSTYLE style;
246 const ULONG TF_DEFAULT_SELECTION = TS_DEFAULT_SELECTION;
248 HRESULT GetSelection(
249 [in] TfEditCookie ec,
252 [out, size_is(ulCount), length_is(*pcFetched)] TF_SELECTION *pSelection,
253 [out] ULONG *pcFetched);
255 HRESULT SetSelection(
256 [in] TfEditCookie ec,
258 [in, size_is(ulCount)] const TF_SELECTION *pSelection);
261 [in] TfEditCookie ec,
262 [out] ITfRange **ppStart);
265 [in] TfEditCookie ec,
266 [out] ITfRange **ppEnd);
268 typedef [uuid(bc7d979a-846a-444d-afef-0a9bfa82b961)] TS_STATUS TF_STATUS;
269 const DWORD TF_SD_READONLY = TS_SD_READONLY;
270 const DWORD TF_SD_LOADING = TS_SD_LOADING;
271 const DWORD TF_SS_DISJOINTSEL = TS_SS_DISJOINTSEL;
272 const DWORD TF_SS_REGIONS = TS_SS_REGIONS;
273 const DWORD TF_SS_TRANSITORY = TS_SS_TRANSITORY;
276 HRESULT GetActiveView(
277 [out] ITfContextView **ppView);
280 [out] IEnumTfContextViews **ppEnum);
283 [out] TF_STATUS *pdcs);
286 [in] REFGUID guidProp,
287 [out] ITfProperty **ppProp);
289 HRESULT GetAppProperty(
290 [in] REFGUID guidProp,
291 [out] ITfReadOnlyProperty **ppProp);
293 HRESULT TrackProperties(
294 [in, size_is(cProp)] const GUID **prgProp,
296 [in, size_is(cAppProp)] const GUID **prgAppProp,
298 [out] ITfReadOnlyProperty **ppProperty);
300 HRESULT EnumProperties(
301 [out] IEnumTfProperties **ppEnum);
303 HRESULT GetDocumentMgr(
304 [out] ITfDocumentMgr **ppDm);
306 HRESULT CreateRangeBackup(
307 [in] TfEditCookie ec,
308 [in] ITfRange *pRange,
309 [out] ITfRangeBackup **ppBackup);
315 uuid(4ea48a35-60ae-446f-8fd6-e6a8d82459f7),
316 pointer_default(unique)
318 interface ITfSource : IUnknown
322 [in, iid_is(riid)] IUnknown *punk,
323 [out] DWORD *pdwCookie);
325 HRESULT UnadviseSink(
326 [in] DWORD dwCookie);
332 uuid(1F02B6C5-7842-4EE6-8A0B-9A24183A95CA),
333 pointer_default(unique)
335 interface ITfInputProcessorProfiles : IUnknown
338 [in] REFCLSID rclsid);
341 [in] REFCLSID rclsid);
343 HRESULT AddLanguageProfile(
344 [in] REFCLSID rclsid,
346 [in] REFGUID guidProfile,
347 [in, size_is(cchDesc)] const WCHAR *pchDesc,
349 [in, size_is(cchFile)] const WCHAR *pchIconFile,
351 [in] ULONG uIconIndex);
353 HRESULT RemoveLanguageProfile(
354 [in] REFCLSID rclsid,
356 [in] REFGUID guidProfile);
358 HRESULT EnumInputProcessorInfo(
359 [out] IEnumGUID **ppEnum);
361 HRESULT GetDefaultLanguageProfile(
365 [out] GUID *pguidProfile);
367 HRESULT SetDefaultLanguageProfile(
369 [in] REFCLSID rclsid,
370 [in] REFGUID guidProfiles);
372 HRESULT ActivateLanguageProfile(
373 [in] REFCLSID rclsid,
375 [in] REFGUID guidProfiles);
377 HRESULT GetActiveLanguageProfile(
378 [in] REFCLSID rclsid,
379 [out] LANGID *plangid,
380 [out] GUID *pguidProfile);
382 HRESULT GetLanguageProfileDescription(
383 [in] REFCLSID rclsid,
385 [in] REFGUID guidProfile,
386 [out] BSTR *pbstrProfile);
388 HRESULT GetCurrentLanguage(
389 [out] LANGID *plangid);
391 HRESULT ChangeCurrentLanguage(
394 HRESULT GetLanguageList(
395 [out] LANGID **ppLangId,
396 [out] ULONG *pulCount);
398 HRESULT EnumLanguageProfiles(
400 [out] IEnumTfLanguageProfiles **ppEnum);
402 HRESULT EnableLanguageProfile(
403 [in] REFCLSID rclsid,
405 [in] REFGUID guidProfile,
408 HRESULT IsEnabledLanguageProfile(
409 [in] REFCLSID rclsid,
411 [in] REFGUID guidProfile,
412 [out] BOOL *pfEnable);
414 HRESULT EnableLanguageProfileByDefault(
415 [in] REFCLSID rclsid,
417 [in] REFGUID guidProfile,
420 HRESULT SubstituteKeyboardLayout(
421 [in] REFCLSID rclsid,
423 [in] REFGUID guidProfile,
427 typedef [uuid(c4cc07f1-80cc-4a7b-bc54-98512782cbe3)]
436 typedef [uuid(d9b92e21-084a-401b-9c64-1e6dad91a1ab)]
443 typedef [uuid(90d0cb5e-6520-4a0f-b47c-c39bd955f0d6)]
445 TF_DA_COLORTYPE type;
446 [switch_type(TF_DA_COLORTYPE), switch_is(type)]
448 [case(TF_CT_SYSCOLOR)] int nIndex;
449 [case(TF_CT_COLORREF)] COLORREF cr;
453 typedef [uuid(33d2fe4b-6c24-4f67-8d75-3bc1819e4126)]
456 TF_ATTR_TARGET_CONVERTED = 1,
457 TF_ATTR_CONVERTED = 2,
458 TF_ATTR_TARGET_NOTCONVERTED = 3,
459 TF_ATTR_INPUT_ERROR = 4,
460 TF_ATTR_FIXEDCONVERTED = 5,
464 typedef [uuid(1bf1c305-419b-4182-a4d2-9bfadc3f021f)]
465 struct TF_DISPLAYATTRIBUTE {
468 TF_DA_LINESTYLE lsStyle;
471 TF_DA_ATTR_INFO bAttr;
472 } TF_DISPLAYATTRIBUTE;
476 uuid(70528852-2f26-4aea-8c96-215150578932),
477 pointer_default(unique)
479 interface ITfDisplayAttributeInfo : IUnknown
481 HRESULT GetGUID([out] GUID *pguid);
483 HRESULT GetDescription([out] BSTR *pbstrDesc);
485 HRESULT GetAttributeInfo([out] TF_DISPLAYATTRIBUTE *pda);
487 HRESULT SetAttributeInfo([in] const TF_DISPLAYATTRIBUTE *pda);
494 uuid(7cef04d7-cb75-4e80-a7ab-5f5bc7d332de),
495 pointer_default(unique)
497 interface IEnumTfDisplayAttributeInfo : IUnknown
499 HRESULT Clone([out] IEnumTfDisplayAttributeInfo **ppEnum);
503 [out, size_is(ulCount), length_is(*pcFetched)] ITfDisplayAttributeInfo **rgInfo,
504 [out] ULONG *pcFetched);
508 HRESULT Skip([in] ULONG ulCount);
514 uuid(8ded7393-5db1-475c-9e71-a39111b0ff67),
515 pointer_default(unique)
517 interface ITfDisplayAttributeMgr : IUnknown
519 HRESULT OnUpdateInfo();
521 HRESULT EnumDisplayAttributeInfo([out] IEnumTfDisplayAttributeInfo **ppEnum);
523 HRESULT GetDisplayAttributeInfo(
525 [out] ITfDisplayAttributeInfo **ppInfo,
526 [out] CLSID *pclsidOwner);
533 uuid(c3acefb5-f69d-4905-938f-fcadcf4be830),
534 pointer_default(unique)
536 interface ITfCategoryMgr : IUnknown
538 HRESULT RegisterCategory([in] REFCLSID rclsid,
542 HRESULT UnregisterCategory([in] REFCLSID rclsid,
546 HRESULT EnumCategoriesInItem([in] REFGUID rguid,
547 [out] IEnumGUID **ppEnum);
549 HRESULT EnumItemsInCategory([in] REFGUID rcatid,
550 [out] IEnumGUID **ppEnum);
552 HRESULT FindClosestCategory([in] REFGUID rguid,
554 [in, size_is(ulCount)] const GUID **ppcatidList,
557 HRESULT RegisterGUIDDescription([in] REFCLSID rclsid,
559 [in, size_is(cch)] const WCHAR *pchDesc,
562 HRESULT UnregisterGUIDDescription([in] REFCLSID rclsid,
565 HRESULT GetGUIDDescription([in] REFGUID rguid,
566 [out] BSTR *pbstrDesc);
568 HRESULT RegisterGUIDDWORD([in] REFCLSID rclsid,
572 HRESULT UnregisterGUIDDWORD([in] REFCLSID rclsid,
575 HRESULT GetGUIDDWORD([in] REFGUID rguid,
578 HRESULT RegisterGUID([in] REFGUID rguid,
579 [out] TfGuidAtom *pguidatom);
581 HRESULT GetGUID([in] TfGuidAtom guidatom,
584 HRESULT IsEqualTfGuidAtom([in] TfGuidAtom guidatom,
586 [out] BOOL *pfEqual);
591 uuid(8127d409-ccd3-4683-967a-b43d5b482bf7),
592 pointer_default(unique)
594 interface ITfTextEditSink : IUnknown
597 [in] ITfContext *pic,
598 [in] TfEditCookie ecReadOnly,
599 [in] ITfEditRecord *pEditRecord);
604 uuid(5F20AA40-B57A-4F34-96AB-3576F377CC79),
605 pointer_default(unique)
607 interface ITfContextOwnerCompositionSink : IUnknown
609 HRESULT OnStartComposition(
610 [in] ITfCompositionView *pComposition,
613 HRESULT OnUpdateComposition(
614 [in] ITfCompositionView *pComposition,
615 [in] ITfRange *pRangeNew);
617 HRESULT OnEndComposition(
618 [in] ITfCompositionView *pComposition);
623 uuid(3d61bf11-ac5f-42c8-a4cb-931bcc28c744),
624 pointer_default(unique)
626 interface IEnumTfLanguageProfiles : IUnknown
629 [out] IEnumTfLanguageProfiles **ppEnum);
633 [out, size_is(ulCount), length_is(*pcFetch)] TF_LANGUAGEPROFILE *pProfile,
634 [out] ULONG *pcFetch);
645 uuid(aa80e7f7-2021-11d2-93e0-0060b067b86e),
646 pointer_default(unique)
648 interface ITfTextInputProcessor : IUnknown
651 [in] ITfThreadMgr *ptim,
652 [in] TfClientId tid);
654 HRESULT Deactivate();
659 uuid(aa80e80e-2021-11d2-93e0-0060b067b86e),
660 pointer_default(unique)
662 interface ITfThreadMgrEventSink : IUnknown
664 HRESULT OnInitDocumentMgr(
665 [in] ITfDocumentMgr *pdim);
667 HRESULT OnUninitDocumentMgr(
668 [in] ITfDocumentMgr *pdim);
671 [in] ITfDocumentMgr *pdimFocus,
672 [in] ITfDocumentMgr *pdimPrevFocus);
674 HRESULT OnPushContext(
675 [in] ITfContext *pic);
677 HRESULT OnPopContext(
678 [in] ITfContext *pic);
684 uuid(aa80e7f0-2021-11d2-93e0-0060b067b86e),
685 pointer_default(unique)
687 interface ITfKeystrokeMgr : IUnknown
689 HRESULT AdviseKeyEventSink(
691 [in] ITfKeyEventSink *pSink,
692 [in] BOOL fForeground);
694 HRESULT UnadviseKeyEventSink(
695 [in] TfClientId tid);
697 HRESULT GetForeground(
698 [out] CLSID *pclsid);
703 [out] BOOL *pfEaten);
708 [out] BOOL *pfEaten);
713 [out] BOOL *pfEaten);
718 [out] BOOL *pfEaten);
720 HRESULT GetPreservedKey(
721 [in] ITfContext *pic,
722 [in] const TF_PRESERVEDKEY *pprekey,
725 HRESULT IsPreservedKey(
727 [in] const TF_PRESERVEDKEY *pprekey,
728 [out] BOOL *pfRegistered);
733 [in] const TF_PRESERVEDKEY *prekey,
734 [in, size_is(cchDesc)] const WCHAR *pchDesc,
737 HRESULT UnpreserveKey(
739 [in] const TF_PRESERVEDKEY *pprekey);
741 HRESULT SetPreservedKeyDescription(
743 [in, size_is(cchDesc)] const WCHAR *pchDesc,
746 HRESULT GetPreservedKeyDescription(
748 [out] BSTR *pbstrDesc);
750 HRESULT SimulatePreservedKey(
751 [in] ITfContext *pic,
753 [out] BOOL *pfEaten);
759 uuid(aa80e7f5-2021-11d2-93e0-0060b067b86e),
760 pointer_default(unique)
762 interface ITfKeyEventSink : IUnknown
765 [in] BOOL fForeground);
767 HRESULT OnTestKeyDown(
768 [in] ITfContext *pic,
771 [out] BOOL *pfEaten);
774 [in] ITfContext *pic,
777 [out] BOOL *pfEaten);
780 [in] ITfContext *pic,
783 [out] BOOL *pfEaten);
786 [in] ITfContext *pic,
789 [out] BOOL *pfEaten);
791 HRESULT OnPreservedKey(
792 [in] ITfContext *pic,
794 [out] BOOL *pfEaten);
800 uuid(8f1b8ad8-0b6b-4874-90c5-bd76011e8f7c),
801 pointer_default(unique)
803 interface ITfMessagePump : IUnknown
805 HRESULT PeekMessageA(
808 [in] UINT wMsgFilterMin,
809 [in] UINT wMsgFilterMax,
810 [in] UINT wRemoveMsg,
811 [out] BOOL *pfResult);
816 [in] UINT wMsgFilterMin,
817 [in] UINT wMsgFilterMax,
818 [out] BOOL *pfResult);
820 HRESULT PeekMessageW(
823 [in] UINT wMsgFilterMin,
824 [in] UINT wMsgFilterMax,
825 [in] UINT wRemoveMsg,
826 [out] BOOL *pfResult);
831 [in] UINT wMsgFilterMin,
832 [in] UINT wMsgFilterMax,
833 [out] BOOL *pfResult);
839 uuid(d60a7b49-1b9f-4be2-b702-47e9dc05dec3),
840 pointer_default(unique)
842 interface ITfClientId : IUnknown
845 [in] REFCLSID rclsid,
846 [out] TfClientId *ptid);
851 uuid(43c9fe15-f494-4c17-9de2-b8a4ac350aa8),
852 pointer_default(unique)
854 interface ITfLanguageProfileNotifySink : IUnknown
856 HRESULT OnLanguageChange(
858 [out] BOOL *pfAccept);
860 HRESULT OnLanguageChanged();
865 uuid(aa80e803-2021-11d2-93e0-0060b067b86e),
866 pointer_default(unique)
868 interface ITfEditSession : IUnknown
870 HRESULT DoEditSession(
871 [in] TfEditCookie ec);
876 uuid(aa80e7ff-2021-11d2-93e0-0060b067b86e),
877 pointer_default(unique)
879 interface ITfRange : IUnknown
881 const WCHAR TF_CHAR_EMBEDDED = TS_CHAR_EMBEDDED;
883 typedef [uuid(cf610f06-2882-46f6-abe5-298568b664c4)] enum { TF_GRAVITY_BACKWARD = 0, TF_GRAVITY_FORWARD = 1 } TfGravity;
885 typedef [uuid(1e512533-bbdc-4530-9a8e-a1dc0af67468)] enum { TF_SD_BACKWARD = 0, TF_SD_FORWARD = 1 } TfShiftDir;
887 const DWORD TF_HF_OBJECT = 1;
888 const DWORD TF_TF_MOVESTART = 1;
889 const DWORD TF_TF_IGNOREEND = 2;
890 const DWORD TF_ST_CORRECTION = 1;
891 const DWORD TF_IE_CORRECTION = 1;
893 typedef [uuid(49930d51-7d93-448c-a48c-fea5dac192b1)] struct TF_HALTCOND
895 ITfRange *pHaltRange;
901 [in] TfEditCookie ec,
903 [out, size_is(cchMax), length_is(*pcch)] WCHAR *pchText,
908 [in] TfEditCookie ec,
910 [in, size_is(cch), unique] const WCHAR *pchText,
913 HRESULT GetFormattedText(
914 [in] TfEditCookie ec,
915 [out] IDataObject **ppDataObject);
918 [in] TfEditCookie ec,
919 [in] REFGUID rguidService,
921 [out, iid_is(riid)] IUnknown **ppunk);
923 HRESULT InsertEmbedded(
924 [in] TfEditCookie ec,
926 [in] IDataObject *pDataObject);
929 [in] TfEditCookie ec,
932 [in, unique] const TF_HALTCOND *pHalt);
935 [in] TfEditCookie ec,
938 [in, unique] const TF_HALTCOND *pHalt);
940 HRESULT ShiftStartToRange(
941 [in] TfEditCookie ec,
942 [in] ITfRange *pRange,
945 HRESULT ShiftEndToRange(
946 [in] TfEditCookie ec,
947 [in] ITfRange *pRange,
950 HRESULT ShiftStartRegion(
951 [in] TfEditCookie ec,
953 [out] BOOL *pfNoRegion);
955 HRESULT ShiftEndRegion(
956 [in] TfEditCookie ec,
958 [out] BOOL *pfNoRegion);
961 [in] TfEditCookie ec,
962 [out] BOOL *pfEmpty);
965 [in] TfEditCookie ec,
968 HRESULT IsEqualStart(
969 [in] TfEditCookie ec,
970 [in] ITfRange *pWith,
972 [out] BOOL *pfEqual);
975 [in] TfEditCookie ec,
976 [in] ITfRange *pWith,
978 [out] BOOL *pfEqual);
980 HRESULT CompareStart(
981 [in] TfEditCookie ec,
982 [in] ITfRange *pWith,
984 [out] LONG *plResult);
987 [in] TfEditCookie ec,
988 [in] ITfRange *pWith,
990 [out] LONG *plResult);
992 HRESULT AdjustForInsert(
993 [in] TfEditCookie ec,
994 [in] ULONG cchInsert,
995 [out] BOOL *pfInsertOk);
998 [out] TfGravity *pgStart,
999 [out] TfGravity *pgEnd);
1002 [in] TfEditCookie ec,
1003 [in] TfGravity gStart,
1004 [in] TfGravity gEnd);
1007 [out] ITfRange **ppClone);
1010 [out] ITfContext **ppContext);
1015 uuid(057a6296-029b-4154-b79a-0d461d4ea94c),
1016 pointer_default(unique)
1018 interface ITfRangeACP : ITfRange
1020 HRESULT GetExtent([out] LONG *pacpAnchor,
1023 HRESULT SetExtent([in] LONG acpAnchor,
1029 uuid(55ce16ba-3014-41c1-9ceb-fade1446ac6c),
1030 pointer_default(unique)
1032 interface ITfInsertAtSelection : IUnknown
1034 const DWORD TF_IAS_NOQUERY = 0x1;
1035 const DWORD TF_IAS_QUERYONLY = 0x2;
1036 const DWORD TF_IAS_NO_DEFAULT_COMPOSITION = 0x80000000;
1038 HRESULT InsertTextAtSelection(
1039 [in] TfEditCookie ec,
1041 [in, size_is(cch)] const WCHAR *pchText,
1043 [out] ITfRange **ppRange);
1045 HRESULT InsertEmbeddedAtSelection(
1046 [in] TfEditCookie ec,
1048 [in] IDataObject *pDataObject,
1049 [out] ITfRange **ppRange);
1054 uuid(6834b120-88cb-11d2-bf45-00105a2799b5),
1055 pointer_default(unique)
1057 interface ITfPropertyStore : IUnknown
1059 const DWORD TF_TU_CORRECTION = 0x1;
1061 HRESULT GetType([out] GUID *pguid);
1063 HRESULT GetDataType([out] DWORD *pdwReserved);
1065 HRESULT GetData([out] VARIANT *pvarValue);
1067 HRESULT OnTextUpdated(
1069 [in] ITfRange *pRangeNew,
1070 [out] BOOL *pfAccept);
1073 [in] ITfRange *pRangeNew,
1074 [out] BOOL *pfFree);
1077 [in] ITfRange *pRangeThis,
1078 [in] ITfRange *pRangeNew,
1079 [out] ITfPropertyStore **ppPropStore);
1082 [out] ITfPropertyStore **pPropStore);
1084 HRESULT GetPropertyRangeCreator(
1085 [out] CLSID *pclsid);
1088 [in] IStream *pStream,
1094 uuid(f99d3f40-8e32-11d2-bf46-00105a2799b5),
1095 pointer_default(unique)
1097 interface IEnumTfRanges : IUnknown
1099 HRESULT Clone([out] IEnumTfRanges **ppEnum);
1103 [out, size_is(ulCount), length_is(*pcFetched)] ITfRange **ppRange,
1104 [out] ULONG *pcFetched);
1108 HRESULT Skip(ULONG ulCount);
1113 uuid(5efd22Ba-7838-46cb-88e2-cadb14124f8f),
1114 pointer_default(unique)
1116 interface IEnumITfCompositionView : IUnknown
1118 HRESULT Clone([out] IEnumITfCompositionView **ppEnum);
1122 [out, size_is(ulCount), length_is(*pcFetched)] ITfCompositionView **rgCompositionView,
1123 [out] ULONG *pcFetched);
1127 HRESULT Skip([in] ULONG ulCount);
1132 uuid(20168d64-5a8f-4a5a-b7bd-cfa29f4D0fd9),
1133 pointer_default(unique)
1135 interface ITfComposition : IUnknown
1137 HRESULT GetRange([out] ITfRange **ppRange);
1140 [in] TfEditCookie ecWrite,
1141 [in] ITfRange *pNewStart);
1144 [in] TfEditCookie ecWrite,
1145 [in] ITfRange *pNewEnd);
1147 HRESULT EndComposition([in] TfEditCookie ecWrite);
1152 uuid(a781718c-579a-4b15-a280-32b8577acc5e),
1153 pointer_default(unique)
1155 interface ITfCompositionSink : IUnknown
1157 HRESULT OnCompositionTerminated(
1158 [in] TfEditCookie ecWrite,
1159 [in] ITfComposition *pComposition);
1164 uuid(d40C8aae-aC92-4fc7-9a11-0ee0e23aa39b),
1165 pointer_default(unique)
1167 interface ITfContextComposition : IUnknown
1169 HRESULT StartComposition(
1170 [in] TfEditCookie ecWrite,
1171 [in] ITfRange *pCompositionRange,
1172 [in] ITfCompositionSink *pSink,
1173 [out] ITfComposition **ppComposition);
1175 HRESULT EnumCompositions([out] IEnumITfCompositionView **ppEnum);
1177 HRESULT FindComposition(
1178 [in] TfEditCookie ecRead,
1179 [in] ITfRange *pTestRange,
1180 [out] IEnumITfCompositionView **ppEnum);
1182 HRESULT TakeOwnership(
1183 [in] TfEditCookie ecWrite,
1184 [in] ITfCompositionView *pComposition,
1185 [in] ITfCompositionSink *pSink,
1186 [out] ITfComposition **ppComposition);
1191 uuid(86462810-593b-4916-9764-19c08e9ce110),
1192 pointer_default(unique)
1194 interface ITfContextOwnerCompositionServices : ITfContextComposition
1196 HRESULT TerminateComposition([in] ITfCompositionView *pComposition);
1201 uuid(17d49a3d-f8b8-4b2f-b254-52319dd64c53),
1202 pointer_default(unique)
1204 interface ITfReadOnlyProperty : IUnknown
1206 HRESULT GetType([out] GUID *pguid);
1209 [in] TfEditCookie ec,
1210 [out] IEnumTfRanges **ppEnum,
1211 [in] ITfRange *pTargetRange);
1214 [in] TfEditCookie ec,
1215 [in] ITfRange *pRange,
1216 [out] VARIANT *pvarValue);
1218 HRESULT GetContext([out] ITfContext **ppContext);
1223 uuid(e2449660-9542-11d2-bf46-00105a2799b5),
1224 pointer_default(unique)
1226 interface ITfProperty : ITfReadOnlyProperty
1229 [in] TfEditCookie ec,
1230 [in] ITfRange *pRange,
1231 [out] ITfRange **ppRange,
1232 [in] TfAnchor aPos);
1234 HRESULT SetValueStore(
1235 [in] TfEditCookie ec,
1236 [in] ITfRange *pRange,
1237 [in] ITfPropertyStore *pPropStore);
1240 [in] TfEditCookie ec,
1241 [in] ITfRange *pRange,
1242 [in] const VARIANT *pvarValue);
1245 [in] TfEditCookie ec,
1246 [in] ITfRange *pRange);
1251 uuid(bb08f7a9-607a-4384-8623-056892b64371),
1252 pointer_default(unique)
1254 interface ITfCompartment : IUnknown
1257 [in] TfClientId tid,
1258 [in] const VARIANT *pvarValue);
1261 [out] VARIANT *pvarValue);
1266 uuid(7dcf57ac-18ad-438b-824d-979bffb74b7c),
1267 pointer_default(unique)
1269 interface ITfCompartmentMgr : IUnknown
1271 HRESULT GetCompartment(
1273 [out] ITfCompartment **ppcomp);
1275 HRESULT ClearCompartment(
1276 [in] TfClientId tid,
1277 [in] REFGUID rguid);
1279 HRESULT EnumCompartments(
1280 [out] IEnumGUID **ppEnum);
1285 uuid(743abd5f-f26d-48df-8cc5-238492419b64),
1286 pointer_default(unique)
1288 interface ITfCompartmentEventSink : IUnknown
1291 [in] REFGUID rguid);
1296 uuid(8f1a7ea6-1654-4502-a86e-b2902344d507),
1297 pointer_default(unique)
1299 interface IEnumTfContexts : IUnknown
1302 [out] IEnumTfContexts **ppEnum);
1306 [out, size_is(ulCount), length_is(*pcFetched)] ITfContext **rgContext,
1307 [out] ULONG *pcFetched);
1312 [in] ULONG ulCount);
1317 uuid(aa80e808-2021-11d2-93e0-0060b067b86e),
1318 pointer_default(unique)
1320 interface IEnumTfDocumentMgrs : IUnknown
1323 [out] IEnumTfDocumentMgrs **ppEnum);
1327 [out, size_is(ulCount), length_is(*pcFetched)] ITfDocumentMgr **rgDocumentMgr,
1328 [out] ULONG *pcFetched);
1333 [in] ULONG ulCount);
1338 uuid(73131f9c-56a9-49dd-b0ee-d046633f7528),
1339 pointer_default(unique)
1341 interface ITfSourceSingle : IUnknown
1343 HRESULT AdviseSingleSink(
1344 [in] TfClientId tid,
1346 [in, iid_is(riid)] IUnknown *punk);
1348 HRESULT UnadviseSingleSink(
1349 [in] TfClientId tid,