ReactOS  0.4.15-dev-1070-ge1a01de
txthost.c File Reference
#include "editor.h"
#include "ole2.h"
#include "richole.h"
#include "imm.h"
#include "textserv.h"
#include "wine/asm.h"
#include "wine/debug.h"
#include "editstr.h"
Include dependency graph for txthost.c:

Go to the source code of this file.

Classes

struct  ITextHostImpl
 

Macros

#define COBJMACROS
 

Typedefs

typedef struct ITextHostImpl ITextHostImpl
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (richedit)
 
ITextHost * ME_CreateTextHost (HWND hwnd, CREATESTRUCTW *cs, BOOL bEmulateVersion10)
 
static ITextHostImplimpl_from_ITextHost (ITextHost *iface)
 
static HRESULT WINAPI ITextHostImpl_QueryInterface (ITextHost *iface, REFIID riid, void **ppvObject)
 
static ULONG WINAPI ITextHostImpl_AddRef (ITextHost *iface)
 
static ULONG WINAPI ITextHostImpl_Release (ITextHost *iface)
 
DECLSPEC_HIDDEN HDC WINAPI ITextHostImpl_TxGetDC (ITextHost *iface)
 
DECLSPEC_HIDDEN INT WINAPI ITextHostImpl_TxReleaseDC (ITextHost *iface, HDC hdc)
 
DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxShowScrollBar (ITextHost *iface, INT fnBar, BOOL fShow)
 
DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxEnableScrollBar (ITextHost *iface, INT fuSBFlags, INT fuArrowflags)
 
DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxSetScrollRange (ITextHost *iface, INT fnBar, LONG nMinPos, INT nMaxPos, BOOL fRedraw)
 
DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxSetScrollPos (ITextHost *iface, INT fnBar, INT nPos, BOOL fRedraw)
 
DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxInvalidateRect (ITextHost *iface, LPCRECT prc, BOOL fMode)
 
DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxViewChange (ITextHost *iface, BOOL fUpdate)
 
DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxCreateCaret (ITextHost *iface, HBITMAP hbmp, INT xWidth, INT yHeight)
 
DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxShowCaret (ITextHost *iface, BOOL fShow)
 
DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxSetCaretPos (ITextHost *iface, INT x, INT y)
 
DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxSetTimer (ITextHost *iface, UINT idTimer, UINT uTimeout)
 
DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxKillTimer (ITextHost *iface, UINT idTimer)
 
DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxScrollWindowEx (ITextHost *iface, INT dx, INT dy, LPCRECT lprcScroll, LPCRECT lprcClip, HRGN hRgnUpdate, LPRECT lprcUpdate, UINT fuScroll)
 
DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxSetCapture (ITextHost *iface, BOOL fCapture)
 
DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxSetFocus (ITextHost *iface)
 
DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxSetCursor (ITextHost *iface, HCURSOR hcur, BOOL fText)
 
DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxScreenToClient (ITextHost *iface, LPPOINT lppt)
 
DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxClientToScreen (ITextHost *iface, LPPOINT lppt)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxActivate (ITextHost *iface, LONG *plOldState)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxDeactivate (ITextHost *iface, LONG lNewState)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetClientRect (ITextHost *iface, LPRECT prc)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetViewInset (ITextHost *iface, LPRECT prc)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetCharFormat (ITextHost *iface, const CHARFORMATW **ppCF)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetParaFormat (ITextHost *iface, const PARAFORMAT **fmt)
 
DECLSPEC_HIDDEN COLORREF WINAPI ITextHostImpl_TxGetSysColor (ITextHost *iface, int nIndex)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetBackStyle (ITextHost *iface, TXTBACKSTYLE *pStyle)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetMaxLength (ITextHost *iface, DWORD *pLength)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetScrollBars (ITextHost *iface, DWORD *pdwScrollBar)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetPasswordChar (ITextHost *iface, WCHAR *pch)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetAcceleratorPos (ITextHost *iface, LONG *pch)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetExtent (ITextHost *iface, LPSIZEL lpExtent)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_OnTxCharFormatChange (ITextHost *iface, const CHARFORMATW *pcf)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_OnTxParaFormatChange (ITextHost *iface, const PARAFORMAT *ppf)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetPropertyBits (ITextHost *iface, DWORD dwMask, DWORD *pdwBits)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxNotify (ITextHost *iface, DWORD iNotify, void *pv)
 
