diff options
Diffstat (limited to 'src/VBox/Devices/Graphics/shaderlib/wine/include/msctf.idl')
-rw-r--r-- | src/VBox/Devices/Graphics/shaderlib/wine/include/msctf.idl | 1533 |
1 files changed, 1533 insertions, 0 deletions
diff --git a/src/VBox/Devices/Graphics/shaderlib/wine/include/msctf.idl b/src/VBox/Devices/Graphics/shaderlib/wine/include/msctf.idl new file mode 100644 index 00000000..a21f9778 --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/wine/include/msctf.idl @@ -0,0 +1,1533 @@ +/* + * Copyright 2008 Aric Stewart, CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +#ifndef DO_NO_IMPORTS +import "oaidl.idl"; +import "comcat.idl"; +import "textstor.idl"; +import "ctfutb.idl"; +#endif +cpp_quote("#include <winuser.h>") + +cpp_quote("#define TF_E_STACKFULL MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0501)") +cpp_quote("#define TF_E_DISCONNECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0504)") +cpp_quote("#define TF_E_ALREADY_EXISTS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0506)") +cpp_quote("#define TF_E_NOLOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)") + +cpp_quote("HRESULT WINAPI TF_CreateThreadMgr(ITfThreadMgr **pptim);") +cpp_quote("HRESULT WINAPI TF_GetThreadMgr(ITfThreadMgr **pptim);") +cpp_quote("HRESULT WINAPI TF_CreateInputProcessorProfiles(ITfInputProcessorProfiles **ppipr);") +cpp_quote("HRESULT WINAPI TF_CreateLangBarMgr(ITfLangBarMgr **pppbm);") +cpp_quote("HRESULT WINAPI TF_CreateLangBarItemMgr(ITfLangBarItemMgr **pplbim);") +cpp_quote("HRESULT WINAPI TF_InvalidAssemblyListCacheIfExist(void);") + +cpp_quote("EXTERN_C const GUID GUID_PROP_TEXTOWNER;") +cpp_quote("DEFINE_GUID(GUID_PROP_ATTRIBUTE,0x34b45670,0x7526,0x11d2,0xa1,0x47,0x00,0x10,0x5a,0x27,0x99,0xb5);") +cpp_quote("EXTERN_C const GUID GUID_PROP_LANGID;") +cpp_quote("EXTERN_C const GUID GUID_PROP_READING;") +cpp_quote("EXTERN_C const GUID GUID_PROP_COMPOSING;") + +cpp_quote("EXTERN_C const CLSID CLSID_TF_ThreadMgr;") +cpp_quote("EXTERN_C const CLSID CLSID_TF_InputProcessorProfiles;") +cpp_quote("EXTERN_C const CLSID CLSID_TF_LangBarMgr;") +cpp_quote("EXTERN_C const CLSID CLSID_TF_CategoryMgr;") +cpp_quote("EXTERN_C const CLSID CLSID_TF_DisplayAttributeMgr;") + +/* GUIDs for Compartments */ +cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_DISABLED;") +cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_OPENCLOSE;") +cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_HANDWRITING_OPENCLOSE;") +cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_DISABLED;") +cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_OPENCLOSE;") +cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_GLOBALSTATE;") +cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_PERSISTMENUENABLED;") +cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_EMPTYCONTEXT;") +cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_TIPUISTATUS;") + +/* GUIDs for Categories */ +cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_KEYBOARD;") +cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_SPEECH;") +cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_HANDWRITING;") +cpp_quote("EXTERN_C const GUID GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER;") + +typedef [uuid(7213778c-7bb0-4270-b050-6189ee594e97)] DWORD TfEditCookie; +typedef [uuid(de403c21-89fd-4f85-8b87-64584d063fbc)] DWORD TfClientId; +typedef [uuid(88a9c478-f3ec-4763-8345-cd9250443f8d)] DWORD TfGuidAtom; + +cpp_quote("#define TF_MOD_ALT 0x0001") +cpp_quote("#define TF_MOD_CONTROL 0x0002") +cpp_quote("#define TF_MOD_SHIFT 0x0004") +cpp_quote("#define TF_MOD_RALT 0x0008") +cpp_quote("#define TF_MOD_RCONTROL 0x0010") +cpp_quote("#define TF_MOD_RSHIFT 0x0020") +cpp_quote("#define TF_MOD_LALT 0x0040") +cpp_quote("#define TF_MOD_LCONTROL 0x0080") +cpp_quote("#define TF_MOD_LSHIFT 0x0100") +cpp_quote("#define TF_MOD_ON_KEYUP 0x0200") +cpp_quote("#define TF_MOD_IGNORE_ALL_MODIFIER 0x0400") + +cpp_quote("#define TF_PROFILETYPE_INPUTPROCESSOR 0x0001") +cpp_quote("#define TF_PROFILETYPE_KEYBOARDLAYOUT 0x0002") + +interface ITfDocumentMgr; +interface ITfContext; +interface IEnumTfDocumentMgrs; +interface IEnumTfContexts; +interface ITfFunctionProvider; +interface IEnumTfFunctionProviders; +interface ITfCompartmentMgr; +interface ITfEditSession; +interface ITfRange; +interface ITfContextView; +interface IEnumTfContextViews; +interface ITfProperty; +interface ITfReadOnlyProperty; +interface IEnumTfProperties; +interface ITfRangeBackup; +interface IEnumTfLanguageProfiles; +interface ITfEditRecord; +interface ITfCompositionView; +interface ITfKeyEventSink; + +cpp_quote("#if 0") +typedef [uuid(4f5d560f-5ab5-4dde-8c4d-404592857ab0)] UINT_PTR HKL; +cpp_quote("#endif") + +typedef [uuid(e26d9e1d-691e-4f29-90d7-338dcf1f8cef)] struct TF_PERSISTENT_PROPERTY_HEADER_ACP +{ + GUID guidType; + LONG ichStart; + LONG cch; + ULONG cb; + DWORD dwPrivate; + CLSID clsidTIP; +} TF_PERSISTENT_PROPERTY_HEADER_ACP; + +typedef [uuid(e1b5808d-1e46-4c19-84dc-68c5f5978cc8)] struct TF_LANGUAGEPROFILE +{ + CLSID clsid; + LANGID langid; + GUID catid; + BOOL fActive; + GUID guidProfile; +} TF_LANGUAGEPROFILE; + +typedef [uuid(77c12f95-b783-450d-879f-1cd2362c6521)] struct TF_PRESERVEDKEY +{ + UINT uVKey; + UINT uModifiers; +} TF_PRESERVEDKEY; + +typedef [uuid(5a886226-ae9a-489b-b991-2b1e25ee59a9)] enum { TF_ANCHOR_START = 0, TF_ANCHOR_END = 1 } TfAnchor; + +[ + object, + uuid(aa80e801-2021-11d2-93e0-0060b067b86e), + pointer_default(unique) +] +interface ITfThreadMgr: IUnknown +{ + HRESULT Activate( + [out] TfClientId *ptid); + + HRESULT Deactivate(); + + HRESULT CreateDocumentMgr( + [out] ITfDocumentMgr **ppdim); + + HRESULT EnumDocumentMgrs( + [out] IEnumTfDocumentMgrs **ppEnum); + + HRESULT GetFocus( + [out] ITfDocumentMgr **ppdimFocus); + + HRESULT SetFocus( + [in] ITfDocumentMgr *pdimFocus); + + HRESULT AssociateFocus( + [in] HWND hwnd, + [in, unique] ITfDocumentMgr *pdimNew, + [out] ITfDocumentMgr **ppdimPrev); + + HRESULT IsThreadFocus( + [out] BOOL *pfThreadFocus); + + HRESULT GetFunctionProvider( + [in] REFCLSID clsid, + [out] ITfFunctionProvider **ppFuncProv); + + HRESULT EnumFunctionProviders( + [out] IEnumTfFunctionProviders **ppEnum); + + HRESULT GetGlobalCompartment( + [out] ITfCompartmentMgr **ppCompMgr); +}; + +[ + object, + uuid(d7540241-f9a1-4364-befc-dbcd2c4395b7), + pointer_default(unique) +] +interface ITfCompositionView : IUnknown +{ + HRESULT GetOwnerClsid([out] CLSID *pclsid); + + HRESULT GetRange([out] ITfRange **ppRange); +} + +[ + object, + uuid(aa80e7f4-2021-11d2-93e0-0060b067b86e), + pointer_default(unique) +] +interface ITfDocumentMgr: IUnknown +{ + HRESULT CreateContext( + [in] TfClientId tidOwner, + [in] DWORD dwFlags, + [in, unique] IUnknown *punk, + [out] ITfContext **ppic, + [out] TfEditCookie *pecTextStore); + + HRESULT Push( + [in] ITfContext *pic); + + const DWORD TF_POPF_ALL = 0x0001; + + HRESULT Pop( + [in] DWORD dwFlags); + + HRESULT GetTop( + [out] ITfContext **ppic); + + HRESULT GetBase( + [out] ITfContext **ppic); + + HRESULT EnumContexts( + [out] IEnumTfContexts **ppEnum); +}; + +[ + object, + uuid(aa80e7fd-2021-11d2-93e0-0060b067b86e), + pointer_default(unique) +] +interface ITfContext : IUnknown +{ + const DWORD TF_ES_ASYNCDONTCARE = 0x0; + const DWORD TF_ES_SYNC = 0x1; + const DWORD TF_ES_READ = 0x2; + const DWORD TF_ES_READWRITE = 0x6; + const DWORD TF_ES_ASYNC = 0x8; + + HRESULT RequestEditSession( + [in] TfClientId tid, + [in] ITfEditSession *pes, + [in] DWORD dwFlags, + [out] HRESULT *phrSession); + + HRESULT InWriteSession( + [in] TfClientId tid, + [out] BOOL *pfWriteSession); + + typedef [uuid(1690be9b-d3e9-49f6-8d8b-51b905af4c43)] enum { TF_AE_NONE, TF_AE_START, TF_AE_END } TfActiveSelEnd; + + typedef [uuid(36ae42a4-6989-4bdc-b48a-6137b7bf2e42)] struct TF_SELECTIONSTYLE + { + TfActiveSelEnd ase; + BOOL fInterimChar; + } TF_SELECTIONSTYLE; + + typedef [uuid(75eb22f2-b0bf-46a8-8006-975a3b6efcf1)] struct TF_SELECTION + { + ITfRange *range; + TF_SELECTIONSTYLE style; + } TF_SELECTION; + + const ULONG TF_DEFAULT_SELECTION = TS_DEFAULT_SELECTION; + + HRESULT GetSelection( + [in] TfEditCookie ec, + [in] ULONG ulIndex, + [in] ULONG ulCount, + [out, size_is(ulCount), length_is(*pcFetched)] TF_SELECTION *pSelection, + [out] ULONG *pcFetched); + + HRESULT SetSelection( + [in] TfEditCookie ec, + [in] ULONG ulCount, + [in, size_is(ulCount)] const TF_SELECTION *pSelection); + + HRESULT GetStart( + [in] TfEditCookie ec, + [out] ITfRange **ppStart); + + HRESULT GetEnd( + [in] TfEditCookie ec, + [out] ITfRange **ppEnd); + + typedef [uuid(bc7d979a-846a-444d-afef-0a9bfa82b961)] TS_STATUS TF_STATUS; + const DWORD TF_SD_READONLY = TS_SD_READONLY; + const DWORD TF_SD_LOADING = TS_SD_LOADING; + const DWORD TF_SS_DISJOINTSEL = TS_SS_DISJOINTSEL; + const DWORD TF_SS_REGIONS = TS_SS_REGIONS; + const DWORD TF_SS_TRANSITORY = TS_SS_TRANSITORY; + + + HRESULT GetActiveView( + [out] ITfContextView **ppView); + + HRESULT EnumViews( + [out] IEnumTfContextViews **ppEnum); + + HRESULT GetStatus( + [out] TF_STATUS *pdcs); + + HRESULT GetProperty( + [in] REFGUID guidProp, + [out] ITfProperty **ppProp); + + HRESULT GetAppProperty( + [in] REFGUID guidProp, + [out] ITfReadOnlyProperty **ppProp); + + HRESULT TrackProperties( + [in, size_is(cProp)] const GUID **prgProp, + [in] ULONG cProp, + [in, size_is(cAppProp)] const GUID **prgAppProp, + [in] ULONG cAppProp, + [out] ITfReadOnlyProperty **ppProperty); + + HRESULT EnumProperties( + [out] IEnumTfProperties **ppEnum); + + HRESULT GetDocumentMgr( + [out] ITfDocumentMgr **ppDm); + + HRESULT CreateRangeBackup( + [in] TfEditCookie ec, + [in] ITfRange *pRange, + [out] ITfRangeBackup **ppBackup); + +}; + +[ + object, + uuid(4ea48a35-60ae-446f-8fd6-e6a8d82459f7), + pointer_default(unique) +] +interface ITfSource : IUnknown +{ + HRESULT AdviseSink( + [in] REFIID riid, + [in, iid_is(riid)] IUnknown *punk, + [out] DWORD *pdwCookie); + + HRESULT UnadviseSink( + [in] DWORD dwCookie); +}; + +[ + object, + local, + uuid(1F02B6C5-7842-4EE6-8A0B-9A24183A95CA), + pointer_default(unique) +] +interface ITfInputProcessorProfiles : IUnknown +{ + HRESULT Register( + [in] REFCLSID rclsid); + + HRESULT Unregister( + [in] REFCLSID rclsid); + + HRESULT AddLanguageProfile( + [in] REFCLSID rclsid, + [in] LANGID langid, + [in] REFGUID guidProfile, + [in, size_is(cchDesc)] const WCHAR *pchDesc, + [in] ULONG cchDesc, + [in, size_is(cchFile)] const WCHAR *pchIconFile, + [in] ULONG cchFile, + [in] ULONG uIconIndex); + + HRESULT RemoveLanguageProfile( + [in] REFCLSID rclsid, + [in] LANGID langid, + [in] REFGUID guidProfile); + + HRESULT EnumInputProcessorInfo( + [out] IEnumGUID **ppEnum); + + HRESULT GetDefaultLanguageProfile( + [in] LANGID langid, + [in] REFGUID catid, + [out] CLSID *pclsid, + [out] GUID *pguidProfile); + + HRESULT SetDefaultLanguageProfile( + [in] LANGID langid, + [in] REFCLSID rclsid, + [in] REFGUID guidProfiles); + + HRESULT ActivateLanguageProfile( + [in] REFCLSID rclsid, + [in] LANGID langid, + [in] REFGUID guidProfiles); + + HRESULT GetActiveLanguageProfile( + [in] REFCLSID rclsid, + [out] LANGID *plangid, + [out] GUID *pguidProfile); + + HRESULT GetLanguageProfileDescription( + [in] REFCLSID rclsid, + [in] LANGID langid, + [in] REFGUID guidProfile, + [out] BSTR *pbstrProfile); + + HRESULT GetCurrentLanguage( + [out] LANGID *plangid); + + HRESULT ChangeCurrentLanguage( + [in] LANGID langid); + + HRESULT GetLanguageList( + [out] LANGID **ppLangId, + [out] ULONG *pulCount); + + HRESULT EnumLanguageProfiles( + [in] LANGID langid, + [out] IEnumTfLanguageProfiles **ppEnum); + + HRESULT EnableLanguageProfile( + [in] REFCLSID rclsid, + [in] LANGID langid, + [in] REFGUID guidProfile, + [in] BOOL fEnable); + + HRESULT IsEnabledLanguageProfile( + [in] REFCLSID rclsid, + [in] LANGID langid, + [in] REFGUID guidProfile, + [out] BOOL *pfEnable); + + HRESULT EnableLanguageProfileByDefault( + [in] REFCLSID rclsid, + [in] LANGID langid, + [in] REFGUID guidProfile, + [in] BOOL fEnable); + + HRESULT SubstituteKeyboardLayout( + [in] REFCLSID rclsid, + [in] LANGID langid, + [in] REFGUID guidProfile, + [in] HKL hKL); +}; + +typedef [uuid(44d2825a-10e5-43b2-877f-6cb2f43b7e7e)] +struct TF_INPUTPROCESSORPROFILE { + DWORD dwProfileType; + LANGID langid; + CLSID clsid; + GUID guidProfile; + GUID catid; + HKL hklSubstitute; + DWORD dwCaps; + HKL hkl; + DWORD dwFlags; +} TF_INPUTPROCESSORPROFILE; + +[ + object, + uuid(71c6e74d-0f28-11d8-a82a-00065b84435c), + pointer_default(unique) +] +interface IEnumTfInputProcessorProfiles : IUnknown +{ + HRESULT Clone( + [out] IEnumTfInputProcessorProfiles **ppEnum); + + HRESULT Next( + [in] ULONG ulCount, + [out, size_is(ulCount), length_is(*pcFetch)] TF_INPUTPROCESSORPROFILE *pProfile, + [out] ULONG *pcFetch); + + HRESULT Reset(); + + HRESULT Skip( + [in] ULONG ulCount); +} + +[ + object, + uuid(71c6e74c-0f28-11d8-a82a-00065b84435c), + pointer_default(unique) +] +interface ITfInputProcessorProfileMgr : IUnknown +{ + HRESULT ActivateProfile( + [in] DWORD dwProfileType, + [in] LANGID langid, + [in] REFCLSID clsid, + [in] REFGUID guidProfile, + [in] HKL hkl, + [in] DWORD dwFlags); + + HRESULT DeactivateProfile( + [in] DWORD dwProfileType, + [in] LANGID langid, + [in] REFCLSID clsid, + [in] REFGUID guidProfile, + [in] HKL hkl, + [in] DWORD dwFlags); + + HRESULT GetProfile( + [in] DWORD dwProfileType, + [in] LANGID langid, + [in] REFCLSID clsid, + [in] REFGUID guidProfile, + [in] HKL hkl, + [out] TF_INPUTPROCESSORPROFILE *pProfile); + + + HRESULT EnumProfiles( + [in] LANGID langid, + [out] IEnumTfInputProcessorProfiles **ppEnum); + + HRESULT ReleaseInputProcessor( + [in] REFCLSID rclsid, + [in] DWORD dwFlags); + + HRESULT RegisterProfile( + [in] REFCLSID rclsid, + [in] LANGID langid, + [in] REFGUID guidProfile, + [in, size_is(cchDesc)] const WCHAR *pchDesc, + [in] ULONG cchDesc, + [in, size_is(cchFile)] const WCHAR *pchIconFile, + [in] ULONG cchFile, + [in] ULONG uIconIndex, + [in] HKL hklsubstitute, + [in] DWORD dwPreferredLayout, + [in] BOOL bEnabledByDefault, + [in] DWORD dwFlags); + + HRESULT UnregisterProfile( + [in] REFCLSID rclsid, + [in] LANGID langid, + [in] REFGUID guidProfile, + [in] DWORD dwFlags); + + HRESULT GetActiveProfile( + [in] REFGUID catid, + [out] TF_INPUTPROCESSORPROFILE *pProfile); +} + +typedef [uuid(c4cc07f1-80cc-4a7b-bc54-98512782cbe3)] +enum { + TF_LS_NONE = 0, + TF_LS_SOLID = 1, + TF_LS_DOT = 2, + TF_LS_DASH = 3, + TF_LS_SQUIGGLE = 4 +} TF_DA_LINESTYLE; + +typedef [uuid(d9b92e21-084a-401b-9c64-1e6dad91a1ab)] +enum { + TF_CT_NONE = 0, + TF_CT_SYSCOLOR = 1, + TF_CT_COLORREF = 2 +} TF_DA_COLORTYPE; + +typedef [uuid(90d0cb5e-6520-4a0f-b47c-c39bd955f0d6)] +struct TF_DA_COLOR { + TF_DA_COLORTYPE type; + [switch_type(TF_DA_COLORTYPE), switch_is(type)] + union { + [case(TF_CT_SYSCOLOR)] int nIndex; + [case(TF_CT_COLORREF)] COLORREF cr; + }; +} TF_DA_COLOR; + +typedef [uuid(33d2fe4b-6c24-4f67-8d75-3bc1819e4126)] +enum { + TF_ATTR_INPUT = 0, + TF_ATTR_TARGET_CONVERTED = 1, + TF_ATTR_CONVERTED = 2, + TF_ATTR_TARGET_NOTCONVERTED = 3, + TF_ATTR_INPUT_ERROR = 4, + TF_ATTR_FIXEDCONVERTED = 5, + TF_ATTR_OTHER = -1 +} TF_DA_ATTR_INFO; + +typedef [uuid(1bf1c305-419b-4182-a4d2-9bfadc3f021f)] +struct TF_DISPLAYATTRIBUTE { + TF_DA_COLOR crText; + TF_DA_COLOR crBk; + TF_DA_LINESTYLE lsStyle; + BOOL fBoldLine; + TF_DA_COLOR crLine; + TF_DA_ATTR_INFO bAttr; +} TF_DISPLAYATTRIBUTE; + +[ + object, + uuid(70528852-2f26-4aea-8c96-215150578932), + pointer_default(unique) +] +interface ITfDisplayAttributeInfo : IUnknown +{ + HRESULT GetGUID([out] GUID *pguid); + + HRESULT GetDescription([out] BSTR *pbstrDesc); + + HRESULT GetAttributeInfo([out] TF_DISPLAYATTRIBUTE *pda); + + HRESULT SetAttributeInfo([in] const TF_DISPLAYATTRIBUTE *pda); + + HRESULT Reset(); +} + +[ + object, + uuid(7cef04d7-cb75-4e80-a7ab-5f5bc7d332de), + pointer_default(unique) +] +interface IEnumTfDisplayAttributeInfo : IUnknown +{ + HRESULT Clone([out] IEnumTfDisplayAttributeInfo **ppEnum); + + HRESULT Next( + [in] ULONG ulCount, + [out, size_is(ulCount), length_is(*pcFetched)] ITfDisplayAttributeInfo **rgInfo, + [out] ULONG *pcFetched); + + HRESULT Reset(); + + HRESULT Skip([in] ULONG ulCount); +} + +[ + object, + local, + uuid(8ded7393-5db1-475c-9e71-a39111b0ff67), + pointer_default(unique) +] +interface ITfDisplayAttributeMgr : IUnknown +{ + HRESULT OnUpdateInfo(); + + HRESULT EnumDisplayAttributeInfo([out] IEnumTfDisplayAttributeInfo **ppEnum); + + HRESULT GetDisplayAttributeInfo( + [in] REFGUID guid, + [out] ITfDisplayAttributeInfo **ppInfo, + [out] CLSID *pclsidOwner); + +} + +[ + object, + local, + uuid(c3acefb5-f69d-4905-938f-fcadcf4be830), + pointer_default(unique) +] +interface ITfCategoryMgr : IUnknown +{ + HRESULT RegisterCategory([in] REFCLSID rclsid, + [in] REFGUID rcatid, + [in] REFGUID rguid); + + HRESULT UnregisterCategory([in] REFCLSID rclsid, + [in] REFGUID rcatid, + [in] REFGUID rguid); + + HRESULT EnumCategoriesInItem([in] REFGUID rguid, + [out] IEnumGUID **ppEnum); + + HRESULT EnumItemsInCategory([in] REFGUID rcatid, + [out] IEnumGUID **ppEnum); + + HRESULT FindClosestCategory([in] REFGUID rguid, + [out] GUID *pcatid, + [in, size_is(ulCount)] const GUID **ppcatidList, + [in] ULONG ulCount); + + HRESULT RegisterGUIDDescription([in] REFCLSID rclsid, + [in] REFGUID rguid, + [in, size_is(cch)] const WCHAR *pchDesc, + [in] ULONG cch); + + HRESULT UnregisterGUIDDescription([in] REFCLSID rclsid, + [in] REFGUID rguid); + + HRESULT GetGUIDDescription([in] REFGUID rguid, + [out] BSTR *pbstrDesc); + + HRESULT RegisterGUIDDWORD([in] REFCLSID rclsid, + [in] REFGUID rguid, + [in] DWORD dw); + + HRESULT UnregisterGUIDDWORD([in] REFCLSID rclsid, + [in] REFGUID rguid); + + HRESULT GetGUIDDWORD([in] REFGUID rguid, + [out] DWORD *pdw); + + HRESULT RegisterGUID([in] REFGUID rguid, + [out] TfGuidAtom *pguidatom); + + HRESULT GetGUID([in] TfGuidAtom guidatom, + [out] GUID *pguid); + + HRESULT IsEqualTfGuidAtom([in] TfGuidAtom guidatom, + [in] REFGUID rguid, + [out] BOOL *pfEqual); +}; + +[ + object, + uuid(8127d409-ccd3-4683-967a-b43d5b482bf7), + pointer_default(unique) +] +interface ITfTextEditSink : IUnknown +{ + HRESULT OnEndEdit( + [in] ITfContext *pic, + [in] TfEditCookie ecReadOnly, + [in] ITfEditRecord *pEditRecord); +}; + +[ + object, + uuid(5F20AA40-B57A-4F34-96AB-3576F377CC79), + pointer_default(unique) +] +interface ITfContextOwnerCompositionSink : IUnknown +{ + HRESULT OnStartComposition( + [in] ITfCompositionView *pComposition, + [out] BOOL *pfOk); + + HRESULT OnUpdateComposition( + [in] ITfCompositionView *pComposition, + [in] ITfRange *pRangeNew); + + HRESULT OnEndComposition( + [in] ITfCompositionView *pComposition); +}; + +[ + object, + uuid(3d61bf11-ac5f-42c8-a4cb-931bcc28c744), + pointer_default(unique) +] +interface IEnumTfLanguageProfiles : IUnknown +{ + HRESULT Clone( + [out] IEnumTfLanguageProfiles **ppEnum); + + HRESULT Next( + [in] ULONG ulCount, + [out, size_is(ulCount), length_is(*pcFetch)] TF_LANGUAGEPROFILE *pProfile, + [out] ULONG *pcFetch); + + HRESULT Reset(); + + HRESULT Skip( + [in] ULONG ulCount); +}; + +[ + object, + local, + uuid(aa80e7f7-2021-11d2-93e0-0060b067b86e), + pointer_default(unique) +] +interface ITfTextInputProcessor : IUnknown +{ + HRESULT Activate( + [in] ITfThreadMgr *ptim, + [in] TfClientId tid); + + HRESULT Deactivate(); +}; + +[ + object, + uuid(aa80e80e-2021-11d2-93e0-0060b067b86e), + pointer_default(unique) +] +interface ITfThreadMgrEventSink : IUnknown +{ + HRESULT OnInitDocumentMgr( + [in] ITfDocumentMgr *pdim); + + HRESULT OnUninitDocumentMgr( + [in] ITfDocumentMgr *pdim); + + HRESULT OnSetFocus( + [in] ITfDocumentMgr *pdimFocus, + [in] ITfDocumentMgr *pdimPrevFocus); + + HRESULT OnPushContext( + [in] ITfContext *pic); + + HRESULT OnPopContext( + [in] ITfContext *pic); +}; + +[ + object, + local, + uuid(aa80e7f0-2021-11d2-93e0-0060b067b86e), + pointer_default(unique) +] +interface ITfKeystrokeMgr : IUnknown +{ + HRESULT AdviseKeyEventSink( + [in] TfClientId tid, + [in] ITfKeyEventSink *pSink, + [in] BOOL fForeground); + + HRESULT UnadviseKeyEventSink( + [in] TfClientId tid); + + HRESULT GetForeground( + [out] CLSID *pclsid); + + HRESULT TestKeyDown( + [in] WPARAM wParam, + [in] LPARAM lParam, + [out] BOOL *pfEaten); + + HRESULT TestKeyUp( + [in] WPARAM wParam, + [in] LPARAM lParam, + [out] BOOL *pfEaten); + + HRESULT KeyDown( + [in] WPARAM wParam, + [in] LPARAM lParam, + [out] BOOL *pfEaten); + + HRESULT KeyUp( + [in] WPARAM wParam, + [in] LPARAM lParam, + [out] BOOL *pfEaten); + + HRESULT GetPreservedKey( + [in] ITfContext *pic, + [in] const TF_PRESERVEDKEY *pprekey, + [out] GUID *pguid); + + HRESULT IsPreservedKey( + [in] REFGUID rguid, + [in] const TF_PRESERVEDKEY *pprekey, + [out] BOOL *pfRegistered); + + HRESULT PreserveKey( + [in] TfClientId tid, + [in] REFGUID rguid, + [in] const TF_PRESERVEDKEY *prekey, + [in, size_is(cchDesc)] const WCHAR *pchDesc, + [in] ULONG cchDesc); + + HRESULT UnpreserveKey( + [in] REFGUID rguid, + [in] const TF_PRESERVEDKEY *pprekey); + + HRESULT SetPreservedKeyDescription( + [in] REFGUID rguid, + [in, size_is(cchDesc)] const WCHAR *pchDesc, + [in] ULONG cchDesc); + + HRESULT GetPreservedKeyDescription( + [in] REFGUID rguid, + [out] BSTR *pbstrDesc); + + HRESULT SimulatePreservedKey( + [in] ITfContext *pic, + [in] REFGUID rguid, + [out] BOOL *pfEaten); +}; + +[ + object, + local, + uuid(aa80e7f5-2021-11d2-93e0-0060b067b86e), + pointer_default(unique) +] +interface ITfKeyEventSink : IUnknown +{ + HRESULT OnSetFocus( + [in] BOOL fForeground); + + HRESULT OnTestKeyDown( + [in] ITfContext *pic, + [in] WPARAM wParam, + [in] LPARAM lParam, + [out] BOOL *pfEaten); + + HRESULT OnTestKeyUp( + [in] ITfContext *pic, + [in] WPARAM wParam, + [in] LPARAM lParam, + [out] BOOL *pfEaten); + + HRESULT OnKeyDown( + [in] ITfContext *pic, + [in] WPARAM wParam, + [in] LPARAM lParam, + [out] BOOL *pfEaten); + + HRESULT OnKeyUp( + [in] ITfContext *pic, + [in] WPARAM wParam, + [in] LPARAM lParam, + [out] BOOL *pfEaten); + + HRESULT OnPreservedKey( + [in] ITfContext *pic, + [in] REFGUID rguid, + [out] BOOL *pfEaten); +}; + +[ + object, + local, + uuid(8f1b8ad8-0b6b-4874-90c5-bd76011e8f7c), + pointer_default(unique) +] +interface ITfMessagePump : IUnknown +{ + HRESULT PeekMessageA( + [out] LPMSG pMsg, + [in] HWND hwnd, + [in] UINT wMsgFilterMin, + [in] UINT wMsgFilterMax, + [in] UINT wRemoveMsg, + [out] BOOL *pfResult); + + HRESULT GetMessageA( + [out] LPMSG pMsg, + [in] HWND hwnd, + [in] UINT wMsgFilterMin, + [in] UINT wMsgFilterMax, + [out] BOOL *pfResult); + + HRESULT PeekMessageW( + [out] LPMSG pMsg, + [in] HWND hwnd, + [in] UINT wMsgFilterMin, + [in] UINT wMsgFilterMax, + [in] UINT wRemoveMsg, + [out] BOOL *pfResult); + + HRESULT GetMessageW( + [out] LPMSG pMsg, + [in] HWND hwnd, + [in] UINT wMsgFilterMin, + [in] UINT wMsgFilterMax, + [out] BOOL *pfResult); +}; + +[ + object, + local, + uuid(d60a7b49-1b9f-4be2-b702-47e9dc05dec3), + pointer_default(unique) +] +interface ITfClientId : IUnknown +{ + HRESULT GetClientId( + [in] REFCLSID rclsid, + [out] TfClientId *ptid); +}; + +[ + object, + uuid(43c9fe15-f494-4c17-9de2-b8a4ac350aa8), + pointer_default(unique) +] +interface ITfLanguageProfileNotifySink : IUnknown +{ + HRESULT OnLanguageChange( + [in] LANGID langid, + [out] BOOL *pfAccept); + + HRESULT OnLanguageChanged(); +} + +[ + object, + uuid(aa80e803-2021-11d2-93e0-0060b067b86e), + pointer_default(unique) +] +interface ITfEditSession : IUnknown +{ + HRESULT DoEditSession( + [in] TfEditCookie ec); +} + +[ + object, + uuid(aa80e7ff-2021-11d2-93e0-0060b067b86e), + pointer_default(unique) +] +interface ITfRange : IUnknown +{ + const WCHAR TF_CHAR_EMBEDDED = TS_CHAR_EMBEDDED; + + typedef [uuid(cf610f06-2882-46f6-abe5-298568b664c4)] enum { TF_GRAVITY_BACKWARD = 0, TF_GRAVITY_FORWARD = 1 } TfGravity; + + typedef [uuid(1e512533-bbdc-4530-9a8e-a1dc0af67468)] enum { TF_SD_BACKWARD = 0, TF_SD_FORWARD = 1 } TfShiftDir; + + const DWORD TF_HF_OBJECT = 1; + const DWORD TF_TF_MOVESTART = 1; + const DWORD TF_TF_IGNOREEND = 2; + const DWORD TF_ST_CORRECTION = 1; + const DWORD TF_IE_CORRECTION = 1; + + typedef [uuid(49930d51-7d93-448c-a48c-fea5dac192b1)] struct TF_HALTCOND + { + ITfRange *pHaltRange; + TfAnchor aHaltPos; + DWORD dwFlags; + } TF_HALTCOND; + + HRESULT GetText( + [in] TfEditCookie ec, + [in] DWORD dwFlags, + [out, size_is(cchMax), length_is(*pcch)] WCHAR *pchText, + [in] ULONG cchMax, + [out] ULONG *pcch); + + HRESULT SetText( + [in] TfEditCookie ec, + [in] DWORD dwFlags, + [in, size_is(cch), unique] const WCHAR *pchText, + [in] LONG cch); + + HRESULT GetFormattedText( + [in] TfEditCookie ec, + [out] IDataObject **ppDataObject); + + HRESULT GetEmbedded( + [in] TfEditCookie ec, + [in] REFGUID rguidService, + [in] REFIID riid, + [out, iid_is(riid)] IUnknown **ppunk); + + HRESULT InsertEmbedded( + [in] TfEditCookie ec, + [in] DWORD dwFlags, + [in] IDataObject *pDataObject); + + HRESULT ShiftStart( + [in] TfEditCookie ec, + [in] LONG cchReq, + [out] LONG *pcch, + [in, unique] const TF_HALTCOND *pHalt); + + HRESULT ShiftEnd( + [in] TfEditCookie ec, + [in] LONG cchReq, + [out] LONG *pcch, + [in, unique] const TF_HALTCOND *pHalt); + + HRESULT ShiftStartToRange( + [in] TfEditCookie ec, + [in] ITfRange *pRange, + [in] TfAnchor aPos); + + HRESULT ShiftEndToRange( + [in] TfEditCookie ec, + [in] ITfRange *pRange, + [in] TfAnchor aPos); + + HRESULT ShiftStartRegion( + [in] TfEditCookie ec, + [in] TfShiftDir dir, + [out] BOOL *pfNoRegion); + + HRESULT ShiftEndRegion( + [in] TfEditCookie ec, + [in] TfShiftDir dir, + [out] BOOL *pfNoRegion); + + HRESULT IsEmpty( + [in] TfEditCookie ec, + [out] BOOL *pfEmpty); + + HRESULT Collapse( + [in] TfEditCookie ec, + [in] TfAnchor aPos); + + HRESULT IsEqualStart( + [in] TfEditCookie ec, + [in] ITfRange *pWith, + [in] TfAnchor aPos, + [out] BOOL *pfEqual); + + HRESULT IsEqualEnd( + [in] TfEditCookie ec, + [in] ITfRange *pWith, + [in] TfAnchor aPos, + [out] BOOL *pfEqual); + + HRESULT CompareStart( + [in] TfEditCookie ec, + [in] ITfRange *pWith, + [in] TfAnchor aPos, + [out] LONG *plResult); + + HRESULT CompareEnd( + [in] TfEditCookie ec, + [in] ITfRange *pWith, + [in] TfAnchor aPos, + [out] LONG *plResult); + + HRESULT AdjustForInsert( + [in] TfEditCookie ec, + [in] ULONG cchInsert, + [out] BOOL *pfInsertOk); + + HRESULT GetGravity( + [out] TfGravity *pgStart, + [out] TfGravity *pgEnd); + + HRESULT SetGravity( + [in] TfEditCookie ec, + [in] TfGravity gStart, + [in] TfGravity gEnd); + + HRESULT Clone( + [out] ITfRange **ppClone); + + HRESULT GetContext( + [out] ITfContext **ppContext); +}; + +[ + object, + uuid(057a6296-029b-4154-b79a-0d461d4ea94c), + pointer_default(unique) +] +interface ITfRangeACP : ITfRange +{ + HRESULT GetExtent([out] LONG *pacpAnchor, + [out] LONG *pcch); + + HRESULT SetExtent([in] LONG acpAnchor, + [in] LONG cch); +} + +[ + object, + uuid(55ce16ba-3014-41c1-9ceb-fade1446ac6c), + pointer_default(unique) +] +interface ITfInsertAtSelection : IUnknown +{ + const DWORD TF_IAS_NOQUERY = 0x1; + const DWORD TF_IAS_QUERYONLY = 0x2; + const DWORD TF_IAS_NO_DEFAULT_COMPOSITION = 0x80000000; + + HRESULT InsertTextAtSelection( + [in] TfEditCookie ec, + [in] DWORD dwFlags, + [in, size_is(cch)] const WCHAR *pchText, + [in] LONG cch, + [out] ITfRange **ppRange); + + HRESULT InsertEmbeddedAtSelection( + [in] TfEditCookie ec, + [in] DWORD dwFlags, + [in] IDataObject *pDataObject, + [out] ITfRange **ppRange); +}; + +[ + object, + uuid(6834b120-88cb-11d2-bf45-00105a2799b5), + pointer_default(unique) +] +interface ITfPropertyStore : IUnknown +{ + const DWORD TF_TU_CORRECTION = 0x1; + + HRESULT GetType([out] GUID *pguid); + + HRESULT GetDataType([out] DWORD *pdwReserved); + + HRESULT GetData([out] VARIANT *pvarValue); + + HRESULT OnTextUpdated( + [in] DWORD dwFlags, + [in] ITfRange *pRangeNew, + [out] BOOL *pfAccept); + + HRESULT Shrink( + [in] ITfRange *pRangeNew, + [out] BOOL *pfFree); + + HRESULT Divide( + [in] ITfRange *pRangeThis, + [in] ITfRange *pRangeNew, + [out] ITfPropertyStore **ppPropStore); + + HRESULT Clone( + [out] ITfPropertyStore **pPropStore); + + HRESULT GetPropertyRangeCreator( + [out] CLSID *pclsid); + + HRESULT Serialize( + [in] IStream *pStream, + [out] ULONG *pcb); +} + +[ + object, + uuid(f99d3f40-8e32-11d2-bf46-00105a2799b5), + pointer_default(unique) +] +interface IEnumTfRanges : IUnknown +{ + HRESULT Clone([out] IEnumTfRanges **ppEnum); + + HRESULT Next( + [in] ULONG ulCount, + [out, size_is(ulCount), length_is(*pcFetched)] ITfRange **ppRange, + [out] ULONG *pcFetched); + + HRESULT Reset(); + + HRESULT Skip(ULONG ulCount); +} + +[ + object, + uuid(5efd22Ba-7838-46cb-88e2-cadb14124f8f), + pointer_default(unique) +] +interface IEnumITfCompositionView : IUnknown +{ + HRESULT Clone([out] IEnumITfCompositionView **ppEnum); + + HRESULT Next( + [in] ULONG ulCount, + [out, size_is(ulCount), length_is(*pcFetched)] ITfCompositionView **rgCompositionView, + [out] ULONG *pcFetched); + + HRESULT Reset(); + + HRESULT Skip([in] ULONG ulCount); +} + +[ + object, + uuid(20168d64-5a8f-4a5a-b7bd-cfa29f4D0fd9), + pointer_default(unique) +] +interface ITfComposition : IUnknown +{ + HRESULT GetRange([out] ITfRange **ppRange); + + HRESULT ShiftStart( + [in] TfEditCookie ecWrite, + [in] ITfRange *pNewStart); + + HRESULT ShiftEnd( + [in] TfEditCookie ecWrite, + [in] ITfRange *pNewEnd); + + HRESULT EndComposition([in] TfEditCookie ecWrite); +} + +[ + object, + uuid(a781718c-579a-4b15-a280-32b8577acc5e), + pointer_default(unique) +] +interface ITfCompositionSink : IUnknown +{ + HRESULT OnCompositionTerminated( + [in] TfEditCookie ecWrite, + [in] ITfComposition *pComposition); +} + +[ + object, + uuid(d40C8aae-aC92-4fc7-9a11-0ee0e23aa39b), + pointer_default(unique) +] +interface ITfContextComposition : IUnknown +{ + HRESULT StartComposition( + [in] TfEditCookie ecWrite, + [in] ITfRange *pCompositionRange, + [in] ITfCompositionSink *pSink, + [out] ITfComposition **ppComposition); + + HRESULT EnumCompositions([out] IEnumITfCompositionView **ppEnum); + + HRESULT FindComposition( + [in] TfEditCookie ecRead, + [in] ITfRange *pTestRange, + [out] IEnumITfCompositionView **ppEnum); + + HRESULT TakeOwnership( + [in] TfEditCookie ecWrite, + [in] ITfCompositionView *pComposition, + [in] ITfCompositionSink *pSink, + [out] ITfComposition **ppComposition); +} + +[ + object, + uuid(86462810-593b-4916-9764-19c08e9ce110), + pointer_default(unique) +] +interface ITfContextOwnerCompositionServices : ITfContextComposition +{ + HRESULT TerminateComposition([in] ITfCompositionView *pComposition); +} + +[ + object, + uuid(4ef89150-0807-11d3-8df0-00105a2799b5), + pointer_default(unique) +] +interface ITfPersistentPropertyLoaderACP : IUnknown +{ + HRESULT LoadProperty( + [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr, + [out] IStream **ppStream); +} + +[ + object, + uuid(b23eb630-3e1c-11d3-a745-0050040ab407), + pointer_default(unique) +] +interface ITfContextOwnerServices : IUnknown +{ + HRESULT OnLayoutChange(); + + HRESULT OnStatusChange([in] DWORD dwFlags); + + HRESULT OnAttributeChange([in] REFGUID rguidAttribute); + + HRESULT Serialize( + [in] ITfProperty *pProp, + [in] ITfRange *pRange, + [out] TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr, + [in] IStream *pStream); + + HRESULT Unserialize( + [in] ITfProperty *pProp, + [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr, + [in] IStream *pStream, + [in] ITfPersistentPropertyLoaderACP *pLoader); + + HRESULT ForceLoadProperty([in] ITfProperty *pProp); + + HRESULT CreateRange( + [in] LONG acpStart, + [in] LONG acpEnd, + [out] ITfRangeACP **ppRange); +} + +[ + object, + uuid(17d49a3d-f8b8-4b2f-b254-52319dd64c53), + pointer_default(unique) +] +interface ITfReadOnlyProperty : IUnknown +{ + HRESULT GetType([out] GUID *pguid); + + HRESULT EnumRanges( + [in] TfEditCookie ec, + [out] IEnumTfRanges **ppEnum, + [in] ITfRange *pTargetRange); + + HRESULT GetValue( + [in] TfEditCookie ec, + [in] ITfRange *pRange, + [out] VARIANT *pvarValue); + + HRESULT GetContext([out] ITfContext **ppContext); +} + +[ + object, + uuid(e2449660-9542-11d2-bf46-00105a2799b5), + pointer_default(unique) +] +interface ITfProperty : ITfReadOnlyProperty +{ + HRESULT FindRange( + [in] TfEditCookie ec, + [in] ITfRange *pRange, + [out] ITfRange **ppRange, + [in] TfAnchor aPos); + + HRESULT SetValueStore( + [in] TfEditCookie ec, + [in] ITfRange *pRange, + [in] ITfPropertyStore *pPropStore); + + HRESULT SetValue( + [in] TfEditCookie ec, + [in] ITfRange *pRange, + [in] const VARIANT *pvarValue); + + HRESULT Clear( + [in] TfEditCookie ec, + [in] ITfRange *pRange); +} + +[ + object, + uuid(bb08f7a9-607a-4384-8623-056892b64371), + pointer_default(unique) +] +interface ITfCompartment : IUnknown +{ + HRESULT SetValue( + [in] TfClientId tid, + [in] const VARIANT *pvarValue); + + HRESULT GetValue( + [out] VARIANT *pvarValue); +}; + +[ + object, + uuid(7dcf57ac-18ad-438b-824d-979bffb74b7c), + pointer_default(unique) +] +interface ITfCompartmentMgr : IUnknown +{ + HRESULT GetCompartment( + [in] REFGUID rguid, + [out] ITfCompartment **ppcomp); + + HRESULT ClearCompartment( + [in] TfClientId tid, + [in] REFGUID rguid); + + HRESULT EnumCompartments( + [out] IEnumGUID **ppEnum); +}; + +[ + object, + uuid(743abd5f-f26d-48df-8cc5-238492419b64), + pointer_default(unique) +] +interface ITfCompartmentEventSink : IUnknown +{ + HRESULT OnChange( + [in] REFGUID rguid); +} + +[ + object, + uuid(8f1a7ea6-1654-4502-a86e-b2902344d507), + pointer_default(unique) +] +interface IEnumTfContexts : IUnknown +{ + HRESULT Clone( + [out] IEnumTfContexts **ppEnum); + + HRESULT Next( + [in] ULONG ulCount, + [out, size_is(ulCount), length_is(*pcFetched)] ITfContext **rgContext, + [out] ULONG *pcFetched); + + HRESULT Reset(); + + HRESULT Skip( + [in] ULONG ulCount); +}; + +[ + object, + uuid(aa80e808-2021-11d2-93e0-0060b067b86e), + pointer_default(unique) +] +interface IEnumTfDocumentMgrs : IUnknown +{ + HRESULT Clone( + [out] IEnumTfDocumentMgrs **ppEnum); + + HRESULT Next( + [in] ULONG ulCount, + [out, size_is(ulCount), length_is(*pcFetched)] ITfDocumentMgr **rgDocumentMgr, + [out] ULONG *pcFetched); + + HRESULT Reset(); + + HRESULT Skip( + [in] ULONG ulCount); +}; + +[ + object, + uuid(73131f9c-56a9-49dd-b0ee-d046633f7528), + pointer_default(unique) +] +interface ITfSourceSingle : IUnknown +{ + HRESULT AdviseSingleSink( + [in] TfClientId tid, + [in] REFIID riid, + [in, iid_is(riid)] IUnknown *punk); + + HRESULT UnadviseSingleSink( + [in] TfClientId tid, + [in] REFIID riid); +}; + +[ + object, + local, + uuid(c0f1db0c-3a20-405c-a303-96b6010a885f), + pointer_default(unique) +] +interface ITfThreadFocusSink : IUnknown +{ + HRESULT OnSetThreadFocus(); + + HRESULT OnKillThreadFocus(); +}; |