sdl

FORK: Simple Directmedia Layer
git clone https://git.neptards.moe/neptards/sdl.git
Log | Files | Refs

SDL_msctf.h (11531B)


      1 /*
      2   Simple DirectMedia Layer
      3   Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
      4 
      5   This software is provided 'as-is', without any express or implied
      6   warranty.  In no event will the authors be held liable for any damages
      7   arising from the use of this software.
      8 
      9   Permission is granted to anyone to use this software for any purpose,
     10   including commercial applications, and to alter it and redistribute it
     11   freely, subject to the following restrictions:
     12 
     13   1. The origin of this software must not be misrepresented; you must not
     14      claim that you wrote the original software. If you use this software
     15      in a product, an acknowledgment in the product documentation would be
     16      appreciated but is not required.
     17   2. Altered source versions must be plainly marked as such, and must not be
     18      misrepresented as being the original software.
     19   3. This notice may not be removed or altered from any source distribution.
     20 */
     21 
     22 #ifndef SDL_msctf_h_
     23 #define SDL_msctf_h_
     24 
     25 #include <unknwn.h>
     26 
     27 #define     TF_INVALID_COOKIE               (0xffffffff)
     28 #define     TF_IPSINK_FLAG_ACTIVE           0x0001
     29 #define     TF_TMAE_UIELEMENTENABLEDONLY    0x00000004
     30 
     31 typedef struct ITfThreadMgr ITfThreadMgr;
     32 typedef struct ITfDocumentMgr ITfDocumentMgr;
     33 typedef struct ITfClientId ITfClientId;
     34 
     35 typedef struct IEnumTfDocumentMgrs IEnumTfDocumentMgrs;
     36 typedef struct IEnumTfFunctionProviders IEnumTfFunctionProviders;
     37 typedef struct ITfFunctionProvider ITfFunctionProvider;
     38 typedef struct ITfCompartmentMgr ITfCompartmentMgr;
     39 typedef struct ITfContext ITfContext;
     40 typedef struct IEnumTfContexts IEnumTfContexts;
     41 typedef struct ITfUIElementSink ITfUIElementSink;
     42 typedef struct ITfUIElement ITfUIElement;
     43 typedef struct ITfUIElementMgr ITfUIElementMgr;
     44 typedef struct IEnumTfUIElements IEnumTfUIElements;
     45 typedef struct ITfThreadMgrEx ITfThreadMgrEx;
     46 typedef struct ITfCandidateListUIElement ITfCandidateListUIElement;
     47 typedef struct ITfReadingInformationUIElement ITfReadingInformationUIElement;
     48 typedef struct ITfInputProcessorProfileActivationSink ITfInputProcessorProfileActivationSink;
     49 typedef struct ITfSource ITfSource;
     50 
     51 typedef DWORD TfClientId;
     52 typedef DWORD TfEditCookie;
     53 
     54 typedef struct ITfThreadMgrVtbl
     55 {
     56     HRESULT (STDMETHODCALLTYPE *QueryInterface)(ITfThreadMgr *, REFIID, void **);
     57     ULONG (STDMETHODCALLTYPE *AddRef)(ITfThreadMgr *);
     58     ULONG (STDMETHODCALLTYPE *Release)(ITfThreadMgr *);
     59     HRESULT (STDMETHODCALLTYPE *Activate)(ITfThreadMgr *, TfClientId *);
     60     HRESULT (STDMETHODCALLTYPE *Deactivate)(ITfThreadMgr *);
     61     HRESULT (STDMETHODCALLTYPE *CreateDocumentMgr)(ITfThreadMgr *);
     62     HRESULT (STDMETHODCALLTYPE *EnumDocumentMgrs)(ITfThreadMgr *, IEnumTfDocumentMgrs **);
     63     HRESULT (STDMETHODCALLTYPE *GetFocus)(ITfThreadMgr *, ITfDocumentMgr **);
     64     HRESULT (STDMETHODCALLTYPE *SetFocus)(ITfThreadMgr *, ITfDocumentMgr *);
     65     HRESULT (STDMETHODCALLTYPE *AssociateFocus)(ITfThreadMgr *, HWND, ITfDocumentMgr *, ITfDocumentMgr **);
     66     HRESULT (STDMETHODCALLTYPE *IsThreadFocus)(ITfThreadMgr *, BOOL *);
     67     HRESULT (STDMETHODCALLTYPE *GetFunctionProvider)(ITfThreadMgr *, REFCLSID, ITfFunctionProvider **);
     68     HRESULT (STDMETHODCALLTYPE *EnumFunctionProviders)(ITfThreadMgr *, IEnumTfFunctionProviders **);
     69     HRESULT (STDMETHODCALLTYPE *GetGlobalCompartment)(ITfThreadMgr *, ITfCompartmentMgr **);
     70 } ITfThreadMgrVtbl;
     71 
     72 struct ITfThreadMgr
     73 {
     74     const struct ITfThreadMgrVtbl *lpVtbl;
     75 };
     76 
     77 typedef struct ITfThreadMgrExVtbl
     78 {
     79     HRESULT (STDMETHODCALLTYPE *QueryInterface)(ITfThreadMgrEx *, REFIID, void **);
     80     ULONG (STDMETHODCALLTYPE *AddRef)(ITfThreadMgrEx *);
     81     ULONG (STDMETHODCALLTYPE *Release)(ITfThreadMgrEx *);
     82     HRESULT (STDMETHODCALLTYPE *Activate)(ITfThreadMgrEx *, TfClientId *);
     83     HRESULT (STDMETHODCALLTYPE *Deactivate)(ITfThreadMgrEx *);
     84     HRESULT (STDMETHODCALLTYPE *CreateDocumentMgr)(ITfThreadMgrEx *, ITfDocumentMgr **);
     85     HRESULT (STDMETHODCALLTYPE *EnumDocumentMgrs)(ITfThreadMgrEx *, IEnumTfDocumentMgrs **);
     86     HRESULT (STDMETHODCALLTYPE *GetFocus)(ITfThreadMgrEx *, ITfDocumentMgr **);
     87     HRESULT (STDMETHODCALLTYPE *SetFocus)(ITfThreadMgrEx *, ITfDocumentMgr *);
     88     HRESULT (STDMETHODCALLTYPE *AssociateFocus)(ITfThreadMgrEx *, ITfDocumentMgr *, ITfDocumentMgr **);
     89     HRESULT (STDMETHODCALLTYPE *IsThreadFocus)(ITfThreadMgrEx *, BOOL *);
     90     HRESULT (STDMETHODCALLTYPE *GetFunctionProvider)(ITfThreadMgrEx *, REFCLSID, ITfFunctionProvider **);
     91     HRESULT (STDMETHODCALLTYPE *EnumFunctionProviders)(ITfThreadMgrEx *, IEnumTfFunctionProviders **);
     92     HRESULT (STDMETHODCALLTYPE *GetGlobalCompartment)(ITfThreadMgrEx *, ITfCompartmentMgr **);
     93     HRESULT (STDMETHODCALLTYPE *ActivateEx)(ITfThreadMgrEx *, TfClientId *, DWORD);
     94     HRESULT (STDMETHODCALLTYPE *GetActiveFlags)(ITfThreadMgrEx *, DWORD *);
     95 } ITfThreadMgrExVtbl;
     96 
     97 struct ITfThreadMgrEx
     98 {
     99     const struct ITfThreadMgrExVtbl *lpVtbl;
    100 };
    101 
    102 typedef struct ITfDocumentMgrVtbl
    103 {
    104     HRESULT (STDMETHODCALLTYPE *QueryInterface)(ITfDocumentMgr *, REFIID, void **);
    105     ULONG (STDMETHODCALLTYPE *AddRef)(ITfDocumentMgr *);
    106     ULONG (STDMETHODCALLTYPE *Release)(ITfDocumentMgr *);
    107     HRESULT (STDMETHODCALLTYPE *CreateContext)(ITfDocumentMgr *, TfClientId, DWORD, IUnknown *, ITfContext **, TfEditCookie *);
    108     HRESULT (STDMETHODCALLTYPE *Push)(ITfDocumentMgr *, ITfContext *);
    109     HRESULT (STDMETHODCALLTYPE *Pop)(ITfDocumentMgr *);
    110     HRESULT (STDMETHODCALLTYPE *GetTop)(ITfDocumentMgr *, ITfContext **);
    111     HRESULT (STDMETHODCALLTYPE *GetBase)(ITfDocumentMgr *, ITfContext **);
    112     HRESULT (STDMETHODCALLTYPE *EnumContexts)(ITfDocumentMgr *, IEnumTfContexts **);
    113 } ITfDocumentMgrVtbl;
    114 
    115 struct ITfDocumentMgr
    116 {
    117     const struct ITfDocumentMgrVtbl *lpVtbl;
    118 };
    119 
    120 typedef struct ITfUIElementSinkVtbl
    121 {
    122     HRESULT (STDMETHODCALLTYPE *QueryInterface)(ITfUIElementSink *, REFIID, void **);
    123     ULONG (STDMETHODCALLTYPE *AddRef)(ITfUIElementSink *);
    124     ULONG (STDMETHODCALLTYPE *Release)(ITfUIElementSink *);
    125     HRESULT (STDMETHODCALLTYPE *BeginUIElement)(ITfUIElementSink *, DWORD, BOOL *);
    126     HRESULT (STDMETHODCALLTYPE *UpdateUIElement)(ITfUIElementSink *, DWORD);
    127     HRESULT (STDMETHODCALLTYPE *EndUIElement)(ITfUIElementSink *, DWORD);
    128 } ITfUIElementSinkVtbl;
    129 
    130 struct ITfUIElementSink
    131 {
    132     const struct ITfUIElementSinkVtbl *lpVtbl;
    133 };
    134 
    135 typedef struct ITfUIElementMgrVtbl
    136 {
    137     HRESULT (STDMETHODCALLTYPE *QueryInterface)(ITfUIElementMgr *, REFIID, void **);
    138     ULONG (STDMETHODCALLTYPE *AddRef)(ITfUIElementMgr *);
    139     ULONG (STDMETHODCALLTYPE *Release)(ITfUIElementMgr *);
    140     HRESULT (STDMETHODCALLTYPE *BeginUIElement)(ITfUIElementMgr *, ITfUIElement *, BOOL *, DWORD *);
    141     HRESULT (STDMETHODCALLTYPE *UpdateUIElement)(ITfUIElementMgr *, DWORD);
    142     HRESULT (STDMETHODCALLTYPE *EndUIElement)(ITfUIElementMgr *, DWORD);
    143     HRESULT (STDMETHODCALLTYPE *GetUIElement)(ITfUIElementMgr *, DWORD, ITfUIElement **);
    144     HRESULT (STDMETHODCALLTYPE *EnumUIElements)(ITfUIElementMgr *, IEnumTfUIElements **);
    145 } ITfUIElementMgrVtbl;
    146 
    147 struct ITfUIElementMgr
    148 {
    149     const struct ITfUIElementMgrVtbl *lpVtbl;
    150 };
    151 
    152 typedef struct ITfCandidateListUIElementVtbl
    153 {
    154     HRESULT (STDMETHODCALLTYPE *QueryInterface)(ITfCandidateListUIElement *, REFIID, void **);
    155     ULONG (STDMETHODCALLTYPE *AddRef)(ITfCandidateListUIElement *);
    156     ULONG (STDMETHODCALLTYPE *Release)(ITfCandidateListUIElement *);
    157     HRESULT (STDMETHODCALLTYPE *GetDescription)(ITfCandidateListUIElement *, BSTR *);
    158     HRESULT (STDMETHODCALLTYPE *GetGUID)(ITfCandidateListUIElement *, GUID *);
    159     HRESULT (STDMETHODCALLTYPE *Show)(ITfCandidateListUIElement *, BOOL);
    160     HRESULT (STDMETHODCALLTYPE *IsShown)(ITfCandidateListUIElement *, BOOL *);
    161     HRESULT (STDMETHODCALLTYPE *GetUpdatedFlags)(ITfCandidateListUIElement *, DWORD *);
    162     HRESULT (STDMETHODCALLTYPE *GetDocumentMgr)(ITfCandidateListUIElement *, ITfDocumentMgr **);
    163     HRESULT (STDMETHODCALLTYPE *GetCount)(ITfCandidateListUIElement *, UINT *);
    164     HRESULT (STDMETHODCALLTYPE *GetSelection)(ITfCandidateListUIElement *, UINT *);
    165     HRESULT (STDMETHODCALLTYPE *GetString)(ITfCandidateListUIElement *, UINT, BSTR *);
    166     HRESULT (STDMETHODCALLTYPE *GetPageIndex)(ITfCandidateListUIElement *, UINT *, UINT, UINT *);
    167     HRESULT (STDMETHODCALLTYPE *SetPageIndex)(ITfCandidateListUIElement *, UINT *, UINT);
    168     HRESULT (STDMETHODCALLTYPE *GetCurrentPage)(ITfCandidateListUIElement *, UINT *);
    169 } ITfCandidateListUIElementVtbl;
    170 
    171 struct ITfCandidateListUIElement
    172 {
    173     const struct ITfCandidateListUIElementVtbl *lpVtbl;
    174 };
    175 
    176 typedef struct ITfReadingInformationUIElementVtbl
    177 {
    178     HRESULT (STDMETHODCALLTYPE *QueryInterface)(ITfReadingInformationUIElement *, REFIID, void **);
    179     ULONG (STDMETHODCALLTYPE *AddRef)(ITfReadingInformationUIElement *);
    180     ULONG (STDMETHODCALLTYPE *Release)(ITfReadingInformationUIElement *);
    181     HRESULT (STDMETHODCALLTYPE *GetDescription)(ITfReadingInformationUIElement *, BSTR *);
    182     HRESULT (STDMETHODCALLTYPE *GetGUID)(ITfReadingInformationUIElement *, GUID *);
    183     HRESULT (STDMETHODCALLTYPE *Show)(ITfReadingInformationUIElement *, BOOL);
    184     HRESULT (STDMETHODCALLTYPE *IsShown)(ITfReadingInformationUIElement *, BOOL *);
    185     HRESULT (STDMETHODCALLTYPE *GetUpdatedFlags)(ITfReadingInformationUIElement *, DWORD *);
    186     HRESULT (STDMETHODCALLTYPE *GetContext)(ITfReadingInformationUIElement *, ITfContext **);
    187     HRESULT (STDMETHODCALLTYPE *GetString)(ITfReadingInformationUIElement *, BSTR *);
    188     HRESULT (STDMETHODCALLTYPE *GetMaxReadingStringLength)(ITfReadingInformationUIElement *, UINT *);
    189     HRESULT (STDMETHODCALLTYPE *GetErrorIndex)(ITfReadingInformationUIElement *, UINT *);
    190     HRESULT (STDMETHODCALLTYPE *IsVerticalOrderPreferred)(ITfReadingInformationUIElement *, BOOL *);
    191 } ITfReadingInformationUIElementVtbl;
    192 
    193 struct ITfReadingInformationUIElement
    194 {
    195     const struct ITfReadingInformationUIElementVtbl *lpVtbl;
    196 };
    197 
    198 typedef struct ITfUIElementVtbl
    199 {
    200     HRESULT (STDMETHODCALLTYPE *QueryInterface)(ITfUIElement *, REFIID, void **);
    201     ULONG (STDMETHODCALLTYPE *AddRef)(ITfUIElement *);
    202     ULONG (STDMETHODCALLTYPE *Release)(ITfUIElement *);
    203     HRESULT (STDMETHODCALLTYPE *GetDescription)(ITfUIElement *, BSTR *);
    204     HRESULT (STDMETHODCALLTYPE *GetGUID)(ITfUIElement *, GUID *);
    205     HRESULT (STDMETHODCALLTYPE *Show)(ITfUIElement *, BOOL);
    206     HRESULT (STDMETHODCALLTYPE *IsShown)(ITfUIElement *, BOOL *);
    207 } ITfUIElementVtbl;
    208 
    209 struct ITfUIElement
    210 {
    211     const struct ITfUIElementVtbl *lpVtbl;
    212 };
    213 
    214 typedef struct ITfInputProcessorProfileActivationSinkVtbl
    215 {
    216     HRESULT (STDMETHODCALLTYPE *QueryInterface)(ITfInputProcessorProfileActivationSink *, REFIID, void **);
    217     ULONG (STDMETHODCALLTYPE *AddRef)(ITfInputProcessorProfileActivationSink *);
    218     ULONG (STDMETHODCALLTYPE *Release)(ITfInputProcessorProfileActivationSink *);
    219     HRESULT (STDMETHODCALLTYPE *OnActivated)(ITfInputProcessorProfileActivationSink *, DWORD, LANGID, REFCLSID, REFGUID, REFGUID, HKL, DWORD);
    220 
    221 } ITfInputProcessorProfileActivationSinkVtbl;
    222 
    223 struct ITfInputProcessorProfileActivationSink
    224 {
    225     const struct ITfInputProcessorProfileActivationSinkVtbl *lpVtbl;
    226 };
    227 
    228 typedef struct ITfSourceVtbl
    229 {
    230     HRESULT (STDMETHODCALLTYPE *QueryInterface)(ITfSource *, REFIID, void **);
    231     ULONG (STDMETHODCALLTYPE *AddRef)(ITfSource *);
    232     ULONG (STDMETHODCALLTYPE *Release)(ITfSource *);
    233     HRESULT (STDMETHODCALLTYPE *AdviseSink)(ITfSource *, REFIID, IUnknown *, DWORD *);
    234     HRESULT (STDMETHODCALLTYPE *UnadviseSink)(ITfSource *, DWORD);
    235 } ITfSourceVtbl;
    236 
    237 struct ITfSource
    238 {
    239     const struct ITfSourceVtbl *lpVtbl;
    240 };
    241 
    242 #endif /* SDL_msctf_h_ */