| /* | |
| * Copyright (C) 2005 Mike McCormack | |
| * | |
| * 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 | |
| */ | |
| #ifndef _TEXTSERV_H | |
| #define _TEXTSERV_H | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| DEFINE_GUID(IID_ITextServices,0x8d33f740,0xcf58,0x11ce,0xa8,0x9d,0x00,0xaa,0x00,0x6c,0xad,0xc5); | |
| DEFINE_GUID(IID_ITextHost, 0xc5bdd8d0,0xd26e,0x11ce,0xa8,0x9e,0x00,0xaa,0x00,0x6c,0xad,0xc5); | |
| DEFINE_GUID(IID_ITextHost2, 0xc5bdd8d0,0xd26e,0x11ce,0xa8,0x9e,0x00,0xaa,0x00,0x6c,0xad,0xc5); | |
| /***************************************************************************** | |
| * ITextServices interface | |
| */ | |
| #define INTERFACE ITextServices | |
| DECLARE_INTERFACE_(ITextServices,IUnknown) | |
| { | |
| /*** IUnknown methods ***/ | |
| STDMETHOD(QueryInterface)(THIS_ | |
| REFIID riid, | |
| void** ppvObject) PURE; | |
| STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| /*** ITextServices methods ***/ | |
| STDMETHOD(TxSendMessage)( THIS_ | |
| UINT msg, WPARAM wparam, LPARAM lparam, LRESULT* plresult) PURE; | |
| STDMETHOD(TxDraw)( THIS_ | |
| DWORD dwDrawAspect, | |
| LONG lindex, | |
| void* pvAspect, | |
| DVTARGETDEVICE* ptd, | |
| HDC hdcDraw, | |
| HDC hicTargetDev, | |
| LPCRECTL lprcBounds, | |
| LPCRECTL lprcWBounds, | |
| LPRECT lprcUpdate, | |
| BOOL (CALLBACK * pfnContinue)(DWORD), | |
| DWORD dwContinue, | |
| LONG lViewId) PURE; | |
| STDMETHOD(TxGetHScroll)( THIS_ | |
| LONG* plMin, | |
| LONG* plMax, | |
| LONG* plPos, | |
| LONG* plPage, | |
| BOOL* pfEnabled) PURE; | |
| STDMETHOD(TxGetVScroll)( THIS_ | |
| LONG* plMin, | |
| LONG* plMax, | |
| LONG* plPos, | |
| LONG* plPage, | |
| BOOL* pfEnabled) PURE; | |
| STDMETHOD(OnTxSetCursor)( THIS_ | |
| DWORD dwDrawAspect, | |
| LONG lindex, | |
| void* pvAspect, | |
| DVTARGETDEVICE* ptd, | |
| HDC hdcDraw, | |
| HDC hicTargetDev, | |
| LPCRECT lprcClient, | |
| INT x, | |
| INT y) PURE; | |
| STDMETHOD(TxQueryHitPoint)( THIS_ | |
| DWORD dwDrawAspect, | |
| LONG lindex, | |
| void* pvAspect, | |
| DVTARGETDEVICE* ptd, | |
| HDC hdcDraw, | |
| HDC hicTargetDev, | |
| LPCRECT lprcClient, | |
| INT x, | |
| INT y, | |
| DWORD* pHitResult) PURE; | |
| STDMETHOD(OnTxInplaceActivate)( THIS_ | |
| LPCRECT prcClient) PURE; | |
| STDMETHOD(OnTxInplaceDeactivate)( THIS ) PURE; | |
| STDMETHOD(OnTxUIActivate)( THIS ) PURE; | |
| STDMETHOD(OnTxUIDeactivate)( THIS ) PURE; | |
| STDMETHOD(TxGetText)( THIS_ | |
| BSTR* pbstrText) PURE; | |
| STDMETHOD(TxSetText)( THIS_ | |
| LPCWSTR pszText) PURE; | |
| STDMETHOD(TxGetCurrentTargetX)( THIS_ | |
| LONG* x) PURE; | |
| STDMETHOD(TxGetBaseLinePos)( THIS_ | |
| LONG* x) PURE; | |
| STDMETHOD(TxGetNaturalSize)( THIS_ | |
| DWORD dwAspect, | |
| HDC hdcDraw, | |
| HDC hicTargetDev, | |
| DVTARGETDEVICE* ptd, | |
| DWORD dwMode, | |
| const SIZEL* psizelExtent, | |
| LONG* pwidth, | |
| LONG* pheight) PURE; | |
| STDMETHOD(TxGetDropTarget)( THIS_ | |
| IDropTarget** ppDropTarget) PURE; | |
| STDMETHOD(OnTxPropertyBitsChange)( THIS_ | |
| DWORD dwMask, | |
| DWORD dwBits) PURE; | |
| STDMETHOD(TxGetCachedSize)( THIS_ | |
| DWORD* pdwWidth, | |
| DWORD* pdwHeight) PURE; | |
| }; | |
| #ifdef COBJMACROS | |
| /*** IUnknown methods ***/ | |
| #define ITextServices_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) | |
| #define ITextServices_AddRef(p) (p)->lpVtbl->AddRef(p) | |
| #define ITextServices_Release(p) (p)->lpVtbl->Release(p) | |
| #endif | |
| #undef INTERFACE | |
| typedef enum _TXTBACKSTYLE { | |
| TXTBACK_TRANSPARENT = 0, | |
| TXTBACK_OPAQUE | |
| } TXTBACKSTYLE; | |
| enum TXTHITRESULT { | |
| TXTHITRESULT_NOHIT = 0, | |
| TXTHITRESULT_TRANSPARENT = 1, | |
| TXTHITRESULT_CLOSE = 2, | |
| TXTHITRESULT_HIT = 3 | |
| }; | |
| enum TXTNATURALSIZE { | |
| TXTNS_FITTOCONTENT = 1, | |
| TXTNS_ROUNDTOLINE = 2 | |
| }; | |
| enum TXTVIEW { | |
| TXTVIEW_ACTIVE = 0, | |
| TXTVIEW_INACTIVE = 1 | |
| }; | |
| #define TXTBIT_RICHTEXT 0x000001 | |
| #define TXTBIT_MULTILINE 0x000002 | |
| #define TXTBIT_READONLY 0x000004 | |
| #define TXTBIT_SHOWACCELERATOR 0x000008 | |
| #define TXTBIT_USEPASSWORD 0x000010 | |
| #define TXTBIT_HIDESELECTION 0x000020 | |
| #define TXTBIT_SAVESELECTION 0x000040 | |
| #define TXTBIT_AUTOWORDSEL 0x000080 | |
| #define TXTBIT_VERTICAL 0x000100 | |
| #define TXTBIT_SELBARCHANGE 0x000200 | |
| #define TXTBIT_WORDWRAP 0x000400 | |
| #define TXTBIT_ALLOWBEEP 0x000800 | |
| #define TXTBIT_DISABLEDRAG 0x001000 | |
| #define TXTBIT_VIEWINSETCHANGE 0x002000 | |
| #define TXTBIT_BACKSTYLECHANGE 0x004000 | |
| #define TXTBIT_MAXLENGTHCHANGE 0x008000 | |
| #define TXTBIT_SCROLLBARCHANGE 0x010000 | |
| #define TXTBIT_CHARFORMATCHANGE 0x020000 | |
| #define TXTBIT_PARAFORMATCHANGE 0x040000 | |
| #define TXTBIT_EXTENTCHANGE 0x080000 | |
| #define TXTBIT_CLIENTRECTCHANGE 0x100000 | |
| #define TXTBIT_USECURRENTBKG 0x200000 | |
| /***************************************************************************** | |
| * ITextHost interface | |
| */ | |
| #define INTERFACE ITextHost | |
| DECLARE_INTERFACE_(ITextHost,IUnknown) | |
| { | |
| /*** IUnknown methods ***/ | |
| STDMETHOD(QueryInterface)(THIS_ | |
| REFIID riid, | |
| void** ppvObject) PURE; | |
| STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| /*** ITextHost methods ***/ | |
| STDMETHOD_(HDC,TxGetDC)( THIS | |
| ) PURE; | |
| STDMETHOD_(INT,TxReleaseDC)( THIS_ | |
| HDC hdc) PURE; | |
| STDMETHOD_(BOOL,TxShowScrollBar)( THIS_ | |
| INT fnBar, | |
| BOOL fShow) PURE; | |
| STDMETHOD_(BOOL,TxEnableScrollBar)( THIS_ | |
| INT fuSBFlags, | |
| INT fuArrowflags) PURE; | |
| STDMETHOD_(BOOL,TxSetScrollRange)( THIS_ | |
| INT fnBar, | |
| LONG nMinPos, | |
| INT nMaxPos, | |
| BOOL fRedraw) PURE; | |
| STDMETHOD_(BOOL,TxSetScrollPos)( THIS_ | |
| INT fnBar, | |
| INT nPos, | |
| BOOL fRedraw) PURE; | |
| STDMETHOD_(void,TxInvalidateRect)( THIS_ | |
| LPCRECT prc, | |
| BOOL fMode) PURE; | |
| STDMETHOD_(void,TxViewChange)( THIS_ | |
| BOOL fUpdate) PURE; | |
| STDMETHOD_(BOOL,TxCreateCaret)( THIS_ | |
| HBITMAP hbmp, | |
| INT xWidth, | |
| INT yHeight) PURE; | |
| STDMETHOD_(BOOL,TxShowCaret)( THIS_ | |
| BOOL fShow) PURE; | |
| STDMETHOD_(BOOL,TxSetCaretPos)( THIS_ | |
| INT x, | |
| INT y) PURE; | |
| STDMETHOD_(BOOL,TxSetTimer)( THIS_ | |
| UINT idTimer, | |
| UINT uTimeout) PURE; | |
| STDMETHOD_(void,TxKillTimer)( THIS_ | |
| UINT idTimer) PURE; | |
| STDMETHOD_(void,TxScrollWindowEx)( THIS_ | |
| INT dx, | |
| INT dy, | |
| LPCRECT lprcScroll, | |
| LPCRECT lprcClip, | |
| HRGN hRgnUpdate, | |
| LPRECT lprcUpdate, | |
| UINT fuScroll) PURE; | |
| STDMETHOD_(void,TxSetCapture)( THIS_ | |
| BOOL fCapture) PURE; | |
| STDMETHOD_(void,TxSetFocus)( THIS | |
| ) PURE; | |
| STDMETHOD_(void,TxSetCursor)( THIS_ | |
| HCURSOR hcur, | |
| BOOL fText) PURE; | |
| STDMETHOD_(BOOL,TxScreenToClient)( THIS_ | |
| LPPOINT lppt) PURE; | |
| STDMETHOD_(BOOL,TxClientToScreen)( THIS_ | |
| LPPOINT lppt) PURE; | |
| STDMETHOD(TxActivate)( THIS_ | |
| LONG* plOldState) PURE; | |
| STDMETHOD(TxDeactivate)( THIS_ | |
| LONG lNewState) PURE; | |
| STDMETHOD(TxGetClientRect)( THIS_ | |
| LPRECT prc) PURE; | |
| STDMETHOD(TxGetViewInset)( THIS_ | |
| LPRECT prc) PURE; | |
| STDMETHOD(TxGetCharFormat)( THIS_ | |
| const CHARFORMATW** ppCF) PURE; | |
| STDMETHOD(TxGetParaFormat)( THIS_ | |
| const PARAFORMAT** ppPF) PURE; | |
| STDMETHOD_(COLORREF,TxGetSysColor)( THIS_ | |
| int nIndex) PURE; | |
| STDMETHOD(TxGetBackStyle)( THIS_ | |
| TXTBACKSTYLE* pStyle) PURE; | |
| STDMETHOD(TxGetMaxLength)( THIS_ | |
| DWORD* plength) PURE; | |
| STDMETHOD(TxGetScrollBars)( THIS_ | |
| DWORD* pdwScrollBar) PURE; | |
| STDMETHOD(TxGetPasswordChar)( THIS_ | |
| WCHAR* pch) PURE; | |
| STDMETHOD(TxGetAcceleratorPos)( THIS_ | |
| LONG* pch) PURE; | |
| STDMETHOD(TxGetExtent)( THIS_ | |
| LPSIZEL lpExtent) PURE; | |
| STDMETHOD(OnTxCharFormatChange)( THIS_ | |
| const CHARFORMATW* pcf) PURE; | |
| STDMETHOD(OnTxParaFormatChange)( THIS_ | |
| const PARAFORMAT* ppf) PURE; | |
| STDMETHOD(TxGetPropertyBits)( THIS_ | |
| DWORD dwMask, | |
| DWORD* pdwBits) PURE; | |
| STDMETHOD(TxNotify)( THIS_ | |
| DWORD iNotify, | |
| void* pv) PURE; | |
| STDMETHOD_(HIMC,TxImmGetContext)( THIS | |
| ) PURE; | |
| STDMETHOD_(void,TxImmReleaseContext)( THIS_ | |
| HIMC himc) PURE; | |
| STDMETHOD(TxGetSelectionBarWidth)( THIS_ | |
| LONG* lSelBarWidth) PURE; | |
| }; | |
| #ifdef COBJMACROS | |
| /*** IUnknown methods ***/ | |
| #define ITextHost_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) | |
| #define ITextHost_AddRef(p) (p)->lpVtbl->AddRef(p) | |
| #define ITextHost_Release(p) (p)->lpVtbl->Release(p) | |
| #endif | |
| #undef INTERFACE | |
| HRESULT WINAPI CreateTextServices(IUnknown*,ITextHost*,IUnknown**); | |
| typedef HRESULT (WINAPI *PCreateTextServices)(IUnknown*,ITextHost*,IUnknown**); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /* _TEXTSERV_H */ |