• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*** Autogenerated by WIDL 4.19 from include/msctf.idl - Do not edit ***/
2 
3 #ifdef _WIN32
4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
6 #endif
7 #include <rpc.h>
8 #include <rpcndr.h>
9 #endif
10 
11 #ifndef COM_NO_WINDOWS_H
12 #include <windows.h>
13 #include <ole2.h>
14 #endif
15 
16 #ifndef __msctf_h__
17 #define __msctf_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __ITfFunctionProvider_FWD_DEFINED__
22 #define __ITfFunctionProvider_FWD_DEFINED__
23 typedef interface ITfFunctionProvider ITfFunctionProvider;
24 #ifdef __cplusplus
25 interface ITfFunctionProvider;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __IEnumTfFunctionProviders_FWD_DEFINED__
30 #define __IEnumTfFunctionProviders_FWD_DEFINED__
31 typedef interface IEnumTfFunctionProviders IEnumTfFunctionProviders;
32 #ifdef __cplusplus
33 interface IEnumTfFunctionProviders;
34 #endif /* __cplusplus */
35 #endif
36 
37 #ifndef __ITfThreadMgr_FWD_DEFINED__
38 #define __ITfThreadMgr_FWD_DEFINED__
39 typedef interface ITfThreadMgr ITfThreadMgr;
40 #ifdef __cplusplus
41 interface ITfThreadMgr;
42 #endif /* __cplusplus */
43 #endif
44 
45 #ifndef __ITfThreadMgrEx_FWD_DEFINED__
46 #define __ITfThreadMgrEx_FWD_DEFINED__
47 typedef interface ITfThreadMgrEx ITfThreadMgrEx;
48 #ifdef __cplusplus
49 interface ITfThreadMgrEx;
50 #endif /* __cplusplus */
51 #endif
52 
53 #ifndef __ITfCompositionView_FWD_DEFINED__
54 #define __ITfCompositionView_FWD_DEFINED__
55 typedef interface ITfCompositionView ITfCompositionView;
56 #ifdef __cplusplus
57 interface ITfCompositionView;
58 #endif /* __cplusplus */
59 #endif
60 
61 #ifndef __ITfDocumentMgr_FWD_DEFINED__
62 #define __ITfDocumentMgr_FWD_DEFINED__
63 typedef interface ITfDocumentMgr ITfDocumentMgr;
64 #ifdef __cplusplus
65 interface ITfDocumentMgr;
66 #endif /* __cplusplus */
67 #endif
68 
69 #ifndef __ITfContextView_FWD_DEFINED__
70 #define __ITfContextView_FWD_DEFINED__
71 typedef interface ITfContextView ITfContextView;
72 #ifdef __cplusplus
73 interface ITfContextView;
74 #endif /* __cplusplus */
75 #endif
76 
77 #ifndef __IEnumTfContextViews_FWD_DEFINED__
78 #define __IEnumTfContextViews_FWD_DEFINED__
79 typedef interface IEnumTfContextViews IEnumTfContextViews;
80 #ifdef __cplusplus
81 interface IEnumTfContextViews;
82 #endif /* __cplusplus */
83 #endif
84 
85 #ifndef __IEnumTfProperties_FWD_DEFINED__
86 #define __IEnumTfProperties_FWD_DEFINED__
87 typedef interface IEnumTfProperties IEnumTfProperties;
88 #ifdef __cplusplus
89 interface IEnumTfProperties;
90 #endif /* __cplusplus */
91 #endif
92 
93 #ifndef __ITfRangeBackup_FWD_DEFINED__
94 #define __ITfRangeBackup_FWD_DEFINED__
95 typedef interface ITfRangeBackup ITfRangeBackup;
96 #ifdef __cplusplus
97 interface ITfRangeBackup;
98 #endif /* __cplusplus */
99 #endif
100 
101 #ifndef __ITextStoreACPServices_FWD_DEFINED__
102 #define __ITextStoreACPServices_FWD_DEFINED__
103 typedef interface ITextStoreACPServices ITextStoreACPServices;
104 #ifdef __cplusplus
105 interface ITextStoreACPServices;
106 #endif /* __cplusplus */
107 #endif
108 
109 #ifndef __ITfContext_FWD_DEFINED__
110 #define __ITfContext_FWD_DEFINED__
111 typedef interface ITfContext ITfContext;
112 #ifdef __cplusplus
113 interface ITfContext;
114 #endif /* __cplusplus */
115 #endif
116 
117 #ifndef __ITfSource_FWD_DEFINED__
118 #define __ITfSource_FWD_DEFINED__
119 typedef interface ITfSource ITfSource;
120 #ifdef __cplusplus
121 interface ITfSource;
122 #endif /* __cplusplus */
123 #endif
124 
125 #ifndef __ITfInputProcessorProfiles_FWD_DEFINED__
126 #define __ITfInputProcessorProfiles_FWD_DEFINED__
127 typedef interface ITfInputProcessorProfiles ITfInputProcessorProfiles;
128 #ifdef __cplusplus
129 interface ITfInputProcessorProfiles;
130 #endif /* __cplusplus */
131 #endif
132 
133 #ifndef __IEnumTfInputProcessorProfiles_FWD_DEFINED__
134 #define __IEnumTfInputProcessorProfiles_FWD_DEFINED__
135 typedef interface IEnumTfInputProcessorProfiles IEnumTfInputProcessorProfiles;
136 #ifdef __cplusplus
137 interface IEnumTfInputProcessorProfiles;
138 #endif /* __cplusplus */
139 #endif
140 
141 #ifndef __ITfInputProcessorProfileMgr_FWD_DEFINED__
142 #define __ITfInputProcessorProfileMgr_FWD_DEFINED__
143 typedef interface ITfInputProcessorProfileMgr ITfInputProcessorProfileMgr;
144 #ifdef __cplusplus
145 interface ITfInputProcessorProfileMgr;
146 #endif /* __cplusplus */
147 #endif
148 
149 #ifndef __ITfDisplayAttributeInfo_FWD_DEFINED__
150 #define __ITfDisplayAttributeInfo_FWD_DEFINED__
151 typedef interface ITfDisplayAttributeInfo ITfDisplayAttributeInfo;
152 #ifdef __cplusplus
153 interface ITfDisplayAttributeInfo;
154 #endif /* __cplusplus */
155 #endif
156 
157 #ifndef __IEnumTfDisplayAttributeInfo_FWD_DEFINED__
158 #define __IEnumTfDisplayAttributeInfo_FWD_DEFINED__
159 typedef interface IEnumTfDisplayAttributeInfo IEnumTfDisplayAttributeInfo;
160 #ifdef __cplusplus
161 interface IEnumTfDisplayAttributeInfo;
162 #endif /* __cplusplus */
163 #endif
164 
165 #ifndef __ITfDisplayAttributeMgr_FWD_DEFINED__
166 #define __ITfDisplayAttributeMgr_FWD_DEFINED__
167 typedef interface ITfDisplayAttributeMgr ITfDisplayAttributeMgr;
168 #ifdef __cplusplus
169 interface ITfDisplayAttributeMgr;
170 #endif /* __cplusplus */
171 #endif
172 
173 #ifndef __ITfCategoryMgr_FWD_DEFINED__
174 #define __ITfCategoryMgr_FWD_DEFINED__
175 typedef interface ITfCategoryMgr ITfCategoryMgr;
176 #ifdef __cplusplus
177 interface ITfCategoryMgr;
178 #endif /* __cplusplus */
179 #endif
180 
181 #ifndef __IEnumTfRanges_FWD_DEFINED__
182 #define __IEnumTfRanges_FWD_DEFINED__
183 typedef interface IEnumTfRanges IEnumTfRanges;
184 #ifdef __cplusplus
185 interface IEnumTfRanges;
186 #endif /* __cplusplus */
187 #endif
188 
189 #ifndef __ITfEditRecord_FWD_DEFINED__
190 #define __ITfEditRecord_FWD_DEFINED__
191 typedef interface ITfEditRecord ITfEditRecord;
192 #ifdef __cplusplus
193 interface ITfEditRecord;
194 #endif /* __cplusplus */
195 #endif
196 
197 #ifndef __ITfTextEditSink_FWD_DEFINED__
198 #define __ITfTextEditSink_FWD_DEFINED__
199 typedef interface ITfTextEditSink ITfTextEditSink;
200 #ifdef __cplusplus
201 interface ITfTextEditSink;
202 #endif /* __cplusplus */
203 #endif
204 
205 #ifndef __ITfContextOwnerCompositionSink_FWD_DEFINED__
206 #define __ITfContextOwnerCompositionSink_FWD_DEFINED__
207 typedef interface ITfContextOwnerCompositionSink ITfContextOwnerCompositionSink;
208 #ifdef __cplusplus
209 interface ITfContextOwnerCompositionSink;
210 #endif /* __cplusplus */
211 #endif
212 
213 #ifndef __ITfActiveLanguageProfileNotifySink_FWD_DEFINED__
214 #define __ITfActiveLanguageProfileNotifySink_FWD_DEFINED__
215 typedef interface ITfActiveLanguageProfileNotifySink ITfActiveLanguageProfileNotifySink;
216 #ifdef __cplusplus
217 interface ITfActiveLanguageProfileNotifySink;
218 #endif /* __cplusplus */
219 #endif
220 
221 #ifndef __IEnumTfLanguageProfiles_FWD_DEFINED__
222 #define __IEnumTfLanguageProfiles_FWD_DEFINED__
223 typedef interface IEnumTfLanguageProfiles IEnumTfLanguageProfiles;
224 #ifdef __cplusplus
225 interface IEnumTfLanguageProfiles;
226 #endif /* __cplusplus */
227 #endif
228 
229 #ifndef __ITfTextInputProcessor_FWD_DEFINED__
230 #define __ITfTextInputProcessor_FWD_DEFINED__
231 typedef interface ITfTextInputProcessor ITfTextInputProcessor;
232 #ifdef __cplusplus
233 interface ITfTextInputProcessor;
234 #endif /* __cplusplus */
235 #endif
236 
237 #ifndef __ITfThreadMgrEventSink_FWD_DEFINED__
238 #define __ITfThreadMgrEventSink_FWD_DEFINED__
239 typedef interface ITfThreadMgrEventSink ITfThreadMgrEventSink;
240 #ifdef __cplusplus
241 interface ITfThreadMgrEventSink;
242 #endif /* __cplusplus */
243 #endif
244 
245 #ifndef __ITfKeystrokeMgr_FWD_DEFINED__
246 #define __ITfKeystrokeMgr_FWD_DEFINED__
247 typedef interface ITfKeystrokeMgr ITfKeystrokeMgr;
248 #ifdef __cplusplus
249 interface ITfKeystrokeMgr;
250 #endif /* __cplusplus */
251 #endif
252 
253 #ifndef __ITfKeyEventSink_FWD_DEFINED__
254 #define __ITfKeyEventSink_FWD_DEFINED__
255 typedef interface ITfKeyEventSink ITfKeyEventSink;
256 #ifdef __cplusplus
257 interface ITfKeyEventSink;
258 #endif /* __cplusplus */
259 #endif
260 
261 #ifndef __ITfKeyTraceEventSink_FWD_DEFINED__
262 #define __ITfKeyTraceEventSink_FWD_DEFINED__
263 typedef interface ITfKeyTraceEventSink ITfKeyTraceEventSink;
264 #ifdef __cplusplus
265 interface ITfKeyTraceEventSink;
266 #endif /* __cplusplus */
267 #endif
268 
269 #ifndef __ITfUIElementSink_FWD_DEFINED__
270 #define __ITfUIElementSink_FWD_DEFINED__
271 typedef interface ITfUIElementSink ITfUIElementSink;
272 #ifdef __cplusplus
273 interface ITfUIElementSink;
274 #endif /* __cplusplus */
275 #endif
276 
277 #ifndef __ITfMessagePump_FWD_DEFINED__
278 #define __ITfMessagePump_FWD_DEFINED__
279 typedef interface ITfMessagePump ITfMessagePump;
280 #ifdef __cplusplus
281 interface ITfMessagePump;
282 #endif /* __cplusplus */
283 #endif
284 
285 #ifndef __ITfClientId_FWD_DEFINED__
286 #define __ITfClientId_FWD_DEFINED__
287 typedef interface ITfClientId ITfClientId;
288 #ifdef __cplusplus
289 interface ITfClientId;
290 #endif /* __cplusplus */
291 #endif
292 
293 #ifndef __ITfLanguageProfileNotifySink_FWD_DEFINED__
294 #define __ITfLanguageProfileNotifySink_FWD_DEFINED__
295 typedef interface ITfLanguageProfileNotifySink ITfLanguageProfileNotifySink;
296 #ifdef __cplusplus
297 interface ITfLanguageProfileNotifySink;
298 #endif /* __cplusplus */
299 #endif
300 
301 #ifndef __ITfEditSession_FWD_DEFINED__
302 #define __ITfEditSession_FWD_DEFINED__
303 typedef interface ITfEditSession ITfEditSession;
304 #ifdef __cplusplus
305 interface ITfEditSession;
306 #endif /* __cplusplus */
307 #endif
308 
309 #ifndef __ITfRange_FWD_DEFINED__
310 #define __ITfRange_FWD_DEFINED__
311 typedef interface ITfRange ITfRange;
312 #ifdef __cplusplus
313 interface ITfRange;
314 #endif /* __cplusplus */
315 #endif
316 
317 #ifndef __ITfRangeACP_FWD_DEFINED__
318 #define __ITfRangeACP_FWD_DEFINED__
319 typedef interface ITfRangeACP ITfRangeACP;
320 #ifdef __cplusplus
321 interface ITfRangeACP;
322 #endif /* __cplusplus */
323 #endif
324 
325 #ifndef __ITfInsertAtSelection_FWD_DEFINED__
326 #define __ITfInsertAtSelection_FWD_DEFINED__
327 typedef interface ITfInsertAtSelection ITfInsertAtSelection;
328 #ifdef __cplusplus
329 interface ITfInsertAtSelection;
330 #endif /* __cplusplus */
331 #endif
332 
333 #ifndef __ITfPropertyStore_FWD_DEFINED__
334 #define __ITfPropertyStore_FWD_DEFINED__
335 typedef interface ITfPropertyStore ITfPropertyStore;
336 #ifdef __cplusplus
337 interface ITfPropertyStore;
338 #endif /* __cplusplus */
339 #endif
340 
341 #ifndef __IEnumITfCompositionView_FWD_DEFINED__
342 #define __IEnumITfCompositionView_FWD_DEFINED__
343 typedef interface IEnumITfCompositionView IEnumITfCompositionView;
344 #ifdef __cplusplus
345 interface IEnumITfCompositionView;
346 #endif /* __cplusplus */
347 #endif
348 
349 #ifndef __ITfComposition_FWD_DEFINED__
350 #define __ITfComposition_FWD_DEFINED__
351 typedef interface ITfComposition ITfComposition;
352 #ifdef __cplusplus
353 interface ITfComposition;
354 #endif /* __cplusplus */
355 #endif
356 
357 #ifndef __ITfCompositionSink_FWD_DEFINED__
358 #define __ITfCompositionSink_FWD_DEFINED__
359 typedef interface ITfCompositionSink ITfCompositionSink;
360 #ifdef __cplusplus
361 interface ITfCompositionSink;
362 #endif /* __cplusplus */
363 #endif
364 
365 #ifndef __ITfContextComposition_FWD_DEFINED__
366 #define __ITfContextComposition_FWD_DEFINED__
367 typedef interface ITfContextComposition ITfContextComposition;
368 #ifdef __cplusplus
369 interface ITfContextComposition;
370 #endif /* __cplusplus */
371 #endif
372 
373 #ifndef __ITfContextOwnerCompositionServices_FWD_DEFINED__
374 #define __ITfContextOwnerCompositionServices_FWD_DEFINED__
375 typedef interface ITfContextOwnerCompositionServices ITfContextOwnerCompositionServices;
376 #ifdef __cplusplus
377 interface ITfContextOwnerCompositionServices;
378 #endif /* __cplusplus */
379 #endif
380 
381 #ifndef __ITfPersistentPropertyLoaderACP_FWD_DEFINED__
382 #define __ITfPersistentPropertyLoaderACP_FWD_DEFINED__
383 typedef interface ITfPersistentPropertyLoaderACP ITfPersistentPropertyLoaderACP;
384 #ifdef __cplusplus
385 interface ITfPersistentPropertyLoaderACP;
386 #endif /* __cplusplus */
387 #endif
388 
389 #ifndef __ITfContextOwnerServices_FWD_DEFINED__
390 #define __ITfContextOwnerServices_FWD_DEFINED__
391 typedef interface ITfContextOwnerServices ITfContextOwnerServices;
392 #ifdef __cplusplus
393 interface ITfContextOwnerServices;
394 #endif /* __cplusplus */
395 #endif
396 
397 #ifndef __ITfReadOnlyProperty_FWD_DEFINED__
398 #define __ITfReadOnlyProperty_FWD_DEFINED__
399 typedef interface ITfReadOnlyProperty ITfReadOnlyProperty;
400 #ifdef __cplusplus
401 interface ITfReadOnlyProperty;
402 #endif /* __cplusplus */
403 #endif
404 
405 #ifndef __ITfProperty_FWD_DEFINED__
406 #define __ITfProperty_FWD_DEFINED__
407 typedef interface ITfProperty ITfProperty;
408 #ifdef __cplusplus
409 interface ITfProperty;
410 #endif /* __cplusplus */
411 #endif
412 
413 #ifndef __ITfCompartment_FWD_DEFINED__
414 #define __ITfCompartment_FWD_DEFINED__
415 typedef interface ITfCompartment ITfCompartment;
416 #ifdef __cplusplus
417 interface ITfCompartment;
418 #endif /* __cplusplus */
419 #endif
420 
421 #ifndef __ITfCompartmentMgr_FWD_DEFINED__
422 #define __ITfCompartmentMgr_FWD_DEFINED__
423 typedef interface ITfCompartmentMgr ITfCompartmentMgr;
424 #ifdef __cplusplus
425 interface ITfCompartmentMgr;
426 #endif /* __cplusplus */
427 #endif
428 
429 #ifndef __ITfCompartmentEventSink_FWD_DEFINED__
430 #define __ITfCompartmentEventSink_FWD_DEFINED__
431 typedef interface ITfCompartmentEventSink ITfCompartmentEventSink;
432 #ifdef __cplusplus
433 interface ITfCompartmentEventSink;
434 #endif /* __cplusplus */
435 #endif
436 
437 #ifndef __IEnumTfContexts_FWD_DEFINED__
438 #define __IEnumTfContexts_FWD_DEFINED__
439 typedef interface IEnumTfContexts IEnumTfContexts;
440 #ifdef __cplusplus
441 interface IEnumTfContexts;
442 #endif /* __cplusplus */
443 #endif
444 
445 #ifndef __IEnumTfDocumentMgrs_FWD_DEFINED__
446 #define __IEnumTfDocumentMgrs_FWD_DEFINED__
447 typedef interface IEnumTfDocumentMgrs IEnumTfDocumentMgrs;
448 #ifdef __cplusplus
449 interface IEnumTfDocumentMgrs;
450 #endif /* __cplusplus */
451 #endif
452 
453 #ifndef __ITfUIElement_FWD_DEFINED__
454 #define __ITfUIElement_FWD_DEFINED__
455 typedef interface ITfUIElement ITfUIElement;
456 #ifdef __cplusplus
457 interface ITfUIElement;
458 #endif /* __cplusplus */
459 #endif
460 
461 #ifndef __IEnumTfUIElements_FWD_DEFINED__
462 #define __IEnumTfUIElements_FWD_DEFINED__
463 typedef interface IEnumTfUIElements IEnumTfUIElements;
464 #ifdef __cplusplus
465 interface IEnumTfUIElements;
466 #endif /* __cplusplus */
467 #endif
468 
469 #ifndef __ITfUIElementMgr_FWD_DEFINED__
470 #define __ITfUIElementMgr_FWD_DEFINED__
471 typedef interface ITfUIElementMgr ITfUIElementMgr;
472 #ifdef __cplusplus
473 interface ITfUIElementMgr;
474 #endif /* __cplusplus */
475 #endif
476 
477 #ifndef __ITfSourceSingle_FWD_DEFINED__
478 #define __ITfSourceSingle_FWD_DEFINED__
479 typedef interface ITfSourceSingle ITfSourceSingle;
480 #ifdef __cplusplus
481 interface ITfSourceSingle;
482 #endif /* __cplusplus */
483 #endif
484 
485 #ifndef __ITfThreadFocusSink_FWD_DEFINED__
486 #define __ITfThreadFocusSink_FWD_DEFINED__
487 typedef interface ITfThreadFocusSink ITfThreadFocusSink;
488 #ifdef __cplusplus
489 interface ITfThreadFocusSink;
490 #endif /* __cplusplus */
491 #endif
492 
493 #ifndef __ITfInputProcessorProfileActivationSink_FWD_DEFINED__
494 #define __ITfInputProcessorProfileActivationSink_FWD_DEFINED__
495 typedef interface ITfInputProcessorProfileActivationSink ITfInputProcessorProfileActivationSink;
496 #ifdef __cplusplus
497 interface ITfInputProcessorProfileActivationSink;
498 #endif /* __cplusplus */
499 #endif
500 
501 #ifndef __ITfMouseSink_FWD_DEFINED__
502 #define __ITfMouseSink_FWD_DEFINED__
503 typedef interface ITfMouseSink ITfMouseSink;
504 #ifdef __cplusplus
505 interface ITfMouseSink;
506 #endif /* __cplusplus */
507 #endif
508 
509 #ifndef __ITfMouseTracker_FWD_DEFINED__
510 #define __ITfMouseTracker_FWD_DEFINED__
511 typedef interface ITfMouseTracker ITfMouseTracker;
512 #ifdef __cplusplus
513 interface ITfMouseTracker;
514 #endif /* __cplusplus */
515 #endif
516 
517 #ifndef __ITfMouseTrackerACP_FWD_DEFINED__
518 #define __ITfMouseTrackerACP_FWD_DEFINED__
519 typedef interface ITfMouseTrackerACP ITfMouseTrackerACP;
520 #ifdef __cplusplus
521 interface ITfMouseTrackerACP;
522 #endif /* __cplusplus */
523 #endif
524 
525 #ifndef __ITfTransitoryExtensionSink_FWD_DEFINED__
526 #define __ITfTransitoryExtensionSink_FWD_DEFINED__
527 typedef interface ITfTransitoryExtensionSink ITfTransitoryExtensionSink;
528 #ifdef __cplusplus
529 interface ITfTransitoryExtensionSink;
530 #endif /* __cplusplus */
531 #endif
532 
533 /* Headers for imported files */
534 
535 #include <oaidl.h>
536 #include <comcat.h>
537 #include <textstor.h>
538 #include <ctfutb.h>
539 
540 #ifdef __cplusplus
541 extern "C" {
542 #endif
543 
544 #define TF_E_STACKFULL MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0501)
545 #define TF_E_DISCONNECTED    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0504)
546 #define TF_E_ALREADY_EXISTS  MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0506)
547 #define TF_E_NOLOCK          MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)
548 HRESULT WINAPI TF_CreateThreadMgr(ITfThreadMgr **pptim);
549 HRESULT WINAPI TF_GetThreadMgr(ITfThreadMgr **pptim);
550 HRESULT WINAPI TF_CreateInputProcessorProfiles(ITfInputProcessorProfiles **ppipr);
551 HRESULT WINAPI TF_CreateLangBarMgr(ITfLangBarMgr **pppbm);
552 HRESULT WINAPI TF_CreateLangBarItemMgr(ITfLangBarItemMgr **pplbim);
553 HRESULT WINAPI TF_InvalidAssemblyListCacheIfExist(void);
554 EXTERN_C const GUID GUID_PROP_TEXTOWNER;
555 DEFINE_GUID(GUID_PROP_ATTRIBUTE,0x34b45670,0x7526,0x11d2,0xa1,0x47,0x00,0x10,0x5a,0x27,0x99,0xb5);
556 EXTERN_C const GUID GUID_PROP_LANGID;
557 EXTERN_C const GUID GUID_PROP_READING;
558 EXTERN_C const GUID GUID_PROP_COMPOSING;
559 EXTERN_C const CLSID CLSID_TF_ThreadMgr;
560 EXTERN_C const CLSID CLSID_TF_InputProcessorProfiles;
561 EXTERN_C const CLSID CLSID_TF_LangBarMgr;
562 EXTERN_C const CLSID CLSID_TF_CategoryMgr;
563 EXTERN_C const CLSID CLSID_TF_DisplayAttributeMgr;
564 EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_DISABLED;
565 EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_OPENCLOSE;
566 EXTERN_C const GUID GUID_COMPARTMENT_HANDWRITING_OPENCLOSE;
567 EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_DISABLED;
568 EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_OPENCLOSE;
569 EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_GLOBALSTATE;
570 EXTERN_C const GUID GUID_COMPARTMENT_PERSISTMENUENABLED;
571 EXTERN_C const GUID GUID_COMPARTMENT_EMPTYCONTEXT;
572 EXTERN_C const GUID GUID_COMPARTMENT_TIPUISTATUS;
573 EXTERN_C const GUID GUID_TFCAT_TIP_KEYBOARD;
574 EXTERN_C const GUID GUID_TFCAT_TIP_SPEECH;
575 EXTERN_C const GUID GUID_TFCAT_TIP_HANDWRITING;
576 EXTERN_C const GUID GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER;
577 typedef DWORD TfEditCookie;
578 typedef DWORD TfClientId;
579 typedef DWORD TfGuidAtom;
580 #define TF_MOD_ALT                   0x0001
581 #define TF_MOD_CONTROL               0x0002
582 #define TF_MOD_SHIFT                 0x0004
583 #define TF_MOD_RALT                  0x0008
584 #define TF_MOD_RCONTROL              0x0010
585 #define TF_MOD_RSHIFT                0x0020
586 #define TF_MOD_LALT                  0x0040
587 #define TF_MOD_LCONTROL              0x0080
588 #define TF_MOD_LSHIFT                0x0100
589 #define TF_MOD_ON_KEYUP              0x0200
590 #define TF_MOD_IGNORE_ALL_MODIFIER   0x0400
591 #define TF_PROFILETYPE_INPUTPROCESSOR  0x0001
592 #define TF_PROFILETYPE_KEYBOARDLAYOUT  0x0002
593 #define TF_IPSINK_FLAG_ACTIVE 0x0001
594 #ifndef __ITfDocumentMgr_FWD_DEFINED__
595 #define __ITfDocumentMgr_FWD_DEFINED__
596 typedef interface ITfDocumentMgr ITfDocumentMgr;
597 #ifdef __cplusplus
598 interface ITfDocumentMgr;
599 #endif /* __cplusplus */
600 #endif
601 
602 #ifndef __ITfContext_FWD_DEFINED__
603 #define __ITfContext_FWD_DEFINED__
604 typedef interface ITfContext ITfContext;
605 #ifdef __cplusplus
606 interface ITfContext;
607 #endif /* __cplusplus */
608 #endif
609 
610 #ifndef __IEnumTfDocumentMgrs_FWD_DEFINED__
611 #define __IEnumTfDocumentMgrs_FWD_DEFINED__
612 typedef interface IEnumTfDocumentMgrs IEnumTfDocumentMgrs;
613 #ifdef __cplusplus
614 interface IEnumTfDocumentMgrs;
615 #endif /* __cplusplus */
616 #endif
617 
618 #ifndef __IEnumTfContexts_FWD_DEFINED__
619 #define __IEnumTfContexts_FWD_DEFINED__
620 typedef interface IEnumTfContexts IEnumTfContexts;
621 #ifdef __cplusplus
622 interface IEnumTfContexts;
623 #endif /* __cplusplus */
624 #endif
625 
626 #ifndef __ITfCompartmentMgr_FWD_DEFINED__
627 #define __ITfCompartmentMgr_FWD_DEFINED__
628 typedef interface ITfCompartmentMgr ITfCompartmentMgr;
629 #ifdef __cplusplus
630 interface ITfCompartmentMgr;
631 #endif /* __cplusplus */
632 #endif
633 
634 #ifndef __ITfEditSession_FWD_DEFINED__
635 #define __ITfEditSession_FWD_DEFINED__
636 typedef interface ITfEditSession ITfEditSession;
637 #ifdef __cplusplus
638 interface ITfEditSession;
639 #endif /* __cplusplus */
640 #endif
641 
642 #ifndef __ITfRange_FWD_DEFINED__
643 #define __ITfRange_FWD_DEFINED__
644 typedef interface ITfRange ITfRange;
645 #ifdef __cplusplus
646 interface ITfRange;
647 #endif /* __cplusplus */
648 #endif
649 
650 #ifndef __ITfProperty_FWD_DEFINED__
651 #define __ITfProperty_FWD_DEFINED__
652 typedef interface ITfProperty ITfProperty;
653 #ifdef __cplusplus
654 interface ITfProperty;
655 #endif /* __cplusplus */
656 #endif
657 
658 #ifndef __ITfReadOnlyProperty_FWD_DEFINED__
659 #define __ITfReadOnlyProperty_FWD_DEFINED__
660 typedef interface ITfReadOnlyProperty ITfReadOnlyProperty;
661 #ifdef __cplusplus
662 interface ITfReadOnlyProperty;
663 #endif /* __cplusplus */
664 #endif
665 
666 #ifndef __IEnumTfLanguageProfiles_FWD_DEFINED__
667 #define __IEnumTfLanguageProfiles_FWD_DEFINED__
668 typedef interface IEnumTfLanguageProfiles IEnumTfLanguageProfiles;
669 #ifdef __cplusplus
670 interface IEnumTfLanguageProfiles;
671 #endif /* __cplusplus */
672 #endif
673 
674 #ifndef __ITfCompositionView_FWD_DEFINED__
675 #define __ITfCompositionView_FWD_DEFINED__
676 typedef interface ITfCompositionView ITfCompositionView;
677 #ifdef __cplusplus
678 interface ITfCompositionView;
679 #endif /* __cplusplus */
680 #endif
681 
682 #ifndef __ITfKeyEventSink_FWD_DEFINED__
683 #define __ITfKeyEventSink_FWD_DEFINED__
684 typedef interface ITfKeyEventSink ITfKeyEventSink;
685 #ifdef __cplusplus
686 interface ITfKeyEventSink;
687 #endif /* __cplusplus */
688 #endif
689 
690 #ifndef __ITfPersistentPropertyLoaderACP_FWD_DEFINED__
691 #define __ITfPersistentPropertyLoaderACP_FWD_DEFINED__
692 typedef interface ITfPersistentPropertyLoaderACP ITfPersistentPropertyLoaderACP;
693 #ifdef __cplusplus
694 interface ITfPersistentPropertyLoaderACP;
695 #endif /* __cplusplus */
696 #endif
697 
698 #ifndef __ITfRangeACP_FWD_DEFINED__
699 #define __ITfRangeACP_FWD_DEFINED__
700 typedef interface ITfRangeACP ITfRangeACP;
701 #ifdef __cplusplus
702 interface ITfRangeACP;
703 #endif /* __cplusplus */
704 #endif
705 
706 #if 0
707 typedef UINT_PTR HKL;
708 #endif
709 typedef struct TF_PERSISTENT_PROPERTY_HEADER_ACP {
710     GUID guidType;
711     LONG ichStart;
712     LONG cch;
713     ULONG cb;
714     DWORD dwPrivate;
715     CLSID clsidTIP;
716 } TF_PERSISTENT_PROPERTY_HEADER_ACP;
717 typedef struct TF_LANGUAGEPROFILE {
718     CLSID clsid;
719     LANGID langid;
720     GUID catid;
721     WINBOOL fActive;
722     GUID guidProfile;
723 } TF_LANGUAGEPROFILE;
724 typedef struct TF_PRESERVEDKEY {
725     UINT uVKey;
726     UINT uModifiers;
727 } TF_PRESERVEDKEY;
728 typedef enum __WIDL_msctf_generated_name_00000012 {
729     TF_ANCHOR_START = 0,
730     TF_ANCHOR_END = 1
731 } TfAnchor;
732 /*****************************************************************************
733  * ITfFunctionProvider interface
734  */
735 #ifndef __ITfFunctionProvider_INTERFACE_DEFINED__
736 #define __ITfFunctionProvider_INTERFACE_DEFINED__
737 
738 DEFINE_GUID(IID_ITfFunctionProvider, 0x101d6610, 0x0990, 0x11d3, 0x8d,0xf0, 0x00,0x10,0x5a,0x27,0x99,0xb5);
739 #if defined(__cplusplus) && !defined(CINTERFACE)
740 MIDL_INTERFACE("101d6610-0990-11d3-8df0-00105a2799b5")
741 ITfFunctionProvider : public IUnknown
742 {
743     virtual HRESULT STDMETHODCALLTYPE GetType(
744         GUID *guid) = 0;
745 
746     virtual HRESULT STDMETHODCALLTYPE GetDescription(
747         BSTR *desc) = 0;
748 
749     virtual HRESULT STDMETHODCALLTYPE GetFunction(
750         REFGUID guid,
751         REFIID riid,
752         IUnknown **func) = 0;
753 
754 };
755 #ifdef __CRT_UUID_DECL
756 __CRT_UUID_DECL(ITfFunctionProvider, 0x101d6610, 0x0990, 0x11d3, 0x8d,0xf0, 0x00,0x10,0x5a,0x27,0x99,0xb5)
757 #endif
758 #else
759 typedef struct ITfFunctionProviderVtbl {
760     BEGIN_INTERFACE
761 
762     /*** IUnknown methods ***/
763     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
764         ITfFunctionProvider *This,
765         REFIID riid,
766         void **ppvObject);
767 
768     ULONG (STDMETHODCALLTYPE *AddRef)(
769         ITfFunctionProvider *This);
770 
771     ULONG (STDMETHODCALLTYPE *Release)(
772         ITfFunctionProvider *This);
773 
774     /*** ITfFunctionProvider methods ***/
775     HRESULT (STDMETHODCALLTYPE *GetType)(
776         ITfFunctionProvider *This,
777         GUID *guid);
778 
779     HRESULT (STDMETHODCALLTYPE *GetDescription)(
780         ITfFunctionProvider *This,
781         BSTR *desc);
782 
783     HRESULT (STDMETHODCALLTYPE *GetFunction)(
784         ITfFunctionProvider *This,
785         REFGUID guid,
786         REFIID riid,
787         IUnknown **func);
788 
789     END_INTERFACE
790 } ITfFunctionProviderVtbl;
791 
792 interface ITfFunctionProvider {
793     CONST_VTBL ITfFunctionProviderVtbl* lpVtbl;
794 };
795 
796 #ifdef COBJMACROS
797 #ifndef WIDL_C_INLINE_WRAPPERS
798 /*** IUnknown methods ***/
799 #define ITfFunctionProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
800 #define ITfFunctionProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
801 #define ITfFunctionProvider_Release(This) (This)->lpVtbl->Release(This)
802 /*** ITfFunctionProvider methods ***/
803 #define ITfFunctionProvider_GetType(This,guid) (This)->lpVtbl->GetType(This,guid)
804 #define ITfFunctionProvider_GetDescription(This,desc) (This)->lpVtbl->GetDescription(This,desc)
805 #define ITfFunctionProvider_GetFunction(This,guid,riid,func) (This)->lpVtbl->GetFunction(This,guid,riid,func)
806 #else
807 /*** IUnknown methods ***/
808 static FORCEINLINE HRESULT ITfFunctionProvider_QueryInterface(ITfFunctionProvider* This,REFIID riid,void **ppvObject) {
809     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
810 }
811 static FORCEINLINE ULONG ITfFunctionProvider_AddRef(ITfFunctionProvider* This) {
812     return This->lpVtbl->AddRef(This);
813 }
814 static FORCEINLINE ULONG ITfFunctionProvider_Release(ITfFunctionProvider* This) {
815     return This->lpVtbl->Release(This);
816 }
817 /*** ITfFunctionProvider methods ***/
818 static FORCEINLINE HRESULT ITfFunctionProvider_GetType(ITfFunctionProvider* This,GUID *guid) {
819     return This->lpVtbl->GetType(This,guid);
820 }
821 static FORCEINLINE HRESULT ITfFunctionProvider_GetDescription(ITfFunctionProvider* This,BSTR *desc) {
822     return This->lpVtbl->GetDescription(This,desc);
823 }
824 static FORCEINLINE HRESULT ITfFunctionProvider_GetFunction(ITfFunctionProvider* This,REFGUID guid,REFIID riid,IUnknown **func) {
825     return This->lpVtbl->GetFunction(This,guid,riid,func);
826 }
827 #endif
828 #endif
829 
830 #endif
831 
832 
833 #endif  /* __ITfFunctionProvider_INTERFACE_DEFINED__ */
834 
835 /*****************************************************************************
836  * IEnumTfFunctionProviders interface
837  */
838 #ifndef __IEnumTfFunctionProviders_INTERFACE_DEFINED__
839 #define __IEnumTfFunctionProviders_INTERFACE_DEFINED__
840 
841 DEFINE_GUID(IID_IEnumTfFunctionProviders, 0xe4b24db0, 0x0990, 0x11d3, 0x8d,0xf0, 0x00,0x10,0x5a,0x27,0x99,0xb5);
842 #if defined(__cplusplus) && !defined(CINTERFACE)
843 MIDL_INTERFACE("e4b24db0-0990-11d3-8df0-00105a2799b5")
844 IEnumTfFunctionProviders : public IUnknown
845 {
846     virtual HRESULT STDMETHODCALLTYPE Clone(
847         IEnumTfFunctionProviders **ret) = 0;
848 
849     virtual HRESULT STDMETHODCALLTYPE Next(
850         ULONG count,
851         ITfFunctionProvider **prov,
852         ULONG *fetched) = 0;
853 
854     virtual HRESULT STDMETHODCALLTYPE Reset(
855         ) = 0;
856 
857     virtual HRESULT STDMETHODCALLTYPE Skip(
858         ULONG count) = 0;
859 
860 };
861 #ifdef __CRT_UUID_DECL
862 __CRT_UUID_DECL(IEnumTfFunctionProviders, 0xe4b24db0, 0x0990, 0x11d3, 0x8d,0xf0, 0x00,0x10,0x5a,0x27,0x99,0xb5)
863 #endif
864 #else
865 typedef struct IEnumTfFunctionProvidersVtbl {
866     BEGIN_INTERFACE
867 
868     /*** IUnknown methods ***/
869     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
870         IEnumTfFunctionProviders *This,
871         REFIID riid,
872         void **ppvObject);
873 
874     ULONG (STDMETHODCALLTYPE *AddRef)(
875         IEnumTfFunctionProviders *This);
876 
877     ULONG (STDMETHODCALLTYPE *Release)(
878         IEnumTfFunctionProviders *This);
879 
880     /*** IEnumTfFunctionProviders methods ***/
881     HRESULT (STDMETHODCALLTYPE *Clone)(
882         IEnumTfFunctionProviders *This,
883         IEnumTfFunctionProviders **ret);
884 
885     HRESULT (STDMETHODCALLTYPE *Next)(
886         IEnumTfFunctionProviders *This,
887         ULONG count,
888         ITfFunctionProvider **prov,
889         ULONG *fetched);
890 
891     HRESULT (STDMETHODCALLTYPE *Reset)(
892         IEnumTfFunctionProviders *This);
893 
894     HRESULT (STDMETHODCALLTYPE *Skip)(
895         IEnumTfFunctionProviders *This,
896         ULONG count);
897 
898     END_INTERFACE
899 } IEnumTfFunctionProvidersVtbl;
900 
901 interface IEnumTfFunctionProviders {
902     CONST_VTBL IEnumTfFunctionProvidersVtbl* lpVtbl;
903 };
904 
905 #ifdef COBJMACROS
906 #ifndef WIDL_C_INLINE_WRAPPERS
907 /*** IUnknown methods ***/
908 #define IEnumTfFunctionProviders_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
909 #define IEnumTfFunctionProviders_AddRef(This) (This)->lpVtbl->AddRef(This)
910 #define IEnumTfFunctionProviders_Release(This) (This)->lpVtbl->Release(This)
911 /*** IEnumTfFunctionProviders methods ***/
912 #define IEnumTfFunctionProviders_Clone(This,ret) (This)->lpVtbl->Clone(This,ret)
913 #define IEnumTfFunctionProviders_Next(This,count,prov,fetched) (This)->lpVtbl->Next(This,count,prov,fetched)
914 #define IEnumTfFunctionProviders_Reset(This) (This)->lpVtbl->Reset(This)
915 #define IEnumTfFunctionProviders_Skip(This,count) (This)->lpVtbl->Skip(This,count)
916 #else
917 /*** IUnknown methods ***/
918 static FORCEINLINE HRESULT IEnumTfFunctionProviders_QueryInterface(IEnumTfFunctionProviders* This,REFIID riid,void **ppvObject) {
919     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
920 }
921 static FORCEINLINE ULONG IEnumTfFunctionProviders_AddRef(IEnumTfFunctionProviders* This) {
922     return This->lpVtbl->AddRef(This);
923 }
924 static FORCEINLINE ULONG IEnumTfFunctionProviders_Release(IEnumTfFunctionProviders* This) {
925     return This->lpVtbl->Release(This);
926 }
927 /*** IEnumTfFunctionProviders methods ***/
928 static FORCEINLINE HRESULT IEnumTfFunctionProviders_Clone(IEnumTfFunctionProviders* This,IEnumTfFunctionProviders **ret) {
929     return This->lpVtbl->Clone(This,ret);
930 }
931 static FORCEINLINE HRESULT IEnumTfFunctionProviders_Next(IEnumTfFunctionProviders* This,ULONG count,ITfFunctionProvider **prov,ULONG *fetched) {
932     return This->lpVtbl->Next(This,count,prov,fetched);
933 }
934 static FORCEINLINE HRESULT IEnumTfFunctionProviders_Reset(IEnumTfFunctionProviders* This) {
935     return This->lpVtbl->Reset(This);
936 }
937 static FORCEINLINE HRESULT IEnumTfFunctionProviders_Skip(IEnumTfFunctionProviders* This,ULONG count) {
938     return This->lpVtbl->Skip(This,count);
939 }
940 #endif
941 #endif
942 
943 #endif
944 
945 
946 #endif  /* __IEnumTfFunctionProviders_INTERFACE_DEFINED__ */
947 
948 /*****************************************************************************
949  * ITfThreadMgr interface
950  */
951 #ifndef __ITfThreadMgr_INTERFACE_DEFINED__
952 #define __ITfThreadMgr_INTERFACE_DEFINED__
953 
954 DEFINE_GUID(IID_ITfThreadMgr, 0xaa80e801, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
955 #if defined(__cplusplus) && !defined(CINTERFACE)
956 MIDL_INTERFACE("aa80e801-2021-11d2-93e0-0060b067b86e")
957 ITfThreadMgr : public IUnknown
958 {
959     virtual HRESULT STDMETHODCALLTYPE Activate(
960         TfClientId *ptid) = 0;
961 
962     virtual HRESULT STDMETHODCALLTYPE Deactivate(
963         ) = 0;
964 
965     virtual HRESULT STDMETHODCALLTYPE CreateDocumentMgr(
966         ITfDocumentMgr **ppdim) = 0;
967 
968     virtual HRESULT STDMETHODCALLTYPE EnumDocumentMgrs(
969         IEnumTfDocumentMgrs **ppEnum) = 0;
970 
971     virtual HRESULT STDMETHODCALLTYPE GetFocus(
972         ITfDocumentMgr **ppdimFocus) = 0;
973 
974     virtual HRESULT STDMETHODCALLTYPE SetFocus(
975         ITfDocumentMgr *pdimFocus) = 0;
976 
977     virtual HRESULT STDMETHODCALLTYPE AssociateFocus(
978         HWND hwnd,
979         ITfDocumentMgr *pdimNew,
980         ITfDocumentMgr **ppdimPrev) = 0;
981 
982     virtual HRESULT STDMETHODCALLTYPE IsThreadFocus(
983         WINBOOL *pfThreadFocus) = 0;
984 
985     virtual HRESULT STDMETHODCALLTYPE GetFunctionProvider(
986         REFCLSID clsid,
987         ITfFunctionProvider **ppFuncProv) = 0;
988 
989     virtual HRESULT STDMETHODCALLTYPE EnumFunctionProviders(
990         IEnumTfFunctionProviders **ppEnum) = 0;
991 
992     virtual HRESULT STDMETHODCALLTYPE GetGlobalCompartment(
993         ITfCompartmentMgr **ppCompMgr) = 0;
994 
995 };
996 #ifdef __CRT_UUID_DECL
997 __CRT_UUID_DECL(ITfThreadMgr, 0xaa80e801, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
998 #endif
999 #else
1000 typedef struct ITfThreadMgrVtbl {
1001     BEGIN_INTERFACE
1002 
1003     /*** IUnknown methods ***/
1004     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1005         ITfThreadMgr *This,
1006         REFIID riid,
1007         void **ppvObject);
1008 
1009     ULONG (STDMETHODCALLTYPE *AddRef)(
1010         ITfThreadMgr *This);
1011 
1012     ULONG (STDMETHODCALLTYPE *Release)(
1013         ITfThreadMgr *This);
1014 
1015     /*** ITfThreadMgr methods ***/
1016     HRESULT (STDMETHODCALLTYPE *Activate)(
1017         ITfThreadMgr *This,
1018         TfClientId *ptid);
1019 
1020     HRESULT (STDMETHODCALLTYPE *Deactivate)(
1021         ITfThreadMgr *This);
1022 
1023     HRESULT (STDMETHODCALLTYPE *CreateDocumentMgr)(
1024         ITfThreadMgr *This,
1025         ITfDocumentMgr **ppdim);
1026 
1027     HRESULT (STDMETHODCALLTYPE *EnumDocumentMgrs)(
1028         ITfThreadMgr *This,
1029         IEnumTfDocumentMgrs **ppEnum);
1030 
1031     HRESULT (STDMETHODCALLTYPE *GetFocus)(
1032         ITfThreadMgr *This,
1033         ITfDocumentMgr **ppdimFocus);
1034 
1035     HRESULT (STDMETHODCALLTYPE *SetFocus)(
1036         ITfThreadMgr *This,
1037         ITfDocumentMgr *pdimFocus);
1038 
1039     HRESULT (STDMETHODCALLTYPE *AssociateFocus)(
1040         ITfThreadMgr *This,
1041         HWND hwnd,
1042         ITfDocumentMgr *pdimNew,
1043         ITfDocumentMgr **ppdimPrev);
1044 
1045     HRESULT (STDMETHODCALLTYPE *IsThreadFocus)(
1046         ITfThreadMgr *This,
1047         WINBOOL *pfThreadFocus);
1048 
1049     HRESULT (STDMETHODCALLTYPE *GetFunctionProvider)(
1050         ITfThreadMgr *This,
1051         REFCLSID clsid,
1052         ITfFunctionProvider **ppFuncProv);
1053 
1054     HRESULT (STDMETHODCALLTYPE *EnumFunctionProviders)(
1055         ITfThreadMgr *This,
1056         IEnumTfFunctionProviders **ppEnum);
1057 
1058     HRESULT (STDMETHODCALLTYPE *GetGlobalCompartment)(
1059         ITfThreadMgr *This,
1060         ITfCompartmentMgr **ppCompMgr);
1061 
1062     END_INTERFACE
1063 } ITfThreadMgrVtbl;
1064 
1065 interface ITfThreadMgr {
1066     CONST_VTBL ITfThreadMgrVtbl* lpVtbl;
1067 };
1068 
1069 #ifdef COBJMACROS
1070 #ifndef WIDL_C_INLINE_WRAPPERS
1071 /*** IUnknown methods ***/
1072 #define ITfThreadMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1073 #define ITfThreadMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
1074 #define ITfThreadMgr_Release(This) (This)->lpVtbl->Release(This)
1075 /*** ITfThreadMgr methods ***/
1076 #define ITfThreadMgr_Activate(This,ptid) (This)->lpVtbl->Activate(This,ptid)
1077 #define ITfThreadMgr_Deactivate(This) (This)->lpVtbl->Deactivate(This)
1078 #define ITfThreadMgr_CreateDocumentMgr(This,ppdim) (This)->lpVtbl->CreateDocumentMgr(This,ppdim)
1079 #define ITfThreadMgr_EnumDocumentMgrs(This,ppEnum) (This)->lpVtbl->EnumDocumentMgrs(This,ppEnum)
1080 #define ITfThreadMgr_GetFocus(This,ppdimFocus) (This)->lpVtbl->GetFocus(This,ppdimFocus)
1081 #define ITfThreadMgr_SetFocus(This,pdimFocus) (This)->lpVtbl->SetFocus(This,pdimFocus)
1082 #define ITfThreadMgr_AssociateFocus(This,hwnd,pdimNew,ppdimPrev) (This)->lpVtbl->AssociateFocus(This,hwnd,pdimNew,ppdimPrev)
1083 #define ITfThreadMgr_IsThreadFocus(This,pfThreadFocus) (This)->lpVtbl->IsThreadFocus(This,pfThreadFocus)
1084 #define ITfThreadMgr_GetFunctionProvider(This,clsid,ppFuncProv) (This)->lpVtbl->GetFunctionProvider(This,clsid,ppFuncProv)
1085 #define ITfThreadMgr_EnumFunctionProviders(This,ppEnum) (This)->lpVtbl->EnumFunctionProviders(This,ppEnum)
1086 #define ITfThreadMgr_GetGlobalCompartment(This,ppCompMgr) (This)->lpVtbl->GetGlobalCompartment(This,ppCompMgr)
1087 #else
1088 /*** IUnknown methods ***/
1089 static FORCEINLINE HRESULT ITfThreadMgr_QueryInterface(ITfThreadMgr* This,REFIID riid,void **ppvObject) {
1090     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1091 }
1092 static FORCEINLINE ULONG ITfThreadMgr_AddRef(ITfThreadMgr* This) {
1093     return This->lpVtbl->AddRef(This);
1094 }
1095 static FORCEINLINE ULONG ITfThreadMgr_Release(ITfThreadMgr* This) {
1096     return This->lpVtbl->Release(This);
1097 }
1098 /*** ITfThreadMgr methods ***/
1099 static FORCEINLINE HRESULT ITfThreadMgr_Activate(ITfThreadMgr* This,TfClientId *ptid) {
1100     return This->lpVtbl->Activate(This,ptid);
1101 }
1102 static FORCEINLINE HRESULT ITfThreadMgr_Deactivate(ITfThreadMgr* This) {
1103     return This->lpVtbl->Deactivate(This);
1104 }
1105 static FORCEINLINE HRESULT ITfThreadMgr_CreateDocumentMgr(ITfThreadMgr* This,ITfDocumentMgr **ppdim) {
1106     return This->lpVtbl->CreateDocumentMgr(This,ppdim);
1107 }
1108 static FORCEINLINE HRESULT ITfThreadMgr_EnumDocumentMgrs(ITfThreadMgr* This,IEnumTfDocumentMgrs **ppEnum) {
1109     return This->lpVtbl->EnumDocumentMgrs(This,ppEnum);
1110 }
1111 static FORCEINLINE HRESULT ITfThreadMgr_GetFocus(ITfThreadMgr* This,ITfDocumentMgr **ppdimFocus) {
1112     return This->lpVtbl->GetFocus(This,ppdimFocus);
1113 }
1114 static FORCEINLINE HRESULT ITfThreadMgr_SetFocus(ITfThreadMgr* This,ITfDocumentMgr *pdimFocus) {
1115     return This->lpVtbl->SetFocus(This,pdimFocus);
1116 }
1117 static FORCEINLINE HRESULT ITfThreadMgr_AssociateFocus(ITfThreadMgr* This,HWND hwnd,ITfDocumentMgr *pdimNew,ITfDocumentMgr **ppdimPrev) {
1118     return This->lpVtbl->AssociateFocus(This,hwnd,pdimNew,ppdimPrev);
1119 }
1120 static FORCEINLINE HRESULT ITfThreadMgr_IsThreadFocus(ITfThreadMgr* This,WINBOOL *pfThreadFocus) {
1121     return This->lpVtbl->IsThreadFocus(This,pfThreadFocus);
1122 }
1123 static FORCEINLINE HRESULT ITfThreadMgr_GetFunctionProvider(ITfThreadMgr* This,REFCLSID clsid,ITfFunctionProvider **ppFuncProv) {
1124     return This->lpVtbl->GetFunctionProvider(This,clsid,ppFuncProv);
1125 }
1126 static FORCEINLINE HRESULT ITfThreadMgr_EnumFunctionProviders(ITfThreadMgr* This,IEnumTfFunctionProviders **ppEnum) {
1127     return This->lpVtbl->EnumFunctionProviders(This,ppEnum);
1128 }
1129 static FORCEINLINE HRESULT ITfThreadMgr_GetGlobalCompartment(ITfThreadMgr* This,ITfCompartmentMgr **ppCompMgr) {
1130     return This->lpVtbl->GetGlobalCompartment(This,ppCompMgr);
1131 }
1132 #endif
1133 #endif
1134 
1135 #endif
1136 
1137 
1138 #endif  /* __ITfThreadMgr_INTERFACE_DEFINED__ */
1139 
1140 /*****************************************************************************
1141  * ITfThreadMgrEx interface
1142  */
1143 #ifndef __ITfThreadMgrEx_INTERFACE_DEFINED__
1144 #define __ITfThreadMgrEx_INTERFACE_DEFINED__
1145 
1146 DEFINE_GUID(IID_ITfThreadMgrEx, 0x3e90ade3, 0x7594, 0x4cb0, 0xbb,0x58, 0x69,0x62,0x8f,0x5f,0x45,0x8c);
1147 #if defined(__cplusplus) && !defined(CINTERFACE)
1148 MIDL_INTERFACE("3e90ade3-7594-4cb0-bb58-69628f5f458c")
1149 ITfThreadMgrEx : public ITfThreadMgr
1150 {
1151     virtual HRESULT STDMETHODCALLTYPE ActivateEx(
1152         TfClientId *id,
1153         DWORD flags) = 0;
1154 
1155     virtual HRESULT STDMETHODCALLTYPE GetActiveFlags(
1156         DWORD *flags) = 0;
1157 
1158 };
1159 #ifdef __CRT_UUID_DECL
1160 __CRT_UUID_DECL(ITfThreadMgrEx, 0x3e90ade3, 0x7594, 0x4cb0, 0xbb,0x58, 0x69,0x62,0x8f,0x5f,0x45,0x8c)
1161 #endif
1162 #else
1163 typedef struct ITfThreadMgrExVtbl {
1164     BEGIN_INTERFACE
1165 
1166     /*** IUnknown methods ***/
1167     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1168         ITfThreadMgrEx *This,
1169         REFIID riid,
1170         void **ppvObject);
1171 
1172     ULONG (STDMETHODCALLTYPE *AddRef)(
1173         ITfThreadMgrEx *This);
1174 
1175     ULONG (STDMETHODCALLTYPE *Release)(
1176         ITfThreadMgrEx *This);
1177 
1178     /*** ITfThreadMgr methods ***/
1179     HRESULT (STDMETHODCALLTYPE *Activate)(
1180         ITfThreadMgrEx *This,
1181         TfClientId *ptid);
1182 
1183     HRESULT (STDMETHODCALLTYPE *Deactivate)(
1184         ITfThreadMgrEx *This);
1185 
1186     HRESULT (STDMETHODCALLTYPE *CreateDocumentMgr)(
1187         ITfThreadMgrEx *This,
1188         ITfDocumentMgr **ppdim);
1189 
1190     HRESULT (STDMETHODCALLTYPE *EnumDocumentMgrs)(
1191         ITfThreadMgrEx *This,
1192         IEnumTfDocumentMgrs **ppEnum);
1193 
1194     HRESULT (STDMETHODCALLTYPE *GetFocus)(
1195         ITfThreadMgrEx *This,
1196         ITfDocumentMgr **ppdimFocus);
1197 
1198     HRESULT (STDMETHODCALLTYPE *SetFocus)(
1199         ITfThreadMgrEx *This,
1200         ITfDocumentMgr *pdimFocus);
1201 
1202     HRESULT (STDMETHODCALLTYPE *AssociateFocus)(
1203         ITfThreadMgrEx *This,
1204         HWND hwnd,
1205         ITfDocumentMgr *pdimNew,
1206         ITfDocumentMgr **ppdimPrev);
1207 
1208     HRESULT (STDMETHODCALLTYPE *IsThreadFocus)(
1209         ITfThreadMgrEx *This,
1210         WINBOOL *pfThreadFocus);
1211 
1212     HRESULT (STDMETHODCALLTYPE *GetFunctionProvider)(
1213         ITfThreadMgrEx *This,
1214         REFCLSID clsid,
1215         ITfFunctionProvider **ppFuncProv);
1216 
1217     HRESULT (STDMETHODCALLTYPE *EnumFunctionProviders)(
1218         ITfThreadMgrEx *This,
1219         IEnumTfFunctionProviders **ppEnum);
1220 
1221     HRESULT (STDMETHODCALLTYPE *GetGlobalCompartment)(
1222         ITfThreadMgrEx *This,
1223         ITfCompartmentMgr **ppCompMgr);
1224 
1225     /*** ITfThreadMgrEx methods ***/
1226     HRESULT (STDMETHODCALLTYPE *ActivateEx)(
1227         ITfThreadMgrEx *This,
1228         TfClientId *id,
1229         DWORD flags);
1230 
1231     HRESULT (STDMETHODCALLTYPE *GetActiveFlags)(
1232         ITfThreadMgrEx *This,
1233         DWORD *flags);
1234 
1235     END_INTERFACE
1236 } ITfThreadMgrExVtbl;
1237 
1238 interface ITfThreadMgrEx {
1239     CONST_VTBL ITfThreadMgrExVtbl* lpVtbl;
1240 };
1241 
1242 #ifdef COBJMACROS
1243 #ifndef WIDL_C_INLINE_WRAPPERS
1244 /*** IUnknown methods ***/
1245 #define ITfThreadMgrEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1246 #define ITfThreadMgrEx_AddRef(This) (This)->lpVtbl->AddRef(This)
1247 #define ITfThreadMgrEx_Release(This) (This)->lpVtbl->Release(This)
1248 /*** ITfThreadMgr methods ***/
1249 #define ITfThreadMgrEx_Activate(This,ptid) (This)->lpVtbl->Activate(This,ptid)
1250 #define ITfThreadMgrEx_Deactivate(This) (This)->lpVtbl->Deactivate(This)
1251 #define ITfThreadMgrEx_CreateDocumentMgr(This,ppdim) (This)->lpVtbl->CreateDocumentMgr(This,ppdim)
1252 #define ITfThreadMgrEx_EnumDocumentMgrs(This,ppEnum) (This)->lpVtbl->EnumDocumentMgrs(This,ppEnum)
1253 #define ITfThreadMgrEx_GetFocus(This,ppdimFocus) (This)->lpVtbl->GetFocus(This,ppdimFocus)
1254 #define ITfThreadMgrEx_SetFocus(This,pdimFocus) (This)->lpVtbl->SetFocus(This,pdimFocus)
1255 #define ITfThreadMgrEx_AssociateFocus(This,hwnd,pdimNew,ppdimPrev) (This)->lpVtbl->AssociateFocus(This,hwnd,pdimNew,ppdimPrev)
1256 #define ITfThreadMgrEx_IsThreadFocus(This,pfThreadFocus) (This)->lpVtbl->IsThreadFocus(This,pfThreadFocus)
1257 #define ITfThreadMgrEx_GetFunctionProvider(This,clsid,ppFuncProv) (This)->lpVtbl->GetFunctionProvider(This,clsid,ppFuncProv)
1258 #define ITfThreadMgrEx_EnumFunctionProviders(This,ppEnum) (This)->lpVtbl->EnumFunctionProviders(This,ppEnum)
1259 #define ITfThreadMgrEx_GetGlobalCompartment(This,ppCompMgr) (This)->lpVtbl->GetGlobalCompartment(This,ppCompMgr)
1260 /*** ITfThreadMgrEx methods ***/
1261 #define ITfThreadMgrEx_ActivateEx(This,id,flags) (This)->lpVtbl->ActivateEx(This,id,flags)
1262 #define ITfThreadMgrEx_GetActiveFlags(This,flags) (This)->lpVtbl->GetActiveFlags(This,flags)
1263 #else
1264 /*** IUnknown methods ***/
1265 static FORCEINLINE HRESULT ITfThreadMgrEx_QueryInterface(ITfThreadMgrEx* This,REFIID riid,void **ppvObject) {
1266     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1267 }
1268 static FORCEINLINE ULONG ITfThreadMgrEx_AddRef(ITfThreadMgrEx* This) {
1269     return This->lpVtbl->AddRef(This);
1270 }
1271 static FORCEINLINE ULONG ITfThreadMgrEx_Release(ITfThreadMgrEx* This) {
1272     return This->lpVtbl->Release(This);
1273 }
1274 /*** ITfThreadMgr methods ***/
1275 static FORCEINLINE HRESULT ITfThreadMgrEx_Activate(ITfThreadMgrEx* This,TfClientId *ptid) {
1276     return This->lpVtbl->Activate(This,ptid);
1277 }
1278 static FORCEINLINE HRESULT ITfThreadMgrEx_Deactivate(ITfThreadMgrEx* This) {
1279     return This->lpVtbl->Deactivate(This);
1280 }
1281 static FORCEINLINE HRESULT ITfThreadMgrEx_CreateDocumentMgr(ITfThreadMgrEx* This,ITfDocumentMgr **ppdim) {
1282     return This->lpVtbl->CreateDocumentMgr(This,ppdim);
1283 }
1284 static FORCEINLINE HRESULT ITfThreadMgrEx_EnumDocumentMgrs(ITfThreadMgrEx* This,IEnumTfDocumentMgrs **ppEnum) {
1285     return This->lpVtbl->EnumDocumentMgrs(This,ppEnum);
1286 }
1287 static FORCEINLINE HRESULT ITfThreadMgrEx_GetFocus(ITfThreadMgrEx* This,ITfDocumentMgr **ppdimFocus) {
1288     return This->lpVtbl->GetFocus(This,ppdimFocus);
1289 }
1290 static FORCEINLINE HRESULT ITfThreadMgrEx_SetFocus(ITfThreadMgrEx* This,ITfDocumentMgr *pdimFocus) {
1291     return This->lpVtbl->SetFocus(This,pdimFocus);
1292 }
1293 static FORCEINLINE HRESULT ITfThreadMgrEx_AssociateFocus(ITfThreadMgrEx* This,HWND hwnd,ITfDocumentMgr *pdimNew,ITfDocumentMgr **ppdimPrev) {
1294     return This->lpVtbl->AssociateFocus(This,hwnd,pdimNew,ppdimPrev);
1295 }
1296 static FORCEINLINE HRESULT ITfThreadMgrEx_IsThreadFocus(ITfThreadMgrEx* This,WINBOOL *pfThreadFocus) {
1297     return This->lpVtbl->IsThreadFocus(This,pfThreadFocus);
1298 }
1299 static FORCEINLINE HRESULT ITfThreadMgrEx_GetFunctionProvider(ITfThreadMgrEx* This,REFCLSID clsid,ITfFunctionProvider **ppFuncProv) {
1300     return This->lpVtbl->GetFunctionProvider(This,clsid,ppFuncProv);
1301 }
1302 static FORCEINLINE HRESULT ITfThreadMgrEx_EnumFunctionProviders(ITfThreadMgrEx* This,IEnumTfFunctionProviders **ppEnum) {
1303     return This->lpVtbl->EnumFunctionProviders(This,ppEnum);
1304 }
1305 static FORCEINLINE HRESULT ITfThreadMgrEx_GetGlobalCompartment(ITfThreadMgrEx* This,ITfCompartmentMgr **ppCompMgr) {
1306     return This->lpVtbl->GetGlobalCompartment(This,ppCompMgr);
1307 }
1308 /*** ITfThreadMgrEx methods ***/
1309 static FORCEINLINE HRESULT ITfThreadMgrEx_ActivateEx(ITfThreadMgrEx* This,TfClientId *id,DWORD flags) {
1310     return This->lpVtbl->ActivateEx(This,id,flags);
1311 }
1312 static FORCEINLINE HRESULT ITfThreadMgrEx_GetActiveFlags(ITfThreadMgrEx* This,DWORD *flags) {
1313     return This->lpVtbl->GetActiveFlags(This,flags);
1314 }
1315 #endif
1316 #endif
1317 
1318 #endif
1319 
1320 
1321 #endif  /* __ITfThreadMgrEx_INTERFACE_DEFINED__ */
1322 
1323 /*****************************************************************************
1324  * ITfCompositionView interface
1325  */
1326 #ifndef __ITfCompositionView_INTERFACE_DEFINED__
1327 #define __ITfCompositionView_INTERFACE_DEFINED__
1328 
1329 DEFINE_GUID(IID_ITfCompositionView, 0xd7540241, 0xf9a1, 0x4364, 0xbe,0xfc, 0xdb,0xcd,0x2c,0x43,0x95,0xb7);
1330 #if defined(__cplusplus) && !defined(CINTERFACE)
1331 MIDL_INTERFACE("d7540241-f9a1-4364-befc-dbcd2c4395b7")
1332 ITfCompositionView : public IUnknown
1333 {
1334     virtual HRESULT STDMETHODCALLTYPE GetOwnerClsid(
1335         CLSID *pclsid) = 0;
1336 
1337     virtual HRESULT STDMETHODCALLTYPE GetRange(
1338         ITfRange **ppRange) = 0;
1339 
1340 };
1341 #ifdef __CRT_UUID_DECL
1342 __CRT_UUID_DECL(ITfCompositionView, 0xd7540241, 0xf9a1, 0x4364, 0xbe,0xfc, 0xdb,0xcd,0x2c,0x43,0x95,0xb7)
1343 #endif
1344 #else
1345 typedef struct ITfCompositionViewVtbl {
1346     BEGIN_INTERFACE
1347 
1348     /*** IUnknown methods ***/
1349     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1350         ITfCompositionView *This,
1351         REFIID riid,
1352         void **ppvObject);
1353 
1354     ULONG (STDMETHODCALLTYPE *AddRef)(
1355         ITfCompositionView *This);
1356 
1357     ULONG (STDMETHODCALLTYPE *Release)(
1358         ITfCompositionView *This);
1359 
1360     /*** ITfCompositionView methods ***/
1361     HRESULT (STDMETHODCALLTYPE *GetOwnerClsid)(
1362         ITfCompositionView *This,
1363         CLSID *pclsid);
1364 
1365     HRESULT (STDMETHODCALLTYPE *GetRange)(
1366         ITfCompositionView *This,
1367         ITfRange **ppRange);
1368 
1369     END_INTERFACE
1370 } ITfCompositionViewVtbl;
1371 
1372 interface ITfCompositionView {
1373     CONST_VTBL ITfCompositionViewVtbl* lpVtbl;
1374 };
1375 
1376 #ifdef COBJMACROS
1377 #ifndef WIDL_C_INLINE_WRAPPERS
1378 /*** IUnknown methods ***/
1379 #define ITfCompositionView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1380 #define ITfCompositionView_AddRef(This) (This)->lpVtbl->AddRef(This)
1381 #define ITfCompositionView_Release(This) (This)->lpVtbl->Release(This)
1382 /*** ITfCompositionView methods ***/
1383 #define ITfCompositionView_GetOwnerClsid(This,pclsid) (This)->lpVtbl->GetOwnerClsid(This,pclsid)
1384 #define ITfCompositionView_GetRange(This,ppRange) (This)->lpVtbl->GetRange(This,ppRange)
1385 #else
1386 /*** IUnknown methods ***/
1387 static FORCEINLINE HRESULT ITfCompositionView_QueryInterface(ITfCompositionView* This,REFIID riid,void **ppvObject) {
1388     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1389 }
1390 static FORCEINLINE ULONG ITfCompositionView_AddRef(ITfCompositionView* This) {
1391     return This->lpVtbl->AddRef(This);
1392 }
1393 static FORCEINLINE ULONG ITfCompositionView_Release(ITfCompositionView* This) {
1394     return This->lpVtbl->Release(This);
1395 }
1396 /*** ITfCompositionView methods ***/
1397 static FORCEINLINE HRESULT ITfCompositionView_GetOwnerClsid(ITfCompositionView* This,CLSID *pclsid) {
1398     return This->lpVtbl->GetOwnerClsid(This,pclsid);
1399 }
1400 static FORCEINLINE HRESULT ITfCompositionView_GetRange(ITfCompositionView* This,ITfRange **ppRange) {
1401     return This->lpVtbl->GetRange(This,ppRange);
1402 }
1403 #endif
1404 #endif
1405 
1406 #endif
1407 
1408 
1409 #endif  /* __ITfCompositionView_INTERFACE_DEFINED__ */
1410 
1411 /*****************************************************************************
1412  * ITfDocumentMgr interface
1413  */
1414 #ifndef __ITfDocumentMgr_INTERFACE_DEFINED__
1415 #define __ITfDocumentMgr_INTERFACE_DEFINED__
1416 
1417 #define TF_POPF_ALL (0x1)
1418 
1419 DEFINE_GUID(IID_ITfDocumentMgr, 0xaa80e7f4, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
1420 #if defined(__cplusplus) && !defined(CINTERFACE)
1421 MIDL_INTERFACE("aa80e7f4-2021-11d2-93e0-0060b067b86e")
1422 ITfDocumentMgr : public IUnknown
1423 {
1424     virtual HRESULT STDMETHODCALLTYPE CreateContext(
1425         TfClientId tidOwner,
1426         DWORD dwFlags,
1427         IUnknown *punk,
1428         ITfContext **ppic,
1429         TfEditCookie *pecTextStore) = 0;
1430 
1431     virtual HRESULT STDMETHODCALLTYPE Push(
1432         ITfContext *pic) = 0;
1433 
1434     virtual HRESULT STDMETHODCALLTYPE Pop(
1435         DWORD dwFlags) = 0;
1436 
1437     virtual HRESULT STDMETHODCALLTYPE GetTop(
1438         ITfContext **ppic) = 0;
1439 
1440     virtual HRESULT STDMETHODCALLTYPE GetBase(
1441         ITfContext **ppic) = 0;
1442 
1443     virtual HRESULT STDMETHODCALLTYPE EnumContexts(
1444         IEnumTfContexts **ppEnum) = 0;
1445 
1446 };
1447 #ifdef __CRT_UUID_DECL
1448 __CRT_UUID_DECL(ITfDocumentMgr, 0xaa80e7f4, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
1449 #endif
1450 #else
1451 typedef struct ITfDocumentMgrVtbl {
1452     BEGIN_INTERFACE
1453 
1454     /*** IUnknown methods ***/
1455     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1456         ITfDocumentMgr *This,
1457         REFIID riid,
1458         void **ppvObject);
1459 
1460     ULONG (STDMETHODCALLTYPE *AddRef)(
1461         ITfDocumentMgr *This);
1462 
1463     ULONG (STDMETHODCALLTYPE *Release)(
1464         ITfDocumentMgr *This);
1465 
1466     /*** ITfDocumentMgr methods ***/
1467     HRESULT (STDMETHODCALLTYPE *CreateContext)(
1468         ITfDocumentMgr *This,
1469         TfClientId tidOwner,
1470         DWORD dwFlags,
1471         IUnknown *punk,
1472         ITfContext **ppic,
1473         TfEditCookie *pecTextStore);
1474 
1475     HRESULT (STDMETHODCALLTYPE *Push)(
1476         ITfDocumentMgr *This,
1477         ITfContext *pic);
1478 
1479     HRESULT (STDMETHODCALLTYPE *Pop)(
1480         ITfDocumentMgr *This,
1481         DWORD dwFlags);
1482 
1483     HRESULT (STDMETHODCALLTYPE *GetTop)(
1484         ITfDocumentMgr *This,
1485         ITfContext **ppic);
1486 
1487     HRESULT (STDMETHODCALLTYPE *GetBase)(
1488         ITfDocumentMgr *This,
1489         ITfContext **ppic);
1490 
1491     HRESULT (STDMETHODCALLTYPE *EnumContexts)(
1492         ITfDocumentMgr *This,
1493         IEnumTfContexts **ppEnum);
1494 
1495     END_INTERFACE
1496 } ITfDocumentMgrVtbl;
1497 
1498 interface ITfDocumentMgr {
1499     CONST_VTBL ITfDocumentMgrVtbl* lpVtbl;
1500 };
1501 
1502 #ifdef COBJMACROS
1503 #ifndef WIDL_C_INLINE_WRAPPERS
1504 /*** IUnknown methods ***/
1505 #define ITfDocumentMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1506 #define ITfDocumentMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
1507 #define ITfDocumentMgr_Release(This) (This)->lpVtbl->Release(This)
1508 /*** ITfDocumentMgr methods ***/
1509 #define ITfDocumentMgr_CreateContext(This,tidOwner,dwFlags,punk,ppic,pecTextStore) (This)->lpVtbl->CreateContext(This,tidOwner,dwFlags,punk,ppic,pecTextStore)
1510 #define ITfDocumentMgr_Push(This,pic) (This)->lpVtbl->Push(This,pic)
1511 #define ITfDocumentMgr_Pop(This,dwFlags) (This)->lpVtbl->Pop(This,dwFlags)
1512 #define ITfDocumentMgr_GetTop(This,ppic) (This)->lpVtbl->GetTop(This,ppic)
1513 #define ITfDocumentMgr_GetBase(This,ppic) (This)->lpVtbl->GetBase(This,ppic)
1514 #define ITfDocumentMgr_EnumContexts(This,ppEnum) (This)->lpVtbl->EnumContexts(This,ppEnum)
1515 #else
1516 /*** IUnknown methods ***/
1517 static FORCEINLINE HRESULT ITfDocumentMgr_QueryInterface(ITfDocumentMgr* This,REFIID riid,void **ppvObject) {
1518     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1519 }
1520 static FORCEINLINE ULONG ITfDocumentMgr_AddRef(ITfDocumentMgr* This) {
1521     return This->lpVtbl->AddRef(This);
1522 }
1523 static FORCEINLINE ULONG ITfDocumentMgr_Release(ITfDocumentMgr* This) {
1524     return This->lpVtbl->Release(This);
1525 }
1526 /*** ITfDocumentMgr methods ***/
1527 static FORCEINLINE HRESULT ITfDocumentMgr_CreateContext(ITfDocumentMgr* This,TfClientId tidOwner,DWORD dwFlags,IUnknown *punk,ITfContext **ppic,TfEditCookie *pecTextStore) {
1528     return This->lpVtbl->CreateContext(This,tidOwner,dwFlags,punk,ppic,pecTextStore);
1529 }
1530 static FORCEINLINE HRESULT ITfDocumentMgr_Push(ITfDocumentMgr* This,ITfContext *pic) {
1531     return This->lpVtbl->Push(This,pic);
1532 }
1533 static FORCEINLINE HRESULT ITfDocumentMgr_Pop(ITfDocumentMgr* This,DWORD dwFlags) {
1534     return This->lpVtbl->Pop(This,dwFlags);
1535 }
1536 static FORCEINLINE HRESULT ITfDocumentMgr_GetTop(ITfDocumentMgr* This,ITfContext **ppic) {
1537     return This->lpVtbl->GetTop(This,ppic);
1538 }
1539 static FORCEINLINE HRESULT ITfDocumentMgr_GetBase(ITfDocumentMgr* This,ITfContext **ppic) {
1540     return This->lpVtbl->GetBase(This,ppic);
1541 }
1542 static FORCEINLINE HRESULT ITfDocumentMgr_EnumContexts(ITfDocumentMgr* This,IEnumTfContexts **ppEnum) {
1543     return This->lpVtbl->EnumContexts(This,ppEnum);
1544 }
1545 #endif
1546 #endif
1547 
1548 #endif
1549 
1550 
1551 #endif  /* __ITfDocumentMgr_INTERFACE_DEFINED__ */
1552 
1553 /*****************************************************************************
1554  * ITfContextView interface
1555  */
1556 #ifndef __ITfContextView_INTERFACE_DEFINED__
1557 #define __ITfContextView_INTERFACE_DEFINED__
1558 
1559 DEFINE_GUID(IID_ITfContextView, 0x2433bf8e, 0x0f9b, 0x435c, 0xba,0x2c, 0x18,0x06,0x11,0x97,0x8c,0x30);
1560 #if defined(__cplusplus) && !defined(CINTERFACE)
1561 MIDL_INTERFACE("2433bf8e-0f9b-435c-ba2c-180611978c30")
1562 ITfContextView : public IUnknown
1563 {
1564     virtual HRESULT STDMETHODCALLTYPE GetRangeFromPoint(
1565         TfEditCookie cookie,
1566         const POINT *pt,
1567         DWORD flags,
1568         ITfRange **range) = 0;
1569 
1570     virtual HRESULT STDMETHODCALLTYPE GetTextExt(
1571         TfEditCookie cookie,
1572         ITfRange *range,
1573         RECT *rect,
1574         WINBOOL *clipped) = 0;
1575 
1576     virtual HRESULT STDMETHODCALLTYPE GetScreenExt(
1577         RECT *rect) = 0;
1578 
1579     virtual HRESULT STDMETHODCALLTYPE GetWnd(
1580         HWND *hwnd) = 0;
1581 
1582 };
1583 #ifdef __CRT_UUID_DECL
1584 __CRT_UUID_DECL(ITfContextView, 0x2433bf8e, 0x0f9b, 0x435c, 0xba,0x2c, 0x18,0x06,0x11,0x97,0x8c,0x30)
1585 #endif
1586 #else
1587 typedef struct ITfContextViewVtbl {
1588     BEGIN_INTERFACE
1589 
1590     /*** IUnknown methods ***/
1591     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1592         ITfContextView *This,
1593         REFIID riid,
1594         void **ppvObject);
1595 
1596     ULONG (STDMETHODCALLTYPE *AddRef)(
1597         ITfContextView *This);
1598 
1599     ULONG (STDMETHODCALLTYPE *Release)(
1600         ITfContextView *This);
1601 
1602     /*** ITfContextView methods ***/
1603     HRESULT (STDMETHODCALLTYPE *GetRangeFromPoint)(
1604         ITfContextView *This,
1605         TfEditCookie cookie,
1606         const POINT *pt,
1607         DWORD flags,
1608         ITfRange **range);
1609 
1610     HRESULT (STDMETHODCALLTYPE *GetTextExt)(
1611         ITfContextView *This,
1612         TfEditCookie cookie,
1613         ITfRange *range,
1614         RECT *rect,
1615         WINBOOL *clipped);
1616 
1617     HRESULT (STDMETHODCALLTYPE *GetScreenExt)(
1618         ITfContextView *This,
1619         RECT *rect);
1620 
1621     HRESULT (STDMETHODCALLTYPE *GetWnd)(
1622         ITfContextView *This,
1623         HWND *hwnd);
1624 
1625     END_INTERFACE
1626 } ITfContextViewVtbl;
1627 
1628 interface ITfContextView {
1629     CONST_VTBL ITfContextViewVtbl* lpVtbl;
1630 };
1631 
1632 #ifdef COBJMACROS
1633 #ifndef WIDL_C_INLINE_WRAPPERS
1634 /*** IUnknown methods ***/
1635 #define ITfContextView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1636 #define ITfContextView_AddRef(This) (This)->lpVtbl->AddRef(This)
1637 #define ITfContextView_Release(This) (This)->lpVtbl->Release(This)
1638 /*** ITfContextView methods ***/
1639 #define ITfContextView_GetRangeFromPoint(This,cookie,pt,flags,range) (This)->lpVtbl->GetRangeFromPoint(This,cookie,pt,flags,range)
1640 #define ITfContextView_GetTextExt(This,cookie,range,rect,clipped) (This)->lpVtbl->GetTextExt(This,cookie,range,rect,clipped)
1641 #define ITfContextView_GetScreenExt(This,rect) (This)->lpVtbl->GetScreenExt(This,rect)
1642 #define ITfContextView_GetWnd(This,hwnd) (This)->lpVtbl->GetWnd(This,hwnd)
1643 #else
1644 /*** IUnknown methods ***/
1645 static FORCEINLINE HRESULT ITfContextView_QueryInterface(ITfContextView* This,REFIID riid,void **ppvObject) {
1646     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1647 }
1648 static FORCEINLINE ULONG ITfContextView_AddRef(ITfContextView* This) {
1649     return This->lpVtbl->AddRef(This);
1650 }
1651 static FORCEINLINE ULONG ITfContextView_Release(ITfContextView* This) {
1652     return This->lpVtbl->Release(This);
1653 }
1654 /*** ITfContextView methods ***/
1655 static FORCEINLINE HRESULT ITfContextView_GetRangeFromPoint(ITfContextView* This,TfEditCookie cookie,const POINT *pt,DWORD flags,ITfRange **range) {
1656     return This->lpVtbl->GetRangeFromPoint(This,cookie,pt,flags,range);
1657 }
1658 static FORCEINLINE HRESULT ITfContextView_GetTextExt(ITfContextView* This,TfEditCookie cookie,ITfRange *range,RECT *rect,WINBOOL *clipped) {
1659     return This->lpVtbl->GetTextExt(This,cookie,range,rect,clipped);
1660 }
1661 static FORCEINLINE HRESULT ITfContextView_GetScreenExt(ITfContextView* This,RECT *rect) {
1662     return This->lpVtbl->GetScreenExt(This,rect);
1663 }
1664 static FORCEINLINE HRESULT ITfContextView_GetWnd(ITfContextView* This,HWND *hwnd) {
1665     return This->lpVtbl->GetWnd(This,hwnd);
1666 }
1667 #endif
1668 #endif
1669 
1670 #endif
1671 
1672 
1673 #endif  /* __ITfContextView_INTERFACE_DEFINED__ */
1674 
1675 /*****************************************************************************
1676  * IEnumTfContextViews interface
1677  */
1678 #ifndef __IEnumTfContextViews_INTERFACE_DEFINED__
1679 #define __IEnumTfContextViews_INTERFACE_DEFINED__
1680 
1681 DEFINE_GUID(IID_IEnumTfContextViews, 0xf0c0f8dd, 0xcf38, 0x44e1, 0xbb,0x0f, 0x68,0xcf,0x0d,0x55,0x1c,0x78);
1682 #if defined(__cplusplus) && !defined(CINTERFACE)
1683 MIDL_INTERFACE("f0c0f8dd-cf38-44e1-bb0f-68cf0d551c78")
1684 IEnumTfContextViews : public IUnknown
1685 {
1686     virtual HRESULT STDMETHODCALLTYPE Clone(
1687         IEnumTfContextViews **ret) = 0;
1688 
1689     virtual HRESULT STDMETHODCALLTYPE Next(
1690         ULONG count,
1691         ITfContextView **views,
1692         ULONG *fetched) = 0;
1693 
1694     virtual HRESULT STDMETHODCALLTYPE Reset(
1695         ) = 0;
1696 
1697     virtual HRESULT STDMETHODCALLTYPE Skip(
1698         ULONG count) = 0;
1699 
1700 };
1701 #ifdef __CRT_UUID_DECL
1702 __CRT_UUID_DECL(IEnumTfContextViews, 0xf0c0f8dd, 0xcf38, 0x44e1, 0xbb,0x0f, 0x68,0xcf,0x0d,0x55,0x1c,0x78)
1703 #endif
1704 #else
1705 typedef struct IEnumTfContextViewsVtbl {
1706     BEGIN_INTERFACE
1707 
1708     /*** IUnknown methods ***/
1709     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1710         IEnumTfContextViews *This,
1711         REFIID riid,
1712         void **ppvObject);
1713 
1714     ULONG (STDMETHODCALLTYPE *AddRef)(
1715         IEnumTfContextViews *This);
1716 
1717     ULONG (STDMETHODCALLTYPE *Release)(
1718         IEnumTfContextViews *This);
1719 
1720     /*** IEnumTfContextViews methods ***/
1721     HRESULT (STDMETHODCALLTYPE *Clone)(
1722         IEnumTfContextViews *This,
1723         IEnumTfContextViews **ret);
1724 
1725     HRESULT (STDMETHODCALLTYPE *Next)(
1726         IEnumTfContextViews *This,
1727         ULONG count,
1728         ITfContextView **views,
1729         ULONG *fetched);
1730 
1731     HRESULT (STDMETHODCALLTYPE *Reset)(
1732         IEnumTfContextViews *This);
1733 
1734     HRESULT (STDMETHODCALLTYPE *Skip)(
1735         IEnumTfContextViews *This,
1736         ULONG count);
1737 
1738     END_INTERFACE
1739 } IEnumTfContextViewsVtbl;
1740 
1741 interface IEnumTfContextViews {
1742     CONST_VTBL IEnumTfContextViewsVtbl* lpVtbl;
1743 };
1744 
1745 #ifdef COBJMACROS
1746 #ifndef WIDL_C_INLINE_WRAPPERS
1747 /*** IUnknown methods ***/
1748 #define IEnumTfContextViews_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1749 #define IEnumTfContextViews_AddRef(This) (This)->lpVtbl->AddRef(This)
1750 #define IEnumTfContextViews_Release(This) (This)->lpVtbl->Release(This)
1751 /*** IEnumTfContextViews methods ***/
1752 #define IEnumTfContextViews_Clone(This,ret) (This)->lpVtbl->Clone(This,ret)
1753 #define IEnumTfContextViews_Next(This,count,views,fetched) (This)->lpVtbl->Next(This,count,views,fetched)
1754 #define IEnumTfContextViews_Reset(This) (This)->lpVtbl->Reset(This)
1755 #define IEnumTfContextViews_Skip(This,count) (This)->lpVtbl->Skip(This,count)
1756 #else
1757 /*** IUnknown methods ***/
1758 static FORCEINLINE HRESULT IEnumTfContextViews_QueryInterface(IEnumTfContextViews* This,REFIID riid,void **ppvObject) {
1759     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1760 }
1761 static FORCEINLINE ULONG IEnumTfContextViews_AddRef(IEnumTfContextViews* This) {
1762     return This->lpVtbl->AddRef(This);
1763 }
1764 static FORCEINLINE ULONG IEnumTfContextViews_Release(IEnumTfContextViews* This) {
1765     return This->lpVtbl->Release(This);
1766 }
1767 /*** IEnumTfContextViews methods ***/
1768 static FORCEINLINE HRESULT IEnumTfContextViews_Clone(IEnumTfContextViews* This,IEnumTfContextViews **ret) {
1769     return This->lpVtbl->Clone(This,ret);
1770 }
1771 static FORCEINLINE HRESULT IEnumTfContextViews_Next(IEnumTfContextViews* This,ULONG count,ITfContextView **views,ULONG *fetched) {
1772     return This->lpVtbl->Next(This,count,views,fetched);
1773 }
1774 static FORCEINLINE HRESULT IEnumTfContextViews_Reset(IEnumTfContextViews* This) {
1775     return This->lpVtbl->Reset(This);
1776 }
1777 static FORCEINLINE HRESULT IEnumTfContextViews_Skip(IEnumTfContextViews* This,ULONG count) {
1778     return This->lpVtbl->Skip(This,count);
1779 }
1780 #endif
1781 #endif
1782 
1783 #endif
1784 
1785 
1786 #endif  /* __IEnumTfContextViews_INTERFACE_DEFINED__ */
1787 
1788 /*****************************************************************************
1789  * IEnumTfProperties interface
1790  */
1791 #ifndef __IEnumTfProperties_INTERFACE_DEFINED__
1792 #define __IEnumTfProperties_INTERFACE_DEFINED__
1793 
1794 DEFINE_GUID(IID_IEnumTfProperties, 0x19188cb0, 0xaca9, 0x11d2, 0xaf,0xc5, 0x00,0x10,0x5a,0x27,0x99,0xb5);
1795 #if defined(__cplusplus) && !defined(CINTERFACE)
1796 MIDL_INTERFACE("19188cb0-aca9-11d2-afc5-00105a2799b5")
1797 IEnumTfProperties : public IUnknown
1798 {
1799     virtual HRESULT STDMETHODCALLTYPE Clone(
1800         IEnumTfProperties **ret) = 0;
1801 
1802     virtual HRESULT STDMETHODCALLTYPE Next(
1803         ULONG count,
1804         ITfProperty **props,
1805         ULONG *fetched) = 0;
1806 
1807     virtual HRESULT STDMETHODCALLTYPE Reset(
1808         ) = 0;
1809 
1810     virtual HRESULT STDMETHODCALLTYPE Skip(
1811         ULONG count) = 0;
1812 
1813 };
1814 #ifdef __CRT_UUID_DECL
1815 __CRT_UUID_DECL(IEnumTfProperties, 0x19188cb0, 0xaca9, 0x11d2, 0xaf,0xc5, 0x00,0x10,0x5a,0x27,0x99,0xb5)
1816 #endif
1817 #else
1818 typedef struct IEnumTfPropertiesVtbl {
1819     BEGIN_INTERFACE
1820 
1821     /*** IUnknown methods ***/
1822     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1823         IEnumTfProperties *This,
1824         REFIID riid,
1825         void **ppvObject);
1826 
1827     ULONG (STDMETHODCALLTYPE *AddRef)(
1828         IEnumTfProperties *This);
1829 
1830     ULONG (STDMETHODCALLTYPE *Release)(
1831         IEnumTfProperties *This);
1832 
1833     /*** IEnumTfProperties methods ***/
1834     HRESULT (STDMETHODCALLTYPE *Clone)(
1835         IEnumTfProperties *This,
1836         IEnumTfProperties **ret);
1837 
1838     HRESULT (STDMETHODCALLTYPE *Next)(
1839         IEnumTfProperties *This,
1840         ULONG count,
1841         ITfProperty **props,
1842         ULONG *fetched);
1843 
1844     HRESULT (STDMETHODCALLTYPE *Reset)(
1845         IEnumTfProperties *This);
1846 
1847     HRESULT (STDMETHODCALLTYPE *Skip)(
1848         IEnumTfProperties *This,
1849         ULONG count);
1850 
1851     END_INTERFACE
1852 } IEnumTfPropertiesVtbl;
1853 
1854 interface IEnumTfProperties {
1855     CONST_VTBL IEnumTfPropertiesVtbl* lpVtbl;
1856 };
1857 
1858 #ifdef COBJMACROS
1859 #ifndef WIDL_C_INLINE_WRAPPERS
1860 /*** IUnknown methods ***/
1861 #define IEnumTfProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1862 #define IEnumTfProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
1863 #define IEnumTfProperties_Release(This) (This)->lpVtbl->Release(This)
1864 /*** IEnumTfProperties methods ***/
1865 #define IEnumTfProperties_Clone(This,ret) (This)->lpVtbl->Clone(This,ret)
1866 #define IEnumTfProperties_Next(This,count,props,fetched) (This)->lpVtbl->Next(This,count,props,fetched)
1867 #define IEnumTfProperties_Reset(This) (This)->lpVtbl->Reset(This)
1868 #define IEnumTfProperties_Skip(This,count) (This)->lpVtbl->Skip(This,count)
1869 #else
1870 /*** IUnknown methods ***/
1871 static FORCEINLINE HRESULT IEnumTfProperties_QueryInterface(IEnumTfProperties* This,REFIID riid,void **ppvObject) {
1872     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1873 }
1874 static FORCEINLINE ULONG IEnumTfProperties_AddRef(IEnumTfProperties* This) {
1875     return This->lpVtbl->AddRef(This);
1876 }
1877 static FORCEINLINE ULONG IEnumTfProperties_Release(IEnumTfProperties* This) {
1878     return This->lpVtbl->Release(This);
1879 }
1880 /*** IEnumTfProperties methods ***/
1881 static FORCEINLINE HRESULT IEnumTfProperties_Clone(IEnumTfProperties* This,IEnumTfProperties **ret) {
1882     return This->lpVtbl->Clone(This,ret);
1883 }
1884 static FORCEINLINE HRESULT IEnumTfProperties_Next(IEnumTfProperties* This,ULONG count,ITfProperty **props,ULONG *fetched) {
1885     return This->lpVtbl->Next(This,count,props,fetched);
1886 }
1887 static FORCEINLINE HRESULT IEnumTfProperties_Reset(IEnumTfProperties* This) {
1888     return This->lpVtbl->Reset(This);
1889 }
1890 static FORCEINLINE HRESULT IEnumTfProperties_Skip(IEnumTfProperties* This,ULONG count) {
1891     return This->lpVtbl->Skip(This,count);
1892 }
1893 #endif
1894 #endif
1895 
1896 #endif
1897 
1898 
1899 #endif  /* __IEnumTfProperties_INTERFACE_DEFINED__ */
1900 
1901 /*****************************************************************************
1902  * ITfRangeBackup interface
1903  */
1904 #ifndef __ITfRangeBackup_INTERFACE_DEFINED__
1905 #define __ITfRangeBackup_INTERFACE_DEFINED__
1906 
1907 DEFINE_GUID(IID_ITfRangeBackup, 0x463a506d, 0x6992, 0x49d2, 0x9b,0x88, 0x93,0xd5,0x5e,0x70,0xbb,0x16);
1908 #if defined(__cplusplus) && !defined(CINTERFACE)
1909 MIDL_INTERFACE("463a506d-6992-49d2-9b88-93d55e70bb16")
1910 ITfRangeBackup : public IUnknown
1911 {
1912     virtual HRESULT STDMETHODCALLTYPE Restore(
1913         TfEditCookie cookie,
1914         ITfRange *range) = 0;
1915 
1916 };
1917 #ifdef __CRT_UUID_DECL
1918 __CRT_UUID_DECL(ITfRangeBackup, 0x463a506d, 0x6992, 0x49d2, 0x9b,0x88, 0x93,0xd5,0x5e,0x70,0xbb,0x16)
1919 #endif
1920 #else
1921 typedef struct ITfRangeBackupVtbl {
1922     BEGIN_INTERFACE
1923 
1924     /*** IUnknown methods ***/
1925     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1926         ITfRangeBackup *This,
1927         REFIID riid,
1928         void **ppvObject);
1929 
1930     ULONG (STDMETHODCALLTYPE *AddRef)(
1931         ITfRangeBackup *This);
1932 
1933     ULONG (STDMETHODCALLTYPE *Release)(
1934         ITfRangeBackup *This);
1935 
1936     /*** ITfRangeBackup methods ***/
1937     HRESULT (STDMETHODCALLTYPE *Restore)(
1938         ITfRangeBackup *This,
1939         TfEditCookie cookie,
1940         ITfRange *range);
1941 
1942     END_INTERFACE
1943 } ITfRangeBackupVtbl;
1944 
1945 interface ITfRangeBackup {
1946     CONST_VTBL ITfRangeBackupVtbl* lpVtbl;
1947 };
1948 
1949 #ifdef COBJMACROS
1950 #ifndef WIDL_C_INLINE_WRAPPERS
1951 /*** IUnknown methods ***/
1952 #define ITfRangeBackup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1953 #define ITfRangeBackup_AddRef(This) (This)->lpVtbl->AddRef(This)
1954 #define ITfRangeBackup_Release(This) (This)->lpVtbl->Release(This)
1955 /*** ITfRangeBackup methods ***/
1956 #define ITfRangeBackup_Restore(This,cookie,range) (This)->lpVtbl->Restore(This,cookie,range)
1957 #else
1958 /*** IUnknown methods ***/
1959 static FORCEINLINE HRESULT ITfRangeBackup_QueryInterface(ITfRangeBackup* This,REFIID riid,void **ppvObject) {
1960     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1961 }
1962 static FORCEINLINE ULONG ITfRangeBackup_AddRef(ITfRangeBackup* This) {
1963     return This->lpVtbl->AddRef(This);
1964 }
1965 static FORCEINLINE ULONG ITfRangeBackup_Release(ITfRangeBackup* This) {
1966     return This->lpVtbl->Release(This);
1967 }
1968 /*** ITfRangeBackup methods ***/
1969 static FORCEINLINE HRESULT ITfRangeBackup_Restore(ITfRangeBackup* This,TfEditCookie cookie,ITfRange *range) {
1970     return This->lpVtbl->Restore(This,cookie,range);
1971 }
1972 #endif
1973 #endif
1974 
1975 #endif
1976 
1977 
1978 #endif  /* __ITfRangeBackup_INTERFACE_DEFINED__ */
1979 
1980 /*****************************************************************************
1981  * ITextStoreACPServices interface
1982  */
1983 #ifndef __ITextStoreACPServices_INTERFACE_DEFINED__
1984 #define __ITextStoreACPServices_INTERFACE_DEFINED__
1985 
1986 DEFINE_GUID(IID_ITextStoreACPServices, 0xaa80e901, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
1987 #if defined(__cplusplus) && !defined(CINTERFACE)
1988 MIDL_INTERFACE("aa80e901-2021-11d2-93e0-0060b067b86e")
1989 ITextStoreACPServices : public IUnknown
1990 {
1991     virtual HRESULT STDMETHODCALLTYPE Serialize(
1992         ITfProperty *prop,
1993         ITfRange *range,
1994         TF_PERSISTENT_PROPERTY_HEADER_ACP *header,
1995         IStream *stream) = 0;
1996 
1997     virtual HRESULT STDMETHODCALLTYPE Unserialize(
1998         ITfProperty *prop,
1999         const TF_PERSISTENT_PROPERTY_HEADER_ACP *header,
2000         IStream *stream,
2001         ITfPersistentPropertyLoaderACP *loader) = 0;
2002 
2003     virtual HRESULT STDMETHODCALLTYPE ForceLoadProperty(
2004         ITfProperty *prop) = 0;
2005 
2006     virtual HRESULT STDMETHODCALLTYPE CreateRange(
2007         LONG start,
2008         LONG end,
2009         ITfRangeACP **range) = 0;
2010 
2011 };
2012 #ifdef __CRT_UUID_DECL
2013 __CRT_UUID_DECL(ITextStoreACPServices, 0xaa80e901, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
2014 #endif
2015 #else
2016 typedef struct ITextStoreACPServicesVtbl {
2017     BEGIN_INTERFACE
2018 
2019     /*** IUnknown methods ***/
2020     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2021         ITextStoreACPServices *This,
2022         REFIID riid,
2023         void **ppvObject);
2024 
2025     ULONG (STDMETHODCALLTYPE *AddRef)(
2026         ITextStoreACPServices *This);
2027 
2028     ULONG (STDMETHODCALLTYPE *Release)(
2029         ITextStoreACPServices *This);
2030 
2031     /*** ITextStoreACPServices methods ***/
2032     HRESULT (STDMETHODCALLTYPE *Serialize)(
2033         ITextStoreACPServices *This,
2034         ITfProperty *prop,
2035         ITfRange *range,
2036         TF_PERSISTENT_PROPERTY_HEADER_ACP *header,
2037         IStream *stream);
2038 
2039     HRESULT (STDMETHODCALLTYPE *Unserialize)(
2040         ITextStoreACPServices *This,
2041         ITfProperty *prop,
2042         const TF_PERSISTENT_PROPERTY_HEADER_ACP *header,
2043         IStream *stream,
2044         ITfPersistentPropertyLoaderACP *loader);
2045 
2046     HRESULT (STDMETHODCALLTYPE *ForceLoadProperty)(
2047         ITextStoreACPServices *This,
2048         ITfProperty *prop);
2049 
2050     HRESULT (STDMETHODCALLTYPE *CreateRange)(
2051         ITextStoreACPServices *This,
2052         LONG start,
2053         LONG end,
2054         ITfRangeACP **range);
2055 
2056     END_INTERFACE
2057 } ITextStoreACPServicesVtbl;
2058 
2059 interface ITextStoreACPServices {
2060     CONST_VTBL ITextStoreACPServicesVtbl* lpVtbl;
2061 };
2062 
2063 #ifdef COBJMACROS
2064 #ifndef WIDL_C_INLINE_WRAPPERS
2065 /*** IUnknown methods ***/
2066 #define ITextStoreACPServices_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2067 #define ITextStoreACPServices_AddRef(This) (This)->lpVtbl->AddRef(This)
2068 #define ITextStoreACPServices_Release(This) (This)->lpVtbl->Release(This)
2069 /*** ITextStoreACPServices methods ***/
2070 #define ITextStoreACPServices_Serialize(This,prop,range,header,stream) (This)->lpVtbl->Serialize(This,prop,range,header,stream)
2071 #define ITextStoreACPServices_Unserialize(This,prop,header,stream,loader) (This)->lpVtbl->Unserialize(This,prop,header,stream,loader)
2072 #define ITextStoreACPServices_ForceLoadProperty(This,prop) (This)->lpVtbl->ForceLoadProperty(This,prop)
2073 #define ITextStoreACPServices_CreateRange(This,start,end,range) (This)->lpVtbl->CreateRange(This,start,end,range)
2074 #else
2075 /*** IUnknown methods ***/
2076 static FORCEINLINE HRESULT ITextStoreACPServices_QueryInterface(ITextStoreACPServices* This,REFIID riid,void **ppvObject) {
2077     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2078 }
2079 static FORCEINLINE ULONG ITextStoreACPServices_AddRef(ITextStoreACPServices* This) {
2080     return This->lpVtbl->AddRef(This);
2081 }
2082 static FORCEINLINE ULONG ITextStoreACPServices_Release(ITextStoreACPServices* This) {
2083     return This->lpVtbl->Release(This);
2084 }
2085 /*** ITextStoreACPServices methods ***/
2086 static FORCEINLINE HRESULT ITextStoreACPServices_Serialize(ITextStoreACPServices* This,ITfProperty *prop,ITfRange *range,TF_PERSISTENT_PROPERTY_HEADER_ACP *header,IStream *stream) {
2087     return This->lpVtbl->Serialize(This,prop,range,header,stream);
2088 }
2089 static FORCEINLINE HRESULT ITextStoreACPServices_Unserialize(ITextStoreACPServices* This,ITfProperty *prop,const TF_PERSISTENT_PROPERTY_HEADER_ACP *header,IStream *stream,ITfPersistentPropertyLoaderACP *loader) {
2090     return This->lpVtbl->Unserialize(This,prop,header,stream,loader);
2091 }
2092 static FORCEINLINE HRESULT ITextStoreACPServices_ForceLoadProperty(ITextStoreACPServices* This,ITfProperty *prop) {
2093     return This->lpVtbl->ForceLoadProperty(This,prop);
2094 }
2095 static FORCEINLINE HRESULT ITextStoreACPServices_CreateRange(ITextStoreACPServices* This,LONG start,LONG end,ITfRangeACP **range) {
2096     return This->lpVtbl->CreateRange(This,start,end,range);
2097 }
2098 #endif
2099 #endif
2100 
2101 #endif
2102 
2103 
2104 #endif  /* __ITextStoreACPServices_INTERFACE_DEFINED__ */
2105 
2106 /*****************************************************************************
2107  * ITfContext interface
2108  */
2109 #ifndef __ITfContext_INTERFACE_DEFINED__
2110 #define __ITfContext_INTERFACE_DEFINED__
2111 
2112 #define TF_ES_ASYNCDONTCARE (0x0)
2113 
2114 #define TF_ES_SYNC (0x1)
2115 
2116 #define TF_ES_READ (0x2)
2117 
2118 #define TF_ES_READWRITE (0x6)
2119 
2120 #define TF_ES_ASYNC (0x8)
2121 
2122 typedef enum __WIDL_msctf_generated_name_00000013 {
2123     TF_AE_NONE = 0,
2124     TF_AE_START = 1,
2125     TF_AE_END = 2
2126 } TfActiveSelEnd;
2127 typedef struct TF_SELECTIONSTYLE {
2128     TfActiveSelEnd ase;
2129     WINBOOL fInterimChar;
2130 } TF_SELECTIONSTYLE;
2131 typedef struct TF_SELECTION {
2132     ITfRange *range;
2133     TF_SELECTIONSTYLE style;
2134 } TF_SELECTION;
2135 #define TF_DEFAULT_SELECTION (TS_DEFAULT_SELECTION)
2136 
2137 typedef TS_STATUS TF_STATUS;
2138 #define TF_SD_READONLY (TS_SD_READONLY)
2139 
2140 #define TF_SD_LOADING (TS_SD_LOADING)
2141 
2142 #define TF_SS_DISJOINTSEL (TS_SS_DISJOINTSEL)
2143 
2144 #define TF_SS_REGIONS (TS_SS_REGIONS)
2145 
2146 #define TF_SS_TRANSITORY (TS_SS_TRANSITORY)
2147 
2148 DEFINE_GUID(IID_ITfContext, 0xaa80e7fd, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
2149 #if defined(__cplusplus) && !defined(CINTERFACE)
2150 MIDL_INTERFACE("aa80e7fd-2021-11d2-93e0-0060b067b86e")
2151 ITfContext : public IUnknown
2152 {
2153     virtual HRESULT STDMETHODCALLTYPE RequestEditSession(
2154         TfClientId tid,
2155         ITfEditSession *pes,
2156         DWORD dwFlags,
2157         HRESULT *phrSession) = 0;
2158 
2159     virtual HRESULT STDMETHODCALLTYPE InWriteSession(
2160         TfClientId tid,
2161         WINBOOL *pfWriteSession) = 0;
2162 
2163     virtual HRESULT STDMETHODCALLTYPE GetSelection(
2164         TfEditCookie ec,
2165         ULONG ulIndex,
2166         ULONG ulCount,
2167         TF_SELECTION *pSelection,
2168         ULONG *pcFetched) = 0;
2169 
2170     virtual HRESULT STDMETHODCALLTYPE SetSelection(
2171         TfEditCookie ec,
2172         ULONG ulCount,
2173         const TF_SELECTION *pSelection) = 0;
2174 
2175     virtual HRESULT STDMETHODCALLTYPE GetStart(
2176         TfEditCookie ec,
2177         ITfRange **ppStart) = 0;
2178 
2179     virtual HRESULT STDMETHODCALLTYPE GetEnd(
2180         TfEditCookie ec,
2181         ITfRange **ppEnd) = 0;
2182 
2183     virtual HRESULT STDMETHODCALLTYPE GetActiveView(
2184         ITfContextView **ppView) = 0;
2185 
2186     virtual HRESULT STDMETHODCALLTYPE EnumViews(
2187         IEnumTfContextViews **ppEnum) = 0;
2188 
2189     virtual HRESULT STDMETHODCALLTYPE GetStatus(
2190         TF_STATUS *pdcs) = 0;
2191 
2192     virtual HRESULT STDMETHODCALLTYPE GetProperty(
2193         REFGUID guidProp,
2194         ITfProperty **ppProp) = 0;
2195 
2196     virtual HRESULT STDMETHODCALLTYPE GetAppProperty(
2197         REFGUID guidProp,
2198         ITfReadOnlyProperty **ppProp) = 0;
2199 
2200     virtual HRESULT STDMETHODCALLTYPE TrackProperties(
2201         const GUID **prgProp,
2202         ULONG cProp,
2203         const GUID **prgAppProp,
2204         ULONG cAppProp,
2205         ITfReadOnlyProperty **ppProperty) = 0;
2206 
2207     virtual HRESULT STDMETHODCALLTYPE EnumProperties(
2208         IEnumTfProperties **ppEnum) = 0;
2209 
2210     virtual HRESULT STDMETHODCALLTYPE GetDocumentMgr(
2211         ITfDocumentMgr **ppDm) = 0;
2212 
2213     virtual HRESULT STDMETHODCALLTYPE CreateRangeBackup(
2214         TfEditCookie ec,
2215         ITfRange *pRange,
2216         ITfRangeBackup **ppBackup) = 0;
2217 
2218 };
2219 #ifdef __CRT_UUID_DECL
2220 __CRT_UUID_DECL(ITfContext, 0xaa80e7fd, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
2221 #endif
2222 #else
2223 typedef struct ITfContextVtbl {
2224     BEGIN_INTERFACE
2225 
2226     /*** IUnknown methods ***/
2227     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2228         ITfContext *This,
2229         REFIID riid,
2230         void **ppvObject);
2231 
2232     ULONG (STDMETHODCALLTYPE *AddRef)(
2233         ITfContext *This);
2234 
2235     ULONG (STDMETHODCALLTYPE *Release)(
2236         ITfContext *This);
2237 
2238     /*** ITfContext methods ***/
2239     HRESULT (STDMETHODCALLTYPE *RequestEditSession)(
2240         ITfContext *This,
2241         TfClientId tid,
2242         ITfEditSession *pes,
2243         DWORD dwFlags,
2244         HRESULT *phrSession);
2245 
2246     HRESULT (STDMETHODCALLTYPE *InWriteSession)(
2247         ITfContext *This,
2248         TfClientId tid,
2249         WINBOOL *pfWriteSession);
2250 
2251     HRESULT (STDMETHODCALLTYPE *GetSelection)(
2252         ITfContext *This,
2253         TfEditCookie ec,
2254         ULONG ulIndex,
2255         ULONG ulCount,
2256         TF_SELECTION *pSelection,
2257         ULONG *pcFetched);
2258 
2259     HRESULT (STDMETHODCALLTYPE *SetSelection)(
2260         ITfContext *This,
2261         TfEditCookie ec,
2262         ULONG ulCount,
2263         const TF_SELECTION *pSelection);
2264 
2265     HRESULT (STDMETHODCALLTYPE *GetStart)(
2266         ITfContext *This,
2267         TfEditCookie ec,
2268         ITfRange **ppStart);
2269 
2270     HRESULT (STDMETHODCALLTYPE *GetEnd)(
2271         ITfContext *This,
2272         TfEditCookie ec,
2273         ITfRange **ppEnd);
2274 
2275     HRESULT (STDMETHODCALLTYPE *GetActiveView)(
2276         ITfContext *This,
2277         ITfContextView **ppView);
2278 
2279     HRESULT (STDMETHODCALLTYPE *EnumViews)(
2280         ITfContext *This,
2281         IEnumTfContextViews **ppEnum);
2282 
2283     HRESULT (STDMETHODCALLTYPE *GetStatus)(
2284         ITfContext *This,
2285         TF_STATUS *pdcs);
2286 
2287     HRESULT (STDMETHODCALLTYPE *GetProperty)(
2288         ITfContext *This,
2289         REFGUID guidProp,
2290         ITfProperty **ppProp);
2291 
2292     HRESULT (STDMETHODCALLTYPE *GetAppProperty)(
2293         ITfContext *This,
2294         REFGUID guidProp,
2295         ITfReadOnlyProperty **ppProp);
2296 
2297     HRESULT (STDMETHODCALLTYPE *TrackProperties)(
2298         ITfContext *This,
2299         const GUID **prgProp,
2300         ULONG cProp,
2301         const GUID **prgAppProp,
2302         ULONG cAppProp,
2303         ITfReadOnlyProperty **ppProperty);
2304 
2305     HRESULT (STDMETHODCALLTYPE *EnumProperties)(
2306         ITfContext *This,
2307         IEnumTfProperties **ppEnum);
2308 
2309     HRESULT (STDMETHODCALLTYPE *GetDocumentMgr)(
2310         ITfContext *This,
2311         ITfDocumentMgr **ppDm);
2312 
2313     HRESULT (STDMETHODCALLTYPE *CreateRangeBackup)(
2314         ITfContext *This,
2315         TfEditCookie ec,
2316         ITfRange *pRange,
2317         ITfRangeBackup **ppBackup);
2318 
2319     END_INTERFACE
2320 } ITfContextVtbl;
2321 
2322 interface ITfContext {
2323     CONST_VTBL ITfContextVtbl* lpVtbl;
2324 };
2325 
2326 #ifdef COBJMACROS
2327 #ifndef WIDL_C_INLINE_WRAPPERS
2328 /*** IUnknown methods ***/
2329 #define ITfContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2330 #define ITfContext_AddRef(This) (This)->lpVtbl->AddRef(This)
2331 #define ITfContext_Release(This) (This)->lpVtbl->Release(This)
2332 /*** ITfContext methods ***/
2333 #define ITfContext_RequestEditSession(This,tid,pes,dwFlags,phrSession) (This)->lpVtbl->RequestEditSession(This,tid,pes,dwFlags,phrSession)
2334 #define ITfContext_InWriteSession(This,tid,pfWriteSession) (This)->lpVtbl->InWriteSession(This,tid,pfWriteSession)
2335 #define ITfContext_GetSelection(This,ec,ulIndex,ulCount,pSelection,pcFetched) (This)->lpVtbl->GetSelection(This,ec,ulIndex,ulCount,pSelection,pcFetched)
2336 #define ITfContext_SetSelection(This,ec,ulCount,pSelection) (This)->lpVtbl->SetSelection(This,ec,ulCount,pSelection)
2337 #define ITfContext_GetStart(This,ec,ppStart) (This)->lpVtbl->GetStart(This,ec,ppStart)
2338 #define ITfContext_GetEnd(This,ec,ppEnd) (This)->lpVtbl->GetEnd(This,ec,ppEnd)
2339 #define ITfContext_GetActiveView(This,ppView) (This)->lpVtbl->GetActiveView(This,ppView)
2340 #define ITfContext_EnumViews(This,ppEnum) (This)->lpVtbl->EnumViews(This,ppEnum)
2341 #define ITfContext_GetStatus(This,pdcs) (This)->lpVtbl->GetStatus(This,pdcs)
2342 #define ITfContext_GetProperty(This,guidProp,ppProp) (This)->lpVtbl->GetProperty(This,guidProp,ppProp)
2343 #define ITfContext_GetAppProperty(This,guidProp,ppProp) (This)->lpVtbl->GetAppProperty(This,guidProp,ppProp)
2344 #define ITfContext_TrackProperties(This,prgProp,cProp,prgAppProp,cAppProp,ppProperty) (This)->lpVtbl->TrackProperties(This,prgProp,cProp,prgAppProp,cAppProp,ppProperty)
2345 #define ITfContext_EnumProperties(This,ppEnum) (This)->lpVtbl->EnumProperties(This,ppEnum)
2346 #define ITfContext_GetDocumentMgr(This,ppDm) (This)->lpVtbl->GetDocumentMgr(This,ppDm)
2347 #define ITfContext_CreateRangeBackup(This,ec,pRange,ppBackup) (This)->lpVtbl->CreateRangeBackup(This,ec,pRange,ppBackup)
2348 #else
2349 /*** IUnknown methods ***/
2350 static FORCEINLINE HRESULT ITfContext_QueryInterface(ITfContext* This,REFIID riid,void **ppvObject) {
2351     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2352 }
2353 static FORCEINLINE ULONG ITfContext_AddRef(ITfContext* This) {
2354     return This->lpVtbl->AddRef(This);
2355 }
2356 static FORCEINLINE ULONG ITfContext_Release(ITfContext* This) {
2357     return This->lpVtbl->Release(This);
2358 }
2359 /*** ITfContext methods ***/
2360 static FORCEINLINE HRESULT ITfContext_RequestEditSession(ITfContext* This,TfClientId tid,ITfEditSession *pes,DWORD dwFlags,HRESULT *phrSession) {
2361     return This->lpVtbl->RequestEditSession(This,tid,pes,dwFlags,phrSession);
2362 }
2363 static FORCEINLINE HRESULT ITfContext_InWriteSession(ITfContext* This,TfClientId tid,WINBOOL *pfWriteSession) {
2364     return This->lpVtbl->InWriteSession(This,tid,pfWriteSession);
2365 }
2366 static FORCEINLINE HRESULT ITfContext_GetSelection(ITfContext* This,TfEditCookie ec,ULONG ulIndex,ULONG ulCount,TF_SELECTION *pSelection,ULONG *pcFetched) {
2367     return This->lpVtbl->GetSelection(This,ec,ulIndex,ulCount,pSelection,pcFetched);
2368 }
2369 static FORCEINLINE HRESULT ITfContext_SetSelection(ITfContext* This,TfEditCookie ec,ULONG ulCount,const TF_SELECTION *pSelection) {
2370     return This->lpVtbl->SetSelection(This,ec,ulCount,pSelection);
2371 }
2372 static FORCEINLINE HRESULT ITfContext_GetStart(ITfContext* This,TfEditCookie ec,ITfRange **ppStart) {
2373     return This->lpVtbl->GetStart(This,ec,ppStart);
2374 }
2375 static FORCEINLINE HRESULT ITfContext_GetEnd(ITfContext* This,TfEditCookie ec,ITfRange **ppEnd) {
2376     return This->lpVtbl->GetEnd(This,ec,ppEnd);
2377 }
2378 static FORCEINLINE HRESULT ITfContext_GetActiveView(ITfContext* This,ITfContextView **ppView) {
2379     return This->lpVtbl->GetActiveView(This,ppView);
2380 }
2381 static FORCEINLINE HRESULT ITfContext_EnumViews(ITfContext* This,IEnumTfContextViews **ppEnum) {
2382     return This->lpVtbl->EnumViews(This,ppEnum);
2383 }
2384 static FORCEINLINE HRESULT ITfContext_GetStatus(ITfContext* This,TF_STATUS *pdcs) {
2385     return This->lpVtbl->GetStatus(This,pdcs);
2386 }
2387 static FORCEINLINE HRESULT ITfContext_GetProperty(ITfContext* This,REFGUID guidProp,ITfProperty **ppProp) {
2388     return This->lpVtbl->GetProperty(This,guidProp,ppProp);
2389 }
2390 static FORCEINLINE HRESULT ITfContext_GetAppProperty(ITfContext* This,REFGUID guidProp,ITfReadOnlyProperty **ppProp) {
2391     return This->lpVtbl->GetAppProperty(This,guidProp,ppProp);
2392 }
2393 static FORCEINLINE HRESULT ITfContext_TrackProperties(ITfContext* This,const GUID **prgProp,ULONG cProp,const GUID **prgAppProp,ULONG cAppProp,ITfReadOnlyProperty **ppProperty) {
2394     return This->lpVtbl->TrackProperties(This,prgProp,cProp,prgAppProp,cAppProp,ppProperty);
2395 }
2396 static FORCEINLINE HRESULT ITfContext_EnumProperties(ITfContext* This,IEnumTfProperties **ppEnum) {
2397     return This->lpVtbl->EnumProperties(This,ppEnum);
2398 }
2399 static FORCEINLINE HRESULT ITfContext_GetDocumentMgr(ITfContext* This,ITfDocumentMgr **ppDm) {
2400     return This->lpVtbl->GetDocumentMgr(This,ppDm);
2401 }
2402 static FORCEINLINE HRESULT ITfContext_CreateRangeBackup(ITfContext* This,TfEditCookie ec,ITfRange *pRange,ITfRangeBackup **ppBackup) {
2403     return This->lpVtbl->CreateRangeBackup(This,ec,pRange,ppBackup);
2404 }
2405 #endif
2406 #endif
2407 
2408 #endif
2409 
2410 
2411 #endif  /* __ITfContext_INTERFACE_DEFINED__ */
2412 
2413 #define TF_INVALID_COOKIE (0xffffffff)
2414 
2415 /*****************************************************************************
2416  * ITfSource interface
2417  */
2418 #ifndef __ITfSource_INTERFACE_DEFINED__
2419 #define __ITfSource_INTERFACE_DEFINED__
2420 
2421 DEFINE_GUID(IID_ITfSource, 0x4ea48a35, 0x60ae, 0x446f, 0x8f,0xd6, 0xe6,0xa8,0xd8,0x24,0x59,0xf7);
2422 #if defined(__cplusplus) && !defined(CINTERFACE)
2423 MIDL_INTERFACE("4ea48a35-60ae-446f-8fd6-e6a8d82459f7")
2424 ITfSource : public IUnknown
2425 {
2426     virtual HRESULT STDMETHODCALLTYPE AdviseSink(
2427         REFIID riid,
2428         IUnknown *punk,
2429         DWORD *pdwCookie) = 0;
2430 
2431     virtual HRESULT STDMETHODCALLTYPE UnadviseSink(
2432         DWORD dwCookie) = 0;
2433 
2434 };
2435 #ifdef __CRT_UUID_DECL
2436 __CRT_UUID_DECL(ITfSource, 0x4ea48a35, 0x60ae, 0x446f, 0x8f,0xd6, 0xe6,0xa8,0xd8,0x24,0x59,0xf7)
2437 #endif
2438 #else
2439 typedef struct ITfSourceVtbl {
2440     BEGIN_INTERFACE
2441 
2442     /*** IUnknown methods ***/
2443     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2444         ITfSource *This,
2445         REFIID riid,
2446         void **ppvObject);
2447 
2448     ULONG (STDMETHODCALLTYPE *AddRef)(
2449         ITfSource *This);
2450 
2451     ULONG (STDMETHODCALLTYPE *Release)(
2452         ITfSource *This);
2453 
2454     /*** ITfSource methods ***/
2455     HRESULT (STDMETHODCALLTYPE *AdviseSink)(
2456         ITfSource *This,
2457         REFIID riid,
2458         IUnknown *punk,
2459         DWORD *pdwCookie);
2460 
2461     HRESULT (STDMETHODCALLTYPE *UnadviseSink)(
2462         ITfSource *This,
2463         DWORD dwCookie);
2464 
2465     END_INTERFACE
2466 } ITfSourceVtbl;
2467 
2468 interface ITfSource {
2469     CONST_VTBL ITfSourceVtbl* lpVtbl;
2470 };
2471 
2472 #ifdef COBJMACROS
2473 #ifndef WIDL_C_INLINE_WRAPPERS
2474 /*** IUnknown methods ***/
2475 #define ITfSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2476 #define ITfSource_AddRef(This) (This)->lpVtbl->AddRef(This)
2477 #define ITfSource_Release(This) (This)->lpVtbl->Release(This)
2478 /*** ITfSource methods ***/
2479 #define ITfSource_AdviseSink(This,riid,punk,pdwCookie) (This)->lpVtbl->AdviseSink(This,riid,punk,pdwCookie)
2480 #define ITfSource_UnadviseSink(This,dwCookie) (This)->lpVtbl->UnadviseSink(This,dwCookie)
2481 #else
2482 /*** IUnknown methods ***/
2483 static FORCEINLINE HRESULT ITfSource_QueryInterface(ITfSource* This,REFIID riid,void **ppvObject) {
2484     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2485 }
2486 static FORCEINLINE ULONG ITfSource_AddRef(ITfSource* This) {
2487     return This->lpVtbl->AddRef(This);
2488 }
2489 static FORCEINLINE ULONG ITfSource_Release(ITfSource* This) {
2490     return This->lpVtbl->Release(This);
2491 }
2492 /*** ITfSource methods ***/
2493 static FORCEINLINE HRESULT ITfSource_AdviseSink(ITfSource* This,REFIID riid,IUnknown *punk,DWORD *pdwCookie) {
2494     return This->lpVtbl->AdviseSink(This,riid,punk,pdwCookie);
2495 }
2496 static FORCEINLINE HRESULT ITfSource_UnadviseSink(ITfSource* This,DWORD dwCookie) {
2497     return This->lpVtbl->UnadviseSink(This,dwCookie);
2498 }
2499 #endif
2500 #endif
2501 
2502 #endif
2503 
2504 
2505 #endif  /* __ITfSource_INTERFACE_DEFINED__ */
2506 
2507 /*****************************************************************************
2508  * ITfInputProcessorProfiles interface
2509  */
2510 #ifndef __ITfInputProcessorProfiles_INTERFACE_DEFINED__
2511 #define __ITfInputProcessorProfiles_INTERFACE_DEFINED__
2512 
2513 DEFINE_GUID(IID_ITfInputProcessorProfiles, 0x1f02b6c5, 0x7842, 0x4ee6, 0x8a,0x0b, 0x9a,0x24,0x18,0x3a,0x95,0xca);
2514 #if defined(__cplusplus) && !defined(CINTERFACE)
2515 MIDL_INTERFACE("1f02b6c5-7842-4ee6-8a0b-9a24183a95ca")
2516 ITfInputProcessorProfiles : public IUnknown
2517 {
2518     virtual HRESULT STDMETHODCALLTYPE Register(
2519         REFCLSID rclsid) = 0;
2520 
2521     virtual HRESULT STDMETHODCALLTYPE Unregister(
2522         REFCLSID rclsid) = 0;
2523 
2524     virtual HRESULT STDMETHODCALLTYPE AddLanguageProfile(
2525         REFCLSID rclsid,
2526         LANGID langid,
2527         REFGUID guidProfile,
2528         const WCHAR *pchDesc,
2529         ULONG cchDesc,
2530         const WCHAR *pchIconFile,
2531         ULONG cchFile,
2532         ULONG uIconIndex) = 0;
2533 
2534     virtual HRESULT STDMETHODCALLTYPE RemoveLanguageProfile(
2535         REFCLSID rclsid,
2536         LANGID langid,
2537         REFGUID guidProfile) = 0;
2538 
2539     virtual HRESULT STDMETHODCALLTYPE EnumInputProcessorInfo(
2540         IEnumGUID **ppEnum) = 0;
2541 
2542     virtual HRESULT STDMETHODCALLTYPE GetDefaultLanguageProfile(
2543         LANGID langid,
2544         REFGUID catid,
2545         CLSID *pclsid,
2546         GUID *pguidProfile) = 0;
2547 
2548     virtual HRESULT STDMETHODCALLTYPE SetDefaultLanguageProfile(
2549         LANGID langid,
2550         REFCLSID rclsid,
2551         REFGUID guidProfiles) = 0;
2552 
2553     virtual HRESULT STDMETHODCALLTYPE ActivateLanguageProfile(
2554         REFCLSID rclsid,
2555         LANGID langid,
2556         REFGUID guidProfiles) = 0;
2557 
2558     virtual HRESULT STDMETHODCALLTYPE GetActiveLanguageProfile(
2559         REFCLSID rclsid,
2560         LANGID *plangid,
2561         GUID *pguidProfile) = 0;
2562 
2563     virtual HRESULT STDMETHODCALLTYPE GetLanguageProfileDescription(
2564         REFCLSID rclsid,
2565         LANGID langid,
2566         REFGUID guidProfile,
2567         BSTR *pbstrProfile) = 0;
2568 
2569     virtual HRESULT STDMETHODCALLTYPE GetCurrentLanguage(
2570         LANGID *plangid) = 0;
2571 
2572     virtual HRESULT STDMETHODCALLTYPE ChangeCurrentLanguage(
2573         LANGID langid) = 0;
2574 
2575     virtual HRESULT STDMETHODCALLTYPE GetLanguageList(
2576         LANGID **ppLangId,
2577         ULONG *pulCount) = 0;
2578 
2579     virtual HRESULT STDMETHODCALLTYPE EnumLanguageProfiles(
2580         LANGID langid,
2581         IEnumTfLanguageProfiles **ppEnum) = 0;
2582 
2583     virtual HRESULT STDMETHODCALLTYPE EnableLanguageProfile(
2584         REFCLSID rclsid,
2585         LANGID langid,
2586         REFGUID guidProfile,
2587         WINBOOL fEnable) = 0;
2588 
2589     virtual HRESULT STDMETHODCALLTYPE IsEnabledLanguageProfile(
2590         REFCLSID rclsid,
2591         LANGID langid,
2592         REFGUID guidProfile,
2593         WINBOOL *pfEnable) = 0;
2594 
2595     virtual HRESULT STDMETHODCALLTYPE EnableLanguageProfileByDefault(
2596         REFCLSID rclsid,
2597         LANGID langid,
2598         REFGUID guidProfile,
2599         WINBOOL fEnable) = 0;
2600 
2601     virtual HRESULT STDMETHODCALLTYPE SubstituteKeyboardLayout(
2602         REFCLSID rclsid,
2603         LANGID langid,
2604         REFGUID guidProfile,
2605         HKL hKL) = 0;
2606 
2607 };
2608 #ifdef __CRT_UUID_DECL
2609 __CRT_UUID_DECL(ITfInputProcessorProfiles, 0x1f02b6c5, 0x7842, 0x4ee6, 0x8a,0x0b, 0x9a,0x24,0x18,0x3a,0x95,0xca)
2610 #endif
2611 #else
2612 typedef struct ITfInputProcessorProfilesVtbl {
2613     BEGIN_INTERFACE
2614 
2615     /*** IUnknown methods ***/
2616     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2617         ITfInputProcessorProfiles *This,
2618         REFIID riid,
2619         void **ppvObject);
2620 
2621     ULONG (STDMETHODCALLTYPE *AddRef)(
2622         ITfInputProcessorProfiles *This);
2623 
2624     ULONG (STDMETHODCALLTYPE *Release)(
2625         ITfInputProcessorProfiles *This);
2626 
2627     /*** ITfInputProcessorProfiles methods ***/
2628     HRESULT (STDMETHODCALLTYPE *Register)(
2629         ITfInputProcessorProfiles *This,
2630         REFCLSID rclsid);
2631 
2632     HRESULT (STDMETHODCALLTYPE *Unregister)(
2633         ITfInputProcessorProfiles *This,
2634         REFCLSID rclsid);
2635 
2636     HRESULT (STDMETHODCALLTYPE *AddLanguageProfile)(
2637         ITfInputProcessorProfiles *This,
2638         REFCLSID rclsid,
2639         LANGID langid,
2640         REFGUID guidProfile,
2641         const WCHAR *pchDesc,
2642         ULONG cchDesc,
2643         const WCHAR *pchIconFile,
2644         ULONG cchFile,
2645         ULONG uIconIndex);
2646 
2647     HRESULT (STDMETHODCALLTYPE *RemoveLanguageProfile)(
2648         ITfInputProcessorProfiles *This,
2649         REFCLSID rclsid,
2650         LANGID langid,
2651         REFGUID guidProfile);
2652 
2653     HRESULT (STDMETHODCALLTYPE *EnumInputProcessorInfo)(
2654         ITfInputProcessorProfiles *This,
2655         IEnumGUID **ppEnum);
2656 
2657     HRESULT (STDMETHODCALLTYPE *GetDefaultLanguageProfile)(
2658         ITfInputProcessorProfiles *This,
2659         LANGID langid,
2660         REFGUID catid,
2661         CLSID *pclsid,
2662         GUID *pguidProfile);
2663 
2664     HRESULT (STDMETHODCALLTYPE *SetDefaultLanguageProfile)(
2665         ITfInputProcessorProfiles *This,
2666         LANGID langid,
2667         REFCLSID rclsid,
2668         REFGUID guidProfiles);
2669 
2670     HRESULT (STDMETHODCALLTYPE *ActivateLanguageProfile)(
2671         ITfInputProcessorProfiles *This,
2672         REFCLSID rclsid,
2673         LANGID langid,
2674         REFGUID guidProfiles);
2675 
2676     HRESULT (STDMETHODCALLTYPE *GetActiveLanguageProfile)(
2677         ITfInputProcessorProfiles *This,
2678         REFCLSID rclsid,
2679         LANGID *plangid,
2680         GUID *pguidProfile);
2681 
2682     HRESULT (STDMETHODCALLTYPE *GetLanguageProfileDescription)(
2683         ITfInputProcessorProfiles *This,
2684         REFCLSID rclsid,
2685         LANGID langid,
2686         REFGUID guidProfile,
2687         BSTR *pbstrProfile);
2688 
2689     HRESULT (STDMETHODCALLTYPE *GetCurrentLanguage)(
2690         ITfInputProcessorProfiles *This,
2691         LANGID *plangid);
2692 
2693     HRESULT (STDMETHODCALLTYPE *ChangeCurrentLanguage)(
2694         ITfInputProcessorProfiles *This,
2695         LANGID langid);
2696 
2697     HRESULT (STDMETHODCALLTYPE *GetLanguageList)(
2698         ITfInputProcessorProfiles *This,
2699         LANGID **ppLangId,
2700         ULONG *pulCount);
2701 
2702     HRESULT (STDMETHODCALLTYPE *EnumLanguageProfiles)(
2703         ITfInputProcessorProfiles *This,
2704         LANGID langid,
2705         IEnumTfLanguageProfiles **ppEnum);
2706 
2707     HRESULT (STDMETHODCALLTYPE *EnableLanguageProfile)(
2708         ITfInputProcessorProfiles *This,
2709         REFCLSID rclsid,
2710         LANGID langid,
2711         REFGUID guidProfile,
2712         WINBOOL fEnable);
2713 
2714     HRESULT (STDMETHODCALLTYPE *IsEnabledLanguageProfile)(
2715         ITfInputProcessorProfiles *This,
2716         REFCLSID rclsid,
2717         LANGID langid,
2718         REFGUID guidProfile,
2719         WINBOOL *pfEnable);
2720 
2721     HRESULT (STDMETHODCALLTYPE *EnableLanguageProfileByDefault)(
2722         ITfInputProcessorProfiles *This,
2723         REFCLSID rclsid,
2724         LANGID langid,
2725         REFGUID guidProfile,
2726         WINBOOL fEnable);
2727 
2728     HRESULT (STDMETHODCALLTYPE *SubstituteKeyboardLayout)(
2729         ITfInputProcessorProfiles *This,
2730         REFCLSID rclsid,
2731         LANGID langid,
2732         REFGUID guidProfile,
2733         HKL hKL);
2734 
2735     END_INTERFACE
2736 } ITfInputProcessorProfilesVtbl;
2737 
2738 interface ITfInputProcessorProfiles {
2739     CONST_VTBL ITfInputProcessorProfilesVtbl* lpVtbl;
2740 };
2741 
2742 #ifdef COBJMACROS
2743 #ifndef WIDL_C_INLINE_WRAPPERS
2744 /*** IUnknown methods ***/
2745 #define ITfInputProcessorProfiles_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2746 #define ITfInputProcessorProfiles_AddRef(This) (This)->lpVtbl->AddRef(This)
2747 #define ITfInputProcessorProfiles_Release(This) (This)->lpVtbl->Release(This)
2748 /*** ITfInputProcessorProfiles methods ***/
2749 #define ITfInputProcessorProfiles_Register(This,rclsid) (This)->lpVtbl->Register(This,rclsid)
2750 #define ITfInputProcessorProfiles_Unregister(This,rclsid) (This)->lpVtbl->Unregister(This,rclsid)
2751 #define ITfInputProcessorProfiles_AddLanguageProfile(This,rclsid,langid,guidProfile,pchDesc,cchDesc,pchIconFile,cchFile,uIconIndex) (This)->lpVtbl->AddLanguageProfile(This,rclsid,langid,guidProfile,pchDesc,cchDesc,pchIconFile,cchFile,uIconIndex)
2752 #define ITfInputProcessorProfiles_RemoveLanguageProfile(This,rclsid,langid,guidProfile) (This)->lpVtbl->RemoveLanguageProfile(This,rclsid,langid,guidProfile)
2753 #define ITfInputProcessorProfiles_EnumInputProcessorInfo(This,ppEnum) (This)->lpVtbl->EnumInputProcessorInfo(This,ppEnum)
2754 #define ITfInputProcessorProfiles_GetDefaultLanguageProfile(This,langid,catid,pclsid,pguidProfile) (This)->lpVtbl->GetDefaultLanguageProfile(This,langid,catid,pclsid,pguidProfile)
2755 #define ITfInputProcessorProfiles_SetDefaultLanguageProfile(This,langid,rclsid,guidProfiles) (This)->lpVtbl->SetDefaultLanguageProfile(This,langid,rclsid,guidProfiles)
2756 #define ITfInputProcessorProfiles_ActivateLanguageProfile(This,rclsid,langid,guidProfiles) (This)->lpVtbl->ActivateLanguageProfile(This,rclsid,langid,guidProfiles)
2757 #define ITfInputProcessorProfiles_GetActiveLanguageProfile(This,rclsid,plangid,pguidProfile) (This)->lpVtbl->GetActiveLanguageProfile(This,rclsid,plangid,pguidProfile)
2758 #define ITfInputProcessorProfiles_GetLanguageProfileDescription(This,rclsid,langid,guidProfile,pbstrProfile) (This)->lpVtbl->GetLanguageProfileDescription(This,rclsid,langid,guidProfile,pbstrProfile)
2759 #define ITfInputProcessorProfiles_GetCurrentLanguage(This,plangid) (This)->lpVtbl->GetCurrentLanguage(This,plangid)
2760 #define ITfInputProcessorProfiles_ChangeCurrentLanguage(This,langid) (This)->lpVtbl->ChangeCurrentLanguage(This,langid)
2761 #define ITfInputProcessorProfiles_GetLanguageList(This,ppLangId,pulCount) (This)->lpVtbl->GetLanguageList(This,ppLangId,pulCount)
2762 #define ITfInputProcessorProfiles_EnumLanguageProfiles(This,langid,ppEnum) (This)->lpVtbl->EnumLanguageProfiles(This,langid,ppEnum)
2763 #define ITfInputProcessorProfiles_EnableLanguageProfile(This,rclsid,langid,guidProfile,fEnable) (This)->lpVtbl->EnableLanguageProfile(This,rclsid,langid,guidProfile,fEnable)
2764 #define ITfInputProcessorProfiles_IsEnabledLanguageProfile(This,rclsid,langid,guidProfile,pfEnable) (This)->lpVtbl->IsEnabledLanguageProfile(This,rclsid,langid,guidProfile,pfEnable)
2765 #define ITfInputProcessorProfiles_EnableLanguageProfileByDefault(This,rclsid,langid,guidProfile,fEnable) (This)->lpVtbl->EnableLanguageProfileByDefault(This,rclsid,langid,guidProfile,fEnable)
2766 #define ITfInputProcessorProfiles_SubstituteKeyboardLayout(This,rclsid,langid,guidProfile,hKL) (This)->lpVtbl->SubstituteKeyboardLayout(This,rclsid,langid,guidProfile,hKL)
2767 #else
2768 /*** IUnknown methods ***/
2769 static FORCEINLINE HRESULT ITfInputProcessorProfiles_QueryInterface(ITfInputProcessorProfiles* This,REFIID riid,void **ppvObject) {
2770     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2771 }
2772 static FORCEINLINE ULONG ITfInputProcessorProfiles_AddRef(ITfInputProcessorProfiles* This) {
2773     return This->lpVtbl->AddRef(This);
2774 }
2775 static FORCEINLINE ULONG ITfInputProcessorProfiles_Release(ITfInputProcessorProfiles* This) {
2776     return This->lpVtbl->Release(This);
2777 }
2778 /*** ITfInputProcessorProfiles methods ***/
2779 static FORCEINLINE HRESULT ITfInputProcessorProfiles_Register(ITfInputProcessorProfiles* This,REFCLSID rclsid) {
2780     return This->lpVtbl->Register(This,rclsid);
2781 }
2782 static FORCEINLINE HRESULT ITfInputProcessorProfiles_Unregister(ITfInputProcessorProfiles* This,REFCLSID rclsid) {
2783     return This->lpVtbl->Unregister(This,rclsid);
2784 }
2785 static FORCEINLINE HRESULT ITfInputProcessorProfiles_AddLanguageProfile(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,const WCHAR *pchDesc,ULONG cchDesc,const WCHAR *pchIconFile,ULONG cchFile,ULONG uIconIndex) {
2786     return This->lpVtbl->AddLanguageProfile(This,rclsid,langid,guidProfile,pchDesc,cchDesc,pchIconFile,cchFile,uIconIndex);
2787 }
2788 static FORCEINLINE HRESULT ITfInputProcessorProfiles_RemoveLanguageProfile(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile) {
2789     return This->lpVtbl->RemoveLanguageProfile(This,rclsid,langid,guidProfile);
2790 }
2791 static FORCEINLINE HRESULT ITfInputProcessorProfiles_EnumInputProcessorInfo(ITfInputProcessorProfiles* This,IEnumGUID **ppEnum) {
2792     return This->lpVtbl->EnumInputProcessorInfo(This,ppEnum);
2793 }
2794 static FORCEINLINE HRESULT ITfInputProcessorProfiles_GetDefaultLanguageProfile(ITfInputProcessorProfiles* This,LANGID langid,REFGUID catid,CLSID *pclsid,GUID *pguidProfile) {
2795     return This->lpVtbl->GetDefaultLanguageProfile(This,langid,catid,pclsid,pguidProfile);
2796 }
2797 static FORCEINLINE HRESULT ITfInputProcessorProfiles_SetDefaultLanguageProfile(ITfInputProcessorProfiles* This,LANGID langid,REFCLSID rclsid,REFGUID guidProfiles) {
2798     return This->lpVtbl->SetDefaultLanguageProfile(This,langid,rclsid,guidProfiles);
2799 }
2800 static FORCEINLINE HRESULT ITfInputProcessorProfiles_ActivateLanguageProfile(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfiles) {
2801     return This->lpVtbl->ActivateLanguageProfile(This,rclsid,langid,guidProfiles);
2802 }
2803 static FORCEINLINE HRESULT ITfInputProcessorProfiles_GetActiveLanguageProfile(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID *plangid,GUID *pguidProfile) {
2804     return This->lpVtbl->GetActiveLanguageProfile(This,rclsid,plangid,pguidProfile);
2805 }
2806 static FORCEINLINE HRESULT ITfInputProcessorProfiles_GetLanguageProfileDescription(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,BSTR *pbstrProfile) {
2807     return This->lpVtbl->GetLanguageProfileDescription(This,rclsid,langid,guidProfile,pbstrProfile);
2808 }
2809 static FORCEINLINE HRESULT ITfInputProcessorProfiles_GetCurrentLanguage(ITfInputProcessorProfiles* This,LANGID *plangid) {
2810     return This->lpVtbl->GetCurrentLanguage(This,plangid);
2811 }
2812 static FORCEINLINE HRESULT ITfInputProcessorProfiles_ChangeCurrentLanguage(ITfInputProcessorProfiles* This,LANGID langid) {
2813     return This->lpVtbl->ChangeCurrentLanguage(This,langid);
2814 }
2815 static FORCEINLINE HRESULT ITfInputProcessorProfiles_GetLanguageList(ITfInputProcessorProfiles* This,LANGID **ppLangId,ULONG *pulCount) {
2816     return This->lpVtbl->GetLanguageList(This,ppLangId,pulCount);
2817 }
2818 static FORCEINLINE HRESULT ITfInputProcessorProfiles_EnumLanguageProfiles(ITfInputProcessorProfiles* This,LANGID langid,IEnumTfLanguageProfiles **ppEnum) {
2819     return This->lpVtbl->EnumLanguageProfiles(This,langid,ppEnum);
2820 }
2821 static FORCEINLINE HRESULT ITfInputProcessorProfiles_EnableLanguageProfile(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,WINBOOL fEnable) {
2822     return This->lpVtbl->EnableLanguageProfile(This,rclsid,langid,guidProfile,fEnable);
2823 }
2824 static FORCEINLINE HRESULT ITfInputProcessorProfiles_IsEnabledLanguageProfile(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,WINBOOL *pfEnable) {
2825     return This->lpVtbl->IsEnabledLanguageProfile(This,rclsid,langid,guidProfile,pfEnable);
2826 }
2827 static FORCEINLINE HRESULT ITfInputProcessorProfiles_EnableLanguageProfileByDefault(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,WINBOOL fEnable) {
2828     return This->lpVtbl->EnableLanguageProfileByDefault(This,rclsid,langid,guidProfile,fEnable);
2829 }
2830 static FORCEINLINE HRESULT ITfInputProcessorProfiles_SubstituteKeyboardLayout(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,HKL hKL) {
2831     return This->lpVtbl->SubstituteKeyboardLayout(This,rclsid,langid,guidProfile,hKL);
2832 }
2833 #endif
2834 #endif
2835 
2836 #endif
2837 
2838 
2839 #endif  /* __ITfInputProcessorProfiles_INTERFACE_DEFINED__ */
2840 
2841 typedef struct TF_INPUTPROCESSORPROFILE {
2842     DWORD dwProfileType;
2843     LANGID langid;
2844     CLSID clsid;
2845     GUID guidProfile;
2846     GUID catid;
2847     HKL hklSubstitute;
2848     DWORD dwCaps;
2849     HKL hkl;
2850     DWORD dwFlags;
2851 } TF_INPUTPROCESSORPROFILE;
2852 /*****************************************************************************
2853  * IEnumTfInputProcessorProfiles interface
2854  */
2855 #ifndef __IEnumTfInputProcessorProfiles_INTERFACE_DEFINED__
2856 #define __IEnumTfInputProcessorProfiles_INTERFACE_DEFINED__
2857 
2858 DEFINE_GUID(IID_IEnumTfInputProcessorProfiles, 0x71c6e74d, 0x0f28, 0x11d8, 0xa8,0x2a, 0x00,0x06,0x5b,0x84,0x43,0x5c);
2859 #if defined(__cplusplus) && !defined(CINTERFACE)
2860 MIDL_INTERFACE("71c6e74d-0f28-11d8-a82a-00065b84435c")
2861 IEnumTfInputProcessorProfiles : public IUnknown
2862 {
2863     virtual HRESULT STDMETHODCALLTYPE Clone(
2864         IEnumTfInputProcessorProfiles **ppEnum) = 0;
2865 
2866     virtual HRESULT STDMETHODCALLTYPE Next(
2867         ULONG ulCount,
2868         TF_INPUTPROCESSORPROFILE *pProfile,
2869         ULONG *pcFetch) = 0;
2870 
2871     virtual HRESULT STDMETHODCALLTYPE Reset(
2872         ) = 0;
2873 
2874     virtual HRESULT STDMETHODCALLTYPE Skip(
2875         ULONG ulCount) = 0;
2876 
2877 };
2878 #ifdef __CRT_UUID_DECL
2879 __CRT_UUID_DECL(IEnumTfInputProcessorProfiles, 0x71c6e74d, 0x0f28, 0x11d8, 0xa8,0x2a, 0x00,0x06,0x5b,0x84,0x43,0x5c)
2880 #endif
2881 #else
2882 typedef struct IEnumTfInputProcessorProfilesVtbl {
2883     BEGIN_INTERFACE
2884 
2885     /*** IUnknown methods ***/
2886     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2887         IEnumTfInputProcessorProfiles *This,
2888         REFIID riid,
2889         void **ppvObject);
2890 
2891     ULONG (STDMETHODCALLTYPE *AddRef)(
2892         IEnumTfInputProcessorProfiles *This);
2893 
2894     ULONG (STDMETHODCALLTYPE *Release)(
2895         IEnumTfInputProcessorProfiles *This);
2896 
2897     /*** IEnumTfInputProcessorProfiles methods ***/
2898     HRESULT (STDMETHODCALLTYPE *Clone)(
2899         IEnumTfInputProcessorProfiles *This,
2900         IEnumTfInputProcessorProfiles **ppEnum);
2901 
2902     HRESULT (STDMETHODCALLTYPE *Next)(
2903         IEnumTfInputProcessorProfiles *This,
2904         ULONG ulCount,
2905         TF_INPUTPROCESSORPROFILE *pProfile,
2906         ULONG *pcFetch);
2907 
2908     HRESULT (STDMETHODCALLTYPE *Reset)(
2909         IEnumTfInputProcessorProfiles *This);
2910 
2911     HRESULT (STDMETHODCALLTYPE *Skip)(
2912         IEnumTfInputProcessorProfiles *This,
2913         ULONG ulCount);
2914 
2915     END_INTERFACE
2916 } IEnumTfInputProcessorProfilesVtbl;
2917 
2918 interface IEnumTfInputProcessorProfiles {
2919     CONST_VTBL IEnumTfInputProcessorProfilesVtbl* lpVtbl;
2920 };
2921 
2922 #ifdef COBJMACROS
2923 #ifndef WIDL_C_INLINE_WRAPPERS
2924 /*** IUnknown methods ***/
2925 #define IEnumTfInputProcessorProfiles_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2926 #define IEnumTfInputProcessorProfiles_AddRef(This) (This)->lpVtbl->AddRef(This)
2927 #define IEnumTfInputProcessorProfiles_Release(This) (This)->lpVtbl->Release(This)
2928 /*** IEnumTfInputProcessorProfiles methods ***/
2929 #define IEnumTfInputProcessorProfiles_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
2930 #define IEnumTfInputProcessorProfiles_Next(This,ulCount,pProfile,pcFetch) (This)->lpVtbl->Next(This,ulCount,pProfile,pcFetch)
2931 #define IEnumTfInputProcessorProfiles_Reset(This) (This)->lpVtbl->Reset(This)
2932 #define IEnumTfInputProcessorProfiles_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
2933 #else
2934 /*** IUnknown methods ***/
2935 static FORCEINLINE HRESULT IEnumTfInputProcessorProfiles_QueryInterface(IEnumTfInputProcessorProfiles* This,REFIID riid,void **ppvObject) {
2936     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2937 }
2938 static FORCEINLINE ULONG IEnumTfInputProcessorProfiles_AddRef(IEnumTfInputProcessorProfiles* This) {
2939     return This->lpVtbl->AddRef(This);
2940 }
2941 static FORCEINLINE ULONG IEnumTfInputProcessorProfiles_Release(IEnumTfInputProcessorProfiles* This) {
2942     return This->lpVtbl->Release(This);
2943 }
2944 /*** IEnumTfInputProcessorProfiles methods ***/
2945 static FORCEINLINE HRESULT IEnumTfInputProcessorProfiles_Clone(IEnumTfInputProcessorProfiles* This,IEnumTfInputProcessorProfiles **ppEnum) {
2946     return This->lpVtbl->Clone(This,ppEnum);
2947 }
2948 static FORCEINLINE HRESULT IEnumTfInputProcessorProfiles_Next(IEnumTfInputProcessorProfiles* This,ULONG ulCount,TF_INPUTPROCESSORPROFILE *pProfile,ULONG *pcFetch) {
2949     return This->lpVtbl->Next(This,ulCount,pProfile,pcFetch);
2950 }
2951 static FORCEINLINE HRESULT IEnumTfInputProcessorProfiles_Reset(IEnumTfInputProcessorProfiles* This) {
2952     return This->lpVtbl->Reset(This);
2953 }
2954 static FORCEINLINE HRESULT IEnumTfInputProcessorProfiles_Skip(IEnumTfInputProcessorProfiles* This,ULONG ulCount) {
2955     return This->lpVtbl->Skip(This,ulCount);
2956 }
2957 #endif
2958 #endif
2959 
2960 #endif
2961 
2962 
2963 #endif  /* __IEnumTfInputProcessorProfiles_INTERFACE_DEFINED__ */
2964 
2965 /*****************************************************************************
2966  * ITfInputProcessorProfileMgr interface
2967  */
2968 #ifndef __ITfInputProcessorProfileMgr_INTERFACE_DEFINED__
2969 #define __ITfInputProcessorProfileMgr_INTERFACE_DEFINED__
2970 
2971 DEFINE_GUID(IID_ITfInputProcessorProfileMgr, 0x71c6e74c, 0x0f28, 0x11d8, 0xa8,0x2a, 0x00,0x06,0x5b,0x84,0x43,0x5c);
2972 #if defined(__cplusplus) && !defined(CINTERFACE)
2973 MIDL_INTERFACE("71c6e74c-0f28-11d8-a82a-00065b84435c")
2974 ITfInputProcessorProfileMgr : public IUnknown
2975 {
2976     virtual HRESULT STDMETHODCALLTYPE ActivateProfile(
2977         DWORD dwProfileType,
2978         LANGID langid,
2979         REFCLSID clsid,
2980         REFGUID guidProfile,
2981         HKL hkl,
2982         DWORD dwFlags) = 0;
2983 
2984     virtual HRESULT STDMETHODCALLTYPE DeactivateProfile(
2985         DWORD dwProfileType,
2986         LANGID langid,
2987         REFCLSID clsid,
2988         REFGUID guidProfile,
2989         HKL hkl,
2990         DWORD dwFlags) = 0;
2991 
2992     virtual HRESULT STDMETHODCALLTYPE GetProfile(
2993         DWORD dwProfileType,
2994         LANGID langid,
2995         REFCLSID clsid,
2996         REFGUID guidProfile,
2997         HKL hkl,
2998         TF_INPUTPROCESSORPROFILE *pProfile) = 0;
2999 
3000     virtual HRESULT STDMETHODCALLTYPE EnumProfiles(
3001         LANGID langid,
3002         IEnumTfInputProcessorProfiles **ppEnum) = 0;
3003 
3004     virtual HRESULT STDMETHODCALLTYPE ReleaseInputProcessor(
3005         REFCLSID rclsid,
3006         DWORD dwFlags) = 0;
3007 
3008     virtual HRESULT STDMETHODCALLTYPE RegisterProfile(
3009         REFCLSID rclsid,
3010         LANGID langid,
3011         REFGUID guidProfile,
3012         const WCHAR *pchDesc,
3013         ULONG cchDesc,
3014         const WCHAR *pchIconFile,
3015         ULONG cchFile,
3016         ULONG uIconIndex,
3017         HKL hklsubstitute,
3018         DWORD dwPreferredLayout,
3019         WINBOOL bEnabledByDefault,
3020         DWORD dwFlags) = 0;
3021 
3022     virtual HRESULT STDMETHODCALLTYPE UnregisterProfile(
3023         REFCLSID rclsid,
3024         LANGID langid,
3025         REFGUID guidProfile,
3026         DWORD dwFlags) = 0;
3027 
3028     virtual HRESULT STDMETHODCALLTYPE GetActiveProfile(
3029         REFGUID catid,
3030         TF_INPUTPROCESSORPROFILE *pProfile) = 0;
3031 
3032 };
3033 #ifdef __CRT_UUID_DECL
3034 __CRT_UUID_DECL(ITfInputProcessorProfileMgr, 0x71c6e74c, 0x0f28, 0x11d8, 0xa8,0x2a, 0x00,0x06,0x5b,0x84,0x43,0x5c)
3035 #endif
3036 #else
3037 typedef struct ITfInputProcessorProfileMgrVtbl {
3038     BEGIN_INTERFACE
3039 
3040     /*** IUnknown methods ***/
3041     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3042         ITfInputProcessorProfileMgr *This,
3043         REFIID riid,
3044         void **ppvObject);
3045 
3046     ULONG (STDMETHODCALLTYPE *AddRef)(
3047         ITfInputProcessorProfileMgr *This);
3048 
3049     ULONG (STDMETHODCALLTYPE *Release)(
3050         ITfInputProcessorProfileMgr *This);
3051 
3052     /*** ITfInputProcessorProfileMgr methods ***/
3053     HRESULT (STDMETHODCALLTYPE *ActivateProfile)(
3054         ITfInputProcessorProfileMgr *This,
3055         DWORD dwProfileType,
3056         LANGID langid,
3057         REFCLSID clsid,
3058         REFGUID guidProfile,
3059         HKL hkl,
3060         DWORD dwFlags);
3061 
3062     HRESULT (STDMETHODCALLTYPE *DeactivateProfile)(
3063         ITfInputProcessorProfileMgr *This,
3064         DWORD dwProfileType,
3065         LANGID langid,
3066         REFCLSID clsid,
3067         REFGUID guidProfile,
3068         HKL hkl,
3069         DWORD dwFlags);
3070 
3071     HRESULT (STDMETHODCALLTYPE *GetProfile)(
3072         ITfInputProcessorProfileMgr *This,
3073         DWORD dwProfileType,
3074         LANGID langid,
3075         REFCLSID clsid,
3076         REFGUID guidProfile,
3077         HKL hkl,
3078         TF_INPUTPROCESSORPROFILE *pProfile);
3079 
3080     HRESULT (STDMETHODCALLTYPE *EnumProfiles)(
3081         ITfInputProcessorProfileMgr *This,
3082         LANGID langid,
3083         IEnumTfInputProcessorProfiles **ppEnum);
3084 
3085     HRESULT (STDMETHODCALLTYPE *ReleaseInputProcessor)(
3086         ITfInputProcessorProfileMgr *This,
3087         REFCLSID rclsid,
3088         DWORD dwFlags);
3089 
3090     HRESULT (STDMETHODCALLTYPE *RegisterProfile)(
3091         ITfInputProcessorProfileMgr *This,
3092         REFCLSID rclsid,
3093         LANGID langid,
3094         REFGUID guidProfile,
3095         const WCHAR *pchDesc,
3096         ULONG cchDesc,
3097         const WCHAR *pchIconFile,
3098         ULONG cchFile,
3099         ULONG uIconIndex,
3100         HKL hklsubstitute,
3101         DWORD dwPreferredLayout,
3102         WINBOOL bEnabledByDefault,
3103         DWORD dwFlags);
3104 
3105     HRESULT (STDMETHODCALLTYPE *UnregisterProfile)(
3106         ITfInputProcessorProfileMgr *This,
3107         REFCLSID rclsid,
3108         LANGID langid,
3109         REFGUID guidProfile,
3110         DWORD dwFlags);
3111 
3112     HRESULT (STDMETHODCALLTYPE *GetActiveProfile)(
3113         ITfInputProcessorProfileMgr *This,
3114         REFGUID catid,
3115         TF_INPUTPROCESSORPROFILE *pProfile);
3116 
3117     END_INTERFACE
3118 } ITfInputProcessorProfileMgrVtbl;
3119 
3120 interface ITfInputProcessorProfileMgr {
3121     CONST_VTBL ITfInputProcessorProfileMgrVtbl* lpVtbl;
3122 };
3123 
3124 #ifdef COBJMACROS
3125 #ifndef WIDL_C_INLINE_WRAPPERS
3126 /*** IUnknown methods ***/
3127 #define ITfInputProcessorProfileMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3128 #define ITfInputProcessorProfileMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
3129 #define ITfInputProcessorProfileMgr_Release(This) (This)->lpVtbl->Release(This)
3130 /*** ITfInputProcessorProfileMgr methods ***/
3131 #define ITfInputProcessorProfileMgr_ActivateProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,dwFlags) (This)->lpVtbl->ActivateProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,dwFlags)
3132 #define ITfInputProcessorProfileMgr_DeactivateProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,dwFlags) (This)->lpVtbl->DeactivateProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,dwFlags)
3133 #define ITfInputProcessorProfileMgr_GetProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,pProfile) (This)->lpVtbl->GetProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,pProfile)
3134 #define ITfInputProcessorProfileMgr_EnumProfiles(This,langid,ppEnum) (This)->lpVtbl->EnumProfiles(This,langid,ppEnum)
3135 #define ITfInputProcessorProfileMgr_ReleaseInputProcessor(This,rclsid,dwFlags) (This)->lpVtbl->ReleaseInputProcessor(This,rclsid,dwFlags)
3136 #define ITfInputProcessorProfileMgr_RegisterProfile(This,rclsid,langid,guidProfile,pchDesc,cchDesc,pchIconFile,cchFile,uIconIndex,hklsubstitute,dwPreferredLayout,bEnabledByDefault,dwFlags) (This)->lpVtbl->RegisterProfile(This,rclsid,langid,guidProfile,pchDesc,cchDesc,pchIconFile,cchFile,uIconIndex,hklsubstitute,dwPreferredLayout,bEnabledByDefault,dwFlags)
3137 #define ITfInputProcessorProfileMgr_UnregisterProfile(This,rclsid,langid,guidProfile,dwFlags) (This)->lpVtbl->UnregisterProfile(This,rclsid,langid,guidProfile,dwFlags)
3138 #define ITfInputProcessorProfileMgr_GetActiveProfile(This,catid,pProfile) (This)->lpVtbl->GetActiveProfile(This,catid,pProfile)
3139 #else
3140 /*** IUnknown methods ***/
3141 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_QueryInterface(ITfInputProcessorProfileMgr* This,REFIID riid,void **ppvObject) {
3142     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3143 }
3144 static FORCEINLINE ULONG ITfInputProcessorProfileMgr_AddRef(ITfInputProcessorProfileMgr* This) {
3145     return This->lpVtbl->AddRef(This);
3146 }
3147 static FORCEINLINE ULONG ITfInputProcessorProfileMgr_Release(ITfInputProcessorProfileMgr* This) {
3148     return This->lpVtbl->Release(This);
3149 }
3150 /*** ITfInputProcessorProfileMgr methods ***/
3151 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_ActivateProfile(ITfInputProcessorProfileMgr* This,DWORD dwProfileType,LANGID langid,REFCLSID clsid,REFGUID guidProfile,HKL hkl,DWORD dwFlags) {
3152     return This->lpVtbl->ActivateProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,dwFlags);
3153 }
3154 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_DeactivateProfile(ITfInputProcessorProfileMgr* This,DWORD dwProfileType,LANGID langid,REFCLSID clsid,REFGUID guidProfile,HKL hkl,DWORD dwFlags) {
3155     return This->lpVtbl->DeactivateProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,dwFlags);
3156 }
3157 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_GetProfile(ITfInputProcessorProfileMgr* This,DWORD dwProfileType,LANGID langid,REFCLSID clsid,REFGUID guidProfile,HKL hkl,TF_INPUTPROCESSORPROFILE *pProfile) {
3158     return This->lpVtbl->GetProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,pProfile);
3159 }
3160 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_EnumProfiles(ITfInputProcessorProfileMgr* This,LANGID langid,IEnumTfInputProcessorProfiles **ppEnum) {
3161     return This->lpVtbl->EnumProfiles(This,langid,ppEnum);
3162 }
3163 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_ReleaseInputProcessor(ITfInputProcessorProfileMgr* This,REFCLSID rclsid,DWORD dwFlags) {
3164     return This->lpVtbl->ReleaseInputProcessor(This,rclsid,dwFlags);
3165 }
3166 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_RegisterProfile(ITfInputProcessorProfileMgr* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,const WCHAR *pchDesc,ULONG cchDesc,const WCHAR *pchIconFile,ULONG cchFile,ULONG uIconIndex,HKL hklsubstitute,DWORD dwPreferredLayout,WINBOOL bEnabledByDefault,DWORD dwFlags) {
3167     return This->lpVtbl->RegisterProfile(This,rclsid,langid,guidProfile,pchDesc,cchDesc,pchIconFile,cchFile,uIconIndex,hklsubstitute,dwPreferredLayout,bEnabledByDefault,dwFlags);
3168 }
3169 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_UnregisterProfile(ITfInputProcessorProfileMgr* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,DWORD dwFlags) {
3170     return This->lpVtbl->UnregisterProfile(This,rclsid,langid,guidProfile,dwFlags);
3171 }
3172 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_GetActiveProfile(ITfInputProcessorProfileMgr* This,REFGUID catid,TF_INPUTPROCESSORPROFILE *pProfile) {
3173     return This->lpVtbl->GetActiveProfile(This,catid,pProfile);
3174 }
3175 #endif
3176 #endif
3177 
3178 #endif
3179 
3180 
3181 #endif  /* __ITfInputProcessorProfileMgr_INTERFACE_DEFINED__ */
3182 
3183 typedef enum __WIDL_msctf_generated_name_00000014 {
3184     TF_LS_NONE = 0,
3185     TF_LS_SOLID = 1,
3186     TF_LS_DOT = 2,
3187     TF_LS_DASH = 3,
3188     TF_LS_SQUIGGLE = 4
3189 } TF_DA_LINESTYLE;
3190 typedef enum __WIDL_msctf_generated_name_00000015 {
3191     TF_CT_NONE = 0,
3192     TF_CT_SYSCOLOR = 1,
3193     TF_CT_COLORREF = 2
3194 } TF_DA_COLORTYPE;
3195 typedef struct TF_DA_COLOR {
3196     TF_DA_COLORTYPE type;
3197     __C89_NAMELESS union {
3198         int nIndex;
3199         COLORREF cr;
3200     } __C89_NAMELESSUNIONNAME;
3201 } TF_DA_COLOR;
3202 typedef enum __WIDL_msctf_generated_name_00000016 {
3203     TF_ATTR_INPUT = 0,
3204     TF_ATTR_TARGET_CONVERTED = 1,
3205     TF_ATTR_CONVERTED = 2,
3206     TF_ATTR_TARGET_NOTCONVERTED = 3,
3207     TF_ATTR_INPUT_ERROR = 4,
3208     TF_ATTR_FIXEDCONVERTED = 5,
3209     TF_ATTR_OTHER = -1
3210 } TF_DA_ATTR_INFO;
3211 typedef struct TF_DISPLAYATTRIBUTE {
3212     TF_DA_COLOR crText;
3213     TF_DA_COLOR crBk;
3214     TF_DA_LINESTYLE lsStyle;
3215     WINBOOL fBoldLine;
3216     TF_DA_COLOR crLine;
3217     TF_DA_ATTR_INFO bAttr;
3218 } TF_DISPLAYATTRIBUTE;
3219 /*****************************************************************************
3220  * ITfDisplayAttributeInfo interface
3221  */
3222 #ifndef __ITfDisplayAttributeInfo_INTERFACE_DEFINED__
3223 #define __ITfDisplayAttributeInfo_INTERFACE_DEFINED__
3224 
3225 DEFINE_GUID(IID_ITfDisplayAttributeInfo, 0x70528852, 0x2f26, 0x4aea, 0x8c,0x96, 0x21,0x51,0x50,0x57,0x89,0x32);
3226 #if defined(__cplusplus) && !defined(CINTERFACE)
3227 MIDL_INTERFACE("70528852-2f26-4aea-8c96-215150578932")
3228 ITfDisplayAttributeInfo : public IUnknown
3229 {
3230     virtual HRESULT STDMETHODCALLTYPE GetGUID(
3231         GUID *pguid) = 0;
3232 
3233     virtual HRESULT STDMETHODCALLTYPE GetDescription(
3234         BSTR *pbstrDesc) = 0;
3235 
3236     virtual HRESULT STDMETHODCALLTYPE GetAttributeInfo(
3237         TF_DISPLAYATTRIBUTE *pda) = 0;
3238 
3239     virtual HRESULT STDMETHODCALLTYPE SetAttributeInfo(
3240         const TF_DISPLAYATTRIBUTE *pda) = 0;
3241 
3242     virtual HRESULT STDMETHODCALLTYPE Reset(
3243         ) = 0;
3244 
3245 };
3246 #ifdef __CRT_UUID_DECL
3247 __CRT_UUID_DECL(ITfDisplayAttributeInfo, 0x70528852, 0x2f26, 0x4aea, 0x8c,0x96, 0x21,0x51,0x50,0x57,0x89,0x32)
3248 #endif
3249 #else
3250 typedef struct ITfDisplayAttributeInfoVtbl {
3251     BEGIN_INTERFACE
3252 
3253     /*** IUnknown methods ***/
3254     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3255         ITfDisplayAttributeInfo *This,
3256         REFIID riid,
3257         void **ppvObject);
3258 
3259     ULONG (STDMETHODCALLTYPE *AddRef)(
3260         ITfDisplayAttributeInfo *This);
3261 
3262     ULONG (STDMETHODCALLTYPE *Release)(
3263         ITfDisplayAttributeInfo *This);
3264 
3265     /*** ITfDisplayAttributeInfo methods ***/
3266     HRESULT (STDMETHODCALLTYPE *GetGUID)(
3267         ITfDisplayAttributeInfo *This,
3268         GUID *pguid);
3269 
3270     HRESULT (STDMETHODCALLTYPE *GetDescription)(
3271         ITfDisplayAttributeInfo *This,
3272         BSTR *pbstrDesc);
3273 
3274     HRESULT (STDMETHODCALLTYPE *GetAttributeInfo)(
3275         ITfDisplayAttributeInfo *This,
3276         TF_DISPLAYATTRIBUTE *pda);
3277 
3278     HRESULT (STDMETHODCALLTYPE *SetAttributeInfo)(
3279         ITfDisplayAttributeInfo *This,
3280         const TF_DISPLAYATTRIBUTE *pda);
3281 
3282     HRESULT (STDMETHODCALLTYPE *Reset)(
3283         ITfDisplayAttributeInfo *This);
3284 
3285     END_INTERFACE
3286 } ITfDisplayAttributeInfoVtbl;
3287 
3288 interface ITfDisplayAttributeInfo {
3289     CONST_VTBL ITfDisplayAttributeInfoVtbl* lpVtbl;
3290 };
3291 
3292 #ifdef COBJMACROS
3293 #ifndef WIDL_C_INLINE_WRAPPERS
3294 /*** IUnknown methods ***/
3295 #define ITfDisplayAttributeInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3296 #define ITfDisplayAttributeInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
3297 #define ITfDisplayAttributeInfo_Release(This) (This)->lpVtbl->Release(This)
3298 /*** ITfDisplayAttributeInfo methods ***/
3299 #define ITfDisplayAttributeInfo_GetGUID(This,pguid) (This)->lpVtbl->GetGUID(This,pguid)
3300 #define ITfDisplayAttributeInfo_GetDescription(This,pbstrDesc) (This)->lpVtbl->GetDescription(This,pbstrDesc)
3301 #define ITfDisplayAttributeInfo_GetAttributeInfo(This,pda) (This)->lpVtbl->GetAttributeInfo(This,pda)
3302 #define ITfDisplayAttributeInfo_SetAttributeInfo(This,pda) (This)->lpVtbl->SetAttributeInfo(This,pda)
3303 #define ITfDisplayAttributeInfo_Reset(This) (This)->lpVtbl->Reset(This)
3304 #else
3305 /*** IUnknown methods ***/
3306 static FORCEINLINE HRESULT ITfDisplayAttributeInfo_QueryInterface(ITfDisplayAttributeInfo* This,REFIID riid,void **ppvObject) {
3307     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3308 }
3309 static FORCEINLINE ULONG ITfDisplayAttributeInfo_AddRef(ITfDisplayAttributeInfo* This) {
3310     return This->lpVtbl->AddRef(This);
3311 }
3312 static FORCEINLINE ULONG ITfDisplayAttributeInfo_Release(ITfDisplayAttributeInfo* This) {
3313     return This->lpVtbl->Release(This);
3314 }
3315 /*** ITfDisplayAttributeInfo methods ***/
3316 static FORCEINLINE HRESULT ITfDisplayAttributeInfo_GetGUID(ITfDisplayAttributeInfo* This,GUID *pguid) {
3317     return This->lpVtbl->GetGUID(This,pguid);
3318 }
3319 static FORCEINLINE HRESULT ITfDisplayAttributeInfo_GetDescription(ITfDisplayAttributeInfo* This,BSTR *pbstrDesc) {
3320     return This->lpVtbl->GetDescription(This,pbstrDesc);
3321 }
3322 static FORCEINLINE HRESULT ITfDisplayAttributeInfo_GetAttributeInfo(ITfDisplayAttributeInfo* This,TF_DISPLAYATTRIBUTE *pda) {
3323     return This->lpVtbl->GetAttributeInfo(This,pda);
3324 }
3325 static FORCEINLINE HRESULT ITfDisplayAttributeInfo_SetAttributeInfo(ITfDisplayAttributeInfo* This,const TF_DISPLAYATTRIBUTE *pda) {
3326     return This->lpVtbl->SetAttributeInfo(This,pda);
3327 }
3328 static FORCEINLINE HRESULT ITfDisplayAttributeInfo_Reset(ITfDisplayAttributeInfo* This) {
3329     return This->lpVtbl->Reset(This);
3330 }
3331 #endif
3332 #endif
3333 
3334 #endif
3335 
3336 
3337 #endif  /* __ITfDisplayAttributeInfo_INTERFACE_DEFINED__ */
3338 
3339 /*****************************************************************************
3340  * IEnumTfDisplayAttributeInfo interface
3341  */
3342 #ifndef __IEnumTfDisplayAttributeInfo_INTERFACE_DEFINED__
3343 #define __IEnumTfDisplayAttributeInfo_INTERFACE_DEFINED__
3344 
3345 DEFINE_GUID(IID_IEnumTfDisplayAttributeInfo, 0x7cef04d7, 0xcb75, 0x4e80, 0xa7,0xab, 0x5f,0x5b,0xc7,0xd3,0x32,0xde);
3346 #if defined(__cplusplus) && !defined(CINTERFACE)
3347 MIDL_INTERFACE("7cef04d7-cb75-4e80-a7ab-5f5bc7d332de")
3348 IEnumTfDisplayAttributeInfo : public IUnknown
3349 {
3350     virtual HRESULT STDMETHODCALLTYPE Clone(
3351         IEnumTfDisplayAttributeInfo **ppEnum) = 0;
3352 
3353     virtual HRESULT STDMETHODCALLTYPE Next(
3354         ULONG ulCount,
3355         ITfDisplayAttributeInfo **rgInfo,
3356         ULONG *pcFetched) = 0;
3357 
3358     virtual HRESULT STDMETHODCALLTYPE Reset(
3359         ) = 0;
3360 
3361     virtual HRESULT STDMETHODCALLTYPE Skip(
3362         ULONG ulCount) = 0;
3363 
3364 };
3365 #ifdef __CRT_UUID_DECL
3366 __CRT_UUID_DECL(IEnumTfDisplayAttributeInfo, 0x7cef04d7, 0xcb75, 0x4e80, 0xa7,0xab, 0x5f,0x5b,0xc7,0xd3,0x32,0xde)
3367 #endif
3368 #else
3369 typedef struct IEnumTfDisplayAttributeInfoVtbl {
3370     BEGIN_INTERFACE
3371 
3372     /*** IUnknown methods ***/
3373     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3374         IEnumTfDisplayAttributeInfo *This,
3375         REFIID riid,
3376         void **ppvObject);
3377 
3378     ULONG (STDMETHODCALLTYPE *AddRef)(
3379         IEnumTfDisplayAttributeInfo *This);
3380 
3381     ULONG (STDMETHODCALLTYPE *Release)(
3382         IEnumTfDisplayAttributeInfo *This);
3383 
3384     /*** IEnumTfDisplayAttributeInfo methods ***/
3385     HRESULT (STDMETHODCALLTYPE *Clone)(
3386         IEnumTfDisplayAttributeInfo *This,
3387         IEnumTfDisplayAttributeInfo **ppEnum);
3388 
3389     HRESULT (STDMETHODCALLTYPE *Next)(
3390         IEnumTfDisplayAttributeInfo *This,
3391         ULONG ulCount,
3392         ITfDisplayAttributeInfo **rgInfo,
3393         ULONG *pcFetched);
3394 
3395     HRESULT (STDMETHODCALLTYPE *Reset)(
3396         IEnumTfDisplayAttributeInfo *This);
3397 
3398     HRESULT (STDMETHODCALLTYPE *Skip)(
3399         IEnumTfDisplayAttributeInfo *This,
3400         ULONG ulCount);
3401 
3402     END_INTERFACE
3403 } IEnumTfDisplayAttributeInfoVtbl;
3404 
3405 interface IEnumTfDisplayAttributeInfo {
3406     CONST_VTBL IEnumTfDisplayAttributeInfoVtbl* lpVtbl;
3407 };
3408 
3409 #ifdef COBJMACROS
3410 #ifndef WIDL_C_INLINE_WRAPPERS
3411 /*** IUnknown methods ***/
3412 #define IEnumTfDisplayAttributeInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3413 #define IEnumTfDisplayAttributeInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
3414 #define IEnumTfDisplayAttributeInfo_Release(This) (This)->lpVtbl->Release(This)
3415 /*** IEnumTfDisplayAttributeInfo methods ***/
3416 #define IEnumTfDisplayAttributeInfo_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
3417 #define IEnumTfDisplayAttributeInfo_Next(This,ulCount,rgInfo,pcFetched) (This)->lpVtbl->Next(This,ulCount,rgInfo,pcFetched)
3418 #define IEnumTfDisplayAttributeInfo_Reset(This) (This)->lpVtbl->Reset(This)
3419 #define IEnumTfDisplayAttributeInfo_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
3420 #else
3421 /*** IUnknown methods ***/
3422 static FORCEINLINE HRESULT IEnumTfDisplayAttributeInfo_QueryInterface(IEnumTfDisplayAttributeInfo* This,REFIID riid,void **ppvObject) {
3423     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3424 }
3425 static FORCEINLINE ULONG IEnumTfDisplayAttributeInfo_AddRef(IEnumTfDisplayAttributeInfo* This) {
3426     return This->lpVtbl->AddRef(This);
3427 }
3428 static FORCEINLINE ULONG IEnumTfDisplayAttributeInfo_Release(IEnumTfDisplayAttributeInfo* This) {
3429     return This->lpVtbl->Release(This);
3430 }
3431 /*** IEnumTfDisplayAttributeInfo methods ***/
3432 static FORCEINLINE HRESULT IEnumTfDisplayAttributeInfo_Clone(IEnumTfDisplayAttributeInfo* This,IEnumTfDisplayAttributeInfo **ppEnum) {
3433     return This->lpVtbl->Clone(This,ppEnum);
3434 }
3435 static FORCEINLINE HRESULT IEnumTfDisplayAttributeInfo_Next(IEnumTfDisplayAttributeInfo* This,ULONG ulCount,ITfDisplayAttributeInfo **rgInfo,ULONG *pcFetched) {
3436     return This->lpVtbl->Next(This,ulCount,rgInfo,pcFetched);
3437 }
3438 static FORCEINLINE HRESULT IEnumTfDisplayAttributeInfo_Reset(IEnumTfDisplayAttributeInfo* This) {
3439     return This->lpVtbl->Reset(This);
3440 }
3441 static FORCEINLINE HRESULT IEnumTfDisplayAttributeInfo_Skip(IEnumTfDisplayAttributeInfo* This,ULONG ulCount) {
3442     return This->lpVtbl->Skip(This,ulCount);
3443 }
3444 #endif
3445 #endif
3446 
3447 #endif
3448 
3449 
3450 #endif  /* __IEnumTfDisplayAttributeInfo_INTERFACE_DEFINED__ */
3451 
3452 /*****************************************************************************
3453  * ITfDisplayAttributeMgr interface
3454  */
3455 #ifndef __ITfDisplayAttributeMgr_INTERFACE_DEFINED__
3456 #define __ITfDisplayAttributeMgr_INTERFACE_DEFINED__
3457 
3458 DEFINE_GUID(IID_ITfDisplayAttributeMgr, 0x8ded7393, 0x5db1, 0x475c, 0x9e,0x71, 0xa3,0x91,0x11,0xb0,0xff,0x67);
3459 #if defined(__cplusplus) && !defined(CINTERFACE)
3460 MIDL_INTERFACE("8ded7393-5db1-475c-9e71-a39111b0ff67")
3461 ITfDisplayAttributeMgr : public IUnknown
3462 {
3463     virtual HRESULT STDMETHODCALLTYPE OnUpdateInfo(
3464         ) = 0;
3465 
3466     virtual HRESULT STDMETHODCALLTYPE EnumDisplayAttributeInfo(
3467         IEnumTfDisplayAttributeInfo **ppEnum) = 0;
3468 
3469     virtual HRESULT STDMETHODCALLTYPE GetDisplayAttributeInfo(
3470         REFGUID guid,
3471         ITfDisplayAttributeInfo **ppInfo,
3472         CLSID *pclsidOwner) = 0;
3473 
3474 };
3475 #ifdef __CRT_UUID_DECL
3476 __CRT_UUID_DECL(ITfDisplayAttributeMgr, 0x8ded7393, 0x5db1, 0x475c, 0x9e,0x71, 0xa3,0x91,0x11,0xb0,0xff,0x67)
3477 #endif
3478 #else
3479 typedef struct ITfDisplayAttributeMgrVtbl {
3480     BEGIN_INTERFACE
3481 
3482     /*** IUnknown methods ***/
3483     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3484         ITfDisplayAttributeMgr *This,
3485         REFIID riid,
3486         void **ppvObject);
3487 
3488     ULONG (STDMETHODCALLTYPE *AddRef)(
3489         ITfDisplayAttributeMgr *This);
3490 
3491     ULONG (STDMETHODCALLTYPE *Release)(
3492         ITfDisplayAttributeMgr *This);
3493 
3494     /*** ITfDisplayAttributeMgr methods ***/
3495     HRESULT (STDMETHODCALLTYPE *OnUpdateInfo)(
3496         ITfDisplayAttributeMgr *This);
3497 
3498     HRESULT (STDMETHODCALLTYPE *EnumDisplayAttributeInfo)(
3499         ITfDisplayAttributeMgr *This,
3500         IEnumTfDisplayAttributeInfo **ppEnum);
3501 
3502     HRESULT (STDMETHODCALLTYPE *GetDisplayAttributeInfo)(
3503         ITfDisplayAttributeMgr *This,
3504         REFGUID guid,
3505         ITfDisplayAttributeInfo **ppInfo,
3506         CLSID *pclsidOwner);
3507 
3508     END_INTERFACE
3509 } ITfDisplayAttributeMgrVtbl;
3510 
3511 interface ITfDisplayAttributeMgr {
3512     CONST_VTBL ITfDisplayAttributeMgrVtbl* lpVtbl;
3513 };
3514 
3515 #ifdef COBJMACROS
3516 #ifndef WIDL_C_INLINE_WRAPPERS
3517 /*** IUnknown methods ***/
3518 #define ITfDisplayAttributeMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3519 #define ITfDisplayAttributeMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
3520 #define ITfDisplayAttributeMgr_Release(This) (This)->lpVtbl->Release(This)
3521 /*** ITfDisplayAttributeMgr methods ***/
3522 #define ITfDisplayAttributeMgr_OnUpdateInfo(This) (This)->lpVtbl->OnUpdateInfo(This)
3523 #define ITfDisplayAttributeMgr_EnumDisplayAttributeInfo(This,ppEnum) (This)->lpVtbl->EnumDisplayAttributeInfo(This,ppEnum)
3524 #define ITfDisplayAttributeMgr_GetDisplayAttributeInfo(This,guid,ppInfo,pclsidOwner) (This)->lpVtbl->GetDisplayAttributeInfo(This,guid,ppInfo,pclsidOwner)
3525 #else
3526 /*** IUnknown methods ***/
3527 static FORCEINLINE HRESULT ITfDisplayAttributeMgr_QueryInterface(ITfDisplayAttributeMgr* This,REFIID riid,void **ppvObject) {
3528     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3529 }
3530 static FORCEINLINE ULONG ITfDisplayAttributeMgr_AddRef(ITfDisplayAttributeMgr* This) {
3531     return This->lpVtbl->AddRef(This);
3532 }
3533 static FORCEINLINE ULONG ITfDisplayAttributeMgr_Release(ITfDisplayAttributeMgr* This) {
3534     return This->lpVtbl->Release(This);
3535 }
3536 /*** ITfDisplayAttributeMgr methods ***/
3537 static FORCEINLINE HRESULT ITfDisplayAttributeMgr_OnUpdateInfo(ITfDisplayAttributeMgr* This) {
3538     return This->lpVtbl->OnUpdateInfo(This);
3539 }
3540 static FORCEINLINE HRESULT ITfDisplayAttributeMgr_EnumDisplayAttributeInfo(ITfDisplayAttributeMgr* This,IEnumTfDisplayAttributeInfo **ppEnum) {
3541     return This->lpVtbl->EnumDisplayAttributeInfo(This,ppEnum);
3542 }
3543 static FORCEINLINE HRESULT ITfDisplayAttributeMgr_GetDisplayAttributeInfo(ITfDisplayAttributeMgr* This,REFGUID guid,ITfDisplayAttributeInfo **ppInfo,CLSID *pclsidOwner) {
3544     return This->lpVtbl->GetDisplayAttributeInfo(This,guid,ppInfo,pclsidOwner);
3545 }
3546 #endif
3547 #endif
3548 
3549 #endif
3550 
3551 
3552 #endif  /* __ITfDisplayAttributeMgr_INTERFACE_DEFINED__ */
3553 
3554 /*****************************************************************************
3555  * ITfCategoryMgr interface
3556  */
3557 #ifndef __ITfCategoryMgr_INTERFACE_DEFINED__
3558 #define __ITfCategoryMgr_INTERFACE_DEFINED__
3559 
3560 DEFINE_GUID(IID_ITfCategoryMgr, 0xc3acefb5, 0xf69d, 0x4905, 0x93,0x8f, 0xfc,0xad,0xcf,0x4b,0xe8,0x30);
3561 #if defined(__cplusplus) && !defined(CINTERFACE)
3562 MIDL_INTERFACE("c3acefb5-f69d-4905-938f-fcadcf4be830")
3563 ITfCategoryMgr : public IUnknown
3564 {
3565     virtual HRESULT STDMETHODCALLTYPE RegisterCategory(
3566         REFCLSID rclsid,
3567         REFGUID rcatid,
3568         REFGUID rguid) = 0;
3569 
3570     virtual HRESULT STDMETHODCALLTYPE UnregisterCategory(
3571         REFCLSID rclsid,
3572         REFGUID rcatid,
3573         REFGUID rguid) = 0;
3574 
3575     virtual HRESULT STDMETHODCALLTYPE EnumCategoriesInItem(
3576         REFGUID rguid,
3577         IEnumGUID **ppEnum) = 0;
3578 
3579     virtual HRESULT STDMETHODCALLTYPE EnumItemsInCategory(
3580         REFGUID rcatid,
3581         IEnumGUID **ppEnum) = 0;
3582 
3583     virtual HRESULT STDMETHODCALLTYPE FindClosestCategory(
3584         REFGUID rguid,
3585         GUID *pcatid,
3586         const GUID **ppcatidList,
3587         ULONG ulCount) = 0;
3588 
3589     virtual HRESULT STDMETHODCALLTYPE RegisterGUIDDescription(
3590         REFCLSID rclsid,
3591         REFGUID rguid,
3592         const WCHAR *pchDesc,
3593         ULONG cch) = 0;
3594 
3595     virtual HRESULT STDMETHODCALLTYPE UnregisterGUIDDescription(
3596         REFCLSID rclsid,
3597         REFGUID rguid) = 0;
3598 
3599     virtual HRESULT STDMETHODCALLTYPE GetGUIDDescription(
3600         REFGUID rguid,
3601         BSTR *pbstrDesc) = 0;
3602 
3603     virtual HRESULT STDMETHODCALLTYPE RegisterGUIDDWORD(
3604         REFCLSID rclsid,
3605         REFGUID rguid,
3606         DWORD dw) = 0;
3607 
3608     virtual HRESULT STDMETHODCALLTYPE UnregisterGUIDDWORD(
3609         REFCLSID rclsid,
3610         REFGUID rguid) = 0;
3611 
3612     virtual HRESULT STDMETHODCALLTYPE GetGUIDDWORD(
3613         REFGUID rguid,
3614         DWORD *pdw) = 0;
3615 
3616     virtual HRESULT STDMETHODCALLTYPE RegisterGUID(
3617         REFGUID rguid,
3618         TfGuidAtom *pguidatom) = 0;
3619 
3620     virtual HRESULT STDMETHODCALLTYPE GetGUID(
3621         TfGuidAtom guidatom,
3622         GUID *pguid) = 0;
3623 
3624     virtual HRESULT STDMETHODCALLTYPE IsEqualTfGuidAtom(
3625         TfGuidAtom guidatom,
3626         REFGUID rguid,
3627         WINBOOL *pfEqual) = 0;
3628 
3629 };
3630 #ifdef __CRT_UUID_DECL
3631 __CRT_UUID_DECL(ITfCategoryMgr, 0xc3acefb5, 0xf69d, 0x4905, 0x93,0x8f, 0xfc,0xad,0xcf,0x4b,0xe8,0x30)
3632 #endif
3633 #else
3634 typedef struct ITfCategoryMgrVtbl {
3635     BEGIN_INTERFACE
3636 
3637     /*** IUnknown methods ***/
3638     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3639         ITfCategoryMgr *This,
3640         REFIID riid,
3641         void **ppvObject);
3642 
3643     ULONG (STDMETHODCALLTYPE *AddRef)(
3644         ITfCategoryMgr *This);
3645 
3646     ULONG (STDMETHODCALLTYPE *Release)(
3647         ITfCategoryMgr *This);
3648 
3649     /*** ITfCategoryMgr methods ***/
3650     HRESULT (STDMETHODCALLTYPE *RegisterCategory)(
3651         ITfCategoryMgr *This,
3652         REFCLSID rclsid,
3653         REFGUID rcatid,
3654         REFGUID rguid);
3655 
3656     HRESULT (STDMETHODCALLTYPE *UnregisterCategory)(
3657         ITfCategoryMgr *This,
3658         REFCLSID rclsid,
3659         REFGUID rcatid,
3660         REFGUID rguid);
3661 
3662     HRESULT (STDMETHODCALLTYPE *EnumCategoriesInItem)(
3663         ITfCategoryMgr *This,
3664         REFGUID rguid,
3665         IEnumGUID **ppEnum);
3666 
3667     HRESULT (STDMETHODCALLTYPE *EnumItemsInCategory)(
3668         ITfCategoryMgr *This,
3669         REFGUID rcatid,
3670         IEnumGUID **ppEnum);
3671 
3672     HRESULT (STDMETHODCALLTYPE *FindClosestCategory)(
3673         ITfCategoryMgr *This,
3674         REFGUID rguid,
3675         GUID *pcatid,
3676         const GUID **ppcatidList,
3677         ULONG ulCount);
3678 
3679     HRESULT (STDMETHODCALLTYPE *RegisterGUIDDescription)(
3680         ITfCategoryMgr *This,
3681         REFCLSID rclsid,
3682         REFGUID rguid,
3683         const WCHAR *pchDesc,
3684         ULONG cch);
3685 
3686     HRESULT (STDMETHODCALLTYPE *UnregisterGUIDDescription)(
3687         ITfCategoryMgr *This,
3688         REFCLSID rclsid,
3689         REFGUID rguid);
3690 
3691     HRESULT (STDMETHODCALLTYPE *GetGUIDDescription)(
3692         ITfCategoryMgr *This,
3693         REFGUID rguid,
3694         BSTR *pbstrDesc);
3695 
3696     HRESULT (STDMETHODCALLTYPE *RegisterGUIDDWORD)(
3697         ITfCategoryMgr *This,
3698         REFCLSID rclsid,
3699         REFGUID rguid,
3700         DWORD dw);
3701 
3702     HRESULT (STDMETHODCALLTYPE *UnregisterGUIDDWORD)(
3703         ITfCategoryMgr *This,
3704         REFCLSID rclsid,
3705         REFGUID rguid);
3706 
3707     HRESULT (STDMETHODCALLTYPE *GetGUIDDWORD)(
3708         ITfCategoryMgr *This,
3709         REFGUID rguid,
3710         DWORD *pdw);
3711 
3712     HRESULT (STDMETHODCALLTYPE *RegisterGUID)(
3713         ITfCategoryMgr *This,
3714         REFGUID rguid,
3715         TfGuidAtom *pguidatom);
3716 
3717     HRESULT (STDMETHODCALLTYPE *GetGUID)(
3718         ITfCategoryMgr *This,
3719         TfGuidAtom guidatom,
3720         GUID *pguid);
3721 
3722     HRESULT (STDMETHODCALLTYPE *IsEqualTfGuidAtom)(
3723         ITfCategoryMgr *This,
3724         TfGuidAtom guidatom,
3725         REFGUID rguid,
3726         WINBOOL *pfEqual);
3727 
3728     END_INTERFACE
3729 } ITfCategoryMgrVtbl;
3730 
3731 interface ITfCategoryMgr {
3732     CONST_VTBL ITfCategoryMgrVtbl* lpVtbl;
3733 };
3734 
3735 #ifdef COBJMACROS
3736 #ifndef WIDL_C_INLINE_WRAPPERS
3737 /*** IUnknown methods ***/
3738 #define ITfCategoryMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3739 #define ITfCategoryMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
3740 #define ITfCategoryMgr_Release(This) (This)->lpVtbl->Release(This)
3741 /*** ITfCategoryMgr methods ***/
3742 #define ITfCategoryMgr_RegisterCategory(This,rclsid,rcatid,rguid) (This)->lpVtbl->RegisterCategory(This,rclsid,rcatid,rguid)
3743 #define ITfCategoryMgr_UnregisterCategory(This,rclsid,rcatid,rguid) (This)->lpVtbl->UnregisterCategory(This,rclsid,rcatid,rguid)
3744 #define ITfCategoryMgr_EnumCategoriesInItem(This,rguid,ppEnum) (This)->lpVtbl->EnumCategoriesInItem(This,rguid,ppEnum)
3745 #define ITfCategoryMgr_EnumItemsInCategory(This,rcatid,ppEnum) (This)->lpVtbl->EnumItemsInCategory(This,rcatid,ppEnum)
3746 #define ITfCategoryMgr_FindClosestCategory(This,rguid,pcatid,ppcatidList,ulCount) (This)->lpVtbl->FindClosestCategory(This,rguid,pcatid,ppcatidList,ulCount)
3747 #define ITfCategoryMgr_RegisterGUIDDescription(This,rclsid,rguid,pchDesc,cch) (This)->lpVtbl->RegisterGUIDDescription(This,rclsid,rguid,pchDesc,cch)
3748 #define ITfCategoryMgr_UnregisterGUIDDescription(This,rclsid,rguid) (This)->lpVtbl->UnregisterGUIDDescription(This,rclsid,rguid)
3749 #define ITfCategoryMgr_GetGUIDDescription(This,rguid,pbstrDesc) (This)->lpVtbl->GetGUIDDescription(This,rguid,pbstrDesc)
3750 #define ITfCategoryMgr_RegisterGUIDDWORD(This,rclsid,rguid,dw) (This)->lpVtbl->RegisterGUIDDWORD(This,rclsid,rguid,dw)
3751 #define ITfCategoryMgr_UnregisterGUIDDWORD(This,rclsid,rguid) (This)->lpVtbl->UnregisterGUIDDWORD(This,rclsid,rguid)
3752 #define ITfCategoryMgr_GetGUIDDWORD(This,rguid,pdw) (This)->lpVtbl->GetGUIDDWORD(This,rguid,pdw)
3753 #define ITfCategoryMgr_RegisterGUID(This,rguid,pguidatom) (This)->lpVtbl->RegisterGUID(This,rguid,pguidatom)
3754 #define ITfCategoryMgr_GetGUID(This,guidatom,pguid) (This)->lpVtbl->GetGUID(This,guidatom,pguid)
3755 #define ITfCategoryMgr_IsEqualTfGuidAtom(This,guidatom,rguid,pfEqual) (This)->lpVtbl->IsEqualTfGuidAtom(This,guidatom,rguid,pfEqual)
3756 #else
3757 /*** IUnknown methods ***/
3758 static FORCEINLINE HRESULT ITfCategoryMgr_QueryInterface(ITfCategoryMgr* This,REFIID riid,void **ppvObject) {
3759     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3760 }
3761 static FORCEINLINE ULONG ITfCategoryMgr_AddRef(ITfCategoryMgr* This) {
3762     return This->lpVtbl->AddRef(This);
3763 }
3764 static FORCEINLINE ULONG ITfCategoryMgr_Release(ITfCategoryMgr* This) {
3765     return This->lpVtbl->Release(This);
3766 }
3767 /*** ITfCategoryMgr methods ***/
3768 static FORCEINLINE HRESULT ITfCategoryMgr_RegisterCategory(ITfCategoryMgr* This,REFCLSID rclsid,REFGUID rcatid,REFGUID rguid) {
3769     return This->lpVtbl->RegisterCategory(This,rclsid,rcatid,rguid);
3770 }
3771 static FORCEINLINE HRESULT ITfCategoryMgr_UnregisterCategory(ITfCategoryMgr* This,REFCLSID rclsid,REFGUID rcatid,REFGUID rguid) {
3772     return This->lpVtbl->UnregisterCategory(This,rclsid,rcatid,rguid);
3773 }
3774 static FORCEINLINE HRESULT ITfCategoryMgr_EnumCategoriesInItem(ITfCategoryMgr* This,REFGUID rguid,IEnumGUID **ppEnum) {
3775     return This->lpVtbl->EnumCategoriesInItem(This,rguid,ppEnum);
3776 }
3777 static FORCEINLINE HRESULT ITfCategoryMgr_EnumItemsInCategory(ITfCategoryMgr* This,REFGUID rcatid,IEnumGUID **ppEnum) {
3778     return This->lpVtbl->EnumItemsInCategory(This,rcatid,ppEnum);
3779 }
3780 static FORCEINLINE HRESULT ITfCategoryMgr_FindClosestCategory(ITfCategoryMgr* This,REFGUID rguid,GUID *pcatid,const GUID **ppcatidList,ULONG ulCount) {
3781     return This->lpVtbl->FindClosestCategory(This,rguid,pcatid,ppcatidList,ulCount);
3782 }
3783 static FORCEINLINE HRESULT ITfCategoryMgr_RegisterGUIDDescription(ITfCategoryMgr* This,REFCLSID rclsid,REFGUID rguid,const WCHAR *pchDesc,ULONG cch) {
3784     return This->lpVtbl->RegisterGUIDDescription(This,rclsid,rguid,pchDesc,cch);
3785 }
3786 static FORCEINLINE HRESULT ITfCategoryMgr_UnregisterGUIDDescription(ITfCategoryMgr* This,REFCLSID rclsid,REFGUID rguid) {
3787     return This->lpVtbl->UnregisterGUIDDescription(This,rclsid,rguid);
3788 }
3789 static FORCEINLINE HRESULT ITfCategoryMgr_GetGUIDDescription(ITfCategoryMgr* This,REFGUID rguid,BSTR *pbstrDesc) {
3790     return This->lpVtbl->GetGUIDDescription(This,rguid,pbstrDesc);
3791 }
3792 static FORCEINLINE HRESULT ITfCategoryMgr_RegisterGUIDDWORD(ITfCategoryMgr* This,REFCLSID rclsid,REFGUID rguid,DWORD dw) {
3793     return This->lpVtbl->RegisterGUIDDWORD(This,rclsid,rguid,dw);
3794 }
3795 static FORCEINLINE HRESULT ITfCategoryMgr_UnregisterGUIDDWORD(ITfCategoryMgr* This,REFCLSID rclsid,REFGUID rguid) {
3796     return This->lpVtbl->UnregisterGUIDDWORD(This,rclsid,rguid);
3797 }
3798 static FORCEINLINE HRESULT ITfCategoryMgr_GetGUIDDWORD(ITfCategoryMgr* This,REFGUID rguid,DWORD *pdw) {
3799     return This->lpVtbl->GetGUIDDWORD(This,rguid,pdw);
3800 }
3801 static FORCEINLINE HRESULT ITfCategoryMgr_RegisterGUID(ITfCategoryMgr* This,REFGUID rguid,TfGuidAtom *pguidatom) {
3802     return This->lpVtbl->RegisterGUID(This,rguid,pguidatom);
3803 }
3804 static FORCEINLINE HRESULT ITfCategoryMgr_GetGUID(ITfCategoryMgr* This,TfGuidAtom guidatom,GUID *pguid) {
3805     return This->lpVtbl->GetGUID(This,guidatom,pguid);
3806 }
3807 static FORCEINLINE HRESULT ITfCategoryMgr_IsEqualTfGuidAtom(ITfCategoryMgr* This,TfGuidAtom guidatom,REFGUID rguid,WINBOOL *pfEqual) {
3808     return This->lpVtbl->IsEqualTfGuidAtom(This,guidatom,rguid,pfEqual);
3809 }
3810 #endif
3811 #endif
3812 
3813 #endif
3814 
3815 
3816 #endif  /* __ITfCategoryMgr_INTERFACE_DEFINED__ */
3817 
3818 /*****************************************************************************
3819  * IEnumTfRanges interface
3820  */
3821 #ifndef __IEnumTfRanges_INTERFACE_DEFINED__
3822 #define __IEnumTfRanges_INTERFACE_DEFINED__
3823 
3824 DEFINE_GUID(IID_IEnumTfRanges, 0xf99d3f40, 0x8e32, 0x11d2, 0xbf,0x46, 0x00,0x10,0x5a,0x27,0x99,0xb5);
3825 #if defined(__cplusplus) && !defined(CINTERFACE)
3826 MIDL_INTERFACE("f99d3f40-8e32-11d2-bf46-00105a2799b5")
3827 IEnumTfRanges : public IUnknown
3828 {
3829     virtual HRESULT STDMETHODCALLTYPE Clone(
3830         IEnumTfRanges **ppEnum) = 0;
3831 
3832     virtual HRESULT STDMETHODCALLTYPE Next(
3833         ULONG ulCount,
3834         ITfRange **ppRange,
3835         ULONG *pcFetched) = 0;
3836 
3837     virtual HRESULT STDMETHODCALLTYPE Reset(
3838         ) = 0;
3839 
3840     virtual HRESULT STDMETHODCALLTYPE Skip(
3841         ULONG ulCount) = 0;
3842 
3843 };
3844 #ifdef __CRT_UUID_DECL
3845 __CRT_UUID_DECL(IEnumTfRanges, 0xf99d3f40, 0x8e32, 0x11d2, 0xbf,0x46, 0x00,0x10,0x5a,0x27,0x99,0xb5)
3846 #endif
3847 #else
3848 typedef struct IEnumTfRangesVtbl {
3849     BEGIN_INTERFACE
3850 
3851     /*** IUnknown methods ***/
3852     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3853         IEnumTfRanges *This,
3854         REFIID riid,
3855         void **ppvObject);
3856 
3857     ULONG (STDMETHODCALLTYPE *AddRef)(
3858         IEnumTfRanges *This);
3859 
3860     ULONG (STDMETHODCALLTYPE *Release)(
3861         IEnumTfRanges *This);
3862 
3863     /*** IEnumTfRanges methods ***/
3864     HRESULT (STDMETHODCALLTYPE *Clone)(
3865         IEnumTfRanges *This,
3866         IEnumTfRanges **ppEnum);
3867 
3868     HRESULT (STDMETHODCALLTYPE *Next)(
3869         IEnumTfRanges *This,
3870         ULONG ulCount,
3871         ITfRange **ppRange,
3872         ULONG *pcFetched);
3873 
3874     HRESULT (STDMETHODCALLTYPE *Reset)(
3875         IEnumTfRanges *This);
3876 
3877     HRESULT (STDMETHODCALLTYPE *Skip)(
3878         IEnumTfRanges *This,
3879         ULONG ulCount);
3880 
3881     END_INTERFACE
3882 } IEnumTfRangesVtbl;
3883 
3884 interface IEnumTfRanges {
3885     CONST_VTBL IEnumTfRangesVtbl* lpVtbl;
3886 };
3887 
3888 #ifdef COBJMACROS
3889 #ifndef WIDL_C_INLINE_WRAPPERS
3890 /*** IUnknown methods ***/
3891 #define IEnumTfRanges_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3892 #define IEnumTfRanges_AddRef(This) (This)->lpVtbl->AddRef(This)
3893 #define IEnumTfRanges_Release(This) (This)->lpVtbl->Release(This)
3894 /*** IEnumTfRanges methods ***/
3895 #define IEnumTfRanges_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
3896 #define IEnumTfRanges_Next(This,ulCount,ppRange,pcFetched) (This)->lpVtbl->Next(This,ulCount,ppRange,pcFetched)
3897 #define IEnumTfRanges_Reset(This) (This)->lpVtbl->Reset(This)
3898 #define IEnumTfRanges_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
3899 #else
3900 /*** IUnknown methods ***/
3901 static FORCEINLINE HRESULT IEnumTfRanges_QueryInterface(IEnumTfRanges* This,REFIID riid,void **ppvObject) {
3902     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3903 }
3904 static FORCEINLINE ULONG IEnumTfRanges_AddRef(IEnumTfRanges* This) {
3905     return This->lpVtbl->AddRef(This);
3906 }
3907 static FORCEINLINE ULONG IEnumTfRanges_Release(IEnumTfRanges* This) {
3908     return This->lpVtbl->Release(This);
3909 }
3910 /*** IEnumTfRanges methods ***/
3911 static FORCEINLINE HRESULT IEnumTfRanges_Clone(IEnumTfRanges* This,IEnumTfRanges **ppEnum) {
3912     return This->lpVtbl->Clone(This,ppEnum);
3913 }
3914 static FORCEINLINE HRESULT IEnumTfRanges_Next(IEnumTfRanges* This,ULONG ulCount,ITfRange **ppRange,ULONG *pcFetched) {
3915     return This->lpVtbl->Next(This,ulCount,ppRange,pcFetched);
3916 }
3917 static FORCEINLINE HRESULT IEnumTfRanges_Reset(IEnumTfRanges* This) {
3918     return This->lpVtbl->Reset(This);
3919 }
3920 static FORCEINLINE HRESULT IEnumTfRanges_Skip(IEnumTfRanges* This,ULONG ulCount) {
3921     return This->lpVtbl->Skip(This,ulCount);
3922 }
3923 #endif
3924 #endif
3925 
3926 #endif
3927 
3928 
3929 #endif  /* __IEnumTfRanges_INTERFACE_DEFINED__ */
3930 
3931 /*****************************************************************************
3932  * ITfEditRecord interface
3933  */
3934 #ifndef __ITfEditRecord_INTERFACE_DEFINED__
3935 #define __ITfEditRecord_INTERFACE_DEFINED__
3936 
3937 #define TF_GTP_INCL_TEXT (0x1)
3938 
3939 DEFINE_GUID(IID_ITfEditRecord, 0x42d4d099, 0x7c1a, 0x4a89, 0xb8,0x36, 0x6c,0x6f,0x22,0x16,0x0d,0xf0);
3940 #if defined(__cplusplus) && !defined(CINTERFACE)
3941 MIDL_INTERFACE("42d4d099-7c1a-4a89-b836-6c6f22160df0")
3942 ITfEditRecord : public IUnknown
3943 {
3944     virtual HRESULT STDMETHODCALLTYPE GetSelectionStatus(
3945         WINBOOL *changed) = 0;
3946 
3947     virtual HRESULT STDMETHODCALLTYPE GetTextAndPropertyUpdates(
3948         DWORD flags,
3949         const GUID **props,
3950         ULONG count,
3951         IEnumTfRanges **ret) = 0;
3952 
3953 };
3954 #ifdef __CRT_UUID_DECL
3955 __CRT_UUID_DECL(ITfEditRecord, 0x42d4d099, 0x7c1a, 0x4a89, 0xb8,0x36, 0x6c,0x6f,0x22,0x16,0x0d,0xf0)
3956 #endif
3957 #else
3958 typedef struct ITfEditRecordVtbl {
3959     BEGIN_INTERFACE
3960 
3961     /*** IUnknown methods ***/
3962     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3963         ITfEditRecord *This,
3964         REFIID riid,
3965         void **ppvObject);
3966 
3967     ULONG (STDMETHODCALLTYPE *AddRef)(
3968         ITfEditRecord *This);
3969 
3970     ULONG (STDMETHODCALLTYPE *Release)(
3971         ITfEditRecord *This);
3972 
3973     /*** ITfEditRecord methods ***/
3974     HRESULT (STDMETHODCALLTYPE *GetSelectionStatus)(
3975         ITfEditRecord *This,
3976         WINBOOL *changed);
3977 
3978     HRESULT (STDMETHODCALLTYPE *GetTextAndPropertyUpdates)(
3979         ITfEditRecord *This,
3980         DWORD flags,
3981         const GUID **props,
3982         ULONG count,
3983         IEnumTfRanges **ret);
3984 
3985     END_INTERFACE
3986 } ITfEditRecordVtbl;
3987 
3988 interface ITfEditRecord {
3989     CONST_VTBL ITfEditRecordVtbl* lpVtbl;
3990 };
3991 
3992 #ifdef COBJMACROS
3993 #ifndef WIDL_C_INLINE_WRAPPERS
3994 /*** IUnknown methods ***/
3995 #define ITfEditRecord_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3996 #define ITfEditRecord_AddRef(This) (This)->lpVtbl->AddRef(This)
3997 #define ITfEditRecord_Release(This) (This)->lpVtbl->Release(This)
3998 /*** ITfEditRecord methods ***/
3999 #define ITfEditRecord_GetSelectionStatus(This,changed) (This)->lpVtbl->GetSelectionStatus(This,changed)
4000 #define ITfEditRecord_GetTextAndPropertyUpdates(This,flags,props,count,ret) (This)->lpVtbl->GetTextAndPropertyUpdates(This,flags,props,count,ret)
4001 #else
4002 /*** IUnknown methods ***/
4003 static FORCEINLINE HRESULT ITfEditRecord_QueryInterface(ITfEditRecord* This,REFIID riid,void **ppvObject) {
4004     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4005 }
4006 static FORCEINLINE ULONG ITfEditRecord_AddRef(ITfEditRecord* This) {
4007     return This->lpVtbl->AddRef(This);
4008 }
4009 static FORCEINLINE ULONG ITfEditRecord_Release(ITfEditRecord* This) {
4010     return This->lpVtbl->Release(This);
4011 }
4012 /*** ITfEditRecord methods ***/
4013 static FORCEINLINE HRESULT ITfEditRecord_GetSelectionStatus(ITfEditRecord* This,WINBOOL *changed) {
4014     return This->lpVtbl->GetSelectionStatus(This,changed);
4015 }
4016 static FORCEINLINE HRESULT ITfEditRecord_GetTextAndPropertyUpdates(ITfEditRecord* This,DWORD flags,const GUID **props,ULONG count,IEnumTfRanges **ret) {
4017     return This->lpVtbl->GetTextAndPropertyUpdates(This,flags,props,count,ret);
4018 }
4019 #endif
4020 #endif
4021 
4022 #endif
4023 
4024 
4025 #endif  /* __ITfEditRecord_INTERFACE_DEFINED__ */
4026 
4027 /*****************************************************************************
4028  * ITfTextEditSink interface
4029  */
4030 #ifndef __ITfTextEditSink_INTERFACE_DEFINED__
4031 #define __ITfTextEditSink_INTERFACE_DEFINED__
4032 
4033 DEFINE_GUID(IID_ITfTextEditSink, 0x8127d409, 0xccd3, 0x4683, 0x96,0x7a, 0xb4,0x3d,0x5b,0x48,0x2b,0xf7);
4034 #if defined(__cplusplus) && !defined(CINTERFACE)
4035 MIDL_INTERFACE("8127d409-ccd3-4683-967a-b43d5b482bf7")
4036 ITfTextEditSink : public IUnknown
4037 {
4038     virtual HRESULT STDMETHODCALLTYPE OnEndEdit(
4039         ITfContext *pic,
4040         TfEditCookie ecReadOnly,
4041         ITfEditRecord *pEditRecord) = 0;
4042 
4043 };
4044 #ifdef __CRT_UUID_DECL
4045 __CRT_UUID_DECL(ITfTextEditSink, 0x8127d409, 0xccd3, 0x4683, 0x96,0x7a, 0xb4,0x3d,0x5b,0x48,0x2b,0xf7)
4046 #endif
4047 #else
4048 typedef struct ITfTextEditSinkVtbl {
4049     BEGIN_INTERFACE
4050 
4051     /*** IUnknown methods ***/
4052     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4053         ITfTextEditSink *This,
4054         REFIID riid,
4055         void **ppvObject);
4056 
4057     ULONG (STDMETHODCALLTYPE *AddRef)(
4058         ITfTextEditSink *This);
4059 
4060     ULONG (STDMETHODCALLTYPE *Release)(
4061         ITfTextEditSink *This);
4062 
4063     /*** ITfTextEditSink methods ***/
4064     HRESULT (STDMETHODCALLTYPE *OnEndEdit)(
4065         ITfTextEditSink *This,
4066         ITfContext *pic,
4067         TfEditCookie ecReadOnly,
4068         ITfEditRecord *pEditRecord);
4069 
4070     END_INTERFACE
4071 } ITfTextEditSinkVtbl;
4072 
4073 interface ITfTextEditSink {
4074     CONST_VTBL ITfTextEditSinkVtbl* lpVtbl;
4075 };
4076 
4077 #ifdef COBJMACROS
4078 #ifndef WIDL_C_INLINE_WRAPPERS
4079 /*** IUnknown methods ***/
4080 #define ITfTextEditSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4081 #define ITfTextEditSink_AddRef(This) (This)->lpVtbl->AddRef(This)
4082 #define ITfTextEditSink_Release(This) (This)->lpVtbl->Release(This)
4083 /*** ITfTextEditSink methods ***/
4084 #define ITfTextEditSink_OnEndEdit(This,pic,ecReadOnly,pEditRecord) (This)->lpVtbl->OnEndEdit(This,pic,ecReadOnly,pEditRecord)
4085 #else
4086 /*** IUnknown methods ***/
4087 static FORCEINLINE HRESULT ITfTextEditSink_QueryInterface(ITfTextEditSink* This,REFIID riid,void **ppvObject) {
4088     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4089 }
4090 static FORCEINLINE ULONG ITfTextEditSink_AddRef(ITfTextEditSink* This) {
4091     return This->lpVtbl->AddRef(This);
4092 }
4093 static FORCEINLINE ULONG ITfTextEditSink_Release(ITfTextEditSink* This) {
4094     return This->lpVtbl->Release(This);
4095 }
4096 /*** ITfTextEditSink methods ***/
4097 static FORCEINLINE HRESULT ITfTextEditSink_OnEndEdit(ITfTextEditSink* This,ITfContext *pic,TfEditCookie ecReadOnly,ITfEditRecord *pEditRecord) {
4098     return This->lpVtbl->OnEndEdit(This,pic,ecReadOnly,pEditRecord);
4099 }
4100 #endif
4101 #endif
4102 
4103 #endif
4104 
4105 
4106 #endif  /* __ITfTextEditSink_INTERFACE_DEFINED__ */
4107 
4108 /*****************************************************************************
4109  * ITfContextOwnerCompositionSink interface
4110  */
4111 #ifndef __ITfContextOwnerCompositionSink_INTERFACE_DEFINED__
4112 #define __ITfContextOwnerCompositionSink_INTERFACE_DEFINED__
4113 
4114 DEFINE_GUID(IID_ITfContextOwnerCompositionSink, 0x5f20aa40, 0xb57a, 0x4f34, 0x96,0xab, 0x35,0x76,0xf3,0x77,0xcc,0x79);
4115 #if defined(__cplusplus) && !defined(CINTERFACE)
4116 MIDL_INTERFACE("5f20aa40-b57a-4f34-96ab-3576f377cc79")
4117 ITfContextOwnerCompositionSink : public IUnknown
4118 {
4119     virtual HRESULT STDMETHODCALLTYPE OnStartComposition(
4120         ITfCompositionView *pComposition,
4121         WINBOOL *pfOk) = 0;
4122 
4123     virtual HRESULT STDMETHODCALLTYPE OnUpdateComposition(
4124         ITfCompositionView *pComposition,
4125         ITfRange *pRangeNew) = 0;
4126 
4127     virtual HRESULT STDMETHODCALLTYPE OnEndComposition(
4128         ITfCompositionView *pComposition) = 0;
4129 
4130 };
4131 #ifdef __CRT_UUID_DECL
4132 __CRT_UUID_DECL(ITfContextOwnerCompositionSink, 0x5f20aa40, 0xb57a, 0x4f34, 0x96,0xab, 0x35,0x76,0xf3,0x77,0xcc,0x79)
4133 #endif
4134 #else
4135 typedef struct ITfContextOwnerCompositionSinkVtbl {
4136     BEGIN_INTERFACE
4137 
4138     /*** IUnknown methods ***/
4139     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4140         ITfContextOwnerCompositionSink *This,
4141         REFIID riid,
4142         void **ppvObject);
4143 
4144     ULONG (STDMETHODCALLTYPE *AddRef)(
4145         ITfContextOwnerCompositionSink *This);
4146 
4147     ULONG (STDMETHODCALLTYPE *Release)(
4148         ITfContextOwnerCompositionSink *This);
4149 
4150     /*** ITfContextOwnerCompositionSink methods ***/
4151     HRESULT (STDMETHODCALLTYPE *OnStartComposition)(
4152         ITfContextOwnerCompositionSink *This,
4153         ITfCompositionView *pComposition,
4154         WINBOOL *pfOk);
4155 
4156     HRESULT (STDMETHODCALLTYPE *OnUpdateComposition)(
4157         ITfContextOwnerCompositionSink *This,
4158         ITfCompositionView *pComposition,
4159         ITfRange *pRangeNew);
4160 
4161     HRESULT (STDMETHODCALLTYPE *OnEndComposition)(
4162         ITfContextOwnerCompositionSink *This,
4163         ITfCompositionView *pComposition);
4164 
4165     END_INTERFACE
4166 } ITfContextOwnerCompositionSinkVtbl;
4167 
4168 interface ITfContextOwnerCompositionSink {
4169     CONST_VTBL ITfContextOwnerCompositionSinkVtbl* lpVtbl;
4170 };
4171 
4172 #ifdef COBJMACROS
4173 #ifndef WIDL_C_INLINE_WRAPPERS
4174 /*** IUnknown methods ***/
4175 #define ITfContextOwnerCompositionSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4176 #define ITfContextOwnerCompositionSink_AddRef(This) (This)->lpVtbl->AddRef(This)
4177 #define ITfContextOwnerCompositionSink_Release(This) (This)->lpVtbl->Release(This)
4178 /*** ITfContextOwnerCompositionSink methods ***/
4179 #define ITfContextOwnerCompositionSink_OnStartComposition(This,pComposition,pfOk) (This)->lpVtbl->OnStartComposition(This,pComposition,pfOk)
4180 #define ITfContextOwnerCompositionSink_OnUpdateComposition(This,pComposition,pRangeNew) (This)->lpVtbl->OnUpdateComposition(This,pComposition,pRangeNew)
4181 #define ITfContextOwnerCompositionSink_OnEndComposition(This,pComposition) (This)->lpVtbl->OnEndComposition(This,pComposition)
4182 #else
4183 /*** IUnknown methods ***/
4184 static FORCEINLINE HRESULT ITfContextOwnerCompositionSink_QueryInterface(ITfContextOwnerCompositionSink* This,REFIID riid,void **ppvObject) {
4185     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4186 }
4187 static FORCEINLINE ULONG ITfContextOwnerCompositionSink_AddRef(ITfContextOwnerCompositionSink* This) {
4188     return This->lpVtbl->AddRef(This);
4189 }
4190 static FORCEINLINE ULONG ITfContextOwnerCompositionSink_Release(ITfContextOwnerCompositionSink* This) {
4191     return This->lpVtbl->Release(This);
4192 }
4193 /*** ITfContextOwnerCompositionSink methods ***/
4194 static FORCEINLINE HRESULT ITfContextOwnerCompositionSink_OnStartComposition(ITfContextOwnerCompositionSink* This,ITfCompositionView *pComposition,WINBOOL *pfOk) {
4195     return This->lpVtbl->OnStartComposition(This,pComposition,pfOk);
4196 }
4197 static FORCEINLINE HRESULT ITfContextOwnerCompositionSink_OnUpdateComposition(ITfContextOwnerCompositionSink* This,ITfCompositionView *pComposition,ITfRange *pRangeNew) {
4198     return This->lpVtbl->OnUpdateComposition(This,pComposition,pRangeNew);
4199 }
4200 static FORCEINLINE HRESULT ITfContextOwnerCompositionSink_OnEndComposition(ITfContextOwnerCompositionSink* This,ITfCompositionView *pComposition) {
4201     return This->lpVtbl->OnEndComposition(This,pComposition);
4202 }
4203 #endif
4204 #endif
4205 
4206 #endif
4207 
4208 
4209 #endif  /* __ITfContextOwnerCompositionSink_INTERFACE_DEFINED__ */
4210 
4211 /*****************************************************************************
4212  * ITfActiveLanguageProfileNotifySink interface
4213  */
4214 #ifndef __ITfActiveLanguageProfileNotifySink_INTERFACE_DEFINED__
4215 #define __ITfActiveLanguageProfileNotifySink_INTERFACE_DEFINED__
4216 
4217 DEFINE_GUID(IID_ITfActiveLanguageProfileNotifySink, 0xb246cb75, 0xa93e, 0x4652, 0xbf,0x8c, 0xb3,0xfe,0x0c,0xfd,0x7e,0x57);
4218 #if defined(__cplusplus) && !defined(CINTERFACE)
4219 MIDL_INTERFACE("b246cb75-a93e-4652-bf8c-b3fe0cfd7e57")
4220 ITfActiveLanguageProfileNotifySink : public IUnknown
4221 {
4222     virtual HRESULT STDMETHODCALLTYPE OnActivated(
4223         REFCLSID clsid,
4224         REFGUID guidProfile,
4225         WINBOOL fActivated) = 0;
4226 
4227 };
4228 #ifdef __CRT_UUID_DECL
4229 __CRT_UUID_DECL(ITfActiveLanguageProfileNotifySink, 0xb246cb75, 0xa93e, 0x4652, 0xbf,0x8c, 0xb3,0xfe,0x0c,0xfd,0x7e,0x57)
4230 #endif
4231 #else
4232 typedef struct ITfActiveLanguageProfileNotifySinkVtbl {
4233     BEGIN_INTERFACE
4234 
4235     /*** IUnknown methods ***/
4236     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4237         ITfActiveLanguageProfileNotifySink *This,
4238         REFIID riid,
4239         void **ppvObject);
4240 
4241     ULONG (STDMETHODCALLTYPE *AddRef)(
4242         ITfActiveLanguageProfileNotifySink *This);
4243 
4244     ULONG (STDMETHODCALLTYPE *Release)(
4245         ITfActiveLanguageProfileNotifySink *This);
4246 
4247     /*** ITfActiveLanguageProfileNotifySink methods ***/
4248     HRESULT (STDMETHODCALLTYPE *OnActivated)(
4249         ITfActiveLanguageProfileNotifySink *This,
4250         REFCLSID clsid,
4251         REFGUID guidProfile,
4252         WINBOOL fActivated);
4253 
4254     END_INTERFACE
4255 } ITfActiveLanguageProfileNotifySinkVtbl;
4256 
4257 interface ITfActiveLanguageProfileNotifySink {
4258     CONST_VTBL ITfActiveLanguageProfileNotifySinkVtbl* lpVtbl;
4259 };
4260 
4261 #ifdef COBJMACROS
4262 #ifndef WIDL_C_INLINE_WRAPPERS
4263 /*** IUnknown methods ***/
4264 #define ITfActiveLanguageProfileNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4265 #define ITfActiveLanguageProfileNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
4266 #define ITfActiveLanguageProfileNotifySink_Release(This) (This)->lpVtbl->Release(This)
4267 /*** ITfActiveLanguageProfileNotifySink methods ***/
4268 #define ITfActiveLanguageProfileNotifySink_OnActivated(This,clsid,guidProfile,fActivated) (This)->lpVtbl->OnActivated(This,clsid,guidProfile,fActivated)
4269 #else
4270 /*** IUnknown methods ***/
4271 static FORCEINLINE HRESULT ITfActiveLanguageProfileNotifySink_QueryInterface(ITfActiveLanguageProfileNotifySink* This,REFIID riid,void **ppvObject) {
4272     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4273 }
4274 static FORCEINLINE ULONG ITfActiveLanguageProfileNotifySink_AddRef(ITfActiveLanguageProfileNotifySink* This) {
4275     return This->lpVtbl->AddRef(This);
4276 }
4277 static FORCEINLINE ULONG ITfActiveLanguageProfileNotifySink_Release(ITfActiveLanguageProfileNotifySink* This) {
4278     return This->lpVtbl->Release(This);
4279 }
4280 /*** ITfActiveLanguageProfileNotifySink methods ***/
4281 static FORCEINLINE HRESULT ITfActiveLanguageProfileNotifySink_OnActivated(ITfActiveLanguageProfileNotifySink* This,REFCLSID clsid,REFGUID guidProfile,WINBOOL fActivated) {
4282     return This->lpVtbl->OnActivated(This,clsid,guidProfile,fActivated);
4283 }
4284 #endif
4285 #endif
4286 
4287 #endif
4288 
4289 
4290 #endif  /* __ITfActiveLanguageProfileNotifySink_INTERFACE_DEFINED__ */
4291 
4292 /*****************************************************************************
4293  * IEnumTfLanguageProfiles interface
4294  */
4295 #ifndef __IEnumTfLanguageProfiles_INTERFACE_DEFINED__
4296 #define __IEnumTfLanguageProfiles_INTERFACE_DEFINED__
4297 
4298 DEFINE_GUID(IID_IEnumTfLanguageProfiles, 0x3d61bf11, 0xac5f, 0x42c8, 0xa4,0xcb, 0x93,0x1b,0xcc,0x28,0xc7,0x44);
4299 #if defined(__cplusplus) && !defined(CINTERFACE)
4300 MIDL_INTERFACE("3d61bf11-ac5f-42c8-a4cb-931bcc28c744")
4301 IEnumTfLanguageProfiles : public IUnknown
4302 {
4303     virtual HRESULT STDMETHODCALLTYPE Clone(
4304         IEnumTfLanguageProfiles **ppEnum) = 0;
4305 
4306     virtual HRESULT STDMETHODCALLTYPE Next(
4307         ULONG ulCount,
4308         TF_LANGUAGEPROFILE *pProfile,
4309         ULONG *pcFetch) = 0;
4310 
4311     virtual HRESULT STDMETHODCALLTYPE Reset(
4312         ) = 0;
4313 
4314     virtual HRESULT STDMETHODCALLTYPE Skip(
4315         ULONG ulCount) = 0;
4316 
4317 };
4318 #ifdef __CRT_UUID_DECL
4319 __CRT_UUID_DECL(IEnumTfLanguageProfiles, 0x3d61bf11, 0xac5f, 0x42c8, 0xa4,0xcb, 0x93,0x1b,0xcc,0x28,0xc7,0x44)
4320 #endif
4321 #else
4322 typedef struct IEnumTfLanguageProfilesVtbl {
4323     BEGIN_INTERFACE
4324 
4325     /*** IUnknown methods ***/
4326     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4327         IEnumTfLanguageProfiles *This,
4328         REFIID riid,
4329         void **ppvObject);
4330 
4331     ULONG (STDMETHODCALLTYPE *AddRef)(
4332         IEnumTfLanguageProfiles *This);
4333 
4334     ULONG (STDMETHODCALLTYPE *Release)(
4335         IEnumTfLanguageProfiles *This);
4336 
4337     /*** IEnumTfLanguageProfiles methods ***/
4338     HRESULT (STDMETHODCALLTYPE *Clone)(
4339         IEnumTfLanguageProfiles *This,
4340         IEnumTfLanguageProfiles **ppEnum);
4341 
4342     HRESULT (STDMETHODCALLTYPE *Next)(
4343         IEnumTfLanguageProfiles *This,
4344         ULONG ulCount,
4345         TF_LANGUAGEPROFILE *pProfile,
4346         ULONG *pcFetch);
4347 
4348     HRESULT (STDMETHODCALLTYPE *Reset)(
4349         IEnumTfLanguageProfiles *This);
4350 
4351     HRESULT (STDMETHODCALLTYPE *Skip)(
4352         IEnumTfLanguageProfiles *This,
4353         ULONG ulCount);
4354 
4355     END_INTERFACE
4356 } IEnumTfLanguageProfilesVtbl;
4357 
4358 interface IEnumTfLanguageProfiles {
4359     CONST_VTBL IEnumTfLanguageProfilesVtbl* lpVtbl;
4360 };
4361 
4362 #ifdef COBJMACROS
4363 #ifndef WIDL_C_INLINE_WRAPPERS
4364 /*** IUnknown methods ***/
4365 #define IEnumTfLanguageProfiles_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4366 #define IEnumTfLanguageProfiles_AddRef(This) (This)->lpVtbl->AddRef(This)
4367 #define IEnumTfLanguageProfiles_Release(This) (This)->lpVtbl->Release(This)
4368 /*** IEnumTfLanguageProfiles methods ***/
4369 #define IEnumTfLanguageProfiles_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
4370 #define IEnumTfLanguageProfiles_Next(This,ulCount,pProfile,pcFetch) (This)->lpVtbl->Next(This,ulCount,pProfile,pcFetch)
4371 #define IEnumTfLanguageProfiles_Reset(This) (This)->lpVtbl->Reset(This)
4372 #define IEnumTfLanguageProfiles_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
4373 #else
4374 /*** IUnknown methods ***/
4375 static FORCEINLINE HRESULT IEnumTfLanguageProfiles_QueryInterface(IEnumTfLanguageProfiles* This,REFIID riid,void **ppvObject) {
4376     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4377 }
4378 static FORCEINLINE ULONG IEnumTfLanguageProfiles_AddRef(IEnumTfLanguageProfiles* This) {
4379     return This->lpVtbl->AddRef(This);
4380 }
4381 static FORCEINLINE ULONG IEnumTfLanguageProfiles_Release(IEnumTfLanguageProfiles* This) {
4382     return This->lpVtbl->Release(This);
4383 }
4384 /*** IEnumTfLanguageProfiles methods ***/
4385 static FORCEINLINE HRESULT IEnumTfLanguageProfiles_Clone(IEnumTfLanguageProfiles* This,IEnumTfLanguageProfiles **ppEnum) {
4386     return This->lpVtbl->Clone(This,ppEnum);
4387 }
4388 static FORCEINLINE HRESULT IEnumTfLanguageProfiles_Next(IEnumTfLanguageProfiles* This,ULONG ulCount,TF_LANGUAGEPROFILE *pProfile,ULONG *pcFetch) {
4389     return This->lpVtbl->Next(This,ulCount,pProfile,pcFetch);
4390 }
4391 static FORCEINLINE HRESULT IEnumTfLanguageProfiles_Reset(IEnumTfLanguageProfiles* This) {
4392     return This->lpVtbl->Reset(This);
4393 }
4394 static FORCEINLINE HRESULT IEnumTfLanguageProfiles_Skip(IEnumTfLanguageProfiles* This,ULONG ulCount) {
4395     return This->lpVtbl->Skip(This,ulCount);
4396 }
4397 #endif
4398 #endif
4399 
4400 #endif
4401 
4402 
4403 #endif  /* __IEnumTfLanguageProfiles_INTERFACE_DEFINED__ */
4404 
4405 /*****************************************************************************
4406  * ITfTextInputProcessor interface
4407  */
4408 #ifndef __ITfTextInputProcessor_INTERFACE_DEFINED__
4409 #define __ITfTextInputProcessor_INTERFACE_DEFINED__
4410 
4411 DEFINE_GUID(IID_ITfTextInputProcessor, 0xaa80e7f7, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
4412 #if defined(__cplusplus) && !defined(CINTERFACE)
4413 MIDL_INTERFACE("aa80e7f7-2021-11d2-93e0-0060b067b86e")
4414 ITfTextInputProcessor : public IUnknown
4415 {
4416     virtual HRESULT STDMETHODCALLTYPE Activate(
4417         ITfThreadMgr *ptim,
4418         TfClientId tid) = 0;
4419 
4420     virtual HRESULT STDMETHODCALLTYPE Deactivate(
4421         ) = 0;
4422 
4423 };
4424 #ifdef __CRT_UUID_DECL
4425 __CRT_UUID_DECL(ITfTextInputProcessor, 0xaa80e7f7, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
4426 #endif
4427 #else
4428 typedef struct ITfTextInputProcessorVtbl {
4429     BEGIN_INTERFACE
4430 
4431     /*** IUnknown methods ***/
4432     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4433         ITfTextInputProcessor *This,
4434         REFIID riid,
4435         void **ppvObject);
4436 
4437     ULONG (STDMETHODCALLTYPE *AddRef)(
4438         ITfTextInputProcessor *This);
4439 
4440     ULONG (STDMETHODCALLTYPE *Release)(
4441         ITfTextInputProcessor *This);
4442 
4443     /*** ITfTextInputProcessor methods ***/
4444     HRESULT (STDMETHODCALLTYPE *Activate)(
4445         ITfTextInputProcessor *This,
4446         ITfThreadMgr *ptim,
4447         TfClientId tid);
4448 
4449     HRESULT (STDMETHODCALLTYPE *Deactivate)(
4450         ITfTextInputProcessor *This);
4451 
4452     END_INTERFACE
4453 } ITfTextInputProcessorVtbl;
4454 
4455 interface ITfTextInputProcessor {
4456     CONST_VTBL ITfTextInputProcessorVtbl* lpVtbl;
4457 };
4458 
4459 #ifdef COBJMACROS
4460 #ifndef WIDL_C_INLINE_WRAPPERS
4461 /*** IUnknown methods ***/
4462 #define ITfTextInputProcessor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4463 #define ITfTextInputProcessor_AddRef(This) (This)->lpVtbl->AddRef(This)
4464 #define ITfTextInputProcessor_Release(This) (This)->lpVtbl->Release(This)
4465 /*** ITfTextInputProcessor methods ***/
4466 #define ITfTextInputProcessor_Activate(This,ptim,tid) (This)->lpVtbl->Activate(This,ptim,tid)
4467 #define ITfTextInputProcessor_Deactivate(This) (This)->lpVtbl->Deactivate(This)
4468 #else
4469 /*** IUnknown methods ***/
4470 static FORCEINLINE HRESULT ITfTextInputProcessor_QueryInterface(ITfTextInputProcessor* This,REFIID riid,void **ppvObject) {
4471     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4472 }
4473 static FORCEINLINE ULONG ITfTextInputProcessor_AddRef(ITfTextInputProcessor* This) {
4474     return This->lpVtbl->AddRef(This);
4475 }
4476 static FORCEINLINE ULONG ITfTextInputProcessor_Release(ITfTextInputProcessor* This) {
4477     return This->lpVtbl->Release(This);
4478 }
4479 /*** ITfTextInputProcessor methods ***/
4480 static FORCEINLINE HRESULT ITfTextInputProcessor_Activate(ITfTextInputProcessor* This,ITfThreadMgr *ptim,TfClientId tid) {
4481     return This->lpVtbl->Activate(This,ptim,tid);
4482 }
4483 static FORCEINLINE HRESULT ITfTextInputProcessor_Deactivate(ITfTextInputProcessor* This) {
4484     return This->lpVtbl->Deactivate(This);
4485 }
4486 #endif
4487 #endif
4488 
4489 #endif
4490 
4491 
4492 #endif  /* __ITfTextInputProcessor_INTERFACE_DEFINED__ */
4493 
4494 /*****************************************************************************
4495  * ITfThreadMgrEventSink interface
4496  */
4497 #ifndef __ITfThreadMgrEventSink_INTERFACE_DEFINED__
4498 #define __ITfThreadMgrEventSink_INTERFACE_DEFINED__
4499 
4500 DEFINE_GUID(IID_ITfThreadMgrEventSink, 0xaa80e80e, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
4501 #if defined(__cplusplus) && !defined(CINTERFACE)
4502 MIDL_INTERFACE("aa80e80e-2021-11d2-93e0-0060b067b86e")
4503 ITfThreadMgrEventSink : public IUnknown
4504 {
4505     virtual HRESULT STDMETHODCALLTYPE OnInitDocumentMgr(
4506         ITfDocumentMgr *pdim) = 0;
4507 
4508     virtual HRESULT STDMETHODCALLTYPE OnUninitDocumentMgr(
4509         ITfDocumentMgr *pdim) = 0;
4510 
4511     virtual HRESULT STDMETHODCALLTYPE OnSetFocus(
4512         ITfDocumentMgr *pdimFocus,
4513         ITfDocumentMgr *pdimPrevFocus) = 0;
4514 
4515     virtual HRESULT STDMETHODCALLTYPE OnPushContext(
4516         ITfContext *pic) = 0;
4517 
4518     virtual HRESULT STDMETHODCALLTYPE OnPopContext(
4519         ITfContext *pic) = 0;
4520 
4521 };
4522 #ifdef __CRT_UUID_DECL
4523 __CRT_UUID_DECL(ITfThreadMgrEventSink, 0xaa80e80e, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
4524 #endif
4525 #else
4526 typedef struct ITfThreadMgrEventSinkVtbl {
4527     BEGIN_INTERFACE
4528 
4529     /*** IUnknown methods ***/
4530     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4531         ITfThreadMgrEventSink *This,
4532         REFIID riid,
4533         void **ppvObject);
4534 
4535     ULONG (STDMETHODCALLTYPE *AddRef)(
4536         ITfThreadMgrEventSink *This);
4537 
4538     ULONG (STDMETHODCALLTYPE *Release)(
4539         ITfThreadMgrEventSink *This);
4540 
4541     /*** ITfThreadMgrEventSink methods ***/
4542     HRESULT (STDMETHODCALLTYPE *OnInitDocumentMgr)(
4543         ITfThreadMgrEventSink *This,
4544         ITfDocumentMgr *pdim);
4545 
4546     HRESULT (STDMETHODCALLTYPE *OnUninitDocumentMgr)(
4547         ITfThreadMgrEventSink *This,
4548         ITfDocumentMgr *pdim);
4549 
4550     HRESULT (STDMETHODCALLTYPE *OnSetFocus)(
4551         ITfThreadMgrEventSink *This,
4552         ITfDocumentMgr *pdimFocus,
4553         ITfDocumentMgr *pdimPrevFocus);
4554 
4555     HRESULT (STDMETHODCALLTYPE *OnPushContext)(
4556         ITfThreadMgrEventSink *This,
4557         ITfContext *pic);
4558 
4559     HRESULT (STDMETHODCALLTYPE *OnPopContext)(
4560         ITfThreadMgrEventSink *This,
4561         ITfContext *pic);
4562 
4563     END_INTERFACE
4564 } ITfThreadMgrEventSinkVtbl;
4565 
4566 interface ITfThreadMgrEventSink {
4567     CONST_VTBL ITfThreadMgrEventSinkVtbl* lpVtbl;
4568 };
4569 
4570 #ifdef COBJMACROS
4571 #ifndef WIDL_C_INLINE_WRAPPERS
4572 /*** IUnknown methods ***/
4573 #define ITfThreadMgrEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4574 #define ITfThreadMgrEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
4575 #define ITfThreadMgrEventSink_Release(This) (This)->lpVtbl->Release(This)
4576 /*** ITfThreadMgrEventSink methods ***/
4577 #define ITfThreadMgrEventSink_OnInitDocumentMgr(This,pdim) (This)->lpVtbl->OnInitDocumentMgr(This,pdim)
4578 #define ITfThreadMgrEventSink_OnUninitDocumentMgr(This,pdim) (This)->lpVtbl->OnUninitDocumentMgr(This,pdim)
4579 #define ITfThreadMgrEventSink_OnSetFocus(This,pdimFocus,pdimPrevFocus) (This)->lpVtbl->OnSetFocus(This,pdimFocus,pdimPrevFocus)
4580 #define ITfThreadMgrEventSink_OnPushContext(This,pic) (This)->lpVtbl->OnPushContext(This,pic)
4581 #define ITfThreadMgrEventSink_OnPopContext(This,pic) (This)->lpVtbl->OnPopContext(This,pic)
4582 #else
4583 /*** IUnknown methods ***/
4584 static FORCEINLINE HRESULT ITfThreadMgrEventSink_QueryInterface(ITfThreadMgrEventSink* This,REFIID riid,void **ppvObject) {
4585     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4586 }
4587 static FORCEINLINE ULONG ITfThreadMgrEventSink_AddRef(ITfThreadMgrEventSink* This) {
4588     return This->lpVtbl->AddRef(This);
4589 }
4590 static FORCEINLINE ULONG ITfThreadMgrEventSink_Release(ITfThreadMgrEventSink* This) {
4591     return This->lpVtbl->Release(This);
4592 }
4593 /*** ITfThreadMgrEventSink methods ***/
4594 static FORCEINLINE HRESULT ITfThreadMgrEventSink_OnInitDocumentMgr(ITfThreadMgrEventSink* This,ITfDocumentMgr *pdim) {
4595     return This->lpVtbl->OnInitDocumentMgr(This,pdim);
4596 }
4597 static FORCEINLINE HRESULT ITfThreadMgrEventSink_OnUninitDocumentMgr(ITfThreadMgrEventSink* This,ITfDocumentMgr *pdim) {
4598     return This->lpVtbl->OnUninitDocumentMgr(This,pdim);
4599 }
4600 static FORCEINLINE HRESULT ITfThreadMgrEventSink_OnSetFocus(ITfThreadMgrEventSink* This,ITfDocumentMgr *pdimFocus,ITfDocumentMgr *pdimPrevFocus) {
4601     return This->lpVtbl->OnSetFocus(This,pdimFocus,pdimPrevFocus);
4602 }
4603 static FORCEINLINE HRESULT ITfThreadMgrEventSink_OnPushContext(ITfThreadMgrEventSink* This,ITfContext *pic) {
4604     return This->lpVtbl->OnPushContext(This,pic);
4605 }
4606 static FORCEINLINE HRESULT ITfThreadMgrEventSink_OnPopContext(ITfThreadMgrEventSink* This,ITfContext *pic) {
4607     return This->lpVtbl->OnPopContext(This,pic);
4608 }
4609 #endif
4610 #endif
4611 
4612 #endif
4613 
4614 
4615 #endif  /* __ITfThreadMgrEventSink_INTERFACE_DEFINED__ */
4616 
4617 /*****************************************************************************
4618  * ITfKeystrokeMgr interface
4619  */
4620 #ifndef __ITfKeystrokeMgr_INTERFACE_DEFINED__
4621 #define __ITfKeystrokeMgr_INTERFACE_DEFINED__
4622 
4623 DEFINE_GUID(IID_ITfKeystrokeMgr, 0xaa80e7f0, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
4624 #if defined(__cplusplus) && !defined(CINTERFACE)
4625 MIDL_INTERFACE("aa80e7f0-2021-11d2-93e0-0060b067b86e")
4626 ITfKeystrokeMgr : public IUnknown
4627 {
4628     virtual HRESULT STDMETHODCALLTYPE AdviseKeyEventSink(
4629         TfClientId tid,
4630         ITfKeyEventSink *pSink,
4631         WINBOOL fForeground) = 0;
4632 
4633     virtual HRESULT STDMETHODCALLTYPE UnadviseKeyEventSink(
4634         TfClientId tid) = 0;
4635 
4636     virtual HRESULT STDMETHODCALLTYPE GetForeground(
4637         CLSID *pclsid) = 0;
4638 
4639     virtual HRESULT STDMETHODCALLTYPE TestKeyDown(
4640         WPARAM wParam,
4641         LPARAM lParam,
4642         WINBOOL *pfEaten) = 0;
4643 
4644     virtual HRESULT STDMETHODCALLTYPE TestKeyUp(
4645         WPARAM wParam,
4646         LPARAM lParam,
4647         WINBOOL *pfEaten) = 0;
4648 
4649     virtual HRESULT STDMETHODCALLTYPE KeyDown(
4650         WPARAM wParam,
4651         LPARAM lParam,
4652         WINBOOL *pfEaten) = 0;
4653 
4654     virtual HRESULT STDMETHODCALLTYPE KeyUp(
4655         WPARAM wParam,
4656         LPARAM lParam,
4657         WINBOOL *pfEaten) = 0;
4658 
4659     virtual HRESULT STDMETHODCALLTYPE GetPreservedKey(
4660         ITfContext *pic,
4661         const TF_PRESERVEDKEY *pprekey,
4662         GUID *pguid) = 0;
4663 
4664     virtual HRESULT STDMETHODCALLTYPE IsPreservedKey(
4665         REFGUID rguid,
4666         const TF_PRESERVEDKEY *pprekey,
4667         WINBOOL *pfRegistered) = 0;
4668 
4669     virtual HRESULT STDMETHODCALLTYPE PreserveKey(
4670         TfClientId tid,
4671         REFGUID rguid,
4672         const TF_PRESERVEDKEY *prekey,
4673         const WCHAR *pchDesc,
4674         ULONG cchDesc) = 0;
4675 
4676     virtual HRESULT STDMETHODCALLTYPE UnpreserveKey(
4677         REFGUID rguid,
4678         const TF_PRESERVEDKEY *pprekey) = 0;
4679 
4680     virtual HRESULT STDMETHODCALLTYPE SetPreservedKeyDescription(
4681         REFGUID rguid,
4682         const WCHAR *pchDesc,
4683         ULONG cchDesc) = 0;
4684 
4685     virtual HRESULT STDMETHODCALLTYPE GetPreservedKeyDescription(
4686         REFGUID rguid,
4687         BSTR *pbstrDesc) = 0;
4688 
4689     virtual HRESULT STDMETHODCALLTYPE SimulatePreservedKey(
4690         ITfContext *pic,
4691         REFGUID rguid,
4692         WINBOOL *pfEaten) = 0;
4693 
4694 };
4695 #ifdef __CRT_UUID_DECL
4696 __CRT_UUID_DECL(ITfKeystrokeMgr, 0xaa80e7f0, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
4697 #endif
4698 #else
4699 typedef struct ITfKeystrokeMgrVtbl {
4700     BEGIN_INTERFACE
4701 
4702     /*** IUnknown methods ***/
4703     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4704         ITfKeystrokeMgr *This,
4705         REFIID riid,
4706         void **ppvObject);
4707 
4708     ULONG (STDMETHODCALLTYPE *AddRef)(
4709         ITfKeystrokeMgr *This);
4710 
4711     ULONG (STDMETHODCALLTYPE *Release)(
4712         ITfKeystrokeMgr *This);
4713 
4714     /*** ITfKeystrokeMgr methods ***/
4715     HRESULT (STDMETHODCALLTYPE *AdviseKeyEventSink)(
4716         ITfKeystrokeMgr *This,
4717         TfClientId tid,
4718         ITfKeyEventSink *pSink,
4719         WINBOOL fForeground);
4720 
4721     HRESULT (STDMETHODCALLTYPE *UnadviseKeyEventSink)(
4722         ITfKeystrokeMgr *This,
4723         TfClientId tid);
4724 
4725     HRESULT (STDMETHODCALLTYPE *GetForeground)(
4726         ITfKeystrokeMgr *This,
4727         CLSID *pclsid);
4728 
4729     HRESULT (STDMETHODCALLTYPE *TestKeyDown)(
4730         ITfKeystrokeMgr *This,
4731         WPARAM wParam,
4732         LPARAM lParam,
4733         WINBOOL *pfEaten);
4734 
4735     HRESULT (STDMETHODCALLTYPE *TestKeyUp)(
4736         ITfKeystrokeMgr *This,
4737         WPARAM wParam,
4738         LPARAM lParam,
4739         WINBOOL *pfEaten);
4740 
4741     HRESULT (STDMETHODCALLTYPE *KeyDown)(
4742         ITfKeystrokeMgr *This,
4743         WPARAM wParam,
4744         LPARAM lParam,
4745         WINBOOL *pfEaten);
4746 
4747     HRESULT (STDMETHODCALLTYPE *KeyUp)(
4748         ITfKeystrokeMgr *This,
4749         WPARAM wParam,
4750         LPARAM lParam,
4751         WINBOOL *pfEaten);
4752 
4753     HRESULT (STDMETHODCALLTYPE *GetPreservedKey)(
4754         ITfKeystrokeMgr *This,
4755         ITfContext *pic,
4756         const TF_PRESERVEDKEY *pprekey,
4757         GUID *pguid);
4758 
4759     HRESULT (STDMETHODCALLTYPE *IsPreservedKey)(
4760         ITfKeystrokeMgr *This,
4761         REFGUID rguid,
4762         const TF_PRESERVEDKEY *pprekey,
4763         WINBOOL *pfRegistered);
4764 
4765     HRESULT (STDMETHODCALLTYPE *PreserveKey)(
4766         ITfKeystrokeMgr *This,
4767         TfClientId tid,
4768         REFGUID rguid,
4769         const TF_PRESERVEDKEY *prekey,
4770         const WCHAR *pchDesc,
4771         ULONG cchDesc);
4772 
4773     HRESULT (STDMETHODCALLTYPE *UnpreserveKey)(
4774         ITfKeystrokeMgr *This,
4775         REFGUID rguid,
4776         const TF_PRESERVEDKEY *pprekey);
4777 
4778     HRESULT (STDMETHODCALLTYPE *SetPreservedKeyDescription)(
4779         ITfKeystrokeMgr *This,
4780         REFGUID rguid,
4781         const WCHAR *pchDesc,
4782         ULONG cchDesc);
4783 
4784     HRESULT (STDMETHODCALLTYPE *GetPreservedKeyDescription)(
4785         ITfKeystrokeMgr *This,
4786         REFGUID rguid,
4787         BSTR *pbstrDesc);
4788 
4789     HRESULT (STDMETHODCALLTYPE *SimulatePreservedKey)(
4790         ITfKeystrokeMgr *This,
4791         ITfContext *pic,
4792         REFGUID rguid,
4793         WINBOOL *pfEaten);
4794 
4795     END_INTERFACE
4796 } ITfKeystrokeMgrVtbl;
4797 
4798 interface ITfKeystrokeMgr {
4799     CONST_VTBL ITfKeystrokeMgrVtbl* lpVtbl;
4800 };
4801 
4802 #ifdef COBJMACROS
4803 #ifndef WIDL_C_INLINE_WRAPPERS
4804 /*** IUnknown methods ***/
4805 #define ITfKeystrokeMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4806 #define ITfKeystrokeMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
4807 #define ITfKeystrokeMgr_Release(This) (This)->lpVtbl->Release(This)
4808 /*** ITfKeystrokeMgr methods ***/
4809 #define ITfKeystrokeMgr_AdviseKeyEventSink(This,tid,pSink,fForeground) (This)->lpVtbl->AdviseKeyEventSink(This,tid,pSink,fForeground)
4810 #define ITfKeystrokeMgr_UnadviseKeyEventSink(This,tid) (This)->lpVtbl->UnadviseKeyEventSink(This,tid)
4811 #define ITfKeystrokeMgr_GetForeground(This,pclsid) (This)->lpVtbl->GetForeground(This,pclsid)
4812 #define ITfKeystrokeMgr_TestKeyDown(This,wParam,lParam,pfEaten) (This)->lpVtbl->TestKeyDown(This,wParam,lParam,pfEaten)
4813 #define ITfKeystrokeMgr_TestKeyUp(This,wParam,lParam,pfEaten) (This)->lpVtbl->TestKeyUp(This,wParam,lParam,pfEaten)
4814 #define ITfKeystrokeMgr_KeyDown(This,wParam,lParam,pfEaten) (This)->lpVtbl->KeyDown(This,wParam,lParam,pfEaten)
4815 #define ITfKeystrokeMgr_KeyUp(This,wParam,lParam,pfEaten) (This)->lpVtbl->KeyUp(This,wParam,lParam,pfEaten)
4816 #define ITfKeystrokeMgr_GetPreservedKey(This,pic,pprekey,pguid) (This)->lpVtbl->GetPreservedKey(This,pic,pprekey,pguid)
4817 #define ITfKeystrokeMgr_IsPreservedKey(This,rguid,pprekey,pfRegistered) (This)->lpVtbl->IsPreservedKey(This,rguid,pprekey,pfRegistered)
4818 #define ITfKeystrokeMgr_PreserveKey(This,tid,rguid,prekey,pchDesc,cchDesc) (This)->lpVtbl->PreserveKey(This,tid,rguid,prekey,pchDesc,cchDesc)
4819 #define ITfKeystrokeMgr_UnpreserveKey(This,rguid,pprekey) (This)->lpVtbl->UnpreserveKey(This,rguid,pprekey)
4820 #define ITfKeystrokeMgr_SetPreservedKeyDescription(This,rguid,pchDesc,cchDesc) (This)->lpVtbl->SetPreservedKeyDescription(This,rguid,pchDesc,cchDesc)
4821 #define ITfKeystrokeMgr_GetPreservedKeyDescription(This,rguid,pbstrDesc) (This)->lpVtbl->GetPreservedKeyDescription(This,rguid,pbstrDesc)
4822 #define ITfKeystrokeMgr_SimulatePreservedKey(This,pic,rguid,pfEaten) (This)->lpVtbl->SimulatePreservedKey(This,pic,rguid,pfEaten)
4823 #else
4824 /*** IUnknown methods ***/
4825 static FORCEINLINE HRESULT ITfKeystrokeMgr_QueryInterface(ITfKeystrokeMgr* This,REFIID riid,void **ppvObject) {
4826     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4827 }
4828 static FORCEINLINE ULONG ITfKeystrokeMgr_AddRef(ITfKeystrokeMgr* This) {
4829     return This->lpVtbl->AddRef(This);
4830 }
4831 static FORCEINLINE ULONG ITfKeystrokeMgr_Release(ITfKeystrokeMgr* This) {
4832     return This->lpVtbl->Release(This);
4833 }
4834 /*** ITfKeystrokeMgr methods ***/
4835 static FORCEINLINE HRESULT ITfKeystrokeMgr_AdviseKeyEventSink(ITfKeystrokeMgr* This,TfClientId tid,ITfKeyEventSink *pSink,WINBOOL fForeground) {
4836     return This->lpVtbl->AdviseKeyEventSink(This,tid,pSink,fForeground);
4837 }
4838 static FORCEINLINE HRESULT ITfKeystrokeMgr_UnadviseKeyEventSink(ITfKeystrokeMgr* This,TfClientId tid) {
4839     return This->lpVtbl->UnadviseKeyEventSink(This,tid);
4840 }
4841 static FORCEINLINE HRESULT ITfKeystrokeMgr_GetForeground(ITfKeystrokeMgr* This,CLSID *pclsid) {
4842     return This->lpVtbl->GetForeground(This,pclsid);
4843 }
4844 static FORCEINLINE HRESULT ITfKeystrokeMgr_TestKeyDown(ITfKeystrokeMgr* This,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
4845     return This->lpVtbl->TestKeyDown(This,wParam,lParam,pfEaten);
4846 }
4847 static FORCEINLINE HRESULT ITfKeystrokeMgr_TestKeyUp(ITfKeystrokeMgr* This,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
4848     return This->lpVtbl->TestKeyUp(This,wParam,lParam,pfEaten);
4849 }
4850 static FORCEINLINE HRESULT ITfKeystrokeMgr_KeyDown(ITfKeystrokeMgr* This,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
4851     return This->lpVtbl->KeyDown(This,wParam,lParam,pfEaten);
4852 }
4853 static FORCEINLINE HRESULT ITfKeystrokeMgr_KeyUp(ITfKeystrokeMgr* This,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
4854     return This->lpVtbl->KeyUp(This,wParam,lParam,pfEaten);
4855 }
4856 static FORCEINLINE HRESULT ITfKeystrokeMgr_GetPreservedKey(ITfKeystrokeMgr* This,ITfContext *pic,const TF_PRESERVEDKEY *pprekey,GUID *pguid) {
4857     return This->lpVtbl->GetPreservedKey(This,pic,pprekey,pguid);
4858 }
4859 static FORCEINLINE HRESULT ITfKeystrokeMgr_IsPreservedKey(ITfKeystrokeMgr* This,REFGUID rguid,const TF_PRESERVEDKEY *pprekey,WINBOOL *pfRegistered) {
4860     return This->lpVtbl->IsPreservedKey(This,rguid,pprekey,pfRegistered);
4861 }
4862 static FORCEINLINE HRESULT ITfKeystrokeMgr_PreserveKey(ITfKeystrokeMgr* This,TfClientId tid,REFGUID rguid,const TF_PRESERVEDKEY *prekey,const WCHAR *pchDesc,ULONG cchDesc) {
4863     return This->lpVtbl->PreserveKey(This,tid,rguid,prekey,pchDesc,cchDesc);
4864 }
4865 static FORCEINLINE HRESULT ITfKeystrokeMgr_UnpreserveKey(ITfKeystrokeMgr* This,REFGUID rguid,const TF_PRESERVEDKEY *pprekey) {
4866     return This->lpVtbl->UnpreserveKey(This,rguid,pprekey);
4867 }
4868 static FORCEINLINE HRESULT ITfKeystrokeMgr_SetPreservedKeyDescription(ITfKeystrokeMgr* This,REFGUID rguid,const WCHAR *pchDesc,ULONG cchDesc) {
4869     return This->lpVtbl->SetPreservedKeyDescription(This,rguid,pchDesc,cchDesc);
4870 }
4871 static FORCEINLINE HRESULT ITfKeystrokeMgr_GetPreservedKeyDescription(ITfKeystrokeMgr* This,REFGUID rguid,BSTR *pbstrDesc) {
4872     return This->lpVtbl->GetPreservedKeyDescription(This,rguid,pbstrDesc);
4873 }
4874 static FORCEINLINE HRESULT ITfKeystrokeMgr_SimulatePreservedKey(ITfKeystrokeMgr* This,ITfContext *pic,REFGUID rguid,WINBOOL *pfEaten) {
4875     return This->lpVtbl->SimulatePreservedKey(This,pic,rguid,pfEaten);
4876 }
4877 #endif
4878 #endif
4879 
4880 #endif
4881 
4882 
4883 #endif  /* __ITfKeystrokeMgr_INTERFACE_DEFINED__ */
4884 
4885 /*****************************************************************************
4886  * ITfKeyEventSink interface
4887  */
4888 #ifndef __ITfKeyEventSink_INTERFACE_DEFINED__
4889 #define __ITfKeyEventSink_INTERFACE_DEFINED__
4890 
4891 DEFINE_GUID(IID_ITfKeyEventSink, 0xaa80e7f5, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
4892 #if defined(__cplusplus) && !defined(CINTERFACE)
4893 MIDL_INTERFACE("aa80e7f5-2021-11d2-93e0-0060b067b86e")
4894 ITfKeyEventSink : public IUnknown
4895 {
4896     virtual HRESULT STDMETHODCALLTYPE OnSetFocus(
4897         WINBOOL fForeground) = 0;
4898 
4899     virtual HRESULT STDMETHODCALLTYPE OnTestKeyDown(
4900         ITfContext *pic,
4901         WPARAM wParam,
4902         LPARAM lParam,
4903         WINBOOL *pfEaten) = 0;
4904 
4905     virtual HRESULT STDMETHODCALLTYPE OnTestKeyUp(
4906         ITfContext *pic,
4907         WPARAM wParam,
4908         LPARAM lParam,
4909         WINBOOL *pfEaten) = 0;
4910 
4911     virtual HRESULT STDMETHODCALLTYPE OnKeyDown(
4912         ITfContext *pic,
4913         WPARAM wParam,
4914         LPARAM lParam,
4915         WINBOOL *pfEaten) = 0;
4916 
4917     virtual HRESULT STDMETHODCALLTYPE OnKeyUp(
4918         ITfContext *pic,
4919         WPARAM wParam,
4920         LPARAM lParam,
4921         WINBOOL *pfEaten) = 0;
4922 
4923     virtual HRESULT STDMETHODCALLTYPE OnPreservedKey(
4924         ITfContext *pic,
4925         REFGUID rguid,
4926         WINBOOL *pfEaten) = 0;
4927 
4928 };
4929 #ifdef __CRT_UUID_DECL
4930 __CRT_UUID_DECL(ITfKeyEventSink, 0xaa80e7f5, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
4931 #endif
4932 #else
4933 typedef struct ITfKeyEventSinkVtbl {
4934     BEGIN_INTERFACE
4935 
4936     /*** IUnknown methods ***/
4937     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4938         ITfKeyEventSink *This,
4939         REFIID riid,
4940         void **ppvObject);
4941 
4942     ULONG (STDMETHODCALLTYPE *AddRef)(
4943         ITfKeyEventSink *This);
4944 
4945     ULONG (STDMETHODCALLTYPE *Release)(
4946         ITfKeyEventSink *This);
4947 
4948     /*** ITfKeyEventSink methods ***/
4949     HRESULT (STDMETHODCALLTYPE *OnSetFocus)(
4950         ITfKeyEventSink *This,
4951         WINBOOL fForeground);
4952 
4953     HRESULT (STDMETHODCALLTYPE *OnTestKeyDown)(
4954         ITfKeyEventSink *This,
4955         ITfContext *pic,
4956         WPARAM wParam,
4957         LPARAM lParam,
4958         WINBOOL *pfEaten);
4959 
4960     HRESULT (STDMETHODCALLTYPE *OnTestKeyUp)(
4961         ITfKeyEventSink *This,
4962         ITfContext *pic,
4963         WPARAM wParam,
4964         LPARAM lParam,
4965         WINBOOL *pfEaten);
4966 
4967     HRESULT (STDMETHODCALLTYPE *OnKeyDown)(
4968         ITfKeyEventSink *This,
4969         ITfContext *pic,
4970         WPARAM wParam,
4971         LPARAM lParam,
4972         WINBOOL *pfEaten);
4973 
4974     HRESULT (STDMETHODCALLTYPE *OnKeyUp)(
4975         ITfKeyEventSink *This,
4976         ITfContext *pic,
4977         WPARAM wParam,
4978         LPARAM lParam,
4979         WINBOOL *pfEaten);
4980 
4981     HRESULT (STDMETHODCALLTYPE *OnPreservedKey)(
4982         ITfKeyEventSink *This,
4983         ITfContext *pic,
4984         REFGUID rguid,
4985         WINBOOL *pfEaten);
4986 
4987     END_INTERFACE
4988 } ITfKeyEventSinkVtbl;
4989 
4990 interface ITfKeyEventSink {
4991     CONST_VTBL ITfKeyEventSinkVtbl* lpVtbl;
4992 };
4993 
4994 #ifdef COBJMACROS
4995 #ifndef WIDL_C_INLINE_WRAPPERS
4996 /*** IUnknown methods ***/
4997 #define ITfKeyEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4998 #define ITfKeyEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
4999 #define ITfKeyEventSink_Release(This) (This)->lpVtbl->Release(This)
5000 /*** ITfKeyEventSink methods ***/
5001 #define ITfKeyEventSink_OnSetFocus(This,fForeground) (This)->lpVtbl->OnSetFocus(This,fForeground)
5002 #define ITfKeyEventSink_OnTestKeyDown(This,pic,wParam,lParam,pfEaten) (This)->lpVtbl->OnTestKeyDown(This,pic,wParam,lParam,pfEaten)
5003 #define ITfKeyEventSink_OnTestKeyUp(This,pic,wParam,lParam,pfEaten) (This)->lpVtbl->OnTestKeyUp(This,pic,wParam,lParam,pfEaten)
5004 #define ITfKeyEventSink_OnKeyDown(This,pic,wParam,lParam,pfEaten) (This)->lpVtbl->OnKeyDown(This,pic,wParam,lParam,pfEaten)
5005 #define ITfKeyEventSink_OnKeyUp(This,pic,wParam,lParam,pfEaten) (This)->lpVtbl->OnKeyUp(This,pic,wParam,lParam,pfEaten)
5006 #define ITfKeyEventSink_OnPreservedKey(This,pic,rguid,pfEaten) (This)->lpVtbl->OnPreservedKey(This,pic,rguid,pfEaten)
5007 #else
5008 /*** IUnknown methods ***/
5009 static FORCEINLINE HRESULT ITfKeyEventSink_QueryInterface(ITfKeyEventSink* This,REFIID riid,void **ppvObject) {
5010     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5011 }
5012 static FORCEINLINE ULONG ITfKeyEventSink_AddRef(ITfKeyEventSink* This) {
5013     return This->lpVtbl->AddRef(This);
5014 }
5015 static FORCEINLINE ULONG ITfKeyEventSink_Release(ITfKeyEventSink* This) {
5016     return This->lpVtbl->Release(This);
5017 }
5018 /*** ITfKeyEventSink methods ***/
5019 static FORCEINLINE HRESULT ITfKeyEventSink_OnSetFocus(ITfKeyEventSink* This,WINBOOL fForeground) {
5020     return This->lpVtbl->OnSetFocus(This,fForeground);
5021 }
5022 static FORCEINLINE HRESULT ITfKeyEventSink_OnTestKeyDown(ITfKeyEventSink* This,ITfContext *pic,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
5023     return This->lpVtbl->OnTestKeyDown(This,pic,wParam,lParam,pfEaten);
5024 }
5025 static FORCEINLINE HRESULT ITfKeyEventSink_OnTestKeyUp(ITfKeyEventSink* This,ITfContext *pic,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
5026     return This->lpVtbl->OnTestKeyUp(This,pic,wParam,lParam,pfEaten);
5027 }
5028 static FORCEINLINE HRESULT ITfKeyEventSink_OnKeyDown(ITfKeyEventSink* This,ITfContext *pic,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
5029     return This->lpVtbl->OnKeyDown(This,pic,wParam,lParam,pfEaten);
5030 }
5031 static FORCEINLINE HRESULT ITfKeyEventSink_OnKeyUp(ITfKeyEventSink* This,ITfContext *pic,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
5032     return This->lpVtbl->OnKeyUp(This,pic,wParam,lParam,pfEaten);
5033 }
5034 static FORCEINLINE HRESULT ITfKeyEventSink_OnPreservedKey(ITfKeyEventSink* This,ITfContext *pic,REFGUID rguid,WINBOOL *pfEaten) {
5035     return This->lpVtbl->OnPreservedKey(This,pic,rguid,pfEaten);
5036 }
5037 #endif
5038 #endif
5039 
5040 #endif
5041 
5042 
5043 #endif  /* __ITfKeyEventSink_INTERFACE_DEFINED__ */
5044 
5045 /*****************************************************************************
5046  * ITfKeyTraceEventSink interface
5047  */
5048 #ifndef __ITfKeyTraceEventSink_INTERFACE_DEFINED__
5049 #define __ITfKeyTraceEventSink_INTERFACE_DEFINED__
5050 
5051 DEFINE_GUID(IID_ITfKeyTraceEventSink, 0x1cd4c13b, 0x1c36, 0x4191, 0xa7,0x0a, 0x7f,0x3e,0x61,0x1f,0x36,0x7d);
5052 #if defined(__cplusplus) && !defined(CINTERFACE)
5053 MIDL_INTERFACE("1cd4c13b-1c36-4191-a70a-7f3e611f367d")
5054 ITfKeyTraceEventSink : public IUnknown
5055 {
5056     virtual HRESULT STDMETHODCALLTYPE OnKeyTraceDown(
5057         WPARAM wParam,
5058         LPARAM lParam) = 0;
5059 
5060     virtual HRESULT STDMETHODCALLTYPE OnKeyTraceUp(
5061         WPARAM wParam,
5062         LPARAM lParam) = 0;
5063 
5064 };
5065 #ifdef __CRT_UUID_DECL
5066 __CRT_UUID_DECL(ITfKeyTraceEventSink, 0x1cd4c13b, 0x1c36, 0x4191, 0xa7,0x0a, 0x7f,0x3e,0x61,0x1f,0x36,0x7d)
5067 #endif
5068 #else
5069 typedef struct ITfKeyTraceEventSinkVtbl {
5070     BEGIN_INTERFACE
5071 
5072     /*** IUnknown methods ***/
5073     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5074         ITfKeyTraceEventSink *This,
5075         REFIID riid,
5076         void **ppvObject);
5077 
5078     ULONG (STDMETHODCALLTYPE *AddRef)(
5079         ITfKeyTraceEventSink *This);
5080 
5081     ULONG (STDMETHODCALLTYPE *Release)(
5082         ITfKeyTraceEventSink *This);
5083 
5084     /*** ITfKeyTraceEventSink methods ***/
5085     HRESULT (STDMETHODCALLTYPE *OnKeyTraceDown)(
5086         ITfKeyTraceEventSink *This,
5087         WPARAM wParam,
5088         LPARAM lParam);
5089 
5090     HRESULT (STDMETHODCALLTYPE *OnKeyTraceUp)(
5091         ITfKeyTraceEventSink *This,
5092         WPARAM wParam,
5093         LPARAM lParam);
5094 
5095     END_INTERFACE
5096 } ITfKeyTraceEventSinkVtbl;
5097 
5098 interface ITfKeyTraceEventSink {
5099     CONST_VTBL ITfKeyTraceEventSinkVtbl* lpVtbl;
5100 };
5101 
5102 #ifdef COBJMACROS
5103 #ifndef WIDL_C_INLINE_WRAPPERS
5104 /*** IUnknown methods ***/
5105 #define ITfKeyTraceEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5106 #define ITfKeyTraceEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
5107 #define ITfKeyTraceEventSink_Release(This) (This)->lpVtbl->Release(This)
5108 /*** ITfKeyTraceEventSink methods ***/
5109 #define ITfKeyTraceEventSink_OnKeyTraceDown(This,wParam,lParam) (This)->lpVtbl->OnKeyTraceDown(This,wParam,lParam)
5110 #define ITfKeyTraceEventSink_OnKeyTraceUp(This,wParam,lParam) (This)->lpVtbl->OnKeyTraceUp(This,wParam,lParam)
5111 #else
5112 /*** IUnknown methods ***/
5113 static FORCEINLINE HRESULT ITfKeyTraceEventSink_QueryInterface(ITfKeyTraceEventSink* This,REFIID riid,void **ppvObject) {
5114     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5115 }
5116 static FORCEINLINE ULONG ITfKeyTraceEventSink_AddRef(ITfKeyTraceEventSink* This) {
5117     return This->lpVtbl->AddRef(This);
5118 }
5119 static FORCEINLINE ULONG ITfKeyTraceEventSink_Release(ITfKeyTraceEventSink* This) {
5120     return This->lpVtbl->Release(This);
5121 }
5122 /*** ITfKeyTraceEventSink methods ***/
5123 static FORCEINLINE HRESULT ITfKeyTraceEventSink_OnKeyTraceDown(ITfKeyTraceEventSink* This,WPARAM wParam,LPARAM lParam) {
5124     return This->lpVtbl->OnKeyTraceDown(This,wParam,lParam);
5125 }
5126 static FORCEINLINE HRESULT ITfKeyTraceEventSink_OnKeyTraceUp(ITfKeyTraceEventSink* This,WPARAM wParam,LPARAM lParam) {
5127     return This->lpVtbl->OnKeyTraceUp(This,wParam,lParam);
5128 }
5129 #endif
5130 #endif
5131 
5132 #endif
5133 
5134 
5135 #endif  /* __ITfKeyTraceEventSink_INTERFACE_DEFINED__ */
5136 
5137 /*****************************************************************************
5138  * ITfUIElementSink interface
5139  */
5140 #ifndef __ITfUIElementSink_INTERFACE_DEFINED__
5141 #define __ITfUIElementSink_INTERFACE_DEFINED__
5142 
5143 DEFINE_GUID(IID_ITfUIElementSink, 0xea1ea136, 0x19df, 0x11d7, 0xa6,0xd2, 0x00,0x06,0x5b,0x84,0x43,0x5c);
5144 #if defined(__cplusplus) && !defined(CINTERFACE)
5145 MIDL_INTERFACE("ea1ea136-19df-11d7-a6d2-00065b84435c")
5146 ITfUIElementSink : public IUnknown
5147 {
5148     virtual HRESULT STDMETHODCALLTYPE BeginUIElement(
5149         DWORD id,
5150         WINBOOL *show) = 0;
5151 
5152     virtual HRESULT STDMETHODCALLTYPE UpdateUIElement(
5153         DWORD id) = 0;
5154 
5155     virtual HRESULT STDMETHODCALLTYPE EndUIElement(
5156         DWORD id) = 0;
5157 
5158 };
5159 #ifdef __CRT_UUID_DECL
5160 __CRT_UUID_DECL(ITfUIElementSink, 0xea1ea136, 0x19df, 0x11d7, 0xa6,0xd2, 0x00,0x06,0x5b,0x84,0x43,0x5c)
5161 #endif
5162 #else
5163 typedef struct ITfUIElementSinkVtbl {
5164     BEGIN_INTERFACE
5165 
5166     /*** IUnknown methods ***/
5167     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5168         ITfUIElementSink *This,
5169         REFIID riid,
5170         void **ppvObject);
5171 
5172     ULONG (STDMETHODCALLTYPE *AddRef)(
5173         ITfUIElementSink *This);
5174 
5175     ULONG (STDMETHODCALLTYPE *Release)(
5176         ITfUIElementSink *This);
5177 
5178     /*** ITfUIElementSink methods ***/
5179     HRESULT (STDMETHODCALLTYPE *BeginUIElement)(
5180         ITfUIElementSink *This,
5181         DWORD id,
5182         WINBOOL *show);
5183 
5184     HRESULT (STDMETHODCALLTYPE *UpdateUIElement)(
5185         ITfUIElementSink *This,
5186         DWORD id);
5187 
5188     HRESULT (STDMETHODCALLTYPE *EndUIElement)(
5189         ITfUIElementSink *This,
5190         DWORD id);
5191 
5192     END_INTERFACE
5193 } ITfUIElementSinkVtbl;
5194 
5195 interface ITfUIElementSink {
5196     CONST_VTBL ITfUIElementSinkVtbl* lpVtbl;
5197 };
5198 
5199 #ifdef COBJMACROS
5200 #ifndef WIDL_C_INLINE_WRAPPERS
5201 /*** IUnknown methods ***/
5202 #define ITfUIElementSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5203 #define ITfUIElementSink_AddRef(This) (This)->lpVtbl->AddRef(This)
5204 #define ITfUIElementSink_Release(This) (This)->lpVtbl->Release(This)
5205 /*** ITfUIElementSink methods ***/
5206 #define ITfUIElementSink_BeginUIElement(This,id,show) (This)->lpVtbl->BeginUIElement(This,id,show)
5207 #define ITfUIElementSink_UpdateUIElement(This,id) (This)->lpVtbl->UpdateUIElement(This,id)
5208 #define ITfUIElementSink_EndUIElement(This,id) (This)->lpVtbl->EndUIElement(This,id)
5209 #else
5210 /*** IUnknown methods ***/
5211 static FORCEINLINE HRESULT ITfUIElementSink_QueryInterface(ITfUIElementSink* This,REFIID riid,void **ppvObject) {
5212     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5213 }
5214 static FORCEINLINE ULONG ITfUIElementSink_AddRef(ITfUIElementSink* This) {
5215     return This->lpVtbl->AddRef(This);
5216 }
5217 static FORCEINLINE ULONG ITfUIElementSink_Release(ITfUIElementSink* This) {
5218     return This->lpVtbl->Release(This);
5219 }
5220 /*** ITfUIElementSink methods ***/
5221 static FORCEINLINE HRESULT ITfUIElementSink_BeginUIElement(ITfUIElementSink* This,DWORD id,WINBOOL *show) {
5222     return This->lpVtbl->BeginUIElement(This,id,show);
5223 }
5224 static FORCEINLINE HRESULT ITfUIElementSink_UpdateUIElement(ITfUIElementSink* This,DWORD id) {
5225     return This->lpVtbl->UpdateUIElement(This,id);
5226 }
5227 static FORCEINLINE HRESULT ITfUIElementSink_EndUIElement(ITfUIElementSink* This,DWORD id) {
5228     return This->lpVtbl->EndUIElement(This,id);
5229 }
5230 #endif
5231 #endif
5232 
5233 #endif
5234 
5235 
5236 #endif  /* __ITfUIElementSink_INTERFACE_DEFINED__ */
5237 
5238 /*****************************************************************************
5239  * ITfMessagePump interface
5240  */
5241 #ifndef __ITfMessagePump_INTERFACE_DEFINED__
5242 #define __ITfMessagePump_INTERFACE_DEFINED__
5243 
5244 DEFINE_GUID(IID_ITfMessagePump, 0x8f1b8ad8, 0x0b6b, 0x4874, 0x90,0xc5, 0xbd,0x76,0x01,0x1e,0x8f,0x7c);
5245 #if defined(__cplusplus) && !defined(CINTERFACE)
5246 MIDL_INTERFACE("8f1b8ad8-0b6b-4874-90c5-bd76011e8f7c")
5247 ITfMessagePump : public IUnknown
5248 {
5249     virtual HRESULT STDMETHODCALLTYPE PeekMessageA(
5250         LPMSG pMsg,
5251         HWND hwnd,
5252         UINT wMsgFilterMin,
5253         UINT wMsgFilterMax,
5254         UINT wRemoveMsg,
5255         WINBOOL *pfResult) = 0;
5256 
5257     virtual HRESULT STDMETHODCALLTYPE GetMessageA(
5258         LPMSG pMsg,
5259         HWND hwnd,
5260         UINT wMsgFilterMin,
5261         UINT wMsgFilterMax,
5262         WINBOOL *pfResult) = 0;
5263 
5264     virtual HRESULT STDMETHODCALLTYPE PeekMessageW(
5265         LPMSG pMsg,
5266         HWND hwnd,
5267         UINT wMsgFilterMin,
5268         UINT wMsgFilterMax,
5269         UINT wRemoveMsg,
5270         WINBOOL *pfResult) = 0;
5271 
5272     virtual HRESULT STDMETHODCALLTYPE GetMessageW(
5273         LPMSG pMsg,
5274         HWND hwnd,
5275         UINT wMsgFilterMin,
5276         UINT wMsgFilterMax,
5277         WINBOOL *pfResult) = 0;
5278 
5279 };
5280 #ifdef __CRT_UUID_DECL
5281 __CRT_UUID_DECL(ITfMessagePump, 0x8f1b8ad8, 0x0b6b, 0x4874, 0x90,0xc5, 0xbd,0x76,0x01,0x1e,0x8f,0x7c)
5282 #endif
5283 #else
5284 typedef struct ITfMessagePumpVtbl {
5285     BEGIN_INTERFACE
5286 
5287     /*** IUnknown methods ***/
5288     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5289         ITfMessagePump *This,
5290         REFIID riid,
5291         void **ppvObject);
5292 
5293     ULONG (STDMETHODCALLTYPE *AddRef)(
5294         ITfMessagePump *This);
5295 
5296     ULONG (STDMETHODCALLTYPE *Release)(
5297         ITfMessagePump *This);
5298 
5299     /*** ITfMessagePump methods ***/
5300     HRESULT (STDMETHODCALLTYPE *PeekMessageA)(
5301         ITfMessagePump *This,
5302         LPMSG pMsg,
5303         HWND hwnd,
5304         UINT wMsgFilterMin,
5305         UINT wMsgFilterMax,
5306         UINT wRemoveMsg,
5307         WINBOOL *pfResult);
5308 
5309     HRESULT (STDMETHODCALLTYPE *GetMessageA)(
5310         ITfMessagePump *This,
5311         LPMSG pMsg,
5312         HWND hwnd,
5313         UINT wMsgFilterMin,
5314         UINT wMsgFilterMax,
5315         WINBOOL *pfResult);
5316 
5317     HRESULT (STDMETHODCALLTYPE *PeekMessageW)(
5318         ITfMessagePump *This,
5319         LPMSG pMsg,
5320         HWND hwnd,
5321         UINT wMsgFilterMin,
5322         UINT wMsgFilterMax,
5323         UINT wRemoveMsg,
5324         WINBOOL *pfResult);
5325 
5326     HRESULT (STDMETHODCALLTYPE *GetMessageW)(
5327         ITfMessagePump *This,
5328         LPMSG pMsg,
5329         HWND hwnd,
5330         UINT wMsgFilterMin,
5331         UINT wMsgFilterMax,
5332         WINBOOL *pfResult);
5333 
5334     END_INTERFACE
5335 } ITfMessagePumpVtbl;
5336 
5337 interface ITfMessagePump {
5338     CONST_VTBL ITfMessagePumpVtbl* lpVtbl;
5339 };
5340 
5341 #ifdef COBJMACROS
5342 #ifndef WIDL_C_INLINE_WRAPPERS
5343 /*** IUnknown methods ***/
5344 #define ITfMessagePump_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5345 #define ITfMessagePump_AddRef(This) (This)->lpVtbl->AddRef(This)
5346 #define ITfMessagePump_Release(This) (This)->lpVtbl->Release(This)
5347 /*** ITfMessagePump methods ***/
5348 #define ITfMessagePump_PeekMessageA(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,wRemoveMsg,pfResult) (This)->lpVtbl->PeekMessageA(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,wRemoveMsg,pfResult)
5349 #define ITfMessagePump_GetMessageA(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,pfResult) (This)->lpVtbl->GetMessageA(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,pfResult)
5350 #define ITfMessagePump_PeekMessageW(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,wRemoveMsg,pfResult) (This)->lpVtbl->PeekMessageW(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,wRemoveMsg,pfResult)
5351 #define ITfMessagePump_GetMessageW(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,pfResult) (This)->lpVtbl->GetMessageW(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,pfResult)
5352 #else
5353 /*** IUnknown methods ***/
5354 static FORCEINLINE HRESULT ITfMessagePump_QueryInterface(ITfMessagePump* This,REFIID riid,void **ppvObject) {
5355     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5356 }
5357 static FORCEINLINE ULONG ITfMessagePump_AddRef(ITfMessagePump* This) {
5358     return This->lpVtbl->AddRef(This);
5359 }
5360 static FORCEINLINE ULONG ITfMessagePump_Release(ITfMessagePump* This) {
5361     return This->lpVtbl->Release(This);
5362 }
5363 /*** ITfMessagePump methods ***/
5364 static FORCEINLINE HRESULT ITfMessagePump_PeekMessageA(ITfMessagePump* This,LPMSG pMsg,HWND hwnd,UINT wMsgFilterMin,UINT wMsgFilterMax,UINT wRemoveMsg,WINBOOL *pfResult) {
5365     return This->lpVtbl->PeekMessageA(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,wRemoveMsg,pfResult);
5366 }
5367 static FORCEINLINE HRESULT ITfMessagePump_GetMessageA(ITfMessagePump* This,LPMSG pMsg,HWND hwnd,UINT wMsgFilterMin,UINT wMsgFilterMax,WINBOOL *pfResult) {
5368     return This->lpVtbl->GetMessageA(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,pfResult);
5369 }
5370 static FORCEINLINE HRESULT ITfMessagePump_PeekMessageW(ITfMessagePump* This,LPMSG pMsg,HWND hwnd,UINT wMsgFilterMin,UINT wMsgFilterMax,UINT wRemoveMsg,WINBOOL *pfResult) {
5371     return This->lpVtbl->PeekMessageW(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,wRemoveMsg,pfResult);
5372 }
5373 static FORCEINLINE HRESULT ITfMessagePump_GetMessageW(ITfMessagePump* This,LPMSG pMsg,HWND hwnd,UINT wMsgFilterMin,UINT wMsgFilterMax,WINBOOL *pfResult) {
5374     return This->lpVtbl->GetMessageW(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,pfResult);
5375 }
5376 #endif
5377 #endif
5378 
5379 #endif
5380 
5381 
5382 #endif  /* __ITfMessagePump_INTERFACE_DEFINED__ */
5383 
5384 /*****************************************************************************
5385  * ITfClientId interface
5386  */
5387 #ifndef __ITfClientId_INTERFACE_DEFINED__
5388 #define __ITfClientId_INTERFACE_DEFINED__
5389 
5390 DEFINE_GUID(IID_ITfClientId, 0xd60a7b49, 0x1b9f, 0x4be2, 0xb7,0x02, 0x47,0xe9,0xdc,0x05,0xde,0xc3);
5391 #if defined(__cplusplus) && !defined(CINTERFACE)
5392 MIDL_INTERFACE("d60a7b49-1b9f-4be2-b702-47e9dc05dec3")
5393 ITfClientId : public IUnknown
5394 {
5395     virtual HRESULT STDMETHODCALLTYPE GetClientId(
5396         REFCLSID rclsid,
5397         TfClientId *ptid) = 0;
5398 
5399 };
5400 #ifdef __CRT_UUID_DECL
5401 __CRT_UUID_DECL(ITfClientId, 0xd60a7b49, 0x1b9f, 0x4be2, 0xb7,0x02, 0x47,0xe9,0xdc,0x05,0xde,0xc3)
5402 #endif
5403 #else
5404 typedef struct ITfClientIdVtbl {
5405     BEGIN_INTERFACE
5406 
5407     /*** IUnknown methods ***/
5408     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5409         ITfClientId *This,
5410         REFIID riid,
5411         void **ppvObject);
5412 
5413     ULONG (STDMETHODCALLTYPE *AddRef)(
5414         ITfClientId *This);
5415 
5416     ULONG (STDMETHODCALLTYPE *Release)(
5417         ITfClientId *This);
5418 
5419     /*** ITfClientId methods ***/
5420     HRESULT (STDMETHODCALLTYPE *GetClientId)(
5421         ITfClientId *This,
5422         REFCLSID rclsid,
5423         TfClientId *ptid);
5424 
5425     END_INTERFACE
5426 } ITfClientIdVtbl;
5427 
5428 interface ITfClientId {
5429     CONST_VTBL ITfClientIdVtbl* lpVtbl;
5430 };
5431 
5432 #ifdef COBJMACROS
5433 #ifndef WIDL_C_INLINE_WRAPPERS
5434 /*** IUnknown methods ***/
5435 #define ITfClientId_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5436 #define ITfClientId_AddRef(This) (This)->lpVtbl->AddRef(This)
5437 #define ITfClientId_Release(This) (This)->lpVtbl->Release(This)
5438 /*** ITfClientId methods ***/
5439 #define ITfClientId_GetClientId(This,rclsid,ptid) (This)->lpVtbl->GetClientId(This,rclsid,ptid)
5440 #else
5441 /*** IUnknown methods ***/
5442 static FORCEINLINE HRESULT ITfClientId_QueryInterface(ITfClientId* This,REFIID riid,void **ppvObject) {
5443     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5444 }
5445 static FORCEINLINE ULONG ITfClientId_AddRef(ITfClientId* This) {
5446     return This->lpVtbl->AddRef(This);
5447 }
5448 static FORCEINLINE ULONG ITfClientId_Release(ITfClientId* This) {
5449     return This->lpVtbl->Release(This);
5450 }
5451 /*** ITfClientId methods ***/
5452 static FORCEINLINE HRESULT ITfClientId_GetClientId(ITfClientId* This,REFCLSID rclsid,TfClientId *ptid) {
5453     return This->lpVtbl->GetClientId(This,rclsid,ptid);
5454 }
5455 #endif
5456 #endif
5457 
5458 #endif
5459 
5460 
5461 #endif  /* __ITfClientId_INTERFACE_DEFINED__ */
5462 
5463 /*****************************************************************************
5464  * ITfLanguageProfileNotifySink interface
5465  */
5466 #ifndef __ITfLanguageProfileNotifySink_INTERFACE_DEFINED__
5467 #define __ITfLanguageProfileNotifySink_INTERFACE_DEFINED__
5468 
5469 DEFINE_GUID(IID_ITfLanguageProfileNotifySink, 0x43c9fe15, 0xf494, 0x4c17, 0x9d,0xe2, 0xb8,0xa4,0xac,0x35,0x0a,0xa8);
5470 #if defined(__cplusplus) && !defined(CINTERFACE)
5471 MIDL_INTERFACE("43c9fe15-f494-4c17-9de2-b8a4ac350aa8")
5472 ITfLanguageProfileNotifySink : public IUnknown
5473 {
5474     virtual HRESULT STDMETHODCALLTYPE OnLanguageChange(
5475         LANGID langid,
5476         WINBOOL *pfAccept) = 0;
5477 
5478     virtual HRESULT STDMETHODCALLTYPE OnLanguageChanged(
5479         ) = 0;
5480 
5481 };
5482 #ifdef __CRT_UUID_DECL
5483 __CRT_UUID_DECL(ITfLanguageProfileNotifySink, 0x43c9fe15, 0xf494, 0x4c17, 0x9d,0xe2, 0xb8,0xa4,0xac,0x35,0x0a,0xa8)
5484 #endif
5485 #else
5486 typedef struct ITfLanguageProfileNotifySinkVtbl {
5487     BEGIN_INTERFACE
5488 
5489     /*** IUnknown methods ***/
5490     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5491         ITfLanguageProfileNotifySink *This,
5492         REFIID riid,
5493         void **ppvObject);
5494 
5495     ULONG (STDMETHODCALLTYPE *AddRef)(
5496         ITfLanguageProfileNotifySink *This);
5497 
5498     ULONG (STDMETHODCALLTYPE *Release)(
5499         ITfLanguageProfileNotifySink *This);
5500 
5501     /*** ITfLanguageProfileNotifySink methods ***/
5502     HRESULT (STDMETHODCALLTYPE *OnLanguageChange)(
5503         ITfLanguageProfileNotifySink *This,
5504         LANGID langid,
5505         WINBOOL *pfAccept);
5506 
5507     HRESULT (STDMETHODCALLTYPE *OnLanguageChanged)(
5508         ITfLanguageProfileNotifySink *This);
5509 
5510     END_INTERFACE
5511 } ITfLanguageProfileNotifySinkVtbl;
5512 
5513 interface ITfLanguageProfileNotifySink {
5514     CONST_VTBL ITfLanguageProfileNotifySinkVtbl* lpVtbl;
5515 };
5516 
5517 #ifdef COBJMACROS
5518 #ifndef WIDL_C_INLINE_WRAPPERS
5519 /*** IUnknown methods ***/
5520 #define ITfLanguageProfileNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5521 #define ITfLanguageProfileNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
5522 #define ITfLanguageProfileNotifySink_Release(This) (This)->lpVtbl->Release(This)
5523 /*** ITfLanguageProfileNotifySink methods ***/
5524 #define ITfLanguageProfileNotifySink_OnLanguageChange(This,langid,pfAccept) (This)->lpVtbl->OnLanguageChange(This,langid,pfAccept)
5525 #define ITfLanguageProfileNotifySink_OnLanguageChanged(This) (This)->lpVtbl->OnLanguageChanged(This)
5526 #else
5527 /*** IUnknown methods ***/
5528 static FORCEINLINE HRESULT ITfLanguageProfileNotifySink_QueryInterface(ITfLanguageProfileNotifySink* This,REFIID riid,void **ppvObject) {
5529     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5530 }
5531 static FORCEINLINE ULONG ITfLanguageProfileNotifySink_AddRef(ITfLanguageProfileNotifySink* This) {
5532     return This->lpVtbl->AddRef(This);
5533 }
5534 static FORCEINLINE ULONG ITfLanguageProfileNotifySink_Release(ITfLanguageProfileNotifySink* This) {
5535     return This->lpVtbl->Release(This);
5536 }
5537 /*** ITfLanguageProfileNotifySink methods ***/
5538 static FORCEINLINE HRESULT ITfLanguageProfileNotifySink_OnLanguageChange(ITfLanguageProfileNotifySink* This,LANGID langid,WINBOOL *pfAccept) {
5539     return This->lpVtbl->OnLanguageChange(This,langid,pfAccept);
5540 }
5541 static FORCEINLINE HRESULT ITfLanguageProfileNotifySink_OnLanguageChanged(ITfLanguageProfileNotifySink* This) {
5542     return This->lpVtbl->OnLanguageChanged(This);
5543 }
5544 #endif
5545 #endif
5546 
5547 #endif
5548 
5549 
5550 #endif  /* __ITfLanguageProfileNotifySink_INTERFACE_DEFINED__ */
5551 
5552 /*****************************************************************************
5553  * ITfEditSession interface
5554  */
5555 #ifndef __ITfEditSession_INTERFACE_DEFINED__
5556 #define __ITfEditSession_INTERFACE_DEFINED__
5557 
5558 DEFINE_GUID(IID_ITfEditSession, 0xaa80e803, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
5559 #if defined(__cplusplus) && !defined(CINTERFACE)
5560 MIDL_INTERFACE("aa80e803-2021-11d2-93e0-0060b067b86e")
5561 ITfEditSession : public IUnknown
5562 {
5563     virtual HRESULT STDMETHODCALLTYPE DoEditSession(
5564         TfEditCookie ec) = 0;
5565 
5566 };
5567 #ifdef __CRT_UUID_DECL
5568 __CRT_UUID_DECL(ITfEditSession, 0xaa80e803, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
5569 #endif
5570 #else
5571 typedef struct ITfEditSessionVtbl {
5572     BEGIN_INTERFACE
5573 
5574     /*** IUnknown methods ***/
5575     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5576         ITfEditSession *This,
5577         REFIID riid,
5578         void **ppvObject);
5579 
5580     ULONG (STDMETHODCALLTYPE *AddRef)(
5581         ITfEditSession *This);
5582 
5583     ULONG (STDMETHODCALLTYPE *Release)(
5584         ITfEditSession *This);
5585 
5586     /*** ITfEditSession methods ***/
5587     HRESULT (STDMETHODCALLTYPE *DoEditSession)(
5588         ITfEditSession *This,
5589         TfEditCookie ec);
5590 
5591     END_INTERFACE
5592 } ITfEditSessionVtbl;
5593 
5594 interface ITfEditSession {
5595     CONST_VTBL ITfEditSessionVtbl* lpVtbl;
5596 };
5597 
5598 #ifdef COBJMACROS
5599 #ifndef WIDL_C_INLINE_WRAPPERS
5600 /*** IUnknown methods ***/
5601 #define ITfEditSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5602 #define ITfEditSession_AddRef(This) (This)->lpVtbl->AddRef(This)
5603 #define ITfEditSession_Release(This) (This)->lpVtbl->Release(This)
5604 /*** ITfEditSession methods ***/
5605 #define ITfEditSession_DoEditSession(This,ec) (This)->lpVtbl->DoEditSession(This,ec)
5606 #else
5607 /*** IUnknown methods ***/
5608 static FORCEINLINE HRESULT ITfEditSession_QueryInterface(ITfEditSession* This,REFIID riid,void **ppvObject) {
5609     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5610 }
5611 static FORCEINLINE ULONG ITfEditSession_AddRef(ITfEditSession* This) {
5612     return This->lpVtbl->AddRef(This);
5613 }
5614 static FORCEINLINE ULONG ITfEditSession_Release(ITfEditSession* This) {
5615     return This->lpVtbl->Release(This);
5616 }
5617 /*** ITfEditSession methods ***/
5618 static FORCEINLINE HRESULT ITfEditSession_DoEditSession(ITfEditSession* This,TfEditCookie ec) {
5619     return This->lpVtbl->DoEditSession(This,ec);
5620 }
5621 #endif
5622 #endif
5623 
5624 #endif
5625 
5626 
5627 #endif  /* __ITfEditSession_INTERFACE_DEFINED__ */
5628 
5629 /*****************************************************************************
5630  * ITfRange interface
5631  */
5632 #ifndef __ITfRange_INTERFACE_DEFINED__
5633 #define __ITfRange_INTERFACE_DEFINED__
5634 
5635 #define TF_CHAR_EMBEDDED (TS_CHAR_EMBEDDED)
5636 
5637 typedef enum __WIDL_msctf_generated_name_00000017 {
5638     TF_GRAVITY_BACKWARD = 0,
5639     TF_GRAVITY_FORWARD = 1
5640 } TfGravity;
5641 typedef enum __WIDL_msctf_generated_name_00000018 {
5642     TF_SD_BACKWARD = 0,
5643     TF_SD_FORWARD = 1
5644 } TfShiftDir;
5645 #define TF_HF_OBJECT (1)
5646 
5647 #define TF_TF_MOVESTART (1)
5648 
5649 #define TF_TF_IGNOREEND (2)
5650 
5651 #define TF_ST_CORRECTION (1)
5652 
5653 #define TF_IE_CORRECTION (1)
5654 
5655 typedef struct TF_HALTCOND {
5656     ITfRange *pHaltRange;
5657     TfAnchor aHaltPos;
5658     DWORD dwFlags;
5659 } TF_HALTCOND;
5660 DEFINE_GUID(IID_ITfRange, 0xaa80e7ff, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
5661 #if defined(__cplusplus) && !defined(CINTERFACE)
5662 MIDL_INTERFACE("aa80e7ff-2021-11d2-93e0-0060b067b86e")
5663 ITfRange : public IUnknown
5664 {
5665     virtual HRESULT STDMETHODCALLTYPE GetText(
5666         TfEditCookie ec,
5667         DWORD dwFlags,
5668         WCHAR *pchText,
5669         ULONG cchMax,
5670         ULONG *pcch) = 0;
5671 
5672     virtual HRESULT STDMETHODCALLTYPE SetText(
5673         TfEditCookie ec,
5674         DWORD dwFlags,
5675         const WCHAR *pchText,
5676         LONG cch) = 0;
5677 
5678     virtual HRESULT STDMETHODCALLTYPE GetFormattedText(
5679         TfEditCookie ec,
5680         IDataObject **ppDataObject) = 0;
5681 
5682     virtual HRESULT STDMETHODCALLTYPE GetEmbedded(
5683         TfEditCookie ec,
5684         REFGUID rguidService,
5685         REFIID riid,
5686         IUnknown **ppunk) = 0;
5687 
5688     virtual HRESULT STDMETHODCALLTYPE InsertEmbedded(
5689         TfEditCookie ec,
5690         DWORD dwFlags,
5691         IDataObject *pDataObject) = 0;
5692 
5693     virtual HRESULT STDMETHODCALLTYPE ShiftStart(
5694         TfEditCookie ec,
5695         LONG cchReq,
5696         LONG *pcch,
5697         const TF_HALTCOND *pHalt) = 0;
5698 
5699     virtual HRESULT STDMETHODCALLTYPE ShiftEnd(
5700         TfEditCookie ec,
5701         LONG cchReq,
5702         LONG *pcch,
5703         const TF_HALTCOND *pHalt) = 0;
5704 
5705     virtual HRESULT STDMETHODCALLTYPE ShiftStartToRange(
5706         TfEditCookie ec,
5707         ITfRange *pRange,
5708         TfAnchor aPos) = 0;
5709 
5710     virtual HRESULT STDMETHODCALLTYPE ShiftEndToRange(
5711         TfEditCookie ec,
5712         ITfRange *pRange,
5713         TfAnchor aPos) = 0;
5714 
5715     virtual HRESULT STDMETHODCALLTYPE ShiftStartRegion(
5716         TfEditCookie ec,
5717         TfShiftDir dir,
5718         WINBOOL *pfNoRegion) = 0;
5719 
5720     virtual HRESULT STDMETHODCALLTYPE ShiftEndRegion(
5721         TfEditCookie ec,
5722         TfShiftDir dir,
5723         WINBOOL *pfNoRegion) = 0;
5724 
5725     virtual HRESULT STDMETHODCALLTYPE IsEmpty(
5726         TfEditCookie ec,
5727         WINBOOL *pfEmpty) = 0;
5728 
5729     virtual HRESULT STDMETHODCALLTYPE Collapse(
5730         TfEditCookie ec,
5731         TfAnchor aPos) = 0;
5732 
5733     virtual HRESULT STDMETHODCALLTYPE IsEqualStart(
5734         TfEditCookie ec,
5735         ITfRange *pWith,
5736         TfAnchor aPos,
5737         WINBOOL *pfEqual) = 0;
5738 
5739     virtual HRESULT STDMETHODCALLTYPE IsEqualEnd(
5740         TfEditCookie ec,
5741         ITfRange *pWith,
5742         TfAnchor aPos,
5743         WINBOOL *pfEqual) = 0;
5744 
5745     virtual HRESULT STDMETHODCALLTYPE CompareStart(
5746         TfEditCookie ec,
5747         ITfRange *pWith,
5748         TfAnchor aPos,
5749         LONG *plResult) = 0;
5750 
5751     virtual HRESULT STDMETHODCALLTYPE CompareEnd(
5752         TfEditCookie ec,
5753         ITfRange *pWith,
5754         TfAnchor aPos,
5755         LONG *plResult) = 0;
5756 
5757     virtual HRESULT STDMETHODCALLTYPE AdjustForInsert(
5758         TfEditCookie ec,
5759         ULONG cchInsert,
5760         WINBOOL *pfInsertOk) = 0;
5761 
5762     virtual HRESULT STDMETHODCALLTYPE GetGravity(
5763         TfGravity *pgStart,
5764         TfGravity *pgEnd) = 0;
5765 
5766     virtual HRESULT STDMETHODCALLTYPE SetGravity(
5767         TfEditCookie ec,
5768         TfGravity gStart,
5769         TfGravity gEnd) = 0;
5770 
5771     virtual HRESULT STDMETHODCALLTYPE Clone(
5772         ITfRange **ppClone) = 0;
5773 
5774     virtual HRESULT STDMETHODCALLTYPE GetContext(
5775         ITfContext **ppContext) = 0;
5776 
5777 };
5778 #ifdef __CRT_UUID_DECL
5779 __CRT_UUID_DECL(ITfRange, 0xaa80e7ff, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
5780 #endif
5781 #else
5782 typedef struct ITfRangeVtbl {
5783     BEGIN_INTERFACE
5784 
5785     /*** IUnknown methods ***/
5786     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5787         ITfRange *This,
5788         REFIID riid,
5789         void **ppvObject);
5790 
5791     ULONG (STDMETHODCALLTYPE *AddRef)(
5792         ITfRange *This);
5793 
5794     ULONG (STDMETHODCALLTYPE *Release)(
5795         ITfRange *This);
5796 
5797     /*** ITfRange methods ***/
5798     HRESULT (STDMETHODCALLTYPE *GetText)(
5799         ITfRange *This,
5800         TfEditCookie ec,
5801         DWORD dwFlags,
5802         WCHAR *pchText,
5803         ULONG cchMax,
5804         ULONG *pcch);
5805 
5806     HRESULT (STDMETHODCALLTYPE *SetText)(
5807         ITfRange *This,
5808         TfEditCookie ec,
5809         DWORD dwFlags,
5810         const WCHAR *pchText,
5811         LONG cch);
5812 
5813     HRESULT (STDMETHODCALLTYPE *GetFormattedText)(
5814         ITfRange *This,
5815         TfEditCookie ec,
5816         IDataObject **ppDataObject);
5817 
5818     HRESULT (STDMETHODCALLTYPE *GetEmbedded)(
5819         ITfRange *This,
5820         TfEditCookie ec,
5821         REFGUID rguidService,
5822         REFIID riid,
5823         IUnknown **ppunk);
5824 
5825     HRESULT (STDMETHODCALLTYPE *InsertEmbedded)(
5826         ITfRange *This,
5827         TfEditCookie ec,
5828         DWORD dwFlags,
5829         IDataObject *pDataObject);
5830 
5831     HRESULT (STDMETHODCALLTYPE *ShiftStart)(
5832         ITfRange *This,
5833         TfEditCookie ec,
5834         LONG cchReq,
5835         LONG *pcch,
5836         const TF_HALTCOND *pHalt);
5837 
5838     HRESULT (STDMETHODCALLTYPE *ShiftEnd)(
5839         ITfRange *This,
5840         TfEditCookie ec,
5841         LONG cchReq,
5842         LONG *pcch,
5843         const TF_HALTCOND *pHalt);
5844 
5845     HRESULT (STDMETHODCALLTYPE *ShiftStartToRange)(
5846         ITfRange *This,
5847         TfEditCookie ec,
5848         ITfRange *pRange,
5849         TfAnchor aPos);
5850 
5851     HRESULT (STDMETHODCALLTYPE *ShiftEndToRange)(
5852         ITfRange *This,
5853         TfEditCookie ec,
5854         ITfRange *pRange,
5855         TfAnchor aPos);
5856 
5857     HRESULT (STDMETHODCALLTYPE *ShiftStartRegion)(
5858         ITfRange *This,
5859         TfEditCookie ec,
5860         TfShiftDir dir,
5861         WINBOOL *pfNoRegion);
5862 
5863     HRESULT (STDMETHODCALLTYPE *ShiftEndRegion)(
5864         ITfRange *This,
5865         TfEditCookie ec,
5866         TfShiftDir dir,
5867         WINBOOL *pfNoRegion);
5868 
5869     HRESULT (STDMETHODCALLTYPE *IsEmpty)(
5870         ITfRange *This,
5871         TfEditCookie ec,
5872         WINBOOL *pfEmpty);
5873 
5874     HRESULT (STDMETHODCALLTYPE *Collapse)(
5875         ITfRange *This,
5876         TfEditCookie ec,
5877         TfAnchor aPos);
5878 
5879     HRESULT (STDMETHODCALLTYPE *IsEqualStart)(
5880         ITfRange *This,
5881         TfEditCookie ec,
5882         ITfRange *pWith,
5883         TfAnchor aPos,
5884         WINBOOL *pfEqual);
5885 
5886     HRESULT (STDMETHODCALLTYPE *IsEqualEnd)(
5887         ITfRange *This,
5888         TfEditCookie ec,
5889         ITfRange *pWith,
5890         TfAnchor aPos,
5891         WINBOOL *pfEqual);
5892 
5893     HRESULT (STDMETHODCALLTYPE *CompareStart)(
5894         ITfRange *This,
5895         TfEditCookie ec,
5896         ITfRange *pWith,
5897         TfAnchor aPos,
5898         LONG *plResult);
5899 
5900     HRESULT (STDMETHODCALLTYPE *CompareEnd)(
5901         ITfRange *This,
5902         TfEditCookie ec,
5903         ITfRange *pWith,
5904         TfAnchor aPos,
5905         LONG *plResult);
5906 
5907     HRESULT (STDMETHODCALLTYPE *AdjustForInsert)(
5908         ITfRange *This,
5909         TfEditCookie ec,
5910         ULONG cchInsert,
5911         WINBOOL *pfInsertOk);
5912 
5913     HRESULT (STDMETHODCALLTYPE *GetGravity)(
5914         ITfRange *This,
5915         TfGravity *pgStart,
5916         TfGravity *pgEnd);
5917 
5918     HRESULT (STDMETHODCALLTYPE *SetGravity)(
5919         ITfRange *This,
5920         TfEditCookie ec,
5921         TfGravity gStart,
5922         TfGravity gEnd);
5923 
5924     HRESULT (STDMETHODCALLTYPE *Clone)(
5925         ITfRange *This,
5926         ITfRange **ppClone);
5927 
5928     HRESULT (STDMETHODCALLTYPE *GetContext)(
5929         ITfRange *This,
5930         ITfContext **ppContext);
5931 
5932     END_INTERFACE
5933 } ITfRangeVtbl;
5934 
5935 interface ITfRange {
5936     CONST_VTBL ITfRangeVtbl* lpVtbl;
5937 };
5938 
5939 #ifdef COBJMACROS
5940 #ifndef WIDL_C_INLINE_WRAPPERS
5941 /*** IUnknown methods ***/
5942 #define ITfRange_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5943 #define ITfRange_AddRef(This) (This)->lpVtbl->AddRef(This)
5944 #define ITfRange_Release(This) (This)->lpVtbl->Release(This)
5945 /*** ITfRange methods ***/
5946 #define ITfRange_GetText(This,ec,dwFlags,pchText,cchMax,pcch) (This)->lpVtbl->GetText(This,ec,dwFlags,pchText,cchMax,pcch)
5947 #define ITfRange_SetText(This,ec,dwFlags,pchText,cch) (This)->lpVtbl->SetText(This,ec,dwFlags,pchText,cch)
5948 #define ITfRange_GetFormattedText(This,ec,ppDataObject) (This)->lpVtbl->GetFormattedText(This,ec,ppDataObject)
5949 #define ITfRange_GetEmbedded(This,ec,rguidService,riid,ppunk) (This)->lpVtbl->GetEmbedded(This,ec,rguidService,riid,ppunk)
5950 #define ITfRange_InsertEmbedded(This,ec,dwFlags,pDataObject) (This)->lpVtbl->InsertEmbedded(This,ec,dwFlags,pDataObject)
5951 #define ITfRange_ShiftStart(This,ec,cchReq,pcch,pHalt) (This)->lpVtbl->ShiftStart(This,ec,cchReq,pcch,pHalt)
5952 #define ITfRange_ShiftEnd(This,ec,cchReq,pcch,pHalt) (This)->lpVtbl->ShiftEnd(This,ec,cchReq,pcch,pHalt)
5953 #define ITfRange_ShiftStartToRange(This,ec,pRange,aPos) (This)->lpVtbl->ShiftStartToRange(This,ec,pRange,aPos)
5954 #define ITfRange_ShiftEndToRange(This,ec,pRange,aPos) (This)->lpVtbl->ShiftEndToRange(This,ec,pRange,aPos)
5955 #define ITfRange_ShiftStartRegion(This,ec,dir,pfNoRegion) (This)->lpVtbl->ShiftStartRegion(This,ec,dir,pfNoRegion)
5956 #define ITfRange_ShiftEndRegion(This,ec,dir,pfNoRegion) (This)->lpVtbl->ShiftEndRegion(This,ec,dir,pfNoRegion)
5957 #define ITfRange_IsEmpty(This,ec,pfEmpty) (This)->lpVtbl->IsEmpty(This,ec,pfEmpty)
5958 #define ITfRange_Collapse(This,ec,aPos) (This)->lpVtbl->Collapse(This,ec,aPos)
5959 #define ITfRange_IsEqualStart(This,ec,pWith,aPos,pfEqual) (This)->lpVtbl->IsEqualStart(This,ec,pWith,aPos,pfEqual)
5960 #define ITfRange_IsEqualEnd(This,ec,pWith,aPos,pfEqual) (This)->lpVtbl->IsEqualEnd(This,ec,pWith,aPos,pfEqual)
5961 #define ITfRange_CompareStart(This,ec,pWith,aPos,plResult) (This)->lpVtbl->CompareStart(This,ec,pWith,aPos,plResult)
5962 #define ITfRange_CompareEnd(This,ec,pWith,aPos,plResult) (This)->lpVtbl->CompareEnd(This,ec,pWith,aPos,plResult)
5963 #define ITfRange_AdjustForInsert(This,ec,cchInsert,pfInsertOk) (This)->lpVtbl->AdjustForInsert(This,ec,cchInsert,pfInsertOk)
5964 #define ITfRange_GetGravity(This,pgStart,pgEnd) (This)->lpVtbl->GetGravity(This,pgStart,pgEnd)
5965 #define ITfRange_SetGravity(This,ec,gStart,gEnd) (This)->lpVtbl->SetGravity(This,ec,gStart,gEnd)
5966 #define ITfRange_Clone(This,ppClone) (This)->lpVtbl->Clone(This,ppClone)
5967 #define ITfRange_GetContext(This,ppContext) (This)->lpVtbl->GetContext(This,ppContext)
5968 #else
5969 /*** IUnknown methods ***/
5970 static FORCEINLINE HRESULT ITfRange_QueryInterface(ITfRange* This,REFIID riid,void **ppvObject) {
5971     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5972 }
5973 static FORCEINLINE ULONG ITfRange_AddRef(ITfRange* This) {
5974     return This->lpVtbl->AddRef(This);
5975 }
5976 static FORCEINLINE ULONG ITfRange_Release(ITfRange* This) {
5977     return This->lpVtbl->Release(This);
5978 }
5979 /*** ITfRange methods ***/
5980 static FORCEINLINE HRESULT ITfRange_GetText(ITfRange* This,TfEditCookie ec,DWORD dwFlags,WCHAR *pchText,ULONG cchMax,ULONG *pcch) {
5981     return This->lpVtbl->GetText(This,ec,dwFlags,pchText,cchMax,pcch);
5982 }
5983 static FORCEINLINE HRESULT ITfRange_SetText(ITfRange* This,TfEditCookie ec,DWORD dwFlags,const WCHAR *pchText,LONG cch) {
5984     return This->lpVtbl->SetText(This,ec,dwFlags,pchText,cch);
5985 }
5986 static FORCEINLINE HRESULT ITfRange_GetFormattedText(ITfRange* This,TfEditCookie ec,IDataObject **ppDataObject) {
5987     return This->lpVtbl->GetFormattedText(This,ec,ppDataObject);
5988 }
5989 static FORCEINLINE HRESULT ITfRange_GetEmbedded(ITfRange* This,TfEditCookie ec,REFGUID rguidService,REFIID riid,IUnknown **ppunk) {
5990     return This->lpVtbl->GetEmbedded(This,ec,rguidService,riid,ppunk);
5991 }
5992 static FORCEINLINE HRESULT ITfRange_InsertEmbedded(ITfRange* This,TfEditCookie ec,DWORD dwFlags,IDataObject *pDataObject) {
5993     return This->lpVtbl->InsertEmbedded(This,ec,dwFlags,pDataObject);
5994 }
5995 static FORCEINLINE HRESULT ITfRange_ShiftStart(ITfRange* This,TfEditCookie ec,LONG cchReq,LONG *pcch,const TF_HALTCOND *pHalt) {
5996     return This->lpVtbl->ShiftStart(This,ec,cchReq,pcch,pHalt);
5997 }
5998 static FORCEINLINE HRESULT ITfRange_ShiftEnd(ITfRange* This,TfEditCookie ec,LONG cchReq,LONG *pcch,const TF_HALTCOND *pHalt) {
5999     return This->lpVtbl->ShiftEnd(This,ec,cchReq,pcch,pHalt);
6000 }
6001 static FORCEINLINE HRESULT ITfRange_ShiftStartToRange(ITfRange* This,TfEditCookie ec,ITfRange *pRange,TfAnchor aPos) {
6002     return This->lpVtbl->ShiftStartToRange(This,ec,pRange,aPos);
6003 }
6004 static FORCEINLINE HRESULT ITfRange_ShiftEndToRange(ITfRange* This,TfEditCookie ec,ITfRange *pRange,TfAnchor aPos) {
6005     return This->lpVtbl->ShiftEndToRange(This,ec,pRange,aPos);
6006 }
6007 static FORCEINLINE HRESULT ITfRange_ShiftStartRegion(ITfRange* This,TfEditCookie ec,TfShiftDir dir,WINBOOL *pfNoRegion) {
6008     return This->lpVtbl->ShiftStartRegion(This,ec,dir,pfNoRegion);
6009 }
6010 static FORCEINLINE HRESULT ITfRange_ShiftEndRegion(ITfRange* This,TfEditCookie ec,TfShiftDir dir,WINBOOL *pfNoRegion) {
6011     return This->lpVtbl->ShiftEndRegion(This,ec,dir,pfNoRegion);
6012 }
6013 static FORCEINLINE HRESULT ITfRange_IsEmpty(ITfRange* This,TfEditCookie ec,WINBOOL *pfEmpty) {
6014     return This->lpVtbl->IsEmpty(This,ec,pfEmpty);
6015 }
6016 static FORCEINLINE HRESULT ITfRange_Collapse(ITfRange* This,TfEditCookie ec,TfAnchor aPos) {
6017     return This->lpVtbl->Collapse(This,ec,aPos);
6018 }
6019 static FORCEINLINE HRESULT ITfRange_IsEqualStart(ITfRange* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,WINBOOL *pfEqual) {
6020     return This->lpVtbl->IsEqualStart(This,ec,pWith,aPos,pfEqual);
6021 }
6022 static FORCEINLINE HRESULT ITfRange_IsEqualEnd(ITfRange* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,WINBOOL *pfEqual) {
6023     return This->lpVtbl->IsEqualEnd(This,ec,pWith,aPos,pfEqual);
6024 }
6025 static FORCEINLINE HRESULT ITfRange_CompareStart(ITfRange* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,LONG *plResult) {
6026     return This->lpVtbl->CompareStart(This,ec,pWith,aPos,plResult);
6027 }
6028 static FORCEINLINE HRESULT ITfRange_CompareEnd(ITfRange* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,LONG *plResult) {
6029     return This->lpVtbl->CompareEnd(This,ec,pWith,aPos,plResult);
6030 }
6031 static FORCEINLINE HRESULT ITfRange_AdjustForInsert(ITfRange* This,TfEditCookie ec,ULONG cchInsert,WINBOOL *pfInsertOk) {
6032     return This->lpVtbl->AdjustForInsert(This,ec,cchInsert,pfInsertOk);
6033 }
6034 static FORCEINLINE HRESULT ITfRange_GetGravity(ITfRange* This,TfGravity *pgStart,TfGravity *pgEnd) {
6035     return This->lpVtbl->GetGravity(This,pgStart,pgEnd);
6036 }
6037 static FORCEINLINE HRESULT ITfRange_SetGravity(ITfRange* This,TfEditCookie ec,TfGravity gStart,TfGravity gEnd) {
6038     return This->lpVtbl->SetGravity(This,ec,gStart,gEnd);
6039 }
6040 static FORCEINLINE HRESULT ITfRange_Clone(ITfRange* This,ITfRange **ppClone) {
6041     return This->lpVtbl->Clone(This,ppClone);
6042 }
6043 static FORCEINLINE HRESULT ITfRange_GetContext(ITfRange* This,ITfContext **ppContext) {
6044     return This->lpVtbl->GetContext(This,ppContext);
6045 }
6046 #endif
6047 #endif
6048 
6049 #endif
6050 
6051 
6052 #endif  /* __ITfRange_INTERFACE_DEFINED__ */
6053 
6054 /*****************************************************************************
6055  * ITfRangeACP interface
6056  */
6057 #ifndef __ITfRangeACP_INTERFACE_DEFINED__
6058 #define __ITfRangeACP_INTERFACE_DEFINED__
6059 
6060 DEFINE_GUID(IID_ITfRangeACP, 0x057a6296, 0x029b, 0x4154, 0xb7,0x9a, 0x0d,0x46,0x1d,0x4e,0xa9,0x4c);
6061 #if defined(__cplusplus) && !defined(CINTERFACE)
6062 MIDL_INTERFACE("057a6296-029b-4154-b79a-0d461d4ea94c")
6063 ITfRangeACP : public ITfRange
6064 {
6065     virtual HRESULT STDMETHODCALLTYPE GetExtent(
6066         LONG *pacpAnchor,
6067         LONG *pcch) = 0;
6068 
6069     virtual HRESULT STDMETHODCALLTYPE SetExtent(
6070         LONG acpAnchor,
6071         LONG cch) = 0;
6072 
6073 };
6074 #ifdef __CRT_UUID_DECL
6075 __CRT_UUID_DECL(ITfRangeACP, 0x057a6296, 0x029b, 0x4154, 0xb7,0x9a, 0x0d,0x46,0x1d,0x4e,0xa9,0x4c)
6076 #endif
6077 #else
6078 typedef struct ITfRangeACPVtbl {
6079     BEGIN_INTERFACE
6080 
6081     /*** IUnknown methods ***/
6082     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6083         ITfRangeACP *This,
6084         REFIID riid,
6085         void **ppvObject);
6086 
6087     ULONG (STDMETHODCALLTYPE *AddRef)(
6088         ITfRangeACP *This);
6089 
6090     ULONG (STDMETHODCALLTYPE *Release)(
6091         ITfRangeACP *This);
6092 
6093     /*** ITfRange methods ***/
6094     HRESULT (STDMETHODCALLTYPE *GetText)(
6095         ITfRangeACP *This,
6096         TfEditCookie ec,
6097         DWORD dwFlags,
6098         WCHAR *pchText,
6099         ULONG cchMax,
6100         ULONG *pcch);
6101 
6102     HRESULT (STDMETHODCALLTYPE *SetText)(
6103         ITfRangeACP *This,
6104         TfEditCookie ec,
6105         DWORD dwFlags,
6106         const WCHAR *pchText,
6107         LONG cch);
6108 
6109     HRESULT (STDMETHODCALLTYPE *GetFormattedText)(
6110         ITfRangeACP *This,
6111         TfEditCookie ec,
6112         IDataObject **ppDataObject);
6113 
6114     HRESULT (STDMETHODCALLTYPE *GetEmbedded)(
6115         ITfRangeACP *This,
6116         TfEditCookie ec,
6117         REFGUID rguidService,
6118         REFIID riid,
6119         IUnknown **ppunk);
6120 
6121     HRESULT (STDMETHODCALLTYPE *InsertEmbedded)(
6122         ITfRangeACP *This,
6123         TfEditCookie ec,
6124         DWORD dwFlags,
6125         IDataObject *pDataObject);
6126 
6127     HRESULT (STDMETHODCALLTYPE *ShiftStart)(
6128         ITfRangeACP *This,
6129         TfEditCookie ec,
6130         LONG cchReq,
6131         LONG *pcch,
6132         const TF_HALTCOND *pHalt);
6133 
6134     HRESULT (STDMETHODCALLTYPE *ShiftEnd)(
6135         ITfRangeACP *This,
6136         TfEditCookie ec,
6137         LONG cchReq,
6138         LONG *pcch,
6139         const TF_HALTCOND *pHalt);
6140 
6141     HRESULT (STDMETHODCALLTYPE *ShiftStartToRange)(
6142         ITfRangeACP *This,
6143         TfEditCookie ec,
6144         ITfRange *pRange,
6145         TfAnchor aPos);
6146 
6147     HRESULT (STDMETHODCALLTYPE *ShiftEndToRange)(
6148         ITfRangeACP *This,
6149         TfEditCookie ec,
6150         ITfRange *pRange,
6151         TfAnchor aPos);
6152 
6153     HRESULT (STDMETHODCALLTYPE *ShiftStartRegion)(
6154         ITfRangeACP *This,
6155         TfEditCookie ec,
6156         TfShiftDir dir,
6157         WINBOOL *pfNoRegion);
6158 
6159     HRESULT (STDMETHODCALLTYPE *ShiftEndRegion)(
6160         ITfRangeACP *This,
6161         TfEditCookie ec,
6162         TfShiftDir dir,
6163         WINBOOL *pfNoRegion);
6164 
6165     HRESULT (STDMETHODCALLTYPE *IsEmpty)(
6166         ITfRangeACP *This,
6167         TfEditCookie ec,
6168         WINBOOL *pfEmpty);
6169 
6170     HRESULT (STDMETHODCALLTYPE *Collapse)(
6171         ITfRangeACP *This,
6172         TfEditCookie ec,
6173         TfAnchor aPos);
6174 
6175     HRESULT (STDMETHODCALLTYPE *IsEqualStart)(
6176         ITfRangeACP *This,
6177         TfEditCookie ec,
6178         ITfRange *pWith,
6179         TfAnchor aPos,
6180         WINBOOL *pfEqual);
6181 
6182     HRESULT (STDMETHODCALLTYPE *IsEqualEnd)(
6183         ITfRangeACP *This,
6184         TfEditCookie ec,
6185         ITfRange *pWith,
6186         TfAnchor aPos,
6187         WINBOOL *pfEqual);
6188 
6189     HRESULT (STDMETHODCALLTYPE *CompareStart)(
6190         ITfRangeACP *This,
6191         TfEditCookie ec,
6192         ITfRange *pWith,
6193         TfAnchor aPos,
6194         LONG *plResult);
6195 
6196     HRESULT (STDMETHODCALLTYPE *CompareEnd)(
6197         ITfRangeACP *This,
6198         TfEditCookie ec,
6199         ITfRange *pWith,
6200         TfAnchor aPos,
6201         LONG *plResult);
6202 
6203     HRESULT (STDMETHODCALLTYPE *AdjustForInsert)(
6204         ITfRangeACP *This,
6205         TfEditCookie ec,
6206         ULONG cchInsert,
6207         WINBOOL *pfInsertOk);
6208 
6209     HRESULT (STDMETHODCALLTYPE *GetGravity)(
6210         ITfRangeACP *This,
6211         TfGravity *pgStart,
6212         TfGravity *pgEnd);
6213 
6214     HRESULT (STDMETHODCALLTYPE *SetGravity)(
6215         ITfRangeACP *This,
6216         TfEditCookie ec,
6217         TfGravity gStart,
6218         TfGravity gEnd);
6219 
6220     HRESULT (STDMETHODCALLTYPE *Clone)(
6221         ITfRangeACP *This,
6222         ITfRange **ppClone);
6223 
6224     HRESULT (STDMETHODCALLTYPE *GetContext)(
6225         ITfRangeACP *This,
6226         ITfContext **ppContext);
6227 
6228     /*** ITfRangeACP methods ***/
6229     HRESULT (STDMETHODCALLTYPE *GetExtent)(
6230         ITfRangeACP *This,
6231         LONG *pacpAnchor,
6232         LONG *pcch);
6233 
6234     HRESULT (STDMETHODCALLTYPE *SetExtent)(
6235         ITfRangeACP *This,
6236         LONG acpAnchor,
6237         LONG cch);
6238 
6239     END_INTERFACE
6240 } ITfRangeACPVtbl;
6241 
6242 interface ITfRangeACP {
6243     CONST_VTBL ITfRangeACPVtbl* lpVtbl;
6244 };
6245 
6246 #ifdef COBJMACROS
6247 #ifndef WIDL_C_INLINE_WRAPPERS
6248 /*** IUnknown methods ***/
6249 #define ITfRangeACP_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6250 #define ITfRangeACP_AddRef(This) (This)->lpVtbl->AddRef(This)
6251 #define ITfRangeACP_Release(This) (This)->lpVtbl->Release(This)
6252 /*** ITfRange methods ***/
6253 #define ITfRangeACP_GetText(This,ec,dwFlags,pchText,cchMax,pcch) (This)->lpVtbl->GetText(This,ec,dwFlags,pchText,cchMax,pcch)
6254 #define ITfRangeACP_SetText(This,ec,dwFlags,pchText,cch) (This)->lpVtbl->SetText(This,ec,dwFlags,pchText,cch)
6255 #define ITfRangeACP_GetFormattedText(This,ec,ppDataObject) (This)->lpVtbl->GetFormattedText(This,ec,ppDataObject)
6256 #define ITfRangeACP_GetEmbedded(This,ec,rguidService,riid,ppunk) (This)->lpVtbl->GetEmbedded(This,ec,rguidService,riid,ppunk)
6257 #define ITfRangeACP_InsertEmbedded(This,ec,dwFlags,pDataObject) (This)->lpVtbl->InsertEmbedded(This,ec,dwFlags,pDataObject)
6258 #define ITfRangeACP_ShiftStart(This,ec,cchReq,pcch,pHalt) (This)->lpVtbl->ShiftStart(This,ec,cchReq,pcch,pHalt)
6259 #define ITfRangeACP_ShiftEnd(This,ec,cchReq,pcch,pHalt) (This)->lpVtbl->ShiftEnd(This,ec,cchReq,pcch,pHalt)
6260 #define ITfRangeACP_ShiftStartToRange(This,ec,pRange,aPos) (This)->lpVtbl->ShiftStartToRange(This,ec,pRange,aPos)
6261 #define ITfRangeACP_ShiftEndToRange(This,ec,pRange,aPos) (This)->lpVtbl->ShiftEndToRange(This,ec,pRange,aPos)
6262 #define ITfRangeACP_ShiftStartRegion(This,ec,dir,pfNoRegion) (This)->lpVtbl->ShiftStartRegion(This,ec,dir,pfNoRegion)
6263 #define ITfRangeACP_ShiftEndRegion(This,ec,dir,pfNoRegion) (This)->lpVtbl->ShiftEndRegion(This,ec,dir,pfNoRegion)
6264 #define ITfRangeACP_IsEmpty(This,ec,pfEmpty) (This)->lpVtbl->IsEmpty(This,ec,pfEmpty)
6265 #define ITfRangeACP_Collapse(This,ec,aPos) (This)->lpVtbl->Collapse(This,ec,aPos)
6266 #define ITfRangeACP_IsEqualStart(This,ec,pWith,aPos,pfEqual) (This)->lpVtbl->IsEqualStart(This,ec,pWith,aPos,pfEqual)
6267 #define ITfRangeACP_IsEqualEnd(This,ec,pWith,aPos,pfEqual) (This)->lpVtbl->IsEqualEnd(This,ec,pWith,aPos,pfEqual)
6268 #define ITfRangeACP_CompareStart(This,ec,pWith,aPos,plResult) (This)->lpVtbl->CompareStart(This,ec,pWith,aPos,plResult)
6269 #define ITfRangeACP_CompareEnd(This,ec,pWith,aPos,plResult) (This)->lpVtbl->CompareEnd(This,ec,pWith,aPos,plResult)
6270 #define ITfRangeACP_AdjustForInsert(This,ec,cchInsert,pfInsertOk) (This)->lpVtbl->AdjustForInsert(This,ec,cchInsert,pfInsertOk)
6271 #define ITfRangeACP_GetGravity(This,pgStart,pgEnd) (This)->lpVtbl->GetGravity(This,pgStart,pgEnd)
6272 #define ITfRangeACP_SetGravity(This,ec,gStart,gEnd) (This)->lpVtbl->SetGravity(This,ec,gStart,gEnd)
6273 #define ITfRangeACP_Clone(This,ppClone) (This)->lpVtbl->Clone(This,ppClone)
6274 #define ITfRangeACP_GetContext(This,ppContext) (This)->lpVtbl->GetContext(This,ppContext)
6275 /*** ITfRangeACP methods ***/
6276 #define ITfRangeACP_GetExtent(This,pacpAnchor,pcch) (This)->lpVtbl->GetExtent(This,pacpAnchor,pcch)
6277 #define ITfRangeACP_SetExtent(This,acpAnchor,cch) (This)->lpVtbl->SetExtent(This,acpAnchor,cch)
6278 #else
6279 /*** IUnknown methods ***/
6280 static FORCEINLINE HRESULT ITfRangeACP_QueryInterface(ITfRangeACP* This,REFIID riid,void **ppvObject) {
6281     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6282 }
6283 static FORCEINLINE ULONG ITfRangeACP_AddRef(ITfRangeACP* This) {
6284     return This->lpVtbl->AddRef(This);
6285 }
6286 static FORCEINLINE ULONG ITfRangeACP_Release(ITfRangeACP* This) {
6287     return This->lpVtbl->Release(This);
6288 }
6289 /*** ITfRange methods ***/
6290 static FORCEINLINE HRESULT ITfRangeACP_GetText(ITfRangeACP* This,TfEditCookie ec,DWORD dwFlags,WCHAR *pchText,ULONG cchMax,ULONG *pcch) {
6291     return This->lpVtbl->GetText(This,ec,dwFlags,pchText,cchMax,pcch);
6292 }
6293 static FORCEINLINE HRESULT ITfRangeACP_SetText(ITfRangeACP* This,TfEditCookie ec,DWORD dwFlags,const WCHAR *pchText,LONG cch) {
6294     return This->lpVtbl->SetText(This,ec,dwFlags,pchText,cch);
6295 }
6296 static FORCEINLINE HRESULT ITfRangeACP_GetFormattedText(ITfRangeACP* This,TfEditCookie ec,IDataObject **ppDataObject) {
6297     return This->lpVtbl->GetFormattedText(This,ec,ppDataObject);
6298 }
6299 static FORCEINLINE HRESULT ITfRangeACP_GetEmbedded(ITfRangeACP* This,TfEditCookie ec,REFGUID rguidService,REFIID riid,IUnknown **ppunk) {
6300     return This->lpVtbl->GetEmbedded(This,ec,rguidService,riid,ppunk);
6301 }
6302 static FORCEINLINE HRESULT ITfRangeACP_InsertEmbedded(ITfRangeACP* This,TfEditCookie ec,DWORD dwFlags,IDataObject *pDataObject) {
6303     return This->lpVtbl->InsertEmbedded(This,ec,dwFlags,pDataObject);
6304 }
6305 static FORCEINLINE HRESULT ITfRangeACP_ShiftStart(ITfRangeACP* This,TfEditCookie ec,LONG cchReq,LONG *pcch,const TF_HALTCOND *pHalt) {
6306     return This->lpVtbl->ShiftStart(This,ec,cchReq,pcch,pHalt);
6307 }
6308 static FORCEINLINE HRESULT ITfRangeACP_ShiftEnd(ITfRangeACP* This,TfEditCookie ec,LONG cchReq,LONG *pcch,const TF_HALTCOND *pHalt) {
6309     return This->lpVtbl->ShiftEnd(This,ec,cchReq,pcch,pHalt);
6310 }
6311 static FORCEINLINE HRESULT ITfRangeACP_ShiftStartToRange(ITfRangeACP* This,TfEditCookie ec,ITfRange *pRange,TfAnchor aPos) {
6312     return This->lpVtbl->ShiftStartToRange(This,ec,pRange,aPos);
6313 }
6314 static FORCEINLINE HRESULT ITfRangeACP_ShiftEndToRange(ITfRangeACP* This,TfEditCookie ec,ITfRange *pRange,TfAnchor aPos) {
6315     return This->lpVtbl->ShiftEndToRange(This,ec,pRange,aPos);
6316 }
6317 static FORCEINLINE HRESULT ITfRangeACP_ShiftStartRegion(ITfRangeACP* This,TfEditCookie ec,TfShiftDir dir,WINBOOL *pfNoRegion) {
6318     return This->lpVtbl->ShiftStartRegion(This,ec,dir,pfNoRegion);
6319 }
6320 static FORCEINLINE HRESULT ITfRangeACP_ShiftEndRegion(ITfRangeACP* This,TfEditCookie ec,TfShiftDir dir,WINBOOL *pfNoRegion) {
6321     return This->lpVtbl->ShiftEndRegion(This,ec,dir,pfNoRegion);
6322 }
6323 static FORCEINLINE HRESULT ITfRangeACP_IsEmpty(ITfRangeACP* This,TfEditCookie ec,WINBOOL *pfEmpty) {
6324     return This->lpVtbl->IsEmpty(This,ec,pfEmpty);
6325 }
6326 static FORCEINLINE HRESULT ITfRangeACP_Collapse(ITfRangeACP* This,TfEditCookie ec,TfAnchor aPos) {
6327     return This->lpVtbl->Collapse(This,ec,aPos);
6328 }
6329 static FORCEINLINE HRESULT ITfRangeACP_IsEqualStart(ITfRangeACP* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,WINBOOL *pfEqual) {
6330     return This->lpVtbl->IsEqualStart(This,ec,pWith,aPos,pfEqual);
6331 }
6332 static FORCEINLINE HRESULT ITfRangeACP_IsEqualEnd(ITfRangeACP* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,WINBOOL *pfEqual) {
6333     return This->lpVtbl->IsEqualEnd(This,ec,pWith,aPos,pfEqual);
6334 }
6335 static FORCEINLINE HRESULT ITfRangeACP_CompareStart(ITfRangeACP* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,LONG *plResult) {
6336     return This->lpVtbl->CompareStart(This,ec,pWith,aPos,plResult);
6337 }
6338 static FORCEINLINE HRESULT ITfRangeACP_CompareEnd(ITfRangeACP* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,LONG *plResult) {
6339     return This->lpVtbl->CompareEnd(This,ec,pWith,aPos,plResult);
6340 }
6341 static FORCEINLINE HRESULT ITfRangeACP_AdjustForInsert(ITfRangeACP* This,TfEditCookie ec,ULONG cchInsert,WINBOOL *pfInsertOk) {
6342     return This->lpVtbl->AdjustForInsert(This,ec,cchInsert,pfInsertOk);
6343 }
6344 static FORCEINLINE HRESULT ITfRangeACP_GetGravity(ITfRangeACP* This,TfGravity *pgStart,TfGravity *pgEnd) {
6345     return This->lpVtbl->GetGravity(This,pgStart,pgEnd);
6346 }
6347 static FORCEINLINE HRESULT ITfRangeACP_SetGravity(ITfRangeACP* This,TfEditCookie ec,TfGravity gStart,TfGravity gEnd) {
6348     return This->lpVtbl->SetGravity(This,ec,gStart,gEnd);
6349 }
6350 static FORCEINLINE HRESULT ITfRangeACP_Clone(ITfRangeACP* This,ITfRange **ppClone) {
6351     return This->lpVtbl->Clone(This,ppClone);
6352 }
6353 static FORCEINLINE HRESULT ITfRangeACP_GetContext(ITfRangeACP* This,ITfContext **ppContext) {
6354     return This->lpVtbl->GetContext(This,ppContext);
6355 }
6356 /*** ITfRangeACP methods ***/
6357 static FORCEINLINE HRESULT ITfRangeACP_GetExtent(ITfRangeACP* This,LONG *pacpAnchor,LONG *pcch) {
6358     return This->lpVtbl->GetExtent(This,pacpAnchor,pcch);
6359 }
6360 static FORCEINLINE HRESULT ITfRangeACP_SetExtent(ITfRangeACP* This,LONG acpAnchor,LONG cch) {
6361     return This->lpVtbl->SetExtent(This,acpAnchor,cch);
6362 }
6363 #endif
6364 #endif
6365 
6366 #endif
6367 
6368 
6369 #endif  /* __ITfRangeACP_INTERFACE_DEFINED__ */
6370 
6371 /*****************************************************************************
6372  * ITfInsertAtSelection interface
6373  */
6374 #ifndef __ITfInsertAtSelection_INTERFACE_DEFINED__
6375 #define __ITfInsertAtSelection_INTERFACE_DEFINED__
6376 
6377 #define TF_IAS_NOQUERY (0x1)
6378 
6379 #define TF_IAS_QUERYONLY (0x2)
6380 
6381 #define TF_IAS_NO_DEFAULT_COMPOSITION (0x80000000)
6382 
6383 DEFINE_GUID(IID_ITfInsertAtSelection, 0x55ce16ba, 0x3014, 0x41c1, 0x9c,0xeb, 0xfa,0xde,0x14,0x46,0xac,0x6c);
6384 #if defined(__cplusplus) && !defined(CINTERFACE)
6385 MIDL_INTERFACE("55ce16ba-3014-41c1-9ceb-fade1446ac6c")
6386 ITfInsertAtSelection : public IUnknown
6387 {
6388     virtual HRESULT STDMETHODCALLTYPE InsertTextAtSelection(
6389         TfEditCookie ec,
6390         DWORD dwFlags,
6391         const WCHAR *pchText,
6392         LONG cch,
6393         ITfRange **ppRange) = 0;
6394 
6395     virtual HRESULT STDMETHODCALLTYPE InsertEmbeddedAtSelection(
6396         TfEditCookie ec,
6397         DWORD dwFlags,
6398         IDataObject *pDataObject,
6399         ITfRange **ppRange) = 0;
6400 
6401 };
6402 #ifdef __CRT_UUID_DECL
6403 __CRT_UUID_DECL(ITfInsertAtSelection, 0x55ce16ba, 0x3014, 0x41c1, 0x9c,0xeb, 0xfa,0xde,0x14,0x46,0xac,0x6c)
6404 #endif
6405 #else
6406 typedef struct ITfInsertAtSelectionVtbl {
6407     BEGIN_INTERFACE
6408 
6409     /*** IUnknown methods ***/
6410     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6411         ITfInsertAtSelection *This,
6412         REFIID riid,
6413         void **ppvObject);
6414 
6415     ULONG (STDMETHODCALLTYPE *AddRef)(
6416         ITfInsertAtSelection *This);
6417 
6418     ULONG (STDMETHODCALLTYPE *Release)(
6419         ITfInsertAtSelection *This);
6420 
6421     /*** ITfInsertAtSelection methods ***/
6422     HRESULT (STDMETHODCALLTYPE *InsertTextAtSelection)(
6423         ITfInsertAtSelection *This,
6424         TfEditCookie ec,
6425         DWORD dwFlags,
6426         const WCHAR *pchText,
6427         LONG cch,
6428         ITfRange **ppRange);
6429 
6430     HRESULT (STDMETHODCALLTYPE *InsertEmbeddedAtSelection)(
6431         ITfInsertAtSelection *This,
6432         TfEditCookie ec,
6433         DWORD dwFlags,
6434         IDataObject *pDataObject,
6435         ITfRange **ppRange);
6436 
6437     END_INTERFACE
6438 } ITfInsertAtSelectionVtbl;
6439 
6440 interface ITfInsertAtSelection {
6441     CONST_VTBL ITfInsertAtSelectionVtbl* lpVtbl;
6442 };
6443 
6444 #ifdef COBJMACROS
6445 #ifndef WIDL_C_INLINE_WRAPPERS
6446 /*** IUnknown methods ***/
6447 #define ITfInsertAtSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6448 #define ITfInsertAtSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
6449 #define ITfInsertAtSelection_Release(This) (This)->lpVtbl->Release(This)
6450 /*** ITfInsertAtSelection methods ***/
6451 #define ITfInsertAtSelection_InsertTextAtSelection(This,ec,dwFlags,pchText,cch,ppRange) (This)->lpVtbl->InsertTextAtSelection(This,ec,dwFlags,pchText,cch,ppRange)
6452 #define ITfInsertAtSelection_InsertEmbeddedAtSelection(This,ec,dwFlags,pDataObject,ppRange) (This)->lpVtbl->InsertEmbeddedAtSelection(This,ec,dwFlags,pDataObject,ppRange)
6453 #else
6454 /*** IUnknown methods ***/
6455 static FORCEINLINE HRESULT ITfInsertAtSelection_QueryInterface(ITfInsertAtSelection* This,REFIID riid,void **ppvObject) {
6456     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6457 }
6458 static FORCEINLINE ULONG ITfInsertAtSelection_AddRef(ITfInsertAtSelection* This) {
6459     return This->lpVtbl->AddRef(This);
6460 }
6461 static FORCEINLINE ULONG ITfInsertAtSelection_Release(ITfInsertAtSelection* This) {
6462     return This->lpVtbl->Release(This);
6463 }
6464 /*** ITfInsertAtSelection methods ***/
6465 static FORCEINLINE HRESULT ITfInsertAtSelection_InsertTextAtSelection(ITfInsertAtSelection* This,TfEditCookie ec,DWORD dwFlags,const WCHAR *pchText,LONG cch,ITfRange **ppRange) {
6466     return This->lpVtbl->InsertTextAtSelection(This,ec,dwFlags,pchText,cch,ppRange);
6467 }
6468 static FORCEINLINE HRESULT ITfInsertAtSelection_InsertEmbeddedAtSelection(ITfInsertAtSelection* This,TfEditCookie ec,DWORD dwFlags,IDataObject *pDataObject,ITfRange **ppRange) {
6469     return This->lpVtbl->InsertEmbeddedAtSelection(This,ec,dwFlags,pDataObject,ppRange);
6470 }
6471 #endif
6472 #endif
6473 
6474 #endif
6475 
6476 
6477 #endif  /* __ITfInsertAtSelection_INTERFACE_DEFINED__ */
6478 
6479 /*****************************************************************************
6480  * ITfPropertyStore interface
6481  */
6482 #ifndef __ITfPropertyStore_INTERFACE_DEFINED__
6483 #define __ITfPropertyStore_INTERFACE_DEFINED__
6484 
6485 #define TF_TU_CORRECTION (0x1)
6486 
6487 DEFINE_GUID(IID_ITfPropertyStore, 0x6834b120, 0x88cb, 0x11d2, 0xbf,0x45, 0x00,0x10,0x5a,0x27,0x99,0xb5);
6488 #if defined(__cplusplus) && !defined(CINTERFACE)
6489 MIDL_INTERFACE("6834b120-88cb-11d2-bf45-00105a2799b5")
6490 ITfPropertyStore : public IUnknown
6491 {
6492     virtual HRESULT STDMETHODCALLTYPE GetType(
6493         GUID *pguid) = 0;
6494 
6495     virtual HRESULT STDMETHODCALLTYPE GetDataType(
6496         DWORD *pdwReserved) = 0;
6497 
6498     virtual HRESULT STDMETHODCALLTYPE GetData(
6499         VARIANT *pvarValue) = 0;
6500 
6501     virtual HRESULT STDMETHODCALLTYPE OnTextUpdated(
6502         DWORD dwFlags,
6503         ITfRange *pRangeNew,
6504         WINBOOL *pfAccept) = 0;
6505 
6506     virtual HRESULT STDMETHODCALLTYPE Shrink(
6507         ITfRange *pRangeNew,
6508         WINBOOL *pfFree) = 0;
6509 
6510     virtual HRESULT STDMETHODCALLTYPE Divide(
6511         ITfRange *pRangeThis,
6512         ITfRange *pRangeNew,
6513         ITfPropertyStore **ppPropStore) = 0;
6514 
6515     virtual HRESULT STDMETHODCALLTYPE Clone(
6516         ITfPropertyStore **pPropStore) = 0;
6517 
6518     virtual HRESULT STDMETHODCALLTYPE GetPropertyRangeCreator(
6519         CLSID *pclsid) = 0;
6520 
6521     virtual HRESULT STDMETHODCALLTYPE Serialize(
6522         IStream *pStream,
6523         ULONG *pcb) = 0;
6524 
6525 };
6526 #ifdef __CRT_UUID_DECL
6527 __CRT_UUID_DECL(ITfPropertyStore, 0x6834b120, 0x88cb, 0x11d2, 0xbf,0x45, 0x00,0x10,0x5a,0x27,0x99,0xb5)
6528 #endif
6529 #else
6530 typedef struct ITfPropertyStoreVtbl {
6531     BEGIN_INTERFACE
6532 
6533     /*** IUnknown methods ***/
6534     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6535         ITfPropertyStore *This,
6536         REFIID riid,
6537         void **ppvObject);
6538 
6539     ULONG (STDMETHODCALLTYPE *AddRef)(
6540         ITfPropertyStore *This);
6541 
6542     ULONG (STDMETHODCALLTYPE *Release)(
6543         ITfPropertyStore *This);
6544 
6545     /*** ITfPropertyStore methods ***/
6546     HRESULT (STDMETHODCALLTYPE *GetType)(
6547         ITfPropertyStore *This,
6548         GUID *pguid);
6549 
6550     HRESULT (STDMETHODCALLTYPE *GetDataType)(
6551         ITfPropertyStore *This,
6552         DWORD *pdwReserved);
6553 
6554     HRESULT (STDMETHODCALLTYPE *GetData)(
6555         ITfPropertyStore *This,
6556         VARIANT *pvarValue);
6557 
6558     HRESULT (STDMETHODCALLTYPE *OnTextUpdated)(
6559         ITfPropertyStore *This,
6560         DWORD dwFlags,
6561         ITfRange *pRangeNew,
6562         WINBOOL *pfAccept);
6563 
6564     HRESULT (STDMETHODCALLTYPE *Shrink)(
6565         ITfPropertyStore *This,
6566         ITfRange *pRangeNew,
6567         WINBOOL *pfFree);
6568 
6569     HRESULT (STDMETHODCALLTYPE *Divide)(
6570         ITfPropertyStore *This,
6571         ITfRange *pRangeThis,
6572         ITfRange *pRangeNew,
6573         ITfPropertyStore **ppPropStore);
6574 
6575     HRESULT (STDMETHODCALLTYPE *Clone)(
6576         ITfPropertyStore *This,
6577         ITfPropertyStore **pPropStore);
6578 
6579     HRESULT (STDMETHODCALLTYPE *GetPropertyRangeCreator)(
6580         ITfPropertyStore *This,
6581         CLSID *pclsid);
6582 
6583     HRESULT (STDMETHODCALLTYPE *Serialize)(
6584         ITfPropertyStore *This,
6585         IStream *pStream,
6586         ULONG *pcb);
6587 
6588     END_INTERFACE
6589 } ITfPropertyStoreVtbl;
6590 
6591 interface ITfPropertyStore {
6592     CONST_VTBL ITfPropertyStoreVtbl* lpVtbl;
6593 };
6594 
6595 #ifdef COBJMACROS
6596 #ifndef WIDL_C_INLINE_WRAPPERS
6597 /*** IUnknown methods ***/
6598 #define ITfPropertyStore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6599 #define ITfPropertyStore_AddRef(This) (This)->lpVtbl->AddRef(This)
6600 #define ITfPropertyStore_Release(This) (This)->lpVtbl->Release(This)
6601 /*** ITfPropertyStore methods ***/
6602 #define ITfPropertyStore_GetType(This,pguid) (This)->lpVtbl->GetType(This,pguid)
6603 #define ITfPropertyStore_GetDataType(This,pdwReserved) (This)->lpVtbl->GetDataType(This,pdwReserved)
6604 #define ITfPropertyStore_GetData(This,pvarValue) (This)->lpVtbl->GetData(This,pvarValue)
6605 #define ITfPropertyStore_OnTextUpdated(This,dwFlags,pRangeNew,pfAccept) (This)->lpVtbl->OnTextUpdated(This,dwFlags,pRangeNew,pfAccept)
6606 #define ITfPropertyStore_Shrink(This,pRangeNew,pfFree) (This)->lpVtbl->Shrink(This,pRangeNew,pfFree)
6607 #define ITfPropertyStore_Divide(This,pRangeThis,pRangeNew,ppPropStore) (This)->lpVtbl->Divide(This,pRangeThis,pRangeNew,ppPropStore)
6608 #define ITfPropertyStore_Clone(This,pPropStore) (This)->lpVtbl->Clone(This,pPropStore)
6609 #define ITfPropertyStore_GetPropertyRangeCreator(This,pclsid) (This)->lpVtbl->GetPropertyRangeCreator(This,pclsid)
6610 #define ITfPropertyStore_Serialize(This,pStream,pcb) (This)->lpVtbl->Serialize(This,pStream,pcb)
6611 #else
6612 /*** IUnknown methods ***/
6613 static FORCEINLINE HRESULT ITfPropertyStore_QueryInterface(ITfPropertyStore* This,REFIID riid,void **ppvObject) {
6614     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6615 }
6616 static FORCEINLINE ULONG ITfPropertyStore_AddRef(ITfPropertyStore* This) {
6617     return This->lpVtbl->AddRef(This);
6618 }
6619 static FORCEINLINE ULONG ITfPropertyStore_Release(ITfPropertyStore* This) {
6620     return This->lpVtbl->Release(This);
6621 }
6622 /*** ITfPropertyStore methods ***/
6623 static FORCEINLINE HRESULT ITfPropertyStore_GetType(ITfPropertyStore* This,GUID *pguid) {
6624     return This->lpVtbl->GetType(This,pguid);
6625 }
6626 static FORCEINLINE HRESULT ITfPropertyStore_GetDataType(ITfPropertyStore* This,DWORD *pdwReserved) {
6627     return This->lpVtbl->GetDataType(This,pdwReserved);
6628 }
6629 static FORCEINLINE HRESULT ITfPropertyStore_GetData(ITfPropertyStore* This,VARIANT *pvarValue) {
6630     return This->lpVtbl->GetData(This,pvarValue);
6631 }
6632 static FORCEINLINE HRESULT ITfPropertyStore_OnTextUpdated(ITfPropertyStore* This,DWORD dwFlags,ITfRange *pRangeNew,WINBOOL *pfAccept) {
6633     return This->lpVtbl->OnTextUpdated(This,dwFlags,pRangeNew,pfAccept);
6634 }
6635 static FORCEINLINE HRESULT ITfPropertyStore_Shrink(ITfPropertyStore* This,ITfRange *pRangeNew,WINBOOL *pfFree) {
6636     return This->lpVtbl->Shrink(This,pRangeNew,pfFree);
6637 }
6638 static FORCEINLINE HRESULT ITfPropertyStore_Divide(ITfPropertyStore* This,ITfRange *pRangeThis,ITfRange *pRangeNew,ITfPropertyStore **ppPropStore) {
6639     return This->lpVtbl->Divide(This,pRangeThis,pRangeNew,ppPropStore);
6640 }
6641 static FORCEINLINE HRESULT ITfPropertyStore_Clone(ITfPropertyStore* This,ITfPropertyStore **pPropStore) {
6642     return This->lpVtbl->Clone(This,pPropStore);
6643 }
6644 static FORCEINLINE HRESULT ITfPropertyStore_GetPropertyRangeCreator(ITfPropertyStore* This,CLSID *pclsid) {
6645     return This->lpVtbl->GetPropertyRangeCreator(This,pclsid);
6646 }
6647 static FORCEINLINE HRESULT ITfPropertyStore_Serialize(ITfPropertyStore* This,IStream *pStream,ULONG *pcb) {
6648     return This->lpVtbl->Serialize(This,pStream,pcb);
6649 }
6650 #endif
6651 #endif
6652 
6653 #endif
6654 
6655 
6656 #endif  /* __ITfPropertyStore_INTERFACE_DEFINED__ */
6657 
6658 /*****************************************************************************
6659  * IEnumITfCompositionView interface
6660  */
6661 #ifndef __IEnumITfCompositionView_INTERFACE_DEFINED__
6662 #define __IEnumITfCompositionView_INTERFACE_DEFINED__
6663 
6664 DEFINE_GUID(IID_IEnumITfCompositionView, 0x5efd22ba, 0x7838, 0x46cb, 0x88,0xe2, 0xca,0xdb,0x14,0x12,0x4f,0x8f);
6665 #if defined(__cplusplus) && !defined(CINTERFACE)
6666 MIDL_INTERFACE("5efd22ba-7838-46cb-88e2-cadb14124f8f")
6667 IEnumITfCompositionView : public IUnknown
6668 {
6669     virtual HRESULT STDMETHODCALLTYPE Clone(
6670         IEnumITfCompositionView **ppEnum) = 0;
6671 
6672     virtual HRESULT STDMETHODCALLTYPE Next(
6673         ULONG ulCount,
6674         ITfCompositionView **rgCompositionView,
6675         ULONG *pcFetched) = 0;
6676 
6677     virtual HRESULT STDMETHODCALLTYPE Reset(
6678         ) = 0;
6679 
6680     virtual HRESULT STDMETHODCALLTYPE Skip(
6681         ULONG ulCount) = 0;
6682 
6683 };
6684 #ifdef __CRT_UUID_DECL
6685 __CRT_UUID_DECL(IEnumITfCompositionView, 0x5efd22ba, 0x7838, 0x46cb, 0x88,0xe2, 0xca,0xdb,0x14,0x12,0x4f,0x8f)
6686 #endif
6687 #else
6688 typedef struct IEnumITfCompositionViewVtbl {
6689     BEGIN_INTERFACE
6690 
6691     /*** IUnknown methods ***/
6692     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6693         IEnumITfCompositionView *This,
6694         REFIID riid,
6695         void **ppvObject);
6696 
6697     ULONG (STDMETHODCALLTYPE *AddRef)(
6698         IEnumITfCompositionView *This);
6699 
6700     ULONG (STDMETHODCALLTYPE *Release)(
6701         IEnumITfCompositionView *This);
6702 
6703     /*** IEnumITfCompositionView methods ***/
6704     HRESULT (STDMETHODCALLTYPE *Clone)(
6705         IEnumITfCompositionView *This,
6706         IEnumITfCompositionView **ppEnum);
6707 
6708     HRESULT (STDMETHODCALLTYPE *Next)(
6709         IEnumITfCompositionView *This,
6710         ULONG ulCount,
6711         ITfCompositionView **rgCompositionView,
6712         ULONG *pcFetched);
6713 
6714     HRESULT (STDMETHODCALLTYPE *Reset)(
6715         IEnumITfCompositionView *This);
6716 
6717     HRESULT (STDMETHODCALLTYPE *Skip)(
6718         IEnumITfCompositionView *This,
6719         ULONG ulCount);
6720 
6721     END_INTERFACE
6722 } IEnumITfCompositionViewVtbl;
6723 
6724 interface IEnumITfCompositionView {
6725     CONST_VTBL IEnumITfCompositionViewVtbl* lpVtbl;
6726 };
6727 
6728 #ifdef COBJMACROS
6729 #ifndef WIDL_C_INLINE_WRAPPERS
6730 /*** IUnknown methods ***/
6731 #define IEnumITfCompositionView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6732 #define IEnumITfCompositionView_AddRef(This) (This)->lpVtbl->AddRef(This)
6733 #define IEnumITfCompositionView_Release(This) (This)->lpVtbl->Release(This)
6734 /*** IEnumITfCompositionView methods ***/
6735 #define IEnumITfCompositionView_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
6736 #define IEnumITfCompositionView_Next(This,ulCount,rgCompositionView,pcFetched) (This)->lpVtbl->Next(This,ulCount,rgCompositionView,pcFetched)
6737 #define IEnumITfCompositionView_Reset(This) (This)->lpVtbl->Reset(This)
6738 #define IEnumITfCompositionView_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
6739 #else
6740 /*** IUnknown methods ***/
6741 static FORCEINLINE HRESULT IEnumITfCompositionView_QueryInterface(IEnumITfCompositionView* This,REFIID riid,void **ppvObject) {
6742     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6743 }
6744 static FORCEINLINE ULONG IEnumITfCompositionView_AddRef(IEnumITfCompositionView* This) {
6745     return This->lpVtbl->AddRef(This);
6746 }
6747 static FORCEINLINE ULONG IEnumITfCompositionView_Release(IEnumITfCompositionView* This) {
6748     return This->lpVtbl->Release(This);
6749 }
6750 /*** IEnumITfCompositionView methods ***/
6751 static FORCEINLINE HRESULT IEnumITfCompositionView_Clone(IEnumITfCompositionView* This,IEnumITfCompositionView **ppEnum) {
6752     return This->lpVtbl->Clone(This,ppEnum);
6753 }
6754 static FORCEINLINE HRESULT IEnumITfCompositionView_Next(IEnumITfCompositionView* This,ULONG ulCount,ITfCompositionView **rgCompositionView,ULONG *pcFetched) {
6755     return This->lpVtbl->Next(This,ulCount,rgCompositionView,pcFetched);
6756 }
6757 static FORCEINLINE HRESULT IEnumITfCompositionView_Reset(IEnumITfCompositionView* This) {
6758     return This->lpVtbl->Reset(This);
6759 }
6760 static FORCEINLINE HRESULT IEnumITfCompositionView_Skip(IEnumITfCompositionView* This,ULONG ulCount) {
6761     return This->lpVtbl->Skip(This,ulCount);
6762 }
6763 #endif
6764 #endif
6765 
6766 #endif
6767 
6768 
6769 #endif  /* __IEnumITfCompositionView_INTERFACE_DEFINED__ */
6770 
6771 /*****************************************************************************
6772  * ITfComposition interface
6773  */
6774 #ifndef __ITfComposition_INTERFACE_DEFINED__
6775 #define __ITfComposition_INTERFACE_DEFINED__
6776 
6777 DEFINE_GUID(IID_ITfComposition, 0x20168d64, 0x5a8f, 0x4a5a, 0xb7,0xbd, 0xcf,0xa2,0x9f,0x4d,0x0f,0xd9);
6778 #if defined(__cplusplus) && !defined(CINTERFACE)
6779 MIDL_INTERFACE("20168d64-5a8f-4a5a-b7bd-cfa29f4d0fd9")
6780 ITfComposition : public IUnknown
6781 {
6782     virtual HRESULT STDMETHODCALLTYPE GetRange(
6783         ITfRange **ppRange) = 0;
6784 
6785     virtual HRESULT STDMETHODCALLTYPE ShiftStart(
6786         TfEditCookie ecWrite,
6787         ITfRange *pNewStart) = 0;
6788 
6789     virtual HRESULT STDMETHODCALLTYPE ShiftEnd(
6790         TfEditCookie ecWrite,
6791         ITfRange *pNewEnd) = 0;
6792 
6793     virtual HRESULT STDMETHODCALLTYPE EndComposition(
6794         TfEditCookie ecWrite) = 0;
6795 
6796 };
6797 #ifdef __CRT_UUID_DECL
6798 __CRT_UUID_DECL(ITfComposition, 0x20168d64, 0x5a8f, 0x4a5a, 0xb7,0xbd, 0xcf,0xa2,0x9f,0x4d,0x0f,0xd9)
6799 #endif
6800 #else
6801 typedef struct ITfCompositionVtbl {
6802     BEGIN_INTERFACE
6803 
6804     /*** IUnknown methods ***/
6805     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6806         ITfComposition *This,
6807         REFIID riid,
6808         void **ppvObject);
6809 
6810     ULONG (STDMETHODCALLTYPE *AddRef)(
6811         ITfComposition *This);
6812 
6813     ULONG (STDMETHODCALLTYPE *Release)(
6814         ITfComposition *This);
6815 
6816     /*** ITfComposition methods ***/
6817     HRESULT (STDMETHODCALLTYPE *GetRange)(
6818         ITfComposition *This,
6819         ITfRange **ppRange);
6820 
6821     HRESULT (STDMETHODCALLTYPE *ShiftStart)(
6822         ITfComposition *This,
6823         TfEditCookie ecWrite,
6824         ITfRange *pNewStart);
6825 
6826     HRESULT (STDMETHODCALLTYPE *ShiftEnd)(
6827         ITfComposition *This,
6828         TfEditCookie ecWrite,
6829         ITfRange *pNewEnd);
6830 
6831     HRESULT (STDMETHODCALLTYPE *EndComposition)(
6832         ITfComposition *This,
6833         TfEditCookie ecWrite);
6834 
6835     END_INTERFACE
6836 } ITfCompositionVtbl;
6837 
6838 interface ITfComposition {
6839     CONST_VTBL ITfCompositionVtbl* lpVtbl;
6840 };
6841 
6842 #ifdef COBJMACROS
6843 #ifndef WIDL_C_INLINE_WRAPPERS
6844 /*** IUnknown methods ***/
6845 #define ITfComposition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6846 #define ITfComposition_AddRef(This) (This)->lpVtbl->AddRef(This)
6847 #define ITfComposition_Release(This) (This)->lpVtbl->Release(This)
6848 /*** ITfComposition methods ***/
6849 #define ITfComposition_GetRange(This,ppRange) (This)->lpVtbl->GetRange(This,ppRange)
6850 #define ITfComposition_ShiftStart(This,ecWrite,pNewStart) (This)->lpVtbl->ShiftStart(This,ecWrite,pNewStart)
6851 #define ITfComposition_ShiftEnd(This,ecWrite,pNewEnd) (This)->lpVtbl->ShiftEnd(This,ecWrite,pNewEnd)
6852 #define ITfComposition_EndComposition(This,ecWrite) (This)->lpVtbl->EndComposition(This,ecWrite)
6853 #else
6854 /*** IUnknown methods ***/
6855 static FORCEINLINE HRESULT ITfComposition_QueryInterface(ITfComposition* This,REFIID riid,void **ppvObject) {
6856     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6857 }
6858 static FORCEINLINE ULONG ITfComposition_AddRef(ITfComposition* This) {
6859     return This->lpVtbl->AddRef(This);
6860 }
6861 static FORCEINLINE ULONG ITfComposition_Release(ITfComposition* This) {
6862     return This->lpVtbl->Release(This);
6863 }
6864 /*** ITfComposition methods ***/
6865 static FORCEINLINE HRESULT ITfComposition_GetRange(ITfComposition* This,ITfRange **ppRange) {
6866     return This->lpVtbl->GetRange(This,ppRange);
6867 }
6868 static FORCEINLINE HRESULT ITfComposition_ShiftStart(ITfComposition* This,TfEditCookie ecWrite,ITfRange *pNewStart) {
6869     return This->lpVtbl->ShiftStart(This,ecWrite,pNewStart);
6870 }
6871 static FORCEINLINE HRESULT ITfComposition_ShiftEnd(ITfComposition* This,TfEditCookie ecWrite,ITfRange *pNewEnd) {
6872     return This->lpVtbl->ShiftEnd(This,ecWrite,pNewEnd);
6873 }
6874 static FORCEINLINE HRESULT ITfComposition_EndComposition(ITfComposition* This,TfEditCookie ecWrite) {
6875     return This->lpVtbl->EndComposition(This,ecWrite);
6876 }
6877 #endif
6878 #endif
6879 
6880 #endif
6881 
6882 
6883 #endif  /* __ITfComposition_INTERFACE_DEFINED__ */
6884 
6885 /*****************************************************************************
6886  * ITfCompositionSink interface
6887  */
6888 #ifndef __ITfCompositionSink_INTERFACE_DEFINED__
6889 #define __ITfCompositionSink_INTERFACE_DEFINED__
6890 
6891 DEFINE_GUID(IID_ITfCompositionSink, 0xa781718c, 0x579a, 0x4b15, 0xa2,0x80, 0x32,0xb8,0x57,0x7a,0xcc,0x5e);
6892 #if defined(__cplusplus) && !defined(CINTERFACE)
6893 MIDL_INTERFACE("a781718c-579a-4b15-a280-32b8577acc5e")
6894 ITfCompositionSink : public IUnknown
6895 {
6896     virtual HRESULT STDMETHODCALLTYPE OnCompositionTerminated(
6897         TfEditCookie ecWrite,
6898         ITfComposition *pComposition) = 0;
6899 
6900 };
6901 #ifdef __CRT_UUID_DECL
6902 __CRT_UUID_DECL(ITfCompositionSink, 0xa781718c, 0x579a, 0x4b15, 0xa2,0x80, 0x32,0xb8,0x57,0x7a,0xcc,0x5e)
6903 #endif
6904 #else
6905 typedef struct ITfCompositionSinkVtbl {
6906     BEGIN_INTERFACE
6907 
6908     /*** IUnknown methods ***/
6909     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6910         ITfCompositionSink *This,
6911         REFIID riid,
6912         void **ppvObject);
6913 
6914     ULONG (STDMETHODCALLTYPE *AddRef)(
6915         ITfCompositionSink *This);
6916 
6917     ULONG (STDMETHODCALLTYPE *Release)(
6918         ITfCompositionSink *This);
6919 
6920     /*** ITfCompositionSink methods ***/
6921     HRESULT (STDMETHODCALLTYPE *OnCompositionTerminated)(
6922         ITfCompositionSink *This,
6923         TfEditCookie ecWrite,
6924         ITfComposition *pComposition);
6925 
6926     END_INTERFACE
6927 } ITfCompositionSinkVtbl;
6928 
6929 interface ITfCompositionSink {
6930     CONST_VTBL ITfCompositionSinkVtbl* lpVtbl;
6931 };
6932 
6933 #ifdef COBJMACROS
6934 #ifndef WIDL_C_INLINE_WRAPPERS
6935 /*** IUnknown methods ***/
6936 #define ITfCompositionSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6937 #define ITfCompositionSink_AddRef(This) (This)->lpVtbl->AddRef(This)
6938 #define ITfCompositionSink_Release(This) (This)->lpVtbl->Release(This)
6939 /*** ITfCompositionSink methods ***/
6940 #define ITfCompositionSink_OnCompositionTerminated(This,ecWrite,pComposition) (This)->lpVtbl->OnCompositionTerminated(This,ecWrite,pComposition)
6941 #else
6942 /*** IUnknown methods ***/
6943 static FORCEINLINE HRESULT ITfCompositionSink_QueryInterface(ITfCompositionSink* This,REFIID riid,void **ppvObject) {
6944     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6945 }
6946 static FORCEINLINE ULONG ITfCompositionSink_AddRef(ITfCompositionSink* This) {
6947     return This->lpVtbl->AddRef(This);
6948 }
6949 static FORCEINLINE ULONG ITfCompositionSink_Release(ITfCompositionSink* This) {
6950     return This->lpVtbl->Release(This);
6951 }
6952 /*** ITfCompositionSink methods ***/
6953 static FORCEINLINE HRESULT ITfCompositionSink_OnCompositionTerminated(ITfCompositionSink* This,TfEditCookie ecWrite,ITfComposition *pComposition) {
6954     return This->lpVtbl->OnCompositionTerminated(This,ecWrite,pComposition);
6955 }
6956 #endif
6957 #endif
6958 
6959 #endif
6960 
6961 
6962 #endif  /* __ITfCompositionSink_INTERFACE_DEFINED__ */
6963 
6964 /*****************************************************************************
6965  * ITfContextComposition interface
6966  */
6967 #ifndef __ITfContextComposition_INTERFACE_DEFINED__
6968 #define __ITfContextComposition_INTERFACE_DEFINED__
6969 
6970 DEFINE_GUID(IID_ITfContextComposition, 0xd40c8aae, 0xac92, 0x4fc7, 0x9a,0x11, 0x0e,0xe0,0xe2,0x3a,0xa3,0x9b);
6971 #if defined(__cplusplus) && !defined(CINTERFACE)
6972 MIDL_INTERFACE("d40c8aae-ac92-4fc7-9a11-0ee0e23aa39b")
6973 ITfContextComposition : public IUnknown
6974 {
6975     virtual HRESULT STDMETHODCALLTYPE StartComposition(
6976         TfEditCookie ecWrite,
6977         ITfRange *pCompositionRange,
6978         ITfCompositionSink *pSink,
6979         ITfComposition **ppComposition) = 0;
6980 
6981     virtual HRESULT STDMETHODCALLTYPE EnumCompositions(
6982         IEnumITfCompositionView **ppEnum) = 0;
6983 
6984     virtual HRESULT STDMETHODCALLTYPE FindComposition(
6985         TfEditCookie ecRead,
6986         ITfRange *pTestRange,
6987         IEnumITfCompositionView **ppEnum) = 0;
6988 
6989     virtual HRESULT STDMETHODCALLTYPE TakeOwnership(
6990         TfEditCookie ecWrite,
6991         ITfCompositionView *pComposition,
6992         ITfCompositionSink *pSink,
6993         ITfComposition **ppComposition) = 0;
6994 
6995 };
6996 #ifdef __CRT_UUID_DECL
6997 __CRT_UUID_DECL(ITfContextComposition, 0xd40c8aae, 0xac92, 0x4fc7, 0x9a,0x11, 0x0e,0xe0,0xe2,0x3a,0xa3,0x9b)
6998 #endif
6999 #else
7000 typedef struct ITfContextCompositionVtbl {
7001     BEGIN_INTERFACE
7002 
7003     /*** IUnknown methods ***/
7004     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7005         ITfContextComposition *This,
7006         REFIID riid,
7007         void **ppvObject);
7008 
7009     ULONG (STDMETHODCALLTYPE *AddRef)(
7010         ITfContextComposition *This);
7011 
7012     ULONG (STDMETHODCALLTYPE *Release)(
7013         ITfContextComposition *This);
7014 
7015     /*** ITfContextComposition methods ***/
7016     HRESULT (STDMETHODCALLTYPE *StartComposition)(
7017         ITfContextComposition *This,
7018         TfEditCookie ecWrite,
7019         ITfRange *pCompositionRange,
7020         ITfCompositionSink *pSink,
7021         ITfComposition **ppComposition);
7022 
7023     HRESULT (STDMETHODCALLTYPE *EnumCompositions)(
7024         ITfContextComposition *This,
7025         IEnumITfCompositionView **ppEnum);
7026 
7027     HRESULT (STDMETHODCALLTYPE *FindComposition)(
7028         ITfContextComposition *This,
7029         TfEditCookie ecRead,
7030         ITfRange *pTestRange,
7031         IEnumITfCompositionView **ppEnum);
7032 
7033     HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
7034         ITfContextComposition *This,
7035         TfEditCookie ecWrite,
7036         ITfCompositionView *pComposition,
7037         ITfCompositionSink *pSink,
7038         ITfComposition **ppComposition);
7039 
7040     END_INTERFACE
7041 } ITfContextCompositionVtbl;
7042 
7043 interface ITfContextComposition {
7044     CONST_VTBL ITfContextCompositionVtbl* lpVtbl;
7045 };
7046 
7047 #ifdef COBJMACROS
7048 #ifndef WIDL_C_INLINE_WRAPPERS
7049 /*** IUnknown methods ***/
7050 #define ITfContextComposition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7051 #define ITfContextComposition_AddRef(This) (This)->lpVtbl->AddRef(This)
7052 #define ITfContextComposition_Release(This) (This)->lpVtbl->Release(This)
7053 /*** ITfContextComposition methods ***/
7054 #define ITfContextComposition_StartComposition(This,ecWrite,pCompositionRange,pSink,ppComposition) (This)->lpVtbl->StartComposition(This,ecWrite,pCompositionRange,pSink,ppComposition)
7055 #define ITfContextComposition_EnumCompositions(This,ppEnum) (This)->lpVtbl->EnumCompositions(This,ppEnum)
7056 #define ITfContextComposition_FindComposition(This,ecRead,pTestRange,ppEnum) (This)->lpVtbl->FindComposition(This,ecRead,pTestRange,ppEnum)
7057 #define ITfContextComposition_TakeOwnership(This,ecWrite,pComposition,pSink,ppComposition) (This)->lpVtbl->TakeOwnership(This,ecWrite,pComposition,pSink,ppComposition)
7058 #else
7059 /*** IUnknown methods ***/
7060 static FORCEINLINE HRESULT ITfContextComposition_QueryInterface(ITfContextComposition* This,REFIID riid,void **ppvObject) {
7061     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7062 }
7063 static FORCEINLINE ULONG ITfContextComposition_AddRef(ITfContextComposition* This) {
7064     return This->lpVtbl->AddRef(This);
7065 }
7066 static FORCEINLINE ULONG ITfContextComposition_Release(ITfContextComposition* This) {
7067     return This->lpVtbl->Release(This);
7068 }
7069 /*** ITfContextComposition methods ***/
7070 static FORCEINLINE HRESULT ITfContextComposition_StartComposition(ITfContextComposition* This,TfEditCookie ecWrite,ITfRange *pCompositionRange,ITfCompositionSink *pSink,ITfComposition **ppComposition) {
7071     return This->lpVtbl->StartComposition(This,ecWrite,pCompositionRange,pSink,ppComposition);
7072 }
7073 static FORCEINLINE HRESULT ITfContextComposition_EnumCompositions(ITfContextComposition* This,IEnumITfCompositionView **ppEnum) {
7074     return This->lpVtbl->EnumCompositions(This,ppEnum);
7075 }
7076 static FORCEINLINE HRESULT ITfContextComposition_FindComposition(ITfContextComposition* This,TfEditCookie ecRead,ITfRange *pTestRange,IEnumITfCompositionView **ppEnum) {
7077     return This->lpVtbl->FindComposition(This,ecRead,pTestRange,ppEnum);
7078 }
7079 static FORCEINLINE HRESULT ITfContextComposition_TakeOwnership(ITfContextComposition* This,TfEditCookie ecWrite,ITfCompositionView *pComposition,ITfCompositionSink *pSink,ITfComposition **ppComposition) {
7080     return This->lpVtbl->TakeOwnership(This,ecWrite,pComposition,pSink,ppComposition);
7081 }
7082 #endif
7083 #endif
7084 
7085 #endif
7086 
7087 
7088 #endif  /* __ITfContextComposition_INTERFACE_DEFINED__ */
7089 
7090 /*****************************************************************************
7091  * ITfContextOwnerCompositionServices interface
7092  */
7093 #ifndef __ITfContextOwnerCompositionServices_INTERFACE_DEFINED__
7094 #define __ITfContextOwnerCompositionServices_INTERFACE_DEFINED__
7095 
7096 DEFINE_GUID(IID_ITfContextOwnerCompositionServices, 0x86462810, 0x593b, 0x4916, 0x97,0x64, 0x19,0xc0,0x8e,0x9c,0xe1,0x10);
7097 #if defined(__cplusplus) && !defined(CINTERFACE)
7098 MIDL_INTERFACE("86462810-593b-4916-9764-19c08e9ce110")
7099 ITfContextOwnerCompositionServices : public ITfContextComposition
7100 {
7101     virtual HRESULT STDMETHODCALLTYPE TerminateComposition(
7102         ITfCompositionView *pComposition) = 0;
7103 
7104 };
7105 #ifdef __CRT_UUID_DECL
7106 __CRT_UUID_DECL(ITfContextOwnerCompositionServices, 0x86462810, 0x593b, 0x4916, 0x97,0x64, 0x19,0xc0,0x8e,0x9c,0xe1,0x10)
7107 #endif
7108 #else
7109 typedef struct ITfContextOwnerCompositionServicesVtbl {
7110     BEGIN_INTERFACE
7111 
7112     /*** IUnknown methods ***/
7113     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7114         ITfContextOwnerCompositionServices *This,
7115         REFIID riid,
7116         void **ppvObject);
7117 
7118     ULONG (STDMETHODCALLTYPE *AddRef)(
7119         ITfContextOwnerCompositionServices *This);
7120 
7121     ULONG (STDMETHODCALLTYPE *Release)(
7122         ITfContextOwnerCompositionServices *This);
7123 
7124     /*** ITfContextComposition methods ***/
7125     HRESULT (STDMETHODCALLTYPE *StartComposition)(
7126         ITfContextOwnerCompositionServices *This,
7127         TfEditCookie ecWrite,
7128         ITfRange *pCompositionRange,
7129         ITfCompositionSink *pSink,
7130         ITfComposition **ppComposition);
7131 
7132     HRESULT (STDMETHODCALLTYPE *EnumCompositions)(
7133         ITfContextOwnerCompositionServices *This,
7134         IEnumITfCompositionView **ppEnum);
7135 
7136     HRESULT (STDMETHODCALLTYPE *FindComposition)(
7137         ITfContextOwnerCompositionServices *This,
7138         TfEditCookie ecRead,
7139         ITfRange *pTestRange,
7140         IEnumITfCompositionView **ppEnum);
7141 
7142     HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
7143         ITfContextOwnerCompositionServices *This,
7144         TfEditCookie ecWrite,
7145         ITfCompositionView *pComposition,
7146         ITfCompositionSink *pSink,
7147         ITfComposition **ppComposition);
7148 
7149     /*** ITfContextOwnerCompositionServices methods ***/
7150     HRESULT (STDMETHODCALLTYPE *TerminateComposition)(
7151         ITfContextOwnerCompositionServices *This,
7152         ITfCompositionView *pComposition);
7153 
7154     END_INTERFACE
7155 } ITfContextOwnerCompositionServicesVtbl;
7156 
7157 interface ITfContextOwnerCompositionServices {
7158     CONST_VTBL ITfContextOwnerCompositionServicesVtbl* lpVtbl;
7159 };
7160 
7161 #ifdef COBJMACROS
7162 #ifndef WIDL_C_INLINE_WRAPPERS
7163 /*** IUnknown methods ***/
7164 #define ITfContextOwnerCompositionServices_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7165 #define ITfContextOwnerCompositionServices_AddRef(This) (This)->lpVtbl->AddRef(This)
7166 #define ITfContextOwnerCompositionServices_Release(This) (This)->lpVtbl->Release(This)
7167 /*** ITfContextComposition methods ***/
7168 #define ITfContextOwnerCompositionServices_StartComposition(This,ecWrite,pCompositionRange,pSink,ppComposition) (This)->lpVtbl->StartComposition(This,ecWrite,pCompositionRange,pSink,ppComposition)
7169 #define ITfContextOwnerCompositionServices_EnumCompositions(This,ppEnum) (This)->lpVtbl->EnumCompositions(This,ppEnum)
7170 #define ITfContextOwnerCompositionServices_FindComposition(This,ecRead,pTestRange,ppEnum) (This)->lpVtbl->FindComposition(This,ecRead,pTestRange,ppEnum)
7171 #define ITfContextOwnerCompositionServices_TakeOwnership(This,ecWrite,pComposition,pSink,ppComposition) (This)->lpVtbl->TakeOwnership(This,ecWrite,pComposition,pSink,ppComposition)
7172 /*** ITfContextOwnerCompositionServices methods ***/
7173 #define ITfContextOwnerCompositionServices_TerminateComposition(This,pComposition) (This)->lpVtbl->TerminateComposition(This,pComposition)
7174 #else
7175 /*** IUnknown methods ***/
7176 static FORCEINLINE HRESULT ITfContextOwnerCompositionServices_QueryInterface(ITfContextOwnerCompositionServices* This,REFIID riid,void **ppvObject) {
7177     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7178 }
7179 static FORCEINLINE ULONG ITfContextOwnerCompositionServices_AddRef(ITfContextOwnerCompositionServices* This) {
7180     return This->lpVtbl->AddRef(This);
7181 }
7182 static FORCEINLINE ULONG ITfContextOwnerCompositionServices_Release(ITfContextOwnerCompositionServices* This) {
7183     return This->lpVtbl->Release(This);
7184 }
7185 /*** ITfContextComposition methods ***/
7186 static FORCEINLINE HRESULT ITfContextOwnerCompositionServices_StartComposition(ITfContextOwnerCompositionServices* This,TfEditCookie ecWrite,ITfRange *pCompositionRange,ITfCompositionSink *pSink,ITfComposition **ppComposition) {
7187     return This->lpVtbl->StartComposition(This,ecWrite,pCompositionRange,pSink,ppComposition);
7188 }
7189 static FORCEINLINE HRESULT ITfContextOwnerCompositionServices_EnumCompositions(ITfContextOwnerCompositionServices* This,IEnumITfCompositionView **ppEnum) {
7190     return This->lpVtbl->EnumCompositions(This,ppEnum);
7191 }
7192 static FORCEINLINE HRESULT ITfContextOwnerCompositionServices_FindComposition(ITfContextOwnerCompositionServices* This,TfEditCookie ecRead,ITfRange *pTestRange,IEnumITfCompositionView **ppEnum) {
7193     return This->lpVtbl->FindComposition(This,ecRead,pTestRange,ppEnum);
7194 }
7195 static FORCEINLINE HRESULT ITfContextOwnerCompositionServices_TakeOwnership(ITfContextOwnerCompositionServices* This,TfEditCookie ecWrite,ITfCompositionView *pComposition,ITfCompositionSink *pSink,ITfComposition **ppComposition) {
7196     return This->lpVtbl->TakeOwnership(This,ecWrite,pComposition,pSink,ppComposition);
7197 }
7198 /*** ITfContextOwnerCompositionServices methods ***/
7199 static FORCEINLINE HRESULT ITfContextOwnerCompositionServices_TerminateComposition(ITfContextOwnerCompositionServices* This,ITfCompositionView *pComposition) {
7200     return This->lpVtbl->TerminateComposition(This,pComposition);
7201 }
7202 #endif
7203 #endif
7204 
7205 #endif
7206 
7207 
7208 #endif  /* __ITfContextOwnerCompositionServices_INTERFACE_DEFINED__ */
7209 
7210 /*****************************************************************************
7211  * ITfPersistentPropertyLoaderACP interface
7212  */
7213 #ifndef __ITfPersistentPropertyLoaderACP_INTERFACE_DEFINED__
7214 #define __ITfPersistentPropertyLoaderACP_INTERFACE_DEFINED__
7215 
7216 DEFINE_GUID(IID_ITfPersistentPropertyLoaderACP, 0x4ef89150, 0x0807, 0x11d3, 0x8d,0xf0, 0x00,0x10,0x5a,0x27,0x99,0xb5);
7217 #if defined(__cplusplus) && !defined(CINTERFACE)
7218 MIDL_INTERFACE("4ef89150-0807-11d3-8df0-00105a2799b5")
7219 ITfPersistentPropertyLoaderACP : public IUnknown
7220 {
7221     virtual HRESULT STDMETHODCALLTYPE LoadProperty(
7222         const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
7223         IStream **ppStream) = 0;
7224 
7225 };
7226 #ifdef __CRT_UUID_DECL
7227 __CRT_UUID_DECL(ITfPersistentPropertyLoaderACP, 0x4ef89150, 0x0807, 0x11d3, 0x8d,0xf0, 0x00,0x10,0x5a,0x27,0x99,0xb5)
7228 #endif
7229 #else
7230 typedef struct ITfPersistentPropertyLoaderACPVtbl {
7231     BEGIN_INTERFACE
7232 
7233     /*** IUnknown methods ***/
7234     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7235         ITfPersistentPropertyLoaderACP *This,
7236         REFIID riid,
7237         void **ppvObject);
7238 
7239     ULONG (STDMETHODCALLTYPE *AddRef)(
7240         ITfPersistentPropertyLoaderACP *This);
7241 
7242     ULONG (STDMETHODCALLTYPE *Release)(
7243         ITfPersistentPropertyLoaderACP *This);
7244 
7245     /*** ITfPersistentPropertyLoaderACP methods ***/
7246     HRESULT (STDMETHODCALLTYPE *LoadProperty)(
7247         ITfPersistentPropertyLoaderACP *This,
7248         const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
7249         IStream **ppStream);
7250 
7251     END_INTERFACE
7252 } ITfPersistentPropertyLoaderACPVtbl;
7253 
7254 interface ITfPersistentPropertyLoaderACP {
7255     CONST_VTBL ITfPersistentPropertyLoaderACPVtbl* lpVtbl;
7256 };
7257 
7258 #ifdef COBJMACROS
7259 #ifndef WIDL_C_INLINE_WRAPPERS
7260 /*** IUnknown methods ***/
7261 #define ITfPersistentPropertyLoaderACP_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7262 #define ITfPersistentPropertyLoaderACP_AddRef(This) (This)->lpVtbl->AddRef(This)
7263 #define ITfPersistentPropertyLoaderACP_Release(This) (This)->lpVtbl->Release(This)
7264 /*** ITfPersistentPropertyLoaderACP methods ***/
7265 #define ITfPersistentPropertyLoaderACP_LoadProperty(This,pHdr,ppStream) (This)->lpVtbl->LoadProperty(This,pHdr,ppStream)
7266 #else
7267 /*** IUnknown methods ***/
7268 static FORCEINLINE HRESULT ITfPersistentPropertyLoaderACP_QueryInterface(ITfPersistentPropertyLoaderACP* This,REFIID riid,void **ppvObject) {
7269     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7270 }
7271 static FORCEINLINE ULONG ITfPersistentPropertyLoaderACP_AddRef(ITfPersistentPropertyLoaderACP* This) {
7272     return This->lpVtbl->AddRef(This);
7273 }
7274 static FORCEINLINE ULONG ITfPersistentPropertyLoaderACP_Release(ITfPersistentPropertyLoaderACP* This) {
7275     return This->lpVtbl->Release(This);
7276 }
7277 /*** ITfPersistentPropertyLoaderACP methods ***/
7278 static FORCEINLINE HRESULT ITfPersistentPropertyLoaderACP_LoadProperty(ITfPersistentPropertyLoaderACP* This,const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,IStream **ppStream) {
7279     return This->lpVtbl->LoadProperty(This,pHdr,ppStream);
7280 }
7281 #endif
7282 #endif
7283 
7284 #endif
7285 
7286 
7287 #endif  /* __ITfPersistentPropertyLoaderACP_INTERFACE_DEFINED__ */
7288 
7289 /*****************************************************************************
7290  * ITfContextOwnerServices interface
7291  */
7292 #ifndef __ITfContextOwnerServices_INTERFACE_DEFINED__
7293 #define __ITfContextOwnerServices_INTERFACE_DEFINED__
7294 
7295 DEFINE_GUID(IID_ITfContextOwnerServices, 0xb23eb630, 0x3e1c, 0x11d3, 0xa7,0x45, 0x00,0x50,0x04,0x0a,0xb4,0x07);
7296 #if defined(__cplusplus) && !defined(CINTERFACE)
7297 MIDL_INTERFACE("b23eb630-3e1c-11d3-a745-0050040ab407")
7298 ITfContextOwnerServices : public IUnknown
7299 {
7300     virtual HRESULT STDMETHODCALLTYPE OnLayoutChange(
7301         ) = 0;
7302 
7303     virtual HRESULT STDMETHODCALLTYPE OnStatusChange(
7304         DWORD dwFlags) = 0;
7305 
7306     virtual HRESULT STDMETHODCALLTYPE OnAttributeChange(
7307         REFGUID rguidAttribute) = 0;
7308 
7309     virtual HRESULT STDMETHODCALLTYPE Serialize(
7310         ITfProperty *pProp,
7311         ITfRange *pRange,
7312         TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
7313         IStream *pStream) = 0;
7314 
7315     virtual HRESULT STDMETHODCALLTYPE Unserialize(
7316         ITfProperty *pProp,
7317         const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
7318         IStream *pStream,
7319         ITfPersistentPropertyLoaderACP *pLoader) = 0;
7320 
7321     virtual HRESULT STDMETHODCALLTYPE ForceLoadProperty(
7322         ITfProperty *pProp) = 0;
7323 
7324     virtual HRESULT STDMETHODCALLTYPE CreateRange(
7325         LONG acpStart,
7326         LONG acpEnd,
7327         ITfRangeACP **ppRange) = 0;
7328 
7329 };
7330 #ifdef __CRT_UUID_DECL
7331 __CRT_UUID_DECL(ITfContextOwnerServices, 0xb23eb630, 0x3e1c, 0x11d3, 0xa7,0x45, 0x00,0x50,0x04,0x0a,0xb4,0x07)
7332 #endif
7333 #else
7334 typedef struct ITfContextOwnerServicesVtbl {
7335     BEGIN_INTERFACE
7336 
7337     /*** IUnknown methods ***/
7338     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7339         ITfContextOwnerServices *This,
7340         REFIID riid,
7341         void **ppvObject);
7342 
7343     ULONG (STDMETHODCALLTYPE *AddRef)(
7344         ITfContextOwnerServices *This);
7345 
7346     ULONG (STDMETHODCALLTYPE *Release)(
7347         ITfContextOwnerServices *This);
7348 
7349     /*** ITfContextOwnerServices methods ***/
7350     HRESULT (STDMETHODCALLTYPE *OnLayoutChange)(
7351         ITfContextOwnerServices *This);
7352 
7353     HRESULT (STDMETHODCALLTYPE *OnStatusChange)(
7354         ITfContextOwnerServices *This,
7355         DWORD dwFlags);
7356 
7357     HRESULT (STDMETHODCALLTYPE *OnAttributeChange)(
7358         ITfContextOwnerServices *This,
7359         REFGUID rguidAttribute);
7360 
7361     HRESULT (STDMETHODCALLTYPE *Serialize)(
7362         ITfContextOwnerServices *This,
7363         ITfProperty *pProp,
7364         ITfRange *pRange,
7365         TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
7366         IStream *pStream);
7367 
7368     HRESULT (STDMETHODCALLTYPE *Unserialize)(
7369         ITfContextOwnerServices *This,
7370         ITfProperty *pProp,
7371         const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
7372         IStream *pStream,
7373         ITfPersistentPropertyLoaderACP *pLoader);
7374 
7375     HRESULT (STDMETHODCALLTYPE *ForceLoadProperty)(
7376         ITfContextOwnerServices *This,
7377         ITfProperty *pProp);
7378 
7379     HRESULT (STDMETHODCALLTYPE *CreateRange)(
7380         ITfContextOwnerServices *This,
7381         LONG acpStart,
7382         LONG acpEnd,
7383         ITfRangeACP **ppRange);
7384 
7385     END_INTERFACE
7386 } ITfContextOwnerServicesVtbl;
7387 
7388 interface ITfContextOwnerServices {
7389     CONST_VTBL ITfContextOwnerServicesVtbl* lpVtbl;
7390 };
7391 
7392 #ifdef COBJMACROS
7393 #ifndef WIDL_C_INLINE_WRAPPERS
7394 /*** IUnknown methods ***/
7395 #define ITfContextOwnerServices_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7396 #define ITfContextOwnerServices_AddRef(This) (This)->lpVtbl->AddRef(This)
7397 #define ITfContextOwnerServices_Release(This) (This)->lpVtbl->Release(This)
7398 /*** ITfContextOwnerServices methods ***/
7399 #define ITfContextOwnerServices_OnLayoutChange(This) (This)->lpVtbl->OnLayoutChange(This)
7400 #define ITfContextOwnerServices_OnStatusChange(This,dwFlags) (This)->lpVtbl->OnStatusChange(This,dwFlags)
7401 #define ITfContextOwnerServices_OnAttributeChange(This,rguidAttribute) (This)->lpVtbl->OnAttributeChange(This,rguidAttribute)
7402 #define ITfContextOwnerServices_Serialize(This,pProp,pRange,pHdr,pStream) (This)->lpVtbl->Serialize(This,pProp,pRange,pHdr,pStream)
7403 #define ITfContextOwnerServices_Unserialize(This,pProp,pHdr,pStream,pLoader) (This)->lpVtbl->Unserialize(This,pProp,pHdr,pStream,pLoader)
7404 #define ITfContextOwnerServices_ForceLoadProperty(This,pProp) (This)->lpVtbl->ForceLoadProperty(This,pProp)
7405 #define ITfContextOwnerServices_CreateRange(This,acpStart,acpEnd,ppRange) (This)->lpVtbl->CreateRange(This,acpStart,acpEnd,ppRange)
7406 #else
7407 /*** IUnknown methods ***/
7408 static FORCEINLINE HRESULT ITfContextOwnerServices_QueryInterface(ITfContextOwnerServices* This,REFIID riid,void **ppvObject) {
7409     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7410 }
7411 static FORCEINLINE ULONG ITfContextOwnerServices_AddRef(ITfContextOwnerServices* This) {
7412     return This->lpVtbl->AddRef(This);
7413 }
7414 static FORCEINLINE ULONG ITfContextOwnerServices_Release(ITfContextOwnerServices* This) {
7415     return This->lpVtbl->Release(This);
7416 }
7417 /*** ITfContextOwnerServices methods ***/
7418 static FORCEINLINE HRESULT ITfContextOwnerServices_OnLayoutChange(ITfContextOwnerServices* This) {
7419     return This->lpVtbl->OnLayoutChange(This);
7420 }
7421 static FORCEINLINE HRESULT ITfContextOwnerServices_OnStatusChange(ITfContextOwnerServices* This,DWORD dwFlags) {
7422     return This->lpVtbl->OnStatusChange(This,dwFlags);
7423 }
7424 static FORCEINLINE HRESULT ITfContextOwnerServices_OnAttributeChange(ITfContextOwnerServices* This,REFGUID rguidAttribute) {
7425     return This->lpVtbl->OnAttributeChange(This,rguidAttribute);
7426 }
7427 static FORCEINLINE HRESULT ITfContextOwnerServices_Serialize(ITfContextOwnerServices* This,ITfProperty *pProp,ITfRange *pRange,TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,IStream *pStream) {
7428     return This->lpVtbl->Serialize(This,pProp,pRange,pHdr,pStream);
7429 }
7430 static FORCEINLINE HRESULT ITfContextOwnerServices_Unserialize(ITfContextOwnerServices* This,ITfProperty *pProp,const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,IStream *pStream,ITfPersistentPropertyLoaderACP *pLoader) {
7431     return This->lpVtbl->Unserialize(This,pProp,pHdr,pStream,pLoader);
7432 }
7433 static FORCEINLINE HRESULT ITfContextOwnerServices_ForceLoadProperty(ITfContextOwnerServices* This,ITfProperty *pProp) {
7434     return This->lpVtbl->ForceLoadProperty(This,pProp);
7435 }
7436 static FORCEINLINE HRESULT ITfContextOwnerServices_CreateRange(ITfContextOwnerServices* This,LONG acpStart,LONG acpEnd,ITfRangeACP **ppRange) {
7437     return This->lpVtbl->CreateRange(This,acpStart,acpEnd,ppRange);
7438 }
7439 #endif
7440 #endif
7441 
7442 #endif
7443 
7444 
7445 #endif  /* __ITfContextOwnerServices_INTERFACE_DEFINED__ */
7446 
7447 /*****************************************************************************
7448  * ITfReadOnlyProperty interface
7449  */
7450 #ifndef __ITfReadOnlyProperty_INTERFACE_DEFINED__
7451 #define __ITfReadOnlyProperty_INTERFACE_DEFINED__
7452 
7453 DEFINE_GUID(IID_ITfReadOnlyProperty, 0x17d49a3d, 0xf8b8, 0x4b2f, 0xb2,0x54, 0x52,0x31,0x9d,0xd6,0x4c,0x53);
7454 #if defined(__cplusplus) && !defined(CINTERFACE)
7455 MIDL_INTERFACE("17d49a3d-f8b8-4b2f-b254-52319dd64c53")
7456 ITfReadOnlyProperty : public IUnknown
7457 {
7458     virtual HRESULT STDMETHODCALLTYPE GetType(
7459         GUID *pguid) = 0;
7460 
7461     virtual HRESULT STDMETHODCALLTYPE EnumRanges(
7462         TfEditCookie ec,
7463         IEnumTfRanges **ppEnum,
7464         ITfRange *pTargetRange) = 0;
7465 
7466     virtual HRESULT STDMETHODCALLTYPE GetValue(
7467         TfEditCookie ec,
7468         ITfRange *pRange,
7469         VARIANT *pvarValue) = 0;
7470 
7471     virtual HRESULT STDMETHODCALLTYPE GetContext(
7472         ITfContext **ppContext) = 0;
7473 
7474 };
7475 #ifdef __CRT_UUID_DECL
7476 __CRT_UUID_DECL(ITfReadOnlyProperty, 0x17d49a3d, 0xf8b8, 0x4b2f, 0xb2,0x54, 0x52,0x31,0x9d,0xd6,0x4c,0x53)
7477 #endif
7478 #else
7479 typedef struct ITfReadOnlyPropertyVtbl {
7480     BEGIN_INTERFACE
7481 
7482     /*** IUnknown methods ***/
7483     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7484         ITfReadOnlyProperty *This,
7485         REFIID riid,
7486         void **ppvObject);
7487 
7488     ULONG (STDMETHODCALLTYPE *AddRef)(
7489         ITfReadOnlyProperty *This);
7490 
7491     ULONG (STDMETHODCALLTYPE *Release)(
7492         ITfReadOnlyProperty *This);
7493 
7494     /*** ITfReadOnlyProperty methods ***/
7495     HRESULT (STDMETHODCALLTYPE *GetType)(
7496         ITfReadOnlyProperty *This,
7497         GUID *pguid);
7498 
7499     HRESULT (STDMETHODCALLTYPE *EnumRanges)(
7500         ITfReadOnlyProperty *This,
7501         TfEditCookie ec,
7502         IEnumTfRanges **ppEnum,
7503         ITfRange *pTargetRange);
7504 
7505     HRESULT (STDMETHODCALLTYPE *GetValue)(
7506         ITfReadOnlyProperty *This,
7507         TfEditCookie ec,
7508         ITfRange *pRange,
7509         VARIANT *pvarValue);
7510 
7511     HRESULT (STDMETHODCALLTYPE *GetContext)(
7512         ITfReadOnlyProperty *This,
7513         ITfContext **ppContext);
7514 
7515     END_INTERFACE
7516 } ITfReadOnlyPropertyVtbl;
7517 
7518 interface ITfReadOnlyProperty {
7519     CONST_VTBL ITfReadOnlyPropertyVtbl* lpVtbl;
7520 };
7521 
7522 #ifdef COBJMACROS
7523 #ifndef WIDL_C_INLINE_WRAPPERS
7524 /*** IUnknown methods ***/
7525 #define ITfReadOnlyProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7526 #define ITfReadOnlyProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
7527 #define ITfReadOnlyProperty_Release(This) (This)->lpVtbl->Release(This)
7528 /*** ITfReadOnlyProperty methods ***/
7529 #define ITfReadOnlyProperty_GetType(This,pguid) (This)->lpVtbl->GetType(This,pguid)
7530 #define ITfReadOnlyProperty_EnumRanges(This,ec,ppEnum,pTargetRange) (This)->lpVtbl->EnumRanges(This,ec,ppEnum,pTargetRange)
7531 #define ITfReadOnlyProperty_GetValue(This,ec,pRange,pvarValue) (This)->lpVtbl->GetValue(This,ec,pRange,pvarValue)
7532 #define ITfReadOnlyProperty_GetContext(This,ppContext) (This)->lpVtbl->GetContext(This,ppContext)
7533 #else
7534 /*** IUnknown methods ***/
7535 static FORCEINLINE HRESULT ITfReadOnlyProperty_QueryInterface(ITfReadOnlyProperty* This,REFIID riid,void **ppvObject) {
7536     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7537 }
7538 static FORCEINLINE ULONG ITfReadOnlyProperty_AddRef(ITfReadOnlyProperty* This) {
7539     return This->lpVtbl->AddRef(This);
7540 }
7541 static FORCEINLINE ULONG ITfReadOnlyProperty_Release(ITfReadOnlyProperty* This) {
7542     return This->lpVtbl->Release(This);
7543 }
7544 /*** ITfReadOnlyProperty methods ***/
7545 static FORCEINLINE HRESULT ITfReadOnlyProperty_GetType(ITfReadOnlyProperty* This,GUID *pguid) {
7546     return This->lpVtbl->GetType(This,pguid);
7547 }
7548 static FORCEINLINE HRESULT ITfReadOnlyProperty_EnumRanges(ITfReadOnlyProperty* This,TfEditCookie ec,IEnumTfRanges **ppEnum,ITfRange *pTargetRange) {
7549     return This->lpVtbl->EnumRanges(This,ec,ppEnum,pTargetRange);
7550 }
7551 static FORCEINLINE HRESULT ITfReadOnlyProperty_GetValue(ITfReadOnlyProperty* This,TfEditCookie ec,ITfRange *pRange,VARIANT *pvarValue) {
7552     return This->lpVtbl->GetValue(This,ec,pRange,pvarValue);
7553 }
7554 static FORCEINLINE HRESULT ITfReadOnlyProperty_GetContext(ITfReadOnlyProperty* This,ITfContext **ppContext) {
7555     return This->lpVtbl->GetContext(This,ppContext);
7556 }
7557 #endif
7558 #endif
7559 
7560 #endif
7561 
7562 
7563 #endif  /* __ITfReadOnlyProperty_INTERFACE_DEFINED__ */
7564 
7565 /*****************************************************************************
7566  * ITfProperty interface
7567  */
7568 #ifndef __ITfProperty_INTERFACE_DEFINED__
7569 #define __ITfProperty_INTERFACE_DEFINED__
7570 
7571 DEFINE_GUID(IID_ITfProperty, 0xe2449660, 0x9542, 0x11d2, 0xbf,0x46, 0x00,0x10,0x5a,0x27,0x99,0xb5);
7572 #if defined(__cplusplus) && !defined(CINTERFACE)
7573 MIDL_INTERFACE("e2449660-9542-11d2-bf46-00105a2799b5")
7574 ITfProperty : public ITfReadOnlyProperty
7575 {
7576     virtual HRESULT STDMETHODCALLTYPE FindRange(
7577         TfEditCookie ec,
7578         ITfRange *pRange,
7579         ITfRange **ppRange,
7580         TfAnchor aPos) = 0;
7581 
7582     virtual HRESULT STDMETHODCALLTYPE SetValueStore(
7583         TfEditCookie ec,
7584         ITfRange *pRange,
7585         ITfPropertyStore *pPropStore) = 0;
7586 
7587     virtual HRESULT STDMETHODCALLTYPE SetValue(
7588         TfEditCookie ec,
7589         ITfRange *pRange,
7590         const VARIANT *pvarValue) = 0;
7591 
7592     virtual HRESULT STDMETHODCALLTYPE Clear(
7593         TfEditCookie ec,
7594         ITfRange *pRange) = 0;
7595 
7596 };
7597 #ifdef __CRT_UUID_DECL
7598 __CRT_UUID_DECL(ITfProperty, 0xe2449660, 0x9542, 0x11d2, 0xbf,0x46, 0x00,0x10,0x5a,0x27,0x99,0xb5)
7599 #endif
7600 #else
7601 typedef struct ITfPropertyVtbl {
7602     BEGIN_INTERFACE
7603 
7604     /*** IUnknown methods ***/
7605     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7606         ITfProperty *This,
7607         REFIID riid,
7608         void **ppvObject);
7609 
7610     ULONG (STDMETHODCALLTYPE *AddRef)(
7611         ITfProperty *This);
7612 
7613     ULONG (STDMETHODCALLTYPE *Release)(
7614         ITfProperty *This);
7615 
7616     /*** ITfReadOnlyProperty methods ***/
7617     HRESULT (STDMETHODCALLTYPE *GetType)(
7618         ITfProperty *This,
7619         GUID *pguid);
7620 
7621     HRESULT (STDMETHODCALLTYPE *EnumRanges)(
7622         ITfProperty *This,
7623         TfEditCookie ec,
7624         IEnumTfRanges **ppEnum,
7625         ITfRange *pTargetRange);
7626 
7627     HRESULT (STDMETHODCALLTYPE *GetValue)(
7628         ITfProperty *This,
7629         TfEditCookie ec,
7630         ITfRange *pRange,
7631         VARIANT *pvarValue);
7632 
7633     HRESULT (STDMETHODCALLTYPE *GetContext)(
7634         ITfProperty *This,
7635         ITfContext **ppContext);
7636 
7637     /*** ITfProperty methods ***/
7638     HRESULT (STDMETHODCALLTYPE *FindRange)(
7639         ITfProperty *This,
7640         TfEditCookie ec,
7641         ITfRange *pRange,
7642         ITfRange **ppRange,
7643         TfAnchor aPos);
7644 
7645     HRESULT (STDMETHODCALLTYPE *SetValueStore)(
7646         ITfProperty *This,
7647         TfEditCookie ec,
7648         ITfRange *pRange,
7649         ITfPropertyStore *pPropStore);
7650 
7651     HRESULT (STDMETHODCALLTYPE *SetValue)(
7652         ITfProperty *This,
7653         TfEditCookie ec,
7654         ITfRange *pRange,
7655         const VARIANT *pvarValue);
7656 
7657     HRESULT (STDMETHODCALLTYPE *Clear)(
7658         ITfProperty *This,
7659         TfEditCookie ec,
7660         ITfRange *pRange);
7661 
7662     END_INTERFACE
7663 } ITfPropertyVtbl;
7664 
7665 interface ITfProperty {
7666     CONST_VTBL ITfPropertyVtbl* lpVtbl;
7667 };
7668 
7669 #ifdef COBJMACROS
7670 #ifndef WIDL_C_INLINE_WRAPPERS
7671 /*** IUnknown methods ***/
7672 #define ITfProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7673 #define ITfProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
7674 #define ITfProperty_Release(This) (This)->lpVtbl->Release(This)
7675 /*** ITfReadOnlyProperty methods ***/
7676 #define ITfProperty_GetType(This,pguid) (This)->lpVtbl->GetType(This,pguid)
7677 #define ITfProperty_EnumRanges(This,ec,ppEnum,pTargetRange) (This)->lpVtbl->EnumRanges(This,ec,ppEnum,pTargetRange)
7678 #define ITfProperty_GetValue(This,ec,pRange,pvarValue) (This)->lpVtbl->GetValue(This,ec,pRange,pvarValue)
7679 #define ITfProperty_GetContext(This,ppContext) (This)->lpVtbl->GetContext(This,ppContext)
7680 /*** ITfProperty methods ***/
7681 #define ITfProperty_FindRange(This,ec,pRange,ppRange,aPos) (This)->lpVtbl->FindRange(This,ec,pRange,ppRange,aPos)
7682 #define ITfProperty_SetValueStore(This,ec,pRange,pPropStore) (This)->lpVtbl->SetValueStore(This,ec,pRange,pPropStore)
7683 #define ITfProperty_SetValue(This,ec,pRange,pvarValue) (This)->lpVtbl->SetValue(This,ec,pRange,pvarValue)
7684 #define ITfProperty_Clear(This,ec,pRange) (This)->lpVtbl->Clear(This,ec,pRange)
7685 #else
7686 /*** IUnknown methods ***/
7687 static FORCEINLINE HRESULT ITfProperty_QueryInterface(ITfProperty* This,REFIID riid,void **ppvObject) {
7688     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7689 }
7690 static FORCEINLINE ULONG ITfProperty_AddRef(ITfProperty* This) {
7691     return This->lpVtbl->AddRef(This);
7692 }
7693 static FORCEINLINE ULONG ITfProperty_Release(ITfProperty* This) {
7694     return This->lpVtbl->Release(This);
7695 }
7696 /*** ITfReadOnlyProperty methods ***/
7697 static FORCEINLINE HRESULT ITfProperty_GetType(ITfProperty* This,GUID *pguid) {
7698     return This->lpVtbl->GetType(This,pguid);
7699 }
7700 static FORCEINLINE HRESULT ITfProperty_EnumRanges(ITfProperty* This,TfEditCookie ec,IEnumTfRanges **ppEnum,ITfRange *pTargetRange) {
7701     return This->lpVtbl->EnumRanges(This,ec,ppEnum,pTargetRange);
7702 }
7703 static FORCEINLINE HRESULT ITfProperty_GetValue(ITfProperty* This,TfEditCookie ec,ITfRange *pRange,VARIANT *pvarValue) {
7704     return This->lpVtbl->GetValue(This,ec,pRange,pvarValue);
7705 }
7706 static FORCEINLINE HRESULT ITfProperty_GetContext(ITfProperty* This,ITfContext **ppContext) {
7707     return This->lpVtbl->GetContext(This,ppContext);
7708 }
7709 /*** ITfProperty methods ***/
7710 static FORCEINLINE HRESULT ITfProperty_FindRange(ITfProperty* This,TfEditCookie ec,ITfRange *pRange,ITfRange **ppRange,TfAnchor aPos) {
7711     return This->lpVtbl->FindRange(This,ec,pRange,ppRange,aPos);
7712 }
7713 static FORCEINLINE HRESULT ITfProperty_SetValueStore(ITfProperty* This,TfEditCookie ec,ITfRange *pRange,ITfPropertyStore *pPropStore) {
7714     return This->lpVtbl->SetValueStore(This,ec,pRange,pPropStore);
7715 }
7716 static FORCEINLINE HRESULT ITfProperty_SetValue(ITfProperty* This,TfEditCookie ec,ITfRange *pRange,const VARIANT *pvarValue) {
7717     return This->lpVtbl->SetValue(This,ec,pRange,pvarValue);
7718 }
7719 static FORCEINLINE HRESULT ITfProperty_Clear(ITfProperty* This,TfEditCookie ec,ITfRange *pRange) {
7720     return This->lpVtbl->Clear(This,ec,pRange);
7721 }
7722 #endif
7723 #endif
7724 
7725 #endif
7726 
7727 
7728 #endif  /* __ITfProperty_INTERFACE_DEFINED__ */
7729 
7730 /*****************************************************************************
7731  * ITfCompartment interface
7732  */
7733 #ifndef __ITfCompartment_INTERFACE_DEFINED__
7734 #define __ITfCompartment_INTERFACE_DEFINED__
7735 
7736 DEFINE_GUID(IID_ITfCompartment, 0xbb08f7a9, 0x607a, 0x4384, 0x86,0x23, 0x05,0x68,0x92,0xb6,0x43,0x71);
7737 #if defined(__cplusplus) && !defined(CINTERFACE)
7738 MIDL_INTERFACE("bb08f7a9-607a-4384-8623-056892b64371")
7739 ITfCompartment : public IUnknown
7740 {
7741     virtual HRESULT STDMETHODCALLTYPE SetValue(
7742         TfClientId tid,
7743         const VARIANT *pvarValue) = 0;
7744 
7745     virtual HRESULT STDMETHODCALLTYPE GetValue(
7746         VARIANT *pvarValue) = 0;
7747 
7748 };
7749 #ifdef __CRT_UUID_DECL
7750 __CRT_UUID_DECL(ITfCompartment, 0xbb08f7a9, 0x607a, 0x4384, 0x86,0x23, 0x05,0x68,0x92,0xb6,0x43,0x71)
7751 #endif
7752 #else
7753 typedef struct ITfCompartmentVtbl {
7754     BEGIN_INTERFACE
7755 
7756     /*** IUnknown methods ***/
7757     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7758         ITfCompartment *This,
7759         REFIID riid,
7760         void **ppvObject);
7761 
7762     ULONG (STDMETHODCALLTYPE *AddRef)(
7763         ITfCompartment *This);
7764 
7765     ULONG (STDMETHODCALLTYPE *Release)(
7766         ITfCompartment *This);
7767 
7768     /*** ITfCompartment methods ***/
7769     HRESULT (STDMETHODCALLTYPE *SetValue)(
7770         ITfCompartment *This,
7771         TfClientId tid,
7772         const VARIANT *pvarValue);
7773 
7774     HRESULT (STDMETHODCALLTYPE *GetValue)(
7775         ITfCompartment *This,
7776         VARIANT *pvarValue);
7777 
7778     END_INTERFACE
7779 } ITfCompartmentVtbl;
7780 
7781 interface ITfCompartment {
7782     CONST_VTBL ITfCompartmentVtbl* lpVtbl;
7783 };
7784 
7785 #ifdef COBJMACROS
7786 #ifndef WIDL_C_INLINE_WRAPPERS
7787 /*** IUnknown methods ***/
7788 #define ITfCompartment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7789 #define ITfCompartment_AddRef(This) (This)->lpVtbl->AddRef(This)
7790 #define ITfCompartment_Release(This) (This)->lpVtbl->Release(This)
7791 /*** ITfCompartment methods ***/
7792 #define ITfCompartment_SetValue(This,tid,pvarValue) (This)->lpVtbl->SetValue(This,tid,pvarValue)
7793 #define ITfCompartment_GetValue(This,pvarValue) (This)->lpVtbl->GetValue(This,pvarValue)
7794 #else
7795 /*** IUnknown methods ***/
7796 static FORCEINLINE HRESULT ITfCompartment_QueryInterface(ITfCompartment* This,REFIID riid,void **ppvObject) {
7797     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7798 }
7799 static FORCEINLINE ULONG ITfCompartment_AddRef(ITfCompartment* This) {
7800     return This->lpVtbl->AddRef(This);
7801 }
7802 static FORCEINLINE ULONG ITfCompartment_Release(ITfCompartment* This) {
7803     return This->lpVtbl->Release(This);
7804 }
7805 /*** ITfCompartment methods ***/
7806 static FORCEINLINE HRESULT ITfCompartment_SetValue(ITfCompartment* This,TfClientId tid,const VARIANT *pvarValue) {
7807     return This->lpVtbl->SetValue(This,tid,pvarValue);
7808 }
7809 static FORCEINLINE HRESULT ITfCompartment_GetValue(ITfCompartment* This,VARIANT *pvarValue) {
7810     return This->lpVtbl->GetValue(This,pvarValue);
7811 }
7812 #endif
7813 #endif
7814 
7815 #endif
7816 
7817 
7818 #endif  /* __ITfCompartment_INTERFACE_DEFINED__ */
7819 
7820 /*****************************************************************************
7821  * ITfCompartmentMgr interface
7822  */
7823 #ifndef __ITfCompartmentMgr_INTERFACE_DEFINED__
7824 #define __ITfCompartmentMgr_INTERFACE_DEFINED__
7825 
7826 DEFINE_GUID(IID_ITfCompartmentMgr, 0x7dcf57ac, 0x18ad, 0x438b, 0x82,0x4d, 0x97,0x9b,0xff,0xb7,0x4b,0x7c);
7827 #if defined(__cplusplus) && !defined(CINTERFACE)
7828 MIDL_INTERFACE("7dcf57ac-18ad-438b-824d-979bffb74b7c")
7829 ITfCompartmentMgr : public IUnknown
7830 {
7831     virtual HRESULT STDMETHODCALLTYPE GetCompartment(
7832         REFGUID rguid,
7833         ITfCompartment **ppcomp) = 0;
7834 
7835     virtual HRESULT STDMETHODCALLTYPE ClearCompartment(
7836         TfClientId tid,
7837         REFGUID rguid) = 0;
7838 
7839     virtual HRESULT STDMETHODCALLTYPE EnumCompartments(
7840         IEnumGUID **ppEnum) = 0;
7841 
7842 };
7843 #ifdef __CRT_UUID_DECL
7844 __CRT_UUID_DECL(ITfCompartmentMgr, 0x7dcf57ac, 0x18ad, 0x438b, 0x82,0x4d, 0x97,0x9b,0xff,0xb7,0x4b,0x7c)
7845 #endif
7846 #else
7847 typedef struct ITfCompartmentMgrVtbl {
7848     BEGIN_INTERFACE
7849 
7850     /*** IUnknown methods ***/
7851     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7852         ITfCompartmentMgr *This,
7853         REFIID riid,
7854         void **ppvObject);
7855 
7856     ULONG (STDMETHODCALLTYPE *AddRef)(
7857         ITfCompartmentMgr *This);
7858 
7859     ULONG (STDMETHODCALLTYPE *Release)(
7860         ITfCompartmentMgr *This);
7861 
7862     /*** ITfCompartmentMgr methods ***/
7863     HRESULT (STDMETHODCALLTYPE *GetCompartment)(
7864         ITfCompartmentMgr *This,
7865         REFGUID rguid,
7866         ITfCompartment **ppcomp);
7867 
7868     HRESULT (STDMETHODCALLTYPE *ClearCompartment)(
7869         ITfCompartmentMgr *This,
7870         TfClientId tid,
7871         REFGUID rguid);
7872 
7873     HRESULT (STDMETHODCALLTYPE *EnumCompartments)(
7874         ITfCompartmentMgr *This,
7875         IEnumGUID **ppEnum);
7876 
7877     END_INTERFACE
7878 } ITfCompartmentMgrVtbl;
7879 
7880 interface ITfCompartmentMgr {
7881     CONST_VTBL ITfCompartmentMgrVtbl* lpVtbl;
7882 };
7883 
7884 #ifdef COBJMACROS
7885 #ifndef WIDL_C_INLINE_WRAPPERS
7886 /*** IUnknown methods ***/
7887 #define ITfCompartmentMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7888 #define ITfCompartmentMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
7889 #define ITfCompartmentMgr_Release(This) (This)->lpVtbl->Release(This)
7890 /*** ITfCompartmentMgr methods ***/
7891 #define ITfCompartmentMgr_GetCompartment(This,rguid,ppcomp) (This)->lpVtbl->GetCompartment(This,rguid,ppcomp)
7892 #define ITfCompartmentMgr_ClearCompartment(This,tid,rguid) (This)->lpVtbl->ClearCompartment(This,tid,rguid)
7893 #define ITfCompartmentMgr_EnumCompartments(This,ppEnum) (This)->lpVtbl->EnumCompartments(This,ppEnum)
7894 #else
7895 /*** IUnknown methods ***/
7896 static FORCEINLINE HRESULT ITfCompartmentMgr_QueryInterface(ITfCompartmentMgr* This,REFIID riid,void **ppvObject) {
7897     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7898 }
7899 static FORCEINLINE ULONG ITfCompartmentMgr_AddRef(ITfCompartmentMgr* This) {
7900     return This->lpVtbl->AddRef(This);
7901 }
7902 static FORCEINLINE ULONG ITfCompartmentMgr_Release(ITfCompartmentMgr* This) {
7903     return This->lpVtbl->Release(This);
7904 }
7905 /*** ITfCompartmentMgr methods ***/
7906 static FORCEINLINE HRESULT ITfCompartmentMgr_GetCompartment(ITfCompartmentMgr* This,REFGUID rguid,ITfCompartment **ppcomp) {
7907     return This->lpVtbl->GetCompartment(This,rguid,ppcomp);
7908 }
7909 static FORCEINLINE HRESULT ITfCompartmentMgr_ClearCompartment(ITfCompartmentMgr* This,TfClientId tid,REFGUID rguid) {
7910     return This->lpVtbl->ClearCompartment(This,tid,rguid);
7911 }
7912 static FORCEINLINE HRESULT ITfCompartmentMgr_EnumCompartments(ITfCompartmentMgr* This,IEnumGUID **ppEnum) {
7913     return This->lpVtbl->EnumCompartments(This,ppEnum);
7914 }
7915 #endif
7916 #endif
7917 
7918 #endif
7919 
7920 
7921 #endif  /* __ITfCompartmentMgr_INTERFACE_DEFINED__ */
7922 
7923 /*****************************************************************************
7924  * ITfCompartmentEventSink interface
7925  */
7926 #ifndef __ITfCompartmentEventSink_INTERFACE_DEFINED__
7927 #define __ITfCompartmentEventSink_INTERFACE_DEFINED__
7928 
7929 DEFINE_GUID(IID_ITfCompartmentEventSink, 0x743abd5f, 0xf26d, 0x48df, 0x8c,0xc5, 0x23,0x84,0x92,0x41,0x9b,0x64);
7930 #if defined(__cplusplus) && !defined(CINTERFACE)
7931 MIDL_INTERFACE("743abd5f-f26d-48df-8cc5-238492419b64")
7932 ITfCompartmentEventSink : public IUnknown
7933 {
7934     virtual HRESULT STDMETHODCALLTYPE OnChange(
7935         REFGUID rguid) = 0;
7936 
7937 };
7938 #ifdef __CRT_UUID_DECL
7939 __CRT_UUID_DECL(ITfCompartmentEventSink, 0x743abd5f, 0xf26d, 0x48df, 0x8c,0xc5, 0x23,0x84,0x92,0x41,0x9b,0x64)
7940 #endif
7941 #else
7942 typedef struct ITfCompartmentEventSinkVtbl {
7943     BEGIN_INTERFACE
7944 
7945     /*** IUnknown methods ***/
7946     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7947         ITfCompartmentEventSink *This,
7948         REFIID riid,
7949         void **ppvObject);
7950 
7951     ULONG (STDMETHODCALLTYPE *AddRef)(
7952         ITfCompartmentEventSink *This);
7953 
7954     ULONG (STDMETHODCALLTYPE *Release)(
7955         ITfCompartmentEventSink *This);
7956 
7957     /*** ITfCompartmentEventSink methods ***/
7958     HRESULT (STDMETHODCALLTYPE *OnChange)(
7959         ITfCompartmentEventSink *This,
7960         REFGUID rguid);
7961 
7962     END_INTERFACE
7963 } ITfCompartmentEventSinkVtbl;
7964 
7965 interface ITfCompartmentEventSink {
7966     CONST_VTBL ITfCompartmentEventSinkVtbl* lpVtbl;
7967 };
7968 
7969 #ifdef COBJMACROS
7970 #ifndef WIDL_C_INLINE_WRAPPERS
7971 /*** IUnknown methods ***/
7972 #define ITfCompartmentEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7973 #define ITfCompartmentEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
7974 #define ITfCompartmentEventSink_Release(This) (This)->lpVtbl->Release(This)
7975 /*** ITfCompartmentEventSink methods ***/
7976 #define ITfCompartmentEventSink_OnChange(This,rguid) (This)->lpVtbl->OnChange(This,rguid)
7977 #else
7978 /*** IUnknown methods ***/
7979 static FORCEINLINE HRESULT ITfCompartmentEventSink_QueryInterface(ITfCompartmentEventSink* This,REFIID riid,void **ppvObject) {
7980     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7981 }
7982 static FORCEINLINE ULONG ITfCompartmentEventSink_AddRef(ITfCompartmentEventSink* This) {
7983     return This->lpVtbl->AddRef(This);
7984 }
7985 static FORCEINLINE ULONG ITfCompartmentEventSink_Release(ITfCompartmentEventSink* This) {
7986     return This->lpVtbl->Release(This);
7987 }
7988 /*** ITfCompartmentEventSink methods ***/
7989 static FORCEINLINE HRESULT ITfCompartmentEventSink_OnChange(ITfCompartmentEventSink* This,REFGUID rguid) {
7990     return This->lpVtbl->OnChange(This,rguid);
7991 }
7992 #endif
7993 #endif
7994 
7995 #endif
7996 
7997 
7998 #endif  /* __ITfCompartmentEventSink_INTERFACE_DEFINED__ */
7999 
8000 /*****************************************************************************
8001  * IEnumTfContexts interface
8002  */
8003 #ifndef __IEnumTfContexts_INTERFACE_DEFINED__
8004 #define __IEnumTfContexts_INTERFACE_DEFINED__
8005 
8006 DEFINE_GUID(IID_IEnumTfContexts, 0x8f1a7ea6, 0x1654, 0x4502, 0xa8,0x6e, 0xb2,0x90,0x23,0x44,0xd5,0x07);
8007 #if defined(__cplusplus) && !defined(CINTERFACE)
8008 MIDL_INTERFACE("8f1a7ea6-1654-4502-a86e-b2902344d507")
8009 IEnumTfContexts : public IUnknown
8010 {
8011     virtual HRESULT STDMETHODCALLTYPE Clone(
8012         IEnumTfContexts **ppEnum) = 0;
8013 
8014     virtual HRESULT STDMETHODCALLTYPE Next(
8015         ULONG ulCount,
8016         ITfContext **rgContext,
8017         ULONG *pcFetched) = 0;
8018 
8019     virtual HRESULT STDMETHODCALLTYPE Reset(
8020         ) = 0;
8021 
8022     virtual HRESULT STDMETHODCALLTYPE Skip(
8023         ULONG ulCount) = 0;
8024 
8025 };
8026 #ifdef __CRT_UUID_DECL
8027 __CRT_UUID_DECL(IEnumTfContexts, 0x8f1a7ea6, 0x1654, 0x4502, 0xa8,0x6e, 0xb2,0x90,0x23,0x44,0xd5,0x07)
8028 #endif
8029 #else
8030 typedef struct IEnumTfContextsVtbl {
8031     BEGIN_INTERFACE
8032 
8033     /*** IUnknown methods ***/
8034     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8035         IEnumTfContexts *This,
8036         REFIID riid,
8037         void **ppvObject);
8038 
8039     ULONG (STDMETHODCALLTYPE *AddRef)(
8040         IEnumTfContexts *This);
8041 
8042     ULONG (STDMETHODCALLTYPE *Release)(
8043         IEnumTfContexts *This);
8044 
8045     /*** IEnumTfContexts methods ***/
8046     HRESULT (STDMETHODCALLTYPE *Clone)(
8047         IEnumTfContexts *This,
8048         IEnumTfContexts **ppEnum);
8049 
8050     HRESULT (STDMETHODCALLTYPE *Next)(
8051         IEnumTfContexts *This,
8052         ULONG ulCount,
8053         ITfContext **rgContext,
8054         ULONG *pcFetched);
8055 
8056     HRESULT (STDMETHODCALLTYPE *Reset)(
8057         IEnumTfContexts *This);
8058 
8059     HRESULT (STDMETHODCALLTYPE *Skip)(
8060         IEnumTfContexts *This,
8061         ULONG ulCount);
8062 
8063     END_INTERFACE
8064 } IEnumTfContextsVtbl;
8065 
8066 interface IEnumTfContexts {
8067     CONST_VTBL IEnumTfContextsVtbl* lpVtbl;
8068 };
8069 
8070 #ifdef COBJMACROS
8071 #ifndef WIDL_C_INLINE_WRAPPERS
8072 /*** IUnknown methods ***/
8073 #define IEnumTfContexts_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8074 #define IEnumTfContexts_AddRef(This) (This)->lpVtbl->AddRef(This)
8075 #define IEnumTfContexts_Release(This) (This)->lpVtbl->Release(This)
8076 /*** IEnumTfContexts methods ***/
8077 #define IEnumTfContexts_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
8078 #define IEnumTfContexts_Next(This,ulCount,rgContext,pcFetched) (This)->lpVtbl->Next(This,ulCount,rgContext,pcFetched)
8079 #define IEnumTfContexts_Reset(This) (This)->lpVtbl->Reset(This)
8080 #define IEnumTfContexts_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
8081 #else
8082 /*** IUnknown methods ***/
8083 static FORCEINLINE HRESULT IEnumTfContexts_QueryInterface(IEnumTfContexts* This,REFIID riid,void **ppvObject) {
8084     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8085 }
8086 static FORCEINLINE ULONG IEnumTfContexts_AddRef(IEnumTfContexts* This) {
8087     return This->lpVtbl->AddRef(This);
8088 }
8089 static FORCEINLINE ULONG IEnumTfContexts_Release(IEnumTfContexts* This) {
8090     return This->lpVtbl->Release(This);
8091 }
8092 /*** IEnumTfContexts methods ***/
8093 static FORCEINLINE HRESULT IEnumTfContexts_Clone(IEnumTfContexts* This,IEnumTfContexts **ppEnum) {
8094     return This->lpVtbl->Clone(This,ppEnum);
8095 }
8096 static FORCEINLINE HRESULT IEnumTfContexts_Next(IEnumTfContexts* This,ULONG ulCount,ITfContext **rgContext,ULONG *pcFetched) {
8097     return This->lpVtbl->Next(This,ulCount,rgContext,pcFetched);
8098 }
8099 static FORCEINLINE HRESULT IEnumTfContexts_Reset(IEnumTfContexts* This) {
8100     return This->lpVtbl->Reset(This);
8101 }
8102 static FORCEINLINE HRESULT IEnumTfContexts_Skip(IEnumTfContexts* This,ULONG ulCount) {
8103     return This->lpVtbl->Skip(This,ulCount);
8104 }
8105 #endif
8106 #endif
8107 
8108 #endif
8109 
8110 
8111 #endif  /* __IEnumTfContexts_INTERFACE_DEFINED__ */
8112 
8113 /*****************************************************************************
8114  * IEnumTfDocumentMgrs interface
8115  */
8116 #ifndef __IEnumTfDocumentMgrs_INTERFACE_DEFINED__
8117 #define __IEnumTfDocumentMgrs_INTERFACE_DEFINED__
8118 
8119 DEFINE_GUID(IID_IEnumTfDocumentMgrs, 0xaa80e808, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
8120 #if defined(__cplusplus) && !defined(CINTERFACE)
8121 MIDL_INTERFACE("aa80e808-2021-11d2-93e0-0060b067b86e")
8122 IEnumTfDocumentMgrs : public IUnknown
8123 {
8124     virtual HRESULT STDMETHODCALLTYPE Clone(
8125         IEnumTfDocumentMgrs **ppEnum) = 0;
8126 
8127     virtual HRESULT STDMETHODCALLTYPE Next(
8128         ULONG ulCount,
8129         ITfDocumentMgr **rgDocumentMgr,
8130         ULONG *pcFetched) = 0;
8131 
8132     virtual HRESULT STDMETHODCALLTYPE Reset(
8133         ) = 0;
8134 
8135     virtual HRESULT STDMETHODCALLTYPE Skip(
8136         ULONG ulCount) = 0;
8137 
8138 };
8139 #ifdef __CRT_UUID_DECL
8140 __CRT_UUID_DECL(IEnumTfDocumentMgrs, 0xaa80e808, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
8141 #endif
8142 #else
8143 typedef struct IEnumTfDocumentMgrsVtbl {
8144     BEGIN_INTERFACE
8145 
8146     /*** IUnknown methods ***/
8147     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8148         IEnumTfDocumentMgrs *This,
8149         REFIID riid,
8150         void **ppvObject);
8151 
8152     ULONG (STDMETHODCALLTYPE *AddRef)(
8153         IEnumTfDocumentMgrs *This);
8154 
8155     ULONG (STDMETHODCALLTYPE *Release)(
8156         IEnumTfDocumentMgrs *This);
8157 
8158     /*** IEnumTfDocumentMgrs methods ***/
8159     HRESULT (STDMETHODCALLTYPE *Clone)(
8160         IEnumTfDocumentMgrs *This,
8161         IEnumTfDocumentMgrs **ppEnum);
8162 
8163     HRESULT (STDMETHODCALLTYPE *Next)(
8164         IEnumTfDocumentMgrs *This,
8165         ULONG ulCount,
8166         ITfDocumentMgr **rgDocumentMgr,
8167         ULONG *pcFetched);
8168 
8169     HRESULT (STDMETHODCALLTYPE *Reset)(
8170         IEnumTfDocumentMgrs *This);
8171 
8172     HRESULT (STDMETHODCALLTYPE *Skip)(
8173         IEnumTfDocumentMgrs *This,
8174         ULONG ulCount);
8175 
8176     END_INTERFACE
8177 } IEnumTfDocumentMgrsVtbl;
8178 
8179 interface IEnumTfDocumentMgrs {
8180     CONST_VTBL IEnumTfDocumentMgrsVtbl* lpVtbl;
8181 };
8182 
8183 #ifdef COBJMACROS
8184 #ifndef WIDL_C_INLINE_WRAPPERS
8185 /*** IUnknown methods ***/
8186 #define IEnumTfDocumentMgrs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8187 #define IEnumTfDocumentMgrs_AddRef(This) (This)->lpVtbl->AddRef(This)
8188 #define IEnumTfDocumentMgrs_Release(This) (This)->lpVtbl->Release(This)
8189 /*** IEnumTfDocumentMgrs methods ***/
8190 #define IEnumTfDocumentMgrs_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
8191 #define IEnumTfDocumentMgrs_Next(This,ulCount,rgDocumentMgr,pcFetched) (This)->lpVtbl->Next(This,ulCount,rgDocumentMgr,pcFetched)
8192 #define IEnumTfDocumentMgrs_Reset(This) (This)->lpVtbl->Reset(This)
8193 #define IEnumTfDocumentMgrs_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
8194 #else
8195 /*** IUnknown methods ***/
8196 static FORCEINLINE HRESULT IEnumTfDocumentMgrs_QueryInterface(IEnumTfDocumentMgrs* This,REFIID riid,void **ppvObject) {
8197     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8198 }
8199 static FORCEINLINE ULONG IEnumTfDocumentMgrs_AddRef(IEnumTfDocumentMgrs* This) {
8200     return This->lpVtbl->AddRef(This);
8201 }
8202 static FORCEINLINE ULONG IEnumTfDocumentMgrs_Release(IEnumTfDocumentMgrs* This) {
8203     return This->lpVtbl->Release(This);
8204 }
8205 /*** IEnumTfDocumentMgrs methods ***/
8206 static FORCEINLINE HRESULT IEnumTfDocumentMgrs_Clone(IEnumTfDocumentMgrs* This,IEnumTfDocumentMgrs **ppEnum) {
8207     return This->lpVtbl->Clone(This,ppEnum);
8208 }
8209 static FORCEINLINE HRESULT IEnumTfDocumentMgrs_Next(IEnumTfDocumentMgrs* This,ULONG ulCount,ITfDocumentMgr **rgDocumentMgr,ULONG *pcFetched) {
8210     return This->lpVtbl->Next(This,ulCount,rgDocumentMgr,pcFetched);
8211 }
8212 static FORCEINLINE HRESULT IEnumTfDocumentMgrs_Reset(IEnumTfDocumentMgrs* This) {
8213     return This->lpVtbl->Reset(This);
8214 }
8215 static FORCEINLINE HRESULT IEnumTfDocumentMgrs_Skip(IEnumTfDocumentMgrs* This,ULONG ulCount) {
8216     return This->lpVtbl->Skip(This,ulCount);
8217 }
8218 #endif
8219 #endif
8220 
8221 #endif
8222 
8223 
8224 #endif  /* __IEnumTfDocumentMgrs_INTERFACE_DEFINED__ */
8225 
8226 /*****************************************************************************
8227  * ITfUIElement interface
8228  */
8229 #ifndef __ITfUIElement_INTERFACE_DEFINED__
8230 #define __ITfUIElement_INTERFACE_DEFINED__
8231 
8232 DEFINE_GUID(IID_ITfUIElement, 0xea1ea137, 0x19df, 0x11d7, 0xa6,0xd2, 0x00,0x06,0x5b,0x84,0x43,0x5c);
8233 #if defined(__cplusplus) && !defined(CINTERFACE)
8234 MIDL_INTERFACE("ea1ea137-19df-11d7-a6d2-00065b84435c")
8235 ITfUIElement : public IUnknown
8236 {
8237     virtual HRESULT STDMETHODCALLTYPE GetDescription(
8238         BSTR *description) = 0;
8239 
8240     virtual HRESULT STDMETHODCALLTYPE GetGUID(
8241         GUID *guid) = 0;
8242 
8243     virtual HRESULT STDMETHODCALLTYPE Show(
8244         WINBOOL show) = 0;
8245 
8246     virtual HRESULT STDMETHODCALLTYPE IsShown(
8247         WINBOOL *show) = 0;
8248 
8249 };
8250 #ifdef __CRT_UUID_DECL
8251 __CRT_UUID_DECL(ITfUIElement, 0xea1ea137, 0x19df, 0x11d7, 0xa6,0xd2, 0x00,0x06,0x5b,0x84,0x43,0x5c)
8252 #endif
8253 #else
8254 typedef struct ITfUIElementVtbl {
8255     BEGIN_INTERFACE
8256 
8257     /*** IUnknown methods ***/
8258     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8259         ITfUIElement *This,
8260         REFIID riid,
8261         void **ppvObject);
8262 
8263     ULONG (STDMETHODCALLTYPE *AddRef)(
8264         ITfUIElement *This);
8265 
8266     ULONG (STDMETHODCALLTYPE *Release)(
8267         ITfUIElement *This);
8268 
8269     /*** ITfUIElement methods ***/
8270     HRESULT (STDMETHODCALLTYPE *GetDescription)(
8271         ITfUIElement *This,
8272         BSTR *description);
8273 
8274     HRESULT (STDMETHODCALLTYPE *GetGUID)(
8275         ITfUIElement *This,
8276         GUID *guid);
8277 
8278     HRESULT (STDMETHODCALLTYPE *Show)(
8279         ITfUIElement *This,
8280         WINBOOL show);
8281 
8282     HRESULT (STDMETHODCALLTYPE *IsShown)(
8283         ITfUIElement *This,
8284         WINBOOL *show);
8285 
8286     END_INTERFACE
8287 } ITfUIElementVtbl;
8288 
8289 interface ITfUIElement {
8290     CONST_VTBL ITfUIElementVtbl* lpVtbl;
8291 };
8292 
8293 #ifdef COBJMACROS
8294 #ifndef WIDL_C_INLINE_WRAPPERS
8295 /*** IUnknown methods ***/
8296 #define ITfUIElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8297 #define ITfUIElement_AddRef(This) (This)->lpVtbl->AddRef(This)
8298 #define ITfUIElement_Release(This) (This)->lpVtbl->Release(This)
8299 /*** ITfUIElement methods ***/
8300 #define ITfUIElement_GetDescription(This,description) (This)->lpVtbl->GetDescription(This,description)
8301 #define ITfUIElement_GetGUID(This,guid) (This)->lpVtbl->GetGUID(This,guid)
8302 #define ITfUIElement_Show(This,show) (This)->lpVtbl->Show(This,show)
8303 #define ITfUIElement_IsShown(This,show) (This)->lpVtbl->IsShown(This,show)
8304 #else
8305 /*** IUnknown methods ***/
8306 static FORCEINLINE HRESULT ITfUIElement_QueryInterface(ITfUIElement* This,REFIID riid,void **ppvObject) {
8307     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8308 }
8309 static FORCEINLINE ULONG ITfUIElement_AddRef(ITfUIElement* This) {
8310     return This->lpVtbl->AddRef(This);
8311 }
8312 static FORCEINLINE ULONG ITfUIElement_Release(ITfUIElement* This) {
8313     return This->lpVtbl->Release(This);
8314 }
8315 /*** ITfUIElement methods ***/
8316 static FORCEINLINE HRESULT ITfUIElement_GetDescription(ITfUIElement* This,BSTR *description) {
8317     return This->lpVtbl->GetDescription(This,description);
8318 }
8319 static FORCEINLINE HRESULT ITfUIElement_GetGUID(ITfUIElement* This,GUID *guid) {
8320     return This->lpVtbl->GetGUID(This,guid);
8321 }
8322 static FORCEINLINE HRESULT ITfUIElement_Show(ITfUIElement* This,WINBOOL show) {
8323     return This->lpVtbl->Show(This,show);
8324 }
8325 static FORCEINLINE HRESULT ITfUIElement_IsShown(ITfUIElement* This,WINBOOL *show) {
8326     return This->lpVtbl->IsShown(This,show);
8327 }
8328 #endif
8329 #endif
8330 
8331 #endif
8332 
8333 
8334 #endif  /* __ITfUIElement_INTERFACE_DEFINED__ */
8335 
8336 /*****************************************************************************
8337  * IEnumTfUIElements interface
8338  */
8339 #ifndef __IEnumTfUIElements_INTERFACE_DEFINED__
8340 #define __IEnumTfUIElements_INTERFACE_DEFINED__
8341 
8342 DEFINE_GUID(IID_IEnumTfUIElements, 0x887aa91e, 0xacba, 0x4931, 0x84,0xda, 0x3c,0x52,0x08,0xcf,0x54,0x3f);
8343 #if defined(__cplusplus) && !defined(CINTERFACE)
8344 MIDL_INTERFACE("887aa91e-acba-4931-84da-3c5208cf543f")
8345 IEnumTfUIElements : public IUnknown
8346 {
8347     virtual HRESULT STDMETHODCALLTYPE Clone(
8348         IEnumTfUIElements **enum_elements) = 0;
8349 
8350     virtual HRESULT STDMETHODCALLTYPE Next(
8351         ULONG count,
8352         ITfUIElement **element,
8353         ULONG fetched) = 0;
8354 
8355     virtual HRESULT STDMETHODCALLTYPE Reset(
8356         ) = 0;
8357 
8358     virtual HRESULT STDMETHODCALLTYPE Skip(
8359         ULONG count) = 0;
8360 
8361 };
8362 #ifdef __CRT_UUID_DECL
8363 __CRT_UUID_DECL(IEnumTfUIElements, 0x887aa91e, 0xacba, 0x4931, 0x84,0xda, 0x3c,0x52,0x08,0xcf,0x54,0x3f)
8364 #endif
8365 #else
8366 typedef struct IEnumTfUIElementsVtbl {
8367     BEGIN_INTERFACE
8368 
8369     /*** IUnknown methods ***/
8370     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8371         IEnumTfUIElements *This,
8372         REFIID riid,
8373         void **ppvObject);
8374 
8375     ULONG (STDMETHODCALLTYPE *AddRef)(
8376         IEnumTfUIElements *This);
8377 
8378     ULONG (STDMETHODCALLTYPE *Release)(
8379         IEnumTfUIElements *This);
8380 
8381     /*** IEnumTfUIElements methods ***/
8382     HRESULT (STDMETHODCALLTYPE *Clone)(
8383         IEnumTfUIElements *This,
8384         IEnumTfUIElements **enum_elements);
8385 
8386     HRESULT (STDMETHODCALLTYPE *Next)(
8387         IEnumTfUIElements *This,
8388         ULONG count,
8389         ITfUIElement **element,
8390         ULONG fetched);
8391 
8392     HRESULT (STDMETHODCALLTYPE *Reset)(
8393         IEnumTfUIElements *This);
8394 
8395     HRESULT (STDMETHODCALLTYPE *Skip)(
8396         IEnumTfUIElements *This,
8397         ULONG count);
8398 
8399     END_INTERFACE
8400 } IEnumTfUIElementsVtbl;
8401 
8402 interface IEnumTfUIElements {
8403     CONST_VTBL IEnumTfUIElementsVtbl* lpVtbl;
8404 };
8405 
8406 #ifdef COBJMACROS
8407 #ifndef WIDL_C_INLINE_WRAPPERS
8408 /*** IUnknown methods ***/
8409 #define IEnumTfUIElements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8410 #define IEnumTfUIElements_AddRef(This) (This)->lpVtbl->AddRef(This)
8411 #define IEnumTfUIElements_Release(This) (This)->lpVtbl->Release(This)
8412 /*** IEnumTfUIElements methods ***/
8413 #define IEnumTfUIElements_Clone(This,enum_elements) (This)->lpVtbl->Clone(This,enum_elements)
8414 #define IEnumTfUIElements_Next(This,count,element,fetched) (This)->lpVtbl->Next(This,count,element,fetched)
8415 #define IEnumTfUIElements_Reset(This) (This)->lpVtbl->Reset(This)
8416 #define IEnumTfUIElements_Skip(This,count) (This)->lpVtbl->Skip(This,count)
8417 #else
8418 /*** IUnknown methods ***/
8419 static FORCEINLINE HRESULT IEnumTfUIElements_QueryInterface(IEnumTfUIElements* This,REFIID riid,void **ppvObject) {
8420     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8421 }
8422 static FORCEINLINE ULONG IEnumTfUIElements_AddRef(IEnumTfUIElements* This) {
8423     return This->lpVtbl->AddRef(This);
8424 }
8425 static FORCEINLINE ULONG IEnumTfUIElements_Release(IEnumTfUIElements* This) {
8426     return This->lpVtbl->Release(This);
8427 }
8428 /*** IEnumTfUIElements methods ***/
8429 static FORCEINLINE HRESULT IEnumTfUIElements_Clone(IEnumTfUIElements* This,IEnumTfUIElements **enum_elements) {
8430     return This->lpVtbl->Clone(This,enum_elements);
8431 }
8432 static FORCEINLINE HRESULT IEnumTfUIElements_Next(IEnumTfUIElements* This,ULONG count,ITfUIElement **element,ULONG fetched) {
8433     return This->lpVtbl->Next(This,count,element,fetched);
8434 }
8435 static FORCEINLINE HRESULT IEnumTfUIElements_Reset(IEnumTfUIElements* This) {
8436     return This->lpVtbl->Reset(This);
8437 }
8438 static FORCEINLINE HRESULT IEnumTfUIElements_Skip(IEnumTfUIElements* This,ULONG count) {
8439     return This->lpVtbl->Skip(This,count);
8440 }
8441 #endif
8442 #endif
8443 
8444 #endif
8445 
8446 
8447 #endif  /* __IEnumTfUIElements_INTERFACE_DEFINED__ */
8448 
8449 /*****************************************************************************
8450  * ITfUIElementMgr interface
8451  */
8452 #ifndef __ITfUIElementMgr_INTERFACE_DEFINED__
8453 #define __ITfUIElementMgr_INTERFACE_DEFINED__
8454 
8455 DEFINE_GUID(IID_ITfUIElementMgr, 0xea1ea135, 0x19df, 0x11d7, 0xa6,0xd2, 0x00,0x06,0x5b,0x84,0x43,0x5c);
8456 #if defined(__cplusplus) && !defined(CINTERFACE)
8457 MIDL_INTERFACE("ea1ea135-19df-11d7-a6d2-00065b84435c")
8458 ITfUIElementMgr : public IUnknown
8459 {
8460     virtual HRESULT STDMETHODCALLTYPE BeginUIElement(
8461         ITfUIElement *element,
8462         WINBOOL *show,
8463         DWORD *id) = 0;
8464 
8465     virtual HRESULT STDMETHODCALLTYPE UpdateUIElement(
8466         DWORD id) = 0;
8467 
8468     virtual HRESULT STDMETHODCALLTYPE EndUIElement(
8469         DWORD id) = 0;
8470 
8471     virtual HRESULT STDMETHODCALLTYPE GetUIElement(
8472         DWORD id,
8473         ITfUIElement **element) = 0;
8474 
8475     virtual HRESULT STDMETHODCALLTYPE EnumUIElements(
8476         IEnumTfUIElements **enum_elements) = 0;
8477 
8478 };
8479 #ifdef __CRT_UUID_DECL
8480 __CRT_UUID_DECL(ITfUIElementMgr, 0xea1ea135, 0x19df, 0x11d7, 0xa6,0xd2, 0x00,0x06,0x5b,0x84,0x43,0x5c)
8481 #endif
8482 #else
8483 typedef struct ITfUIElementMgrVtbl {
8484     BEGIN_INTERFACE
8485 
8486     /*** IUnknown methods ***/
8487     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8488         ITfUIElementMgr *This,
8489         REFIID riid,
8490         void **ppvObject);
8491 
8492     ULONG (STDMETHODCALLTYPE *AddRef)(
8493         ITfUIElementMgr *This);
8494 
8495     ULONG (STDMETHODCALLTYPE *Release)(
8496         ITfUIElementMgr *This);
8497 
8498     /*** ITfUIElementMgr methods ***/
8499     HRESULT (STDMETHODCALLTYPE *BeginUIElement)(
8500         ITfUIElementMgr *This,
8501         ITfUIElement *element,
8502         WINBOOL *show,
8503         DWORD *id);
8504 
8505     HRESULT (STDMETHODCALLTYPE *UpdateUIElement)(
8506         ITfUIElementMgr *This,
8507         DWORD id);
8508 
8509     HRESULT (STDMETHODCALLTYPE *EndUIElement)(
8510         ITfUIElementMgr *This,
8511         DWORD id);
8512 
8513     HRESULT (STDMETHODCALLTYPE *GetUIElement)(
8514         ITfUIElementMgr *This,
8515         DWORD id,
8516         ITfUIElement **element);
8517 
8518     HRESULT (STDMETHODCALLTYPE *EnumUIElements)(
8519         ITfUIElementMgr *This,
8520         IEnumTfUIElements **enum_elements);
8521 
8522     END_INTERFACE
8523 } ITfUIElementMgrVtbl;
8524 
8525 interface ITfUIElementMgr {
8526     CONST_VTBL ITfUIElementMgrVtbl* lpVtbl;
8527 };
8528 
8529 #ifdef COBJMACROS
8530 #ifndef WIDL_C_INLINE_WRAPPERS
8531 /*** IUnknown methods ***/
8532 #define ITfUIElementMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8533 #define ITfUIElementMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
8534 #define ITfUIElementMgr_Release(This) (This)->lpVtbl->Release(This)
8535 /*** ITfUIElementMgr methods ***/
8536 #define ITfUIElementMgr_BeginUIElement(This,element,show,id) (This)->lpVtbl->BeginUIElement(This,element,show,id)
8537 #define ITfUIElementMgr_UpdateUIElement(This,id) (This)->lpVtbl->UpdateUIElement(This,id)
8538 #define ITfUIElementMgr_EndUIElement(This,id) (This)->lpVtbl->EndUIElement(This,id)
8539 #define ITfUIElementMgr_GetUIElement(This,id,element) (This)->lpVtbl->GetUIElement(This,id,element)
8540 #define ITfUIElementMgr_EnumUIElements(This,enum_elements) (This)->lpVtbl->EnumUIElements(This,enum_elements)
8541 #else
8542 /*** IUnknown methods ***/
8543 static FORCEINLINE HRESULT ITfUIElementMgr_QueryInterface(ITfUIElementMgr* This,REFIID riid,void **ppvObject) {
8544     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8545 }
8546 static FORCEINLINE ULONG ITfUIElementMgr_AddRef(ITfUIElementMgr* This) {
8547     return This->lpVtbl->AddRef(This);
8548 }
8549 static FORCEINLINE ULONG ITfUIElementMgr_Release(ITfUIElementMgr* This) {
8550     return This->lpVtbl->Release(This);
8551 }
8552 /*** ITfUIElementMgr methods ***/
8553 static FORCEINLINE HRESULT ITfUIElementMgr_BeginUIElement(ITfUIElementMgr* This,ITfUIElement *element,WINBOOL *show,DWORD *id) {
8554     return This->lpVtbl->BeginUIElement(This,element,show,id);
8555 }
8556 static FORCEINLINE HRESULT ITfUIElementMgr_UpdateUIElement(ITfUIElementMgr* This,DWORD id) {
8557     return This->lpVtbl->UpdateUIElement(This,id);
8558 }
8559 static FORCEINLINE HRESULT ITfUIElementMgr_EndUIElement(ITfUIElementMgr* This,DWORD id) {
8560     return This->lpVtbl->EndUIElement(This,id);
8561 }
8562 static FORCEINLINE HRESULT ITfUIElementMgr_GetUIElement(ITfUIElementMgr* This,DWORD id,ITfUIElement **element) {
8563     return This->lpVtbl->GetUIElement(This,id,element);
8564 }
8565 static FORCEINLINE HRESULT ITfUIElementMgr_EnumUIElements(ITfUIElementMgr* This,IEnumTfUIElements **enum_elements) {
8566     return This->lpVtbl->EnumUIElements(This,enum_elements);
8567 }
8568 #endif
8569 #endif
8570 
8571 #endif
8572 
8573 
8574 #endif  /* __ITfUIElementMgr_INTERFACE_DEFINED__ */
8575 
8576 /*****************************************************************************
8577  * ITfSourceSingle interface
8578  */
8579 #ifndef __ITfSourceSingle_INTERFACE_DEFINED__
8580 #define __ITfSourceSingle_INTERFACE_DEFINED__
8581 
8582 DEFINE_GUID(IID_ITfSourceSingle, 0x73131f9c, 0x56a9, 0x49dd, 0xb0,0xee, 0xd0,0x46,0x63,0x3f,0x75,0x28);
8583 #if defined(__cplusplus) && !defined(CINTERFACE)
8584 MIDL_INTERFACE("73131f9c-56a9-49dd-b0ee-d046633f7528")
8585 ITfSourceSingle : public IUnknown
8586 {
8587     virtual HRESULT STDMETHODCALLTYPE AdviseSingleSink(
8588         TfClientId tid,
8589         REFIID riid,
8590         IUnknown *punk) = 0;
8591 
8592     virtual HRESULT STDMETHODCALLTYPE UnadviseSingleSink(
8593         TfClientId tid,
8594         REFIID riid) = 0;
8595 
8596 };
8597 #ifdef __CRT_UUID_DECL
8598 __CRT_UUID_DECL(ITfSourceSingle, 0x73131f9c, 0x56a9, 0x49dd, 0xb0,0xee, 0xd0,0x46,0x63,0x3f,0x75,0x28)
8599 #endif
8600 #else
8601 typedef struct ITfSourceSingleVtbl {
8602     BEGIN_INTERFACE
8603 
8604     /*** IUnknown methods ***/
8605     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8606         ITfSourceSingle *This,
8607         REFIID riid,
8608         void **ppvObject);
8609 
8610     ULONG (STDMETHODCALLTYPE *AddRef)(
8611         ITfSourceSingle *This);
8612 
8613     ULONG (STDMETHODCALLTYPE *Release)(
8614         ITfSourceSingle *This);
8615 
8616     /*** ITfSourceSingle methods ***/
8617     HRESULT (STDMETHODCALLTYPE *AdviseSingleSink)(
8618         ITfSourceSingle *This,
8619         TfClientId tid,
8620         REFIID riid,
8621         IUnknown *punk);
8622 
8623     HRESULT (STDMETHODCALLTYPE *UnadviseSingleSink)(
8624         ITfSourceSingle *This,
8625         TfClientId tid,
8626         REFIID riid);
8627 
8628     END_INTERFACE
8629 } ITfSourceSingleVtbl;
8630 
8631 interface ITfSourceSingle {
8632     CONST_VTBL ITfSourceSingleVtbl* lpVtbl;
8633 };
8634 
8635 #ifdef COBJMACROS
8636 #ifndef WIDL_C_INLINE_WRAPPERS
8637 /*** IUnknown methods ***/
8638 #define ITfSourceSingle_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8639 #define ITfSourceSingle_AddRef(This) (This)->lpVtbl->AddRef(This)
8640 #define ITfSourceSingle_Release(This) (This)->lpVtbl->Release(This)
8641 /*** ITfSourceSingle methods ***/
8642 #define ITfSourceSingle_AdviseSingleSink(This,tid,riid,punk) (This)->lpVtbl->AdviseSingleSink(This,tid,riid,punk)
8643 #define ITfSourceSingle_UnadviseSingleSink(This,tid,riid) (This)->lpVtbl->UnadviseSingleSink(This,tid,riid)
8644 #else
8645 /*** IUnknown methods ***/
8646 static FORCEINLINE HRESULT ITfSourceSingle_QueryInterface(ITfSourceSingle* This,REFIID riid,void **ppvObject) {
8647     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8648 }
8649 static FORCEINLINE ULONG ITfSourceSingle_AddRef(ITfSourceSingle* This) {
8650     return This->lpVtbl->AddRef(This);
8651 }
8652 static FORCEINLINE ULONG ITfSourceSingle_Release(ITfSourceSingle* This) {
8653     return This->lpVtbl->Release(This);
8654 }
8655 /*** ITfSourceSingle methods ***/
8656 static FORCEINLINE HRESULT ITfSourceSingle_AdviseSingleSink(ITfSourceSingle* This,TfClientId tid,REFIID riid,IUnknown *punk) {
8657     return This->lpVtbl->AdviseSingleSink(This,tid,riid,punk);
8658 }
8659 static FORCEINLINE HRESULT ITfSourceSingle_UnadviseSingleSink(ITfSourceSingle* This,TfClientId tid,REFIID riid) {
8660     return This->lpVtbl->UnadviseSingleSink(This,tid,riid);
8661 }
8662 #endif
8663 #endif
8664 
8665 #endif
8666 
8667 
8668 #endif  /* __ITfSourceSingle_INTERFACE_DEFINED__ */
8669 
8670 /*****************************************************************************
8671  * ITfThreadFocusSink interface
8672  */
8673 #ifndef __ITfThreadFocusSink_INTERFACE_DEFINED__
8674 #define __ITfThreadFocusSink_INTERFACE_DEFINED__
8675 
8676 DEFINE_GUID(IID_ITfThreadFocusSink, 0xc0f1db0c, 0x3a20, 0x405c, 0xa3,0x03, 0x96,0xb6,0x01,0x0a,0x88,0x5f);
8677 #if defined(__cplusplus) && !defined(CINTERFACE)
8678 MIDL_INTERFACE("c0f1db0c-3a20-405c-a303-96b6010a885f")
8679 ITfThreadFocusSink : public IUnknown
8680 {
8681     virtual HRESULT STDMETHODCALLTYPE OnSetThreadFocus(
8682         ) = 0;
8683 
8684     virtual HRESULT STDMETHODCALLTYPE OnKillThreadFocus(
8685         ) = 0;
8686 
8687 };
8688 #ifdef __CRT_UUID_DECL
8689 __CRT_UUID_DECL(ITfThreadFocusSink, 0xc0f1db0c, 0x3a20, 0x405c, 0xa3,0x03, 0x96,0xb6,0x01,0x0a,0x88,0x5f)
8690 #endif
8691 #else
8692 typedef struct ITfThreadFocusSinkVtbl {
8693     BEGIN_INTERFACE
8694 
8695     /*** IUnknown methods ***/
8696     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8697         ITfThreadFocusSink *This,
8698         REFIID riid,
8699         void **ppvObject);
8700 
8701     ULONG (STDMETHODCALLTYPE *AddRef)(
8702         ITfThreadFocusSink *This);
8703 
8704     ULONG (STDMETHODCALLTYPE *Release)(
8705         ITfThreadFocusSink *This);
8706 
8707     /*** ITfThreadFocusSink methods ***/
8708     HRESULT (STDMETHODCALLTYPE *OnSetThreadFocus)(
8709         ITfThreadFocusSink *This);
8710 
8711     HRESULT (STDMETHODCALLTYPE *OnKillThreadFocus)(
8712         ITfThreadFocusSink *This);
8713 
8714     END_INTERFACE
8715 } ITfThreadFocusSinkVtbl;
8716 
8717 interface ITfThreadFocusSink {
8718     CONST_VTBL ITfThreadFocusSinkVtbl* lpVtbl;
8719 };
8720 
8721 #ifdef COBJMACROS
8722 #ifndef WIDL_C_INLINE_WRAPPERS
8723 /*** IUnknown methods ***/
8724 #define ITfThreadFocusSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8725 #define ITfThreadFocusSink_AddRef(This) (This)->lpVtbl->AddRef(This)
8726 #define ITfThreadFocusSink_Release(This) (This)->lpVtbl->Release(This)
8727 /*** ITfThreadFocusSink methods ***/
8728 #define ITfThreadFocusSink_OnSetThreadFocus(This) (This)->lpVtbl->OnSetThreadFocus(This)
8729 #define ITfThreadFocusSink_OnKillThreadFocus(This) (This)->lpVtbl->OnKillThreadFocus(This)
8730 #else
8731 /*** IUnknown methods ***/
8732 static FORCEINLINE HRESULT ITfThreadFocusSink_QueryInterface(ITfThreadFocusSink* This,REFIID riid,void **ppvObject) {
8733     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8734 }
8735 static FORCEINLINE ULONG ITfThreadFocusSink_AddRef(ITfThreadFocusSink* This) {
8736     return This->lpVtbl->AddRef(This);
8737 }
8738 static FORCEINLINE ULONG ITfThreadFocusSink_Release(ITfThreadFocusSink* This) {
8739     return This->lpVtbl->Release(This);
8740 }
8741 /*** ITfThreadFocusSink methods ***/
8742 static FORCEINLINE HRESULT ITfThreadFocusSink_OnSetThreadFocus(ITfThreadFocusSink* This) {
8743     return This->lpVtbl->OnSetThreadFocus(This);
8744 }
8745 static FORCEINLINE HRESULT ITfThreadFocusSink_OnKillThreadFocus(ITfThreadFocusSink* This) {
8746     return This->lpVtbl->OnKillThreadFocus(This);
8747 }
8748 #endif
8749 #endif
8750 
8751 #endif
8752 
8753 
8754 #endif  /* __ITfThreadFocusSink_INTERFACE_DEFINED__ */
8755 
8756 /*****************************************************************************
8757  * ITfInputProcessorProfileActivationSink interface
8758  */
8759 #ifndef __ITfInputProcessorProfileActivationSink_INTERFACE_DEFINED__
8760 #define __ITfInputProcessorProfileActivationSink_INTERFACE_DEFINED__
8761 
8762 DEFINE_GUID(IID_ITfInputProcessorProfileActivationSink, 0x71c6e74e, 0x0f28, 0x11d8, 0xa8,0x2a, 0x00,0x06,0x5b,0x84,0x43,0x5c);
8763 #if defined(__cplusplus) && !defined(CINTERFACE)
8764 MIDL_INTERFACE("71c6e74e-0f28-11d8-a82a-00065b84435c")
8765 ITfInputProcessorProfileActivationSink : public IUnknown
8766 {
8767     virtual HRESULT STDMETHODCALLTYPE OnActivated(
8768         DWORD dwProfileType,
8769         LANGID langid,
8770         REFCLSID clsid,
8771         REFGUID catid,
8772         REFGUID guidProfile,
8773         HKL hkl,
8774         DWORD dwFlags) = 0;
8775 
8776 };
8777 #ifdef __CRT_UUID_DECL
8778 __CRT_UUID_DECL(ITfInputProcessorProfileActivationSink, 0x71c6e74e, 0x0f28, 0x11d8, 0xa8,0x2a, 0x00,0x06,0x5b,0x84,0x43,0x5c)
8779 #endif
8780 #else
8781 typedef struct ITfInputProcessorProfileActivationSinkVtbl {
8782     BEGIN_INTERFACE
8783 
8784     /*** IUnknown methods ***/
8785     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8786         ITfInputProcessorProfileActivationSink *This,
8787         REFIID riid,
8788         void **ppvObject);
8789 
8790     ULONG (STDMETHODCALLTYPE *AddRef)(
8791         ITfInputProcessorProfileActivationSink *This);
8792 
8793     ULONG (STDMETHODCALLTYPE *Release)(
8794         ITfInputProcessorProfileActivationSink *This);
8795 
8796     /*** ITfInputProcessorProfileActivationSink methods ***/
8797     HRESULT (STDMETHODCALLTYPE *OnActivated)(
8798         ITfInputProcessorProfileActivationSink *This,
8799         DWORD dwProfileType,
8800         LANGID langid,
8801         REFCLSID clsid,
8802         REFGUID catid,
8803         REFGUID guidProfile,
8804         HKL hkl,
8805         DWORD dwFlags);
8806 
8807     END_INTERFACE
8808 } ITfInputProcessorProfileActivationSinkVtbl;
8809 
8810 interface ITfInputProcessorProfileActivationSink {
8811     CONST_VTBL ITfInputProcessorProfileActivationSinkVtbl* lpVtbl;
8812 };
8813 
8814 #ifdef COBJMACROS
8815 #ifndef WIDL_C_INLINE_WRAPPERS
8816 /*** IUnknown methods ***/
8817 #define ITfInputProcessorProfileActivationSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8818 #define ITfInputProcessorProfileActivationSink_AddRef(This) (This)->lpVtbl->AddRef(This)
8819 #define ITfInputProcessorProfileActivationSink_Release(This) (This)->lpVtbl->Release(This)
8820 /*** ITfInputProcessorProfileActivationSink methods ***/
8821 #define ITfInputProcessorProfileActivationSink_OnActivated(This,dwProfileType,langid,clsid,catid,guidProfile,hkl,dwFlags) (This)->lpVtbl->OnActivated(This,dwProfileType,langid,clsid,catid,guidProfile,hkl,dwFlags)
8822 #else
8823 /*** IUnknown methods ***/
8824 static FORCEINLINE HRESULT ITfInputProcessorProfileActivationSink_QueryInterface(ITfInputProcessorProfileActivationSink* This,REFIID riid,void **ppvObject) {
8825     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8826 }
8827 static FORCEINLINE ULONG ITfInputProcessorProfileActivationSink_AddRef(ITfInputProcessorProfileActivationSink* This) {
8828     return This->lpVtbl->AddRef(This);
8829 }
8830 static FORCEINLINE ULONG ITfInputProcessorProfileActivationSink_Release(ITfInputProcessorProfileActivationSink* This) {
8831     return This->lpVtbl->Release(This);
8832 }
8833 /*** ITfInputProcessorProfileActivationSink methods ***/
8834 static FORCEINLINE HRESULT ITfInputProcessorProfileActivationSink_OnActivated(ITfInputProcessorProfileActivationSink* This,DWORD dwProfileType,LANGID langid,REFCLSID clsid,REFGUID catid,REFGUID guidProfile,HKL hkl,DWORD dwFlags) {
8835     return This->lpVtbl->OnActivated(This,dwProfileType,langid,clsid,catid,guidProfile,hkl,dwFlags);
8836 }
8837 #endif
8838 #endif
8839 
8840 #endif
8841 
8842 
8843 #endif  /* __ITfInputProcessorProfileActivationSink_INTERFACE_DEFINED__ */
8844 
8845 /*****************************************************************************
8846  * ITfMouseSink interface
8847  */
8848 #ifndef __ITfMouseSink_INTERFACE_DEFINED__
8849 #define __ITfMouseSink_INTERFACE_DEFINED__
8850 
8851 DEFINE_GUID(IID_ITfMouseSink, 0xa1adaaa2, 0x3a24, 0x449d, 0xac,0x96, 0x51,0x83,0xe7,0xf5,0xc2,0x17);
8852 #if defined(__cplusplus) && !defined(CINTERFACE)
8853 MIDL_INTERFACE("a1adaaa2-3a24-449d-ac96-5183e7f5c217")
8854 ITfMouseSink : public IUnknown
8855 {
8856     virtual HRESULT STDMETHODCALLTYPE OnMouseEvent(
8857         ULONG uEdge,
8858         ULONG uQuadrant,
8859         DWORD dwBtnStatus,
8860         WINBOOL *pfEaten) = 0;
8861 
8862 };
8863 #ifdef __CRT_UUID_DECL
8864 __CRT_UUID_DECL(ITfMouseSink, 0xa1adaaa2, 0x3a24, 0x449d, 0xac,0x96, 0x51,0x83,0xe7,0xf5,0xc2,0x17)
8865 #endif
8866 #else
8867 typedef struct ITfMouseSinkVtbl {
8868     BEGIN_INTERFACE
8869 
8870     /*** IUnknown methods ***/
8871     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8872         ITfMouseSink *This,
8873         REFIID riid,
8874         void **ppvObject);
8875 
8876     ULONG (STDMETHODCALLTYPE *AddRef)(
8877         ITfMouseSink *This);
8878 
8879     ULONG (STDMETHODCALLTYPE *Release)(
8880         ITfMouseSink *This);
8881 
8882     /*** ITfMouseSink methods ***/
8883     HRESULT (STDMETHODCALLTYPE *OnMouseEvent)(
8884         ITfMouseSink *This,
8885         ULONG uEdge,
8886         ULONG uQuadrant,
8887         DWORD dwBtnStatus,
8888         WINBOOL *pfEaten);
8889 
8890     END_INTERFACE
8891 } ITfMouseSinkVtbl;
8892 
8893 interface ITfMouseSink {
8894     CONST_VTBL ITfMouseSinkVtbl* lpVtbl;
8895 };
8896 
8897 #ifdef COBJMACROS
8898 #ifndef WIDL_C_INLINE_WRAPPERS
8899 /*** IUnknown methods ***/
8900 #define ITfMouseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8901 #define ITfMouseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
8902 #define ITfMouseSink_Release(This) (This)->lpVtbl->Release(This)
8903 /*** ITfMouseSink methods ***/
8904 #define ITfMouseSink_OnMouseEvent(This,uEdge,uQuadrant,dwBtnStatus,pfEaten) (This)->lpVtbl->OnMouseEvent(This,uEdge,uQuadrant,dwBtnStatus,pfEaten)
8905 #else
8906 /*** IUnknown methods ***/
8907 static FORCEINLINE HRESULT ITfMouseSink_QueryInterface(ITfMouseSink* This,REFIID riid,void **ppvObject) {
8908     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8909 }
8910 static FORCEINLINE ULONG ITfMouseSink_AddRef(ITfMouseSink* This) {
8911     return This->lpVtbl->AddRef(This);
8912 }
8913 static FORCEINLINE ULONG ITfMouseSink_Release(ITfMouseSink* This) {
8914     return This->lpVtbl->Release(This);
8915 }
8916 /*** ITfMouseSink methods ***/
8917 static FORCEINLINE HRESULT ITfMouseSink_OnMouseEvent(ITfMouseSink* This,ULONG uEdge,ULONG uQuadrant,DWORD dwBtnStatus,WINBOOL *pfEaten) {
8918     return This->lpVtbl->OnMouseEvent(This,uEdge,uQuadrant,dwBtnStatus,pfEaten);
8919 }
8920 #endif
8921 #endif
8922 
8923 #endif
8924 
8925 
8926 #endif  /* __ITfMouseSink_INTERFACE_DEFINED__ */
8927 
8928 /*****************************************************************************
8929  * ITfMouseTracker interface
8930  */
8931 #ifndef __ITfMouseTracker_INTERFACE_DEFINED__
8932 #define __ITfMouseTracker_INTERFACE_DEFINED__
8933 
8934 DEFINE_GUID(IID_ITfMouseTracker, 0x09d146cd, 0xa544, 0x4132, 0x92,0x5b, 0x7a,0xfa,0x8e,0xf3,0x22,0xd0);
8935 #if defined(__cplusplus) && !defined(CINTERFACE)
8936 MIDL_INTERFACE("09d146cd-a544-4132-925b-7afa8ef322d0")
8937 ITfMouseTracker : public IUnknown
8938 {
8939     virtual HRESULT STDMETHODCALLTYPE AdviseMouseSink(
8940         ITfRange *range,
8941         ITfMouseSink *pSink,
8942         DWORD *pdwCookie) = 0;
8943 
8944     virtual HRESULT STDMETHODCALLTYPE UnadviseMouseSink(
8945         DWORD dwCookie) = 0;
8946 
8947 };
8948 #ifdef __CRT_UUID_DECL
8949 __CRT_UUID_DECL(ITfMouseTracker, 0x09d146cd, 0xa544, 0x4132, 0x92,0x5b, 0x7a,0xfa,0x8e,0xf3,0x22,0xd0)
8950 #endif
8951 #else
8952 typedef struct ITfMouseTrackerVtbl {
8953     BEGIN_INTERFACE
8954 
8955     /*** IUnknown methods ***/
8956     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8957         ITfMouseTracker *This,
8958         REFIID riid,
8959         void **ppvObject);
8960 
8961     ULONG (STDMETHODCALLTYPE *AddRef)(
8962         ITfMouseTracker *This);
8963 
8964     ULONG (STDMETHODCALLTYPE *Release)(
8965         ITfMouseTracker *This);
8966 
8967     /*** ITfMouseTracker methods ***/
8968     HRESULT (STDMETHODCALLTYPE *AdviseMouseSink)(
8969         ITfMouseTracker *This,
8970         ITfRange *range,
8971         ITfMouseSink *pSink,
8972         DWORD *pdwCookie);
8973 
8974     HRESULT (STDMETHODCALLTYPE *UnadviseMouseSink)(
8975         ITfMouseTracker *This,
8976         DWORD dwCookie);
8977 
8978     END_INTERFACE
8979 } ITfMouseTrackerVtbl;
8980 
8981 interface ITfMouseTracker {
8982     CONST_VTBL ITfMouseTrackerVtbl* lpVtbl;
8983 };
8984 
8985 #ifdef COBJMACROS
8986 #ifndef WIDL_C_INLINE_WRAPPERS
8987 /*** IUnknown methods ***/
8988 #define ITfMouseTracker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8989 #define ITfMouseTracker_AddRef(This) (This)->lpVtbl->AddRef(This)
8990 #define ITfMouseTracker_Release(This) (This)->lpVtbl->Release(This)
8991 /*** ITfMouseTracker methods ***/
8992 #define ITfMouseTracker_AdviseMouseSink(This,range,pSink,pdwCookie) (This)->lpVtbl->AdviseMouseSink(This,range,pSink,pdwCookie)
8993 #define ITfMouseTracker_UnadviseMouseSink(This,dwCookie) (This)->lpVtbl->UnadviseMouseSink(This,dwCookie)
8994 #else
8995 /*** IUnknown methods ***/
8996 static FORCEINLINE HRESULT ITfMouseTracker_QueryInterface(ITfMouseTracker* This,REFIID riid,void **ppvObject) {
8997     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8998 }
8999 static FORCEINLINE ULONG ITfMouseTracker_AddRef(ITfMouseTracker* This) {
9000     return This->lpVtbl->AddRef(This);
9001 }
9002 static FORCEINLINE ULONG ITfMouseTracker_Release(ITfMouseTracker* This) {
9003     return This->lpVtbl->Release(This);
9004 }
9005 /*** ITfMouseTracker methods ***/
9006 static FORCEINLINE HRESULT ITfMouseTracker_AdviseMouseSink(ITfMouseTracker* This,ITfRange *range,ITfMouseSink *pSink,DWORD *pdwCookie) {
9007     return This->lpVtbl->AdviseMouseSink(This,range,pSink,pdwCookie);
9008 }
9009 static FORCEINLINE HRESULT ITfMouseTracker_UnadviseMouseSink(ITfMouseTracker* This,DWORD dwCookie) {
9010     return This->lpVtbl->UnadviseMouseSink(This,dwCookie);
9011 }
9012 #endif
9013 #endif
9014 
9015 #endif
9016 
9017 
9018 #endif  /* __ITfMouseTracker_INTERFACE_DEFINED__ */
9019 
9020 /*****************************************************************************
9021  * ITfMouseTrackerACP interface
9022  */
9023 #ifndef __ITfMouseTrackerACP_INTERFACE_DEFINED__
9024 #define __ITfMouseTrackerACP_INTERFACE_DEFINED__
9025 
9026 DEFINE_GUID(IID_ITfMouseTrackerACP, 0x3bdd78e2, 0xc16e, 0x47fd, 0xb8,0x83, 0xce,0x6f,0xac,0xc1,0xa2,0x08);
9027 #if defined(__cplusplus) && !defined(CINTERFACE)
9028 MIDL_INTERFACE("3bdd78e2-c16e-47fd-b883-ce6facc1a208")
9029 ITfMouseTrackerACP : public IUnknown
9030 {
9031     virtual HRESULT STDMETHODCALLTYPE AdviseMouseSink(
9032         ITfRangeACP *range,
9033         ITfMouseSink *pSink,
9034         DWORD *pdwCookie) = 0;
9035 
9036     virtual HRESULT STDMETHODCALLTYPE UnadviseMouseSink(
9037         DWORD dwCookie) = 0;
9038 
9039 };
9040 #ifdef __CRT_UUID_DECL
9041 __CRT_UUID_DECL(ITfMouseTrackerACP, 0x3bdd78e2, 0xc16e, 0x47fd, 0xb8,0x83, 0xce,0x6f,0xac,0xc1,0xa2,0x08)
9042 #endif
9043 #else
9044 typedef struct ITfMouseTrackerACPVtbl {
9045     BEGIN_INTERFACE
9046 
9047     /*** IUnknown methods ***/
9048     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9049         ITfMouseTrackerACP *This,
9050         REFIID riid,
9051         void **ppvObject);
9052 
9053     ULONG (STDMETHODCALLTYPE *AddRef)(
9054         ITfMouseTrackerACP *This);
9055 
9056     ULONG (STDMETHODCALLTYPE *Release)(
9057         ITfMouseTrackerACP *This);
9058 
9059     /*** ITfMouseTrackerACP methods ***/
9060     HRESULT (STDMETHODCALLTYPE *AdviseMouseSink)(
9061         ITfMouseTrackerACP *This,
9062         ITfRangeACP *range,
9063         ITfMouseSink *pSink,
9064         DWORD *pdwCookie);
9065 
9066     HRESULT (STDMETHODCALLTYPE *UnadviseMouseSink)(
9067         ITfMouseTrackerACP *This,
9068         DWORD dwCookie);
9069 
9070     END_INTERFACE
9071 } ITfMouseTrackerACPVtbl;
9072 
9073 interface ITfMouseTrackerACP {
9074     CONST_VTBL ITfMouseTrackerACPVtbl* lpVtbl;
9075 };
9076 
9077 #ifdef COBJMACROS
9078 #ifndef WIDL_C_INLINE_WRAPPERS
9079 /*** IUnknown methods ***/
9080 #define ITfMouseTrackerACP_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9081 #define ITfMouseTrackerACP_AddRef(This) (This)->lpVtbl->AddRef(This)
9082 #define ITfMouseTrackerACP_Release(This) (This)->lpVtbl->Release(This)
9083 /*** ITfMouseTrackerACP methods ***/
9084 #define ITfMouseTrackerACP_AdviseMouseSink(This,range,pSink,pdwCookie) (This)->lpVtbl->AdviseMouseSink(This,range,pSink,pdwCookie)
9085 #define ITfMouseTrackerACP_UnadviseMouseSink(This,dwCookie) (This)->lpVtbl->UnadviseMouseSink(This,dwCookie)
9086 #else
9087 /*** IUnknown methods ***/
9088 static FORCEINLINE HRESULT ITfMouseTrackerACP_QueryInterface(ITfMouseTrackerACP* This,REFIID riid,void **ppvObject) {
9089     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9090 }
9091 static FORCEINLINE ULONG ITfMouseTrackerACP_AddRef(ITfMouseTrackerACP* This) {
9092     return This->lpVtbl->AddRef(This);
9093 }
9094 static FORCEINLINE ULONG ITfMouseTrackerACP_Release(ITfMouseTrackerACP* This) {
9095     return This->lpVtbl->Release(This);
9096 }
9097 /*** ITfMouseTrackerACP methods ***/
9098 static FORCEINLINE HRESULT ITfMouseTrackerACP_AdviseMouseSink(ITfMouseTrackerACP* This,ITfRangeACP *range,ITfMouseSink *pSink,DWORD *pdwCookie) {
9099     return This->lpVtbl->AdviseMouseSink(This,range,pSink,pdwCookie);
9100 }
9101 static FORCEINLINE HRESULT ITfMouseTrackerACP_UnadviseMouseSink(ITfMouseTrackerACP* This,DWORD dwCookie) {
9102     return This->lpVtbl->UnadviseMouseSink(This,dwCookie);
9103 }
9104 #endif
9105 #endif
9106 
9107 #endif
9108 
9109 
9110 #endif  /* __ITfMouseTrackerACP_INTERFACE_DEFINED__ */
9111 
9112 /*****************************************************************************
9113  * ITfTransitoryExtensionSink interface
9114  */
9115 #ifndef __ITfTransitoryExtensionSink_INTERFACE_DEFINED__
9116 #define __ITfTransitoryExtensionSink_INTERFACE_DEFINED__
9117 
9118 DEFINE_GUID(IID_ITfTransitoryExtensionSink, 0xa615096f, 0x1c57, 0x4813, 0x8a,0x15, 0x55,0xee,0x6e,0x5a,0x83,0x9c);
9119 #if defined(__cplusplus) && !defined(CINTERFACE)
9120 MIDL_INTERFACE("a615096f-1c57-4813-8a15-55ee6e5a839c")
9121 ITfTransitoryExtensionSink : public IUnknown
9122 {
9123     virtual HRESULT STDMETHODCALLTYPE OnTransitoryExtensionUpdated(
9124         ITfContext *pic,
9125         TfEditCookie ecReadOnly,
9126         ITfRange *pResultRange,
9127         ITfRange *pCompositionRange,
9128         WINBOOL *pfDeleteResultRange) = 0;
9129 
9130 };
9131 #ifdef __CRT_UUID_DECL
9132 __CRT_UUID_DECL(ITfTransitoryExtensionSink, 0xa615096f, 0x1c57, 0x4813, 0x8a,0x15, 0x55,0xee,0x6e,0x5a,0x83,0x9c)
9133 #endif
9134 #else
9135 typedef struct ITfTransitoryExtensionSinkVtbl {
9136     BEGIN_INTERFACE
9137 
9138     /*** IUnknown methods ***/
9139     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9140         ITfTransitoryExtensionSink *This,
9141         REFIID riid,
9142         void **ppvObject);
9143 
9144     ULONG (STDMETHODCALLTYPE *AddRef)(
9145         ITfTransitoryExtensionSink *This);
9146 
9147     ULONG (STDMETHODCALLTYPE *Release)(
9148         ITfTransitoryExtensionSink *This);
9149 
9150     /*** ITfTransitoryExtensionSink methods ***/
9151     HRESULT (STDMETHODCALLTYPE *OnTransitoryExtensionUpdated)(
9152         ITfTransitoryExtensionSink *This,
9153         ITfContext *pic,
9154         TfEditCookie ecReadOnly,
9155         ITfRange *pResultRange,
9156         ITfRange *pCompositionRange,
9157         WINBOOL *pfDeleteResultRange);
9158 
9159     END_INTERFACE
9160 } ITfTransitoryExtensionSinkVtbl;
9161 
9162 interface ITfTransitoryExtensionSink {
9163     CONST_VTBL ITfTransitoryExtensionSinkVtbl* lpVtbl;
9164 };
9165 
9166 #ifdef COBJMACROS
9167 #ifndef WIDL_C_INLINE_WRAPPERS
9168 /*** IUnknown methods ***/
9169 #define ITfTransitoryExtensionSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9170 #define ITfTransitoryExtensionSink_AddRef(This) (This)->lpVtbl->AddRef(This)
9171 #define ITfTransitoryExtensionSink_Release(This) (This)->lpVtbl->Release(This)
9172 /*** ITfTransitoryExtensionSink methods ***/
9173 #define ITfTransitoryExtensionSink_OnTransitoryExtensionUpdated(This,pic,ecReadOnly,pResultRange,pCompositionRange,pfDeleteResultRange) (This)->lpVtbl->OnTransitoryExtensionUpdated(This,pic,ecReadOnly,pResultRange,pCompositionRange,pfDeleteResultRange)
9174 #else
9175 /*** IUnknown methods ***/
9176 static FORCEINLINE HRESULT ITfTransitoryExtensionSink_QueryInterface(ITfTransitoryExtensionSink* This,REFIID riid,void **ppvObject) {
9177     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9178 }
9179 static FORCEINLINE ULONG ITfTransitoryExtensionSink_AddRef(ITfTransitoryExtensionSink* This) {
9180     return This->lpVtbl->AddRef(This);
9181 }
9182 static FORCEINLINE ULONG ITfTransitoryExtensionSink_Release(ITfTransitoryExtensionSink* This) {
9183     return This->lpVtbl->Release(This);
9184 }
9185 /*** ITfTransitoryExtensionSink methods ***/
9186 static FORCEINLINE HRESULT ITfTransitoryExtensionSink_OnTransitoryExtensionUpdated(ITfTransitoryExtensionSink* This,ITfContext *pic,TfEditCookie ecReadOnly,ITfRange *pResultRange,ITfRange *pCompositionRange,WINBOOL *pfDeleteResultRange) {
9187     return This->lpVtbl->OnTransitoryExtensionUpdated(This,pic,ecReadOnly,pResultRange,pCompositionRange,pfDeleteResultRange);
9188 }
9189 #endif
9190 #endif
9191 
9192 #endif
9193 
9194 
9195 #endif  /* __ITfTransitoryExtensionSink_INTERFACE_DEFINED__ */
9196 
9197 /* Begin additional prototypes for all interfaces */
9198 
9199 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
9200 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
9201 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
9202 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
9203 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
9204 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
9205 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
9206 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
9207 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
9208 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
9209 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
9210 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
9211 
9212 /* End additional prototypes */
9213 
9214 #ifdef __cplusplus
9215 }
9216 #endif
9217 
9218 #endif /* __msctf_h__ */
9219