DECLSPEC_HIDDEN HIMC WINAPI ITextHostImpl_TxImmGetContext (ITextHost *iface)
 
DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxImmReleaseContext (ITextHost *iface, HIMC himc)
 
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetSelectionBarWidth (ITextHost *iface, LONG *lSelBarWidth)
 

Variables

static const ITextHostVtbl textHostVtbl
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 21 of file txthost.c.

Typedef Documentation

◆ ITextHostImpl

Function Documentation

◆ impl_from_ITextHost()

◆ ITextHostImpl_AddRef()

static ULONG WINAPI ITextHostImpl_AddRef ( ITextHost *  iface)
static

Definition at line 86 of file txthost.c.

87 {
90  return ref;
91 }
Definition: send.c:48
GLenum GLint ref
Definition: glext.h:6028
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
#define InterlockedIncrement
Definition: armddk.h:53
unsigned int ULONG
Definition: retypes.h:1

◆ ITextHostImpl_OnTxCharFormatChange()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_OnTxCharFormatChange ( ITextHost *  iface,
const CHARFORMATW pcf 
)

Definition at line 340 of file txthost.c.

342 {
343  return S_OK;
344 }
#define S_OK
Definition: intsafe.h:51

◆ ITextHostImpl_OnTxParaFormatChange()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_OnTxParaFormatChange ( ITextHost *  iface,
const PARAFORMAT ppf 
)

Definition at line 346 of file txthost.c.

348 {
349  return S_OK;
350 }
#define S_OK
Definition: intsafe.h:51

◆ ITextHostImpl_QueryInterface()

static HRESULT WINAPI ITextHostImpl_QueryInterface ( ITextHost *  iface,
REFIID  riid,
void **  ppvObject 
)
static

Definition at line 72 of file txthost.c.

73 {
75 
76  if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_ITextHost)) {
77  *ppvObject = &This->ITextHost_iface;
78  ITextHost_AddRef((ITextHost *)*ppvObject);
79  return S_OK;
80  }
81 
82  FIXME("Unknown interface: %s\n", debugstr_guid(riid));
83  return E_NOINTERFACE;
84 }
#define E_NOINTERFACE
Definition: winerror.h:2364
REFIID riid
Definition: precomp.h:44
#define FIXME(fmt,...)
Definition: debug.h:111
#define debugstr_guid
Definition: kernel32.h:35
const GUID IID_IUnknown
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
REFIID LPVOID * ppvObject
Definition: precomp.h:44
#define S_OK
Definition: intsafe.h:51
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95

◆ ITextHostImpl_Release()

static ULONG WINAPI ITextHostImpl_Release ( ITextHost *  iface)
static

Definition at line 93 of file txthost.c.

94 {
97 
98  if (!ref)
99  {
100  SetWindowLongPtrW(This->hWnd, 0, 0);
102  }
103  return ref;
104 }
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:442
Definition: send.c:48
GLenum GLint ref
Definition: glext.h:6028
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
#define InterlockedDecrement
Definition: armddk.h:52
unsigned int ULONG
Definition: retypes.h:1
#define SetWindowLongPtrW
Definition: winuser.h:5321

◆ ITextHostImpl_TxActivate()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxActivate ( ITextHost *  iface,
LONG plOldState 
)

Definition at line 232 of file txthost.c.

233 {
235  *plOldState = HandleToLong(SetActiveWindow(This->hWnd));
236  return (*plOldState ? S_OK : E_FAIL);
237 }
#define E_FAIL
Definition: ddrawi.h:102
HWND WINAPI SetActiveWindow(_In_ HWND)
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
#define S_OK
Definition: intsafe.h:51
#define HandleToLong(h)
Definition: basetsd.h:80

◆ ITextHostImpl_TxClientToScreen()

DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxClientToScreen ( ITextHost *  iface,
LPPOINT  lppt 
)

Definition at line 226 of file txthost.c.

227 {
229  return ClientToScreen(This->hWnd, lppt);
230 }
BOOL WINAPI ClientToScreen(_In_ HWND, _Inout_ LPPOINT)
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67

◆ ITextHostImpl_TxCreateCaret()

DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxCreateCaret ( ITextHost *  iface,
HBITMAP  hbmp,
INT  xWidth,
INT  yHeight 
)

Definition at line 156 of file txthost.c.

157 {
159  return CreateCaret(This->hWnd, hbmp, xWidth, yHeight);
160 }
BOOL WINAPI CreateCaret(_In_ HWND, _In_opt_ HBITMAP, _In_ int, _In_ int)
HBITMAP hbmp
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67

◆ ITextHostImpl_TxDeactivate()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxDeactivate ( ITextHost *  iface,
LONG  lNewState 
)

Definition at line 239 of file txthost.c.

241 {
242  HWND ret = SetActiveWindow(LongToHandle(lNewState));
243  return (ret ? S_OK : E_FAIL);
244 }
#define E_FAIL
Definition: ddrawi.h:102
HWND WINAPI SetActiveWindow(_In_ HWND)
int ret
#define LongToHandle(h)
Definition: basetsd.h:82
#define S_OK
Definition: intsafe.h:51

◆ ITextHostImpl_TxEnableScrollBar()

DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxEnableScrollBar ( ITextHost *  iface,
INT  fuSBFlags,
INT  fuArrowflags 
)

Definition at line 124 of file txthost.c.

125 {
127  return EnableScrollBar(This->hWnd, fuSBFlags, fuArrowflags);
128 }
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
BOOL WINAPI EnableScrollBar(_In_ HWND, _In_ UINT, _In_ UINT)

◆ ITextHostImpl_TxGetAcceleratorPos()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetAcceleratorPos ( ITextHost *  iface,
LONG pch 
)

Definition at line 327 of file txthost.c.

329 {
330  *pch = -1;
331  return S_OK;
332 }
#define pch(ap)
Definition: match.c:418
#define S_OK
Definition: intsafe.h:51

◆ ITextHostImpl_TxGetBackStyle()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetBackStyle ( ITextHost *  iface,
TXTBACKSTYLE pStyle 
)

Definition at line 283 of file txthost.c.

285 {
286  *pStyle = TXTBACK_OPAQUE;
287  return S_OK;
288 }
#define S_OK
Definition: intsafe.h:51

◆ ITextHostImpl_TxGetCharFormat()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetCharFormat ( ITextHost *  iface,
const CHARFORMATW **  ppCF 
)

Definition at line 263 of file txthost.c.

265 {
266  return E_NOTIMPL;
267 }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ ITextHostImpl_TxGetClientRect()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetClientRect ( ITextHost *  iface,
LPRECT  prc 
)

Definition at line 246 of file txthost.c.

247 {
249  int ret = GetClientRect(This->hWnd, prc);
250  return (ret ? S_OK : E_FAIL);
251 }
#define E_FAIL
Definition: ddrawi.h:102
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
int ret
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define S_OK
Definition: intsafe.h:51
_Out_ LPRECT prc
Definition: ntgdi.h:1658

◆ ITextHostImpl_TxGetDC()

DECLSPEC_HIDDEN HDC WINAPI ITextHostImpl_TxGetDC ( ITextHost *  iface)

Definition at line 106 of file txthost.c.

107 {
109  return GetDC(This->hWnd);
110 }
HDC WINAPI GetDC(_In_opt_ HWND)
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67

◆ ITextHostImpl_TxGetExtent()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetExtent ( ITextHost *  iface,
LPSIZEL  lpExtent 
)

Definition at line 334 of file txthost.c.

336 {
337  return E_NOTIMPL;
338 }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ ITextHostImpl_TxGetMaxLength()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetMaxLength ( ITextHost *  iface,
DWORD pLength 
)

Definition at line 290 of file txthost.c.

292 {
293  *pLength = INFINITE;
294  return S_OK;
295 }
#define S_OK
Definition: intsafe.h:51
#define INFINITE
Definition: serial.h:102

◆ ITextHostImpl_TxGetParaFormat()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetParaFormat ( ITextHost *  iface,
const PARAFORMAT **  fmt 
)

Definition at line 269 of file txthost.c.

271 {
273  *fmt = (const PARAFORMAT *)&This->para_fmt;
274  return S_OK;
275 }
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
#define S_OK
Definition: intsafe.h:51
Definition: dsound.c:943

◆ ITextHostImpl_TxGetPasswordChar()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetPasswordChar ( ITextHost *  iface,
WCHAR pch 
)

Definition at line 320 of file txthost.c.

322 {
323  *pch = '*';
324  return S_OK;
325 }
#define pch(ap)
Definition: match.c:418
#define S_OK
Definition: intsafe.h:51

