notepad: Ellipses should be preceded by a space in Slovenian.
[wine.git] / include / msctf.idl
blobfc2a8da5fd619ffc2ad6f44ea6ef13bdcf2f6481
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);")
35 cpp_quote("EXTERN_C const CLSID CLSID_TF_ThreadMgr;")
36 cpp_quote("EXTERN_C const CLSID CLSID_TF_InputProcessorProfiles;")
37 cpp_quote("EXTERN_C const CLSID CLSID_TF_CategoryMgr;")
39 /* GUIDs for Compartments */
40 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_DISABLED;")
41 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_OPENCLOSE;")
42 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_HANDWRITING_OPENCLOSE;")
43 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_DISABLED;")
44 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_OPENCLOSE;")
45 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_GLOBALSTATE;")
46 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_PERSISTMENUENABLED;")
47 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_EMPTYCONTEXT;")
48 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_TIPUISTATUS;")
50 /* GUIDs for Categories */
51 cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_KEYBOARD;")
52 cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_SPEECH;")
53 cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_HANDWRITING;")
54 cpp_quote("EXTERN_C const GUID GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER;")
56 typedef [uuid(7213778c-7bb0-4270-b050-6189ee594e97)] DWORD TfEditCookie;
57 typedef [uuid(de403c21-89fd-4f85-8b87-64584d063fbc)] DWORD TfClientId;
58 typedef [uuid(88a9c478-f3ec-4763-8345-cd9250443f8d)] DWORD TfGuidAtom;
60 cpp_quote("#define TF_MOD_ALT 0x0001")
61 cpp_quote("#define TF_MOD_CONTROL 0x0002")
62 cpp_quote("#define TF_MOD_SHIFT 0x0004")
63 cpp_quote("#define TF_MOD_RALT 0x0008")
64 cpp_quote("#define TF_MOD_RCONTROL 0x0010")
65 cpp_quote("#define TF_MOD_RSHIFT 0x0020")
66 cpp_quote("#define TF_MOD_LALT 0x0040")
67 cpp_quote("#define TF_MOD_LCONTROL 0x0080")
68 cpp_quote("#define TF_MOD_LSHIFT 0x0100")
69 cpp_quote("#define TF_MOD_ON_KEYUP 0x0200")
70 cpp_quote("#define TF_MOD_IGNORE_ALL_MODIFIER 0x0400")
72 interface ITfDocumentMgr;
73 interface ITfContext;
74 interface IEnumTfDocumentMgrs;
75 interface IEnumTfContexts;
76 interface ITfFunctionProvider;
77 interface IEnumTfFunctionProviders;
78 interface ITfCompartmentMgr;
79 interface ITfEditSession;
80 interface ITfRange;
81 interface ITfContextView;
82 interface IEnumTfContextViews;
83 interface ITfProperty;
84 interface ITfReadOnlyProperty;
85 interface IEnumTfProperties;
86 interface ITfRangeBackup;
87 interface IEnumTfLanguageProfiles;
88 interface ITfEditRecord;
89 interface ITfCompositionView;
90 interface ITfKeyEventSink;
92 typedef [uuid(e1b5808d-1e46-4c19-84dc-68c5f5978cc8)] struct TF_LANGUAGEPROFILE
94 CLSID clsid;
95 LANGID langid;
96 GUID catid;
97 BOOL fActive;
98 GUID guidProfile;
99 } TF_LANGUAGEPROFILE;
101 typedef [uuid(77c12f95-b783-450d-879f-1cd2362c6521)] struct TF_PRESERVEDKEY
103 UINT uVKey;
104 UINT uModifiers;
105 } TF_PRESERVEDKEY;
107 typedef [uuid(5a886226-ae9a-489b-b991-2b1e25ee59a9)] enum { TF_ANCHOR_START = 0, TF_ANCHOR_END = 1 } TfAnchor;
110 object,
111 uuid(aa80e801-2021-11d2-93e0-0060b067b86e),
112 pointer_default(unique)
114 interface ITfThreadMgr: IUnknown
116 HRESULT Activate(
117 [out] TfClientId *ptid);
119 HRESULT Deactivate();
121 HRESULT CreateDocumentMgr(
122 [out] ITfDocumentMgr **ppdim);
124 HRESULT EnumDocumentMgrs(
125 [out] IEnumTfDocumentMgrs **ppEnum);
127 HRESULT GetFocus(
128 [out] ITfDocumentMgr **ppdimFocus);
130 HRESULT SetFocus(
131 [in] ITfDocumentMgr *pdimFocus);
133 HRESULT AssociateFocus(
134 [in] HWND hwnd,
135 [in, unique] ITfDocumentMgr *pdimNew,
136 [out] ITfDocumentMgr **ppdimPrev);
138 HRESULT IsThreadFocus(
139 [out] BOOL *pfThreadFocus);
141 HRESULT GetFunctionProvider(
142 [in] REFCLSID clsid,
143 [out] ITfFunctionProvider **ppFuncProv);
145 HRESULT EnumFunctionProviders(
146 [out] IEnumTfFunctionProviders **ppEnum);
148 HRESULT GetGlobalCompartment(
149 [out] ITfCompartmentMgr **ppCompMgr);
154 object,
155 uuid(aa80e7f4-2021-11d2-93e0-0060b067b86e),
156 pointer_default(unique)
158 interface ITfDocumentMgr: IUnknown
160 HRESULT CreateContext(
161 [in] TfClientId tidOwner,
162 [in] DWORD dwFlags,
163 [in, unique] IUnknown *punk,
164 [out] ITfContext **ppic,
165 [out] TfEditCookie *pecTextStore);
167 HRESULT Push(
168 [in] ITfContext *pic);
170 const DWORD TF_POPF_ALL = 0x0001;
172 HRESULT Pop(
173 [in] DWORD dwFlags);
175 HRESULT GetTop(
176 [out] ITfContext **ppic);
178 HRESULT GetBase(
179 [out] ITfContext **ppic);
181 HRESULT EnumContexts(
182 [out] IEnumTfContexts **ppEnum);
186 object,
187 uuid(aa80e7fd-2021-11d2-93e0-0060b067b86e),
188 pointer_default(unique)
190 interface ITfContext : IUnknown
192 const DWORD TF_ES_ASYNCDONTCARE = 0x0;
193 const DWORD TF_ES_SYNC = 0x1;
194 const DWORD TF_ES_READ = 0x2;
195 const DWORD TF_ES_READWRITE = 0x6;
196 const DWORD TF_ES_ASYNC = 0x8;
198 HRESULT RequestEditSession(
199 [in] TfClientId tid,
200 [in] ITfEditSession *pes,
201 [in] DWORD dwFlags,
202 [out] HRESULT *phrSession);
204 HRESULT InWriteSession(
205 [in] TfClientId tid,
206 [out] BOOL *pfWriteSession);
208 typedef [uuid(1690be9b-d3e9-49f6-8d8b-51b905af4c43)] enum { TF_AE_NONE, TF_AE_START, TF_AE_END } TfActiveSelEnd;
210 typedef [uuid(36ae42a4-6989-4bdc-b48a-6137b7bf2e42)] struct TF_SELECTIONSTYLE
212 TfActiveSelEnd ase;
213 BOOL fInterimChar;
214 } TF_SELECTIONSTYLE;
216 typedef [uuid(75eb22f2-b0bf-46a8-8006-975a3b6efcf1)] struct TF_SELECTION
218 ITfRange *range;
219 TF_SELECTIONSTYLE style;
220 } TF_SELECTION;
222 const ULONG TF_DEFAULT_SELECTION = TS_DEFAULT_SELECTION;
224 HRESULT GetSelection(
225 [in] TfEditCookie ec,
226 [in] ULONG ulIndex,
227 [in] ULONG ulCount,
228 [out, size_is(ulCount), length_is(*pcFetched)] TF_SELECTION *pSelection,
229 [out] ULONG *pcFetched);
231 HRESULT SetSelection(
232 [in] TfEditCookie ec,
233 [in] ULONG ulCount,
234 [in, size_is(ulCount)] const TF_SELECTION *pSelection);
236 HRESULT GetStart(
237 [in] TfEditCookie ec,
238 [out] ITfRange **ppStart);
240 HRESULT GetEnd(
241 [in] TfEditCookie ec,
242 [out] ITfRange **ppEnd);
244 typedef [uuid(bc7d979a-846a-444d-afef-0a9bfa82b961)] TS_STATUS TF_STATUS;
245 const DWORD TF_SD_READONLY = TS_SD_READONLY;
246 const DWORD TF_SD_LOADING = TS_SD_LOADING;
247 const DWORD TF_SS_DISJOINTSEL = TS_SS_DISJOINTSEL;
248 const DWORD TF_SS_REGIONS = TS_SS_REGIONS;
249 const DWORD TF_SS_TRANSITORY = TS_SS_TRANSITORY;
252 HRESULT GetActiveView(
253 [out] ITfContextView **ppView);
255 HRESULT EnumViews(
256 [out] IEnumTfContextViews **ppEnum);
258 HRESULT GetStatus(
259 [out] TF_STATUS *pdcs);
261 HRESULT GetProperty(
262 [in] REFGUID guidProp,
263 [out] ITfProperty **ppProp);
265 HRESULT GetAppProperty(
266 [in] REFGUID guidProp,
267 [out] ITfReadOnlyProperty **ppProp);
269 HRESULT TrackProperties(
270 [in, size_is(cProp)] const GUID **prgProp,
271 [in] ULONG cProp,
272 [in, size_is(cAppProp)] const GUID **prgAppProp,
273 [in] ULONG cAppProp,
274 [out] ITfReadOnlyProperty **ppProperty);
276 HRESULT EnumProperties(
277 [out] IEnumTfProperties **ppEnum);
279 HRESULT GetDocumentMgr(
280 [out] ITfDocumentMgr **ppDm);
282 HRESULT CreateRangeBackup(
283 [in] TfEditCookie ec,
284 [in] ITfRange *pRange,
285 [out] ITfRangeBackup **ppBackup);
290 object,
291 uuid(4ea48a35-60ae-446f-8fd6-e6a8d82459f7),
292 pointer_default(unique)
294 interface ITfSource : IUnknown
296 HRESULT AdviseSink(
297 [in] REFIID riid,
298 [in, iid_is(riid)] IUnknown *punk,
299 [out] DWORD *pdwCookie);
301 HRESULT UnadviseSink(
302 [in] DWORD dwCookie);
306 object,
307 local,
308 uuid(1F02B6C5-7842-4EE6-8A0B-9A24183A95CA),
309 pointer_default(unique)
311 interface ITfInputProcessorProfiles : IUnknown
313 HRESULT Register(
314 [in] REFCLSID rclsid);
316 HRESULT Unregister(
317 [in] REFCLSID rclsid);
319 HRESULT AddLanguageProfile(
320 [in] REFCLSID rclsid,
321 [in] LANGID langid,
322 [in] REFGUID guidProfile,
323 [in, size_is(cchDesc)] const WCHAR *pchDesc,
324 [in] ULONG cchDesc,
325 [in, size_is(cchFile)] const WCHAR *pchIconFile,
326 [in] ULONG cchFile,
327 [in] ULONG uIconIndex);
329 HRESULT RemoveLanguageProfile(
330 [in] REFCLSID rclsid,
331 [in] LANGID langid,
332 [in] REFGUID guidProfile);
334 HRESULT EnumInputProcessorInfo(
335 [out] IEnumGUID **ppEnum);
337 HRESULT GetDefaultLanguageProfile(
338 [in] LANGID langid,
339 [in] REFGUID catid,
340 [out] CLSID *pclsid,
341 [out] GUID *pguidProfile);
343 HRESULT SetDefaultLanguageProfile(
344 [in] LANGID langid,
345 [in] REFCLSID rclsid,
346 [in] REFGUID guidProfiles);
348 HRESULT ActivateLanguageProfile(
349 [in] REFCLSID rclsid,
350 [in] LANGID langid,
351 [in] REFGUID guidProfiles);
353 HRESULT GetActiveLanguageProfile(
354 [in] REFCLSID rclsid,
355 [out] LANGID *plangid,
356 [out] GUID *pguidProfile);
358 HRESULT GetLanguageProfileDescription(
359 [in] REFCLSID rclsid,
360 [in] LANGID langid,
361 [in] REFGUID guidProfile,
362 [out] BSTR *pbstrProfile);
364 HRESULT GetCurrentLanguage(
365 [out] LANGID *plangid);
367 HRESULT ChangeCurrentLanguage(
368 [in] LANGID langid);
370 HRESULT GetLanguageList(
371 [out] LANGID **ppLangId,
372 [out] ULONG *pulCount);
374 HRESULT EnumLanguageProfiles(
375 [in] LANGID langid,
376 [out] IEnumTfLanguageProfiles **ppEnum);
378 HRESULT EnableLanguageProfile(
379 [in] REFCLSID rclsid,
380 [in] LANGID langid,
381 [in] REFGUID guidProfile,
382 [in] BOOL fEnable);
384 HRESULT IsEnabledLanguageProfile(
385 [in] REFCLSID rclsid,
386 [in] LANGID langid,
387 [in] REFGUID guidProfile,
388 [out] BOOL *pfEnable);
390 HRESULT EnableLanguageProfileByDefault(
391 [in] REFCLSID rclsid,
392 [in] LANGID langid,
393 [in] REFGUID guidProfile,
394 [in] BOOL fEnable);
396 HRESULT SubstituteKeyboardLayout(
397 [in] REFCLSID rclsid,
398 [in] LANGID langid,
399 [in] REFGUID guidProfile,
400 [in] HKL hKL);
404 object,
405 local,
406 uuid(c3acefb5-f69d-4905-938f-fcadcf4be830),
407 pointer_default(unique)
409 interface ITfCategoryMgr : IUnknown
411 HRESULT RegisterCategory([in] REFCLSID rclsid,
412 [in] REFGUID rcatid,
413 [in] REFGUID rguid);
415 HRESULT UnregisterCategory([in] REFCLSID rclsid,
416 [in] REFGUID rcatid,
417 [in] REFGUID rguid);
419 HRESULT EnumCategoriesInItem([in] REFGUID rguid,
420 [out] IEnumGUID **ppEnum);
422 HRESULT EnumItemsInCategory([in] REFGUID rcatid,
423 [out] IEnumGUID **ppEnum);
425 HRESULT FindClosestCategory([in] REFGUID rguid,
426 [out] GUID *pcatid,
427 [in, size_is(ulCount)] const GUID **ppcatidList,
428 [in] ULONG ulCount);
430 HRESULT RegisterGUIDDescription([in] REFCLSID rclsid,
431 [in] REFGUID rguid,
432 [in, size_is(cch)] const WCHAR *pchDesc,
433 [in] ULONG cch);
435 HRESULT UnregisterGUIDDescription([in] REFCLSID rclsid,
436 [in] REFGUID rguid);
438 HRESULT GetGUIDDescription([in] REFGUID rguid,
439 [out] BSTR *pbstrDesc);
441 HRESULT RegisterGUIDDWORD([in] REFCLSID rclsid,
442 [in] REFGUID rguid,
443 [in] DWORD dw);
445 HRESULT UnregisterGUIDDWORD([in] REFCLSID rclsid,
446 [in] REFGUID rguid);
448 HRESULT GetGUIDDWORD([in] REFGUID rguid,
449 [out] DWORD *pdw);
451 HRESULT RegisterGUID([in] REFGUID rguid,
452 [out] TfGuidAtom *pguidatom);
454 HRESULT GetGUID([in] TfGuidAtom guidatom,
455 [out] GUID *pguid);
457 HRESULT IsEqualTfGuidAtom([in] TfGuidAtom guidatom,
458 [in] REFGUID rguid,
459 [out] BOOL *pfEqual);
463 object,
464 uuid(8127d409-ccd3-4683-967a-b43d5b482bf7),
465 pointer_default(unique)
467 interface ITfTextEditSink : IUnknown
469 HRESULT OnEndEdit(
470 [in] ITfContext *pic,
471 [in] TfEditCookie ecReadOnly,
472 [in] ITfEditRecord *pEditRecord);
476 object,
477 uuid(5F20AA40-B57A-4F34-96AB-3576F377CC79),
478 pointer_default(unique)
480 interface ITfContextOwnerCompositionSink : IUnknown
482 HRESULT OnStartComposition(
483 [in] ITfCompositionView *pComposition,
484 [out] BOOL *pfOk);
486 HRESULT OnUpdateComposition(
487 [in] ITfCompositionView *pComposition,
488 [in] ITfRange *pRangeNew);
490 HRESULT OnEndComposition(
491 [in] ITfCompositionView *pComposition);
495 object,
496 uuid(3d61bf11-ac5f-42c8-a4cb-931bcc28c744),
497 pointer_default(unique)
499 interface IEnumTfLanguageProfiles : IUnknown
501 HRESULT Clone(
502 [out] IEnumTfLanguageProfiles **ppEnum);
504 HRESULT Next(
505 [in] ULONG ulCount,
506 [out, size_is(ulCount), length_is(*pcFetch)] TF_LANGUAGEPROFILE *pProfile,
507 [out] ULONG *pcFetch);
509 HRESULT Reset();
511 HRESULT Skip(
512 [in] ULONG ulCount);
516 object,
517 local,
518 uuid(aa80e7f7-2021-11d2-93e0-0060b067b86e),
519 pointer_default(unique)
521 interface ITfTextInputProcessor : IUnknown
523 HRESULT Activate(
524 [in] ITfThreadMgr *ptim,
525 [in] TfClientId tid);
527 HRESULT Deactivate();
531 object,
532 uuid(aa80e80e-2021-11d2-93e0-0060b067b86e),
533 pointer_default(unique)
535 interface ITfThreadMgrEventSink : IUnknown
537 HRESULT OnInitDocumentMgr(
538 [in] ITfDocumentMgr *pdim);
540 HRESULT OnUninitDocumentMgr(
541 [in] ITfDocumentMgr *pdim);
543 HRESULT OnSetFocus(
544 [in] ITfDocumentMgr *pdimFocus,
545 [in] ITfDocumentMgr *pdimPrevFocus);
547 HRESULT OnPushContext(
548 [in] ITfContext *pic);
550 HRESULT OnPopContext(
551 [in] ITfContext *pic);
555 object,
556 local,
557 uuid(aa80e7f0-2021-11d2-93e0-0060b067b86e),
558 pointer_default(unique)
560 interface ITfKeystrokeMgr : IUnknown
562 HRESULT AdviseKeyEventSink(
563 [in] TfClientId tid,
564 [in] ITfKeyEventSink *pSink,
565 [in] BOOL fForeground);
567 HRESULT UnadviseKeyEventSink(
568 [in] TfClientId tid);
570 HRESULT GetForeground(
571 [out] CLSID *pclsid);
573 HRESULT TestKeyDown(
574 [in] WPARAM wParam,
575 [in] LPARAM lParam,
576 [out] BOOL *pfEaten);
578 HRESULT TestKeyUp(
579 [in] WPARAM wParam,
580 [in] LPARAM lParam,
581 [out] BOOL *pfEaten);
583 HRESULT KeyDown(
584 [in] WPARAM wParam,
585 [in] LPARAM lParam,
586 [out] BOOL *pfEaten);
588 HRESULT KeyUp(
589 [in] WPARAM wParam,
590 [in] LPARAM lParam,
591 [out] BOOL *pfEaten);
593 HRESULT GetPreservedKey(
594 [in] ITfContext *pic,
595 [in] const TF_PRESERVEDKEY *pprekey,
596 [out] GUID *pguid);
598 HRESULT IsPreservedKey(
599 [in] REFGUID rguid,
600 [in] const TF_PRESERVEDKEY *pprekey,
601 [out] BOOL *pfRegistered);
603 HRESULT PreserveKey(
604 [in] TfClientId tid,
605 [in] REFGUID rguid,
606 [in] const TF_PRESERVEDKEY *prekey,
607 [in, size_is(cchDesc)] const WCHAR *pchDesc,
608 [in] ULONG cchDesc);
610 HRESULT UnpreserveKey(
611 [in] REFGUID rguid,
612 [in] const TF_PRESERVEDKEY *pprekey);
614 HRESULT SetPreservedKeyDescription(
615 [in] REFGUID rguid,
616 [in, size_is(cchDesc)] const WCHAR *pchDesc,
617 [in] ULONG cchDesc);
619 HRESULT GetPreservedKeyDescription(
620 [in] REFGUID rguid,
621 [out] BSTR *pbstrDesc);
623 HRESULT SimulatePreservedKey(
624 [in] ITfContext *pic,
625 [in] REFGUID rguid,
626 [out] BOOL *pfEaten);
630 object,
631 local,
632 uuid(aa80e7f5-2021-11d2-93e0-0060b067b86e),
633 pointer_default(unique)
635 interface ITfKeyEventSink : IUnknown
637 HRESULT OnSetFocus(
638 [in] BOOL fForeground);
640 HRESULT OnTestKeyDown(
641 [in] ITfContext *pic,
642 [in] WPARAM wParam,
643 [in] LPARAM lParam,
644 [out] BOOL *pfEaten);
646 HRESULT OnTestKeyUp(
647 [in] ITfContext *pic,
648 [in] WPARAM wParam,
649 [in] LPARAM lParam,
650 [out] BOOL *pfEaten);
652 HRESULT OnKeyDown(
653 [in] ITfContext *pic,
654 [in] WPARAM wParam,
655 [in] LPARAM lParam,
656 [out] BOOL *pfEaten);
658 HRESULT OnKeyUp(
659 [in] ITfContext *pic,
660 [in] WPARAM wParam,
661 [in] LPARAM lParam,
662 [out] BOOL *pfEaten);
664 HRESULT OnPreservedKey(
665 [in] ITfContext *pic,
666 [in] REFGUID rguid,
667 [out] BOOL *pfEaten);
671 object,
672 local,
673 uuid(8f1b8ad8-0b6b-4874-90c5-bd76011e8f7c),
674 pointer_default(unique)
676 interface ITfMessagePump : IUnknown
678 HRESULT PeekMessageA(
679 [out] LPMSG pMsg,
680 [in] HWND hwnd,
681 [in] UINT wMsgFilterMin,
682 [in] UINT wMsgFilterMax,
683 [in] UINT wRemoveMsg,
684 [out] BOOL *pfResult);
686 HRESULT GetMessageA(
687 [out] LPMSG pMsg,
688 [in] HWND hwnd,
689 [in] UINT wMsgFilterMin,
690 [in] UINT wMsgFilterMax,
691 [out] BOOL *pfResult);
693 HRESULT PeekMessageW(
694 [out] LPMSG pMsg,
695 [in] HWND hwnd,
696 [in] UINT wMsgFilterMin,
697 [in] UINT wMsgFilterMax,
698 [in] UINT wRemoveMsg,
699 [out] BOOL *pfResult);
701 HRESULT GetMessageW(
702 [out] LPMSG pMsg,
703 [in] HWND hwnd,
704 [in] UINT wMsgFilterMin,
705 [in] UINT wMsgFilterMax,
706 [out] BOOL *pfResult);
710 object,
711 local,
712 uuid(d60a7b49-1b9f-4be2-b702-47e9dc05dec3),
713 pointer_default(unique)
715 interface ITfClientId : IUnknown
717 HRESULT GetClientId(
718 [in] REFCLSID rclsid,
719 [out] TfClientId *ptid);
723 object,
724 uuid(43c9fe15-f494-4c17-9de2-b8a4ac350aa8),
725 pointer_default(unique)
727 interface ITfLanguageProfileNotifySink : IUnknown
729 HRESULT OnLanguageChange(
730 [in] LANGID langid,
731 [out] BOOL *pfAccept);
733 HRESULT OnLanguageChanged();
737 object,
738 uuid(aa80e803-2021-11d2-93e0-0060b067b86e),
739 pointer_default(unique)
741 interface ITfEditSession : IUnknown
743 HRESULT DoEditSession(
744 [in] TfEditCookie ec);
748 object,
749 uuid(aa80e7ff-2021-11d2-93e0-0060b067b86e),
750 pointer_default(unique)
752 interface ITfRange : IUnknown
754 const WCHAR TF_CHAR_EMBEDDED = TS_CHAR_EMBEDDED;
756 typedef [uuid(cf610f06-2882-46f6-abe5-298568b664c4)] enum { TF_GRAVITY_BACKWARD = 0, TF_GRAVITY_FORWARD = 1 } TfGravity;
758 typedef [uuid(1e512533-bbdc-4530-9a8e-a1dc0af67468)] enum { TF_SD_BACKWARD = 0, TF_SD_FORWARD = 1 } TfShiftDir;
760 const DWORD TF_HF_OBJECT = 1;
761 const DWORD TF_TF_MOVESTART = 1;
762 const DWORD TF_TF_IGNOREEND = 2;
763 const DWORD TF_ST_CORRECTION = 1;
764 const DWORD TF_IE_CORRECTION = 1;
766 typedef [uuid(49930d51-7d93-448c-a48c-fea5dac192b1)] struct TF_HALTCOND
768 ITfRange *pHaltRange;
769 TfAnchor aHaltPos;
770 DWORD dwFlags;
771 } TF_HALTCOND;
773 HRESULT GetText(
774 [in] TfEditCookie ec,
775 [in] DWORD dwFlags,
776 [out, size_is(cchMax), length_is(*pcch)] WCHAR *pchText,
777 [in] ULONG cchMax,
778 [out] ULONG *pcch);
780 HRESULT SetText(
781 [in] TfEditCookie ec,
782 [in] DWORD dwFlags,
783 [in, size_is(cch), unique] const WCHAR *pchText,
784 [in] LONG cch);
786 HRESULT GetFormattedText(
787 [in] TfEditCookie ec,
788 [out] IDataObject **ppDataObject);
790 HRESULT GetEmbedded(
791 [in] TfEditCookie ec,
792 [in] REFGUID rguidService,
793 [in] REFIID riid,
794 [out, iid_is(riid)] IUnknown **ppunk);
796 HRESULT InsertEmbedded(
797 [in] TfEditCookie ec,
798 [in] DWORD dwFlags,
799 [in] IDataObject *pDataObject);
801 HRESULT ShiftStart(
802 [in] TfEditCookie ec,
803 [in] LONG cchReq,
804 [out] LONG *pcch,
805 [in, unique] const TF_HALTCOND *pHalt);
807 HRESULT ShiftEnd(
808 [in] TfEditCookie ec,
809 [in] LONG cchReq,
810 [out] LONG *pcch,
811 [in, unique] const TF_HALTCOND *pHalt);
813 HRESULT ShiftStartToRange(
814 [in] TfEditCookie ec,
815 [in] ITfRange *pRange,
816 [in] TfAnchor aPos);
818 HRESULT ShiftEndToRange(
819 [in] TfEditCookie ec,
820 [in] ITfRange *pRange,
821 [in] TfAnchor aPos);
823 HRESULT ShiftStartRegion(
824 [in] TfEditCookie ec,
825 [in] TfShiftDir dir,
826 [out] BOOL *pfNoRegion);
828 HRESULT ShiftEndRegion(
829 [in] TfEditCookie ec,
830 [in] TfShiftDir dir,
831 [out] BOOL *pfNoRegion);
833 HRESULT IsEmpty(
834 [in] TfEditCookie ec,
835 [out] BOOL *pfEmpty);
837 HRESULT Collapse(
838 [in] TfEditCookie ec,
839 [in] TfAnchor aPos);
841 HRESULT IsEqualStart(
842 [in] TfEditCookie ec,
843 [in] ITfRange *pWith,
844 [in] TfAnchor aPos,
845 [out] BOOL *pfEqual);
847 HRESULT IsEqualEnd(
848 [in] TfEditCookie ec,
849 [in] ITfRange *pWith,
850 [in] TfAnchor aPos,
851 [out] BOOL *pfEqual);
853 HRESULT CompareStart(
854 [in] TfEditCookie ec,
855 [in] ITfRange *pWith,
856 [in] TfAnchor aPos,
857 [out] LONG *plResult);
859 HRESULT CompareEnd(
860 [in] TfEditCookie ec,
861 [in] ITfRange *pWith,
862 [in] TfAnchor aPos,
863 [out] LONG *plResult);
865 HRESULT AdjustForInsert(
866 [in] TfEditCookie ec,
867 [in] ULONG cchInsert,
868 [out] BOOL *pfInsertOk);
870 HRESULT GetGravity(
871 [out] TfGravity *pgStart,
872 [out] TfGravity *pgEnd);
874 HRESULT SetGravity(
875 [in] TfEditCookie ec,
876 [in] TfGravity gStart,
877 [in] TfGravity gEnd);
879 HRESULT Clone(
880 [out] ITfRange **ppClone);
882 HRESULT GetContext(
883 [out] ITfContext **ppContext);
887 object,
888 uuid(55ce16ba-3014-41c1-9ceb-fade1446ac6c),
889 pointer_default(unique)
891 interface ITfInsertAtSelection : IUnknown
893 const DWORD TF_IAS_NOQUERY = 0x1;
894 const DWORD TF_IAS_QUERYONLY = 0x2;
895 const DWORD TF_IAS_NO_DEFAULT_COMPOSITION = 0x80000000;
897 HRESULT InsertTextAtSelection(
898 [in] TfEditCookie ec,
899 [in] DWORD dwFlags,
900 [in, size_is(cch)] const WCHAR *pchText,
901 [in] LONG cch,
902 [out] ITfRange **ppRange);
904 HRESULT InsertEmbeddedAtSelection(
905 [in] TfEditCookie ec,
906 [in] DWORD dwFlags,
907 [in] IDataObject *pDataObject,
908 [out] ITfRange **ppRange);
912 object,
913 uuid(bb08f7a9-607a-4384-8623-056892b64371),
914 pointer_default(unique)
916 interface ITfCompartment : IUnknown
918 HRESULT SetValue(
919 [in] TfClientId tid,
920 [in] const VARIANT *pvarValue);
922 HRESULT GetValue(
923 [out] VARIANT *pvarValue);
927 object,
928 uuid(7dcf57ac-18ad-438b-824d-979bffb74b7c),
929 pointer_default(unique)
931 interface ITfCompartmentMgr : IUnknown
933 HRESULT GetCompartment(
934 [in] REFGUID rguid,
935 [out] ITfCompartment **ppcomp);
937 HRESULT ClearCompartment(
938 [in] TfClientId tid,
939 [in] REFGUID rguid);
941 HRESULT EnumCompartments(
942 [out] IEnumGUID **ppEnum);
946 object,
947 uuid(743abd5f-f26d-48df-8cc5-238492419b64),
948 pointer_default(unique)
950 interface ITfCompartmentEventSink : IUnknown
952 HRESULT OnChange(
953 [in] REFGUID rguid);