zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

msctf.h (338702B) - Raw


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