◆ ITextHostImpl_TxGetPropertyBits()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetPropertyBits ( ITextHost *  iface,
DWORD  dwMask,
DWORD pdwBits 
)

Definition at line 352 of file txthost.c.

353 {
355  ME_TextEditor *editor = (ME_TextEditor *)GetWindowLongPtrW(This->hWnd, 0);
356  DWORD style;
357  DWORD dwBits = 0;
358 
359  if (editor)
360  {
361  style = editor->styleFlags;
362  if (editor->mode & TM_RICHTEXT)
363  dwBits |= TXTBIT_RICHTEXT;
364  if (editor->bWordWrap)
365  dwBits |= TXTBIT_WORDWRAP;
367  dwBits |= TXTBIT_AUTOWORDSEL;
368  } else {
369  DWORD dwScrollBar;
370 
372  ITextHostImpl_TxGetScrollBars(iface, &dwScrollBar);
373 
375  if (!(dwScrollBar & ES_AUTOHSCROLL))
376  dwBits |= TXTBIT_WORDWRAP;
377  }
378 
379  /* Bits that correspond to window styles. */
380  if (style & ES_MULTILINE)
381  dwBits |= TXTBIT_MULTILINE;
382  if (style & ES_READONLY)
383  dwBits |= TXTBIT_READONLY;
384  if (style & ES_PASSWORD)
385  dwBits |= TXTBIT_USEPASSWORD;
386  if (!(style & ES_NOHIDESEL))
387  dwBits |= TXTBIT_HIDESELECTION;
388  if (style & ES_SAVESEL)
389  dwBits |= TXTBIT_SAVESELECTION;
390  if (style & ES_VERTICAL)
391  dwBits |= TXTBIT_VERTICAL;
392  if (style & ES_NOOLEDRAGDROP)
393  dwBits |= TXTBIT_DISABLEDRAG;
394 
395  dwBits |= TXTBIT_ALLOWBEEP;
396 
397  /* The following bits are always FALSE because they are probably only
398  * needed for ITextServices_OnTxPropertyBitsChange:
399  * TXTBIT_VIEWINSETCHANGE
400  * TXTBIT_BACKSTYLECHANGE
401  * TXTBIT_MAXLENGTHCHANGE
402  * TXTBIT_CHARFORMATCHANGE
403  * TXTBIT_PARAFORMATCHANGE
404  * TXTBIT_SHOWACCELERATOR
405  * TXTBIT_EXTENTCHANGE
406  * TXTBIT_SELBARCHANGE
407  * TXTBIT_SCROLLBARCHANGE
408  * TXTBIT_CLIENTRECTCHANGE
409  *
410  * Documented by MSDN as not supported:
411  * TXTBIT_USECURRENTBKG
412  */
413 
414  *pdwBits = dwBits & dwMask;
415  return S_OK;
416 }
#define ES_VERTICAL
Definition: richedit.h:229
DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetScrollBars(ITextHost *iface, DWORD *pdwScrollBar)
Definition: txthost.c:297
DWORD styleFlags
Definition: editstr.h:388
#define ES_MULTILINE
Definition: pedump.c:667
#define ECO_AUTOWORDSELECTION
Definition: richedit.h:456
#define ES_READONLY
Definition: pedump.c:675
#define GetWindowLongPtrW
Definition: winuser.h:4804
#define ES_PASSWORD
Definition: pedump.c:670
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
#define TXTBIT_USEPASSWORD
Definition: textserv.h:180
#define TXTBIT_AUTOWORDSEL
Definition: textserv.h:183
#define TXTBIT_SAVESELECTION
Definition: textserv.h:182
#define TXTBIT_HIDESELECTION
Definition: textserv.h:181
#define TXTBIT_WORDWRAP
Definition: textserv.h:186
unsigned long DWORD
Definition: ntddk_ex.h:95
#define TXTBIT_READONLY
Definition: textserv.h:178
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
#define ES_NOHIDESEL
Definition: pedump.c:673
#define TXTBIT_MULTILINE
Definition: textserv.h:177
#define ES_SAVESEL
Definition: richedit.h:226
#define TXTBIT_RICHTEXT
Definition: textserv.h:176
#define TM_RICHTEXT
Definition: richedit.h:1029
#define GWL_STYLE
Definition: winuser.h:846
#define S_OK
Definition: intsafe.h:51
#define TXTBIT_ALLOWBEEP
Definition: textserv.h:187
Arabic default style
Definition: afstyles.h:93
#define TXTBIT_VERTICAL
Definition: textserv.h:184
#define ES_AUTOHSCROLL
Definition: pedump.c:672
#define ES_NOOLEDRAGDROP
Definition: richedit.h:223
#define TXTBIT_DISABLEDRAG
Definition: textserv.h:188

