VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Graphics/Wine/include/msctf.idl@ 27512

Last change on this file since 27512 was 23571, checked in by vboxsync, 15 years ago

crOpenGL: update to wine 1.1.30

File size: 34.3 KB
Line 
1/*
2 * Copyright 2008 Aric Stewart, CodeWeavers
3 *
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.
8 *
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.
13 *
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
17 */
18
19/*
20 * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
21 * other than GPL or LGPL is available it will apply instead, Sun elects to use only
22 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
23 * a choice of LGPL license versions is made available with the language indicating
24 * that LGPLv2 or any later version may be used, or where a choice of which version
25 * of the LGPL is applied is otherwise unspecified.
26 */
27
28#ifndef DO_NO_IMPORTS
29import "oaidl.idl";
30import "comcat.idl";
31import "textstor.idl";
32/* import "ctfutb.idl"; */
33#endif
34cpp_quote("#include <winuser.h>")
35
36cpp_quote("#define TF_E_STACKFULL MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0501)")
37cpp_quote("#define TF_E_DISCONNECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0504)")
38cpp_quote("#define TF_E_ALREADY_EXISTS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0506)")
39cpp_quote("#define TF_E_NOLOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)")
40
41cpp_quote("HRESULT WINAPI TF_CreateThreadMgr(ITfThreadMgr **pptim);")
42cpp_quote("HRESULT WINAPI TF_GetThreadMgr(ITfThreadMgr **pptim);")
43cpp_quote("HRESULT WINAPI TF_CreateInputProcessorProfiles(ITfInputProcessorProfiles **ppipr);")
44
45cpp_quote("EXTERN_C const GUID GUID_PROP_TEXTOWNER;")
46cpp_quote("DEFINE_GUID(GUID_PROP_ATTRIBUTE,0x34b45670,0x7526,0x11d2,0xa1,0x47,0x00,0x10,0x5a,0x27,0x99,0xb5);")
47cpp_quote("EXTERN_C const GUID GUID_PROP_LANGID;")
48cpp_quote("EXTERN_C const GUID GUID_PROP_READING;")
49cpp_quote("EXTERN_C const GUID GUID_PROP_COMPOSING;")
50
51cpp_quote("EXTERN_C const CLSID CLSID_TF_ThreadMgr;")
52cpp_quote("EXTERN_C const CLSID CLSID_TF_InputProcessorProfiles;")
53cpp_quote("EXTERN_C const CLSID CLSID_TF_CategoryMgr;")
54cpp_quote("DEFINE_GUID(CLSID_TF_DisplayAttributeMgr,0x3ce74de4,0x53d3,0x4d74,0x8b,0x83,0x43,0x1b,0x38,0x28,0xba,0x53);")
55
56/* GUIDs for Compartments */
57cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_DISABLED;")
58cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_OPENCLOSE;")
59cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_HANDWRITING_OPENCLOSE;")
60cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_DISABLED;")
61cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_OPENCLOSE;")
62cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_GLOBALSTATE;")
63cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_PERSISTMENUENABLED;")
64cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_EMPTYCONTEXT;")
65cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_TIPUISTATUS;")
66
67/* GUIDs for Categories */
68cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_KEYBOARD;")
69cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_SPEECH;")
70cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_HANDWRITING;")
71cpp_quote("EXTERN_C const GUID GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER;")
72
73typedef [uuid(7213778c-7bb0-4270-b050-6189ee594e97)] DWORD TfEditCookie;
74typedef [uuid(de403c21-89fd-4f85-8b87-64584d063fbc)] DWORD TfClientId;
75typedef [uuid(88a9c478-f3ec-4763-8345-cd9250443f8d)] DWORD TfGuidAtom;
76
77cpp_quote("#define TF_MOD_ALT 0x0001")
78cpp_quote("#define TF_MOD_CONTROL 0x0002")
79cpp_quote("#define TF_MOD_SHIFT 0x0004")
80cpp_quote("#define TF_MOD_RALT 0x0008")
81cpp_quote("#define TF_MOD_RCONTROL 0x0010")
82cpp_quote("#define TF_MOD_RSHIFT 0x0020")
83cpp_quote("#define TF_MOD_LALT 0x0040")
84cpp_quote("#define TF_MOD_LCONTROL 0x0080")
85cpp_quote("#define TF_MOD_LSHIFT 0x0100")
86cpp_quote("#define TF_MOD_ON_KEYUP 0x0200")
87cpp_quote("#define TF_MOD_IGNORE_ALL_MODIFIER 0x0400")
88
89interface ITfDocumentMgr;
90interface ITfContext;
91interface IEnumTfDocumentMgrs;
92interface IEnumTfContexts;
93interface ITfFunctionProvider;
94interface IEnumTfFunctionProviders;
95interface ITfCompartmentMgr;
96interface ITfEditSession;
97interface ITfRange;
98interface ITfContextView;
99interface IEnumTfContextViews;
100interface ITfProperty;
101interface ITfReadOnlyProperty;
102interface IEnumTfProperties;
103interface ITfRangeBackup;
104interface IEnumTfLanguageProfiles;
105interface ITfEditRecord;
106interface ITfCompositionView;
107interface ITfKeyEventSink;
108
109typedef [uuid(e1b5808d-1e46-4c19-84dc-68c5f5978cc8)] struct TF_LANGUAGEPROFILE
110{
111 CLSID clsid;
112 LANGID langid;
113 GUID catid;
114 BOOL fActive;
115 GUID guidProfile;
116} TF_LANGUAGEPROFILE;
117
118typedef [uuid(77c12f95-b783-450d-879f-1cd2362c6521)] struct TF_PRESERVEDKEY
119{
120 UINT uVKey;
121 UINT uModifiers;
122} TF_PRESERVEDKEY;
123
124typedef [uuid(5a886226-ae9a-489b-b991-2b1e25ee59a9)] enum { TF_ANCHOR_START = 0, TF_ANCHOR_END = 1 } TfAnchor;
125
126[
127 object,
128 uuid(aa80e801-2021-11d2-93e0-0060b067b86e),
129 pointer_default(unique)
130]
131interface ITfThreadMgr: IUnknown
132{
133 HRESULT Activate(
134 [out] TfClientId *ptid);
135
136 HRESULT Deactivate();
137
138 HRESULT CreateDocumentMgr(
139 [out] ITfDocumentMgr **ppdim);
140
141 HRESULT EnumDocumentMgrs(
142 [out] IEnumTfDocumentMgrs **ppEnum);
143
144 HRESULT GetFocus(
145 [out] ITfDocumentMgr **ppdimFocus);
146
147 HRESULT SetFocus(
148 [in] ITfDocumentMgr *pdimFocus);
149
150 HRESULT AssociateFocus(
151 [in] HWND hwnd,
152 [in, unique] ITfDocumentMgr *pdimNew,
153 [out] ITfDocumentMgr **ppdimPrev);
154
155 HRESULT IsThreadFocus(
156 [out] BOOL *pfThreadFocus);
157
158 HRESULT GetFunctionProvider(
159 [in] REFCLSID clsid,
160 [out] ITfFunctionProvider **ppFuncProv);
161
162 HRESULT EnumFunctionProviders(
163 [out] IEnumTfFunctionProviders **ppEnum);
164
165 HRESULT GetGlobalCompartment(
166 [out] ITfCompartmentMgr **ppCompMgr);
167};
168
169[
170 object,
171 uuid(d7540241-f9a1-4364-befc-dbcd2c4395b7),
172 pointer_default(unique)
173]
174interface ITfCompositionView : IUnknown
175{
176 HRESULT GetOwnerClsid([out] CLSID *pclsid);
177
178 HRESULT GetRange([out] ITfRange **ppRange);
179}
180
181[
182 object,
183 uuid(aa80e7f4-2021-11d2-93e0-0060b067b86e),
184 pointer_default(unique)
185]
186interface ITfDocumentMgr: IUnknown
187{
188 HRESULT CreateContext(
189 [in] TfClientId tidOwner,
190 [in] DWORD dwFlags,
191 [in, unique] IUnknown *punk,
192 [out] ITfContext **ppic,
193 [out] TfEditCookie *pecTextStore);
194
195 HRESULT Push(
196 [in] ITfContext *pic);
197
198 const DWORD TF_POPF_ALL = 0x0001;
199
200 HRESULT Pop(
201 [in] DWORD dwFlags);
202
203 HRESULT GetTop(
204 [out] ITfContext **ppic);
205
206 HRESULT GetBase(
207 [out] ITfContext **ppic);
208
209 HRESULT EnumContexts(
210 [out] IEnumTfContexts **ppEnum);
211};
212
213[
214 object,
215 uuid(aa80e7fd-2021-11d2-93e0-0060b067b86e),
216 pointer_default(unique)
217]
218interface ITfContext : IUnknown
219{
220 const DWORD TF_ES_ASYNCDONTCARE = 0x0;
221 const DWORD TF_ES_SYNC = 0x1;
222 const DWORD TF_ES_READ = 0x2;
223 const DWORD TF_ES_READWRITE = 0x6;
224 const DWORD TF_ES_ASYNC = 0x8;
225
226 HRESULT RequestEditSession(
227 [in] TfClientId tid,
228 [in] ITfEditSession *pes,
229 [in] DWORD dwFlags,
230 [out] HRESULT *phrSession);
231
232 HRESULT InWriteSession(
233 [in] TfClientId tid,
234 [out] BOOL *pfWriteSession);
235
236 typedef [uuid(1690be9b-d3e9-49f6-8d8b-51b905af4c43)] enum { TF_AE_NONE, TF_AE_START, TF_AE_END } TfActiveSelEnd;
237
238 typedef [uuid(36ae42a4-6989-4bdc-b48a-6137b7bf2e42)] struct TF_SELECTIONSTYLE
239 {
240 TfActiveSelEnd ase;
241 BOOL fInterimChar;
242 } TF_SELECTIONSTYLE;
243
244 typedef [uuid(75eb22f2-b0bf-46a8-8006-975a3b6efcf1)] struct TF_SELECTION
245 {
246 ITfRange *range;
247 TF_SELECTIONSTYLE style;
248 } TF_SELECTION;
249
250 const ULONG TF_DEFAULT_SELECTION = TS_DEFAULT_SELECTION;
251
252 HRESULT GetSelection(
253 [in] TfEditCookie ec,
254 [in] ULONG ulIndex,
255 [in] ULONG ulCount,
256 [out, size_is(ulCount), length_is(*pcFetched)] TF_SELECTION *pSelection,
257 [out] ULONG *pcFetched);
258
259 HRESULT SetSelection(
260 [in] TfEditCookie ec,
261 [in] ULONG ulCount,
262 [in, size_is(ulCount)] const TF_SELECTION *pSelection);
263
264 HRESULT GetStart(
265 [in] TfEditCookie ec,
266 [out] ITfRange **ppStart);
267
268 HRESULT GetEnd(
269 [in] TfEditCookie ec,
270 [out] ITfRange **ppEnd);
271
272 typedef [uuid(bc7d979a-846a-444d-afef-0a9bfa82b961)] TS_STATUS TF_STATUS;
273 const DWORD TF_SD_READONLY = TS_SD_READONLY;
274 const DWORD TF_SD_LOADING = TS_SD_LOADING;
275 const DWORD TF_SS_DISJOINTSEL = TS_SS_DISJOINTSEL;
276 const DWORD TF_SS_REGIONS = TS_SS_REGIONS;
277 const DWORD TF_SS_TRANSITORY = TS_SS_TRANSITORY;
278
279
280 HRESULT GetActiveView(
281 [out] ITfContextView **ppView);
282
283 HRESULT EnumViews(
284 [out] IEnumTfContextViews **ppEnum);
285
286 HRESULT GetStatus(
287 [out] TF_STATUS *pdcs);
288
289 HRESULT GetProperty(
290 [in] REFGUID guidProp,
291 [out] ITfProperty **ppProp);
292
293 HRESULT GetAppProperty(
294 [in] REFGUID guidProp,
295 [out] ITfReadOnlyProperty **ppProp);
296
297 HRESULT TrackProperties(
298 [in, size_is(cProp)] const GUID **prgProp,
299 [in] ULONG cProp,
300 [in, size_is(cAppProp)] const GUID **prgAppProp,
301 [in] ULONG cAppProp,
302 [out] ITfReadOnlyProperty **ppProperty);
303
304 HRESULT EnumProperties(
305 [out] IEnumTfProperties **ppEnum);
306
307 HRESULT GetDocumentMgr(
308 [out] ITfDocumentMgr **ppDm);
309
310 HRESULT CreateRangeBackup(
311 [in] TfEditCookie ec,
312 [in] ITfRange *pRange,
313 [out] ITfRangeBackup **ppBackup);
314
315};
316
317[
318 object,
319 uuid(4ea48a35-60ae-446f-8fd6-e6a8d82459f7),
320 pointer_default(unique)
321]
322interface ITfSource : IUnknown
323{
324 HRESULT AdviseSink(
325 [in] REFIID riid,
326 [in, iid_is(riid)] IUnknown *punk,
327 [out] DWORD *pdwCookie);
328
329 HRESULT UnadviseSink(
330 [in] DWORD dwCookie);
331};
332
333[
334 object,
335 local,
336 uuid(1F02B6C5-7842-4EE6-8A0B-9A24183A95CA),
337 pointer_default(unique)
338]
339interface ITfInputProcessorProfiles : IUnknown
340{
341 HRESULT Register(
342 [in] REFCLSID rclsid);
343
344 HRESULT Unregister(
345 [in] REFCLSID rclsid);
346
347 HRESULT AddLanguageProfile(
348 [in] REFCLSID rclsid,
349 [in] LANGID langid,
350 [in] REFGUID guidProfile,
351 [in, size_is(cchDesc)] const WCHAR *pchDesc,
352 [in] ULONG cchDesc,
353 [in, size_is(cchFile)] const WCHAR *pchIconFile,
354 [in] ULONG cchFile,
355 [in] ULONG uIconIndex);
356
357 HRESULT RemoveLanguageProfile(
358 [in] REFCLSID rclsid,
359 [in] LANGID langid,
360 [in] REFGUID guidProfile);
361
362 HRESULT EnumInputProcessorInfo(
363 [out] IEnumGUID **ppEnum);
364
365 HRESULT GetDefaultLanguageProfile(
366 [in] LANGID langid,
367 [in] REFGUID catid,
368 [out] CLSID *pclsid,
369 [out] GUID *pguidProfile);
370
371 HRESULT SetDefaultLanguageProfile(
372 [in] LANGID langid,
373 [in] REFCLSID rclsid,
374 [in] REFGUID guidProfiles);
375
376 HRESULT ActivateLanguageProfile(
377 [in] REFCLSID rclsid,
378 [in] LANGID langid,
379 [in] REFGUID guidProfiles);
380
381 HRESULT GetActiveLanguageProfile(
382 [in] REFCLSID rclsid,
383 [out] LANGID *plangid,
384 [out] GUID *pguidProfile);
385
386 HRESULT GetLanguageProfileDescription(
387 [in] REFCLSID rclsid,
388 [in] LANGID langid,
389 [in] REFGUID guidProfile,
390 [out] BSTR *pbstrProfile);
391
392 HRESULT GetCurrentLanguage(
393 [out] LANGID *plangid);
394
395 HRESULT ChangeCurrentLanguage(
396 [in] LANGID langid);
397
398 HRESULT GetLanguageList(
399 [out] LANGID **ppLangId,
400 [out] ULONG *pulCount);
401
402 HRESULT EnumLanguageProfiles(
403 [in] LANGID langid,
404 [out] IEnumTfLanguageProfiles **ppEnum);
405
406 HRESULT EnableLanguageProfile(
407 [in] REFCLSID rclsid,
408 [in] LANGID langid,
409 [in] REFGUID guidProfile,
410 [in] BOOL fEnable);
411
412 HRESULT IsEnabledLanguageProfile(
413 [in] REFCLSID rclsid,
414 [in] LANGID langid,
415 [in] REFGUID guidProfile,
416 [out] BOOL *pfEnable);
417
418 HRESULT EnableLanguageProfileByDefault(
419 [in] REFCLSID rclsid,
420 [in] LANGID langid,
421 [in] REFGUID guidProfile,
422 [in] BOOL fEnable);
423
424 HRESULT SubstituteKeyboardLayout(
425 [in] REFCLSID rclsid,
426 [in] LANGID langid,
427 [in] REFGUID guidProfile,
428 [in] HKL hKL);
429};
430
431typedef [uuid(c4cc07f1-80cc-4a7b-bc54-98512782cbe3)]
432enum {
433 TF_LS_NONE = 0,
434 TF_LS_SOLID = 1,
435 TF_LS_DOT = 2,
436 TF_LS_DASH = 3,
437 TF_LS_SQUIGGLE = 4
438} TF_DA_LINESTYLE;
439
440typedef [uuid(d9b92e21-084a-401b-9c64-1e6dad91a1ab)]
441enum {
442 TF_CT_NONE = 0,
443 TF_CT_SYSCOLOR = 1,
444 TF_CT_COLORREF = 2
445} TF_DA_COLORTYPE;
446
447typedef [uuid(90d0cb5e-6520-4a0f-b47c-c39bd955f0d6)]
448struct TF_DA_COLOR {
449 TF_DA_COLORTYPE type;
450 [switch_type(TF_DA_COLORTYPE), switch_is(type)]
451 union {
452 [case(TF_CT_SYSCOLOR)] int nIndex;
453 [case(TF_CT_COLORREF)] COLORREF cr;
454 };
455} TF_DA_COLOR;
456
457typedef [uuid(33d2fe4b-6c24-4f67-8d75-3bc1819e4126)]
458enum {
459 TF_ATTR_INPUT = 0,
460 TF_ATTR_TARGET_CONVERTED = 1,
461 TF_ATTR_CONVERTED = 2,
462 TF_ATTR_TARGET_NOTCONVERTED = 3,
463 TF_ATTR_INPUT_ERROR = 4,
464 TF_ATTR_FIXEDCONVERTED = 5,
465 TF_ATTR_OTHER = -1
466} TF_DA_ATTR_INFO;
467
468typedef [uuid(1bf1c305-419b-4182-a4d2-9bfadc3f021f)]
469struct TF_DISPLAYATTRIBUTE {
470 TF_DA_COLOR crText;
471 TF_DA_COLOR crBk;
472 TF_DA_LINESTYLE lsStyle;
473 BOOL fBoldLine;
474 TF_DA_COLOR crLine;
475 TF_DA_ATTR_INFO bAttr;
476} TF_DISPLAYATTRIBUTE;
477
478[
479 object,
480 uuid(70528852-2f26-4aea-8c96-215150578932),
481 pointer_default(unique)
482]
483interface ITfDisplayAttributeInfo : IUnknown
484{
485 HRESULT GetGUID([out] GUID *pguid);
486
487 HRESULT GetDescription([out] BSTR *pbstrDesc);
488
489 HRESULT GetAttributeInfo([out] TF_DISPLAYATTRIBUTE *pda);
490
491 HRESULT SetAttributeInfo([in] const TF_DISPLAYATTRIBUTE *pda);
492
493 HRESULT Reset();
494}
495
496[
497 object,
498 uuid(7cef04d7-cb75-4e80-a7ab-5f5bc7d332de),
499 pointer_default(unique)
500]
501interface IEnumTfDisplayAttributeInfo : IUnknown
502{
503 HRESULT Clone([out] IEnumTfDisplayAttributeInfo **ppEnum);
504
505 HRESULT Next(
506 [in] ULONG ulCount,
507 [out, size_is(ulCount), length_is(*pcFetched)] ITfDisplayAttributeInfo **rgInfo,
508 [out] ULONG *pcFetched);
509
510 HRESULT Reset();
511
512 HRESULT Skip([in] ULONG ulCount);
513}
514
515[
516 object,
517 local,
518 uuid(8ded7393-5db1-475c-9e71-a39111b0ff67),
519 pointer_default(unique)
520]
521interface ITfDisplayAttributeMgr : IUnknown
522{
523 HRESULT OnUpdateInfo();
524
525 HRESULT EnumDisplayAttributeInfo([out] IEnumTfDisplayAttributeInfo **ppEnum);
526
527 HRESULT GetDisplayAttributeInfo(
528 [in] REFGUID guid,
529 [out] ITfDisplayAttributeInfo **ppInfo,
530 [out] CLSID *pclsidOwner);
531
532}
533
534[
535 object,
536 local,
537 uuid(c3acefb5-f69d-4905-938f-fcadcf4be830),
538 pointer_default(unique)
539]
540interface ITfCategoryMgr : IUnknown
541{
542 HRESULT RegisterCategory([in] REFCLSID rclsid,
543 [in] REFGUID rcatid,
544 [in] REFGUID rguid);
545
546 HRESULT UnregisterCategory([in] REFCLSID rclsid,
547 [in] REFGUID rcatid,
548 [in] REFGUID rguid);
549
550 HRESULT EnumCategoriesInItem([in] REFGUID rguid,
551 [out] IEnumGUID **ppEnum);
552
553 HRESULT EnumItemsInCategory([in] REFGUID rcatid,
554 [out] IEnumGUID **ppEnum);
555
556 HRESULT FindClosestCategory([in] REFGUID rguid,
557 [out] GUID *pcatid,
558 [in, size_is(ulCount)] const GUID **ppcatidList,
559 [in] ULONG ulCount);
560
561 HRESULT RegisterGUIDDescription([in] REFCLSID rclsid,
562 [in] REFGUID rguid,
563 [in, size_is(cch)] const WCHAR *pchDesc,
564 [in] ULONG cch);
565
566 HRESULT UnregisterGUIDDescription([in] REFCLSID rclsid,
567 [in] REFGUID rguid);
568
569 HRESULT GetGUIDDescription([in] REFGUID rguid,
570 [out] BSTR *pbstrDesc);
571
572 HRESULT RegisterGUIDDWORD([in] REFCLSID rclsid,
573 [in] REFGUID rguid,
574 [in] DWORD dw);
575
576 HRESULT UnregisterGUIDDWORD([in] REFCLSID rclsid,
577 [in] REFGUID rguid);
578
579 HRESULT GetGUIDDWORD([in] REFGUID rguid,
580 [out] DWORD *pdw);
581
582 HRESULT RegisterGUID([in] REFGUID rguid,
583 [out] TfGuidAtom *pguidatom);
584
585 HRESULT GetGUID([in] TfGuidAtom guidatom,
586 [out] GUID *pguid);
587
588 HRESULT IsEqualTfGuidAtom([in] TfGuidAtom guidatom,
589 [in] REFGUID rguid,
590 [out] BOOL *pfEqual);
591};
592
593[
594 object,
595 uuid(8127d409-ccd3-4683-967a-b43d5b482bf7),
596 pointer_default(unique)
597]
598interface ITfTextEditSink : IUnknown
599{
600 HRESULT OnEndEdit(
601 [in] ITfContext *pic,
602 [in] TfEditCookie ecReadOnly,
603 [in] ITfEditRecord *pEditRecord);
604};
605
606[
607 object,
608 uuid(5F20AA40-B57A-4F34-96AB-3576F377CC79),
609 pointer_default(unique)
610]
611interface ITfContextOwnerCompositionSink : IUnknown
612{
613 HRESULT OnStartComposition(
614 [in] ITfCompositionView *pComposition,
615 [out] BOOL *pfOk);
616
617 HRESULT OnUpdateComposition(
618 [in] ITfCompositionView *pComposition,
619 [in] ITfRange *pRangeNew);
620
621 HRESULT OnEndComposition(
622 [in] ITfCompositionView *pComposition);
623};
624
625[
626 object,
627 uuid(3d61bf11-ac5f-42c8-a4cb-931bcc28c744),
628 pointer_default(unique)
629]
630interface IEnumTfLanguageProfiles : IUnknown
631{
632 HRESULT Clone(
633 [out] IEnumTfLanguageProfiles **ppEnum);
634
635 HRESULT Next(
636 [in] ULONG ulCount,
637 [out, size_is(ulCount), length_is(*pcFetch)] TF_LANGUAGEPROFILE *pProfile,
638 [out] ULONG *pcFetch);
639
640 HRESULT Reset();
641
642 HRESULT Skip(
643 [in] ULONG ulCount);
644};
645
646[
647 object,
648 local,
649 uuid(aa80e7f7-2021-11d2-93e0-0060b067b86e),
650 pointer_default(unique)
651]
652interface ITfTextInputProcessor : IUnknown
653{
654 HRESULT Activate(
655 [in] ITfThreadMgr *ptim,
656 [in] TfClientId tid);
657
658 HRESULT Deactivate();
659};
660
661[
662 object,
663 uuid(aa80e80e-2021-11d2-93e0-0060b067b86e),
664 pointer_default(unique)
665]
666interface ITfThreadMgrEventSink : IUnknown
667{
668 HRESULT OnInitDocumentMgr(
669 [in] ITfDocumentMgr *pdim);
670
671 HRESULT OnUninitDocumentMgr(
672 [in] ITfDocumentMgr *pdim);
673
674 HRESULT OnSetFocus(
675 [in] ITfDocumentMgr *pdimFocus,
676 [in] ITfDocumentMgr *pdimPrevFocus);
677
678 HRESULT OnPushContext(
679 [in] ITfContext *pic);
680
681 HRESULT OnPopContext(
682 [in] ITfContext *pic);
683};
684
685[
686 object,
687 local,
688 uuid(aa80e7f0-2021-11d2-93e0-0060b067b86e),
689 pointer_default(unique)
690]
691interface ITfKeystrokeMgr : IUnknown
692{
693 HRESULT AdviseKeyEventSink(
694 [in] TfClientId tid,
695 [in] ITfKeyEventSink *pSink,
696 [in] BOOL fForeground);
697
698 HRESULT UnadviseKeyEventSink(
699 [in] TfClientId tid);
700
701 HRESULT GetForeground(
702 [out] CLSID *pclsid);
703
704 HRESULT TestKeyDown(
705 [in] WPARAM wParam,
706 [in] LPARAM lParam,
707 [out] BOOL *pfEaten);
708
709 HRESULT TestKeyUp(
710 [in] WPARAM wParam,
711 [in] LPARAM lParam,
712 [out] BOOL *pfEaten);
713
714 HRESULT KeyDown(
715 [in] WPARAM wParam,
716 [in] LPARAM lParam,
717 [out] BOOL *pfEaten);
718
719 HRESULT KeyUp(
720 [in] WPARAM wParam,
721 [in] LPARAM lParam,
722 [out] BOOL *pfEaten);
723
724 HRESULT GetPreservedKey(
725 [in] ITfContext *pic,
726 [in] const TF_PRESERVEDKEY *pprekey,
727 [out] GUID *pguid);
728
729 HRESULT IsPreservedKey(
730 [in] REFGUID rguid,
731 [in] const TF_PRESERVEDKEY *pprekey,
732 [out] BOOL *pfRegistered);
733
734 HRESULT PreserveKey(
735 [in] TfClientId tid,
736 [in] REFGUID rguid,
737 [in] const TF_PRESERVEDKEY *prekey,
738 [in, size_is(cchDesc)] const WCHAR *pchDesc,
739 [in] ULONG cchDesc);
740
741 HRESULT UnpreserveKey(
742 [in] REFGUID rguid,
743 [in] const TF_PRESERVEDKEY *pprekey);
744
745 HRESULT SetPreservedKeyDescription(
746 [in] REFGUID rguid,
747 [in, size_is(cchDesc)] const WCHAR *pchDesc,
748 [in] ULONG cchDesc);
749
750 HRESULT GetPreservedKeyDescription(
751 [in] REFGUID rguid,
752 [out] BSTR *pbstrDesc);
753
754 HRESULT SimulatePreservedKey(
755 [in] ITfContext *pic,
756 [in] REFGUID rguid,
757 [out] BOOL *pfEaten);
758};
759
760[
761 object,
762 local,
763 uuid(aa80e7f5-2021-11d2-93e0-0060b067b86e),
764 pointer_default(unique)
765]
766interface ITfKeyEventSink : IUnknown
767{
768 HRESULT OnSetFocus(
769 [in] BOOL fForeground);
770
771 HRESULT OnTestKeyDown(
772 [in] ITfContext *pic,
773 [in] WPARAM wParam,
774 [in] LPARAM lParam,
775 [out] BOOL *pfEaten);
776
777 HRESULT OnTestKeyUp(
778 [in] ITfContext *pic,
779 [in] WPARAM wParam,
780 [in] LPARAM lParam,
781 [out] BOOL *pfEaten);
782
783 HRESULT OnKeyDown(
784 [in] ITfContext *pic,
785 [in] WPARAM wParam,
786 [in] LPARAM lParam,
787 [out] BOOL *pfEaten);
788
789 HRESULT OnKeyUp(
790 [in] ITfContext *pic,
791 [in] WPARAM wParam,
792 [in] LPARAM lParam,
793 [out] BOOL *pfEaten);
794
795 HRESULT OnPreservedKey(
796 [in] ITfContext *pic,
797 [in] REFGUID rguid,
798 [out] BOOL *pfEaten);
799};
800
801[
802 object,
803 local,
804 uuid(8f1b8ad8-0b6b-4874-90c5-bd76011e8f7c),
805 pointer_default(unique)
806]
807interface ITfMessagePump : IUnknown
808{
809 HRESULT PeekMessageA(
810 [out] LPMSG pMsg,
811 [in] HWND hwnd,
812 [in] UINT wMsgFilterMin,
813 [in] UINT wMsgFilterMax,
814 [in] UINT wRemoveMsg,
815 [out] BOOL *pfResult);
816
817 HRESULT GetMessageA(
818 [out] LPMSG pMsg,
819 [in] HWND hwnd,
820 [in] UINT wMsgFilterMin,
821 [in] UINT wMsgFilterMax,
822 [out] BOOL *pfResult);
823
824 HRESULT PeekMessageW(
825 [out] LPMSG pMsg,
826 [in] HWND hwnd,
827 [in] UINT wMsgFilterMin,
828 [in] UINT wMsgFilterMax,
829 [in] UINT wRemoveMsg,
830 [out] BOOL *pfResult);
831
832 HRESULT GetMessageW(
833 [out] LPMSG pMsg,
834 [in] HWND hwnd,
835 [in] UINT wMsgFilterMin,
836 [in] UINT wMsgFilterMax,
837 [out] BOOL *pfResult);
838};
839
840[
841 object,
842 local,
843 uuid(d60a7b49-1b9f-4be2-b702-47e9dc05dec3),
844 pointer_default(unique)
845]
846interface ITfClientId : IUnknown
847{
848 HRESULT GetClientId(
849 [in] REFCLSID rclsid,
850 [out] TfClientId *ptid);
851};
852
853[
854 object,
855 uuid(43c9fe15-f494-4c17-9de2-b8a4ac350aa8),
856 pointer_default(unique)
857]
858interface ITfLanguageProfileNotifySink : IUnknown
859{
860 HRESULT OnLanguageChange(
861 [in] LANGID langid,
862 [out] BOOL *pfAccept);
863
864 HRESULT OnLanguageChanged();
865}
866
867[
868 object,
869 uuid(aa80e803-2021-11d2-93e0-0060b067b86e),
870 pointer_default(unique)
871]
872interface ITfEditSession : IUnknown
873{
874 HRESULT DoEditSession(
875 [in] TfEditCookie ec);
876}
877
878[
879 object,
880 uuid(aa80e7ff-2021-11d2-93e0-0060b067b86e),
881 pointer_default(unique)
882]
883interface ITfRange : IUnknown
884{
885 const WCHAR TF_CHAR_EMBEDDED = TS_CHAR_EMBEDDED;
886
887 typedef [uuid(cf610f06-2882-46f6-abe5-298568b664c4)] enum { TF_GRAVITY_BACKWARD = 0, TF_GRAVITY_FORWARD = 1 } TfGravity;
888
889 typedef [uuid(1e512533-bbdc-4530-9a8e-a1dc0af67468)] enum { TF_SD_BACKWARD = 0, TF_SD_FORWARD = 1 } TfShiftDir;
890
891 const DWORD TF_HF_OBJECT = 1;
892 const DWORD TF_TF_MOVESTART = 1;
893 const DWORD TF_TF_IGNOREEND = 2;
894 const DWORD TF_ST_CORRECTION = 1;
895 const DWORD TF_IE_CORRECTION = 1;
896
897 typedef [uuid(49930d51-7d93-448c-a48c-fea5dac192b1)] struct TF_HALTCOND
898 {
899 ITfRange *pHaltRange;
900 TfAnchor aHaltPos;
901 DWORD dwFlags;
902 } TF_HALTCOND;
903
904 HRESULT GetText(
905 [in] TfEditCookie ec,
906 [in] DWORD dwFlags,
907 [out, size_is(cchMax), length_is(*pcch)] WCHAR *pchText,
908 [in] ULONG cchMax,
909 [out] ULONG *pcch);
910
911 HRESULT SetText(
912 [in] TfEditCookie ec,
913 [in] DWORD dwFlags,
914 [in, size_is(cch), unique] const WCHAR *pchText,
915 [in] LONG cch);
916
917 HRESULT GetFormattedText(
918 [in] TfEditCookie ec,
919 [out] IDataObject **ppDataObject);
920
921 HRESULT GetEmbedded(
922 [in] TfEditCookie ec,
923 [in] REFGUID rguidService,
924 [in] REFIID riid,
925 [out, iid_is(riid)] IUnknown **ppunk);
926
927 HRESULT InsertEmbedded(
928 [in] TfEditCookie ec,
929 [in] DWORD dwFlags,
930 [in] IDataObject *pDataObject);
931
932 HRESULT ShiftStart(
933 [in] TfEditCookie ec,
934 [in] LONG cchReq,
935 [out] LONG *pcch,
936 [in, unique] const TF_HALTCOND *pHalt);
937
938 HRESULT ShiftEnd(
939 [in] TfEditCookie ec,
940 [in] LONG cchReq,
941 [out] LONG *pcch,
942 [in, unique] const TF_HALTCOND *pHalt);
943
944 HRESULT ShiftStartToRange(
945 [in] TfEditCookie ec,
946 [in] ITfRange *pRange,
947 [in] TfAnchor aPos);
948
949 HRESULT ShiftEndToRange(
950 [in] TfEditCookie ec,
951 [in] ITfRange *pRange,
952 [in] TfAnchor aPos);
953
954 HRESULT ShiftStartRegion(
955 [in] TfEditCookie ec,
956 [in] TfShiftDir dir,
957 [out] BOOL *pfNoRegion);
958
959 HRESULT ShiftEndRegion(
960 [in] TfEditCookie ec,
961 [in] TfShiftDir dir,
962 [out] BOOL *pfNoRegion);
963
964 HRESULT IsEmpty(
965 [in] TfEditCookie ec,
966 [out] BOOL *pfEmpty);
967
968 HRESULT Collapse(
969 [in] TfEditCookie ec,
970 [in] TfAnchor aPos);
971
972 HRESULT IsEqualStart(
973 [in] TfEditCookie ec,
974 [in] ITfRange *pWith,
975 [in] TfAnchor aPos,
976 [out] BOOL *pfEqual);
977
978 HRESULT IsEqualEnd(
979 [in] TfEditCookie ec,
980 [in] ITfRange *pWith,
981 [in] TfAnchor aPos,
982 [out] BOOL *pfEqual);
983
984 HRESULT CompareStart(
985 [in] TfEditCookie ec,
986 [in] ITfRange *pWith,
987 [in] TfAnchor aPos,
988 [out] LONG *plResult);
989
990 HRESULT CompareEnd(
991 [in] TfEditCookie ec,
992 [in] ITfRange *pWith,
993 [in] TfAnchor aPos,
994 [out] LONG *plResult);
995
996 HRESULT AdjustForInsert(
997 [in] TfEditCookie ec,
998 [in] ULONG cchInsert,
999 [out] BOOL *pfInsertOk);
1000
1001 HRESULT GetGravity(
1002 [out] TfGravity *pgStart,
1003 [out] TfGravity *pgEnd);
1004
1005 HRESULT SetGravity(
1006 [in] TfEditCookie ec,
1007 [in] TfGravity gStart,
1008 [in] TfGravity gEnd);
1009
1010 HRESULT Clone(
1011 [out] ITfRange **ppClone);
1012
1013 HRESULT GetContext(
1014 [out] ITfContext **ppContext);
1015};
1016
1017[
1018 object,
1019 uuid(057a6296-029b-4154-b79a-0d461d4ea94c),
1020 pointer_default(unique)
1021]
1022interface ITfRangeACP : ITfRange
1023{
1024 HRESULT GetExtent([out] LONG *pacpAnchor,
1025 [out] LONG *pcch);
1026
1027 HRESULT SetExtent([in] LONG acpAnchor,
1028 [in] LONG cch);
1029}
1030
1031[
1032 object,
1033 uuid(55ce16ba-3014-41c1-9ceb-fade1446ac6c),
1034 pointer_default(unique)
1035]
1036interface ITfInsertAtSelection : IUnknown
1037{
1038 const DWORD TF_IAS_NOQUERY = 0x1;
1039 const DWORD TF_IAS_QUERYONLY = 0x2;
1040 const DWORD TF_IAS_NO_DEFAULT_COMPOSITION = 0x80000000;
1041
1042 HRESULT InsertTextAtSelection(
1043 [in] TfEditCookie ec,
1044 [in] DWORD dwFlags,
1045 [in, size_is(cch)] const WCHAR *pchText,
1046 [in] LONG cch,
1047 [out] ITfRange **ppRange);
1048
1049 HRESULT InsertEmbeddedAtSelection(
1050 [in] TfEditCookie ec,
1051 [in] DWORD dwFlags,
1052 [in] IDataObject *pDataObject,
1053 [out] ITfRange **ppRange);
1054};
1055
1056[
1057 object,
1058 uuid(6834b120-88cb-11d2-bf45-00105a2799b5),
1059 pointer_default(unique)
1060]
1061interface ITfPropertyStore : IUnknown
1062{
1063 const DWORD TF_TU_CORRECTION = 0x1;
1064
1065 HRESULT GetType([out] GUID *pguid);
1066
1067 HRESULT GetDataType([out] DWORD *pdwReserved);
1068
1069 HRESULT GetData([out] VARIANT *pvarValue);
1070
1071 HRESULT OnTextUpdated(
1072 [in] DWORD dwFlags,
1073 [in] ITfRange *pRangeNew,
1074 [out] BOOL *pfAccept);
1075
1076 HRESULT Shrink(
1077 [in] ITfRange *pRangeNew,
1078 [out] BOOL *pfFree);
1079
1080 HRESULT Divide(
1081 [in] ITfRange *pRangeThis,
1082 [in] ITfRange *pRangeNew,
1083 [out] ITfPropertyStore **ppPropStore);
1084
1085 HRESULT Clone(
1086 [out] ITfPropertyStore **pPropStore);
1087
1088 HRESULT GetPropertyRangeCreator(
1089 [out] CLSID *pclsid);
1090
1091 HRESULT Serialize(
1092 [in] IStream *pStream,
1093 [out] ULONG *pcb);
1094}
1095
1096[
1097 object,
1098 uuid(f99d3f40-8e32-11d2-bf46-00105a2799b5),
1099 pointer_default(unique)
1100]
1101interface IEnumTfRanges : IUnknown
1102{
1103 HRESULT Clone([out] IEnumTfRanges **ppEnum);
1104
1105 HRESULT Next(
1106 [in] ULONG ulCount,
1107 [out, size_is(ulCount), length_is(*pcFetched)] ITfRange **ppRange,
1108 [out] ULONG *pcFetched);
1109
1110 HRESULT Reset();
1111
1112 HRESULT Skip(ULONG ulCount);
1113}
1114
1115[
1116 object,
1117 uuid(5efd22Ba-7838-46cb-88e2-cadb14124f8f),
1118 pointer_default(unique)
1119]
1120interface IEnumITfCompositionView : IUnknown
1121{
1122 HRESULT Clone([out] IEnumITfCompositionView **ppEnum);
1123
1124 HRESULT Next(
1125 [in] ULONG ulCount,
1126 [out, size_is(ulCount), length_is(*pcFetched)] ITfCompositionView **rgCompositionView,
1127 [out] ULONG *pcFetched);
1128
1129 HRESULT Reset();
1130
1131 HRESULT Skip([in] ULONG ulCount);
1132}
1133
1134[
1135 object,
1136 uuid(20168d64-5a8f-4a5a-b7bd-cfa29f4D0fd9),
1137 pointer_default(unique)
1138]
1139interface ITfComposition : IUnknown
1140{
1141 HRESULT GetRange([out] ITfRange **ppRange);
1142
1143 HRESULT ShiftStart(
1144 [in] TfEditCookie ecWrite,
1145 [in] ITfRange *pNewStart);
1146
1147 HRESULT ShiftEnd(
1148 [in] TfEditCookie ecWrite,
1149 [in] ITfRange *pNewEnd);
1150
1151 HRESULT EndComposition([in] TfEditCookie ecWrite);
1152}
1153
1154[
1155 object,
1156 uuid(a781718c-579a-4b15-a280-32b8577acc5e),
1157 pointer_default(unique)
1158]
1159interface ITfCompositionSink : IUnknown
1160{
1161 HRESULT OnCompositionTerminated(
1162 [in] TfEditCookie ecWrite,
1163 [in] ITfComposition *pComposition);
1164}
1165
1166[
1167 object,
1168 uuid(d40C8aae-aC92-4fc7-9a11-0ee0e23aa39b),
1169 pointer_default(unique)
1170]
1171interface ITfContextComposition : IUnknown
1172{
1173 HRESULT StartComposition(
1174 [in] TfEditCookie ecWrite,
1175 [in] ITfRange *pCompositionRange,
1176 [in] ITfCompositionSink *pSink,
1177 [out] ITfComposition **ppComposition);
1178
1179 HRESULT EnumCompositions([out] IEnumITfCompositionView **ppEnum);
1180
1181 HRESULT FindComposition(
1182 [in] TfEditCookie ecRead,
1183 [in] ITfRange *pTestRange,
1184 [out] IEnumITfCompositionView **ppEnum);
1185
1186 HRESULT TakeOwnership(
1187 [in] TfEditCookie ecWrite,
1188 [in] ITfCompositionView *pComposition,
1189 [in] ITfCompositionSink *pSink,
1190 [out] ITfComposition **ppComposition);
1191}
1192
1193[
1194 object,
1195 uuid(86462810-593b-4916-9764-19c08e9ce110),
1196 pointer_default(unique)
1197]
1198interface ITfContextOwnerCompositionServices : ITfContextComposition
1199{
1200 HRESULT TerminateComposition([in] ITfCompositionView *pComposition);
1201}
1202
1203[
1204 object,
1205 uuid(17d49a3d-f8b8-4b2f-b254-52319dd64c53),
1206 pointer_default(unique)
1207]
1208interface ITfReadOnlyProperty : IUnknown
1209{
1210 HRESULT GetType([out] GUID *pguid);
1211
1212 HRESULT EnumRanges(
1213 [in] TfEditCookie ec,
1214 [out] IEnumTfRanges **ppEnum,
1215 [in] ITfRange *pTargetRange);
1216
1217 HRESULT GetValue(
1218 [in] TfEditCookie ec,
1219 [in] ITfRange *pRange,
1220 [out] VARIANT *pvarValue);
1221
1222 HRESULT GetContext([out] ITfContext **ppContext);
1223}
1224
1225[
1226 object,
1227 uuid(e2449660-9542-11d2-bf46-00105a2799b5),
1228 pointer_default(unique)
1229]
1230interface ITfProperty : ITfReadOnlyProperty
1231{
1232 HRESULT FindRange(
1233 [in] TfEditCookie ec,
1234 [in] ITfRange *pRange,
1235 [out] ITfRange **ppRange,
1236 [in] TfAnchor aPos);
1237
1238 HRESULT SetValueStore(
1239 [in] TfEditCookie ec,
1240 [in] ITfRange *pRange,
1241 [in] ITfPropertyStore *pPropStore);
1242
1243 HRESULT SetValue(
1244 [in] TfEditCookie ec,
1245 [in] ITfRange *pRange,
1246 [in] const VARIANT *pvarValue);
1247
1248 HRESULT Clear(
1249 [in] TfEditCookie ec,
1250 [in] ITfRange *pRange);
1251}
1252
1253[
1254 object,
1255 uuid(bb08f7a9-607a-4384-8623-056892b64371),
1256 pointer_default(unique)
1257]
1258interface ITfCompartment : IUnknown
1259{
1260 HRESULT SetValue(
1261 [in] TfClientId tid,
1262 [in] const VARIANT *pvarValue);
1263
1264 HRESULT GetValue(
1265 [out] VARIANT *pvarValue);
1266};
1267
1268[
1269 object,
1270 uuid(7dcf57ac-18ad-438b-824d-979bffb74b7c),
1271 pointer_default(unique)
1272]
1273interface ITfCompartmentMgr : IUnknown
1274{
1275 HRESULT GetCompartment(
1276 [in] REFGUID rguid,
1277 [out] ITfCompartment **ppcomp);
1278
1279 HRESULT ClearCompartment(
1280 [in] TfClientId tid,
1281 [in] REFGUID rguid);
1282
1283 HRESULT EnumCompartments(
1284 [out] IEnumGUID **ppEnum);
1285};
1286
1287[
1288 object,
1289 uuid(743abd5f-f26d-48df-8cc5-238492419b64),
1290 pointer_default(unique)
1291]
1292interface ITfCompartmentEventSink : IUnknown
1293{
1294 HRESULT OnChange(
1295 [in] REFGUID rguid);
1296}
1297
1298[
1299 object,
1300 uuid(8f1a7ea6-1654-4502-a86e-b2902344d507),
1301 pointer_default(unique)
1302]
1303interface IEnumTfContexts : IUnknown
1304{
1305 HRESULT Clone(
1306 [out] IEnumTfContexts **ppEnum);
1307
1308 HRESULT Next(
1309 [in] ULONG ulCount,
1310 [out, size_is(ulCount), length_is(*pcFetched)] ITfContext **rgContext,
1311 [out] ULONG *pcFetched);
1312
1313 HRESULT Reset();
1314
1315 HRESULT Skip(
1316 [in] ULONG ulCount);
1317};
1318
1319[
1320 object,
1321 uuid(aa80e808-2021-11d2-93e0-0060b067b86e),
1322 pointer_default(unique)
1323]
1324interface IEnumTfDocumentMgrs : IUnknown
1325{
1326 HRESULT Clone(
1327 [out] IEnumTfDocumentMgrs **ppEnum);
1328
1329 HRESULT Next(
1330 [in] ULONG ulCount,
1331 [out, size_is(ulCount), length_is(*pcFetched)] ITfDocumentMgr **rgDocumentMgr,
1332 [out] ULONG *pcFetched);
1333
1334 HRESULT Reset();
1335
1336 HRESULT Skip(
1337 [in] ULONG ulCount);
1338};
1339
1340[
1341 object,
1342 uuid(73131f9c-56a9-49dd-b0ee-d046633f7528),
1343 pointer_default(unique)
1344]
1345interface ITfSourceSingle : IUnknown
1346{
1347 HRESULT AdviseSingleSink(
1348 [in] TfClientId tid,
1349 [in] REFIID riid,
1350 [in, iid_is(riid)] IUnknown *punk);
1351
1352 HRESULT UnadviseSingleSink(
1353 [in] TfClientId tid,
1354 [in] REFIID riid);
1355};
1356
1357[
1358 object,
1359 local,
1360 uuid(c0f1db0c-3a20-405c-a303-96b6010a885f),
1361 pointer_default(unique)
1362]
1363interface ITfThreadFocusSink : IUnknown
1364{
1365 HRESULT OnSetThreadFocus();
1366
1367 HRESULT OnKillThreadFocus();
1368};
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette