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