◆ ITextHostImpl_TxGetScrollBars()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetScrollBars ( ITextHost *  iface,
DWORD pdwScrollBar 
)

Definition at line 297 of file txthost.c.

298 {
300  ME_TextEditor *editor = (ME_TextEditor*)GetWindowLongPtrW(This->hWnd, 0);
301  const DWORD mask = WS_VSCROLL|
302  WS_HSCROLL|
306  if (editor)
307  {
308  *pdwScrollBar = editor->styleFlags & mask;
309  } else {
311  if (style & WS_VSCROLL)
313  if (!This->bEmulateVersion10 && (style & WS_HSCROLL))
315  *pdwScrollBar = style & mask;
316  }
317  return S_OK;
318 }
DWORD styleFlags
Definition: editstr.h:388
#define GetWindowLongPtrW
Definition: winuser.h:4804
GLenum GLint GLuint mask
Definition: glext.h:6028
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
#define ES_AUTOVSCROLL
Definition: pedump.c:671
unsigned long DWORD
Definition: ntddk_ex.h:95
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
#define WS_HSCROLL
Definition: pedump.c:628
#define ES_DISABLENOSCROLL
Definition: richedit.h:224
#define GWL_STYLE
Definition: winuser.h:846
#define S_OK
Definition: intsafe.h:51
#define WS_VSCROLL
Definition: pedump.c:627
Arabic default style
Definition: afstyles.h:93
#define ES_AUTOHSCROLL
Definition: pedump.c:672

Referenced by ITextHostImpl_TxGetPropertyBits().

◆ ITextHostImpl_TxGetSelectionBarWidth()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetSelectionBarWidth ( ITextHost *  iface,
LONG lSelBarWidth 
)

Definition at line 488 of file txthost.c.

489 {
491  ME_TextEditor *editor = (ME_TextEditor *)GetWindowLongPtrW(This->hWnd, 0);
492 
493  DWORD style = editor ? editor->styleFlags
494  : GetWindowLongW(This->hWnd, GWL_STYLE);
495  *lSelBarWidth = (style & ES_SELECTIONBAR) ? 225 : 0; /* in HIMETRIC */
496  return S_OK;
497 }
DWORD styleFlags
Definition: editstr.h:388
#define GetWindowLongPtrW
Definition: winuser.h:4804
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
#define ES_SELECTIONBAR
Definition: richedit.h:230
unsigned long DWORD
Definition: ntddk_ex.h:95
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
#define GWL_STYLE
Definition: winuser.h:846
#define S_OK
Definition: intsafe.h:51
Arabic default style
Definition: afstyles.h:93

◆ ITextHostImpl_TxGetSysColor()

DECLSPEC_HIDDEN COLORREF WINAPI ITextHostImpl_TxGetSysColor ( ITextHost *  iface,
int  nIndex 
)

Definition at line 277 of file txthost.c.

279 {
280  return GetSysColor(nIndex);
281 }
DWORD WINAPI GetSysColor(_In_ int)

◆ ITextHostImpl_TxGetViewInset()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetViewInset ( ITextHost *  iface,
LPRECT  prc 
)

Definition at line 253 of file txthost.c.

255 {
256  prc->top = 0;
257  prc->left = 0;
258  prc->bottom = 0;
259  prc->right = 0;
260  return S_OK;
261 }
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
LONG right
Definition: windef.h:308
#define S_OK
Definition: intsafe.h:51
LONG bottom
Definition: windef.h:309
_Out_ LPRECT prc
Definition: ntgdi.h:1658

◆ ITextHostImpl_TxImmGetContext()

DECLSPEC_HIDDEN HIMC WINAPI ITextHostImpl_TxImmGetContext ( ITextHost *  iface)

Definition at line 476 of file txthost.c.

477 {
479  return ImmGetContext(This->hWnd);
480 }
HIMC WINAPI ImmGetContext(HWND hWnd)
Definition: imm.c:1526
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67

◆ ITextHostImpl_TxImmReleaseContext()

DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxImmReleaseContext ( ITextHost *  iface,
HIMC  himc 
)

Definition at line 482 of file txthost.c.

483 {
485  ImmReleaseContext(This->hWnd, himc);
486 }
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
BOOL WINAPI ImmReleaseContext(HWND hWnd, HIMC hIMC)
Definition: imm.c:2283

◆ ITextHostImpl_TxInvalidateRect()

DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxInvalidateRect ( ITextHost *  iface,
LPCRECT  prc,
BOOL  fMode 
)

Definition at line 143 of file txthost.c.

144 {
146  InvalidateRect(This->hWnd, prc, fMode);
147 }
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
_Out_ LPRECT prc
Definition: ntgdi.h:1658

◆ ITextHostImpl_TxKillTimer()

DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxKillTimer ( ITextHost *  iface,
UINT  idTimer 
)

Definition at line 183 of file txthost.c.

184 {
186  KillTimer(This->hWnd, idTimer);
187 }
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)

◆ ITextHostImpl_TxNotify()

DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxNotify ( ITextHost *  iface,
DWORD  iNotify,
void pv 
)

Definition at line 418 of file txthost.c.

419 {
421  ME_TextEditor *editor = (ME_TextEditor*)GetWindowLongPtrW(This->hWnd, 0);
422  HWND hwnd = This->hWnd;
423  UINT id;
424 
425  if (!editor || !editor->hwndParent) return S_OK;
426 
427  id = GetWindowLongW(hwnd, GWLP_ID);
428 
429  switch (iNotify)
430  {
431  case EN_DROPFILES:
432  case EN_LINK:
433  case EN_OLEOPFAILED:
434  case EN_PROTECTED:
435  case EN_REQUESTRESIZE:
436  case EN_SAVECLIPBOARD:
437  case EN_SELCHANGE:
438  case EN_STOPNOUNDO:
439  {
440  /* FIXME: Verify this assumption that pv starts with NMHDR. */
441  NMHDR *info = pv;
442  if (!info)
443  return E_FAIL;
444 
445  info->hwndFrom = hwnd;
446  info->idFrom = id;
447  info->code = iNotify;
448  SendMessageW(editor->hwndParent, WM_NOTIFY, id, (LPARAM)info);
449  break;
450  }
451 
452  case EN_UPDATE:
453  /* Only sent when the window is visible. */
454  if (!IsWindowVisible(hwnd))
455  break;
456  /* Fall through */
457  case EN_CHANGE:
458  case EN_ERRSPACE:
459  case EN_HSCROLL:
460  case EN_KILLFOCUS:
461  case EN_MAXTEXT:
462  case EN_SETFOCUS:
463  case EN_VSCROLL:
464  SendMessageW(editor->hwndParent, WM_COMMAND, MAKEWPARAM(id, iNotify), (LPARAM)hwnd);
465  break;
466 
467  case EN_MSGFILTER:
468  FIXME("EN_MSGFILTER is documented as not being sent to TxNotify\n");
469  /* fall through */
470  default:
471  return E_FAIL;
472  }
473  return S_OK;
474 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define EN_MAXTEXT
Definition: winuser.h:2008
#define MAKEWPARAM(l, h)
Definition: winuser.h:3984
#define EN_SELCHANGE
Definition: richedit.h:193
#define EN_PROTECTED
Definition: richedit.h:195
#define GetWindowLongPtrW
Definition: winuser.h:4804
#define E_FAIL
Definition: ddrawi.h:102
#define EN_SAVECLIPBOARD
Definition: richedit.h:199
#define EN_KILLFOCUS
Definition: winuser.h:2007
#define EN_SETFOCUS
Definition: winuser.h:2009
#define FIXME(fmt,...)
Definition: debug.h:111
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
#define EN_ERRSPACE
Definition: winuser.h:2005
LONG_PTR LPARAM
Definition: windef.h:208
#define EN_MSGFILTER
Definition: richedit.h:191
#define EN_DROPFILES
Definition: richedit.h:194
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
#define EN_OLEOPFAILED
Definition: richedit.h:200
#define WM_COMMAND
Definition: winuser.h:1722
#define EN_HSCROLL
Definition: winuser.h:2006
#define EN_VSCROLL
Definition: winuser.h:2011
#define S_OK
Definition: intsafe.h:51
#define EN_LINK
Definition: richedit.h:202
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
unsigned int UINT
Definition: ndis.h:50
GLenum GLuint id
Definition: glext.h:5579
BOOL WINAPI IsWindowVisible(_In_ HWND)
#define EN_UPDATE
Definition: winuser.h:2010
#define EN_STOPNOUNDO
Definition: richedit.h:197
#define EN_REQUESTRESIZE
Definition: richedit.h:192
#define GWLP_ID
Definition: winuser.h:854
#define WM_NOTIFY
Definition: richedit.h:61
#define EN_CHANGE
Definition: winuser.h:2004

◆ ITextHostImpl_TxReleaseDC()

DECLSPEC_HIDDEN INT WINAPI ITextHostImpl_TxReleaseDC ( ITextHost *  iface,
HDC  hdc 
)

Definition at line 112 of file txthost.c.

113 {
115  return ReleaseDC(This->hWnd, hdc);
116 }
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
HDC hdc
Definition: main.c:9

◆ ITextHostImpl_TxScreenToClient()

DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxScreenToClient ( ITextHost *  iface,
LPPOINT  lppt 
)

Definition at line 220 of file txthost.c.

221 {
223  return ScreenToClient(This->hWnd, lppt);
224 }
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
BOOL WINAPI ScreenToClient(_In_ HWND, _Inout_ LPPOINT)

◆ ITextHostImpl_TxScrollWindowEx()

DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxScrollWindowEx ( ITextHost *  iface,
INT  dx,
INT  dy,
LPCRECT  lprcScroll,
LPCRECT  lprcClip,
HRGN  hRgnUpdate,
LPRECT  lprcUpdate,
UINT  fuScroll 
)

Definition at line 189 of file txthost.c.

192 {
194  ScrollWindowEx(This->hWnd, dx, dy, lprcScroll, lprcClip,
195  hRgnUpdate, lprcUpdate, fuScroll);
196 }
GLint dy
Definition: linetemp.h:97
int WINAPI ScrollWindowEx(_In_ HWND, _In_ int, _In_ int, _In_opt_ LPCRECT, _In_opt_ LPCRECT, _In_opt_ HRGN, _Out_opt_ LPRECT, _In_ UINT)
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
GLint dx
Definition: linetemp.h:97

◆ ITextHostImpl_TxSetCapture()

DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxSetCapture ( ITextHost *  iface,
BOOL  fCapture 
)

Definition at line 198 of file txthost.c.

199 {
201  if (fCapture)
202  SetCapture(This->hWnd);
203  else
204  ReleaseCapture();
205 }
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
HWND WINAPI SetCapture(_In_ HWND hWnd)
BOOL WINAPI ReleaseCapture(void)
Definition: message.c:2889

◆ ITextHostImpl_TxSetCaretPos()

DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxSetCaretPos ( ITextHost *  iface,
INT  x,
INT  y 
)

Definition at line 171 of file txthost.c.

173 {
174  return SetCaretPos(x, y);
175 }
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
BOOL WINAPI SetCaretPos(_In_ int, _In_ int)

◆ ITextHostImpl_TxSetCursor()

DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxSetCursor ( ITextHost *  iface,
HCURSOR  hcur,
BOOL  fText 
)

Definition at line 213 of file txthost.c.

216 {
217  SetCursor(hcur);
218 }
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)

