src/video/windows/SDL_msctf.h
author Sam Lantinga <slouken@libsdl.org>
Tue, 26 May 2015 06:27:46 -0700
changeset 9619 b94b6d0bff0f
parent 8616 ec011c16e2fd
child 9998 f67cf37e9cd4
permissions -rw-r--r--
Updated the copyright year to 2015
     1 /*
     2   Simple DirectMedia Layer
     3   Copyright (C) 1997-2015 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 */