d3d11/tests: Add test for 3D texture interfaces.
[wine.git] / include / msctf.idl
blobdb82709f5f3a3ab81c32b5352e1b049f83ce138b
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
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;
89 interface ITfContext;
90 interface IEnumTfDocumentMgrs;
91 interface IEnumTfContexts;
92 interface ITfCompartmentMgr;
93 interface ITfEditSession;
94 interface ITfRange;
95 interface ITfProperty;
96 interface ITfReadOnlyProperty;
97 interface IEnumTfLanguageProfiles;
98 interface ITfCompositionView;
99 interface ITfKeyEventSink;
101 cpp_quote("#if 0")
102 typedef [uuid(4f5d560f-5ab5-4dde-8c4d-404592857ab0)] UINT_PTR HKL;
103 cpp_quote("#endif")
105 typedef [uuid(e26d9e1d-691e-4f29-90d7-338dcf1f8cef)] struct TF_PERSISTENT_PROPERTY_HEADER_ACP
107 GUID guidType;
108 LONG ichStart;
109 LONG cch;
110 ULONG cb;
111 DWORD dwPrivate;
112 CLSID clsidTIP;
113 } TF_PERSISTENT_PROPERTY_HEADER_ACP;
115 typedef [uuid(e1b5808d-1e46-4c19-84dc-68c5f5978cc8)] struct TF_LANGUAGEPROFILE
117 CLSID clsid;
118 LANGID langid;
119 GUID catid;
120 BOOL fActive;
121 GUID guidProfile;
122 } TF_LANGUAGEPROFILE;
124 typedef [uuid(77c12f95-b783-450d-879f-1cd2362c6521)] struct TF_PRESERVEDKEY
126 UINT uVKey;
127 UINT uModifiers;
128 } TF_PRESERVEDKEY;
130 typedef [uuid(5a886226-ae9a-489b-b991-2b1e25ee59a9)] enum { TF_ANCHOR_START = 0, TF_ANCHOR_END = 1 } TfAnchor;
133 object,
134 uuid(101d6610-0990-11d3-8df0-00105a2799b5),
135 pointer_default(unique)
137 interface ITfFunctionProvider : IUnknown
139 HRESULT GetType(
140 [out] GUID *guid);
142 HRESULT GetDescription(
143 [out] BSTR *desc);
145 HRESULT GetFunction(
146 [in] REFGUID guid,
147 [in] REFIID riid,
148 [out, iid_is(riid)] IUnknown **func);
152 object,
153 uuid(e4b24db0-0990-11d3-8df0-00105a2799b5),
154 pointer_default(unique)
156 interface IEnumTfFunctionProviders : IUnknown
158 HRESULT Clone(
159 [out] IEnumTfFunctionProviders **ret);
161 HRESULT Next(
162 [in] ULONG count,
163 [out, size_is(count), length_is(*fetched)] ITfFunctionProvider **prov,
164 [out] ULONG *fetched);
166 HRESULT Reset();
168 HRESULT Skip(
169 [in] ULONG count);
173 object,
174 uuid(aa80e801-2021-11d2-93e0-0060b067b86e),
175 pointer_default(unique)
177 interface ITfThreadMgr: IUnknown
179 HRESULT Activate(
180 [out] TfClientId *ptid);
182 HRESULT Deactivate();
184 HRESULT CreateDocumentMgr(
185 [out] ITfDocumentMgr **ppdim);
187 HRESULT EnumDocumentMgrs(
188 [out] IEnumTfDocumentMgrs **ppEnum);
190 HRESULT GetFocus(
191 [out] ITfDocumentMgr **ppdimFocus);
193 HRESULT SetFocus(
194 [in] ITfDocumentMgr *pdimFocus);
196 HRESULT AssociateFocus(
197 [in] HWND hwnd,
198 [in, unique] ITfDocumentMgr *pdimNew,
199 [out] ITfDocumentMgr **ppdimPrev);
201 HRESULT IsThreadFocus(
202 [out] BOOL *pfThreadFocus);
204 HRESULT GetFunctionProvider(
205 [in] REFCLSID clsid,
206 [out] ITfFunctionProvider **ppFuncProv);
208 HRESULT EnumFunctionProviders(
209 [out] IEnumTfFunctionProviders **ppEnum);
211 HRESULT GetGlobalCompartment(
212 [out] ITfCompartmentMgr **ppCompMgr);
216 object,
217 uuid(d7540241-f9a1-4364-befc-dbcd2c4395b7),
218 pointer_default(unique)
220 interface ITfCompositionView : IUnknown
222 HRESULT GetOwnerClsid([out] CLSID *pclsid);
224 HRESULT GetRange([out] ITfRange **ppRange);
228 object,
229 uuid(aa80e7f4-2021-11d2-93e0-0060b067b86e),
230 pointer_default(unique)
232 interface ITfDocumentMgr: IUnknown
234 HRESULT CreateContext(
235 [in] TfClientId tidOwner,
236 [in] DWORD dwFlags,
237 [in, unique] IUnknown *punk,
238 [out] ITfContext **ppic,
239 [out] TfEditCookie *pecTextStore);
241 HRESULT Push(
242 [in] ITfContext *pic);
244 const DWORD TF_POPF_ALL = 0x0001;
246 HRESULT Pop(
247 [in] DWORD dwFlags);
249 HRESULT GetTop(
250 [out] ITfContext **ppic);
252 HRESULT GetBase(
253 [out] ITfContext **ppic);
255 HRESULT EnumContexts(
256 [out] IEnumTfContexts **ppEnum);
260 object,
261 uuid(2433bf8e-0f9b-435c-ba2c-180611978c30),
262 pointer_default(unique)
264 interface ITfContextView : IUnknown
266 HRESULT GetRangeFromPoint(
267 [in] TfEditCookie cookie,
268 [in] const POINT *pt,
269 [in] DWORD flags,
270 [out] ITfRange **range);
272 HRESULT GetTextExt(
273 [in] TfEditCookie cookie,
274 [in] ITfRange *range,
275 [out] RECT *rect,
276 [out] BOOL *clipped);
278 HRESULT GetScreenExt(
279 [out] RECT *rect);
281 HRESULT GetWnd(
282 [out] HWND *hwnd);
286 object,
287 uuid(f0c0f8dd-cf38-44e1-bb0f-68cf0d551c78),
288 pointer_default(unique)
290 interface IEnumTfContextViews : IUnknown
292 HRESULT Clone(
293 [out] IEnumTfContextViews **ret);
295 HRESULT Next(
296 [in] ULONG count,
297 [out, size_is(count), length_is(*fetched)] ITfContextView **views,
298 [out] ULONG *fetched);
300 HRESULT Reset();
302 HRESULT Skip(
303 [in] ULONG count);
307 object,
308 uuid(19188cb0-aca9-11d2-afc5-00105a2799b5),
309 pointer_default(unique)
311 interface IEnumTfProperties : IUnknown
313 HRESULT Clone(
314 [out] IEnumTfProperties **ret);
316 HRESULT Next(
317 [in] ULONG count,
318 [out, size_is(count), length_is(*fetched)] ITfProperty **props,
319 [out] ULONG *fetched);
321 HRESULT Reset();
323 HRESULT Skip(
324 [in] ULONG count);
328 object,
329 uuid(463a506d-6992-49d2-9b88-93d55e70bb16),
330 pointer_default(unique)
332 interface ITfRangeBackup : IUnknown
334 HRESULT Restore(
335 [in] TfEditCookie cookie,
336 [in] ITfRange *range);
340 object,
341 uuid(aa80e7fd-2021-11d2-93e0-0060b067b86e),
342 pointer_default(unique)
344 interface ITfContext : IUnknown
346 const DWORD TF_ES_ASYNCDONTCARE = 0x0;
347 const DWORD TF_ES_SYNC = 0x1;
348 const DWORD TF_ES_READ = 0x2;
349 const DWORD TF_ES_READWRITE = 0x6;
350 const DWORD TF_ES_ASYNC = 0x8;
352 HRESULT RequestEditSession(
353 [in] TfClientId tid,
354 [in] ITfEditSession *pes,
355 [in] DWORD dwFlags,
356 [out] HRESULT *phrSession);
358 HRESULT InWriteSession(
359 [in] TfClientId tid,
360 [out] BOOL *pfWriteSession);
362 typedef [uuid(1690be9b-d3e9-49f6-8d8b-51b905af4c43)] enum { TF_AE_NONE, TF_AE_START, TF_AE_END } TfActiveSelEnd;
364 typedef [uuid(36ae42a4-6989-4bdc-b48a-6137b7bf2e42)] struct TF_SELECTIONSTYLE
366 TfActiveSelEnd ase;
367 BOOL fInterimChar;
368 } TF_SELECTIONSTYLE;
370 typedef [uuid(75eb22f2-b0bf-46a8-8006-975a3b6efcf1)] struct TF_SELECTION
372 ITfRange *range;
373 TF_SELECTIONSTYLE style;
374 } TF_SELECTION;
376 const ULONG TF_DEFAULT_SELECTION = TS_DEFAULT_SELECTION;
378 HRESULT GetSelection(
379 [in] TfEditCookie ec,
380 [in] ULONG ulIndex,
381 [in] ULONG ulCount,
382 [out, size_is(ulCount), length_is(*pcFetched)] TF_SELECTION *pSelection,
383 [out] ULONG *pcFetched);
385 HRESULT SetSelection(
386 [in] TfEditCookie ec,
387 [in] ULONG ulCount,
388 [in, size_is(ulCount)] const TF_SELECTION *pSelection);
390 HRESULT GetStart(
391 [in] TfEditCookie ec,
392 [out] ITfRange **ppStart);
394 HRESULT GetEnd(
395 [in] TfEditCookie ec,
396 [out] ITfRange **ppEnd);
398 typedef [uuid(bc7d979a-846a-444d-afef-0a9bfa82b961)] TS_STATUS TF_STATUS;
399 const DWORD TF_SD_READONLY = TS_SD_READONLY;
400 const DWORD TF_SD_LOADING = TS_SD_LOADING;
401 const DWORD TF_SS_DISJOINTSEL = TS_SS_DISJOINTSEL;
402 const DWORD TF_SS_REGIONS = TS_SS_REGIONS;
403 const DWORD TF_SS_TRANSITORY = TS_SS_TRANSITORY;
406 HRESULT GetActiveView(
407 [out] ITfContextView **ppView);
409 HRESULT EnumViews(
410 [out] IEnumTfContextViews **ppEnum);
412 HRESULT GetStatus(
413 [out] TF_STATUS *pdcs);
415 HRESULT GetProperty(
416 [in] REFGUID guidProp,
417 [out] ITfProperty **ppProp);
419 HRESULT GetAppProperty(
420 [in] REFGUID guidProp,
421 [out] ITfReadOnlyProperty **ppProp);
423 HRESULT TrackProperties(
424 [in, size_is(cProp)] const GUID **prgProp,
425 [in] ULONG cProp,
426 [in, size_is(cAppProp)] const GUID **prgAppProp,
427 [in] ULONG cAppProp,
428 [out] ITfReadOnlyProperty **ppProperty);
430 HRESULT EnumProperties(
431 [out] IEnumTfProperties **ppEnum);
433 HRESULT GetDocumentMgr(
434 [out] ITfDocumentMgr **ppDm);
436 HRESULT CreateRangeBackup(
437 [in] TfEditCookie ec,
438 [in] ITfRange *pRange,
439 [out] ITfRangeBackup **ppBackup);
442 const DWORD TF_INVALID_COOKIE = 0xffffffff;
445 object,
446 uuid(4ea48a35-60ae-446f-8fd6-e6a8d82459f7),
447 pointer_default(unique)
449 interface ITfSource : IUnknown
451 HRESULT AdviseSink(
452 [in] REFIID riid,
453 [in, iid_is(riid)] IUnknown *punk,
454 [out] DWORD *pdwCookie);
456 HRESULT UnadviseSink(
457 [in] DWORD dwCookie);
461 object,
462 local,
463 uuid(1F02B6C5-7842-4EE6-8A0B-9A24183A95CA),
464 pointer_default(unique)
466 interface ITfInputProcessorProfiles : IUnknown
468 HRESULT Register(
469 [in] REFCLSID rclsid);
471 HRESULT Unregister(
472 [in] REFCLSID rclsid);
474 HRESULT AddLanguageProfile(
475 [in] REFCLSID rclsid,
476 [in] LANGID langid,
477 [in] REFGUID guidProfile,
478 [in, size_is(cchDesc)] const WCHAR *pchDesc,
479 [in] ULONG cchDesc,
480 [in, size_is(cchFile)] const WCHAR *pchIconFile,
481 [in] ULONG cchFile,
482 [in] ULONG uIconIndex);
484 HRESULT RemoveLanguageProfile(
485 [in] REFCLSID rclsid,
486 [in] LANGID langid,
487 [in] REFGUID guidProfile);
489 HRESULT EnumInputProcessorInfo(
490 [out] IEnumGUID **ppEnum);
492 HRESULT GetDefaultLanguageProfile(
493 [in] LANGID langid,
494 [in] REFGUID catid,
495 [out] CLSID *pclsid,
496 [out] GUID *pguidProfile);
498 HRESULT SetDefaultLanguageProfile(
499 [in] LANGID langid,
500 [in] REFCLSID rclsid,
501 [in] REFGUID guidProfiles);
503 HRESULT ActivateLanguageProfile(
504 [in] REFCLSID rclsid,
505 [in] LANGID langid,
506 [in] REFGUID guidProfiles);
508 HRESULT GetActiveLanguageProfile(
509 [in] REFCLSID rclsid,
510 [out] LANGID *plangid,
511 [out] GUID *pguidProfile);
513 HRESULT GetLanguageProfileDescription(
514 [in] REFCLSID rclsid,
515 [in] LANGID langid,
516 [in] REFGUID guidProfile,
517 [out] BSTR *pbstrProfile);
519 HRESULT GetCurrentLanguage(
520 [out] LANGID *plangid);
522 HRESULT ChangeCurrentLanguage(
523 [in] LANGID langid);
525 HRESULT GetLanguageList(
526 [out] LANGID **ppLangId,
527 [out] ULONG *pulCount);
529 HRESULT EnumLanguageProfiles(
530 [in] LANGID langid,
531 [out] IEnumTfLanguageProfiles **ppEnum);
533 HRESULT EnableLanguageProfile(
534 [in] REFCLSID rclsid,
535 [in] LANGID langid,
536 [in] REFGUID guidProfile,
537 [in] BOOL fEnable);
539 HRESULT IsEnabledLanguageProfile(
540 [in] REFCLSID rclsid,
541 [in] LANGID langid,
542 [in] REFGUID guidProfile,
543 [out] BOOL *pfEnable);
545 HRESULT EnableLanguageProfileByDefault(
546 [in] REFCLSID rclsid,
547 [in] LANGID langid,
548 [in] REFGUID guidProfile,
549 [in] BOOL fEnable);
551 HRESULT SubstituteKeyboardLayout(
552 [in] REFCLSID rclsid,
553 [in] LANGID langid,
554 [in] REFGUID guidProfile,
555 [in] HKL hKL);
558 typedef [uuid(44d2825a-10e5-43b2-877f-6cb2f43b7e7e)]
559 struct TF_INPUTPROCESSORPROFILE {
560 DWORD dwProfileType;
561 LANGID langid;
562 CLSID clsid;
563 GUID guidProfile;
564 GUID catid;
565 HKL hklSubstitute;
566 DWORD dwCaps;
567 HKL hkl;
568 DWORD dwFlags;
569 } TF_INPUTPROCESSORPROFILE;
572 object,
573 uuid(71c6e74d-0f28-11d8-a82a-00065b84435c),
574 pointer_default(unique)
576 interface IEnumTfInputProcessorProfiles : IUnknown
578 HRESULT Clone(
579 [out] IEnumTfInputProcessorProfiles **ppEnum);
581 HRESULT Next(
582 [in] ULONG ulCount,
583 [out, size_is(ulCount), length_is(*pcFetch)] TF_INPUTPROCESSORPROFILE *pProfile,
584 [out] ULONG *pcFetch);
586 HRESULT Reset();
588 HRESULT Skip(
589 [in] ULONG ulCount);
593 object,
594 uuid(71c6e74c-0f28-11d8-a82a-00065b84435c),
595 pointer_default(unique)
597 interface ITfInputProcessorProfileMgr : IUnknown
599 HRESULT ActivateProfile(
600 [in] DWORD dwProfileType,
601 [in] LANGID langid,
602 [in] REFCLSID clsid,
603 [in] REFGUID guidProfile,
604 [in] HKL hkl,
605 [in] DWORD dwFlags);
607 HRESULT DeactivateProfile(
608 [in] DWORD dwProfileType,
609 [in] LANGID langid,
610 [in] REFCLSID clsid,
611 [in] REFGUID guidProfile,
612 [in] HKL hkl,
613 [in] DWORD dwFlags);
615 HRESULT GetProfile(
616 [in] DWORD dwProfileType,
617 [in] LANGID langid,
618 [in] REFCLSID clsid,
619 [in] REFGUID guidProfile,
620 [in] HKL hkl,
621 [out] TF_INPUTPROCESSORPROFILE *pProfile);
624 HRESULT EnumProfiles(
625 [in] LANGID langid,
626 [out] IEnumTfInputProcessorProfiles **ppEnum);
628 HRESULT ReleaseInputProcessor(
629 [in] REFCLSID rclsid,
630 [in] DWORD dwFlags);
632 HRESULT RegisterProfile(
633 [in] REFCLSID rclsid,
634 [in] LANGID langid,
635 [in] REFGUID guidProfile,
636 [in, size_is(cchDesc)] const WCHAR *pchDesc,
637 [in] ULONG cchDesc,
638 [in, size_is(cchFile)] const WCHAR *pchIconFile,
639 [in] ULONG cchFile,
640 [in] ULONG uIconIndex,
641 [in] HKL hklsubstitute,
642 [in] DWORD dwPreferredLayout,
643 [in] BOOL bEnabledByDefault,
644 [in] DWORD dwFlags);
646 HRESULT UnregisterProfile(
647 [in] REFCLSID rclsid,
648 [in] LANGID langid,
649 [in] REFGUID guidProfile,
650 [in] DWORD dwFlags);
652 HRESULT GetActiveProfile(
653 [in] REFGUID catid,
654 [out] TF_INPUTPROCESSORPROFILE *pProfile);
657 typedef [uuid(c4cc07f1-80cc-4a7b-bc54-98512782cbe3)]
658 enum {
659 TF_LS_NONE = 0,
660 TF_LS_SOLID = 1,
661 TF_LS_DOT = 2,
662 TF_LS_DASH = 3,
663 TF_LS_SQUIGGLE = 4
664 } TF_DA_LINESTYLE;
666 typedef [uuid(d9b92e21-084a-401b-9c64-1e6dad91a1ab)]
667 enum {
668 TF_CT_NONE = 0,
669 TF_CT_SYSCOLOR = 1,
670 TF_CT_COLORREF = 2
671 } TF_DA_COLORTYPE;
673 typedef [uuid(90d0cb5e-6520-4a0f-b47c-c39bd955f0d6)]
674 struct TF_DA_COLOR {
675 TF_DA_COLORTYPE type;
676 [switch_type(TF_DA_COLORTYPE), switch_is(type)]
677 union {
678 [case(TF_CT_SYSCOLOR)] int nIndex;
679 [case(TF_CT_COLORREF)] COLORREF cr;
681 } TF_DA_COLOR;
683 typedef [uuid(33d2fe4b-6c24-4f67-8d75-3bc1819e4126)]
684 enum {
685 TF_ATTR_INPUT = 0,
686 TF_ATTR_TARGET_CONVERTED = 1,
687 TF_ATTR_CONVERTED = 2,
688 TF_ATTR_TARGET_NOTCONVERTED = 3,
689 TF_ATTR_INPUT_ERROR = 4,
690 TF_ATTR_FIXEDCONVERTED = 5,
691 TF_ATTR_OTHER = -1
692 } TF_DA_ATTR_INFO;
694 typedef [uuid(1bf1c305-419b-4182-a4d2-9bfadc3f021f)]
695 struct TF_DISPLAYATTRIBUTE {
696 TF_DA_COLOR crText;
697 TF_DA_COLOR crBk;
698 TF_DA_LINESTYLE lsStyle;
699 BOOL fBoldLine;
700 TF_DA_COLOR crLine;
701 TF_DA_ATTR_INFO bAttr;
702 } TF_DISPLAYATTRIBUTE;
705 object,
706 uuid(70528852-2f26-4aea-8c96-215150578932),
707 pointer_default(unique)
709 interface ITfDisplayAttributeInfo : IUnknown
711 HRESULT GetGUID([out] GUID *pguid);
713 HRESULT GetDescription([out] BSTR *pbstrDesc);
715 HRESULT GetAttributeInfo([out] TF_DISPLAYATTRIBUTE *pda);
717 HRESULT SetAttributeInfo([in] const TF_DISPLAYATTRIBUTE *pda);
719 HRESULT Reset();
723 object,
724 uuid(7cef04d7-cb75-4e80-a7ab-5f5bc7d332de),
725 pointer_default(unique)
727 interface IEnumTfDisplayAttributeInfo : IUnknown
729 HRESULT Clone([out] IEnumTfDisplayAttributeInfo **ppEnum);
731 HRESULT Next(
732 [in] ULONG ulCount,
733 [out, size_is(ulCount), length_is(*pcFetched)] ITfDisplayAttributeInfo **rgInfo,
734 [out] ULONG *pcFetched);
736 HRESULT Reset();
738 HRESULT Skip([in] ULONG ulCount);
742 object,
743 local,
744 uuid(8ded7393-5db1-475c-9e71-a39111b0ff67),
745 pointer_default(unique)
747 interface ITfDisplayAttributeMgr : IUnknown
749 HRESULT OnUpdateInfo();
751 HRESULT EnumDisplayAttributeInfo([out] IEnumTfDisplayAttributeInfo **ppEnum);
753 HRESULT GetDisplayAttributeInfo(
754 [in] REFGUID guid,
755 [out] ITfDisplayAttributeInfo **ppInfo,
756 [out] CLSID *pclsidOwner);
761 object,
762 local,
763 uuid(c3acefb5-f69d-4905-938f-fcadcf4be830),
764 pointer_default(unique)
766 interface ITfCategoryMgr : IUnknown
768 HRESULT RegisterCategory([in] REFCLSID rclsid,
769 [in] REFGUID rcatid,
770 [in] REFGUID rguid);
772 HRESULT UnregisterCategory([in] REFCLSID rclsid,
773 [in] REFGUID rcatid,
774 [in] REFGUID rguid);
776 HRESULT EnumCategoriesInItem([in] REFGUID rguid,
777 [out] IEnumGUID **ppEnum);
779 HRESULT EnumItemsInCategory([in] REFGUID rcatid,
780 [out] IEnumGUID **ppEnum);
782 HRESULT FindClosestCategory([in] REFGUID rguid,
783 [out] GUID *pcatid,
784 [in, size_is(ulCount)] const GUID **ppcatidList,
785 [in] ULONG ulCount);
787 HRESULT RegisterGUIDDescription([in] REFCLSID rclsid,
788 [in] REFGUID rguid,
789 [in, size_is(cch)] const WCHAR *pchDesc,
790 [in] ULONG cch);
792 HRESULT UnregisterGUIDDescription([in] REFCLSID rclsid,
793 [in] REFGUID rguid);
795 HRESULT GetGUIDDescription([in] REFGUID rguid,
796 [out] BSTR *pbstrDesc);
798 HRESULT RegisterGUIDDWORD([in] REFCLSID rclsid,
799 [in] REFGUID rguid,
800 [in] DWORD dw);
802 HRESULT UnregisterGUIDDWORD([in] REFCLSID rclsid,
803 [in] REFGUID rguid);
805 HRESULT GetGUIDDWORD([in] REFGUID rguid,
806 [out] DWORD *pdw);
808 HRESULT RegisterGUID([in] REFGUID rguid,
809 [out] TfGuidAtom *pguidatom);
811 HRESULT GetGUID([in] TfGuidAtom guidatom,
812 [out] GUID *pguid);
814 HRESULT IsEqualTfGuidAtom([in] TfGuidAtom guidatom,
815 [in] REFGUID rguid,
816 [out] BOOL *pfEqual);
820 object,
821 uuid(f99d3f40-8e32-11d2-bf46-00105a2799b5),
822 pointer_default(unique)
824 interface IEnumTfRanges : IUnknown
826 HRESULT Clone([out] IEnumTfRanges **ppEnum);
828 HRESULT Next(
829 [in] ULONG ulCount,
830 [out, size_is(ulCount), length_is(*pcFetched)] ITfRange **ppRange,
831 [out] ULONG *pcFetched);
833 HRESULT Reset();
835 HRESULT Skip(ULONG ulCount);
839 object,
840 uuid(42d4d099-7c1a-4a89-b836-6c6f22160df0),
841 pointer_default(unique)
843 interface ITfEditRecord : IUnknown
845 const DWORD TF_GTP_INCL_TEXT = 0x1;
847 HRESULT GetSelectionStatus(
848 [out] BOOL *changed);
850 HRESULT GetTextAndPropertyUpdates(
851 [in] DWORD flags,
852 [in, size_is(count)] const GUID **props,
853 [in] ULONG count,
854 [out] IEnumTfRanges **ret);
858 object,
859 uuid(8127d409-ccd3-4683-967a-b43d5b482bf7),
860 pointer_default(unique)
862 interface ITfTextEditSink : IUnknown
864 HRESULT OnEndEdit(
865 [in] ITfContext *pic,
866 [in] TfEditCookie ecReadOnly,
867 [in] ITfEditRecord *pEditRecord);
871 object,
872 uuid(5F20AA40-B57A-4F34-96AB-3576F377CC79),
873 pointer_default(unique)
875 interface ITfContextOwnerCompositionSink : IUnknown
877 HRESULT OnStartComposition(
878 [in] ITfCompositionView *pComposition,
879 [out] BOOL *pfOk);
881 HRESULT OnUpdateComposition(
882 [in] ITfCompositionView *pComposition,
883 [in] ITfRange *pRangeNew);
885 HRESULT OnEndComposition(
886 [in] ITfCompositionView *pComposition);
890 object,
891 uuid(b246cb75-a93e-4652-bf8c-b3fe0cfd7e57),
892 pointer_default(unique)
894 interface ITfActiveLanguageProfileNotifySink : IUnknown
896 HRESULT OnActivated(
897 [in] REFCLSID clsid,
898 [in] REFGUID guidProfile,
899 [in] BOOL fActivated);
903 object,
904 uuid(3d61bf11-ac5f-42c8-a4cb-931bcc28c744),
905 pointer_default(unique)
907 interface IEnumTfLanguageProfiles : IUnknown
909 HRESULT Clone(
910 [out] IEnumTfLanguageProfiles **ppEnum);
912 HRESULT Next(
913 [in] ULONG ulCount,
914 [out, size_is(ulCount), length_is(*pcFetch)] TF_LANGUAGEPROFILE *pProfile,
915 [out] ULONG *pcFetch);
917 HRESULT Reset();
919 HRESULT Skip(
920 [in] ULONG ulCount);
924 object,
925 local,
926 uuid(aa80e7f7-2021-11d2-93e0-0060b067b86e),
927 pointer_default(unique)
929 interface ITfTextInputProcessor : IUnknown
931 HRESULT Activate(
932 [in] ITfThreadMgr *ptim,
933 [in] TfClientId tid);
935 HRESULT Deactivate();
939 object,
940 uuid(aa80e80e-2021-11d2-93e0-0060b067b86e),
941 pointer_default(unique)
943 interface ITfThreadMgrEventSink : IUnknown
945 HRESULT OnInitDocumentMgr(
946 [in] ITfDocumentMgr *pdim);
948 HRESULT OnUninitDocumentMgr(
949 [in] ITfDocumentMgr *pdim);
951 HRESULT OnSetFocus(
952 [in] ITfDocumentMgr *pdimFocus,
953 [in] ITfDocumentMgr *pdimPrevFocus);
955 HRESULT OnPushContext(
956 [in] ITfContext *pic);
958 HRESULT OnPopContext(
959 [in] ITfContext *pic);
963 object,
964 local,
965 uuid(aa80e7f0-2021-11d2-93e0-0060b067b86e),
966 pointer_default(unique)
968 interface ITfKeystrokeMgr : IUnknown
970 HRESULT AdviseKeyEventSink(
971 [in] TfClientId tid,
972 [in] ITfKeyEventSink *pSink,
973 [in] BOOL fForeground);
975 HRESULT UnadviseKeyEventSink(
976 [in] TfClientId tid);
978 HRESULT GetForeground(
979 [out] CLSID *pclsid);
981 HRESULT TestKeyDown(
982 [in] WPARAM wParam,
983 [in] LPARAM lParam,
984 [out] BOOL *pfEaten);
986 HRESULT TestKeyUp(
987 [in] WPARAM wParam,
988 [in] LPARAM lParam,
989 [out] BOOL *pfEaten);
991 HRESULT KeyDown(
992 [in] WPARAM wParam,
993 [in] LPARAM lParam,
994 [out] BOOL *pfEaten);
996 HRESULT KeyUp(
997 [in] WPARAM wParam,
998 [in] LPARAM lParam,
999 [out] BOOL *pfEaten);
1001 HRESULT GetPreservedKey(
1002 [in] ITfContext *pic,
1003 [in] const TF_PRESERVEDKEY *pprekey,
1004 [out] GUID *pguid);
1006 HRESULT IsPreservedKey(
1007 [in] REFGUID rguid,
1008 [in] const TF_PRESERVEDKEY *pprekey,
1009 [out] BOOL *pfRegistered);
1011 HRESULT PreserveKey(
1012 [in] TfClientId tid,
1013 [in] REFGUID rguid,
1014 [in] const TF_PRESERVEDKEY *prekey,
1015 [in, size_is(cchDesc)] const WCHAR *pchDesc,
1016 [in] ULONG cchDesc);
1018 HRESULT UnpreserveKey(
1019 [in] REFGUID rguid,
1020 [in] const TF_PRESERVEDKEY *pprekey);
1022 HRESULT SetPreservedKeyDescription(
1023 [in] REFGUID rguid,
1024 [in, size_is(cchDesc)] const WCHAR *pchDesc,
1025 [in] ULONG cchDesc);
1027 HRESULT GetPreservedKeyDescription(
1028 [in] REFGUID rguid,
1029 [out] BSTR *pbstrDesc);
1031 HRESULT SimulatePreservedKey(
1032 [in] ITfContext *pic,
1033 [in] REFGUID rguid,
1034 [out] BOOL *pfEaten);
1038 object,
1039 local,
1040 uuid(aa80e7f5-2021-11d2-93e0-0060b067b86e),
1041 pointer_default(unique)
1043 interface ITfKeyEventSink : IUnknown
1045 HRESULT OnSetFocus(
1046 [in] BOOL fForeground);
1048 HRESULT OnTestKeyDown(
1049 [in] ITfContext *pic,
1050 [in] WPARAM wParam,
1051 [in] LPARAM lParam,
1052 [out] BOOL *pfEaten);
1054 HRESULT OnTestKeyUp(
1055 [in] ITfContext *pic,
1056 [in] WPARAM wParam,
1057 [in] LPARAM lParam,
1058 [out] BOOL *pfEaten);
1060 HRESULT OnKeyDown(
1061 [in] ITfContext *pic,
1062 [in] WPARAM wParam,
1063 [in] LPARAM lParam,
1064 [out] BOOL *pfEaten);
1066 HRESULT OnKeyUp(
1067 [in] ITfContext *pic,
1068 [in] WPARAM wParam,
1069 [in] LPARAM lParam,
1070 [out] BOOL *pfEaten);
1072 HRESULT OnPreservedKey(
1073 [in] ITfContext *pic,
1074 [in] REFGUID rguid,
1075 [out] BOOL *pfEaten);
1079 object,
1080 local,
1081 uuid(8f1b8ad8-0b6b-4874-90c5-bd76011e8f7c),
1082 pointer_default(unique)
1084 interface ITfMessagePump : IUnknown
1086 HRESULT PeekMessageA(
1087 [out] LPMSG pMsg,
1088 [in] HWND hwnd,
1089 [in] UINT wMsgFilterMin,
1090 [in] UINT wMsgFilterMax,
1091 [in] UINT wRemoveMsg,
1092 [out] BOOL *pfResult);
1094 HRESULT GetMessageA(
1095 [out] LPMSG pMsg,
1096 [in] HWND hwnd,
1097 [in] UINT wMsgFilterMin,
1098 [in] UINT wMsgFilterMax,
1099 [out] BOOL *pfResult);
1101 HRESULT PeekMessageW(
1102 [out] LPMSG pMsg,
1103 [in] HWND hwnd,
1104 [in] UINT wMsgFilterMin,
1105 [in] UINT wMsgFilterMax,
1106 [in] UINT wRemoveMsg,
1107 [out] BOOL *pfResult);
1109 HRESULT GetMessageW(
1110 [out] LPMSG pMsg,
1111 [in] HWND hwnd,
1112 [in] UINT wMsgFilterMin,
1113 [in] UINT wMsgFilterMax,
1114 [out] BOOL *pfResult);
1118 object,
1119 local,
1120 uuid(d60a7b49-1b9f-4be2-b702-47e9dc05dec3),
1121 pointer_default(unique)
1123 interface ITfClientId : IUnknown
1125 HRESULT GetClientId(
1126 [in] REFCLSID rclsid,
1127 [out] TfClientId *ptid);
1131 object,
1132 uuid(43c9fe15-f494-4c17-9de2-b8a4ac350aa8),
1133 pointer_default(unique)
1135 interface ITfLanguageProfileNotifySink : IUnknown
1137 HRESULT OnLanguageChange(
1138 [in] LANGID langid,
1139 [out] BOOL *pfAccept);
1141 HRESULT OnLanguageChanged();
1145 object,
1146 uuid(aa80e803-2021-11d2-93e0-0060b067b86e),
1147 pointer_default(unique)
1149 interface ITfEditSession : IUnknown
1151 HRESULT DoEditSession(
1152 [in] TfEditCookie ec);
1156 object,
1157 uuid(aa80e7ff-2021-11d2-93e0-0060b067b86e),
1158 pointer_default(unique)
1160 interface ITfRange : IUnknown
1162 const WCHAR TF_CHAR_EMBEDDED = TS_CHAR_EMBEDDED;
1164 typedef [uuid(cf610f06-2882-46f6-abe5-298568b664c4)] enum { TF_GRAVITY_BACKWARD = 0, TF_GRAVITY_FORWARD = 1 } TfGravity;
1166 typedef [uuid(1e512533-bbdc-4530-9a8e-a1dc0af67468)] enum { TF_SD_BACKWARD = 0, TF_SD_FORWARD = 1 } TfShiftDir;
1168 const DWORD TF_HF_OBJECT = 1;
1169 const DWORD TF_TF_MOVESTART = 1;
1170 const DWORD TF_TF_IGNOREEND = 2;
1171 const DWORD TF_ST_CORRECTION = 1;
1172 const DWORD TF_IE_CORRECTION = 1;
1174 typedef [uuid(49930d51-7d93-448c-a48c-fea5dac192b1)] struct TF_HALTCOND
1176 ITfRange *pHaltRange;
1177 TfAnchor aHaltPos;
1178 DWORD dwFlags;
1179 } TF_HALTCOND;
1181 HRESULT GetText(
1182 [in] TfEditCookie ec,
1183 [in] DWORD dwFlags,
1184 [out, size_is(cchMax), length_is(*pcch)] WCHAR *pchText,
1185 [in] ULONG cchMax,
1186 [out] ULONG *pcch);
1188 HRESULT SetText(
1189 [in] TfEditCookie ec,
1190 [in] DWORD dwFlags,
1191 [in, size_is(cch), unique] const WCHAR *pchText,
1192 [in] LONG cch);
1194 HRESULT GetFormattedText(
1195 [in] TfEditCookie ec,
1196 [out] IDataObject **ppDataObject);
1198 HRESULT GetEmbedded(
1199 [in] TfEditCookie ec,
1200 [in] REFGUID rguidService,
1201 [in] REFIID riid,
1202 [out, iid_is(riid)] IUnknown **ppunk);
1204 HRESULT InsertEmbedded(
1205 [in] TfEditCookie ec,
1206 [in] DWORD dwFlags,
1207 [in] IDataObject *pDataObject);
1209 HRESULT ShiftStart(
1210 [in] TfEditCookie ec,
1211 [in] LONG cchReq,
1212 [out] LONG *pcch,
1213 [in, unique] const TF_HALTCOND *pHalt);
1215 HRESULT ShiftEnd(
1216 [in] TfEditCookie ec,
1217 [in] LONG cchReq,
1218 [out] LONG *pcch,
1219 [in, unique] const TF_HALTCOND *pHalt);
1221 HRESULT ShiftStartToRange(
1222 [in] TfEditCookie ec,
1223 [in] ITfRange *pRange,
1224 [in] TfAnchor aPos);
1226 HRESULT ShiftEndToRange(
1227 [in] TfEditCookie ec,
1228 [in] ITfRange *pRange,
1229 [in] TfAnchor aPos);
1231 HRESULT ShiftStartRegion(
1232 [in] TfEditCookie ec,
1233 [in] TfShiftDir dir,
1234 [out] BOOL *pfNoRegion);
1236 HRESULT ShiftEndRegion(
1237 [in] TfEditCookie ec,
1238 [in] TfShiftDir dir,
1239 [out] BOOL *pfNoRegion);
1241 HRESULT IsEmpty(
1242 [in] TfEditCookie ec,
1243 [out] BOOL *pfEmpty);
1245 HRESULT Collapse(
1246 [in] TfEditCookie ec,
1247 [in] TfAnchor aPos);
1249 HRESULT IsEqualStart(
1250 [in] TfEditCookie ec,
1251 [in] ITfRange *pWith,
1252 [in] TfAnchor aPos,
1253 [out] BOOL *pfEqual);
1255 HRESULT IsEqualEnd(
1256 [in] TfEditCookie ec,
1257 [in] ITfRange *pWith,
1258 [in] TfAnchor aPos,
1259 [out] BOOL *pfEqual);
1261 HRESULT CompareStart(
1262 [in] TfEditCookie ec,
1263 [in] ITfRange *pWith,
1264 [in] TfAnchor aPos,
1265 [out] LONG *plResult);
1267 HRESULT CompareEnd(
1268 [in] TfEditCookie ec,
1269 [in] ITfRange *pWith,
1270 [in] TfAnchor aPos,
1271 [out] LONG *plResult);
1273 HRESULT AdjustForInsert(
1274 [in] TfEditCookie ec,
1275 [in] ULONG cchInsert,
1276 [out] BOOL *pfInsertOk);
1278 HRESULT GetGravity(
1279 [out] TfGravity *pgStart,
1280 [out] TfGravity *pgEnd);
1282 HRESULT SetGravity(
1283 [in] TfEditCookie ec,
1284 [in] TfGravity gStart,
1285 [in] TfGravity gEnd);
1287 HRESULT Clone(
1288 [out] ITfRange **ppClone);
1290 HRESULT GetContext(
1291 [out] ITfContext **ppContext);
1295 object,
1296 uuid(057a6296-029b-4154-b79a-0d461d4ea94c),
1297 pointer_default(unique)
1299 interface ITfRangeACP : ITfRange
1301 HRESULT GetExtent([out] LONG *pacpAnchor,
1302 [out] LONG *pcch);
1304 HRESULT SetExtent([in] LONG acpAnchor,
1305 [in] LONG cch);
1309 object,
1310 uuid(55ce16ba-3014-41c1-9ceb-fade1446ac6c),
1311 pointer_default(unique)
1313 interface ITfInsertAtSelection : IUnknown
1315 const DWORD TF_IAS_NOQUERY = 0x1;
1316 const DWORD TF_IAS_QUERYONLY = 0x2;
1317 const DWORD TF_IAS_NO_DEFAULT_COMPOSITION = 0x80000000;
1319 HRESULT InsertTextAtSelection(
1320 [in] TfEditCookie ec,
1321 [in] DWORD dwFlags,
1322 [in, size_is(cch)] const WCHAR *pchText,
1323 [in] LONG cch,
1324 [out] ITfRange **ppRange);
1326 HRESULT InsertEmbeddedAtSelection(
1327 [in] TfEditCookie ec,
1328 [in] DWORD dwFlags,
1329 [in] IDataObject *pDataObject,
1330 [out] ITfRange **ppRange);
1334 object,
1335 uuid(6834b120-88cb-11d2-bf45-00105a2799b5),
1336 pointer_default(unique)
1338 interface ITfPropertyStore : IUnknown
1340 const DWORD TF_TU_CORRECTION = 0x1;
1342 HRESULT GetType([out] GUID *pguid);
1344 HRESULT GetDataType([out] DWORD *pdwReserved);
1346 HRESULT GetData([out] VARIANT *pvarValue);
1348 HRESULT OnTextUpdated(
1349 [in] DWORD dwFlags,
1350 [in] ITfRange *pRangeNew,
1351 [out] BOOL *pfAccept);
1353 HRESULT Shrink(
1354 [in] ITfRange *pRangeNew,
1355 [out] BOOL *pfFree);
1357 HRESULT Divide(
1358 [in] ITfRange *pRangeThis,
1359 [in] ITfRange *pRangeNew,
1360 [out] ITfPropertyStore **ppPropStore);
1362 HRESULT Clone(
1363 [out] ITfPropertyStore **pPropStore);
1365 HRESULT GetPropertyRangeCreator(
1366 [out] CLSID *pclsid);
1368 HRESULT Serialize(
1369 [in] IStream *pStream,
1370 [out] ULONG *pcb);
1374 object,
1375 uuid(5efd22Ba-7838-46cb-88e2-cadb14124f8f),
1376 pointer_default(unique)
1378 interface IEnumITfCompositionView : IUnknown
1380 HRESULT Clone([out] IEnumITfCompositionView **ppEnum);
1382 HRESULT Next(
1383 [in] ULONG ulCount,
1384 [out, size_is(ulCount), length_is(*pcFetched)] ITfCompositionView **rgCompositionView,
1385 [out] ULONG *pcFetched);
1387 HRESULT Reset();
1389 HRESULT Skip([in] ULONG ulCount);
1393 object,
1394 uuid(20168d64-5a8f-4a5a-b7bd-cfa29f4D0fd9),
1395 pointer_default(unique)
1397 interface ITfComposition : IUnknown
1399 HRESULT GetRange([out] ITfRange **ppRange);
1401 HRESULT ShiftStart(
1402 [in] TfEditCookie ecWrite,
1403 [in] ITfRange *pNewStart);
1405 HRESULT ShiftEnd(
1406 [in] TfEditCookie ecWrite,
1407 [in] ITfRange *pNewEnd);
1409 HRESULT EndComposition([in] TfEditCookie ecWrite);
1413 object,
1414 uuid(a781718c-579a-4b15-a280-32b8577acc5e),
1415 pointer_default(unique)
1417 interface ITfCompositionSink : IUnknown
1419 HRESULT OnCompositionTerminated(
1420 [in] TfEditCookie ecWrite,
1421 [in] ITfComposition *pComposition);
1425 object,
1426 uuid(d40C8aae-aC92-4fc7-9a11-0ee0e23aa39b),
1427 pointer_default(unique)
1429 interface ITfContextComposition : IUnknown
1431 HRESULT StartComposition(
1432 [in] TfEditCookie ecWrite,
1433 [in] ITfRange *pCompositionRange,
1434 [in] ITfCompositionSink *pSink,
1435 [out] ITfComposition **ppComposition);
1437 HRESULT EnumCompositions([out] IEnumITfCompositionView **ppEnum);
1439 HRESULT FindComposition(
1440 [in] TfEditCookie ecRead,
1441 [in] ITfRange *pTestRange,
1442 [out] IEnumITfCompositionView **ppEnum);
1444 HRESULT TakeOwnership(
1445 [in] TfEditCookie ecWrite,
1446 [in] ITfCompositionView *pComposition,
1447 [in] ITfCompositionSink *pSink,
1448 [out] ITfComposition **ppComposition);
1452 object,
1453 uuid(86462810-593b-4916-9764-19c08e9ce110),
1454 pointer_default(unique)
1456 interface ITfContextOwnerCompositionServices : ITfContextComposition
1458 HRESULT TerminateComposition([in] ITfCompositionView *pComposition);
1462 object,
1463 uuid(4ef89150-0807-11d3-8df0-00105a2799b5),
1464 pointer_default(unique)
1466 interface ITfPersistentPropertyLoaderACP : IUnknown
1468 HRESULT LoadProperty(
1469 [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
1470 [out] IStream **ppStream);
1474 object,
1475 uuid(b23eb630-3e1c-11d3-a745-0050040ab407),
1476 pointer_default(unique)
1478 interface ITfContextOwnerServices : IUnknown
1480 HRESULT OnLayoutChange();
1482 HRESULT OnStatusChange([in] DWORD dwFlags);
1484 HRESULT OnAttributeChange([in] REFGUID rguidAttribute);
1486 HRESULT Serialize(
1487 [in] ITfProperty *pProp,
1488 [in] ITfRange *pRange,
1489 [out] TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
1490 [in] IStream *pStream);
1492 HRESULT Unserialize(
1493 [in] ITfProperty *pProp,
1494 [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
1495 [in] IStream *pStream,
1496 [in] ITfPersistentPropertyLoaderACP *pLoader);
1498 HRESULT ForceLoadProperty([in] ITfProperty *pProp);
1500 HRESULT CreateRange(
1501 [in] LONG acpStart,
1502 [in] LONG acpEnd,
1503 [out] ITfRangeACP **ppRange);
1507 object,
1508 uuid(17d49a3d-f8b8-4b2f-b254-52319dd64c53),
1509 pointer_default(unique)
1511 interface ITfReadOnlyProperty : IUnknown
1513 HRESULT GetType([out] GUID *pguid);
1515 HRESULT EnumRanges(
1516 [in] TfEditCookie ec,
1517 [out] IEnumTfRanges **ppEnum,
1518 [in] ITfRange *pTargetRange);
1520 HRESULT GetValue(
1521 [in] TfEditCookie ec,
1522 [in] ITfRange *pRange,
1523 [out] VARIANT *pvarValue);
1525 HRESULT GetContext([out] ITfContext **ppContext);
1529 object,
1530 uuid(e2449660-9542-11d2-bf46-00105a2799b5),
1531 pointer_default(unique)
1533 interface ITfProperty : ITfReadOnlyProperty
1535 HRESULT FindRange(
1536 [in] TfEditCookie ec,
1537 [in] ITfRange *pRange,
1538 [out] ITfRange **ppRange,
1539 [in] TfAnchor aPos);
1541 HRESULT SetValueStore(
1542 [in] TfEditCookie ec,
1543 [in] ITfRange *pRange,
1544 [in] ITfPropertyStore *pPropStore);
1546 HRESULT SetValue(
1547 [in] TfEditCookie ec,
1548 [in] ITfRange *pRange,
1549 [in] const VARIANT *pvarValue);
1551 HRESULT Clear(
1552 [in] TfEditCookie ec,
1553 [in] ITfRange *pRange);
1557 object,
1558 uuid(bb08f7a9-607a-4384-8623-056892b64371),
1559 pointer_default(unique)
1561 interface ITfCompartment : IUnknown
1563 HRESULT SetValue(
1564 [in] TfClientId tid,
1565 [in] const VARIANT *pvarValue);
1567 HRESULT GetValue(
1568 [out] VARIANT *pvarValue);
1572 object,
1573 uuid(7dcf57ac-18ad-438b-824d-979bffb74b7c),
1574 pointer_default(unique)
1576 interface ITfCompartmentMgr : IUnknown
1578 HRESULT GetCompartment(
1579 [in] REFGUID rguid,
1580 [out] ITfCompartment **ppcomp);
1582 HRESULT ClearCompartment(
1583 [in] TfClientId tid,
1584 [in] REFGUID rguid);
1586 HRESULT EnumCompartments(
1587 [out] IEnumGUID **ppEnum);
1591 object,
1592 uuid(743abd5f-f26d-48df-8cc5-238492419b64),
1593 pointer_default(unique)
1595 interface ITfCompartmentEventSink : IUnknown
1597 HRESULT OnChange(
1598 [in] REFGUID rguid);
1602 object,
1603 uuid(8f1a7ea6-1654-4502-a86e-b2902344d507),
1604 pointer_default(unique)
1606 interface IEnumTfContexts : IUnknown
1608 HRESULT Clone(
1609 [out] IEnumTfContexts **ppEnum);
1611 HRESULT Next(
1612 [in] ULONG ulCount,
1613 [out, size_is(ulCount), length_is(*pcFetched)] ITfContext **rgContext,
1614 [out] ULONG *pcFetched);
1616 HRESULT Reset();
1618 HRESULT Skip(
1619 [in] ULONG ulCount);
1623 object,
1624 uuid(aa80e808-2021-11d2-93e0-0060b067b86e),
1625 pointer_default(unique)
1627 interface IEnumTfDocumentMgrs : IUnknown
1629 HRESULT Clone(
1630 [out] IEnumTfDocumentMgrs **ppEnum);
1632 HRESULT Next(
1633 [in] ULONG ulCount,
1634 [out, size_is(ulCount), length_is(*pcFetched)] ITfDocumentMgr **rgDocumentMgr,
1635 [out] ULONG *pcFetched);
1637 HRESULT Reset();
1639 HRESULT Skip(
1640 [in] ULONG ulCount);
1644 object,
1645 uuid(73131f9c-56a9-49dd-b0ee-d046633f7528),
1646 pointer_default(unique)
1648 interface ITfSourceSingle : IUnknown
1650 HRESULT AdviseSingleSink(
1651 [in] TfClientId tid,
1652 [in] REFIID riid,
1653 [in, iid_is(riid)] IUnknown *punk);
1655 HRESULT UnadviseSingleSink(
1656 [in] TfClientId tid,
1657 [in] REFIID riid);
1661 object,
1662 local,
1663 uuid(c0f1db0c-3a20-405c-a303-96b6010a885f),
1664 pointer_default(unique)
1666 interface ITfThreadFocusSink : IUnknown
1668 HRESULT OnSetThreadFocus();
1670 HRESULT OnKillThreadFocus();
1674 object,
1675 uuid(71c6e74e-0f28-11d8-a82a-00065b84435c),
1676 pointer_default(unique)
1678 interface ITfInputProcessorProfileActivationSink : IUnknown
1680 HRESULT OnActivated(
1681 [in] DWORD dwProfileType,
1682 [in] LANGID langid,
1683 [in] REFCLSID clsid,
1684 [in] REFGUID catid,
1685 [in] REFGUID guidProfile,
1686 [in] HKL hkl,
1687 [in] DWORD dwFlags);
1691 object,
1692 local,
1693 uuid(a1adaaa2-3a24-449d-ac96-5183e7f5c217),
1694 pointer_default(unique)
1696 interface ITfMouseSink : IUnknown
1698 HRESULT OnMouseEvent(
1699 [in] ULONG uEdge,
1700 [in] ULONG uQuadrant,
1701 [in] DWORD dwBtnStatus,
1702 [out] BOOL *pfEaten);
1706 object,
1707 uuid(09d146cd-a544-4132-925b-7afa8ef322d0),
1708 pointer_default(unique)
1710 interface ITfMouseTracker : IUnknown
1712 HRESULT AdviseMouseSink(
1713 [in] ITfRange *range,
1714 [in] ITfMouseSink *pSink,
1715 [out] DWORD *pdwCookie);
1717 HRESULT UnadviseMouseSink([in] DWORD dwCookie);
1721 object,
1722 uuid(3bdd78e2-c16e-47fd-b883-ce6facc1a208),
1723 pointer_default(unique)
1725 interface ITfMouseTrackerACP : IUnknown
1727 HRESULT AdviseMouseSink(
1728 [in] ITfRangeACP *range,
1729 [in] ITfMouseSink *pSink,
1730 [out] DWORD *pdwCookie);
1732 HRESULT UnadviseMouseSink([in] DWORD dwCookie);