◆ ITextHostImpl_TxSetFocus()

DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxSetFocus ( ITextHost *  iface)

Definition at line 207 of file txthost.c.

208 {
210  SetFocus(This->hWnd);
211 }
HWND WINAPI SetFocus(_In_opt_ HWND)
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67

◆ ITextHostImpl_TxSetScrollPos()

DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxSetScrollPos ( ITextHost *  iface,
INT  fnBar,
INT  nPos,
BOOL  fRedraw 
)

Definition at line 137 of file txthost.c.

138 {
140  return SetScrollPos(This->hWnd, fnBar, nPos, fRedraw) != 0;
141 }
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
int WINAPI SetScrollPos(_In_ HWND, _In_ int, _In_ int, _In_ BOOL)

◆ ITextHostImpl_TxSetScrollRange()

DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxSetScrollRange ( ITextHost *  iface,
INT  fnBar,
LONG  nMinPos,
INT  nMaxPos,
BOOL  fRedraw 
)

Definition at line 130 of file txthost.c.

132 {
134  return SetScrollRange(This->hWnd, fnBar, nMinPos, nMaxPos, fRedraw);
135 }
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
BOOL WINAPI SetScrollRange(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ BOOL)

◆ ITextHostImpl_TxSetTimer()

DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxSetTimer ( ITextHost *  iface,
UINT  idTimer,
UINT  uTimeout 
)

