ntdll: Enable wow64 on ARM64.
[wine/multimedia.git] / include / msctf.idl
blob0e2b8b4767b54956834cb037fadd286183b44bf1
1 /*
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
19 #ifndef DO_NO_IMPORTS
20 import "oaidl.idl";
21 import "comcat.idl";
22 import "textstor.idl";
23 import "ctfutb.idl";
24 #endif
25 cpp_quote("#include <winuser.h>")
27 cpp_quote("#define TF_E_STACKFULL MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0501)")
28 cpp_quote("#define TF_E_DISCONNECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0504)")
29 cpp_quote("#define TF_E_ALREADY_EXISTS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0506)")
30 cpp_quote("#define TF_E_NOLOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)")
32 cpp_quote("HRESULT WINAPI TF_CreateThreadMgr(ITfThreadMgr **pptim);")
33 cpp_quote("HRESULT WINAPI TF_GetThreadMgr(ITfThreadMgr **pptim);")
34 cpp_quote("HRESULT WINAPI TF_CreateInputProcessorProfiles(ITfInputProcessorProfiles **ppipr);")
35 cpp_quote("HRESULT WINAPI TF_CreateLangBarMgr(ITfLangBarMgr **pppbm);")
36 cpp_quote("HRESULT WINAPI TF_CreateLangBarItemMgr(ITfLangBarItemMgr **pplbim);")
37 cpp_quote("HRESULT WINAPI TF_InvalidAssemblyListCacheIfExist(void);")
39 cpp_quote("EXTERN_C const GUID GUID_PROP_TEXTOWNER;")
40 cpp_quote("DEFINE_GUID(GUID_PROP_ATTRIBUTE,0x34b45670,0x7526,0x11d2,0xa1,0x47,0x00,0x10,0x5a,0x27,0x99,0xb5);")
41 cpp_quote("EXTERN_C const GUID GUID_PROP_LANGID;")
42 cpp_quote("EXTERN_C const GUID GUID_PROP_READING;")
43 cpp_quote("EXTERN_C const GUID GUID_PROP_COMPOSING;")
45 cpp_quote("EXTERN_C const CLSID CLSID_TF_ThreadMgr;")
46 cpp_quote("EXTERN_C const CLSID CLSID_TF_InputProcessorProfiles;")
47 cpp_quote("EXTERN_C const CLSID CLSID_TF_LangBarMgr;")
48 cpp_quote("EXTERN_C const CLSID CLSID_TF_CategoryMgr;")
49 cpp_quote("EXTERN_C const CLSID CLSID_TF_DisplayAttributeMgr;")
51 /* GUIDs for Compartments */
52 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_DISABLED;")
53 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_OPENCLOSE;")
54 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_HANDWRITING_OPENCLOSE;")
55 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_DISABLED;")
56 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_OPENCLOSE;")
57 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_GLOBALSTATE;")
58 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_PERSISTMENUENABLED;")
59 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_EMPTYCONTEXT;")
60 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_TIPUISTATUS;")
62 /* GUIDs for Categories */
63 cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_KEYBOARD;")
64 cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_SPEECH;")
65 cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_HANDWRITING;")
66 cpp_quote("EXTERN_C const GUID GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER;")
68 typedef [uuid(7213778c-7bb0-4270-b050-6189ee594e97)] DWORD TfEditCookie;
69 typedef [uuid(de403c21-89fd-4f85-8b87-64584d063fbc)] DWORD TfClientId;
70 typedef [uuid(88a9c478-f3ec-4763-8345-cd9250443f8d)] DWORD TfGuidAtom;
72 cpp_quote("#define TF_MOD_ALT 0x0001")
73 cpp_quote("#define TF_MOD_CONTROL 0x0002")
74 cpp_quote("#define TF_MOD_SHIFT 0x0004")
75 cpp_quote("#define TF_MOD_RALT 0x0008")
76 cpp_quote("#define TF_MOD_RCONTROL 0x0010")
77 cpp_quote("#define TF_MOD_RSHIFT 0x0020")
78 cpp_quote("#define TF_MOD_LALT 0x0040")
79 cpp_quote("#define TF_MOD_LCONTROL 0x0080")
80 cpp_quote("#define TF_MOD_LSHIFT 0x0100")
81 cpp_quote("#define TF_MOD_ON_KEYUP 0x0200")
82 cpp_quote("#define TF_MOD_IGNORE_ALL_MODIFIER 0x0400")
84 cpp_quote("#define TF_PROFILETYPE_INPUTPROCESSOR 0x0001")
85 cpp_quote("#define TF_PROFILETYPE_KEYBOARDLAYOUT 0x0002")
87 cpp_quote("#define TF_IPSINK_FLAG_ACTIVE 0x0001")
89 interface ITfDocumentMgr;
90 interface ITfContext;
91 interface IEnumTfDocumentMgrs;
92 interface IEnumTfContexts;
93 interface ITfCompartmentMgr;
94 interface ITfEditSession;
95 interface ITfRange;
96 interface ITfProperty;
97 interface ITfReadOnlyProperty;
98 interface IEnumTfLanguageProfiles;
99 interface ITfCompositionView;
100 interface ITfKeyEventSink;
102 cpp_quote("#if 0")
103 typedef [uuid(4f5d560f-5ab5-4dde-8c4d-404592857ab0)] UINT_PTR HKL;
104 cpp_quote("#endif")
106 typedef [uuid(e26d9e1d-691e-4f29-90d7-338dcf1f8cef)] struct TF_PERSISTENT_PROPERTY_HEADER_ACP
108 GUID guidType;
109 LONG ichStart;
110 LONG cch;
111 ULONG cb;
112 DWORD dwPrivate;
113 CLSID clsidTIP;
114 } TF_PERSISTENT_PROPERTY_HEADER_ACP;
116 typedef [uuid(e1b5808d-1e46-4c19-84dc-68c5f5978cc8)] struct TF_LANGUAGEPROFILE
118 CLSID clsid;
119 LANGID langid;
120 GUID catid;
121 BOOL fActive;
122 GUID guidProfile;
123 } TF_LANGUAGEPROFILE;
125 typedef [uuid(77c12f95-b783-450d-879f-1cd2362c6521)] struct TF_PRESERVEDKEY
127 UINT uVKey;
128 UINT uModifiers;
129 } TF_PRESERVEDKEY;
131 typedef [uuid(5a886226-ae9a-489b-b991-2b1e25ee59a9)] enum { TF_ANCHOR_START = 0, TF_ANCHOR_END = 1 } TfAnchor;
134 object,
135 uuid(101d6610-0990-11d3-8df0-00105a2799b5),
136 pointer_default(unique)
138 interface ITfFunctionProvider : IUnknown
140 HRESULT GetType(
141 [out] GUID *guid);
143 HRESULT GetDescription(
144 [out] BSTR *desc);
146 HRESULT GetFunction(
147 [in] REFGUID guid,
148 [in] REFIID riid,
149 [out, iid_is(riid)] IUnknown **func);
153 object,
154 uuid(e4b24db0-0990-11d3-8df0-00105a2799b5),
155 pointer_default(unique)
157 interface IEnumTfFunctionProviders : IUnknown
159 HRESULT Clone(
160 [out] IEnumTfFunctionProviders **ret);
162 HRESULT Next(
163 [in] ULONG count,
164 [out, size_is(count), length_is(*fetched)] ITfFunctionProvider **prov,
165 [out] ULONG *fetched);
167 HRESULT Reset();
169 HRESULT Skip(
170 [in] ULONG count);
174 object,
175 uuid(aa80e801-2021-11d2-93e0-0060b067b86e),
176 pointer_default(unique)
178 interface ITfThreadMgr: IUnknown
180 HRESULT Activate(
181 [out] TfClientId *ptid);
183 HRESULT Deactivate();
185 HRESULT CreateDocumentMgr(
186 [out] ITfDocumentMgr **ppdim);
188 HRESULT EnumDocumentMgrs(
189 [out] IEnumTfDocumentMgrs **ppEnum);
191 HRESULT GetFocus(
192 [out] ITfDocumentMgr **ppdimFocus);
194 HRESULT SetFocus(
195 [in] ITfDocumentMgr *pdimFocus);
197 HRESULT AssociateFocus(
198 [in] HWND hwnd,
199 [in, unique] ITfDocumentMgr *pdimNew,
200 [out] ITfDocumentMgr **ppdimPrev);
202 HRESULT IsThreadFocus(
203 [out] BOOL *pfThreadFocus);
205 HRESULT GetFunctionProvider(
206 [in] REFCLSID clsid,
207 [out] ITfFunctionProvider **ppFuncProv);
209 HRESULT EnumFunctionProviders(
210 [out] IEnumTfFunctionProviders **ppEnum);
212 HRESULT GetGlobalCompartment(
213 [out] ITfCompartmentMgr **ppCompMgr);
217 object,
218 uuid(d7540241-f9a1-4364-befc-dbcd2c4395b7),
219 pointer_default(unique)
221 interface ITfCompositionView : IUnknown
223 HRESULT GetOwnerClsid([out] CLSID *pclsid);
225 HRESULT GetRange([out] ITfRange **ppRange);
229 object,
230 uuid(aa80e7f4-2021-11d2-93e0-0060b067b86e),
231 pointer_default(unique)
233 interface ITfDocumentMgr: IUnknown
235 HRESULT CreateContext(
236 [in] TfClientId tidOwner,
237 [in] DWORD dwFlags,
238 [in, unique] IUnknown *punk,
239 [out] ITfContext **ppic,
240 [out] TfEditCookie *pecTextStore);
242 HRESULT Push(
243 [in] ITfContext *pic);
245 const DWORD TF_POPF_ALL = 0x0001;
247 HRESULT Pop(
248 [in] DWORD dwFlags);
250 HRESULT GetTop(
251 [out] ITfContext **ppic);
253 HRESULT GetBase(
254 [out] ITfContext **ppic);
256 HRESULT EnumContexts(
257 [out] IEnumTfContexts **ppEnum);
261 object,
262 uuid(2433bf8e-0f9b-435c-ba2c-180611978c30),
263 pointer_default(unique)
265 interface ITfContextView : IUnknown
267 HRESULT GetRangeFromPoint(
268 [in] TfEditCookie cookie,
269 [in] const POINT *pt,
270 [in] DWORD flags,
271 [out] ITfRange **range);
273 HRESULT GetTextExt(
274 [in] TfEditCookie cookie,
275 [in] ITfRange *range,
276 [out] RECT *rect,
277 [out] BOOL *clipped);
279 HRESULT GetScreenExt(
280 [out] RECT *rect);
282 HRESULT GetWnd(
283 [out] HWND *hwnd);
287 object,
288 uuid(f0c0f8dd-cf38-44e1-bb0f-68cf0d551c78),
289 pointer_default(unique)
291 interface IEnumTfContextViews : IUnknown
293 HRESULT Clone(
294 [out] IEnumTfContextViews **ret);
296 HRESULT Next(
297 [in] ULONG count,
298 [out, size_is(count), length_is(*fetched)] ITfContextView **views,
299 [out] ULONG *fetched);
301 HRESULT Reset();
303 HRESULT Skip(
304 [in] ULONG count);
308 object,
309 uuid(19188cb0-aca9-11d2-afc5-00105a2799b5),
310 pointer_default(unique)
312 interface IEnumTfProperties : IUnknown
314 HRESULT Clone(
315 [out] IEnumTfProperties **ret);
317 HRESULT Next(
318 [in] ULONG count,
319 [out, size_is(count), length_is(*fetched)] ITfProperty **props,
320 [out] ULONG *fetched);
322 HRESULT Reset();
324 HRESULT Skip(
325 [in] ULONG count);
329 object,
330 uuid(463a506d-6992-49d2-9b88-93d55e70bb16),
331 pointer_default(unique)
333 interface ITfRangeBackup : IUnknown
335 HRESULT Restore(
336 [in] TfEditCookie cookie,
337 [in] ITfRange *range);
341 object,
342 uuid(aa80e7fd-2021-11d2-93e0-0060b067b86e),
343 pointer_default(unique)
345 interface ITfContext : IUnknown
347 const DWORD TF_ES_ASYNCDONTCARE = 0x0;
348 const DWORD TF_ES_SYNC = 0x1;
349 const DWORD TF_ES_READ = 0x2;
350 const DWORD TF_ES_READWRITE = 0x6;
351 const DWORD TF_ES_ASYNC = 0x8;
353 HRESULT RequestEditSession(
354 [in] TfClientId tid,
355 [in] ITfEditSession *pes,
356 [in] DWORD dwFlags,
357 [out] HRESULT *phrSession);
359 HRESULT InWriteSession(
360 [in] TfClientId tid,
361 [out] BOOL *pfWriteSession);
363 typedef [uuid(1690be9b-d3e9-49f6-8d8b-51b905af4c43)] enum { TF_AE_NONE, TF_AE_START, TF_AE_END } TfActiveSelEnd;
365 typedef [uuid(36ae42a4-6989-4bdc-b48a-6137b7bf2e42)] struct TF_SELECTIONSTYLE
367 TfActiveSelEnd ase;
368 BOOL fInterimChar;
369 } TF_SELECTIONSTYLE;
371 typedef [uuid(75eb22f2-b0bf-46a8-8006-975a3b6efcf1)] struct TF_SELECTION
373 ITfRange *range;
374 TF_SELECTIONSTYLE style;
375 } TF_SELECTION;
377 const ULONG TF_DEFAULT_SELECTION = TS_DEFAULT_SELECTION;
379 HRESULT GetSelection(
380 [in] TfEditCookie ec,
381 [in] ULONG ulIndex,
382 [in] ULONG ulCount,
383 [out, size_is(ulCount), length_is(*pcFetched)] TF_SELECTION *pSelection,
384 [out] ULONG *pcFetched);
386 HRESULT SetSelection(
387 [in] TfEditCookie ec,
388 [in] ULONG ulCount,
389 [in, size_is(ulCount)] const TF_SELECTION *pSelection);
391 HRESULT GetStart(
392 [in] TfEditCookie ec,
393 [out] ITfRange **ppStart);
395 HRESULT GetEnd(
396 [in] TfEditCookie ec,
397 [out] ITfRange **ppEnd);
399 typedef [uuid(bc7d979a-846a-444d-afef-0a9bfa82b961)] TS_STATUS TF_STATUS;
400 const DWORD TF_SD_READONLY = TS_SD_READONLY;
401 const DWORD TF_SD_LOADING = TS_SD_LOADING;
402 const DWORD TF_SS_DISJOINTSEL = TS_SS_DISJOINTSEL;
403 const DWORD TF_SS_REGIONS = TS_SS_REGIONS;
404 const DWORD TF_SS_TRANSITORY = TS_SS_TRANSITORY;
407 HRESULT GetActiveView(
408 [out] ITfContextView **ppView);
410 HRESULT EnumViews(
411 [out] IEnumTfContextViews **ppEnum);
413 HRESULT GetStatus(
414 [out] TF_STATUS *pdcs);
416 HRESULT GetProperty(
417 [in] REFGUID guidProp,
418 [out] ITfProperty **ppProp);
420 HRESULT GetAppProperty(
421 [in] REFGUID guidProp,
422 [out] ITfReadOnlyProperty **ppProp);
424 HRESULT TrackProperties(
425 [in, size_is(cProp)] const GUID **prgProp,
426 [in] ULONG cProp,
427 [in, size_is(cAppProp)] const GUID **prgAppProp,
428 [in] ULONG cAppProp,
429 [out] ITfReadOnlyProperty **ppProperty);
431 HRESULT EnumProperties(
432 [out] IEnumTfProperties **ppEnum);
434 HRESULT GetDocumentMgr(
435 [out] ITfDocumentMgr **ppDm);
437 HRESULT CreateRangeBackup(
438 [in] TfEditCookie ec,
439 [in] ITfRange *pRange,
440 [out] ITfRangeBackup **ppBackup);
443 const DWORD TF_INVALID_COOKIE = 0xffffffff;
446 object,
447 uuid(4ea48a35-60ae-446f-8fd6-e6a8d82459f7),
448 pointer_default(unique)
450 interface ITfSource : IUnknown
452 HRESULT AdviseSink(
453 [in] REFIID riid,
454 [in, iid_is(riid)] IUnknown *punk,
455 [out] DWORD *pdwCookie);
457 HRESULT UnadviseSink(
458 [in] DWORD dwCookie);
462 object,
463 local,
464 uuid(1F02B6C5-7842-4EE6-8A0B-9A24183A95CA),
465 pointer_default(unique)
467 interface ITfInputProcessorProfiles : IUnknown
469 HRESULT Register(
470 [in] REFCLSID rclsid);
472 HRESULT Unregister(
473 [in] REFCLSID rclsid);
475 HRESULT AddLanguageProfile(
476 [in] REFCLSID rclsid,
477 [in] LANGID langid,
478 [in] REFGUID guidProfile,
479 [in, size_is(cchDesc)] const WCHAR *pchDesc,
480 [in] ULONG cchDesc,
481 [in, size_is(cchFile)] const WCHAR *pchIconFile,
482 [in] ULONG cchFile,
483 [in] ULONG uIconIndex);
485 HRESULT RemoveLanguageProfile(
486 [in] REFCLSID rclsid,
487 [in] LANGID langid,
488 [in] REFGUID guidProfile);
490 HRESULT EnumInputProcessorInfo(
491 [out] IEnumGUID **ppEnum);
493 HRESULT GetDefaultLanguageProfile(
494 [in] LANGID langid,
495 [in] REFGUID catid,
496 [out] CLSID *pclsid,
497 [out] GUID *pguidProfile);
499 HRESULT SetDefaultLanguageProfile(
500 [in] LANGID langid,
501 [in] REFCLSID rclsid,
502 [in] REFGUID guidProfiles);
504 HRESULT ActivateLanguageProfile(
505 [in] REFCLSID rclsid,
506 [in] LANGID langid,
507 [in] REFGUID guidProfiles);
509 HRESULT GetActiveLanguageProfile(
510 [in] REFCLSID rclsid,
511 [out] LANGID *plangid,
512 [out] GUID *pguidProfile);
514 HRESULT GetLanguageProfileDescription(
515 [in] REFCLSID rclsid,
516 [in] LANGID langid,
517 [in] REFGUID guidProfile,
518 [out] BSTR *pbstrProfile);
520 HRESULT GetCurrentLanguage(
521 [out] LANGID *plangid);
523 HRESULT ChangeCurrentLanguage(
524 [in] LANGID langid);
526 HRESULT GetLanguageList(
527 [out] LANGID **ppLangId,
528 [out] ULONG *pulCount);
530 HRESULT EnumLanguageProfiles(
531 [in] LANGID langid,
532 [out] IEnumTfLanguageProfiles **ppEnum);
534 HRESULT EnableLanguageProfile(
535 [in] REFCLSID rclsid,
536 [in] LANGID langid,
537 [in] REFGUID guidProfile,
538 [in] BOOL fEnable);
540 HRESULT IsEnabledLanguageProfile(
541 [in] REFCLSID rclsid,
542 [in] LANGID langid,
543 [in] REFGUID guidProfile,
544 [out] BOOL *pfEnable);
546 HRESULT EnableLanguageProfileByDefault(
547 [in] REFCLSID rclsid,
548 [in] LANGID langid,
549 [in] REFGUID guidProfile,
550 [in] BOOL fEnable);
552 HRESULT SubstituteKeyboardLayout(
553 [in] REFCLSID rclsid,
554 [in] LANGID langid,
555 [in] REFGUID guidProfile,
556 [in] HKL hKL);
559 typedef [uuid(44d2825a-10e5-43b2-877f-6cb2f43b7e7e)]
560 struct TF_INPUTPROCESSORPROFILE {
561 DWORD dwProfileType;
562 LANGID langid;
563 CLSID clsid;
564 GUID guidProfile;
565 GUID catid;
566 HKL hklSubstitute;
567 DWORD dwCaps;
568 HKL hkl;
569 DWORD dwFlags;
570 } TF_INPUTPROCESSORPROFILE;
573 object,
574 uuid(71c6e74d-0f28-11d8-a82a-00065b84435c),
575 pointer_default(unique)
577 interface IEnumTfInputProcessorProfiles : IUnknown
579 HRESULT Clone(
580 [out] IEnumTfInputProcessorProfiles **ppEnum);
582 HRESULT Next(
583 [in] ULONG ulCount,
584 [out, size_is(ulCount), length_is(*pcFetch)] TF_INPUTPROCESSORPROFILE *pProfile,
585 [out] ULONG *pcFetch);
587 HRESULT Reset();
589 HRESULT Skip(
590 [in] ULONG ulCount);
594 object,
595 uuid(71c6e74c-0f28-11d8-a82a-00065b84435c),
596 pointer_default(unique)
598 interface ITfInputProcessorProfileMgr : IUnknown
600 HRESULT ActivateProfile(
601 [in] DWORD dwProfileType,
602 [in] LANGID langid,
603 [in] REFCLSID clsid,
604 [in] REFGUID guidProfile,
605 [in] HKL hkl,
606 [in] DWORD dwFlags);
608 HRESULT DeactivateProfile(
609 [in] DWORD dwProfileType,
610 [in] LANGID langid,
611 [in] REFCLSID clsid,
612 [in] REFGUID guidProfile,
613 [in] HKL hkl,
614 [in] DWORD dwFlags);
616 HRESULT GetProfile(
617 [in] DWORD dwProfileType,
618 [in] LANGID langid,
619 [in] REFCLSID clsid,
620 [in] REFGUID guidProfile,
621 [in] HKL hkl,
622 [out] TF_INPUTPROCESSORPROFILE *pProfile);
625 HRESULT EnumProfiles(
626 [in] LANGID langid,
627 [out] IEnumTfInputProcessorProfiles **ppEnum);
629 HRESULT ReleaseInputProcessor(
630 [in] REFCLSID rclsid,
631 [in] DWORD dwFlags);
633 HRESULT RegisterProfile(
634 [in] REFCLSID rclsid,
635 [in] LANGID langid,
636 [in] REFGUID guidProfile,
637 [in, size_is(cchDesc)] const WCHAR *pchDesc,
638 [in] ULONG cchDesc,
639 [in, size_is(cchFile)] const WCHAR *pchIconFile,
640 [in] ULONG cchFile,
641 [in] ULONG uIconIndex,
642 [in] HKL hklsubstitute,
643 [in] DWORD dwPreferredLayout,
644 [in] BOOL bEnabledByDefault,
645 [in] DWORD dwFlags);
647 HRESULT UnregisterProfile(
648 [in] REFCLSID rclsid,
649 [in] LANGID langid,
650 [in] REFGUID guidProfile,
651 [in] DWORD dwFlags);
653 HRESULT GetActiveProfile(
654 [in] REFGUID catid,
655 [out] TF_INPUTPROCESSORPROFILE *pProfile);
658 typedef [uuid(c4cc07f1-80cc-4a7b-bc54-98512782cbe3)]
659 enum {
660 TF_LS_NONE = 0,
661 TF_LS_SOLID = 1,
662 TF_LS_DOT = 2,
663 TF_LS_DASH = 3,
664 TF_LS_SQUIGGLE = 4
665 } TF_DA_LINESTYLE;
667 typedef [uuid(d9b92e21-084a-401b-9c64-1e6dad91a1ab)]
668 enum {
669 TF_CT_NONE = 0,
670 TF_CT_SYSCOLOR = 1,
671 TF_CT_COLORREF = 2
672 } TF_DA_COLORTYPE;
674 typedef [uuid(90d0cb5e-6520-4a0f-b47c-c39bd955f0d6)]
675 struct TF_DA_COLOR {
676 TF_DA_COLORTYPE type;
677 [switch_type(TF_DA_COLORTYPE), switch_is(type)]
678 union {
679 [case(TF_CT_SYSCOLOR)] int nIndex;
680 [case(TF_CT_COLORREF)] COLORREF cr;
682 } TF_DA_COLOR;
684 typedef [uuid(33d2fe4b-6c24-4f67-8d75-3bc1819e4126)]
685 enum {
686 TF_ATTR_INPUT = 0,
687 TF_ATTR_TARGET_CONVERTED = 1,
688 TF_ATTR_CONVERTED = 2,
689 TF_ATTR_TARGET_NOTCONVERTED = 3,
690 TF_ATTR_INPUT_ERROR = 4,
691 TF_ATTR_FIXEDCONVERTED = 5,
692 TF_ATTR_OTHER = -1
693 } TF_DA_ATTR_INFO;
695 typedef [uuid(1bf1c305-419b-4182-a4d2-9bfadc3f021f)]
696 struct TF_DISPLAYATTRIBUTE {
697 TF_DA_COLOR crText;
698 TF_DA_COLOR crBk;
699 TF_DA_LINESTYLE lsStyle;
700 BOOL fBoldLine;
701 TF_DA_COLOR crLine;
702 TF_DA_ATTR_INFO bAttr;
703 } TF_DISPLAYATTRIBUTE;
706 object,
707 uuid(70528852-2f26-4aea-8c96-215150578932),
708 pointer_default(unique)
710 interface ITfDisplayAttributeInfo : IUnknown
712 HRESULT GetGUID([out] GUID *pguid);
714 HRESULT GetDescription([out] BSTR *pbstrDesc);
716 HRESULT GetAttributeInfo([out] TF_DISPLAYATTRIBUTE *pda);
718 HRESULT SetAttributeInfo([in] const TF_DISPLAYATTRIBUTE *pda);
720 HRESULT Reset();
724 object,
725 uuid(7cef04d7-cb75-4e80-a7ab-5f5bc7d332de),
726 pointer_default(unique)
728 interface IEnumTfDisplayAttributeInfo : IUnknown
730 HRESULT Clone([out] IEnumTfDisplayAttributeInfo **ppEnum);
732 HRESULT Next(
733 [in] ULONG ulCount,
734 [out, size_is(ulCount), length_is(*pcFetched)] ITfDisplayAttributeInfo **rgInfo,
735 [out] ULONG *pcFetched);
737 HRESULT Reset();
739 HRESULT Skip([in] ULONG ulCount);
743 object,
744 local,
745 uuid(8ded7393-5db1-475c-9e71-a39111b0ff67),
746 pointer_default(unique)
748 interface ITfDisplayAttributeMgr : IUnknown
750 HRESULT OnUpdateInfo();
752 HRESULT EnumDisplayAttributeInfo([out] IEnumTfDisplayAttributeInfo **ppEnum);
754 HRESULT GetDisplayAttributeInfo(
755 [in] REFGUID guid,
756 [out] ITfDisplayAttributeInfo **ppInfo,
757 [out] CLSID *pclsidOwner);
762 object,
763 local,
764 uuid(c3acefb5-f69d-4905-938f-fcadcf4be830),
765 pointer_default(unique)
767 interface ITfCategoryMgr : IUnknown
769 HRESULT RegisterCategory([in] REFCLSID rclsid,
770 [in] REFGUID rcatid,
771 [in] REFGUID rguid);
773 HRESULT UnregisterCategory([in] REFCLSID rclsid,
774 [in] REFGUID rcatid,
775 [in] REFGUID rguid);
777 HRESULT EnumCategoriesInItem([in] REFGUID rguid,
778 [out] IEnumGUID **ppEnum);
780 HRESULT EnumItemsInCategory([in] REFGUID rcatid,
781 [out] IEnumGUID **ppEnum);
783 HRESULT FindClosestCategory([in] REFGUID rguid,
784 [out] GUID *pcatid,
785 [in, size_is(ulCount)] const GUID **ppcatidList,
786 [in] ULONG ulCount);
788 HRESULT RegisterGUIDDescription([in] REFCLSID rclsid,
789 [in] REFGUID rguid,
790 [in, size_is(cch)] const WCHAR *pchDesc,
791 [in] ULONG cch);
793 HRESULT UnregisterGUIDDescription([in] REFCLSID rclsid,
794 [in] REFGUID rguid);
796 HRESULT GetGUIDDescription([in] REFGUID rguid,
797 [out] BSTR *pbstrDesc);
799 HRESULT RegisterGUIDDWORD([in] REFCLSID rclsid,
800 [in] REFGUID rguid,
801 [in] DWORD dw);
803 HRESULT UnregisterGUIDDWORD([in] REFCLSID rclsid,
804 [in] REFGUID rguid);
806 HRESULT GetGUIDDWORD([in] REFGUID rguid,
807 [out] DWORD *pdw);
809 HRESULT RegisterGUID([in] REFGUID rguid,
810 [out] TfGuidAtom *pguidatom);
812 HRESULT GetGUID([in] TfGuidAtom guidatom,
813 [out] GUID *pguid);
815 HRESULT IsEqualTfGuidAtom([in] TfGuidAtom guidatom,
816 [in] REFGUID rguid,
817 [out] BOOL *pfEqual);
821 object,
822 uuid(f99d3f40-8e32-11d2-bf46-00105a2799b5),
823 pointer_default(unique)
825 interface IEnumTfRanges : IUnknown
827 HRESULT Clone([out] IEnumTfRanges **ppEnum);
829 HRESULT Next(
830 [in] ULONG ulCount,
831 [out, size_is(ulCount), length_is(*pcFetched)] ITfRange **ppRange,
832 [out] ULONG *pcFetched);
834 HRESULT Reset();
836 HRESULT Skip(ULONG ulCount);
840 object,
841 uuid(42d4d099-7c1a-4a89-b836-6c6f22160df0),
842 pointer_default(unique)
844 interface ITfEditRecord : IUnknown
846 const DWORD TF_GTP_INCL_TEXT = 0x1;
848 HRESULT GetSelectionStatus(
849 [out] BOOL *changed);
851 HRESULT GetTextAndPropertyUpdates(
852 [in] DWORD flags,
853 [in, size_is(count)] const GUID **props,
854 [in] ULONG count,
855 [out] IEnumTfRanges **ret);
859 object,
860 uuid(8127d409-ccd3-4683-967a-b43d5b482bf7),
861 pointer_default(unique)
863 interface ITfTextEditSink : IUnknown
865 HRESULT OnEndEdit(
866 [in] ITfContext *pic,
867 [in] TfEditCookie ecReadOnly,
868 [in] ITfEditRecord *pEditRecord);
872 object,
873 uuid(5F20AA40-B57A-4F34-96AB-3576F377CC79),
874 pointer_default(unique)
876 interface ITfContextOwnerCompositionSink : IUnknown
878 HRESULT OnStartComposition(
879 [in] ITfCompositionView *pComposition,
880 [out] BOOL *pfOk);
882 HRESULT OnUpdateComposition(
883 [in] ITfCompositionView *pComposition,
884 [in] ITfRange *pRangeNew);
886 HRESULT OnEndComposition(
887 [in] ITfCompositionView *pComposition);
891 object,
892 uuid(b246cb75-a93e-4652-bf8c-b3fe0cfd7e57),
893 pointer_default(unique)
895 interface ITfActiveLanguageProfileNotifySink : IUnknown
897 HRESULT OnActivated(
898 [in] REFCLSID clsid,
899 [in] REFGUID guidProfile,
900 [in] BOOL fActivated);
904 object,
905 uuid(3d61bf11-ac5f-42c8-a4cb-931bcc28c744),
906 pointer_default(unique)
908 interface IEnumTfLanguageProfiles : IUnknown
910 HRESULT Clone(
911 [out] IEnumTfLanguageProfiles **ppEnum);
913 HRESULT Next(
914 [in] ULONG ulCount,
915 [out, size_is(ulCount), length_is(*pcFetch)] TF_LANGUAGEPROFILE *pProfile,
916 [out] ULONG *pcFetch);
918 HRESULT Reset();
920 HRESULT Skip(
921 [in] ULONG ulCount);
925 object,
926 local,
927 uuid(aa80e7f7-2021-11d2-93e0-0060b067b86e),
928 pointer_default(unique)
930 interface ITfTextInputProcessor : IUnknown
932 HRESULT Activate(
933 [in] ITfThreadMgr *ptim,
934 [in] TfClientId tid);
936 HRESULT Deactivate();
940 object,
941 uuid(aa80e80e-2021-11d2-93e0-0060b067b86e),
942 pointer_default(unique)
944 interface ITfThreadMgrEventSink : IUnknown
946 HRESULT OnInitDocumentMgr(
947 [in] ITfDocumentMgr *pdim);
949 HRESULT OnUninitDocumentMgr(
950 [in] ITfDocumentMgr *pdim);
952 HRESULT OnSetFocus(
953 [in] ITfDocumentMgr *pdimFocus,
954 [in] ITfDocumentMgr *pdimPrevFocus);
956 HRESULT OnPushContext(
957 [in] ITfContext *pic);
959 HRESULT OnPopContext(
960 [in] ITfContext *pic);
964 object,
965 local,
966 uuid(aa80e7f0-2021-11d2-93e0-0060b067b86e),
967 pointer_default(unique)
969 interface ITfKeystrokeMgr : IUnknown
971 HRESULT AdviseKeyEventSink(
972 [in] TfClientId tid,
973 [in] ITfKeyEventSink *pSink,
974 [in] BOOL fForeground);
976 HRESULT UnadviseKeyEventSink(
977 [in] TfClientId tid);
979 HRESULT GetForeground(
980 [out] CLSID *pclsid);
982 HRESULT TestKeyDown(
983 [in] WPARAM wParam,
984 [in] LPARAM lParam,
985 [out] BOOL *pfEaten);
987 HRESULT TestKeyUp(
988 [in] WPARAM wParam,
989 [in] LPARAM lParam,
990 [out] BOOL *pfEaten);
992 HRESULT KeyDown(
993 [in] WPARAM wParam,
994 [in] LPARAM lParam,
995 [out] BOOL *pfEaten);
997 HRESULT KeyUp(
998 [in] WPARAM wParam,
999 [in] LPARAM lParam,
1000 [out] BOOL *pfEaten);
1002 HRESULT GetPreservedKey(
1003 [in] ITfContext *pic,
1004 [in] const TF_PRESERVEDKEY *pprekey,
1005 [out] GUID *pguid);
1007 HRESULT IsPreservedKey(
1008 [in] REFGUID rguid,
1009 [in] const TF_PRESERVEDKEY *pprekey,
1010 [out] BOOL *pfRegistered);
1012 HRESULT PreserveKey(
1013 [in] TfClientId tid,
1014 [in] REFGUID rguid,
1015 [in] const TF_PRESERVEDKEY *prekey,
1016 [in, size_is(cchDesc)] const WCHAR *pchDesc,
1017 [in] ULONG cchDesc);
1019 HRESULT UnpreserveKey(
1020 [in] REFGUID rguid,
1021 [in] const TF_PRESERVEDKEY *pprekey);
1023 HRESULT SetPreservedKeyDescription(
1024 [in] REFGUID rguid,
1025 [in, size_is(cchDesc)] const WCHAR *pchDesc,
1026 [in] ULONG cchDesc);
1028 HRESULT GetPreservedKeyDescription(
1029 [in] REFGUID rguid,
1030 [out] BSTR *pbstrDesc);
1032 HRESULT SimulatePreservedKey(
1033 [in] ITfContext *pic,
1034 [in] REFGUID rguid,
1035 [out] BOOL *pfEaten);
1039 object,
1040 local,
1041 uuid(aa80e7f5-2021-11d2-93e0-0060b067b86e),
1042 pointer_default(unique)
1044 interface ITfKeyEventSink : IUnknown
1046 HRESULT OnSetFocus(
1047 [in] BOOL fForeground);
1049 HRESULT OnTestKeyDown(
1050 [in] ITfContext *pic,
1051 [in] WPARAM wParam,
1052 [in] LPARAM lParam,
1053 [out] BOOL *pfEaten);
1055 HRESULT OnTestKeyUp(
1056 [in] ITfContext *pic,
1057 [in] WPARAM wParam,
1058 [in] LPARAM lParam,
1059 [out] BOOL *pfEaten);
1061 HRESULT OnKeyDown(
1062 [in] ITfContext *pic,
1063 [in] WPARAM wParam,
1064 [in] LPARAM lParam,
1065 [out] BOOL *pfEaten);
1067 HRESULT OnKeyUp(
1068 [in] ITfContext *pic,
1069 [in] WPARAM wParam,
1070 [in] LPARAM lParam,
1071 [out] BOOL *pfEaten);
1073 HRESULT OnPreservedKey(
1074 [in] ITfContext *pic,
1075 [in] REFGUID rguid,
1076 [out] BOOL *pfEaten);
1080 object,
1081 local,
1082 uuid(8f1b8ad8-0b6b-4874-90c5-bd76011e8f7c),
1083 pointer_default(unique)
1085 interface ITfMessagePump : IUnknown
1087 HRESULT PeekMessageA(
1088 [out] LPMSG pMsg,
1089 [in] HWND hwnd,
1090 [in] UINT wMsgFilterMin,
1091 [in] UINT wMsgFilterMax,
1092 [in] UINT wRemoveMsg,
1093 [out] BOOL *pfResult);
1095 HRESULT GetMessageA(
1096 [out] LPMSG pMsg,
1097 [in] HWND hwnd,
1098 [in] UINT wMsgFilterMin,
1099 [in] UINT wMsgFilterMax,
1100 [out] BOOL *pfResult);
1102 HRESULT PeekMessageW(
1103 [out] LPMSG pMsg,
1104 [in] HWND hwnd,
1105 [in] UINT wMsgFilterMin,
1106 [in] UINT wMsgFilterMax,
1107 [in] UINT wRemoveMsg,
1108 [out] BOOL *pfResult);
1110 HRESULT GetMessageW(
1111 [out] LPMSG pMsg,
1112 [in] HWND hwnd,
1113 [in] UINT wMsgFilterMin,
1114 [in] UINT wMsgFilterMax,
1115 [out] BOOL *pfResult);
1119 object,
1120 local,
1121 uuid(d60a7b49-1b9f-4be2-b702-47e9dc05dec3),
1122 pointer_default(unique)
1124 interface ITfClientId : IUnknown
1126 HRESULT GetClientId(
1127 [in] REFCLSID rclsid,
1128 [out] TfClientId *ptid);
1132 object,
1133 uuid(43c9fe15-f494-4c17-9de2-b8a4ac350aa8),
1134 pointer_default(unique)
1136 interface ITfLanguageProfileNotifySink : IUnknown
1138 HRESULT OnLanguageChange(
1139 [in] LANGID langid,
1140 [out] BOOL *pfAccept);
1142 HRESULT OnLanguageChanged();
1146 object,
1147 uuid(aa80e803-2021-11d2-93e0-0060b067b86e),
1148 pointer_default(unique)
1150 interface ITfEditSession : IUnknown
1152 HRESULT DoEditSession(
1153 [in] TfEditCookie ec);
1157 object,
1158 uuid(aa80e7ff-2021-11d2-93e0-0060b067b86e),
1159 pointer_default(unique)
1161 interface ITfRange : IUnknown
1163 const WCHAR TF_CHAR_EMBEDDED = TS_CHAR_EMBEDDED;
1165 typedef [uuid(cf610f06-2882-46f6-abe5-298568b664c4)] enum { TF_GRAVITY_BACKWARD = 0, TF_GRAVITY_FORWARD = 1 } TfGravity;
1167 typedef [uuid(1e512533-bbdc-4530-9a8e-a1dc0af67468)] enum { TF_SD_BACKWARD = 0, TF_SD_FORWARD = 1 } TfShiftDir;
1169 const DWORD TF_HF_OBJECT = 1;
1170 const DWORD TF_TF_MOVESTART = 1;
1171 const DWORD TF_TF_IGNOREEND = 2;
1172 const DWORD TF_ST_CORRECTION = 1;
1173 const DWORD TF_IE_CORRECTION = 1;
1175 typedef [uuid(49930d51-7d93-448c-a48c-fea5dac192b1)] struct TF_HALTCOND
1177 ITfRange *pHaltRange;
1178 TfAnchor aHaltPos;
1179 DWORD dwFlags;
1180 } TF_HALTCOND;
1182 HRESULT GetText(
1183 [in] TfEditCookie ec,
1184 [in] DWORD dwFlags,
1185 [out, size_is(cchMax), length_is(*pcch)] WCHAR *pchText,
1186 [in] ULONG cchMax,
1187 [out] ULONG *pcch);
1189 HRESULT SetText(
1190 [in] TfEditCookie ec,
1191 [in] DWORD dwFlags,
1192 [in, size_is(cch), unique] const WCHAR *pchText,
1193 [in] LONG cch);
1195 HRESULT GetFormattedText(
1196 [in] TfEditCookie ec,
1197 [out] IDataObject **ppDataObject);
1199 HRESULT GetEmbedded(
1200 [in] TfEditCookie ec,
1201 [in] REFGUID rguidService,
1202 [in] REFIID riid,
1203 [out, iid_is(riid)] IUnknown **ppunk);
1205 HRESULT InsertEmbedded(
1206 [in] TfEditCookie ec,
1207 [in] DWORD dwFlags,
1208 [in] IDataObject *pDataObject);
1210 HRESULT ShiftStart(
1211 [in] TfEditCookie ec,
1212 [in] LONG cchReq,
1213 [out] LONG *pcch,
1214 [in, unique] const TF_HALTCOND *pHalt);
1216 HRESULT ShiftEnd(
1217 [in] TfEditCookie ec,
1218 [in] LONG cchReq,
1219 [out] LONG *pcch,
1220 [in, unique] const TF_HALTCOND *pHalt);
1222 HRESULT ShiftStartToRange(
1223 [in] TfEditCookie ec,
1224 [in] ITfRange *pRange,
1225 [in] TfAnchor aPos);
1227 HRESULT ShiftEndToRange(
1228 [in] TfEditCookie ec,
1229 [in] ITfRange *pRange,
1230 [in] TfAnchor aPos);
1232 HRESULT ShiftStartRegion(
1233 [in] TfEditCookie ec,
1234 [in] TfShiftDir dir,
1235 [out] BOOL *pfNoRegion);
1237 HRESULT ShiftEndRegion(
1238 [in] TfEditCookie ec,
1239 [in] TfShiftDir dir,
1240 [out] BOOL *pfNoRegion);
1242 HRESULT IsEmpty(
1243 [in] TfEditCookie ec,
1244 [out] BOOL *pfEmpty);
1246 HRESULT Collapse(
1247 [in] TfEditCookie ec,
1248 [in] TfAnchor aPos);
1250 HRESULT IsEqualStart(
1251 [in] TfEditCookie ec,
1252 [in] ITfRange *pWith,
1253 [in] TfAnchor aPos,
1254 [out] BOOL *pfEqual);
1256 HRESULT IsEqualEnd(
1257 [in] TfEditCookie ec,
1258 [in] ITfRange *pWith,
1259 [in] TfAnchor aPos,
1260 [out] BOOL *pfEqual);
1262 HRESULT CompareStart(
1263 [in] TfEditCookie ec,
1264 [in] ITfRange *pWith,
1265 [in] TfAnchor aPos,
1266 [out] LONG *plResult);
1268 HRESULT CompareEnd(
1269 [in] TfEditCookie ec,
1270 [in] ITfRange *pWith,
1271 [in] TfAnchor aPos,
1272 [out] LONG *plResult);
1274 HRESULT AdjustForInsert(
1275 [in] TfEditCookie ec,
1276 [in] ULONG cchInsert,
1277 [out] BOOL *pfInsertOk);
1279 HRESULT GetGravity(
1280 [out] TfGravity *pgStart,
1281 [out] TfGravity *pgEnd);
1283 HRESULT SetGravity(
1284 [in] TfEditCookie ec,
1285 [in] TfGravity gStart,
1286 [in] TfGravity gEnd);
1288 HRESULT Clone(
1289 [out] ITfRange **ppClone);
1291 HRESULT GetContext(
1292 [out] ITfContext **ppContext);
1296 object,
1297 uuid(057a6296-029b-4154-b79a-0d461d4ea94c),
1298 pointer_default(unique)
1300 interface ITfRangeACP : ITfRange
1302 HRESULT GetExtent([out] LONG *pacpAnchor,
1303 [out] LONG *pcch);
1305 HRESULT SetExtent([in] LONG acpAnchor,
1306 [in] LONG cch);
1310 object,
1311 uuid(55ce16ba-3014-41c1-9ceb-fade1446ac6c),
1312 pointer_default(unique)
1314 interface ITfInsertAtSelection : IUnknown
1316 const DWORD TF_IAS_NOQUERY = 0x1;
1317 const DWORD TF_IAS_QUERYONLY = 0x2;
1318 const DWORD TF_IAS_NO_DEFAULT_COMPOSITION = 0x80000000;
1320 HRESULT InsertTextAtSelection(
1321 [in] TfEditCookie ec,
1322 [in] DWORD dwFlags,
1323 [in, size_is(cch)] const WCHAR *pchText,
1324 [in] LONG cch,
1325 [out] ITfRange **ppRange);
1327 HRESULT InsertEmbeddedAtSelection(
1328 [in] TfEditCookie ec,
1329 [in] DWORD dwFlags,
1330 [in] IDataObject *pDataObject,
1331 [out] ITfRange **ppRange);
1335 object,
1336 uuid(6834b120-88cb-11d2-bf45-00105a2799b5),
1337 pointer_default(unique)
1339 interface ITfPropertyStore : IUnknown
1341 const DWORD TF_TU_CORRECTION = 0x1;
1343 HRESULT GetType([out] GUID *pguid);
1345 HRESULT GetDataType([out] DWORD *pdwReserved);
1347 HRESULT GetData([out] VARIANT *pvarValue);
1349 HRESULT OnTextUpdated(
1350 [in] DWORD dwFlags,
1351 [in] ITfRange *pRangeNew,
1352 [out] BOOL *pfAccept);
1354 HRESULT Shrink(
1355 [in] ITfRange *pRangeNew,
1356 [out] BOOL *pfFree);
1358 HRESULT Divide(
1359 [in] ITfRange *pRangeThis,
1360 [in] ITfRange *pRangeNew,
1361 [out] ITfPropertyStore **ppPropStore);
1363 HRESULT Clone(
1364 [out] ITfPropertyStore **pPropStore);
1366 HRESULT GetPropertyRangeCreator(
1367 [out] CLSID *pclsid);
1369 HRESULT Serialize(
1370 [in] IStream *pStream,
1371 [out] ULONG *pcb);
1375 object,
1376 uuid(5efd22Ba-7838-46cb-88e2-cadb14124f8f),
1377 pointer_default(unique)
1379 interface IEnumITfCompositionView : IUnknown
1381 HRESULT Clone([out] IEnumITfCompositionView **ppEnum);
1383 HRESULT Next(
1384 [in] ULONG ulCount,
1385 [out, size_is(ulCount), length_is(*pcFetched)] ITfCompositionView **rgCompositionView,
1386 [out] ULONG *pcFetched);
1388 HRESULT Reset();
1390 HRESULT Skip([in] ULONG ulCount);
1394 object,
1395 uuid(20168d64-5a8f-4a5a-b7bd-cfa29f4D0fd9),
1396 pointer_default(unique)
1398 interface ITfComposition : IUnknown
1400 HRESULT GetRange([out] ITfRange **ppRange);
1402 HRESULT ShiftStart(
1403 [in] TfEditCookie ecWrite,
1404 [in] ITfRange *pNewStart);
1406 HRESULT ShiftEnd(
1407 [in] TfEditCookie ecWrite,
1408 [in] ITfRange *pNewEnd);
1410 HRESULT EndComposition([in] TfEditCookie ecWrite);
1414 object,
1415 uuid(a781718c-579a-4b15-a280-32b8577acc5e),
1416 pointer_default(unique)
1418 interface ITfCompositionSink : IUnknown
1420 HRESULT OnCompositionTerminated(
1421 [in] TfEditCookie ecWrite,
1422 [in] ITfComposition *pComposition);
1426 object,
1427 uuid(d40C8aae-aC92-4fc7-9a11-0ee0e23aa39b),
1428 pointer_default(unique)
1430 interface ITfContextComposition : IUnknown
1432 HRESULT StartComposition(
1433 [in] TfEditCookie ecWrite,
1434 [in] ITfRange *pCompositionRange,
1435 [in] ITfCompositionSink *pSink,
1436 [out] ITfComposition **ppComposition);
1438 HRESULT EnumCompositions([out] IEnumITfCompositionView **ppEnum);
1440 HRESULT FindComposition(
1441 [in] TfEditCookie ecRead,
1442 [in] ITfRange *pTestRange,
1443 [out] IEnumITfCompositionView **ppEnum);
1445 HRESULT TakeOwnership(
1446 [in] TfEditCookie ecWrite,
1447 [in] ITfCompositionView *pComposition,
1448 [in] ITfCompositionSink *pSink,
1449 [out] ITfComposition **ppComposition);
1453 object,
1454 uuid(86462810-593b-4916-9764-19c08e9ce110),
1455 pointer_default(unique)
1457 interface ITfContextOwnerCompositionServices : ITfContextComposition
1459 HRESULT TerminateComposition([in] ITfCompositionView *pComposition);
1463 object,
1464 uuid(4ef89150-0807-11d3-8df0-00105a2799b5),
1465 pointer_default(unique)
1467 interface ITfPersistentPropertyLoaderACP : IUnknown
1469 HRESULT LoadProperty(
1470 [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
1471 [out] IStream **ppStream);
1475 object,
1476 uuid(b23eb630-3e1c-11d3-a745-0050040ab407),
1477 pointer_default(unique)
1479 interface ITfContextOwnerServices : IUnknown
1481 HRESULT OnLayoutChange();
1483 HRESULT OnStatusChange([in] DWORD dwFlags);
1485 HRESULT OnAttributeChange([in] REFGUID rguidAttribute);
1487 HRESULT Serialize(
1488 [in] ITfProperty *pProp,
1489 [in] ITfRange *pRange,
1490 [out] TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
1491 [in] IStream *pStream);
1493 HRESULT Unserialize(
1494 [in] ITfProperty *pProp,
1495 [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
1496 [in] IStream *pStream,
1497 [in] ITfPersistentPropertyLoaderACP *pLoader);
1499 HRESULT ForceLoadProperty([in] ITfProperty *pProp);
1501 HRESULT CreateRange(
1502 [in] LONG acpStart,
1503 [in] LONG acpEnd,
1504 [out] ITfRangeACP **ppRange);
1508 object,
1509 uuid(17d49a3d-f8b8-4b2f-b254-52319dd64c53),
1510 pointer_default(unique)
1512 interface ITfReadOnlyProperty : IUnknown
1514 HRESULT GetType([out] GUID *pguid);
1516 HRESULT EnumRanges(
1517 [in] TfEditCookie ec,
1518 [out] IEnumTfRanges **ppEnum,
1519 [in] ITfRange *pTargetRange);
1521 HRESULT GetValue(
1522 [in] TfEditCookie ec,
1523 [in] ITfRange *pRange,
1524 [out] VARIANT *pvarValue);
1526 HRESULT GetContext([out] ITfContext **ppContext);
1530 object,
1531 uuid(e2449660-9542-11d2-bf46-00105a2799b5),
1532 pointer_default(unique)
1534 interface ITfProperty : ITfReadOnlyProperty
1536 HRESULT FindRange(
1537 [in] TfEditCookie ec,
1538 [in] ITfRange *pRange,
1539 [out] ITfRange **ppRange,
1540 [in] TfAnchor aPos);
1542 HRESULT SetValueStore(
1543 [in] TfEditCookie ec,
1544 [in] ITfRange *pRange,
1545 [in] ITfPropertyStore *pPropStore);
1547 HRESULT SetValue(
1548 [in] TfEditCookie ec,
1549 [in] ITfRange *pRange,
1550 [in] const VARIANT *pvarValue);
1552 HRESULT Clear(
1553 [in] TfEditCookie ec,
1554 [in] ITfRange *pRange);
1558 object,
1559 uuid(bb08f7a9-607a-4384-8623-056892b64371),
1560 pointer_default(unique)
1562 interface ITfCompartment : IUnknown
1564 HRESULT SetValue(
1565 [in] TfClientId tid,
1566 [in] const VARIANT *pvarValue);
1568 HRESULT GetValue(
1569 [out] VARIANT *pvarValue);
1573 object,
1574 uuid(7dcf57ac-18ad-438b-824d-979bffb74b7c),
1575 pointer_default(unique)
1577 interface ITfCompartmentMgr : IUnknown
1579 HRESULT GetCompartment(
1580 [in] REFGUID rguid,
1581 [out] ITfCompartment **ppcomp);
1583 HRESULT ClearCompartment(
1584 [in] TfClientId tid,
1585 [in] REFGUID rguid);
1587 HRESULT EnumCompartments(
1588 [out] IEnumGUID **ppEnum);
1592 object,
1593 uuid(743abd5f-f26d-48df-8cc5-238492419b64),
1594 pointer_default(unique)
1596 interface ITfCompartmentEventSink : IUnknown
1598 HRESULT OnChange(
1599 [in] REFGUID rguid);
1603 object,
1604 uuid(8f1a7ea6-1654-4502-a86e-b2902344d507),
1605 pointer_default(unique)
1607 interface IEnumTfContexts : IUnknown
1609 HRESULT Clone(
1610 [out] IEnumTfContexts **ppEnum);
1612 HRESULT Next(
1613 [in] ULONG ulCount,
1614 [out, size_is(ulCount), length_is(*pcFetched)] ITfContext **rgContext,
1615 [out] ULONG *pcFetched);
1617 HRESULT Reset();
1619 HRESULT Skip(
1620 [in] ULONG ulCount);
1624 object,
1625 uuid(aa80e808-2021-11d2-93e0-0060b067b86e),
1626 pointer_default(unique)
1628 interface IEnumTfDocumentMgrs : IUnknown
1630 HRESULT Clone(
1631 [out] IEnumTfDocumentMgrs **ppEnum);
1633 HRESULT Next(
1634 [in] ULONG ulCount,
1635 [out, size_is(ulCount), length_is(*pcFetched)] ITfDocumentMgr **rgDocumentMgr,
1636 [out] ULONG *pcFetched);
1638 HRESULT Reset();
1640 HRESULT Skip(
1641 [in] ULONG ulCount);
1645 object,
1646 uuid(73131f9c-56a9-49dd-b0ee-d046633f7528),
1647 pointer_default(unique)
1649 interface ITfSourceSingle : IUnknown
1651 HRESULT AdviseSingleSink(
1652 [in] TfClientId tid,
1653 [in] REFIID riid,
1654 [in, iid_is(riid)] IUnknown *punk);
1656 HRESULT UnadviseSingleSink(
1657 [in] TfClientId tid,
1658 [in] REFIID riid);
1662 object,
1663 local,
1664 uuid(c0f1db0c-3a20-405c-a303-96b6010a885f),
1665 pointer_default(unique)
1667 interface ITfThreadFocusSink : IUnknown
1669 HRESULT OnSetThreadFocus();
1671 HRESULT OnKillThreadFocus();
1675 object,
1676 uuid(71c6e74e-0f28-11d8-a82a-00065b84435c),
1677 pointer_default(unique)
1679 interface ITfInputProcessorProfileActivationSink : IUnknown
1681 HRESULT OnActivated(
1682 [in] DWORD dwProfileType,
1683 [in] LANGID langid,
1684 [in] REFCLSID clsid,
1685 [in] REFGUID catid,
1686 [in] REFGUID guidProfile,
1687 [in] HKL hkl,
1688 [in] DWORD dwFlags);
1692 object,
1693 local,
1694 uuid(a1adaaa2-3a24-449d-ac96-5183e7f5c217),
1695 pointer_default(unique)
1697 interface ITfMouseSink : IUnknown
1699 HRESULT OnMouseEvent(
1700 [in] ULONG uEdge,
1701 [in] ULONG uQuadrant,
1702 [in] DWORD dwBtnStatus,
1703 [out] BOOL *pfEaten);
1707 object,
1708 uuid(09d146cd-a544-4132-925b-7afa8ef322d0),
1709 pointer_default(unique)
1711 interface ITfMouseTracker : IUnknown
1713 HRESULT AdviseMouseSink(
1714 [in] ITfRange *range,
1715 [in] ITfMouseSink *pSink,
1716 [out] DWORD *pdwCookie);
1718 HRESULT UnadviseMouseSink([in] DWORD dwCookie);
1722 object,
1723 uuid(3bdd78e2-c16e-47fd-b883-ce6facc1a208),
1724 pointer_default(unique)
1726 interface ITfMouseTrackerACP : IUnknown
1728 HRESULT AdviseMouseSink(
1729 [in] ITfRangeACP *range,
1730 [in] ITfMouseSink *pSink,
1731 [out] DWORD *pdwCookie);
1733 HRESULT UnadviseMouseSink([in] DWORD dwCookie);