Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.5.29 from /tmp/build-mingw64-toolchain-joshualang/src/mingw-w64-svn-r5861/mingw-w64-headers/include/msctf.idl - Do not edit ***/
      2 
      3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      5 #endif
      6 
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 
     10 #ifndef COM_NO_WINDOWS_H
     11 #include <windows.h>
     12 #include <ole2.h>
     13 #endif
     14 
     15 #ifndef __msctf_h__
     16 #define __msctf_h__
     17 
     18 /* Forward declarations */
     19 
     20 #ifndef __ITfThreadMgr_FWD_DEFINED__
     21 #define __ITfThreadMgr_FWD_DEFINED__
     22 typedef interface ITfThreadMgr ITfThreadMgr;
     23 #endif
     24 
     25 #ifndef __ITfCompositionView_FWD_DEFINED__
     26 #define __ITfCompositionView_FWD_DEFINED__
     27 typedef interface ITfCompositionView ITfCompositionView;
     28 #endif
     29 
     30 #ifndef __ITfDocumentMgr_FWD_DEFINED__
     31 #define __ITfDocumentMgr_FWD_DEFINED__
     32 typedef interface ITfDocumentMgr ITfDocumentMgr;
     33 #endif
     34 
     35 #ifndef __ITfContext_FWD_DEFINED__
     36 #define __ITfContext_FWD_DEFINED__
     37 typedef interface ITfContext ITfContext;
     38 #endif
     39 
     40 #ifndef __ITfSource_FWD_DEFINED__
     41 #define __ITfSource_FWD_DEFINED__
     42 typedef interface ITfSource ITfSource;
     43 #endif
     44 
     45 #ifndef __ITfInputProcessorProfiles_FWD_DEFINED__
     46 #define __ITfInputProcessorProfiles_FWD_DEFINED__
     47 typedef interface ITfInputProcessorProfiles ITfInputProcessorProfiles;
     48 #endif
     49 
     50 #ifndef __IEnumTfInputProcessorProfiles_FWD_DEFINED__
     51 #define __IEnumTfInputProcessorProfiles_FWD_DEFINED__
     52 typedef interface IEnumTfInputProcessorProfiles IEnumTfInputProcessorProfiles;
     53 #endif
     54 
     55 #ifndef __ITfInputProcessorProfileMgr_FWD_DEFINED__
     56 #define __ITfInputProcessorProfileMgr_FWD_DEFINED__
     57 typedef interface ITfInputProcessorProfileMgr ITfInputProcessorProfileMgr;
     58 #endif
     59 
     60 #ifndef __ITfDisplayAttributeInfo_FWD_DEFINED__
     61 #define __ITfDisplayAttributeInfo_FWD_DEFINED__
     62 typedef interface ITfDisplayAttributeInfo ITfDisplayAttributeInfo;
     63 #endif
     64 
     65 #ifndef __IEnumTfDisplayAttributeInfo_FWD_DEFINED__
     66 #define __IEnumTfDisplayAttributeInfo_FWD_DEFINED__
     67 typedef interface IEnumTfDisplayAttributeInfo IEnumTfDisplayAttributeInfo;
     68 #endif
     69 
     70 #ifndef __ITfDisplayAttributeMgr_FWD_DEFINED__
     71 #define __ITfDisplayAttributeMgr_FWD_DEFINED__
     72 typedef interface ITfDisplayAttributeMgr ITfDisplayAttributeMgr;
     73 #endif
     74 
     75 #ifndef __ITfCategoryMgr_FWD_DEFINED__
     76 #define __ITfCategoryMgr_FWD_DEFINED__
     77 typedef interface ITfCategoryMgr ITfCategoryMgr;
     78 #endif
     79 
     80 #ifndef __ITfTextEditSink_FWD_DEFINED__
     81 #define __ITfTextEditSink_FWD_DEFINED__
     82 typedef interface ITfTextEditSink ITfTextEditSink;
     83 #endif
     84 
     85 #ifndef __ITfContextOwnerCompositionSink_FWD_DEFINED__
     86 #define __ITfContextOwnerCompositionSink_FWD_DEFINED__
     87 typedef interface ITfContextOwnerCompositionSink ITfContextOwnerCompositionSink;
     88 #endif
     89 
     90 #ifndef __IEnumTfLanguageProfiles_FWD_DEFINED__
     91 #define __IEnumTfLanguageProfiles_FWD_DEFINED__
     92 typedef interface IEnumTfLanguageProfiles IEnumTfLanguageProfiles;
     93 #endif
     94 
     95 #ifndef __ITfTextInputProcessor_FWD_DEFINED__
     96 #define __ITfTextInputProcessor_FWD_DEFINED__
     97 typedef interface ITfTextInputProcessor ITfTextInputProcessor;
     98 #endif
     99 
    100 #ifndef __ITfThreadMgrEventSink_FWD_DEFINED__
    101 #define __ITfThreadMgrEventSink_FWD_DEFINED__
    102 typedef interface ITfThreadMgrEventSink ITfThreadMgrEventSink;
    103 #endif
    104 
    105 #ifndef __ITfKeystrokeMgr_FWD_DEFINED__
    106 #define __ITfKeystrokeMgr_FWD_DEFINED__
    107 typedef interface ITfKeystrokeMgr ITfKeystrokeMgr;
    108 #endif
    109 
    110 #ifndef __ITfKeyEventSink_FWD_DEFINED__
    111 #define __ITfKeyEventSink_FWD_DEFINED__
    112 typedef interface ITfKeyEventSink ITfKeyEventSink;
    113 #endif
    114 
    115 #ifndef __ITfMessagePump_FWD_DEFINED__
    116 #define __ITfMessagePump_FWD_DEFINED__
    117 typedef interface ITfMessagePump ITfMessagePump;
    118 #endif
    119 
    120 #ifndef __ITfClientId_FWD_DEFINED__
    121 #define __ITfClientId_FWD_DEFINED__
    122 typedef interface ITfClientId ITfClientId;
    123 #endif
    124 
    125 #ifndef __ITfLanguageProfileNotifySink_FWD_DEFINED__
    126 #define __ITfLanguageProfileNotifySink_FWD_DEFINED__
    127 typedef interface ITfLanguageProfileNotifySink ITfLanguageProfileNotifySink;
    128 #endif
    129 
    130 #ifndef __ITfEditSession_FWD_DEFINED__
    131 #define __ITfEditSession_FWD_DEFINED__
    132 typedef interface ITfEditSession ITfEditSession;
    133 #endif
    134 
    135 #ifndef __ITfRange_FWD_DEFINED__
    136 #define __ITfRange_FWD_DEFINED__
    137 typedef interface ITfRange ITfRange;
    138 #endif
    139 
    140 #ifndef __ITfRangeACP_FWD_DEFINED__
    141 #define __ITfRangeACP_FWD_DEFINED__
    142 typedef interface ITfRangeACP ITfRangeACP;
    143 #endif
    144 
    145 #ifndef __ITfInsertAtSelection_FWD_DEFINED__
    146 #define __ITfInsertAtSelection_FWD_DEFINED__
    147 typedef interface ITfInsertAtSelection ITfInsertAtSelection;
    148 #endif
    149 
    150 #ifndef __ITfPropertyStore_FWD_DEFINED__
    151 #define __ITfPropertyStore_FWD_DEFINED__
    152 typedef interface ITfPropertyStore ITfPropertyStore;
    153 #endif
    154 
    155 #ifndef __IEnumTfRanges_FWD_DEFINED__
    156 #define __IEnumTfRanges_FWD_DEFINED__
    157 typedef interface IEnumTfRanges IEnumTfRanges;
    158 #endif
    159 
    160 #ifndef __IEnumITfCompositionView_FWD_DEFINED__
    161 #define __IEnumITfCompositionView_FWD_DEFINED__
    162 typedef interface IEnumITfCompositionView IEnumITfCompositionView;
    163 #endif
    164 
    165 #ifndef __ITfComposition_FWD_DEFINED__
    166 #define __ITfComposition_FWD_DEFINED__
    167 typedef interface ITfComposition ITfComposition;
    168 #endif
    169 
    170 #ifndef __ITfCompositionSink_FWD_DEFINED__
    171 #define __ITfCompositionSink_FWD_DEFINED__
    172 typedef interface ITfCompositionSink ITfCompositionSink;
    173 #endif
    174 
    175 #ifndef __ITfContextComposition_FWD_DEFINED__
    176 #define __ITfContextComposition_FWD_DEFINED__
    177 typedef interface ITfContextComposition ITfContextComposition;
    178 #endif
    179 
    180 #ifndef __ITfContextOwnerCompositionServices_FWD_DEFINED__
    181 #define __ITfContextOwnerCompositionServices_FWD_DEFINED__
    182 typedef interface ITfContextOwnerCompositionServices ITfContextOwnerCompositionServices;
    183 #endif
    184 
    185 #ifndef __ITfPersistentPropertyLoaderACP_FWD_DEFINED__
    186 #define __ITfPersistentPropertyLoaderACP_FWD_DEFINED__
    187 typedef interface ITfPersistentPropertyLoaderACP ITfPersistentPropertyLoaderACP;
    188 #endif
    189 
    190 #ifndef __ITfContextOwnerServices_FWD_DEFINED__
    191 #define __ITfContextOwnerServices_FWD_DEFINED__
    192 typedef interface ITfContextOwnerServices ITfContextOwnerServices;
    193 #endif
    194 
    195 #ifndef __ITfReadOnlyProperty_FWD_DEFINED__
    196 #define __ITfReadOnlyProperty_FWD_DEFINED__
    197 typedef interface ITfReadOnlyProperty ITfReadOnlyProperty;
    198 #endif
    199 
    200 #ifndef __ITfProperty_FWD_DEFINED__
    201 #define __ITfProperty_FWD_DEFINED__
    202 typedef interface ITfProperty ITfProperty;
    203 #endif
    204 
    205 #ifndef __ITfCompartment_FWD_DEFINED__
    206 #define __ITfCompartment_FWD_DEFINED__
    207 typedef interface ITfCompartment ITfCompartment;
    208 #endif
    209 
    210 #ifndef __ITfCompartmentMgr_FWD_DEFINED__
    211 #define __ITfCompartmentMgr_FWD_DEFINED__
    212 typedef interface ITfCompartmentMgr ITfCompartmentMgr;
    213 #endif
    214 
    215 #ifndef __ITfCompartmentEventSink_FWD_DEFINED__
    216 #define __ITfCompartmentEventSink_FWD_DEFINED__
    217 typedef interface ITfCompartmentEventSink ITfCompartmentEventSink;
    218 #endif
    219 
    220 #ifndef __IEnumTfContexts_FWD_DEFINED__
    221 #define __IEnumTfContexts_FWD_DEFINED__
    222 typedef interface IEnumTfContexts IEnumTfContexts;
    223 #endif
    224 
    225 #ifndef __IEnumTfDocumentMgrs_FWD_DEFINED__
    226 #define __IEnumTfDocumentMgrs_FWD_DEFINED__
    227 typedef interface IEnumTfDocumentMgrs IEnumTfDocumentMgrs;
    228 #endif
    229 
    230 #ifndef __ITfSourceSingle_FWD_DEFINED__
    231 #define __ITfSourceSingle_FWD_DEFINED__
    232 typedef interface ITfSourceSingle ITfSourceSingle;
    233 #endif
    234 
    235 #ifndef __ITfThreadFocusSink_FWD_DEFINED__
    236 #define __ITfThreadFocusSink_FWD_DEFINED__
    237 typedef interface ITfThreadFocusSink ITfThreadFocusSink;
    238 #endif
    239 
    240 /* Headers for imported files */
    241 
    242 #include <oaidl.h>
    243 #include <comcat.h>
    244 #include <textstor.h>
    245 #include <ctfutb.h>
    246 
    247 #ifdef __cplusplus
    248 extern "C" {
    249 #endif
    250 
    251 #include <winuser.h>
    252 #define TF_E_STACKFULL MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0501)
    253 #define TF_E_DISCONNECTED    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0504)
    254 #define TF_E_ALREADY_EXISTS  MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0506)
    255 #define TF_E_NOLOCK          MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)
    256 HRESULT WINAPI TF_CreateThreadMgr(ITfThreadMgr **pptim);
    257 HRESULT WINAPI TF_GetThreadMgr(ITfThreadMgr **pptim);
    258 HRESULT WINAPI TF_CreateInputProcessorProfiles(ITfInputProcessorProfiles **ppipr);
    259 HRESULT WINAPI TF_CreateLangBarMgr(ITfLangBarMgr **pppbm);
    260 EXTERN_C const GUID GUID_PROP_TEXTOWNER;
    261 DEFINE_GUID(GUID_PROP_ATTRIBUTE,0x34b45670,0x7526,0x11d2,0xa1,0x47,0x00,0x10,0x5a,0x27,0x99,0xb5);
    262 EXTERN_C const GUID GUID_PROP_LANGID;
    263 EXTERN_C const GUID GUID_PROP_READING;
    264 EXTERN_C const GUID GUID_PROP_COMPOSING;
    265 EXTERN_C const CLSID CLSID_TF_ThreadMgr;
    266 EXTERN_C const CLSID CLSID_TF_InputProcessorProfiles;
    267 EXTERN_C const CLSID CLSID_TF_LangBarMgr;
    268 EXTERN_C const CLSID CLSID_TF_CategoryMgr;
    269 EXTERN_C const CLSID CLSID_TF_DisplayAttributeMgr;
    270 EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_DISABLED;
    271 EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_OPENCLOSE;
    272 EXTERN_C const GUID GUID_COMPARTMENT_HANDWRITING_OPENCLOSE;
    273 EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_DISABLED;
    274 EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_OPENCLOSE;
    275 EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_GLOBALSTATE;
    276 EXTERN_C const GUID GUID_COMPARTMENT_PERSISTMENUENABLED;
    277 EXTERN_C const GUID GUID_COMPARTMENT_EMPTYCONTEXT;
    278 EXTERN_C const GUID GUID_COMPARTMENT_TIPUISTATUS;
    279 EXTERN_C const GUID GUID_TFCAT_TIP_KEYBOARD;
    280 EXTERN_C const GUID GUID_TFCAT_TIP_SPEECH;
    281 EXTERN_C const GUID GUID_TFCAT_TIP_HANDWRITING;
    282 EXTERN_C const GUID GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER;
    283 typedef DWORD TfEditCookie;
    284 typedef DWORD TfClientId;
    285 typedef DWORD TfGuidAtom;
    286 #define TF_MOD_ALT                   0x0001
    287 #define TF_MOD_CONTROL               0x0002
    288 #define TF_MOD_SHIFT                 0x0004
    289 #define TF_MOD_RALT                  0x0008
    290 #define TF_MOD_RCONTROL              0x0010
    291 #define TF_MOD_RSHIFT                0x0020
    292 #define TF_MOD_LALT                  0x0040
    293 #define TF_MOD_LCONTROL              0x0080
    294 #define TF_MOD_LSHIFT                0x0100
    295 #define TF_MOD_ON_KEYUP              0x0200
    296 #define TF_MOD_IGNORE_ALL_MODIFIER   0x0400
    297 #define TF_PROFILETYPE_INPUTPROCESSOR  0x0001
    298 #define TF_PROFILETYPE_KEYBOARDLAYOUT  0x0002
    299 #ifndef __ITfDocumentMgr_FWD_DEFINED__
    300 #define __ITfDocumentMgr_FWD_DEFINED__
    301 typedef interface ITfDocumentMgr ITfDocumentMgr;
    302 #endif
    303 
    304 #ifndef __ITfContext_FWD_DEFINED__
    305 #define __ITfContext_FWD_DEFINED__
    306 typedef interface ITfContext ITfContext;
    307 #endif
    308 
    309 #ifndef __IEnumTfDocumentMgrs_FWD_DEFINED__
    310 #define __IEnumTfDocumentMgrs_FWD_DEFINED__
    311 typedef interface IEnumTfDocumentMgrs IEnumTfDocumentMgrs;
    312 #endif
    313 
    314 #ifndef __IEnumTfContexts_FWD_DEFINED__
    315 #define __IEnumTfContexts_FWD_DEFINED__
    316 typedef interface IEnumTfContexts IEnumTfContexts;
    317 #endif
    318 
    319 #ifndef __ITfFunctionProvider_FWD_DEFINED__
    320 #define __ITfFunctionProvider_FWD_DEFINED__
    321 typedef interface ITfFunctionProvider ITfFunctionProvider;
    322 #endif
    323 
    324 #ifndef __IEnumTfFunctionProviders_FWD_DEFINED__
    325 #define __IEnumTfFunctionProviders_FWD_DEFINED__
    326 typedef interface IEnumTfFunctionProviders IEnumTfFunctionProviders;
    327 #endif
    328 
    329 #ifndef __ITfCompartmentMgr_FWD_DEFINED__
    330 #define __ITfCompartmentMgr_FWD_DEFINED__
    331 typedef interface ITfCompartmentMgr ITfCompartmentMgr;
    332 #endif
    333 
    334 #ifndef __ITfEditSession_FWD_DEFINED__
    335 #define __ITfEditSession_FWD_DEFINED__
    336 typedef interface ITfEditSession ITfEditSession;
    337 #endif
    338 
    339 #ifndef __ITfRange_FWD_DEFINED__
    340 #define __ITfRange_FWD_DEFINED__
    341 typedef interface ITfRange ITfRange;
    342 #endif
    343 
    344 #ifndef __ITfContextView_FWD_DEFINED__
    345 #define __ITfContextView_FWD_DEFINED__
    346 typedef interface ITfContextView ITfContextView;
    347 #endif
    348 
    349 #ifndef __IEnumTfContextViews_FWD_DEFINED__
    350 #define __IEnumTfContextViews_FWD_DEFINED__
    351 typedef interface IEnumTfContextViews IEnumTfContextViews;
    352 #endif
    353 
    354 #ifndef __ITfProperty_FWD_DEFINED__
    355 #define __ITfProperty_FWD_DEFINED__
    356 typedef interface ITfProperty ITfProperty;
    357 #endif
    358 
    359 #ifndef __ITfReadOnlyProperty_FWD_DEFINED__
    360 #define __ITfReadOnlyProperty_FWD_DEFINED__
    361 typedef interface ITfReadOnlyProperty ITfReadOnlyProperty;
    362 #endif
    363 
    364 #ifndef __IEnumTfProperties_FWD_DEFINED__
    365 #define __IEnumTfProperties_FWD_DEFINED__
    366 typedef interface IEnumTfProperties IEnumTfProperties;
    367 #endif
    368 
    369 #ifndef __ITfRangeBackup_FWD_DEFINED__
    370 #define __ITfRangeBackup_FWD_DEFINED__
    371 typedef interface ITfRangeBackup ITfRangeBackup;
    372 #endif
    373 
    374 #ifndef __IEnumTfLanguageProfiles_FWD_DEFINED__
    375 #define __IEnumTfLanguageProfiles_FWD_DEFINED__
    376 typedef interface IEnumTfLanguageProfiles IEnumTfLanguageProfiles;
    377 #endif
    378 
    379 #ifndef __ITfEditRecord_FWD_DEFINED__
    380 #define __ITfEditRecord_FWD_DEFINED__
    381 typedef interface ITfEditRecord ITfEditRecord;
    382 #endif
    383 
    384 #ifndef __ITfCompositionView_FWD_DEFINED__
    385 #define __ITfCompositionView_FWD_DEFINED__
    386 typedef interface ITfCompositionView ITfCompositionView;
    387 #endif
    388 
    389 #ifndef __ITfKeyEventSink_FWD_DEFINED__
    390 #define __ITfKeyEventSink_FWD_DEFINED__
    391 typedef interface ITfKeyEventSink ITfKeyEventSink;
    392 #endif
    393 
    394 #if 0
    395 typedef UINT_PTR HKL;
    396 #endif
    397 typedef struct TF_PERSISTENT_PROPERTY_HEADER_ACP {
    398     GUID guidType;
    399     LONG ichStart;
    400     LONG cch;
    401     ULONG cb;
    402     DWORD dwPrivate;
    403     CLSID clsidTIP;
    404 } TF_PERSISTENT_PROPERTY_HEADER_ACP;
    405 typedef struct TF_LANGUAGEPROFILE {
    406     CLSID clsid;
    407     LANGID langid;
    408     GUID catid;
    409     WINBOOL fActive;
    410     GUID guidProfile;
    411 } TF_LANGUAGEPROFILE;
    412 typedef struct TF_PRESERVEDKEY {
    413     UINT uVKey;
    414     UINT uModifiers;
    415 } TF_PRESERVEDKEY;
    416 typedef enum __WIDL_msctf_generated_name_00000000 {
    417     TF_ANCHOR_START = 0,
    418     TF_ANCHOR_END = 1
    419 } TfAnchor;
    420 /*****************************************************************************
    421  * ITfThreadMgr interface
    422  */
    423 #ifndef __ITfThreadMgr_INTERFACE_DEFINED__
    424 #define __ITfThreadMgr_INTERFACE_DEFINED__
    425 
    426 DEFINE_GUID(IID_ITfThreadMgr, 0xaa80e801, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
    427 #if defined(__cplusplus) && !defined(CINTERFACE)
    428 MIDL_INTERFACE("aa80e801-2021-11d2-93e0-0060b067b86e")
    429 ITfThreadMgr : public IUnknown
    430 {
    431     virtual HRESULT STDMETHODCALLTYPE Activate(
    432         TfClientId *ptid) = 0;
    433 
    434     virtual HRESULT STDMETHODCALLTYPE Deactivate(
    435         ) = 0;
    436 
    437     virtual HRESULT STDMETHODCALLTYPE CreateDocumentMgr(
    438         ITfDocumentMgr **ppdim) = 0;
    439 
    440     virtual HRESULT STDMETHODCALLTYPE EnumDocumentMgrs(
    441         IEnumTfDocumentMgrs **ppEnum) = 0;
    442 
    443     virtual HRESULT STDMETHODCALLTYPE GetFocus(
    444         ITfDocumentMgr **ppdimFocus) = 0;
    445 
    446     virtual HRESULT STDMETHODCALLTYPE SetFocus(
    447         ITfDocumentMgr *pdimFocus) = 0;
    448 
    449     virtual HRESULT STDMETHODCALLTYPE AssociateFocus(
    450         HWND hwnd,
    451         ITfDocumentMgr *pdimNew,
    452         ITfDocumentMgr **ppdimPrev) = 0;
    453 
    454     virtual HRESULT STDMETHODCALLTYPE IsThreadFocus(
    455         WINBOOL *pfThreadFocus) = 0;
    456 
    457     virtual HRESULT STDMETHODCALLTYPE GetFunctionProvider(
    458         REFCLSID clsid,
    459         ITfFunctionProvider **ppFuncProv) = 0;
    460 
    461     virtual HRESULT STDMETHODCALLTYPE EnumFunctionProviders(
    462         IEnumTfFunctionProviders **ppEnum) = 0;
    463 
    464     virtual HRESULT STDMETHODCALLTYPE GetGlobalCompartment(
    465         ITfCompartmentMgr **ppCompMgr) = 0;
    466 
    467 };
    468 #ifdef __CRT_UUID_DECL
    469 __CRT_UUID_DECL(ITfThreadMgr, 0xaa80e801, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
    470 #endif
    471 #else
    472 typedef struct ITfThreadMgrVtbl {
    473     BEGIN_INTERFACE
    474 
    475     /*** IUnknown methods ***/
    476     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    477         ITfThreadMgr* This,
    478         REFIID riid,
    479         void **ppvObject);
    480 
    481     ULONG (STDMETHODCALLTYPE *AddRef)(
    482         ITfThreadMgr* This);
    483 
    484     ULONG (STDMETHODCALLTYPE *Release)(
    485         ITfThreadMgr* This);
    486 
    487     /*** ITfThreadMgr methods ***/
    488     HRESULT (STDMETHODCALLTYPE *Activate)(
    489         ITfThreadMgr* This,
    490         TfClientId *ptid);
    491 
    492     HRESULT (STDMETHODCALLTYPE *Deactivate)(
    493         ITfThreadMgr* This);
    494 
    495     HRESULT (STDMETHODCALLTYPE *CreateDocumentMgr)(
    496         ITfThreadMgr* This,
    497         ITfDocumentMgr **ppdim);
    498 
    499     HRESULT (STDMETHODCALLTYPE *EnumDocumentMgrs)(
    500         ITfThreadMgr* This,
    501         IEnumTfDocumentMgrs **ppEnum);
    502 
    503     HRESULT (STDMETHODCALLTYPE *GetFocus)(
    504         ITfThreadMgr* This,
    505         ITfDocumentMgr **ppdimFocus);
    506 
    507     HRESULT (STDMETHODCALLTYPE *SetFocus)(
    508         ITfThreadMgr* This,
    509         ITfDocumentMgr *pdimFocus);
    510 
    511     HRESULT (STDMETHODCALLTYPE *AssociateFocus)(
    512         ITfThreadMgr* This,
    513         HWND hwnd,
    514         ITfDocumentMgr *pdimNew,
    515         ITfDocumentMgr **ppdimPrev);
    516 
    517     HRESULT (STDMETHODCALLTYPE *IsThreadFocus)(
    518         ITfThreadMgr* This,
    519         WINBOOL *pfThreadFocus);
    520 
    521     HRESULT (STDMETHODCALLTYPE *GetFunctionProvider)(
    522         ITfThreadMgr* This,
    523         REFCLSID clsid,
    524         ITfFunctionProvider **ppFuncProv);
    525 
    526     HRESULT (STDMETHODCALLTYPE *EnumFunctionProviders)(
    527         ITfThreadMgr* This,
    528         IEnumTfFunctionProviders **ppEnum);
    529 
    530     HRESULT (STDMETHODCALLTYPE *GetGlobalCompartment)(
    531         ITfThreadMgr* This,
    532         ITfCompartmentMgr **ppCompMgr);
    533 
    534     END_INTERFACE
    535 } ITfThreadMgrVtbl;
    536 interface ITfThreadMgr {
    537     CONST_VTBL ITfThreadMgrVtbl* lpVtbl;
    538 };
    539 
    540 #ifdef COBJMACROS
    541 #ifndef WIDL_C_INLINE_WRAPPERS
    542 /*** IUnknown methods ***/
    543 #define ITfThreadMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    544 #define ITfThreadMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
    545 #define ITfThreadMgr_Release(This) (This)->lpVtbl->Release(This)
    546 /*** ITfThreadMgr methods ***/
    547 #define ITfThreadMgr_Activate(This,ptid) (This)->lpVtbl->Activate(This,ptid)
    548 #define ITfThreadMgr_Deactivate(This) (This)->lpVtbl->Deactivate(This)
    549 #define ITfThreadMgr_CreateDocumentMgr(This,ppdim) (This)->lpVtbl->CreateDocumentMgr(This,ppdim)
    550 #define ITfThreadMgr_EnumDocumentMgrs(This,ppEnum) (This)->lpVtbl->EnumDocumentMgrs(This,ppEnum)
    551 #define ITfThreadMgr_GetFocus(This,ppdimFocus) (This)->lpVtbl->GetFocus(This,ppdimFocus)
    552 #define ITfThreadMgr_SetFocus(This,pdimFocus) (This)->lpVtbl->SetFocus(This,pdimFocus)
    553 #define ITfThreadMgr_AssociateFocus(This,hwnd,pdimNew,ppdimPrev) (This)->lpVtbl->AssociateFocus(This,hwnd,pdimNew,ppdimPrev)
    554 #define ITfThreadMgr_IsThreadFocus(This,pfThreadFocus) (This)->lpVtbl->IsThreadFocus(This,pfThreadFocus)
    555 #define ITfThreadMgr_GetFunctionProvider(This,clsid,ppFuncProv) (This)->lpVtbl->GetFunctionProvider(This,clsid,ppFuncProv)
    556 #define ITfThreadMgr_EnumFunctionProviders(This,ppEnum) (This)->lpVtbl->EnumFunctionProviders(This,ppEnum)
    557 #define ITfThreadMgr_GetGlobalCompartment(This,ppCompMgr) (This)->lpVtbl->GetGlobalCompartment(This,ppCompMgr)
    558 #else
    559 /*** IUnknown methods ***/
    560 static FORCEINLINE HRESULT ITfThreadMgr_QueryInterface(ITfThreadMgr* This,REFIID riid,void **ppvObject) {
    561     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    562 }
    563 static FORCEINLINE ULONG ITfThreadMgr_AddRef(ITfThreadMgr* This) {
    564     return This->lpVtbl->AddRef(This);
    565 }
    566 static FORCEINLINE ULONG ITfThreadMgr_Release(ITfThreadMgr* This) {
    567     return This->lpVtbl->Release(This);
    568 }
    569 /*** ITfThreadMgr methods ***/
    570 static FORCEINLINE HRESULT ITfThreadMgr_Activate(ITfThreadMgr* This,TfClientId *ptid) {
    571     return This->lpVtbl->Activate(This,ptid);
    572 }
    573 static FORCEINLINE HRESULT ITfThreadMgr_Deactivate(ITfThreadMgr* This) {
    574     return This->lpVtbl->Deactivate(This);
    575 }
    576 static FORCEINLINE HRESULT ITfThreadMgr_CreateDocumentMgr(ITfThreadMgr* This,ITfDocumentMgr **ppdim) {
    577     return This->lpVtbl->CreateDocumentMgr(This,ppdim);
    578 }
    579 static FORCEINLINE HRESULT ITfThreadMgr_EnumDocumentMgrs(ITfThreadMgr* This,IEnumTfDocumentMgrs **ppEnum) {
    580     return This->lpVtbl->EnumDocumentMgrs(This,ppEnum);
    581 }
    582 static FORCEINLINE HRESULT ITfThreadMgr_GetFocus(ITfThreadMgr* This,ITfDocumentMgr **ppdimFocus) {
    583     return This->lpVtbl->GetFocus(This,ppdimFocus);
    584 }
    585 static FORCEINLINE HRESULT ITfThreadMgr_SetFocus(ITfThreadMgr* This,ITfDocumentMgr *pdimFocus) {
    586     return This->lpVtbl->SetFocus(This,pdimFocus);
    587 }
    588 static FORCEINLINE HRESULT ITfThreadMgr_AssociateFocus(ITfThreadMgr* This,HWND hwnd,ITfDocumentMgr *pdimNew,ITfDocumentMgr **ppdimPrev) {
    589     return This->lpVtbl->AssociateFocus(This,hwnd,pdimNew,ppdimPrev);
    590 }
    591 static FORCEINLINE HRESULT ITfThreadMgr_IsThreadFocus(ITfThreadMgr* This,WINBOOL *pfThreadFocus) {
    592     return This->lpVtbl->IsThreadFocus(This,pfThreadFocus);
    593 }
    594 static FORCEINLINE HRESULT ITfThreadMgr_GetFunctionProvider(ITfThreadMgr* This,REFCLSID clsid,ITfFunctionProvider **ppFuncProv) {
    595     return This->lpVtbl->GetFunctionProvider(This,clsid,ppFuncProv);
    596 }
    597 static FORCEINLINE HRESULT ITfThreadMgr_EnumFunctionProviders(ITfThreadMgr* This,IEnumTfFunctionProviders **ppEnum) {
    598     return This->lpVtbl->EnumFunctionProviders(This,ppEnum);
    599 }
    600 static FORCEINLINE HRESULT ITfThreadMgr_GetGlobalCompartment(ITfThreadMgr* This,ITfCompartmentMgr **ppCompMgr) {
    601     return This->lpVtbl->GetGlobalCompartment(This,ppCompMgr);
    602 }
    603 #endif
    604 #endif
    605 
    606 #endif
    607 
    608 HRESULT STDMETHODCALLTYPE ITfThreadMgr_Activate_Proxy(
    609     ITfThreadMgr* This,
    610     TfClientId *ptid);
    611 void __RPC_STUB ITfThreadMgr_Activate_Stub(
    612     IRpcStubBuffer* This,
    613     IRpcChannelBuffer* pRpcChannelBuffer,
    614     PRPC_MESSAGE pRpcMessage,
    615     DWORD* pdwStubPhase);
    616 HRESULT STDMETHODCALLTYPE ITfThreadMgr_Deactivate_Proxy(
    617     ITfThreadMgr* This);
    618 void __RPC_STUB ITfThreadMgr_Deactivate_Stub(
    619     IRpcStubBuffer* This,
    620     IRpcChannelBuffer* pRpcChannelBuffer,
    621     PRPC_MESSAGE pRpcMessage,
    622     DWORD* pdwStubPhase);
    623 HRESULT STDMETHODCALLTYPE ITfThreadMgr_CreateDocumentMgr_Proxy(
    624     ITfThreadMgr* This,
    625     ITfDocumentMgr **ppdim);
    626 void __RPC_STUB ITfThreadMgr_CreateDocumentMgr_Stub(
    627     IRpcStubBuffer* This,
    628     IRpcChannelBuffer* pRpcChannelBuffer,
    629     PRPC_MESSAGE pRpcMessage,
    630     DWORD* pdwStubPhase);
    631 HRESULT STDMETHODCALLTYPE ITfThreadMgr_EnumDocumentMgrs_Proxy(
    632     ITfThreadMgr* This,
    633     IEnumTfDocumentMgrs **ppEnum);
    634 void __RPC_STUB ITfThreadMgr_EnumDocumentMgrs_Stub(
    635     IRpcStubBuffer* This,
    636     IRpcChannelBuffer* pRpcChannelBuffer,
    637     PRPC_MESSAGE pRpcMessage,
    638     DWORD* pdwStubPhase);
    639 HRESULT STDMETHODCALLTYPE ITfThreadMgr_GetFocus_Proxy(
    640     ITfThreadMgr* This,
    641     ITfDocumentMgr **ppdimFocus);
    642 void __RPC_STUB ITfThreadMgr_GetFocus_Stub(
    643     IRpcStubBuffer* This,
    644     IRpcChannelBuffer* pRpcChannelBuffer,
    645     PRPC_MESSAGE pRpcMessage,
    646     DWORD* pdwStubPhase);
    647 HRESULT STDMETHODCALLTYPE ITfThreadMgr_SetFocus_Proxy(
    648     ITfThreadMgr* This,
    649     ITfDocumentMgr *pdimFocus);
    650 void __RPC_STUB ITfThreadMgr_SetFocus_Stub(
    651     IRpcStubBuffer* This,
    652     IRpcChannelBuffer* pRpcChannelBuffer,
    653     PRPC_MESSAGE pRpcMessage,
    654     DWORD* pdwStubPhase);
    655 HRESULT STDMETHODCALLTYPE ITfThreadMgr_AssociateFocus_Proxy(
    656     ITfThreadMgr* This,
    657     HWND hwnd,
    658     ITfDocumentMgr *pdimNew,
    659     ITfDocumentMgr **ppdimPrev);
    660 void __RPC_STUB ITfThreadMgr_AssociateFocus_Stub(
    661     IRpcStubBuffer* This,
    662     IRpcChannelBuffer* pRpcChannelBuffer,
    663     PRPC_MESSAGE pRpcMessage,
    664     DWORD* pdwStubPhase);
    665 HRESULT STDMETHODCALLTYPE ITfThreadMgr_IsThreadFocus_Proxy(
    666     ITfThreadMgr* This,
    667     WINBOOL *pfThreadFocus);
    668 void __RPC_STUB ITfThreadMgr_IsThreadFocus_Stub(
    669     IRpcStubBuffer* This,
    670     IRpcChannelBuffer* pRpcChannelBuffer,
    671     PRPC_MESSAGE pRpcMessage,
    672     DWORD* pdwStubPhase);
    673 HRESULT STDMETHODCALLTYPE ITfThreadMgr_GetFunctionProvider_Proxy(
    674     ITfThreadMgr* This,
    675     REFCLSID clsid,
    676     ITfFunctionProvider **ppFuncProv);
    677 void __RPC_STUB ITfThreadMgr_GetFunctionProvider_Stub(
    678     IRpcStubBuffer* This,
    679     IRpcChannelBuffer* pRpcChannelBuffer,
    680     PRPC_MESSAGE pRpcMessage,
    681     DWORD* pdwStubPhase);
    682 HRESULT STDMETHODCALLTYPE ITfThreadMgr_EnumFunctionProviders_Proxy(
    683     ITfThreadMgr* This,
    684     IEnumTfFunctionProviders **ppEnum);
    685 void __RPC_STUB ITfThreadMgr_EnumFunctionProviders_Stub(
    686     IRpcStubBuffer* This,
    687     IRpcChannelBuffer* pRpcChannelBuffer,
    688     PRPC_MESSAGE pRpcMessage,
    689     DWORD* pdwStubPhase);
    690 HRESULT STDMETHODCALLTYPE ITfThreadMgr_GetGlobalCompartment_Proxy(
    691     ITfThreadMgr* This,
    692     ITfCompartmentMgr **ppCompMgr);
    693 void __RPC_STUB ITfThreadMgr_GetGlobalCompartment_Stub(
    694     IRpcStubBuffer* This,
    695     IRpcChannelBuffer* pRpcChannelBuffer,
    696     PRPC_MESSAGE pRpcMessage,
    697     DWORD* pdwStubPhase);
    698 
    699 #endif  /* __ITfThreadMgr_INTERFACE_DEFINED__ */
    700 
    701 /*****************************************************************************
    702  * ITfCompositionView interface
    703  */
    704 #ifndef __ITfCompositionView_INTERFACE_DEFINED__
    705 #define __ITfCompositionView_INTERFACE_DEFINED__
    706 
    707 DEFINE_GUID(IID_ITfCompositionView, 0xd7540241, 0xf9a1, 0x4364, 0xbe,0xfc, 0xdb,0xcd,0x2c,0x43,0x95,0xb7);
    708 #if defined(__cplusplus) && !defined(CINTERFACE)
    709 MIDL_INTERFACE("d7540241-f9a1-4364-befc-dbcd2c4395b7")
    710 ITfCompositionView : public IUnknown
    711 {
    712     virtual HRESULT STDMETHODCALLTYPE GetOwnerClsid(
    713         CLSID *pclsid) = 0;
    714 
    715     virtual HRESULT STDMETHODCALLTYPE GetRange(
    716         ITfRange **ppRange) = 0;
    717 
    718 };
    719 #ifdef __CRT_UUID_DECL
    720 __CRT_UUID_DECL(ITfCompositionView, 0xd7540241, 0xf9a1, 0x4364, 0xbe,0xfc, 0xdb,0xcd,0x2c,0x43,0x95,0xb7)
    721 #endif
    722 #else
    723 typedef struct ITfCompositionViewVtbl {
    724     BEGIN_INTERFACE
    725 
    726     /*** IUnknown methods ***/
    727     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    728         ITfCompositionView* This,
    729         REFIID riid,
    730         void **ppvObject);
    731 
    732     ULONG (STDMETHODCALLTYPE *AddRef)(
    733         ITfCompositionView* This);
    734 
    735     ULONG (STDMETHODCALLTYPE *Release)(
    736         ITfCompositionView* This);
    737 
    738     /*** ITfCompositionView methods ***/
    739     HRESULT (STDMETHODCALLTYPE *GetOwnerClsid)(
    740         ITfCompositionView* This,
    741         CLSID *pclsid);
    742 
    743     HRESULT (STDMETHODCALLTYPE *GetRange)(
    744         ITfCompositionView* This,
    745         ITfRange **ppRange);
    746 
    747     END_INTERFACE
    748 } ITfCompositionViewVtbl;
    749 interface ITfCompositionView {
    750     CONST_VTBL ITfCompositionViewVtbl* lpVtbl;
    751 };
    752 
    753 #ifdef COBJMACROS
    754 #ifndef WIDL_C_INLINE_WRAPPERS
    755 /*** IUnknown methods ***/
    756 #define ITfCompositionView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    757 #define ITfCompositionView_AddRef(This) (This)->lpVtbl->AddRef(This)
    758 #define ITfCompositionView_Release(This) (This)->lpVtbl->Release(This)
    759 /*** ITfCompositionView methods ***/
    760 #define ITfCompositionView_GetOwnerClsid(This,pclsid) (This)->lpVtbl->GetOwnerClsid(This,pclsid)
    761 #define ITfCompositionView_GetRange(This,ppRange) (This)->lpVtbl->GetRange(This,ppRange)
    762 #else
    763 /*** IUnknown methods ***/
    764 static FORCEINLINE HRESULT ITfCompositionView_QueryInterface(ITfCompositionView* This,REFIID riid,void **ppvObject) {
    765     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    766 }
    767 static FORCEINLINE ULONG ITfCompositionView_AddRef(ITfCompositionView* This) {
    768     return This->lpVtbl->AddRef(This);
    769 }
    770 static FORCEINLINE ULONG ITfCompositionView_Release(ITfCompositionView* This) {
    771     return This->lpVtbl->Release(This);
    772 }
    773 /*** ITfCompositionView methods ***/
    774 static FORCEINLINE HRESULT ITfCompositionView_GetOwnerClsid(ITfCompositionView* This,CLSID *pclsid) {
    775     return This->lpVtbl->GetOwnerClsid(This,pclsid);
    776 }
    777 static FORCEINLINE HRESULT ITfCompositionView_GetRange(ITfCompositionView* This,ITfRange **ppRange) {
    778     return This->lpVtbl->GetRange(This,ppRange);
    779 }
    780 #endif
    781 #endif
    782 
    783 #endif
    784 
    785 HRESULT STDMETHODCALLTYPE ITfCompositionView_GetOwnerClsid_Proxy(
    786     ITfCompositionView* This,
    787     CLSID *pclsid);
    788 void __RPC_STUB ITfCompositionView_GetOwnerClsid_Stub(
    789     IRpcStubBuffer* This,
    790     IRpcChannelBuffer* pRpcChannelBuffer,
    791     PRPC_MESSAGE pRpcMessage,
    792     DWORD* pdwStubPhase);
    793 HRESULT STDMETHODCALLTYPE ITfCompositionView_GetRange_Proxy(
    794     ITfCompositionView* This,
    795     ITfRange **ppRange);
    796 void __RPC_STUB ITfCompositionView_GetRange_Stub(
    797     IRpcStubBuffer* This,
    798     IRpcChannelBuffer* pRpcChannelBuffer,
    799     PRPC_MESSAGE pRpcMessage,
    800     DWORD* pdwStubPhase);
    801 
    802 #endif  /* __ITfCompositionView_INTERFACE_DEFINED__ */
    803 
    804 /*****************************************************************************
    805  * ITfDocumentMgr interface
    806  */
    807 #ifndef __ITfDocumentMgr_INTERFACE_DEFINED__
    808 #define __ITfDocumentMgr_INTERFACE_DEFINED__
    809 
    810 #define TF_POPF_ALL (0x1)
    811 
    812 DEFINE_GUID(IID_ITfDocumentMgr, 0xaa80e7f4, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
    813 #if defined(__cplusplus) && !defined(CINTERFACE)
    814 MIDL_INTERFACE("aa80e7f4-2021-11d2-93e0-0060b067b86e")
    815 ITfDocumentMgr : public IUnknown
    816 {
    817     virtual HRESULT STDMETHODCALLTYPE CreateContext(
    818         TfClientId tidOwner,
    819         DWORD dwFlags,
    820         IUnknown *punk,
    821         ITfContext **ppic,
    822         TfEditCookie *pecTextStore) = 0;
    823 
    824     virtual HRESULT STDMETHODCALLTYPE Push(
    825         ITfContext *pic) = 0;
    826 
    827     virtual HRESULT STDMETHODCALLTYPE Pop(
    828         DWORD dwFlags) = 0;
    829 
    830     virtual HRESULT STDMETHODCALLTYPE GetTop(
    831         ITfContext **ppic) = 0;
    832 
    833     virtual HRESULT STDMETHODCALLTYPE GetBase(
    834         ITfContext **ppic) = 0;
    835 
    836     virtual HRESULT STDMETHODCALLTYPE EnumContexts(
    837         IEnumTfContexts **ppEnum) = 0;
    838 
    839 };
    840 #ifdef __CRT_UUID_DECL
    841 __CRT_UUID_DECL(ITfDocumentMgr, 0xaa80e7f4, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
    842 #endif
    843 #else
    844 typedef struct ITfDocumentMgrVtbl {
    845     BEGIN_INTERFACE
    846 
    847     /*** IUnknown methods ***/
    848     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    849         ITfDocumentMgr* This,
    850         REFIID riid,
    851         void **ppvObject);
    852 
    853     ULONG (STDMETHODCALLTYPE *AddRef)(
    854         ITfDocumentMgr* This);
    855 
    856     ULONG (STDMETHODCALLTYPE *Release)(
    857         ITfDocumentMgr* This);
    858 
    859     /*** ITfDocumentMgr methods ***/
    860     HRESULT (STDMETHODCALLTYPE *CreateContext)(
    861         ITfDocumentMgr* This,
    862         TfClientId tidOwner,
    863         DWORD dwFlags,
    864         IUnknown *punk,
    865         ITfContext **ppic,
    866         TfEditCookie *pecTextStore);
    867 
    868     HRESULT (STDMETHODCALLTYPE *Push)(
    869         ITfDocumentMgr* This,
    870         ITfContext *pic);
    871 
    872     HRESULT (STDMETHODCALLTYPE *Pop)(
    873         ITfDocumentMgr* This,
    874         DWORD dwFlags);
    875 
    876     HRESULT (STDMETHODCALLTYPE *GetTop)(
    877         ITfDocumentMgr* This,
    878         ITfContext **ppic);
    879 
    880     HRESULT (STDMETHODCALLTYPE *GetBase)(
    881         ITfDocumentMgr* This,
    882         ITfContext **ppic);
    883 
    884     HRESULT (STDMETHODCALLTYPE *EnumContexts)(
    885         ITfDocumentMgr* This,
    886         IEnumTfContexts **ppEnum);
    887 
    888     END_INTERFACE
    889 } ITfDocumentMgrVtbl;
    890 interface ITfDocumentMgr {
    891     CONST_VTBL ITfDocumentMgrVtbl* lpVtbl;
    892 };
    893 
    894 #ifdef COBJMACROS
    895 #ifndef WIDL_C_INLINE_WRAPPERS
    896 /*** IUnknown methods ***/
    897 #define ITfDocumentMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    898 #define ITfDocumentMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
    899 #define ITfDocumentMgr_Release(This) (This)->lpVtbl->Release(This)
    900 /*** ITfDocumentMgr methods ***/
    901 #define ITfDocumentMgr_CreateContext(This,tidOwner,dwFlags,punk,ppic,pecTextStore) (This)->lpVtbl->CreateContext(This,tidOwner,dwFlags,punk,ppic,pecTextStore)
    902 #define ITfDocumentMgr_Push(This,pic) (This)->lpVtbl->Push(This,pic)
    903 #define ITfDocumentMgr_Pop(This,dwFlags) (This)->lpVtbl->Pop(This,dwFlags)
    904 #define ITfDocumentMgr_GetTop(This,ppic) (This)->lpVtbl->GetTop(This,ppic)
    905 #define ITfDocumentMgr_GetBase(This,ppic) (This)->lpVtbl->GetBase(This,ppic)
    906 #define ITfDocumentMgr_EnumContexts(This,ppEnum) (This)->lpVtbl->EnumContexts(This,ppEnum)
    907 #else
    908 /*** IUnknown methods ***/
    909 static FORCEINLINE HRESULT ITfDocumentMgr_QueryInterface(ITfDocumentMgr* This,REFIID riid,void **ppvObject) {
    910     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    911 }
    912 static FORCEINLINE ULONG ITfDocumentMgr_AddRef(ITfDocumentMgr* This) {
    913     return This->lpVtbl->AddRef(This);
    914 }
    915 static FORCEINLINE ULONG ITfDocumentMgr_Release(ITfDocumentMgr* This) {
    916     return This->lpVtbl->Release(This);
    917 }
    918 /*** ITfDocumentMgr methods ***/
    919 static FORCEINLINE HRESULT ITfDocumentMgr_CreateContext(ITfDocumentMgr* This,TfClientId tidOwner,DWORD dwFlags,IUnknown *punk,ITfContext **ppic,TfEditCookie *pecTextStore) {
    920     return This->lpVtbl->CreateContext(This,tidOwner,dwFlags,punk,ppic,pecTextStore);
    921 }
    922 static FORCEINLINE HRESULT ITfDocumentMgr_Push(ITfDocumentMgr* This,ITfContext *pic) {
    923     return This->lpVtbl->Push(This,pic);
    924 }
    925 static FORCEINLINE HRESULT ITfDocumentMgr_Pop(ITfDocumentMgr* This,DWORD dwFlags) {
    926     return This->lpVtbl->Pop(This,dwFlags);
    927 }
    928 static FORCEINLINE HRESULT ITfDocumentMgr_GetTop(ITfDocumentMgr* This,ITfContext **ppic) {
    929     return This->lpVtbl->GetTop(This,ppic);
    930 }
    931 static FORCEINLINE HRESULT ITfDocumentMgr_GetBase(ITfDocumentMgr* This,ITfContext **ppic) {
    932     return This->lpVtbl->GetBase(This,ppic);
    933 }
    934 static FORCEINLINE HRESULT ITfDocumentMgr_EnumContexts(ITfDocumentMgr* This,IEnumTfContexts **ppEnum) {
    935     return This->lpVtbl->EnumContexts(This,ppEnum);
    936 }
    937 #endif
    938 #endif
    939 
    940 #endif
    941 
    942 HRESULT STDMETHODCALLTYPE ITfDocumentMgr_CreateContext_Proxy(
    943     ITfDocumentMgr* This,
    944     TfClientId tidOwner,
    945     DWORD dwFlags,
    946     IUnknown *punk,
    947     ITfContext **ppic,
    948     TfEditCookie *pecTextStore);
    949 void __RPC_STUB ITfDocumentMgr_CreateContext_Stub(
    950     IRpcStubBuffer* This,
    951     IRpcChannelBuffer* pRpcChannelBuffer,
    952     PRPC_MESSAGE pRpcMessage,
    953     DWORD* pdwStubPhase);
    954 HRESULT STDMETHODCALLTYPE ITfDocumentMgr_Push_Proxy(
    955     ITfDocumentMgr* This,
    956     ITfContext *pic);
    957 void __RPC_STUB ITfDocumentMgr_Push_Stub(
    958     IRpcStubBuffer* This,
    959     IRpcChannelBuffer* pRpcChannelBuffer,
    960     PRPC_MESSAGE pRpcMessage,
    961     DWORD* pdwStubPhase);
    962 HRESULT STDMETHODCALLTYPE ITfDocumentMgr_Pop_Proxy(
    963     ITfDocumentMgr* This,
    964     DWORD dwFlags);
    965 void __RPC_STUB ITfDocumentMgr_Pop_Stub(
    966     IRpcStubBuffer* This,
    967     IRpcChannelBuffer* pRpcChannelBuffer,
    968     PRPC_MESSAGE pRpcMessage,
    969     DWORD* pdwStubPhase);
    970 HRESULT STDMETHODCALLTYPE ITfDocumentMgr_GetTop_Proxy(
    971     ITfDocumentMgr* This,
    972     ITfContext **ppic);
    973 void __RPC_STUB ITfDocumentMgr_GetTop_Stub(
    974     IRpcStubBuffer* This,
    975     IRpcChannelBuffer* pRpcChannelBuffer,
    976     PRPC_MESSAGE pRpcMessage,
    977     DWORD* pdwStubPhase);
    978 HRESULT STDMETHODCALLTYPE ITfDocumentMgr_GetBase_Proxy(
    979     ITfDocumentMgr* This,
    980     ITfContext **ppic);
    981 void __RPC_STUB ITfDocumentMgr_GetBase_Stub(
    982     IRpcStubBuffer* This,
    983     IRpcChannelBuffer* pRpcChannelBuffer,
    984     PRPC_MESSAGE pRpcMessage,
    985     DWORD* pdwStubPhase);
    986 HRESULT STDMETHODCALLTYPE ITfDocumentMgr_EnumContexts_Proxy(
    987     ITfDocumentMgr* This,
    988     IEnumTfContexts **ppEnum);
    989 void __RPC_STUB ITfDocumentMgr_EnumContexts_Stub(
    990     IRpcStubBuffer* This,
    991     IRpcChannelBuffer* pRpcChannelBuffer,
    992     PRPC_MESSAGE pRpcMessage,
    993     DWORD* pdwStubPhase);
    994 
    995 #endif  /* __ITfDocumentMgr_INTERFACE_DEFINED__ */
    996 
    997 /*****************************************************************************
    998  * ITfContext interface
    999  */
   1000 #ifndef __ITfContext_INTERFACE_DEFINED__
   1001 #define __ITfContext_INTERFACE_DEFINED__
   1002 
   1003 #define TF_ES_ASYNCDONTCARE (0x0)
   1004 
   1005 #define TF_ES_SYNC (0x1)
   1006 
   1007 #define TF_ES_READ (0x2)
   1008 
   1009 #define TF_ES_READWRITE (0x6)
   1010 
   1011 #define TF_ES_ASYNC (0x8)
   1012 
   1013 typedef enum __WIDL_msctf_generated_name_00000001 {
   1014     TF_AE_NONE = 0,
   1015     TF_AE_START = 1,
   1016     TF_AE_END = 2
   1017 } TfActiveSelEnd;
   1018 typedef struct TF_SELECTIONSTYLE {
   1019     TfActiveSelEnd ase;
   1020     WINBOOL fInterimChar;
   1021 } TF_SELECTIONSTYLE;
   1022 typedef struct TF_SELECTION {
   1023     ITfRange *range;
   1024     TF_SELECTIONSTYLE style;
   1025 } TF_SELECTION;
   1026 #define TF_DEFAULT_SELECTION (TS_DEFAULT_SELECTION)
   1027 
   1028 typedef TS_STATUS TF_STATUS;
   1029 #define TF_SD_READONLY (TS_SD_READONLY)
   1030 
   1031 #define TF_SD_LOADING (TS_SD_LOADING)
   1032 
   1033 #define TF_SS_DISJOINTSEL (TS_SS_DISJOINTSEL)
   1034 
   1035 #define TF_SS_REGIONS (TS_SS_REGIONS)
   1036 
   1037 #define TF_SS_TRANSITORY (TS_SS_TRANSITORY)
   1038 
   1039 DEFINE_GUID(IID_ITfContext, 0xaa80e7fd, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
   1040 #if defined(__cplusplus) && !defined(CINTERFACE)
   1041 MIDL_INTERFACE("aa80e7fd-2021-11d2-93e0-0060b067b86e")
   1042 ITfContext : public IUnknown
   1043 {
   1044     virtual HRESULT STDMETHODCALLTYPE RequestEditSession(
   1045         TfClientId tid,
   1046         ITfEditSession *pes,
   1047         DWORD dwFlags,
   1048         HRESULT *phrSession) = 0;
   1049 
   1050     virtual HRESULT STDMETHODCALLTYPE InWriteSession(
   1051         TfClientId tid,
   1052         WINBOOL *pfWriteSession) = 0;
   1053 
   1054     virtual HRESULT STDMETHODCALLTYPE GetSelection(
   1055         TfEditCookie ec,
   1056         ULONG ulIndex,
   1057         ULONG ulCount,
   1058         TF_SELECTION *pSelection,
   1059         ULONG *pcFetched) = 0;
   1060 
   1061     virtual HRESULT STDMETHODCALLTYPE SetSelection(
   1062         TfEditCookie ec,
   1063         ULONG ulCount,
   1064         const TF_SELECTION *pSelection) = 0;
   1065 
   1066     virtual HRESULT STDMETHODCALLTYPE GetStart(
   1067         TfEditCookie ec,
   1068         ITfRange **ppStart) = 0;
   1069 
   1070     virtual HRESULT STDMETHODCALLTYPE GetEnd(
   1071         TfEditCookie ec,
   1072         ITfRange **ppEnd) = 0;
   1073 
   1074     virtual HRESULT STDMETHODCALLTYPE GetActiveView(
   1075         ITfContextView **ppView) = 0;
   1076 
   1077     virtual HRESULT STDMETHODCALLTYPE EnumViews(
   1078         IEnumTfContextViews **ppEnum) = 0;
   1079 
   1080     virtual HRESULT STDMETHODCALLTYPE GetStatus(
   1081         TF_STATUS *pdcs) = 0;
   1082 
   1083     virtual HRESULT STDMETHODCALLTYPE GetProperty(
   1084         REFGUID guidProp,
   1085         ITfProperty **ppProp) = 0;
   1086 
   1087     virtual HRESULT STDMETHODCALLTYPE GetAppProperty(
   1088         REFGUID guidProp,
   1089         ITfReadOnlyProperty **ppProp) = 0;
   1090 
   1091     virtual HRESULT STDMETHODCALLTYPE TrackProperties(
   1092         const GUID **prgProp,
   1093         ULONG cProp,
   1094         const GUID **prgAppProp,
   1095         ULONG cAppProp,
   1096         ITfReadOnlyProperty **ppProperty) = 0;
   1097 
   1098     virtual HRESULT STDMETHODCALLTYPE EnumProperties(
   1099         IEnumTfProperties **ppEnum) = 0;
   1100 
   1101     virtual HRESULT STDMETHODCALLTYPE GetDocumentMgr(
   1102         ITfDocumentMgr **ppDm) = 0;
   1103 
   1104     virtual HRESULT STDMETHODCALLTYPE CreateRangeBackup(
   1105         TfEditCookie ec,
   1106         ITfRange *pRange,
   1107         ITfRangeBackup **ppBackup) = 0;
   1108 
   1109 };
   1110 #ifdef __CRT_UUID_DECL
   1111 __CRT_UUID_DECL(ITfContext, 0xaa80e7fd, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
   1112 #endif
   1113 #else
   1114 typedef struct ITfContextVtbl {
   1115     BEGIN_INTERFACE
   1116 
   1117     /*** IUnknown methods ***/
   1118     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1119         ITfContext* This,
   1120         REFIID riid,
   1121         void **ppvObject);
   1122 
   1123     ULONG (STDMETHODCALLTYPE *AddRef)(
   1124         ITfContext* This);
   1125 
   1126     ULONG (STDMETHODCALLTYPE *Release)(
   1127         ITfContext* This);
   1128 
   1129     /*** ITfContext methods ***/
   1130     HRESULT (STDMETHODCALLTYPE *RequestEditSession)(
   1131         ITfContext* This,
   1132         TfClientId tid,
   1133         ITfEditSession *pes,
   1134         DWORD dwFlags,
   1135         HRESULT *phrSession);
   1136 
   1137     HRESULT (STDMETHODCALLTYPE *InWriteSession)(
   1138         ITfContext* This,
   1139         TfClientId tid,
   1140         WINBOOL *pfWriteSession);
   1141 
   1142     HRESULT (STDMETHODCALLTYPE *GetSelection)(
   1143         ITfContext* This,
   1144         TfEditCookie ec,
   1145         ULONG ulIndex,
   1146         ULONG ulCount,
   1147         TF_SELECTION *pSelection,
   1148         ULONG *pcFetched);
   1149 
   1150     HRESULT (STDMETHODCALLTYPE *SetSelection)(
   1151         ITfContext* This,
   1152         TfEditCookie ec,
   1153         ULONG ulCount,
   1154         const TF_SELECTION *pSelection);
   1155 
   1156     HRESULT (STDMETHODCALLTYPE *GetStart)(
   1157         ITfContext* This,
   1158         TfEditCookie ec,
   1159         ITfRange **ppStart);
   1160 
   1161     HRESULT (STDMETHODCALLTYPE *GetEnd)(
   1162         ITfContext* This,
   1163         TfEditCookie ec,
   1164         ITfRange **ppEnd);
   1165 
   1166     HRESULT (STDMETHODCALLTYPE *GetActiveView)(
   1167         ITfContext* This,
   1168         ITfContextView **ppView);
   1169 
   1170     HRESULT (STDMETHODCALLTYPE *EnumViews)(
   1171         ITfContext* This,
   1172         IEnumTfContextViews **ppEnum);
   1173 
   1174     HRESULT (STDMETHODCALLTYPE *GetStatus)(
   1175         ITfContext* This,
   1176         TF_STATUS *pdcs);
   1177 
   1178     HRESULT (STDMETHODCALLTYPE *GetProperty)(
   1179         ITfContext* This,
   1180         REFGUID guidProp,
   1181         ITfProperty **ppProp);
   1182 
   1183     HRESULT (STDMETHODCALLTYPE *GetAppProperty)(
   1184         ITfContext* This,
   1185         REFGUID guidProp,
   1186         ITfReadOnlyProperty **ppProp);
   1187 
   1188     HRESULT (STDMETHODCALLTYPE *TrackProperties)(
   1189         ITfContext* This,
   1190         const GUID **prgProp,
   1191         ULONG cProp,
   1192         const GUID **prgAppProp,
   1193         ULONG cAppProp,
   1194         ITfReadOnlyProperty **ppProperty);
   1195 
   1196     HRESULT (STDMETHODCALLTYPE *EnumProperties)(
   1197         ITfContext* This,
   1198         IEnumTfProperties **ppEnum);
   1199 
   1200     HRESULT (STDMETHODCALLTYPE *GetDocumentMgr)(
   1201         ITfContext* This,
   1202         ITfDocumentMgr **ppDm);
   1203 
   1204     HRESULT (STDMETHODCALLTYPE *CreateRangeBackup)(
   1205         ITfContext* This,
   1206         TfEditCookie ec,
   1207         ITfRange *pRange,
   1208         ITfRangeBackup **ppBackup);
   1209 
   1210     END_INTERFACE
   1211 } ITfContextVtbl;
   1212 interface ITfContext {
   1213     CONST_VTBL ITfContextVtbl* lpVtbl;
   1214 };
   1215 
   1216 #ifdef COBJMACROS
   1217 #ifndef WIDL_C_INLINE_WRAPPERS
   1218 /*** IUnknown methods ***/
   1219 #define ITfContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1220 #define ITfContext_AddRef(This) (This)->lpVtbl->AddRef(This)
   1221 #define ITfContext_Release(This) (This)->lpVtbl->Release(This)
   1222 /*** ITfContext methods ***/
   1223 #define ITfContext_RequestEditSession(This,tid,pes,dwFlags,phrSession) (This)->lpVtbl->RequestEditSession(This,tid,pes,dwFlags,phrSession)
   1224 #define ITfContext_InWriteSession(This,tid,pfWriteSession) (This)->lpVtbl->InWriteSession(This,tid,pfWriteSession)
   1225 #define ITfContext_GetSelection(This,ec,ulIndex,ulCount,pSelection,pcFetched) (This)->lpVtbl->GetSelection(This,ec,ulIndex,ulCount,pSelection,pcFetched)
   1226 #define ITfContext_SetSelection(This,ec,ulCount,pSelection) (This)->lpVtbl->SetSelection(This,ec,ulCount,pSelection)
   1227 #define ITfContext_GetStart(This,ec,ppStart) (This)->lpVtbl->GetStart(This,ec,ppStart)
   1228 #define ITfContext_GetEnd(This,ec,ppEnd) (This)->lpVtbl->GetEnd(This,ec,ppEnd)
   1229 #define ITfContext_GetActiveView(This,ppView) (This)->lpVtbl->GetActiveView(This,ppView)
   1230 #define ITfContext_EnumViews(This,ppEnum) (This)->lpVtbl->EnumViews(This,ppEnum)
   1231 #define ITfContext_GetStatus(This,pdcs) (This)->lpVtbl->GetStatus(This,pdcs)
   1232 #define ITfContext_GetProperty(This,guidProp,ppProp) (This)->lpVtbl->GetProperty(This,guidProp,ppProp)
   1233 #define ITfContext_GetAppProperty(This,guidProp,ppProp) (This)->lpVtbl->GetAppProperty(This,guidProp,ppProp)
   1234 #define ITfContext_TrackProperties(This,prgProp,cProp,prgAppProp,cAppProp,ppProperty) (This)->lpVtbl->TrackProperties(This,prgProp,cProp,prgAppProp,cAppProp,ppProperty)
   1235 #define ITfContext_EnumProperties(This,ppEnum) (This)->lpVtbl->EnumProperties(This,ppEnum)
   1236 #define ITfContext_GetDocumentMgr(This,ppDm) (This)->lpVtbl->GetDocumentMgr(This,ppDm)
   1237 #define ITfContext_CreateRangeBackup(This,ec,pRange,ppBackup) (This)->lpVtbl->CreateRangeBackup(This,ec,pRange,ppBackup)
   1238 #else
   1239 /*** IUnknown methods ***/
   1240 static FORCEINLINE HRESULT ITfContext_QueryInterface(ITfContext* This,REFIID riid,void **ppvObject) {
   1241     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1242 }
   1243 static FORCEINLINE ULONG ITfContext_AddRef(ITfContext* This) {
   1244     return This->lpVtbl->AddRef(This);
   1245 }
   1246 static FORCEINLINE ULONG ITfContext_Release(ITfContext* This) {
   1247     return This->lpVtbl->Release(This);
   1248 }
   1249 /*** ITfContext methods ***/
   1250 static FORCEINLINE HRESULT ITfContext_RequestEditSession(ITfContext* This,TfClientId tid,ITfEditSession *pes,DWORD dwFlags,HRESULT *phrSession) {
   1251     return This->lpVtbl->RequestEditSession(This,tid,pes,dwFlags,phrSession);
   1252 }
   1253 static FORCEINLINE HRESULT ITfContext_InWriteSession(ITfContext* This,TfClientId tid,WINBOOL *pfWriteSession) {
   1254     return This->lpVtbl->InWriteSession(This,tid,pfWriteSession);
   1255 }
   1256 static FORCEINLINE HRESULT ITfContext_GetSelection(ITfContext* This,TfEditCookie ec,ULONG ulIndex,ULONG ulCount,TF_SELECTION *pSelection,ULONG *pcFetched) {
   1257     return This->lpVtbl->GetSelection(This,ec,ulIndex,ulCount,pSelection,pcFetched);
   1258 }
   1259 static FORCEINLINE HRESULT ITfContext_SetSelection(ITfContext* This,TfEditCookie ec,ULONG ulCount,const TF_SELECTION *pSelection) {
   1260     return This->lpVtbl->SetSelection(This,ec,ulCount,pSelection);
   1261 }
   1262 static FORCEINLINE HRESULT ITfContext_GetStart(ITfContext* This,TfEditCookie ec,ITfRange **ppStart) {
   1263     return This->lpVtbl->GetStart(This,ec,ppStart);
   1264 }
   1265 static FORCEINLINE HRESULT ITfContext_GetEnd(ITfContext* This,TfEditCookie ec,ITfRange **ppEnd) {
   1266     return This->lpVtbl->GetEnd(This,ec,ppEnd);
   1267 }
   1268 static FORCEINLINE HRESULT ITfContext_GetActiveView(ITfContext* This,ITfContextView **ppView) {
   1269     return This->lpVtbl->GetActiveView(This,ppView);
   1270 }
   1271 static FORCEINLINE HRESULT ITfContext_EnumViews(ITfContext* This,IEnumTfContextViews **ppEnum) {
   1272     return This->lpVtbl->EnumViews(This,ppEnum);
   1273 }
   1274 static FORCEINLINE HRESULT ITfContext_GetStatus(ITfContext* This,TF_STATUS *pdcs) {
   1275     return This->lpVtbl->GetStatus(This,pdcs);
   1276 }
   1277 static FORCEINLINE HRESULT ITfContext_GetProperty(ITfContext* This,REFGUID guidProp,ITfProperty **ppProp) {
   1278     return This->lpVtbl->GetProperty(This,guidProp,ppProp);
   1279 }
   1280 static FORCEINLINE HRESULT ITfContext_GetAppProperty(ITfContext* This,REFGUID guidProp,ITfReadOnlyProperty **ppProp) {
   1281     return This->lpVtbl->GetAppProperty(This,guidProp,ppProp);
   1282 }
   1283 static FORCEINLINE HRESULT ITfContext_TrackProperties(ITfContext* This,const GUID **prgProp,ULONG cProp,const GUID **prgAppProp,ULONG cAppProp,ITfReadOnlyProperty **ppProperty) {
   1284     return This->lpVtbl->TrackProperties(This,prgProp,cProp,prgAppProp,cAppProp,ppProperty);
   1285 }
   1286 static FORCEINLINE HRESULT ITfContext_EnumProperties(ITfContext* This,IEnumTfProperties **ppEnum) {
   1287     return This->lpVtbl->EnumProperties(This,ppEnum);
   1288 }
   1289 static FORCEINLINE HRESULT ITfContext_GetDocumentMgr(ITfContext* This,ITfDocumentMgr **ppDm) {
   1290     return This->lpVtbl->GetDocumentMgr(This,ppDm);
   1291 }
   1292 static FORCEINLINE HRESULT ITfContext_CreateRangeBackup(ITfContext* This,TfEditCookie ec,ITfRange *pRange,ITfRangeBackup **ppBackup) {
   1293     return This->lpVtbl->CreateRangeBackup(This,ec,pRange,ppBackup);
   1294 }
   1295 #endif
   1296 #endif
   1297 
   1298 #endif
   1299 
   1300 HRESULT STDMETHODCALLTYPE ITfContext_RequestEditSession_Proxy(
   1301     ITfContext* This,
   1302     TfClientId tid,
   1303     ITfEditSession *pes,
   1304     DWORD dwFlags,
   1305     HRESULT *phrSession);
   1306 void __RPC_STUB ITfContext_RequestEditSession_Stub(
   1307     IRpcStubBuffer* This,
   1308     IRpcChannelBuffer* pRpcChannelBuffer,
   1309     PRPC_MESSAGE pRpcMessage,
   1310     DWORD* pdwStubPhase);
   1311 HRESULT STDMETHODCALLTYPE ITfContext_InWriteSession_Proxy(
   1312     ITfContext* This,
   1313     TfClientId tid,
   1314     WINBOOL *pfWriteSession);
   1315 void __RPC_STUB ITfContext_InWriteSession_Stub(
   1316     IRpcStubBuffer* This,
   1317     IRpcChannelBuffer* pRpcChannelBuffer,
   1318     PRPC_MESSAGE pRpcMessage,
   1319     DWORD* pdwStubPhase);
   1320 HRESULT STDMETHODCALLTYPE ITfContext_GetSelection_Proxy(
   1321     ITfContext* This,
   1322     TfEditCookie ec,
   1323     ULONG ulIndex,
   1324     ULONG ulCount,
   1325     TF_SELECTION *pSelection,
   1326     ULONG *pcFetched);
   1327 void __RPC_STUB ITfContext_GetSelection_Stub(
   1328     IRpcStubBuffer* This,
   1329     IRpcChannelBuffer* pRpcChannelBuffer,
   1330     PRPC_MESSAGE pRpcMessage,
   1331     DWORD* pdwStubPhase);
   1332 HRESULT STDMETHODCALLTYPE ITfContext_SetSelection_Proxy(
   1333     ITfContext* This,
   1334     TfEditCookie ec,
   1335     ULONG ulCount,
   1336     const TF_SELECTION *pSelection);
   1337 void __RPC_STUB ITfContext_SetSelection_Stub(
   1338     IRpcStubBuffer* This,
   1339     IRpcChannelBuffer* pRpcChannelBuffer,
   1340     PRPC_MESSAGE pRpcMessage,
   1341     DWORD* pdwStubPhase);
   1342 HRESULT STDMETHODCALLTYPE ITfContext_GetStart_Proxy(
   1343     ITfContext* This,
   1344     TfEditCookie ec,
   1345     ITfRange **ppStart);
   1346 void __RPC_STUB ITfContext_GetStart_Stub(
   1347     IRpcStubBuffer* This,
   1348     IRpcChannelBuffer* pRpcChannelBuffer,
   1349     PRPC_MESSAGE pRpcMessage,
   1350     DWORD* pdwStubPhase);
   1351 HRESULT STDMETHODCALLTYPE ITfContext_GetEnd_Proxy(
   1352     ITfContext* This,
   1353     TfEditCookie ec,
   1354     ITfRange **ppEnd);
   1355 void __RPC_STUB ITfContext_GetEnd_Stub(
   1356     IRpcStubBuffer* This,
   1357     IRpcChannelBuffer* pRpcChannelBuffer,
   1358     PRPC_MESSAGE pRpcMessage,
   1359     DWORD* pdwStubPhase);
   1360 HRESULT STDMETHODCALLTYPE ITfContext_GetActiveView_Proxy(
   1361     ITfContext* This,
   1362     ITfContextView **ppView);
   1363 void __RPC_STUB ITfContext_GetActiveView_Stub(
   1364     IRpcStubBuffer* This,
   1365     IRpcChannelBuffer* pRpcChannelBuffer,
   1366     PRPC_MESSAGE pRpcMessage,
   1367     DWORD* pdwStubPhase);
   1368 HRESULT STDMETHODCALLTYPE ITfContext_EnumViews_Proxy(
   1369     ITfContext* This,
   1370     IEnumTfContextViews **ppEnum);
   1371 void __RPC_STUB ITfContext_EnumViews_Stub(
   1372     IRpcStubBuffer* This,
   1373     IRpcChannelBuffer* pRpcChannelBuffer,
   1374     PRPC_MESSAGE pRpcMessage,
   1375     DWORD* pdwStubPhase);
   1376 HRESULT STDMETHODCALLTYPE ITfContext_GetStatus_Proxy(
   1377     ITfContext* This,
   1378     TF_STATUS *pdcs);
   1379 void __RPC_STUB ITfContext_GetStatus_Stub(
   1380     IRpcStubBuffer* This,
   1381     IRpcChannelBuffer* pRpcChannelBuffer,
   1382     PRPC_MESSAGE pRpcMessage,
   1383     DWORD* pdwStubPhase);
   1384 HRESULT STDMETHODCALLTYPE ITfContext_GetProperty_Proxy(
   1385     ITfContext* This,
   1386     REFGUID guidProp,
   1387     ITfProperty **ppProp);
   1388 void __RPC_STUB ITfContext_GetProperty_Stub(
   1389     IRpcStubBuffer* This,
   1390     IRpcChannelBuffer* pRpcChannelBuffer,
   1391     PRPC_MESSAGE pRpcMessage,
   1392     DWORD* pdwStubPhase);
   1393 HRESULT STDMETHODCALLTYPE ITfContext_GetAppProperty_Proxy(
   1394     ITfContext* This,
   1395     REFGUID guidProp,
   1396     ITfReadOnlyProperty **ppProp);
   1397 void __RPC_STUB ITfContext_GetAppProperty_Stub(
   1398     IRpcStubBuffer* This,
   1399     IRpcChannelBuffer* pRpcChannelBuffer,
   1400     PRPC_MESSAGE pRpcMessage,
   1401     DWORD* pdwStubPhase);
   1402 HRESULT STDMETHODCALLTYPE ITfContext_TrackProperties_Proxy(
   1403     ITfContext* This,
   1404     const GUID **prgProp,
   1405     ULONG cProp,
   1406     const GUID **prgAppProp,
   1407     ULONG cAppProp,
   1408     ITfReadOnlyProperty **ppProperty);
   1409 void __RPC_STUB ITfContext_TrackProperties_Stub(
   1410     IRpcStubBuffer* This,
   1411     IRpcChannelBuffer* pRpcChannelBuffer,
   1412     PRPC_MESSAGE pRpcMessage,
   1413     DWORD* pdwStubPhase);
   1414 HRESULT STDMETHODCALLTYPE ITfContext_EnumProperties_Proxy(
   1415     ITfContext* This,
   1416     IEnumTfProperties **ppEnum);
   1417 void __RPC_STUB ITfContext_EnumProperties_Stub(
   1418     IRpcStubBuffer* This,
   1419     IRpcChannelBuffer* pRpcChannelBuffer,
   1420     PRPC_MESSAGE pRpcMessage,
   1421     DWORD* pdwStubPhase);
   1422 HRESULT STDMETHODCALLTYPE ITfContext_GetDocumentMgr_Proxy(
   1423     ITfContext* This,
   1424     ITfDocumentMgr **ppDm);
   1425 void __RPC_STUB ITfContext_GetDocumentMgr_Stub(
   1426     IRpcStubBuffer* This,
   1427     IRpcChannelBuffer* pRpcChannelBuffer,
   1428     PRPC_MESSAGE pRpcMessage,
   1429     DWORD* pdwStubPhase);
   1430 HRESULT STDMETHODCALLTYPE ITfContext_CreateRangeBackup_Proxy(
   1431     ITfContext* This,
   1432     TfEditCookie ec,
   1433     ITfRange *pRange,
   1434     ITfRangeBackup **ppBackup);
   1435 void __RPC_STUB ITfContext_CreateRangeBackup_Stub(
   1436     IRpcStubBuffer* This,
   1437     IRpcChannelBuffer* pRpcChannelBuffer,
   1438     PRPC_MESSAGE pRpcMessage,
   1439     DWORD* pdwStubPhase);
   1440 
   1441 #endif  /* __ITfContext_INTERFACE_DEFINED__ */
   1442 
   1443 /*****************************************************************************
   1444  * ITfSource interface
   1445  */
   1446 #ifndef __ITfSource_INTERFACE_DEFINED__
   1447 #define __ITfSource_INTERFACE_DEFINED__
   1448 
   1449 DEFINE_GUID(IID_ITfSource, 0x4ea48a35, 0x60ae, 0x446f, 0x8f,0xd6, 0xe6,0xa8,0xd8,0x24,0x59,0xf7);
   1450 #if defined(__cplusplus) && !defined(CINTERFACE)
   1451 MIDL_INTERFACE("4ea48a35-60ae-446f-8fd6-e6a8d82459f7")
   1452 ITfSource : public IUnknown
   1453 {
   1454     virtual HRESULT STDMETHODCALLTYPE AdviseSink(
   1455         REFIID riid,
   1456         IUnknown *punk,
   1457         DWORD *pdwCookie) = 0;
   1458 
   1459     virtual HRESULT STDMETHODCALLTYPE UnadviseSink(
   1460         DWORD dwCookie) = 0;
   1461 
   1462 };
   1463 #ifdef __CRT_UUID_DECL
   1464 __CRT_UUID_DECL(ITfSource, 0x4ea48a35, 0x60ae, 0x446f, 0x8f,0xd6, 0xe6,0xa8,0xd8,0x24,0x59,0xf7)
   1465 #endif
   1466 #else
   1467 typedef struct ITfSourceVtbl {
   1468     BEGIN_INTERFACE
   1469 
   1470     /*** IUnknown methods ***/
   1471     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1472         ITfSource* This,
   1473         REFIID riid,
   1474         void **ppvObject);
   1475 
   1476     ULONG (STDMETHODCALLTYPE *AddRef)(
   1477         ITfSource* This);
   1478 
   1479     ULONG (STDMETHODCALLTYPE *Release)(
   1480         ITfSource* This);
   1481 
   1482     /*** ITfSource methods ***/
   1483     HRESULT (STDMETHODCALLTYPE *AdviseSink)(
   1484         ITfSource* This,
   1485         REFIID riid,
   1486         IUnknown *punk,
   1487         DWORD *pdwCookie);
   1488 
   1489     HRESULT (STDMETHODCALLTYPE *UnadviseSink)(
   1490         ITfSource* This,
   1491         DWORD dwCookie);
   1492 
   1493     END_INTERFACE
   1494 } ITfSourceVtbl;
   1495 interface ITfSource {
   1496     CONST_VTBL ITfSourceVtbl* lpVtbl;
   1497 };
   1498 
   1499 #ifdef COBJMACROS
   1500 #ifndef WIDL_C_INLINE_WRAPPERS
   1501 /*** IUnknown methods ***/
   1502 #define ITfSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1503 #define ITfSource_AddRef(This) (This)->lpVtbl->AddRef(This)
   1504 #define ITfSource_Release(This) (This)->lpVtbl->Release(This)
   1505 /*** ITfSource methods ***/
   1506 #define ITfSource_AdviseSink(This,riid,punk,pdwCookie) (This)->lpVtbl->AdviseSink(This,riid,punk,pdwCookie)
   1507 #define ITfSource_UnadviseSink(This,dwCookie) (This)->lpVtbl->UnadviseSink(This,dwCookie)
   1508 #else
   1509 /*** IUnknown methods ***/
   1510 static FORCEINLINE HRESULT ITfSource_QueryInterface(ITfSource* This,REFIID riid,void **ppvObject) {
   1511     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1512 }
   1513 static FORCEINLINE ULONG ITfSource_AddRef(ITfSource* This) {
   1514     return This->lpVtbl->AddRef(This);
   1515 }
   1516 static FORCEINLINE ULONG ITfSource_Release(ITfSource* This) {
   1517     return This->lpVtbl->Release(This);
   1518 }
   1519 /*** ITfSource methods ***/
   1520 static FORCEINLINE HRESULT ITfSource_AdviseSink(ITfSource* This,REFIID riid,IUnknown *punk,DWORD *pdwCookie) {
   1521     return This->lpVtbl->AdviseSink(This,riid,punk,pdwCookie);
   1522 }
   1523 static FORCEINLINE HRESULT ITfSource_UnadviseSink(ITfSource* This,DWORD dwCookie) {
   1524     return This->lpVtbl->UnadviseSink(This,dwCookie);
   1525 }
   1526 #endif
   1527 #endif
   1528 
   1529 #endif
   1530 
   1531 HRESULT STDMETHODCALLTYPE ITfSource_AdviseSink_Proxy(
   1532     ITfSource* This,
   1533     REFIID riid,
   1534     IUnknown *punk,
   1535     DWORD *pdwCookie);
   1536 void __RPC_STUB ITfSource_AdviseSink_Stub(
   1537     IRpcStubBuffer* This,
   1538     IRpcChannelBuffer* pRpcChannelBuffer,
   1539     PRPC_MESSAGE pRpcMessage,
   1540     DWORD* pdwStubPhase);
   1541 HRESULT STDMETHODCALLTYPE ITfSource_UnadviseSink_Proxy(
   1542     ITfSource* This,
   1543     DWORD dwCookie);
   1544 void __RPC_STUB ITfSource_UnadviseSink_Stub(
   1545     IRpcStubBuffer* This,
   1546     IRpcChannelBuffer* pRpcChannelBuffer,
   1547     PRPC_MESSAGE pRpcMessage,
   1548     DWORD* pdwStubPhase);
   1549 
   1550 #endif  /* __ITfSource_INTERFACE_DEFINED__ */
   1551 
   1552 /*****************************************************************************
   1553  * ITfInputProcessorProfiles interface
   1554  */
   1555 #ifndef __ITfInputProcessorProfiles_INTERFACE_DEFINED__
   1556 #define __ITfInputProcessorProfiles_INTERFACE_DEFINED__
   1557 
   1558 DEFINE_GUID(IID_ITfInputProcessorProfiles, 0x1f02b6c5, 0x7842, 0x4ee6, 0x8a,0x0b, 0x9a,0x24,0x18,0x3a,0x95,0xca);
   1559 #if defined(__cplusplus) && !defined(CINTERFACE)
   1560 MIDL_INTERFACE("1f02b6c5-7842-4ee6-8a0b-9a24183a95ca")
   1561 ITfInputProcessorProfiles : public IUnknown
   1562 {
   1563     virtual HRESULT STDMETHODCALLTYPE Register(
   1564         REFCLSID rclsid) = 0;
   1565 
   1566     virtual HRESULT STDMETHODCALLTYPE Unregister(
   1567         REFCLSID rclsid) = 0;
   1568 
   1569     virtual HRESULT STDMETHODCALLTYPE AddLanguageProfile(
   1570         REFCLSID rclsid,
   1571         LANGID langid,
   1572         REFGUID guidProfile,
   1573         const WCHAR *pchDesc,
   1574         ULONG cchDesc,
   1575         const WCHAR *pchIconFile,
   1576         ULONG cchFile,
   1577         ULONG uIconIndex) = 0;
   1578 
   1579     virtual HRESULT STDMETHODCALLTYPE RemoveLanguageProfile(
   1580         REFCLSID rclsid,
   1581         LANGID langid,
   1582         REFGUID guidProfile) = 0;
   1583 
   1584     virtual HRESULT STDMETHODCALLTYPE EnumInputProcessorInfo(
   1585         IEnumGUID **ppEnum) = 0;
   1586 
   1587     virtual HRESULT STDMETHODCALLTYPE GetDefaultLanguageProfile(
   1588         LANGID langid,
   1589         REFGUID catid,
   1590         CLSID *pclsid,
   1591         GUID *pguidProfile) = 0;
   1592 
   1593     virtual HRESULT STDMETHODCALLTYPE SetDefaultLanguageProfile(
   1594         LANGID langid,
   1595         REFCLSID rclsid,
   1596         REFGUID guidProfiles) = 0;
   1597 
   1598     virtual HRESULT STDMETHODCALLTYPE ActivateLanguageProfile(
   1599         REFCLSID rclsid,
   1600         LANGID langid,
   1601         REFGUID guidProfiles) = 0;
   1602 
   1603     virtual HRESULT STDMETHODCALLTYPE GetActiveLanguageProfile(
   1604         REFCLSID rclsid,
   1605         LANGID *plangid,
   1606         GUID *pguidProfile) = 0;
   1607 
   1608     virtual HRESULT STDMETHODCALLTYPE GetLanguageProfileDescription(
   1609         REFCLSID rclsid,
   1610         LANGID langid,
   1611         REFGUID guidProfile,
   1612         BSTR *pbstrProfile) = 0;
   1613 
   1614     virtual HRESULT STDMETHODCALLTYPE GetCurrentLanguage(
   1615         LANGID *plangid) = 0;
   1616 
   1617     virtual HRESULT STDMETHODCALLTYPE ChangeCurrentLanguage(
   1618         LANGID langid) = 0;
   1619 
   1620     virtual HRESULT STDMETHODCALLTYPE GetLanguageList(
   1621         LANGID **ppLangId,
   1622         ULONG *pulCount) = 0;
   1623 
   1624     virtual HRESULT STDMETHODCALLTYPE EnumLanguageProfiles(
   1625         LANGID langid,
   1626         IEnumTfLanguageProfiles **ppEnum) = 0;
   1627 
   1628     virtual HRESULT STDMETHODCALLTYPE EnableLanguageProfile(
   1629         REFCLSID rclsid,
   1630         LANGID langid,
   1631         REFGUID guidProfile,
   1632         WINBOOL fEnable) = 0;
   1633 
   1634     virtual HRESULT STDMETHODCALLTYPE IsEnabledLanguageProfile(
   1635         REFCLSID rclsid,
   1636         LANGID langid,
   1637         REFGUID guidProfile,
   1638         WINBOOL *pfEnable) = 0;
   1639 
   1640     virtual HRESULT STDMETHODCALLTYPE EnableLanguageProfileByDefault(
   1641         REFCLSID rclsid,
   1642         LANGID langid,
   1643         REFGUID guidProfile,
   1644         WINBOOL fEnable) = 0;
   1645 
   1646     virtual HRESULT STDMETHODCALLTYPE SubstituteKeyboardLayout(
   1647         REFCLSID rclsid,
   1648         LANGID langid,
   1649         REFGUID guidProfile,
   1650         HKL hKL) = 0;
   1651 
   1652 };
   1653 #ifdef __CRT_UUID_DECL
   1654 __CRT_UUID_DECL(ITfInputProcessorProfiles, 0x1f02b6c5, 0x7842, 0x4ee6, 0x8a,0x0b, 0x9a,0x24,0x18,0x3a,0x95,0xca)
   1655 #endif
   1656 #else
   1657 typedef struct ITfInputProcessorProfilesVtbl {
   1658     BEGIN_INTERFACE
   1659 
   1660     /*** IUnknown methods ***/
   1661     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1662         ITfInputProcessorProfiles* This,
   1663         REFIID riid,
   1664         void **ppvObject);
   1665 
   1666     ULONG (STDMETHODCALLTYPE *AddRef)(
   1667         ITfInputProcessorProfiles* This);
   1668 
   1669     ULONG (STDMETHODCALLTYPE *Release)(
   1670         ITfInputProcessorProfiles* This);
   1671 
   1672     /*** ITfInputProcessorProfiles methods ***/
   1673     HRESULT (STDMETHODCALLTYPE *Register)(
   1674         ITfInputProcessorProfiles* This,
   1675         REFCLSID rclsid);
   1676 
   1677     HRESULT (STDMETHODCALLTYPE *Unregister)(
   1678         ITfInputProcessorProfiles* This,
   1679         REFCLSID rclsid);
   1680 
   1681     HRESULT (STDMETHODCALLTYPE *AddLanguageProfile)(
   1682         ITfInputProcessorProfiles* This,
   1683         REFCLSID rclsid,
   1684         LANGID langid,
   1685         REFGUID guidProfile,
   1686         const WCHAR *pchDesc,
   1687         ULONG cchDesc,
   1688         const WCHAR *pchIconFile,
   1689         ULONG cchFile,
   1690         ULONG uIconIndex);
   1691 
   1692     HRESULT (STDMETHODCALLTYPE *RemoveLanguageProfile)(
   1693         ITfInputProcessorProfiles* This,
   1694         REFCLSID rclsid,
   1695         LANGID langid,
   1696         REFGUID guidProfile);
   1697 
   1698     HRESULT (STDMETHODCALLTYPE *EnumInputProcessorInfo)(
   1699         ITfInputProcessorProfiles* This,
   1700         IEnumGUID **ppEnum);
   1701 
   1702     HRESULT (STDMETHODCALLTYPE *GetDefaultLanguageProfile)(
   1703         ITfInputProcessorProfiles* This,
   1704         LANGID langid,
   1705         REFGUID catid,
   1706         CLSID *pclsid,
   1707         GUID *pguidProfile);
   1708 
   1709     HRESULT (STDMETHODCALLTYPE *SetDefaultLanguageProfile)(
   1710         ITfInputProcessorProfiles* This,
   1711         LANGID langid,
   1712         REFCLSID rclsid,
   1713         REFGUID guidProfiles);
   1714 
   1715     HRESULT (STDMETHODCALLTYPE *ActivateLanguageProfile)(
   1716         ITfInputProcessorProfiles* This,
   1717         REFCLSID rclsid,
   1718         LANGID langid,
   1719         REFGUID guidProfiles);
   1720 
   1721     HRESULT (STDMETHODCALLTYPE *GetActiveLanguageProfile)(
   1722         ITfInputProcessorProfiles* This,
   1723         REFCLSID rclsid,
   1724         LANGID *plangid,
   1725         GUID *pguidProfile);
   1726 
   1727     HRESULT (STDMETHODCALLTYPE *GetLanguageProfileDescription)(
   1728         ITfInputProcessorProfiles* This,
   1729         REFCLSID rclsid,
   1730         LANGID langid,
   1731         REFGUID guidProfile,
   1732         BSTR *pbstrProfile);
   1733 
   1734     HRESULT (STDMETHODCALLTYPE *GetCurrentLanguage)(
   1735         ITfInputProcessorProfiles* This,
   1736         LANGID *plangid);
   1737 
   1738     HRESULT (STDMETHODCALLTYPE *ChangeCurrentLanguage)(
   1739         ITfInputProcessorProfiles* This,
   1740         LANGID langid);
   1741 
   1742     HRESULT (STDMETHODCALLTYPE *GetLanguageList)(
   1743         ITfInputProcessorProfiles* This,
   1744         LANGID **ppLangId,
   1745         ULONG *pulCount);
   1746 
   1747     HRESULT (STDMETHODCALLTYPE *EnumLanguageProfiles)(
   1748         ITfInputProcessorProfiles* This,
   1749         LANGID langid,
   1750         IEnumTfLanguageProfiles **ppEnum);
   1751 
   1752     HRESULT (STDMETHODCALLTYPE *EnableLanguageProfile)(
   1753         ITfInputProcessorProfiles* This,
   1754         REFCLSID rclsid,
   1755         LANGID langid,
   1756         REFGUID guidProfile,
   1757         WINBOOL fEnable);
   1758 
   1759     HRESULT (STDMETHODCALLTYPE *IsEnabledLanguageProfile)(
   1760         ITfInputProcessorProfiles* This,
   1761         REFCLSID rclsid,
   1762         LANGID langid,
   1763         REFGUID guidProfile,
   1764         WINBOOL *pfEnable);
   1765 
   1766     HRESULT (STDMETHODCALLTYPE *EnableLanguageProfileByDefault)(
   1767         ITfInputProcessorProfiles* This,
   1768         REFCLSID rclsid,
   1769         LANGID langid,
   1770         REFGUID guidProfile,
   1771         WINBOOL fEnable);
   1772 
   1773     HRESULT (STDMETHODCALLTYPE *SubstituteKeyboardLayout)(
   1774         ITfInputProcessorProfiles* This,
   1775         REFCLSID rclsid,
   1776         LANGID langid,
   1777         REFGUID guidProfile,
   1778         HKL hKL);
   1779 
   1780     END_INTERFACE
   1781 } ITfInputProcessorProfilesVtbl;
   1782 interface ITfInputProcessorProfiles {
   1783     CONST_VTBL ITfInputProcessorProfilesVtbl* lpVtbl;
   1784 };
   1785 
   1786 #ifdef COBJMACROS
   1787 #ifndef WIDL_C_INLINE_WRAPPERS
   1788 /*** IUnknown methods ***/
   1789 #define ITfInputProcessorProfiles_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1790 #define ITfInputProcessorProfiles_AddRef(This) (This)->lpVtbl->AddRef(This)
   1791 #define ITfInputProcessorProfiles_Release(This) (This)->lpVtbl->Release(This)
   1792 /*** ITfInputProcessorProfiles methods ***/
   1793 #define ITfInputProcessorProfiles_Register(This,rclsid) (This)->lpVtbl->Register(This,rclsid)
   1794 #define ITfInputProcessorProfiles_Unregister(This,rclsid) (This)->lpVtbl->Unregister(This,rclsid)
   1795 #define ITfInputProcessorProfiles_AddLanguageProfile(This,rclsid,langid,guidProfile,pchDesc,cchDesc,pchIconFile,cchFile,uIconIndex) (This)->lpVtbl->AddLanguageProfile(This,rclsid,langid,guidProfile,pchDesc,cchDesc,pchIconFile,cchFile,uIconIndex)
   1796 #define ITfInputProcessorProfiles_RemoveLanguageProfile(This,rclsid,langid,guidProfile) (This)->lpVtbl->RemoveLanguageProfile(This,rclsid,langid,guidProfile)
   1797 #define ITfInputProcessorProfiles_EnumInputProcessorInfo(This,ppEnum) (This)->lpVtbl->EnumInputProcessorInfo(This,ppEnum)
   1798 #define ITfInputProcessorProfiles_GetDefaultLanguageProfile(This,langid,catid,pclsid,pguidProfile) (This)->lpVtbl->GetDefaultLanguageProfile(This,langid,catid,pclsid,pguidProfile)
   1799 #define ITfInputProcessorProfiles_SetDefaultLanguageProfile(This,langid,rclsid,guidProfiles) (This)->lpVtbl->SetDefaultLanguageProfile(This,langid,rclsid,guidProfiles)
   1800 #define ITfInputProcessorProfiles_ActivateLanguageProfile(This,rclsid,langid,guidProfiles) (This)->lpVtbl->ActivateLanguageProfile(This,rclsid,langid,guidProfiles)
   1801 #define ITfInputProcessorProfiles_GetActiveLanguageProfile(This,rclsid,plangid,pguidProfile) (This)->lpVtbl->GetActiveLanguageProfile(This,rclsid,plangid,pguidProfile)
   1802 #define ITfInputProcessorProfiles_GetLanguageProfileDescription(This,rclsid,langid,guidProfile,pbstrProfile) (This)->lpVtbl->GetLanguageProfileDescription(This,rclsid,langid,guidProfile,pbstrProfile)
   1803 #define ITfInputProcessorProfiles_GetCurrentLanguage(This,plangid) (This)->lpVtbl->GetCurrentLanguage(This,plangid)
   1804 #define ITfInputProcessorProfiles_ChangeCurrentLanguage(This,langid) (This)->lpVtbl->ChangeCurrentLanguage(This,langid)
   1805 #define ITfInputProcessorProfiles_GetLanguageList(This,ppLangId,pulCount) (This)->lpVtbl->GetLanguageList(This,ppLangId,pulCount)
   1806 #define ITfInputProcessorProfiles_EnumLanguageProfiles(This,langid,ppEnum) (This)->lpVtbl->EnumLanguageProfiles(This,langid,ppEnum)
   1807 #define ITfInputProcessorProfiles_EnableLanguageProfile(This,rclsid,langid,guidProfile,fEnable) (This)->lpVtbl->EnableLanguageProfile(This,rclsid,langid,guidProfile,fEnable)
   1808 #define ITfInputProcessorProfiles_IsEnabledLanguageProfile(This,rclsid,langid,guidProfile,pfEnable) (This)->lpVtbl->IsEnabledLanguageProfile(This,rclsid,langid,guidProfile,pfEnable)
   1809 #define ITfInputProcessorProfiles_EnableLanguageProfileByDefault(This,rclsid,langid,guidProfile,fEnable) (This)->lpVtbl->EnableLanguageProfileByDefault(This,rclsid,langid,guidProfile,fEnable)
   1810 #define ITfInputProcessorProfiles_SubstituteKeyboardLayout(This,rclsid,langid,guidProfile,hKL) (This)->lpVtbl->SubstituteKeyboardLayout(This,rclsid,langid,guidProfile,hKL)
   1811 #else
   1812 /*** IUnknown methods ***/
   1813 static FORCEINLINE HRESULT ITfInputProcessorProfiles_QueryInterface(ITfInputProcessorProfiles* This,REFIID riid,void **ppvObject) {
   1814     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1815 }
   1816 static FORCEINLINE ULONG ITfInputProcessorProfiles_AddRef(ITfInputProcessorProfiles* This) {
   1817     return This->lpVtbl->AddRef(This);
   1818 }
   1819 static FORCEINLINE ULONG ITfInputProcessorProfiles_Release(ITfInputProcessorProfiles* This) {
   1820     return This->lpVtbl->Release(This);
   1821 }
   1822 /*** ITfInputProcessorProfiles methods ***/
   1823 static FORCEINLINE HRESULT ITfInputProcessorProfiles_Register(ITfInputProcessorProfiles* This,REFCLSID rclsid) {
   1824     return This->lpVtbl->Register(This,rclsid);
   1825 }
   1826 static FORCEINLINE HRESULT ITfInputProcessorProfiles_Unregister(ITfInputProcessorProfiles* This,REFCLSID rclsid) {
   1827     return This->lpVtbl->Unregister(This,rclsid);
   1828 }
   1829 static FORCEINLINE HRESULT ITfInputProcessorProfiles_AddLanguageProfile(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,const WCHAR *pchDesc,ULONG cchDesc,const WCHAR *pchIconFile,ULONG cchFile,ULONG uIconIndex) {
   1830     return This->lpVtbl->AddLanguageProfile(This,rclsid,langid,guidProfile,pchDesc,cchDesc,pchIconFile,cchFile,uIconIndex);
   1831 }
   1832 static FORCEINLINE HRESULT ITfInputProcessorProfiles_RemoveLanguageProfile(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile) {
   1833     return This->lpVtbl->RemoveLanguageProfile(This,rclsid,langid,guidProfile);
   1834 }
   1835 static FORCEINLINE HRESULT ITfInputProcessorProfiles_EnumInputProcessorInfo(ITfInputProcessorProfiles* This,IEnumGUID **ppEnum) {
   1836     return This->lpVtbl->EnumInputProcessorInfo(This,ppEnum);
   1837 }
   1838 static FORCEINLINE HRESULT ITfInputProcessorProfiles_GetDefaultLanguageProfile(ITfInputProcessorProfiles* This,LANGID langid,REFGUID catid,CLSID *pclsid,GUID *pguidProfile) {
   1839     return This->lpVtbl->GetDefaultLanguageProfile(This,langid,catid,pclsid,pguidProfile);
   1840 }
   1841 static FORCEINLINE HRESULT ITfInputProcessorProfiles_SetDefaultLanguageProfile(ITfInputProcessorProfiles* This,LANGID langid,REFCLSID rclsid,REFGUID guidProfiles) {
   1842     return This->lpVtbl->SetDefaultLanguageProfile(This,langid,rclsid,guidProfiles);
   1843 }
   1844 static FORCEINLINE HRESULT ITfInputProcessorProfiles_ActivateLanguageProfile(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfiles) {
   1845     return This->lpVtbl->ActivateLanguageProfile(This,rclsid,langid,guidProfiles);
   1846 }
   1847 static FORCEINLINE HRESULT ITfInputProcessorProfiles_GetActiveLanguageProfile(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID *plangid,GUID *pguidProfile) {
   1848     return This->lpVtbl->GetActiveLanguageProfile(This,rclsid,plangid,pguidProfile);
   1849 }
   1850 static FORCEINLINE HRESULT ITfInputProcessorProfiles_GetLanguageProfileDescription(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,BSTR *pbstrProfile) {
   1851     return This->lpVtbl->GetLanguageProfileDescription(This,rclsid,langid,guidProfile,pbstrProfile);
   1852 }
   1853 static FORCEINLINE HRESULT ITfInputProcessorProfiles_GetCurrentLanguage(ITfInputProcessorProfiles* This,LANGID *plangid) {
   1854     return This->lpVtbl->GetCurrentLanguage(This,plangid);
   1855 }
   1856 static FORCEINLINE HRESULT ITfInputProcessorProfiles_ChangeCurrentLanguage(ITfInputProcessorProfiles* This,LANGID langid) {
   1857     return This->lpVtbl->ChangeCurrentLanguage(This,langid);
   1858 }
   1859 static FORCEINLINE HRESULT ITfInputProcessorProfiles_GetLanguageList(ITfInputProcessorProfiles* This,LANGID **ppLangId,ULONG *pulCount) {
   1860     return This->lpVtbl->GetLanguageList(This,ppLangId,pulCount);
   1861 }
   1862 static FORCEINLINE HRESULT ITfInputProcessorProfiles_EnumLanguageProfiles(ITfInputProcessorProfiles* This,LANGID langid,IEnumTfLanguageProfiles **ppEnum) {
   1863     return This->lpVtbl->EnumLanguageProfiles(This,langid,ppEnum);
   1864 }
   1865 static FORCEINLINE HRESULT ITfInputProcessorProfiles_EnableLanguageProfile(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,WINBOOL fEnable) {
   1866     return This->lpVtbl->EnableLanguageProfile(This,rclsid,langid,guidProfile,fEnable);
   1867 }
   1868 static FORCEINLINE HRESULT ITfInputProcessorProfiles_IsEnabledLanguageProfile(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,WINBOOL *pfEnable) {
   1869     return This->lpVtbl->IsEnabledLanguageProfile(This,rclsid,langid,guidProfile,pfEnable);
   1870 }
   1871 static FORCEINLINE HRESULT ITfInputProcessorProfiles_EnableLanguageProfileByDefault(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,WINBOOL fEnable) {
   1872     return This->lpVtbl->EnableLanguageProfileByDefault(This,rclsid,langid,guidProfile,fEnable);
   1873 }
   1874 static FORCEINLINE HRESULT ITfInputProcessorProfiles_SubstituteKeyboardLayout(ITfInputProcessorProfiles* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,HKL hKL) {
   1875     return This->lpVtbl->SubstituteKeyboardLayout(This,rclsid,langid,guidProfile,hKL);
   1876 }
   1877 #endif
   1878 #endif
   1879 
   1880 #endif
   1881 
   1882 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_Register_Proxy(
   1883     ITfInputProcessorProfiles* This,
   1884     REFCLSID rclsid);
   1885 void __RPC_STUB ITfInputProcessorProfiles_Register_Stub(
   1886     IRpcStubBuffer* This,
   1887     IRpcChannelBuffer* pRpcChannelBuffer,
   1888     PRPC_MESSAGE pRpcMessage,
   1889     DWORD* pdwStubPhase);
   1890 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_Unregister_Proxy(
   1891     ITfInputProcessorProfiles* This,
   1892     REFCLSID rclsid);
   1893 void __RPC_STUB ITfInputProcessorProfiles_Unregister_Stub(
   1894     IRpcStubBuffer* This,
   1895     IRpcChannelBuffer* pRpcChannelBuffer,
   1896     PRPC_MESSAGE pRpcMessage,
   1897     DWORD* pdwStubPhase);
   1898 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_AddLanguageProfile_Proxy(
   1899     ITfInputProcessorProfiles* This,
   1900     REFCLSID rclsid,
   1901     LANGID langid,
   1902     REFGUID guidProfile,
   1903     const WCHAR *pchDesc,
   1904     ULONG cchDesc,
   1905     const WCHAR *pchIconFile,
   1906     ULONG cchFile,
   1907     ULONG uIconIndex);
   1908 void __RPC_STUB ITfInputProcessorProfiles_AddLanguageProfile_Stub(
   1909     IRpcStubBuffer* This,
   1910     IRpcChannelBuffer* pRpcChannelBuffer,
   1911     PRPC_MESSAGE pRpcMessage,
   1912     DWORD* pdwStubPhase);
   1913 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_RemoveLanguageProfile_Proxy(
   1914     ITfInputProcessorProfiles* This,
   1915     REFCLSID rclsid,
   1916     LANGID langid,
   1917     REFGUID guidProfile);
   1918 void __RPC_STUB ITfInputProcessorProfiles_RemoveLanguageProfile_Stub(
   1919     IRpcStubBuffer* This,
   1920     IRpcChannelBuffer* pRpcChannelBuffer,
   1921     PRPC_MESSAGE pRpcMessage,
   1922     DWORD* pdwStubPhase);
   1923 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_EnumInputProcessorInfo_Proxy(
   1924     ITfInputProcessorProfiles* This,
   1925     IEnumGUID **ppEnum);
   1926 void __RPC_STUB ITfInputProcessorProfiles_EnumInputProcessorInfo_Stub(
   1927     IRpcStubBuffer* This,
   1928     IRpcChannelBuffer* pRpcChannelBuffer,
   1929     PRPC_MESSAGE pRpcMessage,
   1930     DWORD* pdwStubPhase);
   1931 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_GetDefaultLanguageProfile_Proxy(
   1932     ITfInputProcessorProfiles* This,
   1933     LANGID langid,
   1934     REFGUID catid,
   1935     CLSID *pclsid,
   1936     GUID *pguidProfile);
   1937 void __RPC_STUB ITfInputProcessorProfiles_GetDefaultLanguageProfile_Stub(
   1938     IRpcStubBuffer* This,
   1939     IRpcChannelBuffer* pRpcChannelBuffer,
   1940     PRPC_MESSAGE pRpcMessage,
   1941     DWORD* pdwStubPhase);
   1942 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_SetDefaultLanguageProfile_Proxy(
   1943     ITfInputProcessorProfiles* This,
   1944     LANGID langid,
   1945     REFCLSID rclsid,
   1946     REFGUID guidProfiles);
   1947 void __RPC_STUB ITfInputProcessorProfiles_SetDefaultLanguageProfile_Stub(
   1948     IRpcStubBuffer* This,
   1949     IRpcChannelBuffer* pRpcChannelBuffer,
   1950     PRPC_MESSAGE pRpcMessage,
   1951     DWORD* pdwStubPhase);
   1952 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_ActivateLanguageProfile_Proxy(
   1953     ITfInputProcessorProfiles* This,
   1954     REFCLSID rclsid,
   1955     LANGID langid,
   1956     REFGUID guidProfiles);
   1957 void __RPC_STUB ITfInputProcessorProfiles_ActivateLanguageProfile_Stub(
   1958     IRpcStubBuffer* This,
   1959     IRpcChannelBuffer* pRpcChannelBuffer,
   1960     PRPC_MESSAGE pRpcMessage,
   1961     DWORD* pdwStubPhase);
   1962 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_GetActiveLanguageProfile_Proxy(
   1963     ITfInputProcessorProfiles* This,
   1964     REFCLSID rclsid,
   1965     LANGID *plangid,
   1966     GUID *pguidProfile);
   1967 void __RPC_STUB ITfInputProcessorProfiles_GetActiveLanguageProfile_Stub(
   1968     IRpcStubBuffer* This,
   1969     IRpcChannelBuffer* pRpcChannelBuffer,
   1970     PRPC_MESSAGE pRpcMessage,
   1971     DWORD* pdwStubPhase);
   1972 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_GetLanguageProfileDescription_Proxy(
   1973     ITfInputProcessorProfiles* This,
   1974     REFCLSID rclsid,
   1975     LANGID langid,
   1976     REFGUID guidProfile,
   1977     BSTR *pbstrProfile);
   1978 void __RPC_STUB ITfInputProcessorProfiles_GetLanguageProfileDescription_Stub(
   1979     IRpcStubBuffer* This,
   1980     IRpcChannelBuffer* pRpcChannelBuffer,
   1981     PRPC_MESSAGE pRpcMessage,
   1982     DWORD* pdwStubPhase);
   1983 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_GetCurrentLanguage_Proxy(
   1984     ITfInputProcessorProfiles* This,
   1985     LANGID *plangid);
   1986 void __RPC_STUB ITfInputProcessorProfiles_GetCurrentLanguage_Stub(
   1987     IRpcStubBuffer* This,
   1988     IRpcChannelBuffer* pRpcChannelBuffer,
   1989     PRPC_MESSAGE pRpcMessage,
   1990     DWORD* pdwStubPhase);
   1991 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_ChangeCurrentLanguage_Proxy(
   1992     ITfInputProcessorProfiles* This,
   1993     LANGID langid);
   1994 void __RPC_STUB ITfInputProcessorProfiles_ChangeCurrentLanguage_Stub(
   1995     IRpcStubBuffer* This,
   1996     IRpcChannelBuffer* pRpcChannelBuffer,
   1997     PRPC_MESSAGE pRpcMessage,
   1998     DWORD* pdwStubPhase);
   1999 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_GetLanguageList_Proxy(
   2000     ITfInputProcessorProfiles* This,
   2001     LANGID **ppLangId,
   2002     ULONG *pulCount);
   2003 void __RPC_STUB ITfInputProcessorProfiles_GetLanguageList_Stub(
   2004     IRpcStubBuffer* This,
   2005     IRpcChannelBuffer* pRpcChannelBuffer,
   2006     PRPC_MESSAGE pRpcMessage,
   2007     DWORD* pdwStubPhase);
   2008 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_EnumLanguageProfiles_Proxy(
   2009     ITfInputProcessorProfiles* This,
   2010     LANGID langid,
   2011     IEnumTfLanguageProfiles **ppEnum);
   2012 void __RPC_STUB ITfInputProcessorProfiles_EnumLanguageProfiles_Stub(
   2013     IRpcStubBuffer* This,
   2014     IRpcChannelBuffer* pRpcChannelBuffer,
   2015     PRPC_MESSAGE pRpcMessage,
   2016     DWORD* pdwStubPhase);
   2017 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_EnableLanguageProfile_Proxy(
   2018     ITfInputProcessorProfiles* This,
   2019     REFCLSID rclsid,
   2020     LANGID langid,
   2021     REFGUID guidProfile,
   2022     WINBOOL fEnable);
   2023 void __RPC_STUB ITfInputProcessorProfiles_EnableLanguageProfile_Stub(
   2024     IRpcStubBuffer* This,
   2025     IRpcChannelBuffer* pRpcChannelBuffer,
   2026     PRPC_MESSAGE pRpcMessage,
   2027     DWORD* pdwStubPhase);
   2028 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_IsEnabledLanguageProfile_Proxy(
   2029     ITfInputProcessorProfiles* This,
   2030     REFCLSID rclsid,
   2031     LANGID langid,
   2032     REFGUID guidProfile,
   2033     WINBOOL *pfEnable);
   2034 void __RPC_STUB ITfInputProcessorProfiles_IsEnabledLanguageProfile_Stub(
   2035     IRpcStubBuffer* This,
   2036     IRpcChannelBuffer* pRpcChannelBuffer,
   2037     PRPC_MESSAGE pRpcMessage,
   2038     DWORD* pdwStubPhase);
   2039 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_EnableLanguageProfileByDefault_Proxy(
   2040     ITfInputProcessorProfiles* This,
   2041     REFCLSID rclsid,
   2042     LANGID langid,
   2043     REFGUID guidProfile,
   2044     WINBOOL fEnable);
   2045 void __RPC_STUB ITfInputProcessorProfiles_EnableLanguageProfileByDefault_Stub(
   2046     IRpcStubBuffer* This,
   2047     IRpcChannelBuffer* pRpcChannelBuffer,
   2048     PRPC_MESSAGE pRpcMessage,
   2049     DWORD* pdwStubPhase);
   2050 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfiles_SubstituteKeyboardLayout_Proxy(
   2051     ITfInputProcessorProfiles* This,
   2052     REFCLSID rclsid,
   2053     LANGID langid,
   2054     REFGUID guidProfile,
   2055     HKL hKL);
   2056 void __RPC_STUB ITfInputProcessorProfiles_SubstituteKeyboardLayout_Stub(
   2057     IRpcStubBuffer* This,
   2058     IRpcChannelBuffer* pRpcChannelBuffer,
   2059     PRPC_MESSAGE pRpcMessage,
   2060     DWORD* pdwStubPhase);
   2061 
   2062 #endif  /* __ITfInputProcessorProfiles_INTERFACE_DEFINED__ */
   2063 
   2064 typedef struct TF_INPUTPROCESSORPROFILE {
   2065     DWORD dwProfileType;
   2066     LANGID langid;
   2067     CLSID clsid;
   2068     GUID guidProfile;
   2069     GUID catid;
   2070     HKL hklSubstitute;
   2071     DWORD dwCaps;
   2072     HKL hkl;
   2073     DWORD dwFlags;
   2074 } TF_INPUTPROCESSORPROFILE;
   2075 /*****************************************************************************
   2076  * IEnumTfInputProcessorProfiles interface
   2077  */
   2078 #ifndef __IEnumTfInputProcessorProfiles_INTERFACE_DEFINED__
   2079 #define __IEnumTfInputProcessorProfiles_INTERFACE_DEFINED__
   2080 
   2081 DEFINE_GUID(IID_IEnumTfInputProcessorProfiles, 0x71c6e74d, 0x0f28, 0x11d8, 0xa8,0x2a, 0x00,0x06,0x5b,0x84,0x43,0x5c);
   2082 #if defined(__cplusplus) && !defined(CINTERFACE)
   2083 MIDL_INTERFACE("71c6e74d-0f28-11d8-a82a-00065b84435c")
   2084 IEnumTfInputProcessorProfiles : public IUnknown
   2085 {
   2086     virtual HRESULT STDMETHODCALLTYPE Clone(
   2087         IEnumTfInputProcessorProfiles **ppEnum) = 0;
   2088 
   2089     virtual HRESULT STDMETHODCALLTYPE Next(
   2090         ULONG ulCount,
   2091         TF_INPUTPROCESSORPROFILE *pProfile,
   2092         ULONG *pcFetch) = 0;
   2093 
   2094     virtual HRESULT STDMETHODCALLTYPE Reset(
   2095         ) = 0;
   2096 
   2097     virtual HRESULT STDMETHODCALLTYPE Skip(
   2098         ULONG ulCount) = 0;
   2099 
   2100 };
   2101 #ifdef __CRT_UUID_DECL
   2102 __CRT_UUID_DECL(IEnumTfInputProcessorProfiles, 0x71c6e74d, 0x0f28, 0x11d8, 0xa8,0x2a, 0x00,0x06,0x5b,0x84,0x43,0x5c)
   2103 #endif
   2104 #else
   2105 typedef struct IEnumTfInputProcessorProfilesVtbl {
   2106     BEGIN_INTERFACE
   2107 
   2108     /*** IUnknown methods ***/
   2109     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2110         IEnumTfInputProcessorProfiles* This,
   2111         REFIID riid,
   2112         void **ppvObject);
   2113 
   2114     ULONG (STDMETHODCALLTYPE *AddRef)(
   2115         IEnumTfInputProcessorProfiles* This);
   2116 
   2117     ULONG (STDMETHODCALLTYPE *Release)(
   2118         IEnumTfInputProcessorProfiles* This);
   2119 
   2120     /*** IEnumTfInputProcessorProfiles methods ***/
   2121     HRESULT (STDMETHODCALLTYPE *Clone)(
   2122         IEnumTfInputProcessorProfiles* This,
   2123         IEnumTfInputProcessorProfiles **ppEnum);
   2124 
   2125     HRESULT (STDMETHODCALLTYPE *Next)(
   2126         IEnumTfInputProcessorProfiles* This,
   2127         ULONG ulCount,
   2128         TF_INPUTPROCESSORPROFILE *pProfile,
   2129         ULONG *pcFetch);
   2130 
   2131     HRESULT (STDMETHODCALLTYPE *Reset)(
   2132         IEnumTfInputProcessorProfiles* This);
   2133 
   2134     HRESULT (STDMETHODCALLTYPE *Skip)(
   2135         IEnumTfInputProcessorProfiles* This,
   2136         ULONG ulCount);
   2137 
   2138     END_INTERFACE
   2139 } IEnumTfInputProcessorProfilesVtbl;
   2140 interface IEnumTfInputProcessorProfiles {
   2141     CONST_VTBL IEnumTfInputProcessorProfilesVtbl* lpVtbl;
   2142 };
   2143 
   2144 #ifdef COBJMACROS
   2145 #ifndef WIDL_C_INLINE_WRAPPERS
   2146 /*** IUnknown methods ***/
   2147 #define IEnumTfInputProcessorProfiles_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2148 #define IEnumTfInputProcessorProfiles_AddRef(This) (This)->lpVtbl->AddRef(This)
   2149 #define IEnumTfInputProcessorProfiles_Release(This) (This)->lpVtbl->Release(This)
   2150 /*** IEnumTfInputProcessorProfiles methods ***/
   2151 #define IEnumTfInputProcessorProfiles_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   2152 #define IEnumTfInputProcessorProfiles_Next(This,ulCount,pProfile,pcFetch) (This)->lpVtbl->Next(This,ulCount,pProfile,pcFetch)
   2153 #define IEnumTfInputProcessorProfiles_Reset(This) (This)->lpVtbl->Reset(This)
   2154 #define IEnumTfInputProcessorProfiles_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
   2155 #else
   2156 /*** IUnknown methods ***/
   2157 static FORCEINLINE HRESULT IEnumTfInputProcessorProfiles_QueryInterface(IEnumTfInputProcessorProfiles* This,REFIID riid,void **ppvObject) {
   2158     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2159 }
   2160 static FORCEINLINE ULONG IEnumTfInputProcessorProfiles_AddRef(IEnumTfInputProcessorProfiles* This) {
   2161     return This->lpVtbl->AddRef(This);
   2162 }
   2163 static FORCEINLINE ULONG IEnumTfInputProcessorProfiles_Release(IEnumTfInputProcessorProfiles* This) {
   2164     return This->lpVtbl->Release(This);
   2165 }
   2166 /*** IEnumTfInputProcessorProfiles methods ***/
   2167 static FORCEINLINE HRESULT IEnumTfInputProcessorProfiles_Clone(IEnumTfInputProcessorProfiles* This,IEnumTfInputProcessorProfiles **ppEnum) {
   2168     return This->lpVtbl->Clone(This,ppEnum);
   2169 }
   2170 static FORCEINLINE HRESULT IEnumTfInputProcessorProfiles_Next(IEnumTfInputProcessorProfiles* This,ULONG ulCount,TF_INPUTPROCESSORPROFILE *pProfile,ULONG *pcFetch) {
   2171     return This->lpVtbl->Next(This,ulCount,pProfile,pcFetch);
   2172 }
   2173 static FORCEINLINE HRESULT IEnumTfInputProcessorProfiles_Reset(IEnumTfInputProcessorProfiles* This) {
   2174     return This->lpVtbl->Reset(This);
   2175 }
   2176 static FORCEINLINE HRESULT IEnumTfInputProcessorProfiles_Skip(IEnumTfInputProcessorProfiles* This,ULONG ulCount) {
   2177     return This->lpVtbl->Skip(This,ulCount);
   2178 }
   2179 #endif
   2180 #endif
   2181 
   2182 #endif
   2183 
   2184 HRESULT STDMETHODCALLTYPE IEnumTfInputProcessorProfiles_Clone_Proxy(
   2185     IEnumTfInputProcessorProfiles* This,
   2186     IEnumTfInputProcessorProfiles **ppEnum);
   2187 void __RPC_STUB IEnumTfInputProcessorProfiles_Clone_Stub(
   2188     IRpcStubBuffer* This,
   2189     IRpcChannelBuffer* pRpcChannelBuffer,
   2190     PRPC_MESSAGE pRpcMessage,
   2191     DWORD* pdwStubPhase);
   2192 HRESULT STDMETHODCALLTYPE IEnumTfInputProcessorProfiles_Next_Proxy(
   2193     IEnumTfInputProcessorProfiles* This,
   2194     ULONG ulCount,
   2195     TF_INPUTPROCESSORPROFILE *pProfile,
   2196     ULONG *pcFetch);
   2197 void __RPC_STUB IEnumTfInputProcessorProfiles_Next_Stub(
   2198     IRpcStubBuffer* This,
   2199     IRpcChannelBuffer* pRpcChannelBuffer,
   2200     PRPC_MESSAGE pRpcMessage,
   2201     DWORD* pdwStubPhase);
   2202 HRESULT STDMETHODCALLTYPE IEnumTfInputProcessorProfiles_Reset_Proxy(
   2203     IEnumTfInputProcessorProfiles* This);
   2204 void __RPC_STUB IEnumTfInputProcessorProfiles_Reset_Stub(
   2205     IRpcStubBuffer* This,
   2206     IRpcChannelBuffer* pRpcChannelBuffer,
   2207     PRPC_MESSAGE pRpcMessage,
   2208     DWORD* pdwStubPhase);
   2209 HRESULT STDMETHODCALLTYPE IEnumTfInputProcessorProfiles_Skip_Proxy(
   2210     IEnumTfInputProcessorProfiles* This,
   2211     ULONG ulCount);
   2212 void __RPC_STUB IEnumTfInputProcessorProfiles_Skip_Stub(
   2213     IRpcStubBuffer* This,
   2214     IRpcChannelBuffer* pRpcChannelBuffer,
   2215     PRPC_MESSAGE pRpcMessage,
   2216     DWORD* pdwStubPhase);
   2217 
   2218 #endif  /* __IEnumTfInputProcessorProfiles_INTERFACE_DEFINED__ */
   2219 
   2220 /*****************************************************************************
   2221  * ITfInputProcessorProfileMgr interface
   2222  */
   2223 #ifndef __ITfInputProcessorProfileMgr_INTERFACE_DEFINED__
   2224 #define __ITfInputProcessorProfileMgr_INTERFACE_DEFINED__
   2225 
   2226 DEFINE_GUID(IID_ITfInputProcessorProfileMgr, 0x71c6e74c, 0x0f28, 0x11d8, 0xa8,0x2a, 0x00,0x06,0x5b,0x84,0x43,0x5c);
   2227 #if defined(__cplusplus) && !defined(CINTERFACE)
   2228 MIDL_INTERFACE("71c6e74c-0f28-11d8-a82a-00065b84435c")
   2229 ITfInputProcessorProfileMgr : public IUnknown
   2230 {
   2231     virtual HRESULT STDMETHODCALLTYPE ActivateProfile(
   2232         DWORD dwProfileType,
   2233         LANGID langid,
   2234         REFCLSID clsid,
   2235         REFGUID guidProfile,
   2236         HKL hkl,
   2237         DWORD dwFlags) = 0;
   2238 
   2239     virtual HRESULT STDMETHODCALLTYPE DeactivateProfile(
   2240         DWORD dwProfileType,
   2241         LANGID langid,
   2242         REFCLSID clsid,
   2243         REFGUID guidProfile,
   2244         HKL hkl,
   2245         DWORD dwFlags) = 0;
   2246 
   2247     virtual HRESULT STDMETHODCALLTYPE GetProfile(
   2248         DWORD dwProfileType,
   2249         LANGID langid,
   2250         REFCLSID clsid,
   2251         REFGUID guidProfile,
   2252         HKL hkl,
   2253         TF_INPUTPROCESSORPROFILE *pProfile) = 0;
   2254 
   2255     virtual HRESULT STDMETHODCALLTYPE EnumProfiles(
   2256         LANGID langid,
   2257         IEnumTfInputProcessorProfiles **ppEnum) = 0;
   2258 
   2259     virtual HRESULT STDMETHODCALLTYPE ReleaseInputProcessor(
   2260         REFCLSID rclsid,
   2261         DWORD dwFlags) = 0;
   2262 
   2263     virtual HRESULT STDMETHODCALLTYPE RegisterProfile(
   2264         REFCLSID rclsid,
   2265         LANGID langid,
   2266         REFGUID guidProfile,
   2267         const WCHAR *pchDesc,
   2268         ULONG cchDesc,
   2269         const WCHAR *pchIconFile,
   2270         ULONG cchFile,
   2271         ULONG uIconIndex,
   2272         HKL hklsubstitute,
   2273         DWORD dwPreferredLayout,
   2274         WINBOOL bEnabledByDefault,
   2275         DWORD dwFlags) = 0;
   2276 
   2277     virtual HRESULT STDMETHODCALLTYPE UnregisterProfile(
   2278         REFCLSID rclsid,
   2279         LANGID langid,
   2280         REFGUID guidProfile,
   2281         DWORD dwFlags) = 0;
   2282 
   2283     virtual HRESULT STDMETHODCALLTYPE GetActiveProfile(
   2284         REFGUID catid,
   2285         TF_INPUTPROCESSORPROFILE *pProfile) = 0;
   2286 
   2287 };
   2288 #ifdef __CRT_UUID_DECL
   2289 __CRT_UUID_DECL(ITfInputProcessorProfileMgr, 0x71c6e74c, 0x0f28, 0x11d8, 0xa8,0x2a, 0x00,0x06,0x5b,0x84,0x43,0x5c)
   2290 #endif
   2291 #else
   2292 typedef struct ITfInputProcessorProfileMgrVtbl {
   2293     BEGIN_INTERFACE
   2294 
   2295     /*** IUnknown methods ***/
   2296     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2297         ITfInputProcessorProfileMgr* This,
   2298         REFIID riid,
   2299         void **ppvObject);
   2300 
   2301     ULONG (STDMETHODCALLTYPE *AddRef)(
   2302         ITfInputProcessorProfileMgr* This);
   2303 
   2304     ULONG (STDMETHODCALLTYPE *Release)(
   2305         ITfInputProcessorProfileMgr* This);
   2306 
   2307     /*** ITfInputProcessorProfileMgr methods ***/
   2308     HRESULT (STDMETHODCALLTYPE *ActivateProfile)(
   2309         ITfInputProcessorProfileMgr* This,
   2310         DWORD dwProfileType,
   2311         LANGID langid,
   2312         REFCLSID clsid,
   2313         REFGUID guidProfile,
   2314         HKL hkl,
   2315         DWORD dwFlags);
   2316 
   2317     HRESULT (STDMETHODCALLTYPE *DeactivateProfile)(
   2318         ITfInputProcessorProfileMgr* This,
   2319         DWORD dwProfileType,
   2320         LANGID langid,
   2321         REFCLSID clsid,
   2322         REFGUID guidProfile,
   2323         HKL hkl,
   2324         DWORD dwFlags);
   2325 
   2326     HRESULT (STDMETHODCALLTYPE *GetProfile)(
   2327         ITfInputProcessorProfileMgr* This,
   2328         DWORD dwProfileType,
   2329         LANGID langid,
   2330         REFCLSID clsid,
   2331         REFGUID guidProfile,
   2332         HKL hkl,
   2333         TF_INPUTPROCESSORPROFILE *pProfile);
   2334 
   2335     HRESULT (STDMETHODCALLTYPE *EnumProfiles)(
   2336         ITfInputProcessorProfileMgr* This,
   2337         LANGID langid,
   2338         IEnumTfInputProcessorProfiles **ppEnum);
   2339 
   2340     HRESULT (STDMETHODCALLTYPE *ReleaseInputProcessor)(
   2341         ITfInputProcessorProfileMgr* This,
   2342         REFCLSID rclsid,
   2343         DWORD dwFlags);
   2344 
   2345     HRESULT (STDMETHODCALLTYPE *RegisterProfile)(
   2346         ITfInputProcessorProfileMgr* This,
   2347         REFCLSID rclsid,
   2348         LANGID langid,
   2349         REFGUID guidProfile,
   2350         const WCHAR *pchDesc,
   2351         ULONG cchDesc,
   2352         const WCHAR *pchIconFile,
   2353         ULONG cchFile,
   2354         ULONG uIconIndex,
   2355         HKL hklsubstitute,
   2356         DWORD dwPreferredLayout,
   2357         WINBOOL bEnabledByDefault,
   2358         DWORD dwFlags);
   2359 
   2360     HRESULT (STDMETHODCALLTYPE *UnregisterProfile)(
   2361         ITfInputProcessorProfileMgr* This,
   2362         REFCLSID rclsid,
   2363         LANGID langid,
   2364         REFGUID guidProfile,
   2365         DWORD dwFlags);
   2366 
   2367     HRESULT (STDMETHODCALLTYPE *GetActiveProfile)(
   2368         ITfInputProcessorProfileMgr* This,
   2369         REFGUID catid,
   2370         TF_INPUTPROCESSORPROFILE *pProfile);
   2371 
   2372     END_INTERFACE
   2373 } ITfInputProcessorProfileMgrVtbl;
   2374 interface ITfInputProcessorProfileMgr {
   2375     CONST_VTBL ITfInputProcessorProfileMgrVtbl* lpVtbl;
   2376 };
   2377 
   2378 #ifdef COBJMACROS
   2379 #ifndef WIDL_C_INLINE_WRAPPERS
   2380 /*** IUnknown methods ***/
   2381 #define ITfInputProcessorProfileMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2382 #define ITfInputProcessorProfileMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
   2383 #define ITfInputProcessorProfileMgr_Release(This) (This)->lpVtbl->Release(This)
   2384 /*** ITfInputProcessorProfileMgr methods ***/
   2385 #define ITfInputProcessorProfileMgr_ActivateProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,dwFlags) (This)->lpVtbl->ActivateProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,dwFlags)
   2386 #define ITfInputProcessorProfileMgr_DeactivateProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,dwFlags) (This)->lpVtbl->DeactivateProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,dwFlags)
   2387 #define ITfInputProcessorProfileMgr_GetProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,pProfile) (This)->lpVtbl->GetProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,pProfile)
   2388 #define ITfInputProcessorProfileMgr_EnumProfiles(This,langid,ppEnum) (This)->lpVtbl->EnumProfiles(This,langid,ppEnum)
   2389 #define ITfInputProcessorProfileMgr_ReleaseInputProcessor(This,rclsid,dwFlags) (This)->lpVtbl->ReleaseInputProcessor(This,rclsid,dwFlags)
   2390 #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)
   2391 #define ITfInputProcessorProfileMgr_UnregisterProfile(This,rclsid,langid,guidProfile,dwFlags) (This)->lpVtbl->UnregisterProfile(This,rclsid,langid,guidProfile,dwFlags)
   2392 #define ITfInputProcessorProfileMgr_GetActiveProfile(This,catid,pProfile) (This)->lpVtbl->GetActiveProfile(This,catid,pProfile)
   2393 #else
   2394 /*** IUnknown methods ***/
   2395 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_QueryInterface(ITfInputProcessorProfileMgr* This,REFIID riid,void **ppvObject) {
   2396     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2397 }
   2398 static FORCEINLINE ULONG ITfInputProcessorProfileMgr_AddRef(ITfInputProcessorProfileMgr* This) {
   2399     return This->lpVtbl->AddRef(This);
   2400 }
   2401 static FORCEINLINE ULONG ITfInputProcessorProfileMgr_Release(ITfInputProcessorProfileMgr* This) {
   2402     return This->lpVtbl->Release(This);
   2403 }
   2404 /*** ITfInputProcessorProfileMgr methods ***/
   2405 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_ActivateProfile(ITfInputProcessorProfileMgr* This,DWORD dwProfileType,LANGID langid,REFCLSID clsid,REFGUID guidProfile,HKL hkl,DWORD dwFlags) {
   2406     return This->lpVtbl->ActivateProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,dwFlags);
   2407 }
   2408 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_DeactivateProfile(ITfInputProcessorProfileMgr* This,DWORD dwProfileType,LANGID langid,REFCLSID clsid,REFGUID guidProfile,HKL hkl,DWORD dwFlags) {
   2409     return This->lpVtbl->DeactivateProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,dwFlags);
   2410 }
   2411 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_GetProfile(ITfInputProcessorProfileMgr* This,DWORD dwProfileType,LANGID langid,REFCLSID clsid,REFGUID guidProfile,HKL hkl,TF_INPUTPROCESSORPROFILE *pProfile) {
   2412     return This->lpVtbl->GetProfile(This,dwProfileType,langid,clsid,guidProfile,hkl,pProfile);
   2413 }
   2414 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_EnumProfiles(ITfInputProcessorProfileMgr* This,LANGID langid,IEnumTfInputProcessorProfiles **ppEnum) {
   2415     return This->lpVtbl->EnumProfiles(This,langid,ppEnum);
   2416 }
   2417 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_ReleaseInputProcessor(ITfInputProcessorProfileMgr* This,REFCLSID rclsid,DWORD dwFlags) {
   2418     return This->lpVtbl->ReleaseInputProcessor(This,rclsid,dwFlags);
   2419 }
   2420 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_RegisterProfile(ITfInputProcessorProfileMgr* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,const WCHAR *pchDesc,ULONG cchDesc,const WCHAR *pchIconFile,ULONG cchFile,ULONG uIconIndex,HKL hklsubstitute,DWORD dwPreferredLayout,WINBOOL bEnabledByDefault,DWORD dwFlags) {
   2421     return This->lpVtbl->RegisterProfile(This,rclsid,langid,guidProfile,pchDesc,cchDesc,pchIconFile,cchFile,uIconIndex,hklsubstitute,dwPreferredLayout,bEnabledByDefault,dwFlags);
   2422 }
   2423 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_UnregisterProfile(ITfInputProcessorProfileMgr* This,REFCLSID rclsid,LANGID langid,REFGUID guidProfile,DWORD dwFlags) {
   2424     return This->lpVtbl->UnregisterProfile(This,rclsid,langid,guidProfile,dwFlags);
   2425 }
   2426 static FORCEINLINE HRESULT ITfInputProcessorProfileMgr_GetActiveProfile(ITfInputProcessorProfileMgr* This,REFGUID catid,TF_INPUTPROCESSORPROFILE *pProfile) {
   2427     return This->lpVtbl->GetActiveProfile(This,catid,pProfile);
   2428 }
   2429 #endif
   2430 #endif
   2431 
   2432 #endif
   2433 
   2434 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfileMgr_ActivateProfile_Proxy(
   2435     ITfInputProcessorProfileMgr* This,
   2436     DWORD dwProfileType,
   2437     LANGID langid,
   2438     REFCLSID clsid,
   2439     REFGUID guidProfile,
   2440     HKL hkl,
   2441     DWORD dwFlags);
   2442 void __RPC_STUB ITfInputProcessorProfileMgr_ActivateProfile_Stub(
   2443     IRpcStubBuffer* This,
   2444     IRpcChannelBuffer* pRpcChannelBuffer,
   2445     PRPC_MESSAGE pRpcMessage,
   2446     DWORD* pdwStubPhase);
   2447 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfileMgr_DeactivateProfile_Proxy(
   2448     ITfInputProcessorProfileMgr* This,
   2449     DWORD dwProfileType,
   2450     LANGID langid,
   2451     REFCLSID clsid,
   2452     REFGUID guidProfile,
   2453     HKL hkl,
   2454     DWORD dwFlags);
   2455 void __RPC_STUB ITfInputProcessorProfileMgr_DeactivateProfile_Stub(
   2456     IRpcStubBuffer* This,
   2457     IRpcChannelBuffer* pRpcChannelBuffer,
   2458     PRPC_MESSAGE pRpcMessage,
   2459     DWORD* pdwStubPhase);
   2460 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfileMgr_GetProfile_Proxy(
   2461     ITfInputProcessorProfileMgr* This,
   2462     DWORD dwProfileType,
   2463     LANGID langid,
   2464     REFCLSID clsid,
   2465     REFGUID guidProfile,
   2466     HKL hkl,
   2467     TF_INPUTPROCESSORPROFILE *pProfile);
   2468 void __RPC_STUB ITfInputProcessorProfileMgr_GetProfile_Stub(
   2469     IRpcStubBuffer* This,
   2470     IRpcChannelBuffer* pRpcChannelBuffer,
   2471     PRPC_MESSAGE pRpcMessage,
   2472     DWORD* pdwStubPhase);
   2473 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfileMgr_EnumProfiles_Proxy(
   2474     ITfInputProcessorProfileMgr* This,
   2475     LANGID langid,
   2476     IEnumTfInputProcessorProfiles **ppEnum);
   2477 void __RPC_STUB ITfInputProcessorProfileMgr_EnumProfiles_Stub(
   2478     IRpcStubBuffer* This,
   2479     IRpcChannelBuffer* pRpcChannelBuffer,
   2480     PRPC_MESSAGE pRpcMessage,
   2481     DWORD* pdwStubPhase);
   2482 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfileMgr_ReleaseInputProcessor_Proxy(
   2483     ITfInputProcessorProfileMgr* This,
   2484     REFCLSID rclsid,
   2485     DWORD dwFlags);
   2486 void __RPC_STUB ITfInputProcessorProfileMgr_ReleaseInputProcessor_Stub(
   2487     IRpcStubBuffer* This,
   2488     IRpcChannelBuffer* pRpcChannelBuffer,
   2489     PRPC_MESSAGE pRpcMessage,
   2490     DWORD* pdwStubPhase);
   2491 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfileMgr_RegisterProfile_Proxy(
   2492     ITfInputProcessorProfileMgr* This,
   2493     REFCLSID rclsid,
   2494     LANGID langid,
   2495     REFGUID guidProfile,
   2496     const WCHAR *pchDesc,
   2497     ULONG cchDesc,
   2498     const WCHAR *pchIconFile,
   2499     ULONG cchFile,
   2500     ULONG uIconIndex,
   2501     HKL hklsubstitute,
   2502     DWORD dwPreferredLayout,
   2503     WINBOOL bEnabledByDefault,
   2504     DWORD dwFlags);
   2505 void __RPC_STUB ITfInputProcessorProfileMgr_RegisterProfile_Stub(
   2506     IRpcStubBuffer* This,
   2507     IRpcChannelBuffer* pRpcChannelBuffer,
   2508     PRPC_MESSAGE pRpcMessage,
   2509     DWORD* pdwStubPhase);
   2510 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfileMgr_UnregisterProfile_Proxy(
   2511     ITfInputProcessorProfileMgr* This,
   2512     REFCLSID rclsid,
   2513     LANGID langid,
   2514     REFGUID guidProfile,
   2515     DWORD dwFlags);
   2516 void __RPC_STUB ITfInputProcessorProfileMgr_UnregisterProfile_Stub(
   2517     IRpcStubBuffer* This,
   2518     IRpcChannelBuffer* pRpcChannelBuffer,
   2519     PRPC_MESSAGE pRpcMessage,
   2520     DWORD* pdwStubPhase);
   2521 HRESULT STDMETHODCALLTYPE ITfInputProcessorProfileMgr_GetActiveProfile_Proxy(
   2522     ITfInputProcessorProfileMgr* This,
   2523     REFGUID catid,
   2524     TF_INPUTPROCESSORPROFILE *pProfile);
   2525 void __RPC_STUB ITfInputProcessorProfileMgr_GetActiveProfile_Stub(
   2526     IRpcStubBuffer* This,
   2527     IRpcChannelBuffer* pRpcChannelBuffer,
   2528     PRPC_MESSAGE pRpcMessage,
   2529     DWORD* pdwStubPhase);
   2530 
   2531 #endif  /* __ITfInputProcessorProfileMgr_INTERFACE_DEFINED__ */
   2532 
   2533 typedef enum __WIDL_msctf_generated_name_00000002 {
   2534     TF_LS_NONE = 0,
   2535     TF_LS_SOLID = 1,
   2536     TF_LS_DOT = 2,
   2537     TF_LS_DASH = 3,
   2538     TF_LS_SQUIGGLE = 4
   2539 } TF_DA_LINESTYLE;
   2540 typedef enum __WIDL_msctf_generated_name_00000003 {
   2541     TF_CT_NONE = 0,
   2542     TF_CT_SYSCOLOR = 1,
   2543     TF_CT_COLORREF = 2
   2544 } TF_DA_COLORTYPE;
   2545 typedef struct TF_DA_COLOR {
   2546     TF_DA_COLORTYPE type;
   2547     __C89_NAMELESS union {
   2548         int nIndex;
   2549         COLORREF cr;
   2550     } __C89_NAMELESSUNIONNAME;
   2551 } TF_DA_COLOR;
   2552 typedef enum __WIDL_msctf_generated_name_00000004 {
   2553     TF_ATTR_INPUT = 0,
   2554     TF_ATTR_TARGET_CONVERTED = 1,
   2555     TF_ATTR_CONVERTED = 2,
   2556     TF_ATTR_TARGET_NOTCONVERTED = 3,
   2557     TF_ATTR_INPUT_ERROR = 4,
   2558     TF_ATTR_FIXEDCONVERTED = 5,
   2559     TF_ATTR_OTHER = -1
   2560 } TF_DA_ATTR_INFO;
   2561 typedef struct TF_DISPLAYATTRIBUTE {
   2562     TF_DA_COLOR crText;
   2563     TF_DA_COLOR crBk;
   2564     TF_DA_LINESTYLE lsStyle;
   2565     WINBOOL fBoldLine;
   2566     TF_DA_COLOR crLine;
   2567     TF_DA_ATTR_INFO bAttr;
   2568 } TF_DISPLAYATTRIBUTE;
   2569 /*****************************************************************************
   2570  * ITfDisplayAttributeInfo interface
   2571  */
   2572 #ifndef __ITfDisplayAttributeInfo_INTERFACE_DEFINED__
   2573 #define __ITfDisplayAttributeInfo_INTERFACE_DEFINED__
   2574 
   2575 DEFINE_GUID(IID_ITfDisplayAttributeInfo, 0x70528852, 0x2f26, 0x4aea, 0x8c,0x96, 0x21,0x51,0x50,0x57,0x89,0x32);
   2576 #if defined(__cplusplus) && !defined(CINTERFACE)
   2577 MIDL_INTERFACE("70528852-2f26-4aea-8c96-215150578932")
   2578 ITfDisplayAttributeInfo : public IUnknown
   2579 {
   2580     virtual HRESULT STDMETHODCALLTYPE GetGUID(
   2581         GUID *pguid) = 0;
   2582 
   2583     virtual HRESULT STDMETHODCALLTYPE GetDescription(
   2584         BSTR *pbstrDesc) = 0;
   2585 
   2586     virtual HRESULT STDMETHODCALLTYPE GetAttributeInfo(
   2587         TF_DISPLAYATTRIBUTE *pda) = 0;
   2588 
   2589     virtual HRESULT STDMETHODCALLTYPE SetAttributeInfo(
   2590         const TF_DISPLAYATTRIBUTE *pda) = 0;
   2591 
   2592     virtual HRESULT STDMETHODCALLTYPE Reset(
   2593         ) = 0;
   2594 
   2595 };
   2596 #ifdef __CRT_UUID_DECL
   2597 __CRT_UUID_DECL(ITfDisplayAttributeInfo, 0x70528852, 0x2f26, 0x4aea, 0x8c,0x96, 0x21,0x51,0x50,0x57,0x89,0x32)
   2598 #endif
   2599 #else
   2600 typedef struct ITfDisplayAttributeInfoVtbl {
   2601     BEGIN_INTERFACE
   2602 
   2603     /*** IUnknown methods ***/
   2604     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2605         ITfDisplayAttributeInfo* This,
   2606         REFIID riid,
   2607         void **ppvObject);
   2608 
   2609     ULONG (STDMETHODCALLTYPE *AddRef)(
   2610         ITfDisplayAttributeInfo* This);
   2611 
   2612     ULONG (STDMETHODCALLTYPE *Release)(
   2613         ITfDisplayAttributeInfo* This);
   2614 
   2615     /*** ITfDisplayAttributeInfo methods ***/
   2616     HRESULT (STDMETHODCALLTYPE *GetGUID)(
   2617         ITfDisplayAttributeInfo* This,
   2618         GUID *pguid);
   2619 
   2620     HRESULT (STDMETHODCALLTYPE *GetDescription)(
   2621         ITfDisplayAttributeInfo* This,
   2622         BSTR *pbstrDesc);
   2623 
   2624     HRESULT (STDMETHODCALLTYPE *GetAttributeInfo)(
   2625         ITfDisplayAttributeInfo* This,
   2626         TF_DISPLAYATTRIBUTE *pda);
   2627 
   2628     HRESULT (STDMETHODCALLTYPE *SetAttributeInfo)(
   2629         ITfDisplayAttributeInfo* This,
   2630         const TF_DISPLAYATTRIBUTE *pda);
   2631 
   2632     HRESULT (STDMETHODCALLTYPE *Reset)(
   2633         ITfDisplayAttributeInfo* This);
   2634 
   2635     END_INTERFACE
   2636 } ITfDisplayAttributeInfoVtbl;
   2637 interface ITfDisplayAttributeInfo {
   2638     CONST_VTBL ITfDisplayAttributeInfoVtbl* lpVtbl;
   2639 };
   2640 
   2641 #ifdef COBJMACROS
   2642 #ifndef WIDL_C_INLINE_WRAPPERS
   2643 /*** IUnknown methods ***/
   2644 #define ITfDisplayAttributeInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2645 #define ITfDisplayAttributeInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   2646 #define ITfDisplayAttributeInfo_Release(This) (This)->lpVtbl->Release(This)
   2647 /*** ITfDisplayAttributeInfo methods ***/
   2648 #define ITfDisplayAttributeInfo_GetGUID(This,pguid) (This)->lpVtbl->GetGUID(This,pguid)
   2649 #define ITfDisplayAttributeInfo_GetDescription(This,pbstrDesc) (This)->lpVtbl->GetDescription(This,pbstrDesc)
   2650 #define ITfDisplayAttributeInfo_GetAttributeInfo(This,pda) (This)->lpVtbl->GetAttributeInfo(This,pda)
   2651 #define ITfDisplayAttributeInfo_SetAttributeInfo(This,pda) (This)->lpVtbl->SetAttributeInfo(This,pda)
   2652 #define ITfDisplayAttributeInfo_Reset(This) (This)->lpVtbl->Reset(This)
   2653 #else
   2654 /*** IUnknown methods ***/
   2655 static FORCEINLINE HRESULT ITfDisplayAttributeInfo_QueryInterface(ITfDisplayAttributeInfo* This,REFIID riid,void **ppvObject) {
   2656     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2657 }
   2658 static FORCEINLINE ULONG ITfDisplayAttributeInfo_AddRef(ITfDisplayAttributeInfo* This) {
   2659     return This->lpVtbl->AddRef(This);
   2660 }
   2661 static FORCEINLINE ULONG ITfDisplayAttributeInfo_Release(ITfDisplayAttributeInfo* This) {
   2662     return This->lpVtbl->Release(This);
   2663 }
   2664 /*** ITfDisplayAttributeInfo methods ***/
   2665 static FORCEINLINE HRESULT ITfDisplayAttributeInfo_GetGUID(ITfDisplayAttributeInfo* This,GUID *pguid) {
   2666     return This->lpVtbl->GetGUID(This,pguid);
   2667 }
   2668 static FORCEINLINE HRESULT ITfDisplayAttributeInfo_GetDescription(ITfDisplayAttributeInfo* This,BSTR *pbstrDesc) {
   2669     return This->lpVtbl->GetDescription(This,pbstrDesc);
   2670 }
   2671 static FORCEINLINE HRESULT ITfDisplayAttributeInfo_GetAttributeInfo(ITfDisplayAttributeInfo* This,TF_DISPLAYATTRIBUTE *pda) {
   2672     return This->lpVtbl->GetAttributeInfo(This,pda);
   2673 }
   2674 static FORCEINLINE HRESULT ITfDisplayAttributeInfo_SetAttributeInfo(ITfDisplayAttributeInfo* This,const TF_DISPLAYATTRIBUTE *pda) {
   2675     return This->lpVtbl->SetAttributeInfo(This,pda);
   2676 }
   2677 static FORCEINLINE HRESULT ITfDisplayAttributeInfo_Reset(ITfDisplayAttributeInfo* This) {
   2678     return This->lpVtbl->Reset(This);
   2679 }
   2680 #endif
   2681 #endif
   2682 
   2683 #endif
   2684 
   2685 HRESULT STDMETHODCALLTYPE ITfDisplayAttributeInfo_GetGUID_Proxy(
   2686     ITfDisplayAttributeInfo* This,
   2687     GUID *pguid);
   2688 void __RPC_STUB ITfDisplayAttributeInfo_GetGUID_Stub(
   2689     IRpcStubBuffer* This,
   2690     IRpcChannelBuffer* pRpcChannelBuffer,
   2691     PRPC_MESSAGE pRpcMessage,
   2692     DWORD* pdwStubPhase);
   2693 HRESULT STDMETHODCALLTYPE ITfDisplayAttributeInfo_GetDescription_Proxy(
   2694     ITfDisplayAttributeInfo* This,
   2695     BSTR *pbstrDesc);
   2696 void __RPC_STUB ITfDisplayAttributeInfo_GetDescription_Stub(
   2697     IRpcStubBuffer* This,
   2698     IRpcChannelBuffer* pRpcChannelBuffer,
   2699     PRPC_MESSAGE pRpcMessage,
   2700     DWORD* pdwStubPhase);
   2701 HRESULT STDMETHODCALLTYPE ITfDisplayAttributeInfo_GetAttributeInfo_Proxy(
   2702     ITfDisplayAttributeInfo* This,
   2703     TF_DISPLAYATTRIBUTE *pda);
   2704 void __RPC_STUB ITfDisplayAttributeInfo_GetAttributeInfo_Stub(
   2705     IRpcStubBuffer* This,
   2706     IRpcChannelBuffer* pRpcChannelBuffer,
   2707     PRPC_MESSAGE pRpcMessage,
   2708     DWORD* pdwStubPhase);
   2709 HRESULT STDMETHODCALLTYPE ITfDisplayAttributeInfo_SetAttributeInfo_Proxy(
   2710     ITfDisplayAttributeInfo* This,
   2711     const TF_DISPLAYATTRIBUTE *pda);
   2712 void __RPC_STUB ITfDisplayAttributeInfo_SetAttributeInfo_Stub(
   2713     IRpcStubBuffer* This,
   2714     IRpcChannelBuffer* pRpcChannelBuffer,
   2715     PRPC_MESSAGE pRpcMessage,
   2716     DWORD* pdwStubPhase);
   2717 HRESULT STDMETHODCALLTYPE ITfDisplayAttributeInfo_Reset_Proxy(
   2718     ITfDisplayAttributeInfo* This);
   2719 void __RPC_STUB ITfDisplayAttributeInfo_Reset_Stub(
   2720     IRpcStubBuffer* This,
   2721     IRpcChannelBuffer* pRpcChannelBuffer,
   2722     PRPC_MESSAGE pRpcMessage,
   2723     DWORD* pdwStubPhase);
   2724 
   2725 #endif  /* __ITfDisplayAttributeInfo_INTERFACE_DEFINED__ */
   2726 
   2727 /*****************************************************************************
   2728  * IEnumTfDisplayAttributeInfo interface
   2729  */
   2730 #ifndef __IEnumTfDisplayAttributeInfo_INTERFACE_DEFINED__
   2731 #define __IEnumTfDisplayAttributeInfo_INTERFACE_DEFINED__
   2732 
   2733 DEFINE_GUID(IID_IEnumTfDisplayAttributeInfo, 0x7cef04d7, 0xcb75, 0x4e80, 0xa7,0xab, 0x5f,0x5b,0xc7,0xd3,0x32,0xde);
   2734 #if defined(__cplusplus) && !defined(CINTERFACE)
   2735 MIDL_INTERFACE("7cef04d7-cb75-4e80-a7ab-5f5bc7d332de")
   2736 IEnumTfDisplayAttributeInfo : public IUnknown
   2737 {
   2738     virtual HRESULT STDMETHODCALLTYPE Clone(
   2739         IEnumTfDisplayAttributeInfo **ppEnum) = 0;
   2740 
   2741     virtual HRESULT STDMETHODCALLTYPE Next(
   2742         ULONG ulCount,
   2743         ITfDisplayAttributeInfo **rgInfo,
   2744         ULONG *pcFetched) = 0;
   2745 
   2746     virtual HRESULT STDMETHODCALLTYPE Reset(
   2747         ) = 0;
   2748 
   2749     virtual HRESULT STDMETHODCALLTYPE Skip(
   2750         ULONG ulCount) = 0;
   2751 
   2752 };
   2753 #ifdef __CRT_UUID_DECL
   2754 __CRT_UUID_DECL(IEnumTfDisplayAttributeInfo, 0x7cef04d7, 0xcb75, 0x4e80, 0xa7,0xab, 0x5f,0x5b,0xc7,0xd3,0x32,0xde)
   2755 #endif
   2756 #else
   2757 typedef struct IEnumTfDisplayAttributeInfoVtbl {
   2758     BEGIN_INTERFACE
   2759 
   2760     /*** IUnknown methods ***/
   2761     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2762         IEnumTfDisplayAttributeInfo* This,
   2763         REFIID riid,
   2764         void **ppvObject);
   2765 
   2766     ULONG (STDMETHODCALLTYPE *AddRef)(
   2767         IEnumTfDisplayAttributeInfo* This);
   2768 
   2769     ULONG (STDMETHODCALLTYPE *Release)(
   2770         IEnumTfDisplayAttributeInfo* This);
   2771 
   2772     /*** IEnumTfDisplayAttributeInfo methods ***/
   2773     HRESULT (STDMETHODCALLTYPE *Clone)(
   2774         IEnumTfDisplayAttributeInfo* This,
   2775         IEnumTfDisplayAttributeInfo **ppEnum);
   2776 
   2777     HRESULT (STDMETHODCALLTYPE *Next)(
   2778         IEnumTfDisplayAttributeInfo* This,
   2779         ULONG ulCount,
   2780         ITfDisplayAttributeInfo **rgInfo,
   2781         ULONG *pcFetched);
   2782 
   2783     HRESULT (STDMETHODCALLTYPE *Reset)(
   2784         IEnumTfDisplayAttributeInfo* This);
   2785 
   2786     HRESULT (STDMETHODCALLTYPE *Skip)(
   2787         IEnumTfDisplayAttributeInfo* This,
   2788         ULONG ulCount);
   2789 
   2790     END_INTERFACE
   2791 } IEnumTfDisplayAttributeInfoVtbl;
   2792 interface IEnumTfDisplayAttributeInfo {
   2793     CONST_VTBL IEnumTfDisplayAttributeInfoVtbl* lpVtbl;
   2794 };
   2795 
   2796 #ifdef COBJMACROS
   2797 #ifndef WIDL_C_INLINE_WRAPPERS
   2798 /*** IUnknown methods ***/
   2799 #define IEnumTfDisplayAttributeInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2800 #define IEnumTfDisplayAttributeInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   2801 #define IEnumTfDisplayAttributeInfo_Release(This) (This)->lpVtbl->Release(This)
   2802 /*** IEnumTfDisplayAttributeInfo methods ***/
   2803 #define IEnumTfDisplayAttributeInfo_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   2804 #define IEnumTfDisplayAttributeInfo_Next(This,ulCount,rgInfo,pcFetched) (This)->lpVtbl->Next(This,ulCount,rgInfo,pcFetched)
   2805 #define IEnumTfDisplayAttributeInfo_Reset(This) (This)->lpVtbl->Reset(This)
   2806 #define IEnumTfDisplayAttributeInfo_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
   2807 #else
   2808 /*** IUnknown methods ***/
   2809 static FORCEINLINE HRESULT IEnumTfDisplayAttributeInfo_QueryInterface(IEnumTfDisplayAttributeInfo* This,REFIID riid,void **ppvObject) {
   2810     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2811 }
   2812 static FORCEINLINE ULONG IEnumTfDisplayAttributeInfo_AddRef(IEnumTfDisplayAttributeInfo* This) {
   2813     return This->lpVtbl->AddRef(This);
   2814 }
   2815 static FORCEINLINE ULONG IEnumTfDisplayAttributeInfo_Release(IEnumTfDisplayAttributeInfo* This) {
   2816     return This->lpVtbl->Release(This);
   2817 }
   2818 /*** IEnumTfDisplayAttributeInfo methods ***/
   2819 static FORCEINLINE HRESULT IEnumTfDisplayAttributeInfo_Clone(IEnumTfDisplayAttributeInfo* This,IEnumTfDisplayAttributeInfo **ppEnum) {
   2820     return This->lpVtbl->Clone(This,ppEnum);
   2821 }
   2822 static FORCEINLINE HRESULT IEnumTfDisplayAttributeInfo_Next(IEnumTfDisplayAttributeInfo* This,ULONG ulCount,ITfDisplayAttributeInfo **rgInfo,ULONG *pcFetched) {
   2823     return This->lpVtbl->Next(This,ulCount,rgInfo,pcFetched);
   2824 }
   2825 static FORCEINLINE HRESULT IEnumTfDisplayAttributeInfo_Reset(IEnumTfDisplayAttributeInfo* This) {
   2826     return This->lpVtbl->Reset(This);
   2827 }
   2828 static FORCEINLINE HRESULT IEnumTfDisplayAttributeInfo_Skip(IEnumTfDisplayAttributeInfo* This,ULONG ulCount) {
   2829     return This->lpVtbl->Skip(This,ulCount);
   2830 }
   2831 #endif
   2832 #endif
   2833 
   2834 #endif
   2835 
   2836 HRESULT STDMETHODCALLTYPE IEnumTfDisplayAttributeInfo_Clone_Proxy(
   2837     IEnumTfDisplayAttributeInfo* This,
   2838     IEnumTfDisplayAttributeInfo **ppEnum);
   2839 void __RPC_STUB IEnumTfDisplayAttributeInfo_Clone_Stub(
   2840     IRpcStubBuffer* This,
   2841     IRpcChannelBuffer* pRpcChannelBuffer,
   2842     PRPC_MESSAGE pRpcMessage,
   2843     DWORD* pdwStubPhase);
   2844 HRESULT STDMETHODCALLTYPE IEnumTfDisplayAttributeInfo_Next_Proxy(
   2845     IEnumTfDisplayAttributeInfo* This,
   2846     ULONG ulCount,
   2847     ITfDisplayAttributeInfo **rgInfo,
   2848     ULONG *pcFetched);
   2849 void __RPC_STUB IEnumTfDisplayAttributeInfo_Next_Stub(
   2850     IRpcStubBuffer* This,
   2851     IRpcChannelBuffer* pRpcChannelBuffer,
   2852     PRPC_MESSAGE pRpcMessage,
   2853     DWORD* pdwStubPhase);
   2854 HRESULT STDMETHODCALLTYPE IEnumTfDisplayAttributeInfo_Reset_Proxy(
   2855     IEnumTfDisplayAttributeInfo* This);
   2856 void __RPC_STUB IEnumTfDisplayAttributeInfo_Reset_Stub(
   2857     IRpcStubBuffer* This,
   2858     IRpcChannelBuffer* pRpcChannelBuffer,
   2859     PRPC_MESSAGE pRpcMessage,
   2860     DWORD* pdwStubPhase);
   2861 HRESULT STDMETHODCALLTYPE IEnumTfDisplayAttributeInfo_Skip_Proxy(
   2862     IEnumTfDisplayAttributeInfo* This,
   2863     ULONG ulCount);
   2864 void __RPC_STUB IEnumTfDisplayAttributeInfo_Skip_Stub(
   2865     IRpcStubBuffer* This,
   2866     IRpcChannelBuffer* pRpcChannelBuffer,
   2867     PRPC_MESSAGE pRpcMessage,
   2868     DWORD* pdwStubPhase);
   2869 
   2870 #endif  /* __IEnumTfDisplayAttributeInfo_INTERFACE_DEFINED__ */
   2871 
   2872 /*****************************************************************************
   2873  * ITfDisplayAttributeMgr interface
   2874  */
   2875 #ifndef __ITfDisplayAttributeMgr_INTERFACE_DEFINED__
   2876 #define __ITfDisplayAttributeMgr_INTERFACE_DEFINED__
   2877 
   2878 DEFINE_GUID(IID_ITfDisplayAttributeMgr, 0x8ded7393, 0x5db1, 0x475c, 0x9e,0x71, 0xa3,0x91,0x11,0xb0,0xff,0x67);
   2879 #if defined(__cplusplus) && !defined(CINTERFACE)
   2880 MIDL_INTERFACE("8ded7393-5db1-475c-9e71-a39111b0ff67")
   2881 ITfDisplayAttributeMgr : public IUnknown
   2882 {
   2883     virtual HRESULT STDMETHODCALLTYPE OnUpdateInfo(
   2884         ) = 0;
   2885 
   2886     virtual HRESULT STDMETHODCALLTYPE EnumDisplayAttributeInfo(
   2887         IEnumTfDisplayAttributeInfo **ppEnum) = 0;
   2888 
   2889     virtual HRESULT STDMETHODCALLTYPE GetDisplayAttributeInfo(
   2890         REFGUID guid,
   2891         ITfDisplayAttributeInfo **ppInfo,
   2892         CLSID *pclsidOwner) = 0;
   2893 
   2894 };
   2895 #ifdef __CRT_UUID_DECL
   2896 __CRT_UUID_DECL(ITfDisplayAttributeMgr, 0x8ded7393, 0x5db1, 0x475c, 0x9e,0x71, 0xa3,0x91,0x11,0xb0,0xff,0x67)
   2897 #endif
   2898 #else
   2899 typedef struct ITfDisplayAttributeMgrVtbl {
   2900     BEGIN_INTERFACE
   2901 
   2902     /*** IUnknown methods ***/
   2903     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2904         ITfDisplayAttributeMgr* This,
   2905         REFIID riid,
   2906         void **ppvObject);
   2907 
   2908     ULONG (STDMETHODCALLTYPE *AddRef)(
   2909         ITfDisplayAttributeMgr* This);
   2910 
   2911     ULONG (STDMETHODCALLTYPE *Release)(
   2912         ITfDisplayAttributeMgr* This);
   2913 
   2914     /*** ITfDisplayAttributeMgr methods ***/
   2915     HRESULT (STDMETHODCALLTYPE *OnUpdateInfo)(
   2916         ITfDisplayAttributeMgr* This);
   2917 
   2918     HRESULT (STDMETHODCALLTYPE *EnumDisplayAttributeInfo)(
   2919         ITfDisplayAttributeMgr* This,
   2920         IEnumTfDisplayAttributeInfo **ppEnum);
   2921 
   2922     HRESULT (STDMETHODCALLTYPE *GetDisplayAttributeInfo)(
   2923         ITfDisplayAttributeMgr* This,
   2924         REFGUID guid,
   2925         ITfDisplayAttributeInfo **ppInfo,
   2926         CLSID *pclsidOwner);
   2927 
   2928     END_INTERFACE
   2929 } ITfDisplayAttributeMgrVtbl;
   2930 interface ITfDisplayAttributeMgr {
   2931     CONST_VTBL ITfDisplayAttributeMgrVtbl* lpVtbl;
   2932 };
   2933 
   2934 #ifdef COBJMACROS
   2935 #ifndef WIDL_C_INLINE_WRAPPERS
   2936 /*** IUnknown methods ***/
   2937 #define ITfDisplayAttributeMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2938 #define ITfDisplayAttributeMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
   2939 #define ITfDisplayAttributeMgr_Release(This) (This)->lpVtbl->Release(This)
   2940 /*** ITfDisplayAttributeMgr methods ***/
   2941 #define ITfDisplayAttributeMgr_OnUpdateInfo(This) (This)->lpVtbl->OnUpdateInfo(This)
   2942 #define ITfDisplayAttributeMgr_EnumDisplayAttributeInfo(This,ppEnum) (This)->lpVtbl->EnumDisplayAttributeInfo(This,ppEnum)
   2943 #define ITfDisplayAttributeMgr_GetDisplayAttributeInfo(This,guid,ppInfo,pclsidOwner) (This)->lpVtbl->GetDisplayAttributeInfo(This,guid,ppInfo,pclsidOwner)
   2944 #else
   2945 /*** IUnknown methods ***/
   2946 static FORCEINLINE HRESULT ITfDisplayAttributeMgr_QueryInterface(ITfDisplayAttributeMgr* This,REFIID riid,void **ppvObject) {
   2947     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2948 }
   2949 static FORCEINLINE ULONG ITfDisplayAttributeMgr_AddRef(ITfDisplayAttributeMgr* This) {
   2950     return This->lpVtbl->AddRef(This);
   2951 }
   2952 static FORCEINLINE ULONG ITfDisplayAttributeMgr_Release(ITfDisplayAttributeMgr* This) {
   2953     return This->lpVtbl->Release(This);
   2954 }
   2955 /*** ITfDisplayAttributeMgr methods ***/
   2956 static FORCEINLINE HRESULT ITfDisplayAttributeMgr_OnUpdateInfo(ITfDisplayAttributeMgr* This) {
   2957     return This->lpVtbl->OnUpdateInfo(This);
   2958 }
   2959 static FORCEINLINE HRESULT ITfDisplayAttributeMgr_EnumDisplayAttributeInfo(ITfDisplayAttributeMgr* This,IEnumTfDisplayAttributeInfo **ppEnum) {
   2960     return This->lpVtbl->EnumDisplayAttributeInfo(This,ppEnum);
   2961 }
   2962 static FORCEINLINE HRESULT ITfDisplayAttributeMgr_GetDisplayAttributeInfo(ITfDisplayAttributeMgr* This,REFGUID guid,ITfDisplayAttributeInfo **ppInfo,CLSID *pclsidOwner) {
   2963     return This->lpVtbl->GetDisplayAttributeInfo(This,guid,ppInfo,pclsidOwner);
   2964 }
   2965 #endif
   2966 #endif
   2967 
   2968 #endif
   2969 
   2970 HRESULT STDMETHODCALLTYPE ITfDisplayAttributeMgr_OnUpdateInfo_Proxy(
   2971     ITfDisplayAttributeMgr* This);
   2972 void __RPC_STUB ITfDisplayAttributeMgr_OnUpdateInfo_Stub(
   2973     IRpcStubBuffer* This,
   2974     IRpcChannelBuffer* pRpcChannelBuffer,
   2975     PRPC_MESSAGE pRpcMessage,
   2976     DWORD* pdwStubPhase);
   2977 HRESULT STDMETHODCALLTYPE ITfDisplayAttributeMgr_EnumDisplayAttributeInfo_Proxy(
   2978     ITfDisplayAttributeMgr* This,
   2979     IEnumTfDisplayAttributeInfo **ppEnum);
   2980 void __RPC_STUB ITfDisplayAttributeMgr_EnumDisplayAttributeInfo_Stub(
   2981     IRpcStubBuffer* This,
   2982     IRpcChannelBuffer* pRpcChannelBuffer,
   2983     PRPC_MESSAGE pRpcMessage,
   2984     DWORD* pdwStubPhase);
   2985 HRESULT STDMETHODCALLTYPE ITfDisplayAttributeMgr_GetDisplayAttributeInfo_Proxy(
   2986     ITfDisplayAttributeMgr* This,
   2987     REFGUID guid,
   2988     ITfDisplayAttributeInfo **ppInfo,
   2989     CLSID *pclsidOwner);
   2990 void __RPC_STUB ITfDisplayAttributeMgr_GetDisplayAttributeInfo_Stub(
   2991     IRpcStubBuffer* This,
   2992     IRpcChannelBuffer* pRpcChannelBuffer,
   2993     PRPC_MESSAGE pRpcMessage,
   2994     DWORD* pdwStubPhase);
   2995 
   2996 #endif  /* __ITfDisplayAttributeMgr_INTERFACE_DEFINED__ */
   2997 
   2998 /*****************************************************************************
   2999  * ITfCategoryMgr interface
   3000  */
   3001 #ifndef __ITfCategoryMgr_INTERFACE_DEFINED__
   3002 #define __ITfCategoryMgr_INTERFACE_DEFINED__
   3003 
   3004 DEFINE_GUID(IID_ITfCategoryMgr, 0xc3acefb5, 0xf69d, 0x4905, 0x93,0x8f, 0xfc,0xad,0xcf,0x4b,0xe8,0x30);
   3005 #if defined(__cplusplus) && !defined(CINTERFACE)
   3006 MIDL_INTERFACE("c3acefb5-f69d-4905-938f-fcadcf4be830")
   3007 ITfCategoryMgr : public IUnknown
   3008 {
   3009     virtual HRESULT STDMETHODCALLTYPE RegisterCategory(
   3010         REFCLSID rclsid,
   3011         REFGUID rcatid,
   3012         REFGUID rguid) = 0;
   3013 
   3014     virtual HRESULT STDMETHODCALLTYPE UnregisterCategory(
   3015         REFCLSID rclsid,
   3016         REFGUID rcatid,
   3017         REFGUID rguid) = 0;
   3018 
   3019     virtual HRESULT STDMETHODCALLTYPE EnumCategoriesInItem(
   3020         REFGUID rguid,
   3021         IEnumGUID **ppEnum) = 0;
   3022 
   3023     virtual HRESULT STDMETHODCALLTYPE EnumItemsInCategory(
   3024         REFGUID rcatid,
   3025         IEnumGUID **ppEnum) = 0;
   3026 
   3027     virtual HRESULT STDMETHODCALLTYPE FindClosestCategory(
   3028         REFGUID rguid,
   3029         GUID *pcatid,
   3030         const GUID **ppcatidList,
   3031         ULONG ulCount) = 0;
   3032 
   3033     virtual HRESULT STDMETHODCALLTYPE RegisterGUIDDescription(
   3034         REFCLSID rclsid,
   3035         REFGUID rguid,
   3036         const WCHAR *pchDesc,
   3037         ULONG cch) = 0;
   3038 
   3039     virtual HRESULT STDMETHODCALLTYPE UnregisterGUIDDescription(
   3040         REFCLSID rclsid,
   3041         REFGUID rguid) = 0;
   3042 
   3043     virtual HRESULT STDMETHODCALLTYPE GetGUIDDescription(
   3044         REFGUID rguid,
   3045         BSTR *pbstrDesc) = 0;
   3046 
   3047     virtual HRESULT STDMETHODCALLTYPE RegisterGUIDDWORD(
   3048         REFCLSID rclsid,
   3049         REFGUID rguid,
   3050         DWORD dw) = 0;
   3051 
   3052     virtual HRESULT STDMETHODCALLTYPE UnregisterGUIDDWORD(
   3053         REFCLSID rclsid,
   3054         REFGUID rguid) = 0;
   3055 
   3056     virtual HRESULT STDMETHODCALLTYPE GetGUIDDWORD(
   3057         REFGUID rguid,
   3058         DWORD *pdw) = 0;
   3059 
   3060     virtual HRESULT STDMETHODCALLTYPE RegisterGUID(
   3061         REFGUID rguid,
   3062         TfGuidAtom *pguidatom) = 0;
   3063 
   3064     virtual HRESULT STDMETHODCALLTYPE GetGUID(
   3065         TfGuidAtom guidatom,
   3066         GUID *pguid) = 0;
   3067 
   3068     virtual HRESULT STDMETHODCALLTYPE IsEqualTfGuidAtom(
   3069         TfGuidAtom guidatom,
   3070         REFGUID rguid,
   3071         WINBOOL *pfEqual) = 0;
   3072 
   3073 };
   3074 #ifdef __CRT_UUID_DECL
   3075 __CRT_UUID_DECL(ITfCategoryMgr, 0xc3acefb5, 0xf69d, 0x4905, 0x93,0x8f, 0xfc,0xad,0xcf,0x4b,0xe8,0x30)
   3076 #endif
   3077 #else
   3078 typedef struct ITfCategoryMgrVtbl {
   3079     BEGIN_INTERFACE
   3080 
   3081     /*** IUnknown methods ***/
   3082     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3083         ITfCategoryMgr* This,
   3084         REFIID riid,
   3085         void **ppvObject);
   3086 
   3087     ULONG (STDMETHODCALLTYPE *AddRef)(
   3088         ITfCategoryMgr* This);
   3089 
   3090     ULONG (STDMETHODCALLTYPE *Release)(
   3091         ITfCategoryMgr* This);
   3092 
   3093     /*** ITfCategoryMgr methods ***/
   3094     HRESULT (STDMETHODCALLTYPE *RegisterCategory)(
   3095         ITfCategoryMgr* This,
   3096         REFCLSID rclsid,
   3097         REFGUID rcatid,
   3098         REFGUID rguid);
   3099 
   3100     HRESULT (STDMETHODCALLTYPE *UnregisterCategory)(
   3101         ITfCategoryMgr* This,
   3102         REFCLSID rclsid,
   3103         REFGUID rcatid,
   3104         REFGUID rguid);
   3105 
   3106     HRESULT (STDMETHODCALLTYPE *EnumCategoriesInItem)(
   3107         ITfCategoryMgr* This,
   3108         REFGUID rguid,
   3109         IEnumGUID **ppEnum);
   3110 
   3111     HRESULT (STDMETHODCALLTYPE *EnumItemsInCategory)(
   3112         ITfCategoryMgr* This,
   3113         REFGUID rcatid,
   3114         IEnumGUID **ppEnum);
   3115 
   3116     HRESULT (STDMETHODCALLTYPE *FindClosestCategory)(
   3117         ITfCategoryMgr* This,
   3118         REFGUID rguid,
   3119         GUID *pcatid,
   3120         const GUID **ppcatidList,
   3121         ULONG ulCount);
   3122 
   3123     HRESULT (STDMETHODCALLTYPE *RegisterGUIDDescription)(
   3124         ITfCategoryMgr* This,
   3125         REFCLSID rclsid,
   3126         REFGUID rguid,
   3127         const WCHAR *pchDesc,
   3128         ULONG cch);
   3129 
   3130     HRESULT (STDMETHODCALLTYPE *UnregisterGUIDDescription)(
   3131         ITfCategoryMgr* This,
   3132         REFCLSID rclsid,
   3133         REFGUID rguid);
   3134 
   3135     HRESULT (STDMETHODCALLTYPE *GetGUIDDescription)(
   3136         ITfCategoryMgr* This,
   3137         REFGUID rguid,
   3138         BSTR *pbstrDesc);
   3139 
   3140     HRESULT (STDMETHODCALLTYPE *RegisterGUIDDWORD)(
   3141         ITfCategoryMgr* This,
   3142         REFCLSID rclsid,
   3143         REFGUID rguid,
   3144         DWORD dw);
   3145 
   3146     HRESULT (STDMETHODCALLTYPE *UnregisterGUIDDWORD)(
   3147         ITfCategoryMgr* This,
   3148         REFCLSID rclsid,
   3149         REFGUID rguid);
   3150 
   3151     HRESULT (STDMETHODCALLTYPE *GetGUIDDWORD)(
   3152         ITfCategoryMgr* This,
   3153         REFGUID rguid,
   3154         DWORD *pdw);
   3155 
   3156     HRESULT (STDMETHODCALLTYPE *RegisterGUID)(
   3157         ITfCategoryMgr* This,
   3158         REFGUID rguid,
   3159         TfGuidAtom *pguidatom);
   3160 
   3161     HRESULT (STDMETHODCALLTYPE *GetGUID)(
   3162         ITfCategoryMgr* This,
   3163         TfGuidAtom guidatom,
   3164         GUID *pguid);
   3165 
   3166     HRESULT (STDMETHODCALLTYPE *IsEqualTfGuidAtom)(
   3167         ITfCategoryMgr* This,
   3168         TfGuidAtom guidatom,
   3169         REFGUID rguid,
   3170         WINBOOL *pfEqual);
   3171 
   3172     END_INTERFACE
   3173 } ITfCategoryMgrVtbl;
   3174 interface ITfCategoryMgr {
   3175     CONST_VTBL ITfCategoryMgrVtbl* lpVtbl;
   3176 };
   3177 
   3178 #ifdef COBJMACROS
   3179 #ifndef WIDL_C_INLINE_WRAPPERS
   3180 /*** IUnknown methods ***/
   3181 #define ITfCategoryMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3182 #define ITfCategoryMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
   3183 #define ITfCategoryMgr_Release(This) (This)->lpVtbl->Release(This)
   3184 /*** ITfCategoryMgr methods ***/
   3185 #define ITfCategoryMgr_RegisterCategory(This,rclsid,rcatid,rguid) (This)->lpVtbl->RegisterCategory(This,rclsid,rcatid,rguid)
   3186 #define ITfCategoryMgr_UnregisterCategory(This,rclsid,rcatid,rguid) (This)->lpVtbl->UnregisterCategory(This,rclsid,rcatid,rguid)
   3187 #define ITfCategoryMgr_EnumCategoriesInItem(This,rguid,ppEnum) (This)->lpVtbl->EnumCategoriesInItem(This,rguid,ppEnum)
   3188 #define ITfCategoryMgr_EnumItemsInCategory(This,rcatid,ppEnum) (This)->lpVtbl->EnumItemsInCategory(This,rcatid,ppEnum)
   3189 #define ITfCategoryMgr_FindClosestCategory(This,rguid,pcatid,ppcatidList,ulCount) (This)->lpVtbl->FindClosestCategory(This,rguid,pcatid,ppcatidList,ulCount)
   3190 #define ITfCategoryMgr_RegisterGUIDDescription(This,rclsid,rguid,pchDesc,cch) (This)->lpVtbl->RegisterGUIDDescription(This,rclsid,rguid,pchDesc,cch)
   3191 #define ITfCategoryMgr_UnregisterGUIDDescription(This,rclsid,rguid) (This)->lpVtbl->UnregisterGUIDDescription(This,rclsid,rguid)
   3192 #define ITfCategoryMgr_GetGUIDDescription(This,rguid,pbstrDesc) (This)->lpVtbl->GetGUIDDescription(This,rguid,pbstrDesc)
   3193 #define ITfCategoryMgr_RegisterGUIDDWORD(This,rclsid,rguid,dw) (This)->lpVtbl->RegisterGUIDDWORD(This,rclsid,rguid,dw)
   3194 #define ITfCategoryMgr_UnregisterGUIDDWORD(This,rclsid,rguid) (This)->lpVtbl->UnregisterGUIDDWORD(This,rclsid,rguid)
   3195 #define ITfCategoryMgr_GetGUIDDWORD(This,rguid,pdw) (This)->lpVtbl->GetGUIDDWORD(This,rguid,pdw)
   3196 #define ITfCategoryMgr_RegisterGUID(This,rguid,pguidatom) (This)->lpVtbl->RegisterGUID(This,rguid,pguidatom)
   3197 #define ITfCategoryMgr_GetGUID(This,guidatom,pguid) (This)->lpVtbl->GetGUID(This,guidatom,pguid)
   3198 #define ITfCategoryMgr_IsEqualTfGuidAtom(This,guidatom,rguid,pfEqual) (This)->lpVtbl->IsEqualTfGuidAtom(This,guidatom,rguid,pfEqual)
   3199 #else
   3200 /*** IUnknown methods ***/
   3201 static FORCEINLINE HRESULT ITfCategoryMgr_QueryInterface(ITfCategoryMgr* This,REFIID riid,void **ppvObject) {
   3202     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3203 }
   3204 static FORCEINLINE ULONG ITfCategoryMgr_AddRef(ITfCategoryMgr* This) {
   3205     return This->lpVtbl->AddRef(This);
   3206 }
   3207 static FORCEINLINE ULONG ITfCategoryMgr_Release(ITfCategoryMgr* This) {
   3208     return This->lpVtbl->Release(This);
   3209 }
   3210 /*** ITfCategoryMgr methods ***/
   3211 static FORCEINLINE HRESULT ITfCategoryMgr_RegisterCategory(ITfCategoryMgr* This,REFCLSID rclsid,REFGUID rcatid,REFGUID rguid) {
   3212     return This->lpVtbl->RegisterCategory(This,rclsid,rcatid,rguid);
   3213 }
   3214 static FORCEINLINE HRESULT ITfCategoryMgr_UnregisterCategory(ITfCategoryMgr* This,REFCLSID rclsid,REFGUID rcatid,REFGUID rguid) {
   3215     return This->lpVtbl->UnregisterCategory(This,rclsid,rcatid,rguid);
   3216 }
   3217 static FORCEINLINE HRESULT ITfCategoryMgr_EnumCategoriesInItem(ITfCategoryMgr* This,REFGUID rguid,IEnumGUID **ppEnum) {
   3218     return This->lpVtbl->EnumCategoriesInItem(This,rguid,ppEnum);
   3219 }
   3220 static FORCEINLINE HRESULT ITfCategoryMgr_EnumItemsInCategory(ITfCategoryMgr* This,REFGUID rcatid,IEnumGUID **ppEnum) {
   3221     return This->lpVtbl->EnumItemsInCategory(This,rcatid,ppEnum);
   3222 }
   3223 static FORCEINLINE HRESULT ITfCategoryMgr_FindClosestCategory(ITfCategoryMgr* This,REFGUID rguid,GUID *pcatid,const GUID **ppcatidList,ULONG ulCount) {
   3224     return This->lpVtbl->FindClosestCategory(This,rguid,pcatid,ppcatidList,ulCount);
   3225 }
   3226 static FORCEINLINE HRESULT ITfCategoryMgr_RegisterGUIDDescription(ITfCategoryMgr* This,REFCLSID rclsid,REFGUID rguid,const WCHAR *pchDesc,ULONG cch) {
   3227     return This->lpVtbl->RegisterGUIDDescription(This,rclsid,rguid,pchDesc,cch);
   3228 }
   3229 static FORCEINLINE HRESULT ITfCategoryMgr_UnregisterGUIDDescription(ITfCategoryMgr* This,REFCLSID rclsid,REFGUID rguid) {
   3230     return This->lpVtbl->UnregisterGUIDDescription(This,rclsid,rguid);
   3231 }
   3232 static FORCEINLINE HRESULT ITfCategoryMgr_GetGUIDDescription(ITfCategoryMgr* This,REFGUID rguid,BSTR *pbstrDesc) {
   3233     return This->lpVtbl->GetGUIDDescription(This,rguid,pbstrDesc);
   3234 }
   3235 static FORCEINLINE HRESULT ITfCategoryMgr_RegisterGUIDDWORD(ITfCategoryMgr* This,REFCLSID rclsid,REFGUID rguid,DWORD dw) {
   3236     return This->lpVtbl->RegisterGUIDDWORD(This,rclsid,rguid,dw);
   3237 }
   3238 static FORCEINLINE HRESULT ITfCategoryMgr_UnregisterGUIDDWORD(ITfCategoryMgr* This,REFCLSID rclsid,REFGUID rguid) {
   3239     return This->lpVtbl->UnregisterGUIDDWORD(This,rclsid,rguid);
   3240 }
   3241 static FORCEINLINE HRESULT ITfCategoryMgr_GetGUIDDWORD(ITfCategoryMgr* This,REFGUID rguid,DWORD *pdw) {
   3242     return This->lpVtbl->GetGUIDDWORD(This,rguid,pdw);
   3243 }
   3244 static FORCEINLINE HRESULT ITfCategoryMgr_RegisterGUID(ITfCategoryMgr* This,REFGUID rguid,TfGuidAtom *pguidatom) {
   3245     return This->lpVtbl->RegisterGUID(This,rguid,pguidatom);
   3246 }
   3247 static FORCEINLINE HRESULT ITfCategoryMgr_GetGUID(ITfCategoryMgr* This,TfGuidAtom guidatom,GUID *pguid) {
   3248     return This->lpVtbl->GetGUID(This,guidatom,pguid);
   3249 }
   3250 static FORCEINLINE HRESULT ITfCategoryMgr_IsEqualTfGuidAtom(ITfCategoryMgr* This,TfGuidAtom guidatom,REFGUID rguid,WINBOOL *pfEqual) {
   3251     return This->lpVtbl->IsEqualTfGuidAtom(This,guidatom,rguid,pfEqual);
   3252 }
   3253 #endif
   3254 #endif
   3255 
   3256 #endif
   3257 
   3258 HRESULT STDMETHODCALLTYPE ITfCategoryMgr_RegisterCategory_Proxy(
   3259     ITfCategoryMgr* This,
   3260     REFCLSID rclsid,
   3261     REFGUID rcatid,
   3262     REFGUID rguid);
   3263 void __RPC_STUB ITfCategoryMgr_RegisterCategory_Stub(
   3264     IRpcStubBuffer* This,
   3265     IRpcChannelBuffer* pRpcChannelBuffer,
   3266     PRPC_MESSAGE pRpcMessage,
   3267     DWORD* pdwStubPhase);
   3268 HRESULT STDMETHODCALLTYPE ITfCategoryMgr_UnregisterCategory_Proxy(
   3269     ITfCategoryMgr* This,
   3270     REFCLSID rclsid,
   3271     REFGUID rcatid,
   3272     REFGUID rguid);
   3273 void __RPC_STUB ITfCategoryMgr_UnregisterCategory_Stub(
   3274     IRpcStubBuffer* This,
   3275     IRpcChannelBuffer* pRpcChannelBuffer,
   3276     PRPC_MESSAGE pRpcMessage,
   3277     DWORD* pdwStubPhase);
   3278 HRESULT STDMETHODCALLTYPE ITfCategoryMgr_EnumCategoriesInItem_Proxy(
   3279     ITfCategoryMgr* This,
   3280     REFGUID rguid,
   3281     IEnumGUID **ppEnum);
   3282 void __RPC_STUB ITfCategoryMgr_EnumCategoriesInItem_Stub(
   3283     IRpcStubBuffer* This,
   3284     IRpcChannelBuffer* pRpcChannelBuffer,
   3285     PRPC_MESSAGE pRpcMessage,
   3286     DWORD* pdwStubPhase);
   3287 HRESULT STDMETHODCALLTYPE ITfCategoryMgr_EnumItemsInCategory_Proxy(
   3288     ITfCategoryMgr* This,
   3289     REFGUID rcatid,
   3290     IEnumGUID **ppEnum);
   3291 void __RPC_STUB ITfCategoryMgr_EnumItemsInCategory_Stub(
   3292     IRpcStubBuffer* This,
   3293     IRpcChannelBuffer* pRpcChannelBuffer,
   3294     PRPC_MESSAGE pRpcMessage,
   3295     DWORD* pdwStubPhase);
   3296 HRESULT STDMETHODCALLTYPE ITfCategoryMgr_FindClosestCategory_Proxy(
   3297     ITfCategoryMgr* This,
   3298     REFGUID rguid,
   3299     GUID *pcatid,
   3300     const GUID **ppcatidList,
   3301     ULONG ulCount);
   3302 void __RPC_STUB ITfCategoryMgr_FindClosestCategory_Stub(
   3303     IRpcStubBuffer* This,
   3304     IRpcChannelBuffer* pRpcChannelBuffer,
   3305     PRPC_MESSAGE pRpcMessage,
   3306     DWORD* pdwStubPhase);
   3307 HRESULT STDMETHODCALLTYPE ITfCategoryMgr_RegisterGUIDDescription_Proxy(
   3308     ITfCategoryMgr* This,
   3309     REFCLSID rclsid,
   3310     REFGUID rguid,
   3311     const WCHAR *pchDesc,
   3312     ULONG cch);
   3313 void __RPC_STUB ITfCategoryMgr_RegisterGUIDDescription_Stub(
   3314     IRpcStubBuffer* This,
   3315     IRpcChannelBuffer* pRpcChannelBuffer,
   3316     PRPC_MESSAGE pRpcMessage,
   3317     DWORD* pdwStubPhase);
   3318 HRESULT STDMETHODCALLTYPE ITfCategoryMgr_UnregisterGUIDDescription_Proxy(
   3319     ITfCategoryMgr* This,
   3320     REFCLSID rclsid,
   3321     REFGUID rguid);
   3322 void __RPC_STUB ITfCategoryMgr_UnregisterGUIDDescription_Stub(
   3323     IRpcStubBuffer* This,
   3324     IRpcChannelBuffer* pRpcChannelBuffer,
   3325     PRPC_MESSAGE pRpcMessage,
   3326     DWORD* pdwStubPhase);
   3327 HRESULT STDMETHODCALLTYPE ITfCategoryMgr_GetGUIDDescription_Proxy(
   3328     ITfCategoryMgr* This,
   3329     REFGUID rguid,
   3330     BSTR *pbstrDesc);
   3331 void __RPC_STUB ITfCategoryMgr_GetGUIDDescription_Stub(
   3332     IRpcStubBuffer* This,
   3333     IRpcChannelBuffer* pRpcChannelBuffer,
   3334     PRPC_MESSAGE pRpcMessage,
   3335     DWORD* pdwStubPhase);
   3336 HRESULT STDMETHODCALLTYPE ITfCategoryMgr_RegisterGUIDDWORD_Proxy(
   3337     ITfCategoryMgr* This,
   3338     REFCLSID rclsid,
   3339     REFGUID rguid,
   3340     DWORD dw);
   3341 void __RPC_STUB ITfCategoryMgr_RegisterGUIDDWORD_Stub(
   3342     IRpcStubBuffer* This,
   3343     IRpcChannelBuffer* pRpcChannelBuffer,
   3344     PRPC_MESSAGE pRpcMessage,
   3345     DWORD* pdwStubPhase);
   3346 HRESULT STDMETHODCALLTYPE ITfCategoryMgr_UnregisterGUIDDWORD_Proxy(
   3347     ITfCategoryMgr* This,
   3348     REFCLSID rclsid,
   3349     REFGUID rguid);
   3350 void __RPC_STUB ITfCategoryMgr_UnregisterGUIDDWORD_Stub(
   3351     IRpcStubBuffer* This,
   3352     IRpcChannelBuffer* pRpcChannelBuffer,
   3353     PRPC_MESSAGE pRpcMessage,
   3354     DWORD* pdwStubPhase);
   3355 HRESULT STDMETHODCALLTYPE ITfCategoryMgr_GetGUIDDWORD_Proxy(
   3356     ITfCategoryMgr* This,
   3357     REFGUID rguid,
   3358     DWORD *pdw);
   3359 void __RPC_STUB ITfCategoryMgr_GetGUIDDWORD_Stub(
   3360     IRpcStubBuffer* This,
   3361     IRpcChannelBuffer* pRpcChannelBuffer,
   3362     PRPC_MESSAGE pRpcMessage,
   3363     DWORD* pdwStubPhase);
   3364 HRESULT STDMETHODCALLTYPE ITfCategoryMgr_RegisterGUID_Proxy(
   3365     ITfCategoryMgr* This,
   3366     REFGUID rguid,
   3367     TfGuidAtom *pguidatom);
   3368 void __RPC_STUB ITfCategoryMgr_RegisterGUID_Stub(
   3369     IRpcStubBuffer* This,
   3370     IRpcChannelBuffer* pRpcChannelBuffer,
   3371     PRPC_MESSAGE pRpcMessage,
   3372     DWORD* pdwStubPhase);
   3373 HRESULT STDMETHODCALLTYPE ITfCategoryMgr_GetGUID_Proxy(
   3374     ITfCategoryMgr* This,
   3375     TfGuidAtom guidatom,
   3376     GUID *pguid);
   3377 void __RPC_STUB ITfCategoryMgr_GetGUID_Stub(
   3378     IRpcStubBuffer* This,
   3379     IRpcChannelBuffer* pRpcChannelBuffer,
   3380     PRPC_MESSAGE pRpcMessage,
   3381     DWORD* pdwStubPhase);
   3382 HRESULT STDMETHODCALLTYPE ITfCategoryMgr_IsEqualTfGuidAtom_Proxy(
   3383     ITfCategoryMgr* This,
   3384     TfGuidAtom guidatom,
   3385     REFGUID rguid,
   3386     WINBOOL *pfEqual);
   3387 void __RPC_STUB ITfCategoryMgr_IsEqualTfGuidAtom_Stub(
   3388     IRpcStubBuffer* This,
   3389     IRpcChannelBuffer* pRpcChannelBuffer,
   3390     PRPC_MESSAGE pRpcMessage,
   3391     DWORD* pdwStubPhase);
   3392 
   3393 #endif  /* __ITfCategoryMgr_INTERFACE_DEFINED__ */
   3394 
   3395 /*****************************************************************************
   3396  * ITfTextEditSink interface
   3397  */
   3398 #ifndef __ITfTextEditSink_INTERFACE_DEFINED__
   3399 #define __ITfTextEditSink_INTERFACE_DEFINED__
   3400 
   3401 DEFINE_GUID(IID_ITfTextEditSink, 0x8127d409, 0xccd3, 0x4683, 0x96,0x7a, 0xb4,0x3d,0x5b,0x48,0x2b,0xf7);
   3402 #if defined(__cplusplus) && !defined(CINTERFACE)
   3403 MIDL_INTERFACE("8127d409-ccd3-4683-967a-b43d5b482bf7")
   3404 ITfTextEditSink : public IUnknown
   3405 {
   3406     virtual HRESULT STDMETHODCALLTYPE OnEndEdit(
   3407         ITfContext *pic,
   3408         TfEditCookie ecReadOnly,
   3409         ITfEditRecord *pEditRecord) = 0;
   3410 
   3411 };
   3412 #ifdef __CRT_UUID_DECL
   3413 __CRT_UUID_DECL(ITfTextEditSink, 0x8127d409, 0xccd3, 0x4683, 0x96,0x7a, 0xb4,0x3d,0x5b,0x48,0x2b,0xf7)
   3414 #endif
   3415 #else
   3416 typedef struct ITfTextEditSinkVtbl {
   3417     BEGIN_INTERFACE
   3418 
   3419     /*** IUnknown methods ***/
   3420     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3421         ITfTextEditSink* This,
   3422         REFIID riid,
   3423         void **ppvObject);
   3424 
   3425     ULONG (STDMETHODCALLTYPE *AddRef)(
   3426         ITfTextEditSink* This);
   3427 
   3428     ULONG (STDMETHODCALLTYPE *Release)(
   3429         ITfTextEditSink* This);
   3430 
   3431     /*** ITfTextEditSink methods ***/
   3432     HRESULT (STDMETHODCALLTYPE *OnEndEdit)(
   3433         ITfTextEditSink* This,
   3434         ITfContext *pic,
   3435         TfEditCookie ecReadOnly,
   3436         ITfEditRecord *pEditRecord);
   3437 
   3438     END_INTERFACE
   3439 } ITfTextEditSinkVtbl;
   3440 interface ITfTextEditSink {
   3441     CONST_VTBL ITfTextEditSinkVtbl* lpVtbl;
   3442 };
   3443 
   3444 #ifdef COBJMACROS
   3445 #ifndef WIDL_C_INLINE_WRAPPERS
   3446 /*** IUnknown methods ***/
   3447 #define ITfTextEditSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3448 #define ITfTextEditSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   3449 #define ITfTextEditSink_Release(This) (This)->lpVtbl->Release(This)
   3450 /*** ITfTextEditSink methods ***/
   3451 #define ITfTextEditSink_OnEndEdit(This,pic,ecReadOnly,pEditRecord) (This)->lpVtbl->OnEndEdit(This,pic,ecReadOnly,pEditRecord)
   3452 #else
   3453 /*** IUnknown methods ***/
   3454 static FORCEINLINE HRESULT ITfTextEditSink_QueryInterface(ITfTextEditSink* This,REFIID riid,void **ppvObject) {
   3455     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3456 }
   3457 static FORCEINLINE ULONG ITfTextEditSink_AddRef(ITfTextEditSink* This) {
   3458     return This->lpVtbl->AddRef(This);
   3459 }
   3460 static FORCEINLINE ULONG ITfTextEditSink_Release(ITfTextEditSink* This) {
   3461     return This->lpVtbl->Release(This);
   3462 }
   3463 /*** ITfTextEditSink methods ***/
   3464 static FORCEINLINE HRESULT ITfTextEditSink_OnEndEdit(ITfTextEditSink* This,ITfContext *pic,TfEditCookie ecReadOnly,ITfEditRecord *pEditRecord) {
   3465     return This->lpVtbl->OnEndEdit(This,pic,ecReadOnly,pEditRecord);
   3466 }
   3467 #endif
   3468 #endif
   3469 
   3470 #endif
   3471 
   3472 HRESULT STDMETHODCALLTYPE ITfTextEditSink_OnEndEdit_Proxy(
   3473     ITfTextEditSink* This,
   3474     ITfContext *pic,
   3475     TfEditCookie ecReadOnly,
   3476     ITfEditRecord *pEditRecord);
   3477 void __RPC_STUB ITfTextEditSink_OnEndEdit_Stub(
   3478     IRpcStubBuffer* This,
   3479     IRpcChannelBuffer* pRpcChannelBuffer,
   3480     PRPC_MESSAGE pRpcMessage,
   3481     DWORD* pdwStubPhase);
   3482 
   3483 #endif  /* __ITfTextEditSink_INTERFACE_DEFINED__ */
   3484 
   3485 /*****************************************************************************
   3486  * ITfContextOwnerCompositionSink interface
   3487  */
   3488 #ifndef __ITfContextOwnerCompositionSink_INTERFACE_DEFINED__
   3489 #define __ITfContextOwnerCompositionSink_INTERFACE_DEFINED__
   3490 
   3491 DEFINE_GUID(IID_ITfContextOwnerCompositionSink, 0x5f20aa40, 0xb57a, 0x4f34, 0x96,0xab, 0x35,0x76,0xf3,0x77,0xcc,0x79);
   3492 #if defined(__cplusplus) && !defined(CINTERFACE)
   3493 MIDL_INTERFACE("5f20aa40-b57a-4f34-96ab-3576f377cc79")
   3494 ITfContextOwnerCompositionSink : public IUnknown
   3495 {
   3496     virtual HRESULT STDMETHODCALLTYPE OnStartComposition(
   3497         ITfCompositionView *pComposition,
   3498         WINBOOL *pfOk) = 0;
   3499 
   3500     virtual HRESULT STDMETHODCALLTYPE OnUpdateComposition(
   3501         ITfCompositionView *pComposition,
   3502         ITfRange *pRangeNew) = 0;
   3503 
   3504     virtual HRESULT STDMETHODCALLTYPE OnEndComposition(
   3505         ITfCompositionView *pComposition) = 0;
   3506 
   3507 };
   3508 #ifdef __CRT_UUID_DECL
   3509 __CRT_UUID_DECL(ITfContextOwnerCompositionSink, 0x5f20aa40, 0xb57a, 0x4f34, 0x96,0xab, 0x35,0x76,0xf3,0x77,0xcc,0x79)
   3510 #endif
   3511 #else
   3512 typedef struct ITfContextOwnerCompositionSinkVtbl {
   3513     BEGIN_INTERFACE
   3514 
   3515     /*** IUnknown methods ***/
   3516     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3517         ITfContextOwnerCompositionSink* This,
   3518         REFIID riid,
   3519         void **ppvObject);
   3520 
   3521     ULONG (STDMETHODCALLTYPE *AddRef)(
   3522         ITfContextOwnerCompositionSink* This);
   3523 
   3524     ULONG (STDMETHODCALLTYPE *Release)(
   3525         ITfContextOwnerCompositionSink* This);
   3526 
   3527     /*** ITfContextOwnerCompositionSink methods ***/
   3528     HRESULT (STDMETHODCALLTYPE *OnStartComposition)(
   3529         ITfContextOwnerCompositionSink* This,
   3530         ITfCompositionView *pComposition,
   3531         WINBOOL *pfOk);
   3532 
   3533     HRESULT (STDMETHODCALLTYPE *OnUpdateComposition)(
   3534         ITfContextOwnerCompositionSink* This,
   3535         ITfCompositionView *pComposition,
   3536         ITfRange *pRangeNew);
   3537 
   3538     HRESULT (STDMETHODCALLTYPE *OnEndComposition)(
   3539         ITfContextOwnerCompositionSink* This,
   3540         ITfCompositionView *pComposition);
   3541 
   3542     END_INTERFACE
   3543 } ITfContextOwnerCompositionSinkVtbl;
   3544 interface ITfContextOwnerCompositionSink {
   3545     CONST_VTBL ITfContextOwnerCompositionSinkVtbl* lpVtbl;
   3546 };
   3547 
   3548 #ifdef COBJMACROS
   3549 #ifndef WIDL_C_INLINE_WRAPPERS
   3550 /*** IUnknown methods ***/
   3551 #define ITfContextOwnerCompositionSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3552 #define ITfContextOwnerCompositionSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   3553 #define ITfContextOwnerCompositionSink_Release(This) (This)->lpVtbl->Release(This)
   3554 /*** ITfContextOwnerCompositionSink methods ***/
   3555 #define ITfContextOwnerCompositionSink_OnStartComposition(This,pComposition,pfOk) (This)->lpVtbl->OnStartComposition(This,pComposition,pfOk)
   3556 #define ITfContextOwnerCompositionSink_OnUpdateComposition(This,pComposition,pRangeNew) (This)->lpVtbl->OnUpdateComposition(This,pComposition,pRangeNew)
   3557 #define ITfContextOwnerCompositionSink_OnEndComposition(This,pComposition) (This)->lpVtbl->OnEndComposition(This,pComposition)
   3558 #else
   3559 /*** IUnknown methods ***/
   3560 static FORCEINLINE HRESULT ITfContextOwnerCompositionSink_QueryInterface(ITfContextOwnerCompositionSink* This,REFIID riid,void **ppvObject) {
   3561     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3562 }
   3563 static FORCEINLINE ULONG ITfContextOwnerCompositionSink_AddRef(ITfContextOwnerCompositionSink* This) {
   3564     return This->lpVtbl->AddRef(This);
   3565 }
   3566 static FORCEINLINE ULONG ITfContextOwnerCompositionSink_Release(ITfContextOwnerCompositionSink* This) {
   3567     return This->lpVtbl->Release(This);
   3568 }
   3569 /*** ITfContextOwnerCompositionSink methods ***/
   3570 static FORCEINLINE HRESULT ITfContextOwnerCompositionSink_OnStartComposition(ITfContextOwnerCompositionSink* This,ITfCompositionView *pComposition,WINBOOL *pfOk) {
   3571     return This->lpVtbl->OnStartComposition(This,pComposition,pfOk);
   3572 }
   3573 static FORCEINLINE HRESULT ITfContextOwnerCompositionSink_OnUpdateComposition(ITfContextOwnerCompositionSink* This,ITfCompositionView *pComposition,ITfRange *pRangeNew) {
   3574     return This->lpVtbl->OnUpdateComposition(This,pComposition,pRangeNew);
   3575 }
   3576 static FORCEINLINE HRESULT ITfContextOwnerCompositionSink_OnEndComposition(ITfContextOwnerCompositionSink* This,ITfCompositionView *pComposition) {
   3577     return This->lpVtbl->OnEndComposition(This,pComposition);
   3578 }
   3579 #endif
   3580 #endif
   3581 
   3582 #endif
   3583 
   3584 HRESULT STDMETHODCALLTYPE ITfContextOwnerCompositionSink_OnStartComposition_Proxy(
   3585     ITfContextOwnerCompositionSink* This,
   3586     ITfCompositionView *pComposition,
   3587     WINBOOL *pfOk);
   3588 void __RPC_STUB ITfContextOwnerCompositionSink_OnStartComposition_Stub(
   3589     IRpcStubBuffer* This,
   3590     IRpcChannelBuffer* pRpcChannelBuffer,
   3591     PRPC_MESSAGE pRpcMessage,
   3592     DWORD* pdwStubPhase);
   3593 HRESULT STDMETHODCALLTYPE ITfContextOwnerCompositionSink_OnUpdateComposition_Proxy(
   3594     ITfContextOwnerCompositionSink* This,
   3595     ITfCompositionView *pComposition,
   3596     ITfRange *pRangeNew);
   3597 void __RPC_STUB ITfContextOwnerCompositionSink_OnUpdateComposition_Stub(
   3598     IRpcStubBuffer* This,
   3599     IRpcChannelBuffer* pRpcChannelBuffer,
   3600     PRPC_MESSAGE pRpcMessage,
   3601     DWORD* pdwStubPhase);
   3602 HRESULT STDMETHODCALLTYPE ITfContextOwnerCompositionSink_OnEndComposition_Proxy(
   3603     ITfContextOwnerCompositionSink* This,
   3604     ITfCompositionView *pComposition);
   3605 void __RPC_STUB ITfContextOwnerCompositionSink_OnEndComposition_Stub(
   3606     IRpcStubBuffer* This,
   3607     IRpcChannelBuffer* pRpcChannelBuffer,
   3608     PRPC_MESSAGE pRpcMessage,
   3609     DWORD* pdwStubPhase);
   3610 
   3611 #endif  /* __ITfContextOwnerCompositionSink_INTERFACE_DEFINED__ */
   3612 
   3613 /*****************************************************************************
   3614  * IEnumTfLanguageProfiles interface
   3615  */
   3616 #ifndef __IEnumTfLanguageProfiles_INTERFACE_DEFINED__
   3617 #define __IEnumTfLanguageProfiles_INTERFACE_DEFINED__
   3618 
   3619 DEFINE_GUID(IID_IEnumTfLanguageProfiles, 0x3d61bf11, 0xac5f, 0x42c8, 0xa4,0xcb, 0x93,0x1b,0xcc,0x28,0xc7,0x44);
   3620 #if defined(__cplusplus) && !defined(CINTERFACE)
   3621 MIDL_INTERFACE("3d61bf11-ac5f-42c8-a4cb-931bcc28c744")
   3622 IEnumTfLanguageProfiles : public IUnknown
   3623 {
   3624     virtual HRESULT STDMETHODCALLTYPE Clone(
   3625         IEnumTfLanguageProfiles **ppEnum) = 0;
   3626 
   3627     virtual HRESULT STDMETHODCALLTYPE Next(
   3628         ULONG ulCount,
   3629         TF_LANGUAGEPROFILE *pProfile,
   3630         ULONG *pcFetch) = 0;
   3631 
   3632     virtual HRESULT STDMETHODCALLTYPE Reset(
   3633         ) = 0;
   3634 
   3635     virtual HRESULT STDMETHODCALLTYPE Skip(
   3636         ULONG ulCount) = 0;
   3637 
   3638 };
   3639 #ifdef __CRT_UUID_DECL
   3640 __CRT_UUID_DECL(IEnumTfLanguageProfiles, 0x3d61bf11, 0xac5f, 0x42c8, 0xa4,0xcb, 0x93,0x1b,0xcc,0x28,0xc7,0x44)
   3641 #endif
   3642 #else
   3643 typedef struct IEnumTfLanguageProfilesVtbl {
   3644     BEGIN_INTERFACE
   3645 
   3646     /*** IUnknown methods ***/
   3647     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3648         IEnumTfLanguageProfiles* This,
   3649         REFIID riid,
   3650         void **ppvObject);
   3651 
   3652     ULONG (STDMETHODCALLTYPE *AddRef)(
   3653         IEnumTfLanguageProfiles* This);
   3654 
   3655     ULONG (STDMETHODCALLTYPE *Release)(
   3656         IEnumTfLanguageProfiles* This);
   3657 
   3658     /*** IEnumTfLanguageProfiles methods ***/
   3659     HRESULT (STDMETHODCALLTYPE *Clone)(
   3660         IEnumTfLanguageProfiles* This,
   3661         IEnumTfLanguageProfiles **ppEnum);
   3662 
   3663     HRESULT (STDMETHODCALLTYPE *Next)(
   3664         IEnumTfLanguageProfiles* This,
   3665         ULONG ulCount,
   3666         TF_LANGUAGEPROFILE *pProfile,
   3667         ULONG *pcFetch);
   3668 
   3669     HRESULT (STDMETHODCALLTYPE *Reset)(
   3670         IEnumTfLanguageProfiles* This);
   3671 
   3672     HRESULT (STDMETHODCALLTYPE *Skip)(
   3673         IEnumTfLanguageProfiles* This,
   3674         ULONG ulCount);
   3675 
   3676     END_INTERFACE
   3677 } IEnumTfLanguageProfilesVtbl;
   3678 interface IEnumTfLanguageProfiles {
   3679     CONST_VTBL IEnumTfLanguageProfilesVtbl* lpVtbl;
   3680 };
   3681 
   3682 #ifdef COBJMACROS
   3683 #ifndef WIDL_C_INLINE_WRAPPERS
   3684 /*** IUnknown methods ***/
   3685 #define IEnumTfLanguageProfiles_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3686 #define IEnumTfLanguageProfiles_AddRef(This) (This)->lpVtbl->AddRef(This)
   3687 #define IEnumTfLanguageProfiles_Release(This) (This)->lpVtbl->Release(This)
   3688 /*** IEnumTfLanguageProfiles methods ***/
   3689 #define IEnumTfLanguageProfiles_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   3690 #define IEnumTfLanguageProfiles_Next(This,ulCount,pProfile,pcFetch) (This)->lpVtbl->Next(This,ulCount,pProfile,pcFetch)
   3691 #define IEnumTfLanguageProfiles_Reset(This) (This)->lpVtbl->Reset(This)
   3692 #define IEnumTfLanguageProfiles_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
   3693 #else
   3694 /*** IUnknown methods ***/
   3695 static FORCEINLINE HRESULT IEnumTfLanguageProfiles_QueryInterface(IEnumTfLanguageProfiles* This,REFIID riid,void **ppvObject) {
   3696     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3697 }
   3698 static FORCEINLINE ULONG IEnumTfLanguageProfiles_AddRef(IEnumTfLanguageProfiles* This) {
   3699     return This->lpVtbl->AddRef(This);
   3700 }
   3701 static FORCEINLINE ULONG IEnumTfLanguageProfiles_Release(IEnumTfLanguageProfiles* This) {
   3702     return This->lpVtbl->Release(This);
   3703 }
   3704 /*** IEnumTfLanguageProfiles methods ***/
   3705 static FORCEINLINE HRESULT IEnumTfLanguageProfiles_Clone(IEnumTfLanguageProfiles* This,IEnumTfLanguageProfiles **ppEnum) {
   3706     return This->lpVtbl->Clone(This,ppEnum);
   3707 }
   3708 static FORCEINLINE HRESULT IEnumTfLanguageProfiles_Next(IEnumTfLanguageProfiles* This,ULONG ulCount,TF_LANGUAGEPROFILE *pProfile,ULONG *pcFetch) {
   3709     return This->lpVtbl->Next(This,ulCount,pProfile,pcFetch);
   3710 }
   3711 static FORCEINLINE HRESULT IEnumTfLanguageProfiles_Reset(IEnumTfLanguageProfiles* This) {
   3712     return This->lpVtbl->Reset(This);
   3713 }
   3714 static FORCEINLINE HRESULT IEnumTfLanguageProfiles_Skip(IEnumTfLanguageProfiles* This,ULONG ulCount) {
   3715     return This->lpVtbl->Skip(This,ulCount);
   3716 }
   3717 #endif
   3718 #endif
   3719 
   3720 #endif
   3721 
   3722 HRESULT STDMETHODCALLTYPE IEnumTfLanguageProfiles_Clone_Proxy(
   3723     IEnumTfLanguageProfiles* This,
   3724     IEnumTfLanguageProfiles **ppEnum);
   3725 void __RPC_STUB IEnumTfLanguageProfiles_Clone_Stub(
   3726     IRpcStubBuffer* This,
   3727     IRpcChannelBuffer* pRpcChannelBuffer,
   3728     PRPC_MESSAGE pRpcMessage,
   3729     DWORD* pdwStubPhase);
   3730 HRESULT STDMETHODCALLTYPE IEnumTfLanguageProfiles_Next_Proxy(
   3731     IEnumTfLanguageProfiles* This,
   3732     ULONG ulCount,
   3733     TF_LANGUAGEPROFILE *pProfile,
   3734     ULONG *pcFetch);
   3735 void __RPC_STUB IEnumTfLanguageProfiles_Next_Stub(
   3736     IRpcStubBuffer* This,
   3737     IRpcChannelBuffer* pRpcChannelBuffer,
   3738     PRPC_MESSAGE pRpcMessage,
   3739     DWORD* pdwStubPhase);
   3740 HRESULT STDMETHODCALLTYPE IEnumTfLanguageProfiles_Reset_Proxy(
   3741     IEnumTfLanguageProfiles* This);
   3742 void __RPC_STUB IEnumTfLanguageProfiles_Reset_Stub(
   3743     IRpcStubBuffer* This,
   3744     IRpcChannelBuffer* pRpcChannelBuffer,
   3745     PRPC_MESSAGE pRpcMessage,
   3746     DWORD* pdwStubPhase);
   3747 HRESULT STDMETHODCALLTYPE IEnumTfLanguageProfiles_Skip_Proxy(
   3748     IEnumTfLanguageProfiles* This,
   3749     ULONG ulCount);
   3750 void __RPC_STUB IEnumTfLanguageProfiles_Skip_Stub(
   3751     IRpcStubBuffer* This,
   3752     IRpcChannelBuffer* pRpcChannelBuffer,
   3753     PRPC_MESSAGE pRpcMessage,
   3754     DWORD* pdwStubPhase);
   3755 
   3756 #endif  /* __IEnumTfLanguageProfiles_INTERFACE_DEFINED__ */
   3757 
   3758 /*****************************************************************************
   3759  * ITfTextInputProcessor interface
   3760  */
   3761 #ifndef __ITfTextInputProcessor_INTERFACE_DEFINED__
   3762 #define __ITfTextInputProcessor_INTERFACE_DEFINED__
   3763 
   3764 DEFINE_GUID(IID_ITfTextInputProcessor, 0xaa80e7f7, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
   3765 #if defined(__cplusplus) && !defined(CINTERFACE)
   3766 MIDL_INTERFACE("aa80e7f7-2021-11d2-93e0-0060b067b86e")
   3767 ITfTextInputProcessor : public IUnknown
   3768 {
   3769     virtual HRESULT STDMETHODCALLTYPE Activate(
   3770         ITfThreadMgr *ptim,
   3771         TfClientId tid) = 0;
   3772 
   3773     virtual HRESULT STDMETHODCALLTYPE Deactivate(
   3774         ) = 0;
   3775 
   3776 };
   3777 #ifdef __CRT_UUID_DECL
   3778 __CRT_UUID_DECL(ITfTextInputProcessor, 0xaa80e7f7, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
   3779 #endif
   3780 #else
   3781 typedef struct ITfTextInputProcessorVtbl {
   3782     BEGIN_INTERFACE
   3783 
   3784     /*** IUnknown methods ***/
   3785     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3786         ITfTextInputProcessor* This,
   3787         REFIID riid,
   3788         void **ppvObject);
   3789 
   3790     ULONG (STDMETHODCALLTYPE *AddRef)(
   3791         ITfTextInputProcessor* This);
   3792 
   3793     ULONG (STDMETHODCALLTYPE *Release)(
   3794         ITfTextInputProcessor* This);
   3795 
   3796     /*** ITfTextInputProcessor methods ***/
   3797     HRESULT (STDMETHODCALLTYPE *Activate)(
   3798         ITfTextInputProcessor* This,
   3799         ITfThreadMgr *ptim,
   3800         TfClientId tid);
   3801 
   3802     HRESULT (STDMETHODCALLTYPE *Deactivate)(
   3803         ITfTextInputProcessor* This);
   3804 
   3805     END_INTERFACE
   3806 } ITfTextInputProcessorVtbl;
   3807 interface ITfTextInputProcessor {
   3808     CONST_VTBL ITfTextInputProcessorVtbl* lpVtbl;
   3809 };
   3810 
   3811 #ifdef COBJMACROS
   3812 #ifndef WIDL_C_INLINE_WRAPPERS
   3813 /*** IUnknown methods ***/
   3814 #define ITfTextInputProcessor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3815 #define ITfTextInputProcessor_AddRef(This) (This)->lpVtbl->AddRef(This)
   3816 #define ITfTextInputProcessor_Release(This) (This)->lpVtbl->Release(This)
   3817 /*** ITfTextInputProcessor methods ***/
   3818 #define ITfTextInputProcessor_Activate(This,ptim,tid) (This)->lpVtbl->Activate(This,ptim,tid)
   3819 #define ITfTextInputProcessor_Deactivate(This) (This)->lpVtbl->Deactivate(This)
   3820 #else
   3821 /*** IUnknown methods ***/
   3822 static FORCEINLINE HRESULT ITfTextInputProcessor_QueryInterface(ITfTextInputProcessor* This,REFIID riid,void **ppvObject) {
   3823     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3824 }
   3825 static FORCEINLINE ULONG ITfTextInputProcessor_AddRef(ITfTextInputProcessor* This) {
   3826     return This->lpVtbl->AddRef(This);
   3827 }
   3828 static FORCEINLINE ULONG ITfTextInputProcessor_Release(ITfTextInputProcessor* This) {
   3829     return This->lpVtbl->Release(This);
   3830 }
   3831 /*** ITfTextInputProcessor methods ***/
   3832 static FORCEINLINE HRESULT ITfTextInputProcessor_Activate(ITfTextInputProcessor* This,ITfThreadMgr *ptim,TfClientId tid) {
   3833     return This->lpVtbl->Activate(This,ptim,tid);
   3834 }
   3835 static FORCEINLINE HRESULT ITfTextInputProcessor_Deactivate(ITfTextInputProcessor* This) {
   3836     return This->lpVtbl->Deactivate(This);
   3837 }
   3838 #endif
   3839 #endif
   3840 
   3841 #endif
   3842 
   3843 HRESULT STDMETHODCALLTYPE ITfTextInputProcessor_Activate_Proxy(
   3844     ITfTextInputProcessor* This,
   3845     ITfThreadMgr *ptim,
   3846     TfClientId tid);
   3847 void __RPC_STUB ITfTextInputProcessor_Activate_Stub(
   3848     IRpcStubBuffer* This,
   3849     IRpcChannelBuffer* pRpcChannelBuffer,
   3850     PRPC_MESSAGE pRpcMessage,
   3851     DWORD* pdwStubPhase);
   3852 HRESULT STDMETHODCALLTYPE ITfTextInputProcessor_Deactivate_Proxy(
   3853     ITfTextInputProcessor* This);
   3854 void __RPC_STUB ITfTextInputProcessor_Deactivate_Stub(
   3855     IRpcStubBuffer* This,
   3856     IRpcChannelBuffer* pRpcChannelBuffer,
   3857     PRPC_MESSAGE pRpcMessage,
   3858     DWORD* pdwStubPhase);
   3859 
   3860 #endif  /* __ITfTextInputProcessor_INTERFACE_DEFINED__ */
   3861 
   3862 /*****************************************************************************
   3863  * ITfThreadMgrEventSink interface
   3864  */
   3865 #ifndef __ITfThreadMgrEventSink_INTERFACE_DEFINED__
   3866 #define __ITfThreadMgrEventSink_INTERFACE_DEFINED__
   3867 
   3868 DEFINE_GUID(IID_ITfThreadMgrEventSink, 0xaa80e80e, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
   3869 #if defined(__cplusplus) && !defined(CINTERFACE)
   3870 MIDL_INTERFACE("aa80e80e-2021-11d2-93e0-0060b067b86e")
   3871 ITfThreadMgrEventSink : public IUnknown
   3872 {
   3873     virtual HRESULT STDMETHODCALLTYPE OnInitDocumentMgr(
   3874         ITfDocumentMgr *pdim) = 0;
   3875 
   3876     virtual HRESULT STDMETHODCALLTYPE OnUninitDocumentMgr(
   3877         ITfDocumentMgr *pdim) = 0;
   3878 
   3879     virtual HRESULT STDMETHODCALLTYPE OnSetFocus(
   3880         ITfDocumentMgr *pdimFocus,
   3881         ITfDocumentMgr *pdimPrevFocus) = 0;
   3882 
   3883     virtual HRESULT STDMETHODCALLTYPE OnPushContext(
   3884         ITfContext *pic) = 0;
   3885 
   3886     virtual HRESULT STDMETHODCALLTYPE OnPopContext(
   3887         ITfContext *pic) = 0;
   3888 
   3889 };
   3890 #ifdef __CRT_UUID_DECL
   3891 __CRT_UUID_DECL(ITfThreadMgrEventSink, 0xaa80e80e, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
   3892 #endif
   3893 #else
   3894 typedef struct ITfThreadMgrEventSinkVtbl {
   3895     BEGIN_INTERFACE
   3896 
   3897     /*** IUnknown methods ***/
   3898     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3899         ITfThreadMgrEventSink* This,
   3900         REFIID riid,
   3901         void **ppvObject);
   3902 
   3903     ULONG (STDMETHODCALLTYPE *AddRef)(
   3904         ITfThreadMgrEventSink* This);
   3905 
   3906     ULONG (STDMETHODCALLTYPE *Release)(
   3907         ITfThreadMgrEventSink* This);
   3908 
   3909     /*** ITfThreadMgrEventSink methods ***/
   3910     HRESULT (STDMETHODCALLTYPE *OnInitDocumentMgr)(
   3911         ITfThreadMgrEventSink* This,
   3912         ITfDocumentMgr *pdim);
   3913 
   3914     HRESULT (STDMETHODCALLTYPE *OnUninitDocumentMgr)(
   3915         ITfThreadMgrEventSink* This,
   3916         ITfDocumentMgr *pdim);
   3917 
   3918     HRESULT (STDMETHODCALLTYPE *OnSetFocus)(
   3919         ITfThreadMgrEventSink* This,
   3920         ITfDocumentMgr *pdimFocus,
   3921         ITfDocumentMgr *pdimPrevFocus);
   3922 
   3923     HRESULT (STDMETHODCALLTYPE *OnPushContext)(
   3924         ITfThreadMgrEventSink* This,
   3925         ITfContext *pic);
   3926 
   3927     HRESULT (STDMETHODCALLTYPE *OnPopContext)(
   3928         ITfThreadMgrEventSink* This,
   3929         ITfContext *pic);
   3930 
   3931     END_INTERFACE
   3932 } ITfThreadMgrEventSinkVtbl;
   3933 interface ITfThreadMgrEventSink {
   3934     CONST_VTBL ITfThreadMgrEventSinkVtbl* lpVtbl;
   3935 };
   3936 
   3937 #ifdef COBJMACROS
   3938 #ifndef WIDL_C_INLINE_WRAPPERS
   3939 /*** IUnknown methods ***/
   3940 #define ITfThreadMgrEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3941 #define ITfThreadMgrEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   3942 #define ITfThreadMgrEventSink_Release(This) (This)->lpVtbl->Release(This)
   3943 /*** ITfThreadMgrEventSink methods ***/
   3944 #define ITfThreadMgrEventSink_OnInitDocumentMgr(This,pdim) (This)->lpVtbl->OnInitDocumentMgr(This,pdim)
   3945 #define ITfThreadMgrEventSink_OnUninitDocumentMgr(This,pdim) (This)->lpVtbl->OnUninitDocumentMgr(This,pdim)
   3946 #define ITfThreadMgrEventSink_OnSetFocus(This,pdimFocus,pdimPrevFocus) (This)->lpVtbl->OnSetFocus(This,pdimFocus,pdimPrevFocus)
   3947 #define ITfThreadMgrEventSink_OnPushContext(This,pic) (This)->lpVtbl->OnPushContext(This,pic)
   3948 #define ITfThreadMgrEventSink_OnPopContext(This,pic) (This)->lpVtbl->OnPopContext(This,pic)
   3949 #else
   3950 /*** IUnknown methods ***/
   3951 static FORCEINLINE HRESULT ITfThreadMgrEventSink_QueryInterface(ITfThreadMgrEventSink* This,REFIID riid,void **ppvObject) {
   3952     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3953 }
   3954 static FORCEINLINE ULONG ITfThreadMgrEventSink_AddRef(ITfThreadMgrEventSink* This) {
   3955     return This->lpVtbl->AddRef(This);
   3956 }
   3957 static FORCEINLINE ULONG ITfThreadMgrEventSink_Release(ITfThreadMgrEventSink* This) {
   3958     return This->lpVtbl->Release(This);
   3959 }
   3960 /*** ITfThreadMgrEventSink methods ***/
   3961 static FORCEINLINE HRESULT ITfThreadMgrEventSink_OnInitDocumentMgr(ITfThreadMgrEventSink* This,ITfDocumentMgr *pdim) {
   3962     return This->lpVtbl->OnInitDocumentMgr(This,pdim);
   3963 }
   3964 static FORCEINLINE HRESULT ITfThreadMgrEventSink_OnUninitDocumentMgr(ITfThreadMgrEventSink* This,ITfDocumentMgr *pdim) {
   3965     return This->lpVtbl->OnUninitDocumentMgr(This,pdim);
   3966 }
   3967 static FORCEINLINE HRESULT ITfThreadMgrEventSink_OnSetFocus(ITfThreadMgrEventSink* This,ITfDocumentMgr *pdimFocus,ITfDocumentMgr *pdimPrevFocus) {
   3968     return This->lpVtbl->OnSetFocus(This,pdimFocus,pdimPrevFocus);
   3969 }
   3970 static FORCEINLINE HRESULT ITfThreadMgrEventSink_OnPushContext(ITfThreadMgrEventSink* This,ITfContext *pic) {
   3971     return This->lpVtbl->OnPushContext(This,pic);
   3972 }
   3973 static FORCEINLINE HRESULT ITfThreadMgrEventSink_OnPopContext(ITfThreadMgrEventSink* This,ITfContext *pic) {
   3974     return This->lpVtbl->OnPopContext(This,pic);
   3975 }
   3976 #endif
   3977 #endif
   3978 
   3979 #endif
   3980 
   3981 HRESULT STDMETHODCALLTYPE ITfThreadMgrEventSink_OnInitDocumentMgr_Proxy(
   3982     ITfThreadMgrEventSink* This,
   3983     ITfDocumentMgr *pdim);
   3984 void __RPC_STUB ITfThreadMgrEventSink_OnInitDocumentMgr_Stub(
   3985     IRpcStubBuffer* This,
   3986     IRpcChannelBuffer* pRpcChannelBuffer,
   3987     PRPC_MESSAGE pRpcMessage,
   3988     DWORD* pdwStubPhase);
   3989 HRESULT STDMETHODCALLTYPE ITfThreadMgrEventSink_OnUninitDocumentMgr_Proxy(
   3990     ITfThreadMgrEventSink* This,
   3991     ITfDocumentMgr *pdim);
   3992 void __RPC_STUB ITfThreadMgrEventSink_OnUninitDocumentMgr_Stub(
   3993     IRpcStubBuffer* This,
   3994     IRpcChannelBuffer* pRpcChannelBuffer,
   3995     PRPC_MESSAGE pRpcMessage,
   3996     DWORD* pdwStubPhase);
   3997 HRESULT STDMETHODCALLTYPE ITfThreadMgrEventSink_OnSetFocus_Proxy(
   3998     ITfThreadMgrEventSink* This,
   3999     ITfDocumentMgr *pdimFocus,
   4000     ITfDocumentMgr *pdimPrevFocus);
   4001 void __RPC_STUB ITfThreadMgrEventSink_OnSetFocus_Stub(
   4002     IRpcStubBuffer* This,
   4003     IRpcChannelBuffer* pRpcChannelBuffer,
   4004     PRPC_MESSAGE pRpcMessage,
   4005     DWORD* pdwStubPhase);
   4006 HRESULT STDMETHODCALLTYPE ITfThreadMgrEventSink_OnPushContext_Proxy(
   4007     ITfThreadMgrEventSink* This,
   4008     ITfContext *pic);
   4009 void __RPC_STUB ITfThreadMgrEventSink_OnPushContext_Stub(
   4010     IRpcStubBuffer* This,
   4011     IRpcChannelBuffer* pRpcChannelBuffer,
   4012     PRPC_MESSAGE pRpcMessage,
   4013     DWORD* pdwStubPhase);
   4014 HRESULT STDMETHODCALLTYPE ITfThreadMgrEventSink_OnPopContext_Proxy(
   4015     ITfThreadMgrEventSink* This,
   4016     ITfContext *pic);
   4017 void __RPC_STUB ITfThreadMgrEventSink_OnPopContext_Stub(
   4018     IRpcStubBuffer* This,
   4019     IRpcChannelBuffer* pRpcChannelBuffer,
   4020     PRPC_MESSAGE pRpcMessage,
   4021     DWORD* pdwStubPhase);
   4022 
   4023 #endif  /* __ITfThreadMgrEventSink_INTERFACE_DEFINED__ */
   4024 
   4025 /*****************************************************************************
   4026  * ITfKeystrokeMgr interface
   4027  */
   4028 #ifndef __ITfKeystrokeMgr_INTERFACE_DEFINED__
   4029 #define __ITfKeystrokeMgr_INTERFACE_DEFINED__
   4030 
   4031 DEFINE_GUID(IID_ITfKeystrokeMgr, 0xaa80e7f0, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
   4032 #if defined(__cplusplus) && !defined(CINTERFACE)
   4033 MIDL_INTERFACE("aa80e7f0-2021-11d2-93e0-0060b067b86e")
   4034 ITfKeystrokeMgr : public IUnknown
   4035 {
   4036     virtual HRESULT STDMETHODCALLTYPE AdviseKeyEventSink(
   4037         TfClientId tid,
   4038         ITfKeyEventSink *pSink,
   4039         WINBOOL fForeground) = 0;
   4040 
   4041     virtual HRESULT STDMETHODCALLTYPE UnadviseKeyEventSink(
   4042         TfClientId tid) = 0;
   4043 
   4044     virtual HRESULT STDMETHODCALLTYPE GetForeground(
   4045         CLSID *pclsid) = 0;
   4046 
   4047     virtual HRESULT STDMETHODCALLTYPE TestKeyDown(
   4048         WPARAM wParam,
   4049         LPARAM lParam,
   4050         WINBOOL *pfEaten) = 0;
   4051 
   4052     virtual HRESULT STDMETHODCALLTYPE TestKeyUp(
   4053         WPARAM wParam,
   4054         LPARAM lParam,
   4055         WINBOOL *pfEaten) = 0;
   4056 
   4057     virtual HRESULT STDMETHODCALLTYPE KeyDown(
   4058         WPARAM wParam,
   4059         LPARAM lParam,
   4060         WINBOOL *pfEaten) = 0;
   4061 
   4062     virtual HRESULT STDMETHODCALLTYPE KeyUp(
   4063         WPARAM wParam,
   4064         LPARAM lParam,
   4065         WINBOOL *pfEaten) = 0;
   4066 
   4067     virtual HRESULT STDMETHODCALLTYPE GetPreservedKey(
   4068         ITfContext *pic,
   4069         const TF_PRESERVEDKEY *pprekey,
   4070         GUID *pguid) = 0;
   4071 
   4072     virtual HRESULT STDMETHODCALLTYPE IsPreservedKey(
   4073         REFGUID rguid,
   4074         const TF_PRESERVEDKEY *pprekey,
   4075         WINBOOL *pfRegistered) = 0;
   4076 
   4077     virtual HRESULT STDMETHODCALLTYPE PreserveKey(
   4078         TfClientId tid,
   4079         REFGUID rguid,
   4080         const TF_PRESERVEDKEY *prekey,
   4081         const WCHAR *pchDesc,
   4082         ULONG cchDesc) = 0;
   4083 
   4084     virtual HRESULT STDMETHODCALLTYPE UnpreserveKey(
   4085         REFGUID rguid,
   4086         const TF_PRESERVEDKEY *pprekey) = 0;
   4087 
   4088     virtual HRESULT STDMETHODCALLTYPE SetPreservedKeyDescription(
   4089         REFGUID rguid,
   4090         const WCHAR *pchDesc,
   4091         ULONG cchDesc) = 0;
   4092 
   4093     virtual HRESULT STDMETHODCALLTYPE GetPreservedKeyDescription(
   4094         REFGUID rguid,
   4095         BSTR *pbstrDesc) = 0;
   4096 
   4097     virtual HRESULT STDMETHODCALLTYPE SimulatePreservedKey(
   4098         ITfContext *pic,
   4099         REFGUID rguid,
   4100         WINBOOL *pfEaten) = 0;
   4101 
   4102 };
   4103 #ifdef __CRT_UUID_DECL
   4104 __CRT_UUID_DECL(ITfKeystrokeMgr, 0xaa80e7f0, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
   4105 #endif
   4106 #else
   4107 typedef struct ITfKeystrokeMgrVtbl {
   4108     BEGIN_INTERFACE
   4109 
   4110     /*** IUnknown methods ***/
   4111     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4112         ITfKeystrokeMgr* This,
   4113         REFIID riid,
   4114         void **ppvObject);
   4115 
   4116     ULONG (STDMETHODCALLTYPE *AddRef)(
   4117         ITfKeystrokeMgr* This);
   4118 
   4119     ULONG (STDMETHODCALLTYPE *Release)(
   4120         ITfKeystrokeMgr* This);
   4121 
   4122     /*** ITfKeystrokeMgr methods ***/
   4123     HRESULT (STDMETHODCALLTYPE *AdviseKeyEventSink)(
   4124         ITfKeystrokeMgr* This,
   4125         TfClientId tid,
   4126         ITfKeyEventSink *pSink,
   4127         WINBOOL fForeground);
   4128 
   4129     HRESULT (STDMETHODCALLTYPE *UnadviseKeyEventSink)(
   4130         ITfKeystrokeMgr* This,
   4131         TfClientId tid);
   4132 
   4133     HRESULT (STDMETHODCALLTYPE *GetForeground)(
   4134         ITfKeystrokeMgr* This,
   4135         CLSID *pclsid);
   4136 
   4137     HRESULT (STDMETHODCALLTYPE *TestKeyDown)(
   4138         ITfKeystrokeMgr* This,
   4139         WPARAM wParam,
   4140         LPARAM lParam,
   4141         WINBOOL *pfEaten);
   4142 
   4143     HRESULT (STDMETHODCALLTYPE *TestKeyUp)(
   4144         ITfKeystrokeMgr* This,
   4145         WPARAM wParam,
   4146         LPARAM lParam,
   4147         WINBOOL *pfEaten);
   4148 
   4149     HRESULT (STDMETHODCALLTYPE *KeyDown)(
   4150         ITfKeystrokeMgr* This,
   4151         WPARAM wParam,
   4152         LPARAM lParam,
   4153         WINBOOL *pfEaten);
   4154 
   4155     HRESULT (STDMETHODCALLTYPE *KeyUp)(
   4156         ITfKeystrokeMgr* This,
   4157         WPARAM wParam,
   4158         LPARAM lParam,
   4159         WINBOOL *pfEaten);
   4160 
   4161     HRESULT (STDMETHODCALLTYPE *GetPreservedKey)(
   4162         ITfKeystrokeMgr* This,
   4163         ITfContext *pic,
   4164         const TF_PRESERVEDKEY *pprekey,
   4165         GUID *pguid);
   4166 
   4167     HRESULT (STDMETHODCALLTYPE *IsPreservedKey)(
   4168         ITfKeystrokeMgr* This,
   4169         REFGUID rguid,
   4170         const TF_PRESERVEDKEY *pprekey,
   4171         WINBOOL *pfRegistered);
   4172 
   4173     HRESULT (STDMETHODCALLTYPE *PreserveKey)(
   4174         ITfKeystrokeMgr* This,
   4175         TfClientId tid,
   4176         REFGUID rguid,
   4177         const TF_PRESERVEDKEY *prekey,
   4178         const WCHAR *pchDesc,
   4179         ULONG cchDesc);
   4180 
   4181     HRESULT (STDMETHODCALLTYPE *UnpreserveKey)(
   4182         ITfKeystrokeMgr* This,
   4183         REFGUID rguid,
   4184         const TF_PRESERVEDKEY *pprekey);
   4185 
   4186     HRESULT (STDMETHODCALLTYPE *SetPreservedKeyDescription)(
   4187         ITfKeystrokeMgr* This,
   4188         REFGUID rguid,
   4189         const WCHAR *pchDesc,
   4190         ULONG cchDesc);
   4191 
   4192     HRESULT (STDMETHODCALLTYPE *GetPreservedKeyDescription)(
   4193         ITfKeystrokeMgr* This,
   4194         REFGUID rguid,
   4195         BSTR *pbstrDesc);
   4196 
   4197     HRESULT (STDMETHODCALLTYPE *SimulatePreservedKey)(
   4198         ITfKeystrokeMgr* This,
   4199         ITfContext *pic,
   4200         REFGUID rguid,
   4201         WINBOOL *pfEaten);
   4202 
   4203     END_INTERFACE
   4204 } ITfKeystrokeMgrVtbl;
   4205 interface ITfKeystrokeMgr {
   4206     CONST_VTBL ITfKeystrokeMgrVtbl* lpVtbl;
   4207 };
   4208 
   4209 #ifdef COBJMACROS
   4210 #ifndef WIDL_C_INLINE_WRAPPERS
   4211 /*** IUnknown methods ***/
   4212 #define ITfKeystrokeMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4213 #define ITfKeystrokeMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
   4214 #define ITfKeystrokeMgr_Release(This) (This)->lpVtbl->Release(This)
   4215 /*** ITfKeystrokeMgr methods ***/
   4216 #define ITfKeystrokeMgr_AdviseKeyEventSink(This,tid,pSink,fForeground) (This)->lpVtbl->AdviseKeyEventSink(This,tid,pSink,fForeground)
   4217 #define ITfKeystrokeMgr_UnadviseKeyEventSink(This,tid) (This)->lpVtbl->UnadviseKeyEventSink(This,tid)
   4218 #define ITfKeystrokeMgr_GetForeground(This,pclsid) (This)->lpVtbl->GetForeground(This,pclsid)
   4219 #define ITfKeystrokeMgr_TestKeyDown(This,wParam,lParam,pfEaten) (This)->lpVtbl->TestKeyDown(This,wParam,lParam,pfEaten)
   4220 #define ITfKeystrokeMgr_TestKeyUp(This,wParam,lParam,pfEaten) (This)->lpVtbl->TestKeyUp(This,wParam,lParam,pfEaten)
   4221 #define ITfKeystrokeMgr_KeyDown(This,wParam,lParam,pfEaten) (This)->lpVtbl->KeyDown(This,wParam,lParam,pfEaten)
   4222 #define ITfKeystrokeMgr_KeyUp(This,wParam,lParam,pfEaten) (This)->lpVtbl->KeyUp(This,wParam,lParam,pfEaten)
   4223 #define ITfKeystrokeMgr_GetPreservedKey(This,pic,pprekey,pguid) (This)->lpVtbl->GetPreservedKey(This,pic,pprekey,pguid)
   4224 #define ITfKeystrokeMgr_IsPreservedKey(This,rguid,pprekey,pfRegistered) (This)->lpVtbl->IsPreservedKey(This,rguid,pprekey,pfRegistered)
   4225 #define ITfKeystrokeMgr_PreserveKey(This,tid,rguid,prekey,pchDesc,cchDesc) (This)->lpVtbl->PreserveKey(This,tid,rguid,prekey,pchDesc,cchDesc)
   4226 #define ITfKeystrokeMgr_UnpreserveKey(This,rguid,pprekey) (This)->lpVtbl->UnpreserveKey(This,rguid,pprekey)
   4227 #define ITfKeystrokeMgr_SetPreservedKeyDescription(This,rguid,pchDesc,cchDesc) (This)->lpVtbl->SetPreservedKeyDescription(This,rguid,pchDesc,cchDesc)
   4228 #define ITfKeystrokeMgr_GetPreservedKeyDescription(This,rguid,pbstrDesc) (This)->lpVtbl->GetPreservedKeyDescription(This,rguid,pbstrDesc)
   4229 #define ITfKeystrokeMgr_SimulatePreservedKey(This,pic,rguid,pfEaten) (This)->lpVtbl->SimulatePreservedKey(This,pic,rguid,pfEaten)
   4230 #else
   4231 /*** IUnknown methods ***/
   4232 static FORCEINLINE HRESULT ITfKeystrokeMgr_QueryInterface(ITfKeystrokeMgr* This,REFIID riid,void **ppvObject) {
   4233     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4234 }
   4235 static FORCEINLINE ULONG ITfKeystrokeMgr_AddRef(ITfKeystrokeMgr* This) {
   4236     return This->lpVtbl->AddRef(This);
   4237 }
   4238 static FORCEINLINE ULONG ITfKeystrokeMgr_Release(ITfKeystrokeMgr* This) {
   4239     return This->lpVtbl->Release(This);
   4240 }
   4241 /*** ITfKeystrokeMgr methods ***/
   4242 static FORCEINLINE HRESULT ITfKeystrokeMgr_AdviseKeyEventSink(ITfKeystrokeMgr* This,TfClientId tid,ITfKeyEventSink *pSink,WINBOOL fForeground) {
   4243     return This->lpVtbl->AdviseKeyEventSink(This,tid,pSink,fForeground);
   4244 }
   4245 static FORCEINLINE HRESULT ITfKeystrokeMgr_UnadviseKeyEventSink(ITfKeystrokeMgr* This,TfClientId tid) {
   4246     return This->lpVtbl->UnadviseKeyEventSink(This,tid);
   4247 }
   4248 static FORCEINLINE HRESULT ITfKeystrokeMgr_GetForeground(ITfKeystrokeMgr* This,CLSID *pclsid) {
   4249     return This->lpVtbl->GetForeground(This,pclsid);
   4250 }
   4251 static FORCEINLINE HRESULT ITfKeystrokeMgr_TestKeyDown(ITfKeystrokeMgr* This,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
   4252     return This->lpVtbl->TestKeyDown(This,wParam,lParam,pfEaten);
   4253 }
   4254 static FORCEINLINE HRESULT ITfKeystrokeMgr_TestKeyUp(ITfKeystrokeMgr* This,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
   4255     return This->lpVtbl->TestKeyUp(This,wParam,lParam,pfEaten);
   4256 }
   4257 static FORCEINLINE HRESULT ITfKeystrokeMgr_KeyDown(ITfKeystrokeMgr* This,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
   4258     return This->lpVtbl->KeyDown(This,wParam,lParam,pfEaten);
   4259 }
   4260 static FORCEINLINE HRESULT ITfKeystrokeMgr_KeyUp(ITfKeystrokeMgr* This,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
   4261     return This->lpVtbl->KeyUp(This,wParam,lParam,pfEaten);
   4262 }
   4263 static FORCEINLINE HRESULT ITfKeystrokeMgr_GetPreservedKey(ITfKeystrokeMgr* This,ITfContext *pic,const TF_PRESERVEDKEY *pprekey,GUID *pguid) {
   4264     return This->lpVtbl->GetPreservedKey(This,pic,pprekey,pguid);
   4265 }
   4266 static FORCEINLINE HRESULT ITfKeystrokeMgr_IsPreservedKey(ITfKeystrokeMgr* This,REFGUID rguid,const TF_PRESERVEDKEY *pprekey,WINBOOL *pfRegistered) {
   4267     return This->lpVtbl->IsPreservedKey(This,rguid,pprekey,pfRegistered);
   4268 }
   4269 static FORCEINLINE HRESULT ITfKeystrokeMgr_PreserveKey(ITfKeystrokeMgr* This,TfClientId tid,REFGUID rguid,const TF_PRESERVEDKEY *prekey,const WCHAR *pchDesc,ULONG cchDesc) {
   4270     return This->lpVtbl->PreserveKey(This,tid,rguid,prekey,pchDesc,cchDesc);
   4271 }
   4272 static FORCEINLINE HRESULT ITfKeystrokeMgr_UnpreserveKey(ITfKeystrokeMgr* This,REFGUID rguid,const TF_PRESERVEDKEY *pprekey) {
   4273     return This->lpVtbl->UnpreserveKey(This,rguid,pprekey);
   4274 }
   4275 static FORCEINLINE HRESULT ITfKeystrokeMgr_SetPreservedKeyDescription(ITfKeystrokeMgr* This,REFGUID rguid,const WCHAR *pchDesc,ULONG cchDesc) {
   4276     return This->lpVtbl->SetPreservedKeyDescription(This,rguid,pchDesc,cchDesc);
   4277 }
   4278 static FORCEINLINE HRESULT ITfKeystrokeMgr_GetPreservedKeyDescription(ITfKeystrokeMgr* This,REFGUID rguid,BSTR *pbstrDesc) {
   4279     return This->lpVtbl->GetPreservedKeyDescription(This,rguid,pbstrDesc);
   4280 }
   4281 static FORCEINLINE HRESULT ITfKeystrokeMgr_SimulatePreservedKey(ITfKeystrokeMgr* This,ITfContext *pic,REFGUID rguid,WINBOOL *pfEaten) {
   4282     return This->lpVtbl->SimulatePreservedKey(This,pic,rguid,pfEaten);
   4283 }
   4284 #endif
   4285 #endif
   4286 
   4287 #endif
   4288 
   4289 HRESULT STDMETHODCALLTYPE ITfKeystrokeMgr_AdviseKeyEventSink_Proxy(
   4290     ITfKeystrokeMgr* This,
   4291     TfClientId tid,
   4292     ITfKeyEventSink *pSink,
   4293     WINBOOL fForeground);
   4294 void __RPC_STUB ITfKeystrokeMgr_AdviseKeyEventSink_Stub(
   4295     IRpcStubBuffer* This,
   4296     IRpcChannelBuffer* pRpcChannelBuffer,
   4297     PRPC_MESSAGE pRpcMessage,
   4298     DWORD* pdwStubPhase);
   4299 HRESULT STDMETHODCALLTYPE ITfKeystrokeMgr_UnadviseKeyEventSink_Proxy(
   4300     ITfKeystrokeMgr* This,
   4301     TfClientId tid);
   4302 void __RPC_STUB ITfKeystrokeMgr_UnadviseKeyEventSink_Stub(
   4303     IRpcStubBuffer* This,
   4304     IRpcChannelBuffer* pRpcChannelBuffer,
   4305     PRPC_MESSAGE pRpcMessage,
   4306     DWORD* pdwStubPhase);
   4307 HRESULT STDMETHODCALLTYPE ITfKeystrokeMgr_GetForeground_Proxy(
   4308     ITfKeystrokeMgr* This,
   4309     CLSID *pclsid);
   4310 void __RPC_STUB ITfKeystrokeMgr_GetForeground_Stub(
   4311     IRpcStubBuffer* This,
   4312     IRpcChannelBuffer* pRpcChannelBuffer,
   4313     PRPC_MESSAGE pRpcMessage,
   4314     DWORD* pdwStubPhase);
   4315 HRESULT STDMETHODCALLTYPE ITfKeystrokeMgr_TestKeyDown_Proxy(
   4316     ITfKeystrokeMgr* This,
   4317     WPARAM wParam,
   4318     LPARAM lParam,
   4319     WINBOOL *pfEaten);
   4320 void __RPC_STUB ITfKeystrokeMgr_TestKeyDown_Stub(
   4321     IRpcStubBuffer* This,
   4322     IRpcChannelBuffer* pRpcChannelBuffer,
   4323     PRPC_MESSAGE pRpcMessage,
   4324     DWORD* pdwStubPhase);
   4325 HRESULT STDMETHODCALLTYPE ITfKeystrokeMgr_TestKeyUp_Proxy(
   4326     ITfKeystrokeMgr* This,
   4327     WPARAM wParam,
   4328     LPARAM lParam,
   4329     WINBOOL *pfEaten);
   4330 void __RPC_STUB ITfKeystrokeMgr_TestKeyUp_Stub(
   4331     IRpcStubBuffer* This,
   4332     IRpcChannelBuffer* pRpcChannelBuffer,
   4333     PRPC_MESSAGE pRpcMessage,
   4334     DWORD* pdwStubPhase);
   4335 HRESULT STDMETHODCALLTYPE ITfKeystrokeMgr_KeyDown_Proxy(
   4336     ITfKeystrokeMgr* This,
   4337     WPARAM wParam,
   4338     LPARAM lParam,
   4339     WINBOOL *pfEaten);
   4340 void __RPC_STUB ITfKeystrokeMgr_KeyDown_Stub(
   4341     IRpcStubBuffer* This,
   4342     IRpcChannelBuffer* pRpcChannelBuffer,
   4343     PRPC_MESSAGE pRpcMessage,
   4344     DWORD* pdwStubPhase);
   4345 HRESULT STDMETHODCALLTYPE ITfKeystrokeMgr_KeyUp_Proxy(
   4346     ITfKeystrokeMgr* This,
   4347     WPARAM wParam,
   4348     LPARAM lParam,
   4349     WINBOOL *pfEaten);
   4350 void __RPC_STUB ITfKeystrokeMgr_KeyUp_Stub(
   4351     IRpcStubBuffer* This,
   4352     IRpcChannelBuffer* pRpcChannelBuffer,
   4353     PRPC_MESSAGE pRpcMessage,
   4354     DWORD* pdwStubPhase);
   4355 HRESULT STDMETHODCALLTYPE ITfKeystrokeMgr_GetPreservedKey_Proxy(
   4356     ITfKeystrokeMgr* This,
   4357     ITfContext *pic,
   4358     const TF_PRESERVEDKEY *pprekey,
   4359     GUID *pguid);
   4360 void __RPC_STUB ITfKeystrokeMgr_GetPreservedKey_Stub(
   4361     IRpcStubBuffer* This,
   4362     IRpcChannelBuffer* pRpcChannelBuffer,
   4363     PRPC_MESSAGE pRpcMessage,
   4364     DWORD* pdwStubPhase);
   4365 HRESULT STDMETHODCALLTYPE ITfKeystrokeMgr_IsPreservedKey_Proxy(
   4366     ITfKeystrokeMgr* This,
   4367     REFGUID rguid,
   4368     const TF_PRESERVEDKEY *pprekey,
   4369     WINBOOL *pfRegistered);
   4370 void __RPC_STUB ITfKeystrokeMgr_IsPreservedKey_Stub(
   4371     IRpcStubBuffer* This,
   4372     IRpcChannelBuffer* pRpcChannelBuffer,
   4373     PRPC_MESSAGE pRpcMessage,
   4374     DWORD* pdwStubPhase);
   4375 HRESULT STDMETHODCALLTYPE ITfKeystrokeMgr_PreserveKey_Proxy(
   4376     ITfKeystrokeMgr* This,
   4377     TfClientId tid,
   4378     REFGUID rguid,
   4379     const TF_PRESERVEDKEY *prekey,
   4380     const WCHAR *pchDesc,
   4381     ULONG cchDesc);
   4382 void __RPC_STUB ITfKeystrokeMgr_PreserveKey_Stub(
   4383     IRpcStubBuffer* This,
   4384     IRpcChannelBuffer* pRpcChannelBuffer,
   4385     PRPC_MESSAGE pRpcMessage,
   4386     DWORD* pdwStubPhase);
   4387 HRESULT STDMETHODCALLTYPE ITfKeystrokeMgr_UnpreserveKey_Proxy(
   4388     ITfKeystrokeMgr* This,
   4389     REFGUID rguid,
   4390     const TF_PRESERVEDKEY *pprekey);
   4391 void __RPC_STUB ITfKeystrokeMgr_UnpreserveKey_Stub(
   4392     IRpcStubBuffer* This,
   4393     IRpcChannelBuffer* pRpcChannelBuffer,
   4394     PRPC_MESSAGE pRpcMessage,
   4395     DWORD* pdwStubPhase);
   4396 HRESULT STDMETHODCALLTYPE ITfKeystrokeMgr_SetPreservedKeyDescription_Proxy(
   4397     ITfKeystrokeMgr* This,
   4398     REFGUID rguid,
   4399     const WCHAR *pchDesc,
   4400     ULONG cchDesc);
   4401 void __RPC_STUB ITfKeystrokeMgr_SetPreservedKeyDescription_Stub(
   4402     IRpcStubBuffer* This,
   4403     IRpcChannelBuffer* pRpcChannelBuffer,
   4404     PRPC_MESSAGE pRpcMessage,
   4405     DWORD* pdwStubPhase);
   4406 HRESULT STDMETHODCALLTYPE ITfKeystrokeMgr_GetPreservedKeyDescription_Proxy(
   4407     ITfKeystrokeMgr* This,
   4408     REFGUID rguid,
   4409     BSTR *pbstrDesc);
   4410 void __RPC_STUB ITfKeystrokeMgr_GetPreservedKeyDescription_Stub(
   4411     IRpcStubBuffer* This,
   4412     IRpcChannelBuffer* pRpcChannelBuffer,
   4413     PRPC_MESSAGE pRpcMessage,
   4414     DWORD* pdwStubPhase);
   4415 HRESULT STDMETHODCALLTYPE ITfKeystrokeMgr_SimulatePreservedKey_Proxy(
   4416     ITfKeystrokeMgr* This,
   4417     ITfContext *pic,
   4418     REFGUID rguid,
   4419     WINBOOL *pfEaten);
   4420 void __RPC_STUB ITfKeystrokeMgr_SimulatePreservedKey_Stub(
   4421     IRpcStubBuffer* This,
   4422     IRpcChannelBuffer* pRpcChannelBuffer,
   4423     PRPC_MESSAGE pRpcMessage,
   4424     DWORD* pdwStubPhase);
   4425 
   4426 #endif  /* __ITfKeystrokeMgr_INTERFACE_DEFINED__ */
   4427 
   4428 /*****************************************************************************
   4429  * ITfKeyEventSink interface
   4430  */
   4431 #ifndef __ITfKeyEventSink_INTERFACE_DEFINED__
   4432 #define __ITfKeyEventSink_INTERFACE_DEFINED__
   4433 
   4434 DEFINE_GUID(IID_ITfKeyEventSink, 0xaa80e7f5, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
   4435 #if defined(__cplusplus) && !defined(CINTERFACE)
   4436 MIDL_INTERFACE("aa80e7f5-2021-11d2-93e0-0060b067b86e")
   4437 ITfKeyEventSink : public IUnknown
   4438 {
   4439     virtual HRESULT STDMETHODCALLTYPE OnSetFocus(
   4440         WINBOOL fForeground) = 0;
   4441 
   4442     virtual HRESULT STDMETHODCALLTYPE OnTestKeyDown(
   4443         ITfContext *pic,
   4444         WPARAM wParam,
   4445         LPARAM lParam,
   4446         WINBOOL *pfEaten) = 0;
   4447 
   4448     virtual HRESULT STDMETHODCALLTYPE OnTestKeyUp(
   4449         ITfContext *pic,
   4450         WPARAM wParam,
   4451         LPARAM lParam,
   4452         WINBOOL *pfEaten) = 0;
   4453 
   4454     virtual HRESULT STDMETHODCALLTYPE OnKeyDown(
   4455         ITfContext *pic,
   4456         WPARAM wParam,
   4457         LPARAM lParam,
   4458         WINBOOL *pfEaten) = 0;
   4459 
   4460     virtual HRESULT STDMETHODCALLTYPE OnKeyUp(
   4461         ITfContext *pic,
   4462         WPARAM wParam,
   4463         LPARAM lParam,
   4464         WINBOOL *pfEaten) = 0;
   4465 
   4466     virtual HRESULT STDMETHODCALLTYPE OnPreservedKey(
   4467         ITfContext *pic,
   4468         REFGUID rguid,
   4469         WINBOOL *pfEaten) = 0;
   4470 
   4471 };
   4472 #ifdef __CRT_UUID_DECL
   4473 __CRT_UUID_DECL(ITfKeyEventSink, 0xaa80e7f5, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
   4474 #endif
   4475 #else
   4476 typedef struct ITfKeyEventSinkVtbl {
   4477     BEGIN_INTERFACE
   4478 
   4479     /*** IUnknown methods ***/
   4480     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4481         ITfKeyEventSink* This,
   4482         REFIID riid,
   4483         void **ppvObject);
   4484 
   4485     ULONG (STDMETHODCALLTYPE *AddRef)(
   4486         ITfKeyEventSink* This);
   4487 
   4488     ULONG (STDMETHODCALLTYPE *Release)(
   4489         ITfKeyEventSink* This);
   4490 
   4491     /*** ITfKeyEventSink methods ***/
   4492     HRESULT (STDMETHODCALLTYPE *OnSetFocus)(
   4493         ITfKeyEventSink* This,
   4494         WINBOOL fForeground);
   4495 
   4496     HRESULT (STDMETHODCALLTYPE *OnTestKeyDown)(
   4497         ITfKeyEventSink* This,
   4498         ITfContext *pic,
   4499         WPARAM wParam,
   4500         LPARAM lParam,
   4501         WINBOOL *pfEaten);
   4502 
   4503     HRESULT (STDMETHODCALLTYPE *OnTestKeyUp)(
   4504         ITfKeyEventSink* This,
   4505         ITfContext *pic,
   4506         WPARAM wParam,
   4507         LPARAM lParam,
   4508         WINBOOL *pfEaten);
   4509 
   4510     HRESULT (STDMETHODCALLTYPE *OnKeyDown)(
   4511         ITfKeyEventSink* This,
   4512         ITfContext *pic,
   4513         WPARAM wParam,
   4514         LPARAM lParam,
   4515         WINBOOL *pfEaten);
   4516 
   4517     HRESULT (STDMETHODCALLTYPE *OnKeyUp)(
   4518         ITfKeyEventSink* This,
   4519         ITfContext *pic,
   4520         WPARAM wParam,
   4521         LPARAM lParam,
   4522         WINBOOL *pfEaten);
   4523 
   4524     HRESULT (STDMETHODCALLTYPE *OnPreservedKey)(
   4525         ITfKeyEventSink* This,
   4526         ITfContext *pic,
   4527         REFGUID rguid,
   4528         WINBOOL *pfEaten);
   4529 
   4530     END_INTERFACE
   4531 } ITfKeyEventSinkVtbl;
   4532 interface ITfKeyEventSink {
   4533     CONST_VTBL ITfKeyEventSinkVtbl* lpVtbl;
   4534 };
   4535 
   4536 #ifdef COBJMACROS
   4537 #ifndef WIDL_C_INLINE_WRAPPERS
   4538 /*** IUnknown methods ***/
   4539 #define ITfKeyEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4540 #define ITfKeyEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   4541 #define ITfKeyEventSink_Release(This) (This)->lpVtbl->Release(This)
   4542 /*** ITfKeyEventSink methods ***/
   4543 #define ITfKeyEventSink_OnSetFocus(This,fForeground) (This)->lpVtbl->OnSetFocus(This,fForeground)
   4544 #define ITfKeyEventSink_OnTestKeyDown(This,pic,wParam,lParam,pfEaten) (This)->lpVtbl->OnTestKeyDown(This,pic,wParam,lParam,pfEaten)
   4545 #define ITfKeyEventSink_OnTestKeyUp(This,pic,wParam,lParam,pfEaten) (This)->lpVtbl->OnTestKeyUp(This,pic,wParam,lParam,pfEaten)
   4546 #define ITfKeyEventSink_OnKeyDown(This,pic,wParam,lParam,pfEaten) (This)->lpVtbl->OnKeyDown(This,pic,wParam,lParam,pfEaten)
   4547 #define ITfKeyEventSink_OnKeyUp(This,pic,wParam,lParam,pfEaten) (This)->lpVtbl->OnKeyUp(This,pic,wParam,lParam,pfEaten)
   4548 #define ITfKeyEventSink_OnPreservedKey(This,pic,rguid,pfEaten) (This)->lpVtbl->OnPreservedKey(This,pic,rguid,pfEaten)
   4549 #else
   4550 /*** IUnknown methods ***/
   4551 static FORCEINLINE HRESULT ITfKeyEventSink_QueryInterface(ITfKeyEventSink* This,REFIID riid,void **ppvObject) {
   4552     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4553 }
   4554 static FORCEINLINE ULONG ITfKeyEventSink_AddRef(ITfKeyEventSink* This) {
   4555     return This->lpVtbl->AddRef(This);
   4556 }
   4557 static FORCEINLINE ULONG ITfKeyEventSink_Release(ITfKeyEventSink* This) {
   4558     return This->lpVtbl->Release(This);
   4559 }
   4560 /*** ITfKeyEventSink methods ***/
   4561 static FORCEINLINE HRESULT ITfKeyEventSink_OnSetFocus(ITfKeyEventSink* This,WINBOOL fForeground) {
   4562     return This->lpVtbl->OnSetFocus(This,fForeground);
   4563 }
   4564 static FORCEINLINE HRESULT ITfKeyEventSink_OnTestKeyDown(ITfKeyEventSink* This,ITfContext *pic,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
   4565     return This->lpVtbl->OnTestKeyDown(This,pic,wParam,lParam,pfEaten);
   4566 }
   4567 static FORCEINLINE HRESULT ITfKeyEventSink_OnTestKeyUp(ITfKeyEventSink* This,ITfContext *pic,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
   4568     return This->lpVtbl->OnTestKeyUp(This,pic,wParam,lParam,pfEaten);
   4569 }
   4570 static FORCEINLINE HRESULT ITfKeyEventSink_OnKeyDown(ITfKeyEventSink* This,ITfContext *pic,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
   4571     return This->lpVtbl->OnKeyDown(This,pic,wParam,lParam,pfEaten);
   4572 }
   4573 static FORCEINLINE HRESULT ITfKeyEventSink_OnKeyUp(ITfKeyEventSink* This,ITfContext *pic,WPARAM wParam,LPARAM lParam,WINBOOL *pfEaten) {
   4574     return This->lpVtbl->OnKeyUp(This,pic,wParam,lParam,pfEaten);
   4575 }
   4576 static FORCEINLINE HRESULT ITfKeyEventSink_OnPreservedKey(ITfKeyEventSink* This,ITfContext *pic,REFGUID rguid,WINBOOL *pfEaten) {
   4577     return This->lpVtbl->OnPreservedKey(This,pic,rguid,pfEaten);
   4578 }
   4579 #endif
   4580 #endif
   4581 
   4582 #endif
   4583 
   4584 HRESULT STDMETHODCALLTYPE ITfKeyEventSink_OnSetFocus_Proxy(
   4585     ITfKeyEventSink* This,
   4586     WINBOOL fForeground);
   4587 void __RPC_STUB ITfKeyEventSink_OnSetFocus_Stub(
   4588     IRpcStubBuffer* This,
   4589     IRpcChannelBuffer* pRpcChannelBuffer,
   4590     PRPC_MESSAGE pRpcMessage,
   4591     DWORD* pdwStubPhase);
   4592 HRESULT STDMETHODCALLTYPE ITfKeyEventSink_OnTestKeyDown_Proxy(
   4593     ITfKeyEventSink* This,
   4594     ITfContext *pic,
   4595     WPARAM wParam,
   4596     LPARAM lParam,
   4597     WINBOOL *pfEaten);
   4598 void __RPC_STUB ITfKeyEventSink_OnTestKeyDown_Stub(
   4599     IRpcStubBuffer* This,
   4600     IRpcChannelBuffer* pRpcChannelBuffer,
   4601     PRPC_MESSAGE pRpcMessage,
   4602     DWORD* pdwStubPhase);
   4603 HRESULT STDMETHODCALLTYPE ITfKeyEventSink_OnTestKeyUp_Proxy(
   4604     ITfKeyEventSink* This,
   4605     ITfContext *pic,
   4606     WPARAM wParam,
   4607     LPARAM lParam,
   4608     WINBOOL *pfEaten);
   4609 void __RPC_STUB ITfKeyEventSink_OnTestKeyUp_Stub(
   4610     IRpcStubBuffer* This,
   4611     IRpcChannelBuffer* pRpcChannelBuffer,
   4612     PRPC_MESSAGE pRpcMessage,
   4613     DWORD* pdwStubPhase);
   4614 HRESULT STDMETHODCALLTYPE ITfKeyEventSink_OnKeyDown_Proxy(
   4615     ITfKeyEventSink* This,
   4616     ITfContext *pic,
   4617     WPARAM wParam,
   4618     LPARAM lParam,
   4619     WINBOOL *pfEaten);
   4620 void __RPC_STUB ITfKeyEventSink_OnKeyDown_Stub(
   4621     IRpcStubBuffer* This,
   4622     IRpcChannelBuffer* pRpcChannelBuffer,
   4623     PRPC_MESSAGE pRpcMessage,
   4624     DWORD* pdwStubPhase);
   4625 HRESULT STDMETHODCALLTYPE ITfKeyEventSink_OnKeyUp_Proxy(
   4626     ITfKeyEventSink* This,
   4627     ITfContext *pic,
   4628     WPARAM wParam,
   4629     LPARAM lParam,
   4630     WINBOOL *pfEaten);
   4631 void __RPC_STUB ITfKeyEventSink_OnKeyUp_Stub(
   4632     IRpcStubBuffer* This,
   4633     IRpcChannelBuffer* pRpcChannelBuffer,
   4634     PRPC_MESSAGE pRpcMessage,
   4635     DWORD* pdwStubPhase);
   4636 HRESULT STDMETHODCALLTYPE ITfKeyEventSink_OnPreservedKey_Proxy(
   4637     ITfKeyEventSink* This,
   4638     ITfContext *pic,
   4639     REFGUID rguid,
   4640     WINBOOL *pfEaten);
   4641 void __RPC_STUB ITfKeyEventSink_OnPreservedKey_Stub(
   4642     IRpcStubBuffer* This,
   4643     IRpcChannelBuffer* pRpcChannelBuffer,
   4644     PRPC_MESSAGE pRpcMessage,
   4645     DWORD* pdwStubPhase);
   4646 
   4647 #endif  /* __ITfKeyEventSink_INTERFACE_DEFINED__ */
   4648 
   4649 /*****************************************************************************
   4650  * ITfMessagePump interface
   4651  */
   4652 #ifndef __ITfMessagePump_INTERFACE_DEFINED__
   4653 #define __ITfMessagePump_INTERFACE_DEFINED__
   4654 
   4655 DEFINE_GUID(IID_ITfMessagePump, 0x8f1b8ad8, 0x0b6b, 0x4874, 0x90,0xc5, 0xbd,0x76,0x01,0x1e,0x8f,0x7c);
   4656 #if defined(__cplusplus) && !defined(CINTERFACE)
   4657 MIDL_INTERFACE("8f1b8ad8-0b6b-4874-90c5-bd76011e8f7c")
   4658 ITfMessagePump : public IUnknown
   4659 {
   4660     virtual HRESULT STDMETHODCALLTYPE PeekMessageA(
   4661         LPMSG pMsg,
   4662         HWND hwnd,
   4663         UINT wMsgFilterMin,
   4664         UINT wMsgFilterMax,
   4665         UINT wRemoveMsg,
   4666         WINBOOL *pfResult) = 0;
   4667 
   4668     virtual HRESULT STDMETHODCALLTYPE GetMessageA(
   4669         LPMSG pMsg,
   4670         HWND hwnd,
   4671         UINT wMsgFilterMin,
   4672         UINT wMsgFilterMax,
   4673         WINBOOL *pfResult) = 0;
   4674 
   4675     virtual HRESULT STDMETHODCALLTYPE PeekMessageW(
   4676         LPMSG pMsg,
   4677         HWND hwnd,
   4678         UINT wMsgFilterMin,
   4679         UINT wMsgFilterMax,
   4680         UINT wRemoveMsg,
   4681         WINBOOL *pfResult) = 0;
   4682 
   4683     virtual HRESULT STDMETHODCALLTYPE GetMessageW(
   4684         LPMSG pMsg,
   4685         HWND hwnd,
   4686         UINT wMsgFilterMin,
   4687         UINT wMsgFilterMax,
   4688         WINBOOL *pfResult) = 0;
   4689 
   4690 };
   4691 #ifdef __CRT_UUID_DECL
   4692 __CRT_UUID_DECL(ITfMessagePump, 0x8f1b8ad8, 0x0b6b, 0x4874, 0x90,0xc5, 0xbd,0x76,0x01,0x1e,0x8f,0x7c)
   4693 #endif
   4694 #else
   4695 typedef struct ITfMessagePumpVtbl {
   4696     BEGIN_INTERFACE
   4697 
   4698     /*** IUnknown methods ***/
   4699     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4700         ITfMessagePump* This,
   4701         REFIID riid,
   4702         void **ppvObject);
   4703 
   4704     ULONG (STDMETHODCALLTYPE *AddRef)(
   4705         ITfMessagePump* This);
   4706 
   4707     ULONG (STDMETHODCALLTYPE *Release)(
   4708         ITfMessagePump* This);
   4709 
   4710     /*** ITfMessagePump methods ***/
   4711     HRESULT (STDMETHODCALLTYPE *PeekMessageA)(
   4712         ITfMessagePump* This,
   4713         LPMSG pMsg,
   4714         HWND hwnd,
   4715         UINT wMsgFilterMin,
   4716         UINT wMsgFilterMax,
   4717         UINT wRemoveMsg,
   4718         WINBOOL *pfResult);
   4719 
   4720     HRESULT (STDMETHODCALLTYPE *GetMessageA)(
   4721         ITfMessagePump* This,
   4722         LPMSG pMsg,
   4723         HWND hwnd,
   4724         UINT wMsgFilterMin,
   4725         UINT wMsgFilterMax,
   4726         WINBOOL *pfResult);
   4727 
   4728     HRESULT (STDMETHODCALLTYPE *PeekMessageW)(
   4729         ITfMessagePump* This,
   4730         LPMSG pMsg,
   4731         HWND hwnd,
   4732         UINT wMsgFilterMin,
   4733         UINT wMsgFilterMax,
   4734         UINT wRemoveMsg,
   4735         WINBOOL *pfResult);
   4736 
   4737     HRESULT (STDMETHODCALLTYPE *GetMessageW)(
   4738         ITfMessagePump* This,
   4739         LPMSG pMsg,
   4740         HWND hwnd,
   4741         UINT wMsgFilterMin,
   4742         UINT wMsgFilterMax,
   4743         WINBOOL *pfResult);
   4744 
   4745     END_INTERFACE
   4746 } ITfMessagePumpVtbl;
   4747 interface ITfMessagePump {
   4748     CONST_VTBL ITfMessagePumpVtbl* lpVtbl;
   4749 };
   4750 
   4751 #ifdef COBJMACROS
   4752 #ifndef WIDL_C_INLINE_WRAPPERS
   4753 /*** IUnknown methods ***/
   4754 #define ITfMessagePump_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4755 #define ITfMessagePump_AddRef(This) (This)->lpVtbl->AddRef(This)
   4756 #define ITfMessagePump_Release(This) (This)->lpVtbl->Release(This)
   4757 /*** ITfMessagePump methods ***/
   4758 #define ITfMessagePump_PeekMessageA(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,wRemoveMsg,pfResult) (This)->lpVtbl->PeekMessageA(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,wRemoveMsg,pfResult)
   4759 #define ITfMessagePump_GetMessageA(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,pfResult) (This)->lpVtbl->GetMessageA(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,pfResult)
   4760 #define ITfMessagePump_PeekMessageW(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,wRemoveMsg,pfResult) (This)->lpVtbl->PeekMessageW(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,wRemoveMsg,pfResult)
   4761 #define ITfMessagePump_GetMessageW(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,pfResult) (This)->lpVtbl->GetMessageW(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,pfResult)
   4762 #else
   4763 /*** IUnknown methods ***/
   4764 static FORCEINLINE HRESULT ITfMessagePump_QueryInterface(ITfMessagePump* This,REFIID riid,void **ppvObject) {
   4765     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4766 }
   4767 static FORCEINLINE ULONG ITfMessagePump_AddRef(ITfMessagePump* This) {
   4768     return This->lpVtbl->AddRef(This);
   4769 }
   4770 static FORCEINLINE ULONG ITfMessagePump_Release(ITfMessagePump* This) {
   4771     return This->lpVtbl->Release(This);
   4772 }
   4773 /*** ITfMessagePump methods ***/
   4774 static FORCEINLINE HRESULT ITfMessagePump_PeekMessageA(ITfMessagePump* This,LPMSG pMsg,HWND hwnd,UINT wMsgFilterMin,UINT wMsgFilterMax,UINT wRemoveMsg,WINBOOL *pfResult) {
   4775     return This->lpVtbl->PeekMessageA(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,wRemoveMsg,pfResult);
   4776 }
   4777 static FORCEINLINE HRESULT ITfMessagePump_GetMessageA(ITfMessagePump* This,LPMSG pMsg,HWND hwnd,UINT wMsgFilterMin,UINT wMsgFilterMax,WINBOOL *pfResult) {
   4778     return This->lpVtbl->GetMessageA(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,pfResult);
   4779 }
   4780 static FORCEINLINE HRESULT ITfMessagePump_PeekMessageW(ITfMessagePump* This,LPMSG pMsg,HWND hwnd,UINT wMsgFilterMin,UINT wMsgFilterMax,UINT wRemoveMsg,WINBOOL *pfResult) {
   4781     return This->lpVtbl->PeekMessageW(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,wRemoveMsg,pfResult);
   4782 }
   4783 static FORCEINLINE HRESULT ITfMessagePump_GetMessageW(ITfMessagePump* This,LPMSG pMsg,HWND hwnd,UINT wMsgFilterMin,UINT wMsgFilterMax,WINBOOL *pfResult) {
   4784     return This->lpVtbl->GetMessageW(This,pMsg,hwnd,wMsgFilterMin,wMsgFilterMax,pfResult);
   4785 }
   4786 #endif
   4787 #endif
   4788 
   4789 #endif
   4790 
   4791 HRESULT STDMETHODCALLTYPE ITfMessagePump_PeekMessageA_Proxy(
   4792     ITfMessagePump* This,
   4793     LPMSG pMsg,
   4794     HWND hwnd,
   4795     UINT wMsgFilterMin,
   4796     UINT wMsgFilterMax,
   4797     UINT wRemoveMsg,
   4798     WINBOOL *pfResult);
   4799 void __RPC_STUB ITfMessagePump_PeekMessageA_Stub(
   4800     IRpcStubBuffer* This,
   4801     IRpcChannelBuffer* pRpcChannelBuffer,
   4802     PRPC_MESSAGE pRpcMessage,
   4803     DWORD* pdwStubPhase);
   4804 HRESULT STDMETHODCALLTYPE ITfMessagePump_GetMessageA_Proxy(
   4805     ITfMessagePump* This,
   4806     LPMSG pMsg,
   4807     HWND hwnd,
   4808     UINT wMsgFilterMin,
   4809     UINT wMsgFilterMax,
   4810     WINBOOL *pfResult);
   4811 void __RPC_STUB ITfMessagePump_GetMessageA_Stub(
   4812     IRpcStubBuffer* This,
   4813     IRpcChannelBuffer* pRpcChannelBuffer,
   4814     PRPC_MESSAGE pRpcMessage,
   4815     DWORD* pdwStubPhase);
   4816 HRESULT STDMETHODCALLTYPE ITfMessagePump_PeekMessageW_Proxy(
   4817     ITfMessagePump* This,
   4818     LPMSG pMsg,
   4819     HWND hwnd,
   4820     UINT wMsgFilterMin,
   4821     UINT wMsgFilterMax,
   4822     UINT wRemoveMsg,
   4823     WINBOOL *pfResult);
   4824 void __RPC_STUB ITfMessagePump_PeekMessageW_Stub(
   4825     IRpcStubBuffer* This,
   4826     IRpcChannelBuffer* pRpcChannelBuffer,
   4827     PRPC_MESSAGE pRpcMessage,
   4828     DWORD* pdwStubPhase);
   4829 HRESULT STDMETHODCALLTYPE ITfMessagePump_GetMessageW_Proxy(
   4830     ITfMessagePump* This,
   4831     LPMSG pMsg,
   4832     HWND hwnd,
   4833     UINT wMsgFilterMin,
   4834     UINT wMsgFilterMax,
   4835     WINBOOL *pfResult);
   4836 void __RPC_STUB ITfMessagePump_GetMessageW_Stub(
   4837     IRpcStubBuffer* This,
   4838     IRpcChannelBuffer* pRpcChannelBuffer,
   4839     PRPC_MESSAGE pRpcMessage,
   4840     DWORD* pdwStubPhase);
   4841 
   4842 #endif  /* __ITfMessagePump_INTERFACE_DEFINED__ */
   4843 
   4844 /*****************************************************************************
   4845  * ITfClientId interface
   4846  */
   4847 #ifndef __ITfClientId_INTERFACE_DEFINED__
   4848 #define __ITfClientId_INTERFACE_DEFINED__
   4849 
   4850 DEFINE_GUID(IID_ITfClientId, 0xd60a7b49, 0x1b9f, 0x4be2, 0xb7,0x02, 0x47,0xe9,0xdc,0x05,0xde,0xc3);
   4851 #if defined(__cplusplus) && !defined(CINTERFACE)
   4852 MIDL_INTERFACE("d60a7b49-1b9f-4be2-b702-47e9dc05dec3")
   4853 ITfClientId : public IUnknown
   4854 {
   4855     virtual HRESULT STDMETHODCALLTYPE GetClientId(
   4856         REFCLSID rclsid,
   4857         TfClientId *ptid) = 0;
   4858 
   4859 };
   4860 #ifdef __CRT_UUID_DECL
   4861 __CRT_UUID_DECL(ITfClientId, 0xd60a7b49, 0x1b9f, 0x4be2, 0xb7,0x02, 0x47,0xe9,0xdc,0x05,0xde,0xc3)
   4862 #endif
   4863 #else
   4864 typedef struct ITfClientIdVtbl {
   4865     BEGIN_INTERFACE
   4866 
   4867     /*** IUnknown methods ***/
   4868     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4869         ITfClientId* This,
   4870         REFIID riid,
   4871         void **ppvObject);
   4872 
   4873     ULONG (STDMETHODCALLTYPE *AddRef)(
   4874         ITfClientId* This);
   4875 
   4876     ULONG (STDMETHODCALLTYPE *Release)(
   4877         ITfClientId* This);
   4878 
   4879     /*** ITfClientId methods ***/
   4880     HRESULT (STDMETHODCALLTYPE *GetClientId)(
   4881         ITfClientId* This,
   4882         REFCLSID rclsid,
   4883         TfClientId *ptid);
   4884 
   4885     END_INTERFACE
   4886 } ITfClientIdVtbl;
   4887 interface ITfClientId {
   4888     CONST_VTBL ITfClientIdVtbl* lpVtbl;
   4889 };
   4890 
   4891 #ifdef COBJMACROS
   4892 #ifndef WIDL_C_INLINE_WRAPPERS
   4893 /*** IUnknown methods ***/
   4894 #define ITfClientId_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4895 #define ITfClientId_AddRef(This) (This)->lpVtbl->AddRef(This)
   4896 #define ITfClientId_Release(This) (This)->lpVtbl->Release(This)
   4897 /*** ITfClientId methods ***/
   4898 #define ITfClientId_GetClientId(This,rclsid,ptid) (This)->lpVtbl->GetClientId(This,rclsid,ptid)
   4899 #else
   4900 /*** IUnknown methods ***/
   4901 static FORCEINLINE HRESULT ITfClientId_QueryInterface(ITfClientId* This,REFIID riid,void **ppvObject) {
   4902     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4903 }
   4904 static FORCEINLINE ULONG ITfClientId_AddRef(ITfClientId* This) {
   4905     return This->lpVtbl->AddRef(This);
   4906 }
   4907 static FORCEINLINE ULONG ITfClientId_Release(ITfClientId* This) {
   4908     return This->lpVtbl->Release(This);
   4909 }
   4910 /*** ITfClientId methods ***/
   4911 static FORCEINLINE HRESULT ITfClientId_GetClientId(ITfClientId* This,REFCLSID rclsid,TfClientId *ptid) {
   4912     return This->lpVtbl->GetClientId(This,rclsid,ptid);
   4913 }
   4914 #endif
   4915 #endif
   4916 
   4917 #endif
   4918 
   4919 HRESULT STDMETHODCALLTYPE ITfClientId_GetClientId_Proxy(
   4920     ITfClientId* This,
   4921     REFCLSID rclsid,
   4922     TfClientId *ptid);
   4923 void __RPC_STUB ITfClientId_GetClientId_Stub(
   4924     IRpcStubBuffer* This,
   4925     IRpcChannelBuffer* pRpcChannelBuffer,
   4926     PRPC_MESSAGE pRpcMessage,
   4927     DWORD* pdwStubPhase);
   4928 
   4929 #endif  /* __ITfClientId_INTERFACE_DEFINED__ */
   4930 
   4931 /*****************************************************************************
   4932  * ITfLanguageProfileNotifySink interface
   4933  */
   4934 #ifndef __ITfLanguageProfileNotifySink_INTERFACE_DEFINED__
   4935 #define __ITfLanguageProfileNotifySink_INTERFACE_DEFINED__
   4936 
   4937 DEFINE_GUID(IID_ITfLanguageProfileNotifySink, 0x43c9fe15, 0xf494, 0x4c17, 0x9d,0xe2, 0xb8,0xa4,0xac,0x35,0x0a,0xa8);
   4938 #if defined(__cplusplus) && !defined(CINTERFACE)
   4939 MIDL_INTERFACE("43c9fe15-f494-4c17-9de2-b8a4ac350aa8")
   4940 ITfLanguageProfileNotifySink : public IUnknown
   4941 {
   4942     virtual HRESULT STDMETHODCALLTYPE OnLanguageChange(
   4943         LANGID langid,
   4944         WINBOOL *pfAccept) = 0;
   4945 
   4946     virtual HRESULT STDMETHODCALLTYPE OnLanguageChanged(
   4947         ) = 0;
   4948 
   4949 };
   4950 #ifdef __CRT_UUID_DECL
   4951 __CRT_UUID_DECL(ITfLanguageProfileNotifySink, 0x43c9fe15, 0xf494, 0x4c17, 0x9d,0xe2, 0xb8,0xa4,0xac,0x35,0x0a,0xa8)
   4952 #endif
   4953 #else
   4954 typedef struct ITfLanguageProfileNotifySinkVtbl {
   4955     BEGIN_INTERFACE
   4956 
   4957     /*** IUnknown methods ***/
   4958     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4959         ITfLanguageProfileNotifySink* This,
   4960         REFIID riid,
   4961         void **ppvObject);
   4962 
   4963     ULONG (STDMETHODCALLTYPE *AddRef)(
   4964         ITfLanguageProfileNotifySink* This);
   4965 
   4966     ULONG (STDMETHODCALLTYPE *Release)(
   4967         ITfLanguageProfileNotifySink* This);
   4968 
   4969     /*** ITfLanguageProfileNotifySink methods ***/
   4970     HRESULT (STDMETHODCALLTYPE *OnLanguageChange)(
   4971         ITfLanguageProfileNotifySink* This,
   4972         LANGID langid,
   4973         WINBOOL *pfAccept);
   4974 
   4975     HRESULT (STDMETHODCALLTYPE *OnLanguageChanged)(
   4976         ITfLanguageProfileNotifySink* This);
   4977 
   4978     END_INTERFACE
   4979 } ITfLanguageProfileNotifySinkVtbl;
   4980 interface ITfLanguageProfileNotifySink {
   4981     CONST_VTBL ITfLanguageProfileNotifySinkVtbl* lpVtbl;
   4982 };
   4983 
   4984 #ifdef COBJMACROS
   4985 #ifndef WIDL_C_INLINE_WRAPPERS
   4986 /*** IUnknown methods ***/
   4987 #define ITfLanguageProfileNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4988 #define ITfLanguageProfileNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
   4989 #define ITfLanguageProfileNotifySink_Release(This) (This)->lpVtbl->Release(This)
   4990 /*** ITfLanguageProfileNotifySink methods ***/
   4991 #define ITfLanguageProfileNotifySink_OnLanguageChange(This,langid,pfAccept) (This)->lpVtbl->OnLanguageChange(This,langid,pfAccept)
   4992 #define ITfLanguageProfileNotifySink_OnLanguageChanged(This) (This)->lpVtbl->OnLanguageChanged(This)
   4993 #else
   4994 /*** IUnknown methods ***/
   4995 static FORCEINLINE HRESULT ITfLanguageProfileNotifySink_QueryInterface(ITfLanguageProfileNotifySink* This,REFIID riid,void **ppvObject) {
   4996     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4997 }
   4998 static FORCEINLINE ULONG ITfLanguageProfileNotifySink_AddRef(ITfLanguageProfileNotifySink* This) {
   4999     return This->lpVtbl->AddRef(This);
   5000 }
   5001 static FORCEINLINE ULONG ITfLanguageProfileNotifySink_Release(ITfLanguageProfileNotifySink* This) {
   5002     return This->lpVtbl->Release(This);
   5003 }
   5004 /*** ITfLanguageProfileNotifySink methods ***/
   5005 static FORCEINLINE HRESULT ITfLanguageProfileNotifySink_OnLanguageChange(ITfLanguageProfileNotifySink* This,LANGID langid,WINBOOL *pfAccept) {
   5006     return This->lpVtbl->OnLanguageChange(This,langid,pfAccept);
   5007 }
   5008 static FORCEINLINE HRESULT ITfLanguageProfileNotifySink_OnLanguageChanged(ITfLanguageProfileNotifySink* This) {
   5009     return This->lpVtbl->OnLanguageChanged(This);
   5010 }
   5011 #endif
   5012 #endif
   5013 
   5014 #endif
   5015 
   5016 HRESULT STDMETHODCALLTYPE ITfLanguageProfileNotifySink_OnLanguageChange_Proxy(
   5017     ITfLanguageProfileNotifySink* This,
   5018     LANGID langid,
   5019     WINBOOL *pfAccept);
   5020 void __RPC_STUB ITfLanguageProfileNotifySink_OnLanguageChange_Stub(
   5021     IRpcStubBuffer* This,
   5022     IRpcChannelBuffer* pRpcChannelBuffer,
   5023     PRPC_MESSAGE pRpcMessage,
   5024     DWORD* pdwStubPhase);
   5025 HRESULT STDMETHODCALLTYPE ITfLanguageProfileNotifySink_OnLanguageChanged_Proxy(
   5026     ITfLanguageProfileNotifySink* This);
   5027 void __RPC_STUB ITfLanguageProfileNotifySink_OnLanguageChanged_Stub(
   5028     IRpcStubBuffer* This,
   5029     IRpcChannelBuffer* pRpcChannelBuffer,
   5030     PRPC_MESSAGE pRpcMessage,
   5031     DWORD* pdwStubPhase);
   5032 
   5033 #endif  /* __ITfLanguageProfileNotifySink_INTERFACE_DEFINED__ */
   5034 
   5035 /*****************************************************************************
   5036  * ITfEditSession interface
   5037  */
   5038 #ifndef __ITfEditSession_INTERFACE_DEFINED__
   5039 #define __ITfEditSession_INTERFACE_DEFINED__
   5040 
   5041 DEFINE_GUID(IID_ITfEditSession, 0xaa80e803, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
   5042 #if defined(__cplusplus) && !defined(CINTERFACE)
   5043 MIDL_INTERFACE("aa80e803-2021-11d2-93e0-0060b067b86e")
   5044 ITfEditSession : public IUnknown
   5045 {
   5046     virtual HRESULT STDMETHODCALLTYPE DoEditSession(
   5047         TfEditCookie ec) = 0;
   5048 
   5049 };
   5050 #ifdef __CRT_UUID_DECL
   5051 __CRT_UUID_DECL(ITfEditSession, 0xaa80e803, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
   5052 #endif
   5053 #else
   5054 typedef struct ITfEditSessionVtbl {
   5055     BEGIN_INTERFACE
   5056 
   5057     /*** IUnknown methods ***/
   5058     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5059         ITfEditSession* This,
   5060         REFIID riid,
   5061         void **ppvObject);
   5062 
   5063     ULONG (STDMETHODCALLTYPE *AddRef)(
   5064         ITfEditSession* This);
   5065 
   5066     ULONG (STDMETHODCALLTYPE *Release)(
   5067         ITfEditSession* This);
   5068 
   5069     /*** ITfEditSession methods ***/
   5070     HRESULT (STDMETHODCALLTYPE *DoEditSession)(
   5071         ITfEditSession* This,
   5072         TfEditCookie ec);
   5073 
   5074     END_INTERFACE
   5075 } ITfEditSessionVtbl;
   5076 interface ITfEditSession {
   5077     CONST_VTBL ITfEditSessionVtbl* lpVtbl;
   5078 };
   5079 
   5080 #ifdef COBJMACROS
   5081 #ifndef WIDL_C_INLINE_WRAPPERS
   5082 /*** IUnknown methods ***/
   5083 #define ITfEditSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5084 #define ITfEditSession_AddRef(This) (This)->lpVtbl->AddRef(This)
   5085 #define ITfEditSession_Release(This) (This)->lpVtbl->Release(This)
   5086 /*** ITfEditSession methods ***/
   5087 #define ITfEditSession_DoEditSession(This,ec) (This)->lpVtbl->DoEditSession(This,ec)
   5088 #else
   5089 /*** IUnknown methods ***/
   5090 static FORCEINLINE HRESULT ITfEditSession_QueryInterface(ITfEditSession* This,REFIID riid,void **ppvObject) {
   5091     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5092 }
   5093 static FORCEINLINE ULONG ITfEditSession_AddRef(ITfEditSession* This) {
   5094     return This->lpVtbl->AddRef(This);
   5095 }
   5096 static FORCEINLINE ULONG ITfEditSession_Release(ITfEditSession* This) {
   5097     return This->lpVtbl->Release(This);
   5098 }
   5099 /*** ITfEditSession methods ***/
   5100 static FORCEINLINE HRESULT ITfEditSession_DoEditSession(ITfEditSession* This,TfEditCookie ec) {
   5101     return This->lpVtbl->DoEditSession(This,ec);
   5102 }
   5103 #endif
   5104 #endif
   5105 
   5106 #endif
   5107 
   5108 HRESULT STDMETHODCALLTYPE ITfEditSession_DoEditSession_Proxy(
   5109     ITfEditSession* This,
   5110     TfEditCookie ec);
   5111 void __RPC_STUB ITfEditSession_DoEditSession_Stub(
   5112     IRpcStubBuffer* This,
   5113     IRpcChannelBuffer* pRpcChannelBuffer,
   5114     PRPC_MESSAGE pRpcMessage,
   5115     DWORD* pdwStubPhase);
   5116 
   5117 #endif  /* __ITfEditSession_INTERFACE_DEFINED__ */
   5118 
   5119 /*****************************************************************************
   5120  * ITfRange interface
   5121  */
   5122 #ifndef __ITfRange_INTERFACE_DEFINED__
   5123 #define __ITfRange_INTERFACE_DEFINED__
   5124 
   5125 #define TF_CHAR_EMBEDDED (TS_CHAR_EMBEDDED)
   5126 
   5127 typedef enum __WIDL_msctf_generated_name_00000005 {
   5128     TF_GRAVITY_BACKWARD = 0,
   5129     TF_GRAVITY_FORWARD = 1
   5130 } TfGravity;
   5131 typedef enum __WIDL_msctf_generated_name_00000006 {
   5132     TF_SD_BACKWARD = 0,
   5133     TF_SD_FORWARD = 1
   5134 } TfShiftDir;
   5135 #define TF_HF_OBJECT (1)
   5136 
   5137 #define TF_TF_MOVESTART (1)
   5138 
   5139 #define TF_TF_IGNOREEND (2)
   5140 
   5141 #define TF_ST_CORRECTION (1)
   5142 
   5143 #define TF_IE_CORRECTION (1)
   5144 
   5145 typedef struct TF_HALTCOND {
   5146     ITfRange *pHaltRange;
   5147     TfAnchor aHaltPos;
   5148     DWORD dwFlags;
   5149 } TF_HALTCOND;
   5150 DEFINE_GUID(IID_ITfRange, 0xaa80e7ff, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
   5151 #if defined(__cplusplus) && !defined(CINTERFACE)
   5152 MIDL_INTERFACE("aa80e7ff-2021-11d2-93e0-0060b067b86e")
   5153 ITfRange : public IUnknown
   5154 {
   5155     virtual HRESULT STDMETHODCALLTYPE GetText(
   5156         TfEditCookie ec,
   5157         DWORD dwFlags,
   5158         WCHAR *pchText,
   5159         ULONG cchMax,
   5160         ULONG *pcch) = 0;
   5161 
   5162     virtual HRESULT STDMETHODCALLTYPE SetText(
   5163         TfEditCookie ec,
   5164         DWORD dwFlags,
   5165         const WCHAR *pchText,
   5166         LONG cch) = 0;
   5167 
   5168     virtual HRESULT STDMETHODCALLTYPE GetFormattedText(
   5169         TfEditCookie ec,
   5170         IDataObject **ppDataObject) = 0;
   5171 
   5172     virtual HRESULT STDMETHODCALLTYPE GetEmbedded(
   5173         TfEditCookie ec,
   5174         REFGUID rguidService,
   5175         REFIID riid,
   5176         IUnknown **ppunk) = 0;
   5177 
   5178     virtual HRESULT STDMETHODCALLTYPE InsertEmbedded(
   5179         TfEditCookie ec,
   5180         DWORD dwFlags,
   5181         IDataObject *pDataObject) = 0;
   5182 
   5183     virtual HRESULT STDMETHODCALLTYPE ShiftStart(
   5184         TfEditCookie ec,
   5185         LONG cchReq,
   5186         LONG *pcch,
   5187         const TF_HALTCOND *pHalt) = 0;
   5188 
   5189     virtual HRESULT STDMETHODCALLTYPE ShiftEnd(
   5190         TfEditCookie ec,
   5191         LONG cchReq,
   5192         LONG *pcch,
   5193         const TF_HALTCOND *pHalt) = 0;
   5194 
   5195     virtual HRESULT STDMETHODCALLTYPE ShiftStartToRange(
   5196         TfEditCookie ec,
   5197         ITfRange *pRange,
   5198         TfAnchor aPos) = 0;
   5199 
   5200     virtual HRESULT STDMETHODCALLTYPE ShiftEndToRange(
   5201         TfEditCookie ec,
   5202         ITfRange *pRange,
   5203         TfAnchor aPos) = 0;
   5204 
   5205     virtual HRESULT STDMETHODCALLTYPE ShiftStartRegion(
   5206         TfEditCookie ec,
   5207         TfShiftDir dir,
   5208         WINBOOL *pfNoRegion) = 0;
   5209 
   5210     virtual HRESULT STDMETHODCALLTYPE ShiftEndRegion(
   5211         TfEditCookie ec,
   5212         TfShiftDir dir,
   5213         WINBOOL *pfNoRegion) = 0;
   5214 
   5215     virtual HRESULT STDMETHODCALLTYPE IsEmpty(
   5216         TfEditCookie ec,
   5217         WINBOOL *pfEmpty) = 0;
   5218 
   5219     virtual HRESULT STDMETHODCALLTYPE Collapse(
   5220         TfEditCookie ec,
   5221         TfAnchor aPos) = 0;
   5222 
   5223     virtual HRESULT STDMETHODCALLTYPE IsEqualStart(
   5224         TfEditCookie ec,
   5225         ITfRange *pWith,
   5226         TfAnchor aPos,
   5227         WINBOOL *pfEqual) = 0;
   5228 
   5229     virtual HRESULT STDMETHODCALLTYPE IsEqualEnd(
   5230         TfEditCookie ec,
   5231         ITfRange *pWith,
   5232         TfAnchor aPos,
   5233         WINBOOL *pfEqual) = 0;
   5234 
   5235     virtual HRESULT STDMETHODCALLTYPE CompareStart(
   5236         TfEditCookie ec,
   5237         ITfRange *pWith,
   5238         TfAnchor aPos,
   5239         LONG *plResult) = 0;
   5240 
   5241     virtual HRESULT STDMETHODCALLTYPE CompareEnd(
   5242         TfEditCookie ec,
   5243         ITfRange *pWith,
   5244         TfAnchor aPos,
   5245         LONG *plResult) = 0;
   5246 
   5247     virtual HRESULT STDMETHODCALLTYPE AdjustForInsert(
   5248         TfEditCookie ec,
   5249         ULONG cchInsert,
   5250         WINBOOL *pfInsertOk) = 0;
   5251 
   5252     virtual HRESULT STDMETHODCALLTYPE GetGravity(
   5253         TfGravity *pgStart,
   5254         TfGravity *pgEnd) = 0;
   5255 
   5256     virtual HRESULT STDMETHODCALLTYPE SetGravity(
   5257         TfEditCookie ec,
   5258         TfGravity gStart,
   5259         TfGravity gEnd) = 0;
   5260 
   5261     virtual HRESULT STDMETHODCALLTYPE Clone(
   5262         ITfRange **ppClone) = 0;
   5263 
   5264     virtual HRESULT STDMETHODCALLTYPE GetContext(
   5265         ITfContext **ppContext) = 0;
   5266 
   5267 };
   5268 #ifdef __CRT_UUID_DECL
   5269 __CRT_UUID_DECL(ITfRange, 0xaa80e7ff, 0x2021, 0x11d2, 0x93,0xe0, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
   5270 #endif
   5271 #else
   5272 typedef struct ITfRangeVtbl {
   5273     BEGIN_INTERFACE
   5274 
   5275     /*** IUnknown methods ***/
   5276     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5277         ITfRange* This,
   5278         REFIID riid,
   5279         void **ppvObject);
   5280 
   5281     ULONG (STDMETHODCALLTYPE *AddRef)(
   5282         ITfRange* This);
   5283 
   5284     ULONG (STDMETHODCALLTYPE *Release)(
   5285         ITfRange* This);
   5286 
   5287     /*** ITfRange methods ***/
   5288     HRESULT (STDMETHODCALLTYPE *GetText)(
   5289         ITfRange* This,
   5290         TfEditCookie ec,
   5291         DWORD dwFlags,
   5292         WCHAR *pchText,
   5293         ULONG cchMax,
   5294         ULONG *pcch);
   5295 
   5296     HRESULT (STDMETHODCALLTYPE *SetText)(
   5297         ITfRange* This,
   5298         TfEditCookie ec,
   5299         DWORD dwFlags,
   5300         const WCHAR *pchText,
   5301         LONG cch);
   5302 
   5303     HRESULT (STDMETHODCALLTYPE *GetFormattedText)(
   5304         ITfRange* This,
   5305         TfEditCookie ec,
   5306         IDataObject **ppDataObject);
   5307 
   5308     HRESULT (STDMETHODCALLTYPE *GetEmbedded)(
   5309         ITfRange* This,
   5310         TfEditCookie ec,
   5311         REFGUID rguidService,
   5312         REFIID riid,
   5313         IUnknown **ppunk);
   5314 
   5315     HRESULT (STDMETHODCALLTYPE *InsertEmbedded)(
   5316         ITfRange* This,
   5317         TfEditCookie ec,
   5318         DWORD dwFlags,
   5319         IDataObject *pDataObject);
   5320 
   5321     HRESULT (STDMETHODCALLTYPE *ShiftStart)(
   5322         ITfRange* This,
   5323         TfEditCookie ec,
   5324         LONG cchReq,
   5325         LONG *pcch,
   5326         const TF_HALTCOND *pHalt);
   5327 
   5328     HRESULT (STDMETHODCALLTYPE *ShiftEnd)(
   5329         ITfRange* This,
   5330         TfEditCookie ec,
   5331         LONG cchReq,
   5332         LONG *pcch,
   5333         const TF_HALTCOND *pHalt);
   5334 
   5335     HRESULT (STDMETHODCALLTYPE *ShiftStartToRange)(
   5336         ITfRange* This,
   5337         TfEditCookie ec,
   5338         ITfRange *pRange,
   5339         TfAnchor aPos);
   5340 
   5341     HRESULT (STDMETHODCALLTYPE *ShiftEndToRange)(
   5342         ITfRange* This,
   5343         TfEditCookie ec,
   5344         ITfRange *pRange,
   5345         TfAnchor aPos);
   5346 
   5347     HRESULT (STDMETHODCALLTYPE *ShiftStartRegion)(
   5348         ITfRange* This,
   5349         TfEditCookie ec,
   5350         TfShiftDir dir,
   5351         WINBOOL *pfNoRegion);
   5352 
   5353     HRESULT (STDMETHODCALLTYPE *ShiftEndRegion)(
   5354         ITfRange* This,
   5355         TfEditCookie ec,
   5356         TfShiftDir dir,
   5357         WINBOOL *pfNoRegion);
   5358 
   5359     HRESULT (STDMETHODCALLTYPE *IsEmpty)(
   5360         ITfRange* This,
   5361         TfEditCookie ec,
   5362         WINBOOL *pfEmpty);
   5363 
   5364     HRESULT (STDMETHODCALLTYPE *Collapse)(
   5365         ITfRange* This,
   5366         TfEditCookie ec,
   5367         TfAnchor aPos);
   5368 
   5369     HRESULT (STDMETHODCALLTYPE *IsEqualStart)(
   5370         ITfRange* This,
   5371         TfEditCookie ec,
   5372         ITfRange *pWith,
   5373         TfAnchor aPos,
   5374         WINBOOL *pfEqual);
   5375 
   5376     HRESULT (STDMETHODCALLTYPE *IsEqualEnd)(
   5377         ITfRange* This,
   5378         TfEditCookie ec,
   5379         ITfRange *pWith,
   5380         TfAnchor aPos,
   5381         WINBOOL *pfEqual);
   5382 
   5383     HRESULT (STDMETHODCALLTYPE *CompareStart)(
   5384         ITfRange* This,
   5385         TfEditCookie ec,
   5386         ITfRange *pWith,
   5387         TfAnchor aPos,
   5388         LONG *plResult);
   5389 
   5390     HRESULT (STDMETHODCALLTYPE *CompareEnd)(
   5391         ITfRange* This,
   5392         TfEditCookie ec,
   5393         ITfRange *pWith,
   5394         TfAnchor aPos,
   5395         LONG *plResult);
   5396 
   5397     HRESULT (STDMETHODCALLTYPE *AdjustForInsert)(
   5398         ITfRange* This,
   5399         TfEditCookie ec,
   5400         ULONG cchInsert,
   5401         WINBOOL *pfInsertOk);
   5402 
   5403     HRESULT (STDMETHODCALLTYPE *GetGravity)(
   5404         ITfRange* This,
   5405         TfGravity *pgStart,
   5406         TfGravity *pgEnd);
   5407 
   5408     HRESULT (STDMETHODCALLTYPE *SetGravity)(
   5409         ITfRange* This,
   5410         TfEditCookie ec,
   5411         TfGravity gStart,
   5412         TfGravity gEnd);
   5413 
   5414     HRESULT (STDMETHODCALLTYPE *Clone)(
   5415         ITfRange* This,
   5416         ITfRange **ppClone);
   5417 
   5418     HRESULT (STDMETHODCALLTYPE *GetContext)(
   5419         ITfRange* This,
   5420         ITfContext **ppContext);
   5421 
   5422     END_INTERFACE
   5423 } ITfRangeVtbl;
   5424 interface ITfRange {
   5425     CONST_VTBL ITfRangeVtbl* lpVtbl;
   5426 };
   5427 
   5428 #ifdef COBJMACROS
   5429 #ifndef WIDL_C_INLINE_WRAPPERS
   5430 /*** IUnknown methods ***/
   5431 #define ITfRange_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5432 #define ITfRange_AddRef(This) (This)->lpVtbl->AddRef(This)
   5433 #define ITfRange_Release(This) (This)->lpVtbl->Release(This)
   5434 /*** ITfRange methods ***/
   5435 #define ITfRange_GetText(This,ec,dwFlags,pchText,cchMax,pcch) (This)->lpVtbl->GetText(This,ec,dwFlags,pchText,cchMax,pcch)
   5436 #define ITfRange_SetText(This,ec,dwFlags,pchText,cch) (This)->lpVtbl->SetText(This,ec,dwFlags,pchText,cch)
   5437 #define ITfRange_GetFormattedText(This,ec,ppDataObject) (This)->lpVtbl->GetFormattedText(This,ec,ppDataObject)
   5438 #define ITfRange_GetEmbedded(This,ec,rguidService,riid,ppunk) (This)->lpVtbl->GetEmbedded(This,ec,rguidService,riid,ppunk)
   5439 #define ITfRange_InsertEmbedded(This,ec,dwFlags,pDataObject) (This)->lpVtbl->InsertEmbedded(This,ec,dwFlags,pDataObject)
   5440 #define ITfRange_ShiftStart(This,ec,cchReq,pcch,pHalt) (This)->lpVtbl->ShiftStart(This,ec,cchReq,pcch,pHalt)
   5441 #define ITfRange_ShiftEnd(This,ec,cchReq,pcch,pHalt) (This)->lpVtbl->ShiftEnd(This,ec,cchReq,pcch,pHalt)
   5442 #define ITfRange_ShiftStartToRange(This,ec,pRange,aPos) (This)->lpVtbl->ShiftStartToRange(This,ec,pRange,aPos)
   5443 #define ITfRange_ShiftEndToRange(This,ec,pRange,aPos) (This)->lpVtbl->ShiftEndToRange(This,ec,pRange,aPos)
   5444 #define ITfRange_ShiftStartRegion(This,ec,dir,pfNoRegion) (This)->lpVtbl->ShiftStartRegion(This,ec,dir,pfNoRegion)
   5445 #define ITfRange_ShiftEndRegion(This,ec,dir,pfNoRegion) (This)->lpVtbl->ShiftEndRegion(This,ec,dir,pfNoRegion)
   5446 #define ITfRange_IsEmpty(This,ec,pfEmpty) (This)->lpVtbl->IsEmpty(This,ec,pfEmpty)
   5447 #define ITfRange_Collapse(This,ec,aPos) (This)->lpVtbl->Collapse(This,ec,aPos)
   5448 #define ITfRange_IsEqualStart(This,ec,pWith,aPos,pfEqual) (This)->lpVtbl->IsEqualStart(This,ec,pWith,aPos,pfEqual)
   5449 #define ITfRange_IsEqualEnd(This,ec,pWith,aPos,pfEqual) (This)->lpVtbl->IsEqualEnd(This,ec,pWith,aPos,pfEqual)
   5450 #define ITfRange_CompareStart(This,ec,pWith,aPos,plResult) (This)->lpVtbl->CompareStart(This,ec,pWith,aPos,plResult)
   5451 #define ITfRange_CompareEnd(This,ec,pWith,aPos,plResult) (This)->lpVtbl->CompareEnd(This,ec,pWith,aPos,plResult)
   5452 #define ITfRange_AdjustForInsert(This,ec,cchInsert,pfInsertOk) (This)->lpVtbl->AdjustForInsert(This,ec,cchInsert,pfInsertOk)
   5453 #define ITfRange_GetGravity(This,pgStart,pgEnd) (This)->lpVtbl->GetGravity(This,pgStart,pgEnd)
   5454 #define ITfRange_SetGravity(This,ec,gStart,gEnd) (This)->lpVtbl->SetGravity(This,ec,gStart,gEnd)
   5455 #define ITfRange_Clone(This,ppClone) (This)->lpVtbl->Clone(This,ppClone)
   5456 #define ITfRange_GetContext(This,ppContext) (This)->lpVtbl->GetContext(This,ppContext)
   5457 #else
   5458 /*** IUnknown methods ***/
   5459 static FORCEINLINE HRESULT ITfRange_QueryInterface(ITfRange* This,REFIID riid,void **ppvObject) {
   5460     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5461 }
   5462 static FORCEINLINE ULONG ITfRange_AddRef(ITfRange* This) {
   5463     return This->lpVtbl->AddRef(This);
   5464 }
   5465 static FORCEINLINE ULONG ITfRange_Release(ITfRange* This) {
   5466     return This->lpVtbl->Release(This);
   5467 }
   5468 /*** ITfRange methods ***/
   5469 static FORCEINLINE HRESULT ITfRange_GetText(ITfRange* This,TfEditCookie ec,DWORD dwFlags,WCHAR *pchText,ULONG cchMax,ULONG *pcch) {
   5470     return This->lpVtbl->GetText(This,ec,dwFlags,pchText,cchMax,pcch);
   5471 }
   5472 static FORCEINLINE HRESULT ITfRange_SetText(ITfRange* This,TfEditCookie ec,DWORD dwFlags,const WCHAR *pchText,LONG cch) {
   5473     return This->lpVtbl->SetText(This,ec,dwFlags,pchText,cch);
   5474 }
   5475 static FORCEINLINE HRESULT ITfRange_GetFormattedText(ITfRange* This,TfEditCookie ec,IDataObject **ppDataObject) {
   5476     return This->lpVtbl->GetFormattedText(This,ec,ppDataObject);
   5477 }
   5478 static FORCEINLINE HRESULT ITfRange_GetEmbedded(ITfRange* This,TfEditCookie ec,REFGUID rguidService,REFIID riid,IUnknown **ppunk) {
   5479     return This->lpVtbl->GetEmbedded(This,ec,rguidService,riid,ppunk);
   5480 }
   5481 static FORCEINLINE HRESULT ITfRange_InsertEmbedded(ITfRange* This,TfEditCookie ec,DWORD dwFlags,IDataObject *pDataObject) {
   5482     return This->lpVtbl->InsertEmbedded(This,ec,dwFlags,pDataObject);
   5483 }
   5484 static FORCEINLINE HRESULT ITfRange_ShiftStart(ITfRange* This,TfEditCookie ec,LONG cchReq,LONG *pcch,const TF_HALTCOND *pHalt) {
   5485     return This->lpVtbl->ShiftStart(This,ec,cchReq,pcch,pHalt);
   5486 }
   5487 static FORCEINLINE HRESULT ITfRange_ShiftEnd(ITfRange* This,TfEditCookie ec,LONG cchReq,LONG *pcch,const TF_HALTCOND *pHalt) {
   5488     return This->lpVtbl->ShiftEnd(This,ec,cchReq,pcch,pHalt);
   5489 }
   5490 static FORCEINLINE HRESULT ITfRange_ShiftStartToRange(ITfRange* This,TfEditCookie ec,ITfRange *pRange,TfAnchor aPos) {
   5491     return This->lpVtbl->ShiftStartToRange(This,ec,pRange,aPos);
   5492 }
   5493 static FORCEINLINE HRESULT ITfRange_ShiftEndToRange(ITfRange* This,TfEditCookie ec,ITfRange *pRange,TfAnchor aPos) {
   5494     return This->lpVtbl->ShiftEndToRange(This,ec,pRange,aPos);
   5495 }
   5496 static FORCEINLINE HRESULT ITfRange_ShiftStartRegion(ITfRange* This,TfEditCookie ec,TfShiftDir dir,WINBOOL *pfNoRegion) {
   5497     return This->lpVtbl->ShiftStartRegion(This,ec,dir,pfNoRegion);
   5498 }
   5499 static FORCEINLINE HRESULT ITfRange_ShiftEndRegion(ITfRange* This,TfEditCookie ec,TfShiftDir dir,WINBOOL *pfNoRegion) {
   5500     return This->lpVtbl->ShiftEndRegion(This,ec,dir,pfNoRegion);
   5501 }
   5502 static FORCEINLINE HRESULT ITfRange_IsEmpty(ITfRange* This,TfEditCookie ec,WINBOOL *pfEmpty) {
   5503     return This->lpVtbl->IsEmpty(This,ec,pfEmpty);
   5504 }
   5505 static FORCEINLINE HRESULT ITfRange_Collapse(ITfRange* This,TfEditCookie ec,TfAnchor aPos) {
   5506     return This->lpVtbl->Collapse(This,ec,aPos);
   5507 }
   5508 static FORCEINLINE HRESULT ITfRange_IsEqualStart(ITfRange* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,WINBOOL *pfEqual) {
   5509     return This->lpVtbl->IsEqualStart(This,ec,pWith,aPos,pfEqual);
   5510 }
   5511 static FORCEINLINE HRESULT ITfRange_IsEqualEnd(ITfRange* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,WINBOOL *pfEqual) {
   5512     return This->lpVtbl->IsEqualEnd(This,ec,pWith,aPos,pfEqual);
   5513 }
   5514 static FORCEINLINE HRESULT ITfRange_CompareStart(ITfRange* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,LONG *plResult) {
   5515     return This->lpVtbl->CompareStart(This,ec,pWith,aPos,plResult);
   5516 }
   5517 static FORCEINLINE HRESULT ITfRange_CompareEnd(ITfRange* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,LONG *plResult) {
   5518     return This->lpVtbl->CompareEnd(This,ec,pWith,aPos,plResult);
   5519 }
   5520 static FORCEINLINE HRESULT ITfRange_AdjustForInsert(ITfRange* This,TfEditCookie ec,ULONG cchInsert,WINBOOL *pfInsertOk) {
   5521     return This->lpVtbl->AdjustForInsert(This,ec,cchInsert,pfInsertOk);
   5522 }
   5523 static FORCEINLINE HRESULT ITfRange_GetGravity(ITfRange* This,TfGravity *pgStart,TfGravity *pgEnd) {
   5524     return This->lpVtbl->GetGravity(This,pgStart,pgEnd);
   5525 }
   5526 static FORCEINLINE HRESULT ITfRange_SetGravity(ITfRange* This,TfEditCookie ec,TfGravity gStart,TfGravity gEnd) {
   5527     return This->lpVtbl->SetGravity(This,ec,gStart,gEnd);
   5528 }
   5529 static FORCEINLINE HRESULT ITfRange_Clone(ITfRange* This,ITfRange **ppClone) {
   5530     return This->lpVtbl->Clone(This,ppClone);
   5531 }
   5532 static FORCEINLINE HRESULT ITfRange_GetContext(ITfRange* This,ITfContext **ppContext) {
   5533     return This->lpVtbl->GetContext(This,ppContext);
   5534 }
   5535 #endif
   5536 #endif
   5537 
   5538 #endif
   5539 
   5540 HRESULT STDMETHODCALLTYPE ITfRange_GetText_Proxy(
   5541     ITfRange* This,
   5542     TfEditCookie ec,
   5543     DWORD dwFlags,
   5544     WCHAR *pchText,
   5545     ULONG cchMax,
   5546     ULONG *pcch);
   5547 void __RPC_STUB ITfRange_GetText_Stub(
   5548     IRpcStubBuffer* This,
   5549     IRpcChannelBuffer* pRpcChannelBuffer,
   5550     PRPC_MESSAGE pRpcMessage,
   5551     DWORD* pdwStubPhase);
   5552 HRESULT STDMETHODCALLTYPE ITfRange_SetText_Proxy(
   5553     ITfRange* This,
   5554     TfEditCookie ec,
   5555     DWORD dwFlags,
   5556     const WCHAR *pchText,
   5557     LONG cch);
   5558 void __RPC_STUB ITfRange_SetText_Stub(
   5559     IRpcStubBuffer* This,
   5560     IRpcChannelBuffer* pRpcChannelBuffer,
   5561     PRPC_MESSAGE pRpcMessage,
   5562     DWORD* pdwStubPhase);
   5563 HRESULT STDMETHODCALLTYPE ITfRange_GetFormattedText_Proxy(
   5564     ITfRange* This,
   5565     TfEditCookie ec,
   5566     IDataObject **ppDataObject);
   5567 void __RPC_STUB ITfRange_GetFormattedText_Stub(
   5568     IRpcStubBuffer* This,
   5569     IRpcChannelBuffer* pRpcChannelBuffer,
   5570     PRPC_MESSAGE pRpcMessage,
   5571     DWORD* pdwStubPhase);
   5572 HRESULT STDMETHODCALLTYPE ITfRange_GetEmbedded_Proxy(
   5573     ITfRange* This,
   5574     TfEditCookie ec,
   5575     REFGUID rguidService,
   5576     REFIID riid,
   5577     IUnknown **ppunk);
   5578 void __RPC_STUB ITfRange_GetEmbedded_Stub(
   5579     IRpcStubBuffer* This,
   5580     IRpcChannelBuffer* pRpcChannelBuffer,
   5581     PRPC_MESSAGE pRpcMessage,
   5582     DWORD* pdwStubPhase);
   5583 HRESULT STDMETHODCALLTYPE ITfRange_InsertEmbedded_Proxy(
   5584     ITfRange* This,
   5585     TfEditCookie ec,
   5586     DWORD dwFlags,
   5587     IDataObject *pDataObject);
   5588 void __RPC_STUB ITfRange_InsertEmbedded_Stub(
   5589     IRpcStubBuffer* This,
   5590     IRpcChannelBuffer* pRpcChannelBuffer,
   5591     PRPC_MESSAGE pRpcMessage,
   5592     DWORD* pdwStubPhase);
   5593 HRESULT STDMETHODCALLTYPE ITfRange_ShiftStart_Proxy(
   5594     ITfRange* This,
   5595     TfEditCookie ec,
   5596     LONG cchReq,
   5597     LONG *pcch,
   5598     const TF_HALTCOND *pHalt);
   5599 void __RPC_STUB ITfRange_ShiftStart_Stub(
   5600     IRpcStubBuffer* This,
   5601     IRpcChannelBuffer* pRpcChannelBuffer,
   5602     PRPC_MESSAGE pRpcMessage,
   5603     DWORD* pdwStubPhase);
   5604 HRESULT STDMETHODCALLTYPE ITfRange_ShiftEnd_Proxy(
   5605     ITfRange* This,
   5606     TfEditCookie ec,
   5607     LONG cchReq,
   5608     LONG *pcch,
   5609     const TF_HALTCOND *pHalt);
   5610 void __RPC_STUB ITfRange_ShiftEnd_Stub(
   5611     IRpcStubBuffer* This,
   5612     IRpcChannelBuffer* pRpcChannelBuffer,
   5613     PRPC_MESSAGE pRpcMessage,
   5614     DWORD* pdwStubPhase);
   5615 HRESULT STDMETHODCALLTYPE ITfRange_ShiftStartToRange_Proxy(
   5616     ITfRange* This,
   5617     TfEditCookie ec,
   5618     ITfRange *pRange,
   5619     TfAnchor aPos);
   5620 void __RPC_STUB ITfRange_ShiftStartToRange_Stub(
   5621     IRpcStubBuffer* This,
   5622     IRpcChannelBuffer* pRpcChannelBuffer,
   5623     PRPC_MESSAGE pRpcMessage,
   5624     DWORD* pdwStubPhase);
   5625 HRESULT STDMETHODCALLTYPE ITfRange_ShiftEndToRange_Proxy(
   5626     ITfRange* This,
   5627     TfEditCookie ec,
   5628     ITfRange *pRange,
   5629     TfAnchor aPos);
   5630 void __RPC_STUB ITfRange_ShiftEndToRange_Stub(
   5631     IRpcStubBuffer* This,
   5632     IRpcChannelBuffer* pRpcChannelBuffer,
   5633     PRPC_MESSAGE pRpcMessage,
   5634     DWORD* pdwStubPhase);
   5635 HRESULT STDMETHODCALLTYPE ITfRange_ShiftStartRegion_Proxy(
   5636     ITfRange* This,
   5637     TfEditCookie ec,
   5638     TfShiftDir dir,
   5639     WINBOOL *pfNoRegion);
   5640 void __RPC_STUB ITfRange_ShiftStartRegion_Stub(
   5641     IRpcStubBuffer* This,
   5642     IRpcChannelBuffer* pRpcChannelBuffer,
   5643     PRPC_MESSAGE pRpcMessage,
   5644     DWORD* pdwStubPhase);
   5645 HRESULT STDMETHODCALLTYPE ITfRange_ShiftEndRegion_Proxy(
   5646     ITfRange* This,
   5647     TfEditCookie ec,
   5648     TfShiftDir dir,
   5649     WINBOOL *pfNoRegion);
   5650 void __RPC_STUB ITfRange_ShiftEndRegion_Stub(
   5651     IRpcStubBuffer* This,
   5652     IRpcChannelBuffer* pRpcChannelBuffer,
   5653     PRPC_MESSAGE pRpcMessage,
   5654     DWORD* pdwStubPhase);
   5655 HRESULT STDMETHODCALLTYPE ITfRange_IsEmpty_Proxy(
   5656     ITfRange* This,
   5657     TfEditCookie ec,
   5658     WINBOOL *pfEmpty);
   5659 void __RPC_STUB ITfRange_IsEmpty_Stub(
   5660     IRpcStubBuffer* This,
   5661     IRpcChannelBuffer* pRpcChannelBuffer,
   5662     PRPC_MESSAGE pRpcMessage,
   5663     DWORD* pdwStubPhase);
   5664 HRESULT STDMETHODCALLTYPE ITfRange_Collapse_Proxy(
   5665     ITfRange* This,
   5666     TfEditCookie ec,
   5667     TfAnchor aPos);
   5668 void __RPC_STUB ITfRange_Collapse_Stub(
   5669     IRpcStubBuffer* This,
   5670     IRpcChannelBuffer* pRpcChannelBuffer,
   5671     PRPC_MESSAGE pRpcMessage,
   5672     DWORD* pdwStubPhase);
   5673 HRESULT STDMETHODCALLTYPE ITfRange_IsEqualStart_Proxy(
   5674     ITfRange* This,
   5675     TfEditCookie ec,
   5676     ITfRange *pWith,
   5677     TfAnchor aPos,
   5678     WINBOOL *pfEqual);
   5679 void __RPC_STUB ITfRange_IsEqualStart_Stub(
   5680     IRpcStubBuffer* This,
   5681     IRpcChannelBuffer* pRpcChannelBuffer,
   5682     PRPC_MESSAGE pRpcMessage,
   5683     DWORD* pdwStubPhase);
   5684 HRESULT STDMETHODCALLTYPE ITfRange_IsEqualEnd_Proxy(
   5685     ITfRange* This,
   5686     TfEditCookie ec,
   5687     ITfRange *pWith,
   5688     TfAnchor aPos,
   5689     WINBOOL *pfEqual);
   5690 void __RPC_STUB ITfRange_IsEqualEnd_Stub(
   5691     IRpcStubBuffer* This,
   5692     IRpcChannelBuffer* pRpcChannelBuffer,
   5693     PRPC_MESSAGE pRpcMessage,
   5694     DWORD* pdwStubPhase);
   5695 HRESULT STDMETHODCALLTYPE ITfRange_CompareStart_Proxy(
   5696     ITfRange* This,
   5697     TfEditCookie ec,
   5698     ITfRange *pWith,
   5699     TfAnchor aPos,
   5700     LONG *plResult);
   5701 void __RPC_STUB ITfRange_CompareStart_Stub(
   5702     IRpcStubBuffer* This,
   5703     IRpcChannelBuffer* pRpcChannelBuffer,
   5704     PRPC_MESSAGE pRpcMessage,
   5705     DWORD* pdwStubPhase);
   5706 HRESULT STDMETHODCALLTYPE ITfRange_CompareEnd_Proxy(
   5707     ITfRange* This,
   5708     TfEditCookie ec,
   5709     ITfRange *pWith,
   5710     TfAnchor aPos,
   5711     LONG *plResult);
   5712 void __RPC_STUB ITfRange_CompareEnd_Stub(
   5713     IRpcStubBuffer* This,
   5714     IRpcChannelBuffer* pRpcChannelBuffer,
   5715     PRPC_MESSAGE pRpcMessage,
   5716     DWORD* pdwStubPhase);
   5717 HRESULT STDMETHODCALLTYPE ITfRange_AdjustForInsert_Proxy(
   5718     ITfRange* This,
   5719     TfEditCookie ec,
   5720     ULONG cchInsert,
   5721     WINBOOL *pfInsertOk);
   5722 void __RPC_STUB ITfRange_AdjustForInsert_Stub(
   5723     IRpcStubBuffer* This,
   5724     IRpcChannelBuffer* pRpcChannelBuffer,
   5725     PRPC_MESSAGE pRpcMessage,
   5726     DWORD* pdwStubPhase);
   5727 HRESULT STDMETHODCALLTYPE ITfRange_GetGravity_Proxy(
   5728     ITfRange* This,
   5729     TfGravity *pgStart,
   5730     TfGravity *pgEnd);
   5731 void __RPC_STUB ITfRange_GetGravity_Stub(
   5732     IRpcStubBuffer* This,
   5733     IRpcChannelBuffer* pRpcChannelBuffer,
   5734     PRPC_MESSAGE pRpcMessage,
   5735     DWORD* pdwStubPhase);
   5736 HRESULT STDMETHODCALLTYPE ITfRange_SetGravity_Proxy(
   5737     ITfRange* This,
   5738     TfEditCookie ec,
   5739     TfGravity gStart,
   5740     TfGravity gEnd);
   5741 void __RPC_STUB ITfRange_SetGravity_Stub(
   5742     IRpcStubBuffer* This,
   5743     IRpcChannelBuffer* pRpcChannelBuffer,
   5744     PRPC_MESSAGE pRpcMessage,
   5745     DWORD* pdwStubPhase);
   5746 HRESULT STDMETHODCALLTYPE ITfRange_Clone_Proxy(
   5747     ITfRange* This,
   5748     ITfRange **ppClone);
   5749 void __RPC_STUB ITfRange_Clone_Stub(
   5750     IRpcStubBuffer* This,
   5751     IRpcChannelBuffer* pRpcChannelBuffer,
   5752     PRPC_MESSAGE pRpcMessage,
   5753     DWORD* pdwStubPhase);
   5754 HRESULT STDMETHODCALLTYPE ITfRange_GetContext_Proxy(
   5755     ITfRange* This,
   5756     ITfContext **ppContext);
   5757 void __RPC_STUB ITfRange_GetContext_Stub(
   5758     IRpcStubBuffer* This,
   5759     IRpcChannelBuffer* pRpcChannelBuffer,
   5760     PRPC_MESSAGE pRpcMessage,
   5761     DWORD* pdwStubPhase);
   5762 
   5763 #endif  /* __ITfRange_INTERFACE_DEFINED__ */
   5764 
   5765 /*****************************************************************************
   5766  * ITfRangeACP interface
   5767  */
   5768 #ifndef __ITfRangeACP_INTERFACE_DEFINED__
   5769 #define __ITfRangeACP_INTERFACE_DEFINED__
   5770 
   5771 DEFINE_GUID(IID_ITfRangeACP, 0x057a6296, 0x029b, 0x4154, 0xb7,0x9a, 0x0d,0x46,0x1d,0x4e,0xa9,0x4c);
   5772 #if defined(__cplusplus) && !defined(CINTERFACE)
   5773 MIDL_INTERFACE("057a6296-029b-4154-b79a-0d461d4ea94c")
   5774 ITfRangeACP : public ITfRange
   5775 {
   5776     virtual HRESULT STDMETHODCALLTYPE GetExtent(
   5777         LONG *pacpAnchor,
   5778         LONG *pcch) = 0;
   5779 
   5780     virtual HRESULT STDMETHODCALLTYPE SetExtent(
   5781         LONG acpAnchor,
   5782         LONG cch) = 0;
   5783 
   5784 };
   5785 #ifdef __CRT_UUID_DECL
   5786 __CRT_UUID_DECL(ITfRangeACP, 0x057a6296, 0x029b, 0x4154, 0xb7,0x9a, 0x0d,0x46,0x1d,0x4e,0xa9,0x4c)
   5787 #endif
   5788 #else
   5789 typedef struct ITfRangeACPVtbl {
   5790     BEGIN_INTERFACE
   5791 
   5792     /*** IUnknown methods ***/
   5793     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5794         ITfRangeACP* This,
   5795         REFIID riid,
   5796         void **ppvObject);
   5797 
   5798     ULONG (STDMETHODCALLTYPE *AddRef)(
   5799         ITfRangeACP* This);
   5800 
   5801     ULONG (STDMETHODCALLTYPE *Release)(
   5802         ITfRangeACP* This);
   5803 
   5804     /*** ITfRange methods ***/
   5805     HRESULT (STDMETHODCALLTYPE *GetText)(
   5806         ITfRangeACP* This,
   5807         TfEditCookie ec,
   5808         DWORD dwFlags,
   5809         WCHAR *pchText,
   5810         ULONG cchMax,
   5811         ULONG *pcch);
   5812 
   5813     HRESULT (STDMETHODCALLTYPE *SetText)(
   5814         ITfRangeACP* This,
   5815         TfEditCookie ec,
   5816         DWORD dwFlags,
   5817         const WCHAR *pchText,
   5818         LONG cch);
   5819 
   5820     HRESULT (STDMETHODCALLTYPE *GetFormattedText)(
   5821         ITfRangeACP* This,
   5822         TfEditCookie ec,
   5823         IDataObject **ppDataObject);
   5824 
   5825     HRESULT (STDMETHODCALLTYPE *GetEmbedded)(
   5826         ITfRangeACP* This,
   5827         TfEditCookie ec,
   5828         REFGUID rguidService,
   5829         REFIID riid,
   5830         IUnknown **ppunk);
   5831 
   5832     HRESULT (STDMETHODCALLTYPE *InsertEmbedded)(
   5833         ITfRangeACP* This,
   5834         TfEditCookie ec,
   5835         DWORD dwFlags,
   5836         IDataObject *pDataObject);
   5837 
   5838     HRESULT (STDMETHODCALLTYPE *ShiftStart)(
   5839         ITfRangeACP* This,
   5840         TfEditCookie ec,
   5841         LONG cchReq,
   5842         LONG *pcch,
   5843         const TF_HALTCOND *pHalt);
   5844 
   5845     HRESULT (STDMETHODCALLTYPE *ShiftEnd)(
   5846         ITfRangeACP* This,
   5847         TfEditCookie ec,
   5848         LONG cchReq,
   5849         LONG *pcch,
   5850         const TF_HALTCOND *pHalt);
   5851 
   5852     HRESULT (STDMETHODCALLTYPE *ShiftStartToRange)(
   5853         ITfRangeACP* This,
   5854         TfEditCookie ec,
   5855         ITfRange *pRange,
   5856         TfAnchor aPos);
   5857 
   5858     HRESULT (STDMETHODCALLTYPE *ShiftEndToRange)(
   5859         ITfRangeACP* This,
   5860         TfEditCookie ec,
   5861         ITfRange *pRange,
   5862         TfAnchor aPos);
   5863 
   5864     HRESULT (STDMETHODCALLTYPE *ShiftStartRegion)(
   5865         ITfRangeACP* This,
   5866         TfEditCookie ec,
   5867         TfShiftDir dir,
   5868         WINBOOL *pfNoRegion);
   5869 
   5870     HRESULT (STDMETHODCALLTYPE *ShiftEndRegion)(
   5871         ITfRangeACP* This,
   5872         TfEditCookie ec,
   5873         TfShiftDir dir,
   5874         WINBOOL *pfNoRegion);
   5875 
   5876     HRESULT (STDMETHODCALLTYPE *IsEmpty)(
   5877         ITfRangeACP* This,
   5878         TfEditCookie ec,
   5879         WINBOOL *pfEmpty);
   5880 
   5881     HRESULT (STDMETHODCALLTYPE *Collapse)(
   5882         ITfRangeACP* This,
   5883         TfEditCookie ec,
   5884         TfAnchor aPos);
   5885 
   5886     HRESULT (STDMETHODCALLTYPE *IsEqualStart)(
   5887         ITfRangeACP* This,
   5888         TfEditCookie ec,
   5889         ITfRange *pWith,
   5890         TfAnchor aPos,
   5891         WINBOOL *pfEqual);
   5892 
   5893     HRESULT (STDMETHODCALLTYPE *IsEqualEnd)(
   5894         ITfRangeACP* This,
   5895         TfEditCookie ec,
   5896         ITfRange *pWith,
   5897         TfAnchor aPos,
   5898         WINBOOL *pfEqual);
   5899 
   5900     HRESULT (STDMETHODCALLTYPE *CompareStart)(
   5901         ITfRangeACP* This,
   5902         TfEditCookie ec,
   5903         ITfRange *pWith,
   5904         TfAnchor aPos,
   5905         LONG *plResult);
   5906 
   5907     HRESULT (STDMETHODCALLTYPE *CompareEnd)(
   5908         ITfRangeACP* This,
   5909         TfEditCookie ec,
   5910         ITfRange *pWith,
   5911         TfAnchor aPos,
   5912         LONG *plResult);
   5913 
   5914     HRESULT (STDMETHODCALLTYPE *AdjustForInsert)(
   5915         ITfRangeACP* This,
   5916         TfEditCookie ec,
   5917         ULONG cchInsert,
   5918         WINBOOL *pfInsertOk);
   5919 
   5920     HRESULT (STDMETHODCALLTYPE *GetGravity)(
   5921         ITfRangeACP* This,
   5922         TfGravity *pgStart,
   5923         TfGravity *pgEnd);
   5924 
   5925     HRESULT (STDMETHODCALLTYPE *SetGravity)(
   5926         ITfRangeACP* This,
   5927         TfEditCookie ec,
   5928         TfGravity gStart,
   5929         TfGravity gEnd);
   5930 
   5931     HRESULT (STDMETHODCALLTYPE *Clone)(
   5932         ITfRangeACP* This,
   5933         ITfRange **ppClone);
   5934 
   5935     HRESULT (STDMETHODCALLTYPE *GetContext)(
   5936         ITfRangeACP* This,
   5937         ITfContext **ppContext);
   5938 
   5939     /*** ITfRangeACP methods ***/
   5940     HRESULT (STDMETHODCALLTYPE *GetExtent)(
   5941         ITfRangeACP* This,
   5942         LONG *pacpAnchor,
   5943         LONG *pcch);
   5944 
   5945     HRESULT (STDMETHODCALLTYPE *SetExtent)(
   5946         ITfRangeACP* This,
   5947         LONG acpAnchor,
   5948         LONG cch);
   5949 
   5950     END_INTERFACE
   5951 } ITfRangeACPVtbl;
   5952 interface ITfRangeACP {
   5953     CONST_VTBL ITfRangeACPVtbl* lpVtbl;
   5954 };
   5955 
   5956 #ifdef COBJMACROS
   5957 #ifndef WIDL_C_INLINE_WRAPPERS
   5958 /*** IUnknown methods ***/
   5959 #define ITfRangeACP_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5960 #define ITfRangeACP_AddRef(This) (This)->lpVtbl->AddRef(This)
   5961 #define ITfRangeACP_Release(This) (This)->lpVtbl->Release(This)
   5962 /*** ITfRange methods ***/
   5963 #define ITfRangeACP_GetText(This,ec,dwFlags,pchText,cchMax,pcch) (This)->lpVtbl->GetText(This,ec,dwFlags,pchText,cchMax,pcch)
   5964 #define ITfRangeACP_SetText(This,ec,dwFlags,pchText,cch) (This)->lpVtbl->SetText(This,ec,dwFlags,pchText,cch)
   5965 #define ITfRangeACP_GetFormattedText(This,ec,ppDataObject) (This)->lpVtbl->GetFormattedText(This,ec,ppDataObject)
   5966 #define ITfRangeACP_GetEmbedded(This,ec,rguidService,riid,ppunk) (This)->lpVtbl->GetEmbedded(This,ec,rguidService,riid,ppunk)
   5967 #define ITfRangeACP_InsertEmbedded(This,ec,dwFlags,pDataObject) (This)->lpVtbl->InsertEmbedded(This,ec,dwFlags,pDataObject)
   5968 #define ITfRangeACP_ShiftStart(This,ec,cchReq,pcch,pHalt) (This)->lpVtbl->ShiftStart(This,ec,cchReq,pcch,pHalt)
   5969 #define ITfRangeACP_ShiftEnd(This,ec,cchReq,pcch,pHalt) (This)->lpVtbl->ShiftEnd(This,ec,cchReq,pcch,pHalt)
   5970 #define ITfRangeACP_ShiftStartToRange(This,ec,pRange,aPos) (This)->lpVtbl->ShiftStartToRange(This,ec,pRange,aPos)
   5971 #define ITfRangeACP_ShiftEndToRange(This,ec,pRange,aPos) (This)->lpVtbl->ShiftEndToRange(This,ec,pRange,aPos)
   5972 #define ITfRangeACP_ShiftStartRegion(This,ec,dir,pfNoRegion) (This)->lpVtbl->ShiftStartRegion(This,ec,dir,pfNoRegion)
   5973 #define ITfRangeACP_ShiftEndRegion(This,ec,dir,pfNoRegion) (This)->lpVtbl->ShiftEndRegion(This,ec,dir,pfNoRegion)
   5974 #define ITfRangeACP_IsEmpty(This,ec,pfEmpty) (This)->lpVtbl->IsEmpty(This,ec,pfEmpty)
   5975 #define ITfRangeACP_Collapse(This,ec,aPos) (This)->lpVtbl->Collapse(This,ec,aPos)
   5976 #define ITfRangeACP_IsEqualStart(This,ec,pWith,aPos,pfEqual) (This)->lpVtbl->IsEqualStart(This,ec,pWith,aPos,pfEqual)
   5977 #define ITfRangeACP_IsEqualEnd(This,ec,pWith,aPos,pfEqual) (This)->lpVtbl->IsEqualEnd(This,ec,pWith,aPos,pfEqual)
   5978 #define ITfRangeACP_CompareStart(This,ec,pWith,aPos,plResult) (This)->lpVtbl->CompareStart(This,ec,pWith,aPos,plResult)
   5979 #define ITfRangeACP_CompareEnd(This,ec,pWith,aPos,plResult) (This)->lpVtbl->CompareEnd(This,ec,pWith,aPos,plResult)
   5980 #define ITfRangeACP_AdjustForInsert(This,ec,cchInsert,pfInsertOk) (This)->lpVtbl->AdjustForInsert(This,ec,cchInsert,pfInsertOk)
   5981 #define ITfRangeACP_GetGravity(This,pgStart,pgEnd) (This)->lpVtbl->GetGravity(This,pgStart,pgEnd)
   5982 #define ITfRangeACP_SetGravity(This,ec,gStart,gEnd) (This)->lpVtbl->SetGravity(This,ec,gStart,gEnd)
   5983 #define ITfRangeACP_Clone(This,ppClone) (This)->lpVtbl->Clone(This,ppClone)
   5984 #define ITfRangeACP_GetContext(This,ppContext) (This)->lpVtbl->GetContext(This,ppContext)
   5985 /*** ITfRangeACP methods ***/
   5986 #define ITfRangeACP_GetExtent(This,pacpAnchor,pcch) (This)->lpVtbl->GetExtent(This,pacpAnchor,pcch)
   5987 #define ITfRangeACP_SetExtent(This,acpAnchor,cch) (This)->lpVtbl->SetExtent(This,acpAnchor,cch)
   5988 #else
   5989 /*** IUnknown methods ***/
   5990 static FORCEINLINE HRESULT ITfRangeACP_QueryInterface(ITfRangeACP* This,REFIID riid,void **ppvObject) {
   5991     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5992 }
   5993 static FORCEINLINE ULONG ITfRangeACP_AddRef(ITfRangeACP* This) {
   5994     return This->lpVtbl->AddRef(This);
   5995 }
   5996 static FORCEINLINE ULONG ITfRangeACP_Release(ITfRangeACP* This) {
   5997     return This->lpVtbl->Release(This);
   5998 }
   5999 /*** ITfRange methods ***/
   6000 static FORCEINLINE HRESULT ITfRangeACP_GetText(ITfRangeACP* This,TfEditCookie ec,DWORD dwFlags,WCHAR *pchText,ULONG cchMax,ULONG *pcch) {
   6001     return This->lpVtbl->GetText(This,ec,dwFlags,pchText,cchMax,pcch);
   6002 }
   6003 static FORCEINLINE HRESULT ITfRangeACP_SetText(ITfRangeACP* This,TfEditCookie ec,DWORD dwFlags,const WCHAR *pchText,LONG cch) {
   6004     return This->lpVtbl->SetText(This,ec,dwFlags,pchText,cch);
   6005 }
   6006 static FORCEINLINE HRESULT ITfRangeACP_GetFormattedText(ITfRangeACP* This,TfEditCookie ec,IDataObject **ppDataObject) {
   6007     return This->lpVtbl->GetFormattedText(This,ec,ppDataObject);
   6008 }
   6009 static FORCEINLINE HRESULT ITfRangeACP_GetEmbedded(ITfRangeACP* This,TfEditCookie ec,REFGUID rguidService,REFIID riid,IUnknown **ppunk) {
   6010     return This->lpVtbl->GetEmbedded(This,ec,rguidService,riid,ppunk);
   6011 }
   6012 static FORCEINLINE HRESULT ITfRangeACP_InsertEmbedded(ITfRangeACP* This,TfEditCookie ec,DWORD dwFlags,IDataObject *pDataObject) {
   6013     return This->lpVtbl->InsertEmbedded(This,ec,dwFlags,pDataObject);
   6014 }
   6015 static FORCEINLINE HRESULT ITfRangeACP_ShiftStart(ITfRangeACP* This,TfEditCookie ec,LONG cchReq,LONG *pcch,const TF_HALTCOND *pHalt) {
   6016     return This->lpVtbl->ShiftStart(This,ec,cchReq,pcch,pHalt);
   6017 }
   6018 static FORCEINLINE HRESULT ITfRangeACP_ShiftEnd(ITfRangeACP* This,TfEditCookie ec,LONG cchReq,LONG *pcch,const TF_HALTCOND *pHalt) {
   6019     return This->lpVtbl->ShiftEnd(This,ec,cchReq,pcch,pHalt);
   6020 }
   6021 static FORCEINLINE HRESULT ITfRangeACP_ShiftStartToRange(ITfRangeACP* This,TfEditCookie ec,ITfRange *pRange,TfAnchor aPos) {
   6022     return This->lpVtbl->ShiftStartToRange(This,ec,pRange,aPos);
   6023 }
   6024 static FORCEINLINE HRESULT ITfRangeACP_ShiftEndToRange(ITfRangeACP* This,TfEditCookie ec,ITfRange *pRange,TfAnchor aPos) {
   6025     return This->lpVtbl->ShiftEndToRange(This,ec,pRange,aPos);
   6026 }
   6027 static FORCEINLINE HRESULT ITfRangeACP_ShiftStartRegion(ITfRangeACP* This,TfEditCookie ec,TfShiftDir dir,WINBOOL *pfNoRegion) {
   6028     return This->lpVtbl->ShiftStartRegion(This,ec,dir,pfNoRegion);
   6029 }
   6030 static FORCEINLINE HRESULT ITfRangeACP_ShiftEndRegion(ITfRangeACP* This,TfEditCookie ec,TfShiftDir dir,WINBOOL *pfNoRegion) {
   6031     return This->lpVtbl->ShiftEndRegion(This,ec,dir,pfNoRegion);
   6032 }
   6033 static FORCEINLINE HRESULT ITfRangeACP_IsEmpty(ITfRangeACP* This,TfEditCookie ec,WINBOOL *pfEmpty) {
   6034     return This->lpVtbl->IsEmpty(This,ec,pfEmpty);
   6035 }
   6036 static FORCEINLINE HRESULT ITfRangeACP_Collapse(ITfRangeACP* This,TfEditCookie ec,TfAnchor aPos) {
   6037     return This->lpVtbl->Collapse(This,ec,aPos);
   6038 }
   6039 static FORCEINLINE HRESULT ITfRangeACP_IsEqualStart(ITfRangeACP* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,WINBOOL *pfEqual) {
   6040     return This->lpVtbl->IsEqualStart(This,ec,pWith,aPos,pfEqual);
   6041 }
   6042 static FORCEINLINE HRESULT ITfRangeACP_IsEqualEnd(ITfRangeACP* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,WINBOOL *pfEqual) {
   6043     return This->lpVtbl->IsEqualEnd(This,ec,pWith,aPos,pfEqual);
   6044 }
   6045 static FORCEINLINE HRESULT ITfRangeACP_CompareStart(ITfRangeACP* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,LONG *plResult) {
   6046     return This->lpVtbl->CompareStart(This,ec,pWith,aPos,plResult);
   6047 }
   6048 static FORCEINLINE HRESULT ITfRangeACP_CompareEnd(ITfRangeACP* This,TfEditCookie ec,ITfRange *pWith,TfAnchor aPos,LONG *plResult) {
   6049     return This->lpVtbl->CompareEnd(This,ec,pWith,aPos,plResult);
   6050 }
   6051 static FORCEINLINE HRESULT ITfRangeACP_AdjustForInsert(ITfRangeACP* This,TfEditCookie ec,ULONG cchInsert,WINBOOL *pfInsertOk) {
   6052     return This->lpVtbl->AdjustForInsert(This,ec,cchInsert,pfInsertOk);
   6053 }
   6054 static FORCEINLINE HRESULT ITfRangeACP_GetGravity(ITfRangeACP* This,TfGravity *pgStart,TfGravity *pgEnd) {
   6055     return This->lpVtbl->GetGravity(This,pgStart,pgEnd);
   6056 }
   6057 static FORCEINLINE HRESULT ITfRangeACP_SetGravity(ITfRangeACP* This,TfEditCookie ec,TfGravity gStart,TfGravity gEnd) {
   6058     return This->lpVtbl->SetGravity(This,ec,gStart,gEnd);
   6059 }
   6060 static FORCEINLINE HRESULT ITfRangeACP_Clone(ITfRangeACP* This,ITfRange **ppClone) {
   6061     return This->lpVtbl->Clone(This,ppClone);
   6062 }
   6063 static FORCEINLINE HRESULT ITfRangeACP_GetContext(ITfRangeACP* This,ITfContext **ppContext) {
   6064     return This->lpVtbl->GetContext(This,ppContext);
   6065 }
   6066 /*** ITfRangeACP methods ***/
   6067 static FORCEINLINE HRESULT ITfRangeACP_GetExtent(ITfRangeACP* This,LONG *pacpAnchor,LONG *pcch) {
   6068     return This->lpVtbl->GetExtent(This,pacpAnchor,pcch);
   6069 }
   6070 static FORCEINLINE HRESULT ITfRangeACP_SetExtent(ITfRangeACP* This,LONG acpAnchor,LONG cch) {
   6071     return This->lpVtbl->SetExtent(This,acpAnchor,cch);
   6072 }
   6073 #endif
   6074 #endif
   6075 
   6076 #endif
   6077 
   6078 HRESULT STDMETHODCALLTYPE ITfRangeACP_GetExtent_Proxy(
   6079     ITfRangeACP* This,
   6080     LONG *pacpAnchor,
   6081     LONG *pcch);
   6082 void __RPC_STUB ITfRangeACP_GetExtent_Stub(
   6083     IRpcStubBuffer* This,
   6084     IRpcChannelBuffer* pRpcChannelBuffer,
   6085     PRPC_MESSAGE pRpcMessage,
   6086     DWORD* pdwStubPhase);
   6087 HRESULT STDMETHODCALLTYPE ITfRangeACP_SetExtent_Proxy(
   6088     ITfRangeACP* This,
   6089     LONG acpAnchor,
   6090     LONG cch);
   6091 void __RPC_STUB ITfRangeACP_SetExtent_Stub(
   6092     IRpcStubBuffer* This,
   6093     IRpcChannelBuffer* pRpcChannelBuffer,
   6094     PRPC_MESSAGE pRpcMessage,
   6095     DWORD* pdwStubPhase);
   6096 
   6097 #endif  /* __ITfRangeACP_INTERFACE_DEFINED__ */
   6098 
   6099 /*****************************************************************************
   6100  * ITfInsertAtSelection interface
   6101  */
   6102 #ifndef __ITfInsertAtSelection_INTERFACE_DEFINED__
   6103 #define __ITfInsertAtSelection_INTERFACE_DEFINED__
   6104 
   6105 #define TF_IAS_NOQUERY (0x1)
   6106 
   6107 #define TF_IAS_QUERYONLY (0x2)
   6108 
   6109 #define TF_IAS_NO_DEFAULT_COMPOSITION (0x80000000)
   6110 
   6111 DEFINE_GUID(IID_ITfInsertAtSelection, 0x55ce16ba, 0x3014, 0x41c1, 0x9c,0xeb, 0xfa,0xde,0x14,0x46,0xac,0x6c);
   6112 #if defined(__cplusplus) && !defined(CINTERFACE)
   6113 MIDL_INTERFACE("55ce16ba-3014-41c1-9ceb-fade1446ac6c")
   6114 ITfInsertAtSelection : public IUnknown
   6115 {
   6116     virtual HRESULT STDMETHODCALLTYPE InsertTextAtSelection(
   6117         TfEditCookie ec,
   6118         DWORD dwFlags,
   6119         const WCHAR *pchText,
   6120         LONG cch,
   6121         ITfRange **ppRange) = 0;
   6122 
   6123     virtual HRESULT STDMETHODCALLTYPE InsertEmbeddedAtSelection(
   6124         TfEditCookie ec,
   6125         DWORD dwFlags,
   6126         IDataObject *pDataObject,
   6127         ITfRange **ppRange) = 0;
   6128 
   6129 };
   6130 #ifdef __CRT_UUID_DECL
   6131 __CRT_UUID_DECL(ITfInsertAtSelection, 0x55ce16ba, 0x3014, 0x41c1, 0x9c,0xeb, 0xfa,0xde,0x14,0x46,0xac,0x6c)
   6132 #endif
   6133 #else
   6134 typedef struct ITfInsertAtSelectionVtbl {
   6135     BEGIN_INTERFACE
   6136 
   6137     /*** IUnknown methods ***/
   6138     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6139         ITfInsertAtSelection* This,
   6140         REFIID riid,
   6141         void **ppvObject);
   6142 
   6143     ULONG (STDMETHODCALLTYPE *AddRef)(
   6144         ITfInsertAtSelection* This);
   6145 
   6146     ULONG (STDMETHODCALLTYPE *Release)(
   6147         ITfInsertAtSelection* This);
   6148 
   6149     /*** ITfInsertAtSelection methods ***/
   6150     HRESULT (STDMETHODCALLTYPE *InsertTextAtSelection)(
   6151         ITfInsertAtSelection* This,
   6152         TfEditCookie ec,
   6153         DWORD dwFlags,
   6154         const WCHAR *pchText,
   6155         LONG cch,
   6156         ITfRange **ppRange);
   6157 
   6158     HRESULT (STDMETHODCALLTYPE *InsertEmbeddedAtSelection)(
   6159         ITfInsertAtSelection* This,
   6160         TfEditCookie ec,
   6161         DWORD dwFlags,
   6162         IDataObject *pDataObject,
   6163         ITfRange **ppRange);
   6164 
   6165     END_INTERFACE
   6166 } ITfInsertAtSelectionVtbl;
   6167 interface ITfInsertAtSelection {
   6168     CONST_VTBL ITfInsertAtSelectionVtbl* lpVtbl;
   6169 };
   6170 
   6171 #ifdef COBJMACROS
   6172 #ifndef WIDL_C_INLINE_WRAPPERS
   6173 /*** IUnknown methods ***/
   6174 #define ITfInsertAtSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6175 #define ITfInsertAtSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
   6176 #define ITfInsertAtSelection_Release(This) (This)->lpVtbl->Release(This)
   6177 /*** ITfInsertAtSelection methods ***/
   6178 #define ITfInsertAtSelection_InsertTextAtSelection(This,ec,dwFlags,pchText,cch,ppRange) (This)->lpVtbl->InsertTextAtSelection(This,ec,dwFlags,pchText,cch,ppRange)
   6179 #define ITfInsertAtSelection_InsertEmbeddedAtSelection(This,ec,dwFlags,pDataObject,ppRange) (This)->lpVtbl->InsertEmbeddedAtSelection(This,ec,dwFlags,pDataObject,ppRange)
   6180 #else
   6181 /*** IUnknown methods ***/
   6182 static FORCEINLINE HRESULT ITfInsertAtSelection_QueryInterface(ITfInsertAtSelection* This,REFIID riid,void **ppvObject) {
   6183     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6184 }
   6185 static FORCEINLINE ULONG ITfInsertAtSelection_AddRef(ITfInsertAtSelection* This) {
   6186     return This->lpVtbl->AddRef(This);
   6187 }
   6188 static FORCEINLINE ULONG ITfInsertAtSelection_Release(ITfInsertAtSelection* This) {
   6189     return This->lpVtbl->Release(This);
   6190 }
   6191 /*** ITfInsertAtSelection methods ***/
   6192 static FORCEINLINE HRESULT ITfInsertAtSelection_InsertTextAtSelection(ITfInsertAtSelection* This,TfEditCookie ec,DWORD dwFlags,const WCHAR *pchText,LONG cch,ITfRange **ppRange) {
   6193     return This->lpVtbl->InsertTextAtSelection(This,ec,dwFlags,pchText,cch,ppRange);
   6194 }
   6195 static FORCEINLINE HRESULT ITfInsertAtSelection_InsertEmbeddedAtSelection(ITfInsertAtSelection* This,TfEditCookie ec,DWORD dwFlags,IDataObject *pDataObject,ITfRange **ppRange) {
   6196     return This->lpVtbl->InsertEmbeddedAtSelection(This,ec,dwFlags,pDataObject,ppRange);
   6197 }
   6198 #endif
   6199 #endif
   6200 
   6201 #endif
   6202 
   6203 HRESULT STDMETHODCALLTYPE ITfInsertAtSelection_InsertTextAtSelection_Proxy(
   6204     ITfInsertAtSelection* This,
   6205     TfEditCookie ec,
   6206     DWORD dwFlags,
   6207     const WCHAR *pchText,
   6208     LONG cch,
   6209     ITfRange **ppRange);
   6210 void __RPC_STUB ITfInsertAtSelection_InsertTextAtSelection_Stub(
   6211     IRpcStubBuffer* This,
   6212     IRpcChannelBuffer* pRpcChannelBuffer,
   6213     PRPC_MESSAGE pRpcMessage,
   6214     DWORD* pdwStubPhase);
   6215 HRESULT STDMETHODCALLTYPE ITfInsertAtSelection_InsertEmbeddedAtSelection_Proxy(
   6216     ITfInsertAtSelection* This,
   6217     TfEditCookie ec,
   6218     DWORD dwFlags,
   6219     IDataObject *pDataObject,
   6220     ITfRange **ppRange);
   6221 void __RPC_STUB ITfInsertAtSelection_InsertEmbeddedAtSelection_Stub(
   6222     IRpcStubBuffer* This,
   6223     IRpcChannelBuffer* pRpcChannelBuffer,
   6224     PRPC_MESSAGE pRpcMessage,
   6225     DWORD* pdwStubPhase);
   6226 
   6227 #endif  /* __ITfInsertAtSelection_INTERFACE_DEFINED__ */
   6228 
   6229 /*****************************************************************************
   6230  * ITfPropertyStore interface
   6231  */
   6232 #ifndef __ITfPropertyStore_INTERFACE_DEFINED__
   6233 #define __ITfPropertyStore_INTERFACE_DEFINED__
   6234 
   6235 #define TF_TU_CORRECTION (0x1)
   6236 
   6237 DEFINE_GUID(IID_ITfPropertyStore, 0x6834b120, 0x88cb, 0x11d2, 0xbf,0x45, 0x00,0x10,0x5a,0x27,0x99,0xb5);
   6238 #if defined(__cplusplus) && !defined(CINTERFACE)
   6239 MIDL_INTERFACE("6834b120-88cb-11d2-bf45-00105a2799b5")
   6240 ITfPropertyStore : public IUnknown
   6241 {
   6242     virtual HRESULT STDMETHODCALLTYPE GetType(
   6243         GUID *pguid) = 0;
   6244 
   6245     virtual HRESULT STDMETHODCALLTYPE GetDataType(
   6246         DWORD *pdwReserved) = 0;
   6247 
   6248     virtual HRESULT STDMETHODCALLTYPE GetData(
   6249         VARIANT *pvarValue) = 0;
   6250 
   6251     virtual HRESULT STDMETHODCALLTYPE OnTextUpdated(
   6252         DWORD dwFlags,
   6253         ITfRange *pRangeNew,
   6254         WINBOOL *pfAccept) = 0;
   6255 
   6256     virtual HRESULT STDMETHODCALLTYPE Shrink(
   6257         ITfRange *pRangeNew,
   6258         WINBOOL *pfFree) = 0;
   6259 
   6260     virtual HRESULT STDMETHODCALLTYPE Divide(
   6261         ITfRange *pRangeThis,
   6262         ITfRange *pRangeNew,
   6263         ITfPropertyStore **ppPropStore) = 0;
   6264 
   6265     virtual HRESULT STDMETHODCALLTYPE Clone(
   6266         ITfPropertyStore **pPropStore) = 0;
   6267 
   6268     virtual HRESULT STDMETHODCALLTYPE GetPropertyRangeCreator(
   6269         CLSID *pclsid) = 0;
   6270 
   6271     virtual HRESULT STDMETHODCALLTYPE Serialize(
   6272         IStream *pStream,
   6273         ULONG *pcb) = 0;
   6274 
   6275 };
   6276 #ifdef __CRT_UUID_DECL
   6277 __CRT_UUID_DECL(ITfPropertyStore, 0x6834b120, 0x88cb, 0x11d2, 0xbf,0x45, 0x00,0x10,0x5a,0x27,0x99,0xb5)
   6278 #endif
   6279 #else
   6280 typedef struct ITfPropertyStoreVtbl {
   6281     BEGIN_INTERFACE
   6282 
   6283     /*** IUnknown methods ***/
   6284     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6285         ITfPropertyStore* This,
   6286         REFIID riid,
   6287         void **ppvObject);
   6288 
   6289     ULONG (STDMETHODCALLTYPE *AddRef)(
   6290         ITfPropertyStore* This);
   6291 
   6292     ULONG (STDMETHODCALLTYPE *Release)(
   6293         ITfPropertyStore* This);
   6294 
   6295     /*** ITfPropertyStore methods ***/
   6296     HRESULT (STDMETHODCALLTYPE *GetType)(
   6297         ITfPropertyStore* This,
   6298         GUID *pguid);
   6299 
   6300     HRESULT (STDMETHODCALLTYPE *GetDataType)(
   6301         ITfPropertyStore* This,
   6302         DWORD *pdwReserved);
   6303 
   6304     HRESULT (STDMETHODCALLTYPE *GetData)(
   6305         ITfPropertyStore* This,
   6306         VARIANT *pvarValue);
   6307 
   6308     HRESULT (STDMETHODCALLTYPE *OnTextUpdated)(
   6309         ITfPropertyStore* This,
   6310         DWORD dwFlags,
   6311         ITfRange *pRangeNew,
   6312         WINBOOL *pfAccept);
   6313 
   6314     HRESULT (STDMETHODCALLTYPE *Shrink)(
   6315         ITfPropertyStore* This,
   6316         ITfRange *pRangeNew,
   6317         WINBOOL *pfFree);
   6318 
   6319     HRESULT (STDMETHODCALLTYPE *Divide)(
   6320         ITfPropertyStore* This,
   6321         ITfRange *pRangeThis,
   6322         ITfRange *pRangeNew,
   6323         ITfPropertyStore **ppPropStore);
   6324 
   6325     HRESULT (STDMETHODCALLTYPE *Clone)(
   6326         ITfPropertyStore* This,
   6327         ITfPropertyStore **pPropStore);
   6328 
   6329     HRESULT (STDMETHODCALLTYPE *GetPropertyRangeCreator)(
   6330         ITfPropertyStore* This,
   6331         CLSID *pclsid);
   6332 
   6333     HRESULT (STDMETHODCALLTYPE *Serialize)(
   6334         ITfPropertyStore*