Definition at line 177 of file txthost.c.

178 {
180  return SetTimer(This->hWnd, idTimer, uTimeout, NULL) != 0;
181 }
smooth NULL
Definition: ftsmooth.c:416
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67

◆ ITextHostImpl_TxShowCaret()

DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxShowCaret ( ITextHost *  iface,
BOOL  fShow 
)

Definition at line 162 of file txthost.c.

163 {
165  if (fShow)
166  return ShowCaret(This->hWnd);
167  else
168  return HideCaret(This->hWnd);
169 }
BOOL WINAPI HideCaret(_In_opt_ HWND)
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67
BOOL WINAPI ShowCaret(_In_opt_ HWND)

◆ ITextHostImpl_TxShowScrollBar()

DECLSPEC_HIDDEN BOOL WINAPI ITextHostImpl_TxShowScrollBar ( ITextHost *  iface,
INT  fnBar,
BOOL  fShow 
)

Definition at line 118 of file txthost.c.

119 {
121  return ShowScrollBar(This->hWnd, fnBar, fShow);
122 }
BOOL WINAPI ShowScrollBar(_In_ HWND, _In_ int, _In_ BOOL)
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67

◆ ITextHostImpl_TxViewChange()

DECLSPEC_HIDDEN void WINAPI ITextHostImpl_TxViewChange ( ITextHost *  iface,
BOOL  fUpdate 
)

Definition at line 149 of file txthost.c.

150 {
152  if (fUpdate)
153  UpdateWindow(This->hWnd);
154 }
BOOL WINAPI UpdateWindow(_In_ HWND)
static ITextHostImpl * impl_from_ITextHost(ITextHost *iface)
Definition: txthost.c:67

◆ ME_CreateTextHost()

ITextHost* ME_CreateTextHost ( HWND  hwnd,
CREATESTRUCTW cs,
BOOL  bEmulateVersion10 
)

Definition at line 44 of file txthost.c.

45 {
46  ITextHostImpl *texthost;
47 
48  texthost = CoTaskMemAlloc(sizeof(*texthost));
49  if (!texthost) return NULL;
50 
51  texthost->ITextHost_iface.lpVtbl = &textHostVtbl;
52  texthost->ref = 1;
53  texthost->hWnd = hwnd;
54  texthost->bEmulateVersion10 = bEmulateVersion10;
55  memset( &texthost->para_fmt, 0, sizeof(texthost->para_fmt) );
56  texthost->para_fmt.cbSize = sizeof(texthost->para_fmt);
57  texthost->para_fmt.dwMask = PFM_ALIGNMENT;
58  texthost->para_fmt.wAlignment = PFA_LEFT;
59  if (cs->style & ES_RIGHT)
60  texthost->para_fmt.wAlignment = PFA_RIGHT;
61  if (cs->style & ES_CENTER)
62  texthost->para_fmt.wAlignment = PFA_CENTER;
63 
64  return &texthost->ITextHost_iface;
65 }
#define PFA_RIGHT
Definition: richedit.h:922
#define ES_CENTER
Definition: pedump.c:665
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
WORD wAlignment
Definition: richedit.h:673
#define PFM_ALIGNMENT
Definition: richedit.h:841
uint32_t cs
Definition: isohybrid.c:75
#define ES_RIGHT
Definition: pedump.c:666
LONG ref
Definition: txthost.c:36
HWND hWnd
Definition: txthost.c:37
smooth NULL
Definition: ftsmooth.c:416
DWORD dwMask
Definition: richedit.h:667
#define PFA_CENTER
Definition: richedit.h:923
ITextHost ITextHost_iface
Definition: txthost.c:35
PARAFORMAT2 para_fmt
Definition: txthost.c:39
BOOL bEmulateVersion10
Definition: txthost.c:38
static const ITextHostVtbl textHostVtbl
Definition: txthost.c:42
#define PFA_LEFT
Definition: richedit.h:921
UINT cbSize
Definition: richedit.h:666
#define memset(x, y, z)
Definition: compat.h:39
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: ifs.c:426

Referenced by create_windowed_editor().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( richedit  )

Variable Documentation

◆ textHostVtbl

static const ITextHostVtbl textHostVtbl
static

Definition at line 42 of file txthost.c.

Referenced by ME_CreateTextHost().