Commit 8e17457f authored by Huw Davies's avatar Huw Davies Committed by Alexandre Julliard

riched20: Add ITextHost2 support and use it to get the window for WM_CONTEXTMENU.

parent c4acdfd3
...@@ -2909,15 +2909,19 @@ static BOOL ME_ShowContextMenu(ME_TextEditor *editor, int x, int y) ...@@ -2909,15 +2909,19 @@ static BOOL ME_ShowContextMenu(ME_TextEditor *editor, int x, int y)
CHARRANGE selrange; CHARRANGE selrange;
HMENU menu; HMENU menu;
int seltype; int seltype;
HWND hwnd, parent;
if(!editor->lpOleCallback || !editor->hWnd) if (!editor->lpOleCallback || !editor->have_texthost2) return FALSE;
return FALSE; if (FAILED( ITextHost2_TxGetWindow( editor->texthost, &hwnd ))) return FALSE;
ME_GetSelectionOfs(editor, &selrange.cpMin, &selrange.cpMax); parent = GetParent( hwnd );
seltype = ME_GetSelectionType(editor); if (!parent) parent = hwnd;
if(SUCCEEDED(IRichEditOleCallback_GetContextMenu(editor->lpOleCallback, seltype, NULL, &selrange, &menu)))
ME_GetSelectionOfs( editor, &selrange.cpMin, &selrange.cpMax );
seltype = ME_GetSelectionType( editor );
if (SUCCEEDED( IRichEditOleCallback_GetContextMenu( editor->lpOleCallback, seltype, NULL, &selrange, &menu ) ))
{ {
TrackPopupMenu(menu, TPM_LEFTALIGN | TPM_RIGHTBUTTON, x, y, 0, editor->hwndParent, NULL); TrackPopupMenu( menu, TPM_LEFTALIGN | TPM_RIGHTBUTTON, x, y, 0, parent, NULL );
DestroyMenu(menu); DestroyMenu( menu );
} }
return TRUE; return TRUE;
} }
...@@ -2932,16 +2936,26 @@ ME_TextEditor *ME_MakeEditor(ITextHost *texthost, BOOL bEmulateVersion10) ...@@ -2932,16 +2936,26 @@ ME_TextEditor *ME_MakeEditor(ITextHost *texthost, BOOL bEmulateVersion10)
ed->hWnd = NULL; ed->hWnd = NULL;
ed->hwndParent = NULL; ed->hwndParent = NULL;
ed->sizeWindow.cx = ed->sizeWindow.cy = 0; ed->sizeWindow.cx = ed->sizeWindow.cy = 0;
ed->texthost = texthost; if (ITextHost_QueryInterface( texthost, &IID_ITextHost2, (void **)&ed->texthost ) == S_OK)
{
ITextHost_Release( texthost );
ed->have_texthost2 = TRUE;
}
else
{
ed->texthost = (ITextHost2 *)texthost;
ed->have_texthost2 = FALSE;
}
ed->reOle = NULL; ed->reOle = NULL;
ed->bEmulateVersion10 = bEmulateVersion10; ed->bEmulateVersion10 = bEmulateVersion10;
ed->in_place_active = FALSE; ed->in_place_active = FALSE;
ed->total_rows = 0; ed->total_rows = 0;
ITextHost_TxGetPropertyBits( texthost, TXTBIT_RICHTEXT | TXTBIT_MULTILINE | TXTBIT_READONLY | ITextHost_TxGetPropertyBits( ed->texthost, TXTBIT_RICHTEXT | TXTBIT_MULTILINE | TXTBIT_READONLY |
TXTBIT_USEPASSWORD | TXTBIT_HIDESELECTION | TXTBIT_SAVESELECTION | TXTBIT_USEPASSWORD | TXTBIT_HIDESELECTION | TXTBIT_SAVESELECTION |
TXTBIT_AUTOWORDSEL | TXTBIT_VERTICAL | TXTBIT_WORDWRAP | TXTBIT_DISABLEDRAG, TXTBIT_AUTOWORDSEL | TXTBIT_VERTICAL | TXTBIT_WORDWRAP | TXTBIT_DISABLEDRAG,
&ed->props ); &ed->props );
ITextHost_TxGetScrollBars( texthost, &ed->scrollbars ); ITextHost_TxGetScrollBars( ed->texthost, &ed->scrollbars );
ed->pBuffer = ME_MakeText(); ed->pBuffer = ME_MakeText();
ed->nZoomNumerator = ed->nZoomDenominator = 0; ed->nZoomNumerator = ed->nZoomDenominator = 0;
ed->nAvailWidth = 0; /* wrap to client area */ ed->nAvailWidth = 0; /* wrap to client area */
...@@ -3000,7 +3014,7 @@ ME_TextEditor *ME_MakeEditor(ITextHost *texthost, BOOL bEmulateVersion10) ...@@ -3000,7 +3014,7 @@ ME_TextEditor *ME_MakeEditor(ITextHost *texthost, BOOL bEmulateVersion10)
ed->password_char = 0; ed->password_char = 0;
if (ed->props & TXTBIT_USEPASSWORD) if (ed->props & TXTBIT_USEPASSWORD)
ITextHost_TxGetPasswordChar( texthost, &ed->password_char ); ITextHost_TxGetPasswordChar( ed->texthost, &ed->password_char );
ed->bWordWrap = (ed->props & TXTBIT_WORDWRAP) && (ed->props & TXTBIT_MULTILINE); ed->bWordWrap = (ed->props & TXTBIT_WORDWRAP) && (ed->props & TXTBIT_MULTILINE);
...@@ -3025,20 +3039,20 @@ ME_TextEditor *ME_MakeEditor(ITextHost *texthost, BOOL bEmulateVersion10) ...@@ -3025,20 +3039,20 @@ ME_TextEditor *ME_MakeEditor(ITextHost *texthost, BOOL bEmulateVersion10)
{ {
if (ed->scrollbars & WS_VSCROLL) if (ed->scrollbars & WS_VSCROLL)
{ {
ITextHost_TxSetScrollRange( texthost, SB_VERT, 0, 1, TRUE ); ITextHost_TxSetScrollRange( ed->texthost, SB_VERT, 0, 1, TRUE );
ITextHost_TxEnableScrollBar( texthost, SB_VERT, ESB_DISABLE_BOTH ); ITextHost_TxEnableScrollBar( ed->texthost, SB_VERT, ESB_DISABLE_BOTH );
} }
if (ed->scrollbars & WS_HSCROLL) if (ed->scrollbars & WS_HSCROLL)
{ {
ITextHost_TxSetScrollRange( texthost, SB_HORZ, 0, 1, TRUE ); ITextHost_TxSetScrollRange( ed->texthost, SB_HORZ, 0, 1, TRUE );
ITextHost_TxEnableScrollBar( texthost, SB_HORZ, ESB_DISABLE_BOTH ); ITextHost_TxEnableScrollBar( ed->texthost, SB_HORZ, ESB_DISABLE_BOTH );
} }
} }
ed->wheel_remain = 0; ed->wheel_remain = 0;
ed->back_style = TXTBACK_OPAQUE; ed->back_style = TXTBACK_OPAQUE;
ITextHost_TxGetBackStyle( texthost, &ed->back_style ); ITextHost_TxGetBackStyle( ed->texthost, &ed->back_style );
list_init( &ed->reobj_list ); list_init( &ed->reobj_list );
OleInitialize(NULL); OleInitialize(NULL);
......
...@@ -321,8 +321,8 @@ static inline ME_DisplayItem *cell_get_di(ME_Cell *cell) ...@@ -321,8 +321,8 @@ static inline ME_DisplayItem *cell_get_di(ME_Cell *cell)
/* txthost.c */ /* txthost.c */
#ifdef __ASM_USE_THISCALL_WRAPPER #ifdef __ASM_USE_THISCALL_WRAPPER
extern const struct ITextHostVtbl text_host_stdcall_vtbl DECLSPEC_HIDDEN; extern const struct ITextHost2Vtbl text_host2_stdcall_vtbl DECLSPEC_HIDDEN;
#define TXTHOST_VTABLE(This) (&text_host_stdcall_vtbl) #define TXTHOST_VTABLE(This) (&text_host2_stdcall_vtbl)
#else #else
#define TXTHOST_VTABLE(This) (This)->lpVtbl #define TXTHOST_VTABLE(This) (This)->lpVtbl
#endif #endif
...@@ -366,6 +366,19 @@ extern const struct ITextHostVtbl text_host_stdcall_vtbl DECLSPEC_HIDDEN; ...@@ -366,6 +366,19 @@ extern const struct ITextHostVtbl text_host_stdcall_vtbl DECLSPEC_HIDDEN;
#define ITextHost_TxImmGetContext(This) TXTHOST_VTABLE(This)->TxImmGetContext(This) #define ITextHost_TxImmGetContext(This) TXTHOST_VTABLE(This)->TxImmGetContext(This)
#define ITextHost_TxImmReleaseContext(This,a) TXTHOST_VTABLE(This)->TxImmReleaseContext(This,a) #define ITextHost_TxImmReleaseContext(This,a) TXTHOST_VTABLE(This)->TxImmReleaseContext(This,a)
#define ITextHost_TxGetSelectionBarWidth(This,a) TXTHOST_VTABLE(This)->TxGetSelectionBarWidth(This,a) #define ITextHost_TxGetSelectionBarWidth(This,a) TXTHOST_VTABLE(This)->TxGetSelectionBarWidth(This,a)
/* ITextHost2 */
#define ITextHost2_TxIsDoubleClickPending(This) TXTHOST_VTABLE(This)->TxIsDoubleClickPending(This)
#define ITextHost2_TxGetWindow(This,a) TXTHOST_VTABLE(This)->TxGetWindow(This,a)
#define ITextHost2_TxSetForegroundWindow(This) TXTHOST_VTABLE(This)->TxSetForegroundWindow(This)
#define ITextHost2_TxGetPalette(This) TXTHOST_VTABLE(This)->TxGetPalette(This)
#define ITextHost2_TxGetEastAsianFlags(This,a) TXTHOST_VTABLE(This)->TxGetEastAsianFlags(This,a)
#define ITextHost2_TxSetCursor2(This,a,b) TXTHOST_VTABLE(This)->TxSetCursor2(This,a,b)
#define ITextHost2_TxFreeTextServicesNotification(This) TXTHOST_VTABLE(This)->TxFreeTextServicesNotification(This)
#define ITextHost2_TxGetEditStyle(This,a,b) TXTHOST_VTABLE(This)->TxGetEditStyle(This,a,b)
#define ITextHost2_TxGetWindowStyles(This,a,b) TXTHOST_VTABLE(This)->TxGetWindowStyles(This,a,b)
#define ITextHost2_TxShowDropCaret(This,a,b,c) TXTHOST_VTABLE(This)->TxShowDropCaret(This,a,b,c)
#define ITextHost2_TxDestroyCaret(This) TXTHOST_VTABLE(This)->TxDestroyCaret(This)
#define ITextHost2_TxGetHorzExtent(This,a) TXTHOST_VTABLE(This)->TxGetHorzExtent(This,a)
/* undo.c */ /* undo.c */
BOOL add_undo_insert_run( ME_TextEditor *, int pos, const WCHAR *str, int len, int flags, ME_Style *style ) DECLSPEC_HIDDEN; BOOL add_undo_insert_run( ME_TextEditor *, int pos, const WCHAR *str, int len, int flags, ME_Style *style ) DECLSPEC_HIDDEN;
......
...@@ -378,10 +378,11 @@ typedef struct tagME_InStream ME_InStream; ...@@ -378,10 +378,11 @@ typedef struct tagME_InStream ME_InStream;
typedef struct tagME_TextEditor typedef struct tagME_TextEditor
{ {
HWND hWnd, hwndParent; HWND hWnd, hwndParent;
ITextHost *texthost; ITextHost2 *texthost;
IUnknown *reOle; IUnknown *reOle;
unsigned int bEmulateVersion10 : 1; unsigned int bEmulateVersion10 : 1;
unsigned int in_place_active : 1; unsigned int in_place_active : 1;
unsigned int have_texthost2 : 1;
ME_TextBuffer *pBuffer; ME_TextBuffer *pBuffer;
ME_Cursor *pCursors; ME_Cursor *pCursors;
DWORD props; DWORD props;
......
...@@ -1071,7 +1071,7 @@ static void enable_show_scrollbar( ME_TextEditor *editor, INT bar, BOOL enable ) ...@@ -1071,7 +1071,7 @@ static void enable_show_scrollbar( ME_TextEditor *editor, INT bar, BOOL enable )
ITextHost_TxShowScrollBar( editor->texthost, bar, enable ); ITextHost_TxShowScrollBar( editor->texthost, bar, enable );
} }
static void set_scroll_range_pos( ITextHost *host, INT bar, SCROLLINFO *info, BOOL set_range ) static void set_scroll_range_pos( ITextHost2 *host, INT bar, SCROLLINFO *info, BOOL set_range )
{ {
LONG max_pos = info->nMax, pos = info->nPos; LONG max_pos = info->nMax, pos = info->nPos;
......
...@@ -33,7 +33,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(richedit); ...@@ -33,7 +33,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(richedit);
struct host struct host
{ {
ITextHost ITextHost_iface; ITextHost2 ITextHost_iface;
LONG ref; LONG ref;
ITextServices *text_srv; ITextServices *text_srv;
ME_TextEditor *editor; /* to be removed */ ME_TextEditor *editor; /* to be removed */
...@@ -52,7 +52,7 @@ struct host ...@@ -52,7 +52,7 @@ struct host
WCHAR password_char; WCHAR password_char;
}; };
static const ITextHostVtbl textHostVtbl; static const ITextHost2Vtbl textHostVtbl;
static BOOL listbox_registered; static BOOL listbox_registered;
static BOOL combobox_registered; static BOOL combobox_registered;
...@@ -124,34 +124,34 @@ struct host *host_create( HWND hwnd, CREATESTRUCTW *cs, BOOL emulate_10 ) ...@@ -124,34 +124,34 @@ struct host *host_create( HWND hwnd, CREATESTRUCTW *cs, BOOL emulate_10 )
return texthost; return texthost;
} }
static inline struct host *impl_from_ITextHost( ITextHost *iface ) static inline struct host *impl_from_ITextHost( ITextHost2 *iface )
{ {
return CONTAINING_RECORD( iface, struct host, ITextHost_iface ); return CONTAINING_RECORD( iface, struct host, ITextHost_iface );
} }
static HRESULT WINAPI ITextHostImpl_QueryInterface( ITextHost *iface, REFIID riid, void **obj ) static HRESULT WINAPI ITextHostImpl_QueryInterface( ITextHost2 *iface, REFIID iid, void **obj )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_ITextHost)) if (IsEqualIID( iid, &IID_IUnknown ) || IsEqualIID( iid, &IID_ITextHost ) || IsEqualIID( iid, &IID_ITextHost2 ))
{ {
*obj = &host->ITextHost_iface; *obj = &host->ITextHost_iface;
ITextHost_AddRef( (ITextHost *)*obj ); ITextHost_AddRef( (ITextHost *)*obj );
return S_OK; return S_OK;
} }
FIXME("Unknown interface: %s\n", debugstr_guid(riid)); FIXME( "Unknown interface: %s\n", debugstr_guid( iid ) );
return E_NOINTERFACE; return E_NOINTERFACE;
} }
static ULONG WINAPI ITextHostImpl_AddRef(ITextHost *iface) static ULONG WINAPI ITextHostImpl_AddRef( ITextHost2 *iface )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
ULONG ref = InterlockedIncrement( &host->ref ); ULONG ref = InterlockedIncrement( &host->ref );
return ref; return ref;
} }
static ULONG WINAPI ITextHostImpl_Release(ITextHost *iface) static ULONG WINAPI ITextHostImpl_Release( ITextHost2 *iface )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
ULONG ref = InterlockedDecrement( &host->ref ); ULONG ref = InterlockedDecrement( &host->ref );
...@@ -166,35 +166,35 @@ static ULONG WINAPI ITextHostImpl_Release(ITextHost *iface) ...@@ -166,35 +166,35 @@ static ULONG WINAPI ITextHostImpl_Release(ITextHost *iface)
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetDC,4) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetDC,4)
DECLSPEC_HIDDEN HDC __thiscall ITextHostImpl_TxGetDC(ITextHost *iface) DECLSPEC_HIDDEN HDC __thiscall ITextHostImpl_TxGetDC( ITextHost2 *iface )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
return GetDC( host->window ); return GetDC( host->window );
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxReleaseDC,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxReleaseDC,8)
DECLSPEC_HIDDEN INT __thiscall ITextHostImpl_TxReleaseDC(ITextHost *iface, HDC hdc) DECLSPEC_HIDDEN INT __thiscall ITextHostImpl_TxReleaseDC( ITextHost2 *iface, HDC hdc )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
return ReleaseDC( host->window, hdc ); return ReleaseDC( host->window, hdc );
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxShowScrollBar,12) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxShowScrollBar,12)
DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxShowScrollBar( ITextHost *iface, INT bar, BOOL show ) DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxShowScrollBar( ITextHost2 *iface, INT bar, BOOL show )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
return ShowScrollBar( host->window, bar, show ); return ShowScrollBar( host->window, bar, show );
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxEnableScrollBar,12) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxEnableScrollBar,12)
DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxEnableScrollBar( ITextHost *iface, INT bar, INT arrows ) DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxEnableScrollBar( ITextHost2 *iface, INT bar, INT arrows )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
return EnableScrollBar( host->window, bar, arrows ); return EnableScrollBar( host->window, bar, arrows );
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetScrollRange,20) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetScrollRange,20)
DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxSetScrollRange( ITextHost *iface, INT bar, LONG min_pos, INT max_pos, BOOL redraw ) DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxSetScrollRange( ITextHost2 *iface, INT bar, LONG min_pos, INT max_pos, BOOL redraw )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
SCROLLINFO info = { .cbSize = sizeof(info), .fMask = SIF_PAGE | SIF_RANGE }; SCROLLINFO info = { .cbSize = sizeof(info), .fMask = SIF_PAGE | SIF_RANGE };
...@@ -219,7 +219,7 @@ DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxSetScrollRange( ITextHost *iface ...@@ -219,7 +219,7 @@ DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxSetScrollRange( ITextHost *iface
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetScrollPos,16) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetScrollPos,16)
DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxSetScrollPos( ITextHost *iface, INT bar, INT pos, BOOL redraw ) DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxSetScrollPos( ITextHost2 *iface, INT bar, INT pos, BOOL redraw )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
DWORD style = GetWindowLongW( host->window, GWL_STYLE ); DWORD style = GetWindowLongW( host->window, GWL_STYLE );
...@@ -244,28 +244,28 @@ DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxSetScrollPos( ITextHost *iface, ...@@ -244,28 +244,28 @@ DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxSetScrollPos( ITextHost *iface,
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxInvalidateRect,12) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxInvalidateRect,12)
DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxInvalidateRect( ITextHost *iface, const RECT *rect, BOOL mode ) DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxInvalidateRect( ITextHost2 *iface, const RECT *rect, BOOL mode )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
InvalidateRect( host->window, rect, mode ); InvalidateRect( host->window, rect, mode );
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxViewChange,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxViewChange,8)
DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxViewChange( ITextHost *iface, BOOL update ) DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxViewChange( ITextHost2 *iface, BOOL update )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
if (update) UpdateWindow( host->window ); if (update) UpdateWindow( host->window );
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxCreateCaret,16) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxCreateCaret,16)
DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxCreateCaret( ITextHost *iface, HBITMAP bitmap, INT width, INT height ) DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxCreateCaret( ITextHost2 *iface, HBITMAP bitmap, INT width, INT height )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
return CreateCaret( host->window, bitmap, width, height ); return CreateCaret( host->window, bitmap, width, height );
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxShowCaret,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxShowCaret,8)
DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxShowCaret( ITextHost *iface, BOOL show ) DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxShowCaret( ITextHost2 *iface, BOOL show )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
if (show) return ShowCaret( host->window ); if (show) return ShowCaret( host->window );
...@@ -273,27 +273,27 @@ DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxShowCaret( ITextHost *iface, BOO ...@@ -273,27 +273,27 @@ DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxShowCaret( ITextHost *iface, BOO
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCaretPos,12) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCaretPos,12)
DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxSetCaretPos( ITextHost *iface, INT x, INT y ) DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxSetCaretPos( ITextHost2 *iface, INT x, INT y )
{ {
return SetCaretPos(x, y); return SetCaretPos(x, y);
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetTimer,12) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetTimer,12)
DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxSetTimer( ITextHost *iface, UINT id, UINT timeout ) DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxSetTimer( ITextHost2 *iface, UINT id, UINT timeout )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
return SetTimer( host->window, id, timeout, NULL ) != 0; return SetTimer( host->window, id, timeout, NULL ) != 0;
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxKillTimer,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxKillTimer,8)
DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxKillTimer( ITextHost *iface, UINT id ) DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxKillTimer( ITextHost2 *iface, UINT id )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
KillTimer( host->window, id ); KillTimer( host->window, id );
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxScrollWindowEx,32) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxScrollWindowEx,32)
DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxScrollWindowEx( ITextHost *iface, INT dx, INT dy, const RECT *scroll, DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxScrollWindowEx( ITextHost2 *iface, INT dx, INT dy, const RECT *scroll,
const RECT *clip, HRGN update_rgn, RECT *update_rect, const RECT *clip, HRGN update_rgn, RECT *update_rect,
UINT flags ) UINT flags )
{ {
...@@ -302,7 +302,7 @@ DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxScrollWindowEx( ITextHost *iface ...@@ -302,7 +302,7 @@ DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxScrollWindowEx( ITextHost *iface
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCapture,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCapture,8)
DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxSetCapture( ITextHost *iface, BOOL capture ) DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxSetCapture( ITextHost2 *iface, BOOL capture )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
if (capture) SetCapture( host->window ); if (capture) SetCapture( host->window );
...@@ -310,34 +310,34 @@ DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxSetCapture( ITextHost *iface, BO ...@@ -310,34 +310,34 @@ DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxSetCapture( ITextHost *iface, BO
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetFocus,4) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetFocus,4)
DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxSetFocus(ITextHost *iface) DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxSetFocus( ITextHost2 *iface )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
SetFocus( host->window ); SetFocus( host->window );
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCursor,12) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCursor,12)
DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxSetCursor( ITextHost *iface, HCURSOR cursor, BOOL text ) DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxSetCursor( ITextHost2 *iface, HCURSOR cursor, BOOL text )
{ {
SetCursor( cursor ); SetCursor( cursor );
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxScreenToClient,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxScreenToClient,8)
DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxScreenToClient( ITextHost *iface, POINT *pt ) DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxScreenToClient( ITextHost2 *iface, POINT *pt )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
return ScreenToClient( host->window, pt ); return ScreenToClient( host->window, pt );
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxClientToScreen,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxClientToScreen,8)
DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxClientToScreen( ITextHost *iface, POINT *pt ) DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxClientToScreen( ITextHost2 *iface, POINT *pt )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
return ClientToScreen( host->window, pt ); return ClientToScreen( host->window, pt );
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxActivate,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxActivate,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxActivate( ITextHost *iface, LONG *old_state ) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxActivate( ITextHost2 *iface, LONG *old_state )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
*old_state = HandleToLong( SetActiveWindow( host->window ) ); *old_state = HandleToLong( SetActiveWindow( host->window ) );
...@@ -345,14 +345,14 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxActivate( ITextHost *iface, L ...@@ -345,14 +345,14 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxActivate( ITextHost *iface, L
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxDeactivate,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxDeactivate,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxDeactivate( ITextHost *iface, LONG new_state ) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxDeactivate( ITextHost2 *iface, LONG new_state )
{ {
HWND ret = SetActiveWindow( LongToHandle( new_state ) ); HWND ret = SetActiveWindow( LongToHandle( new_state ) );
return ret ? S_OK : E_FAIL; return ret ? S_OK : E_FAIL;
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetClientRect,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetClientRect,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetClientRect( ITextHost *iface, RECT *rect ) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetClientRect( ITextHost2 *iface, RECT *rect )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
...@@ -368,20 +368,20 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetClientRect( ITextHost *ifa ...@@ -368,20 +368,20 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetClientRect( ITextHost *ifa
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetViewInset,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetViewInset,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetViewInset( ITextHost *iface, RECT *rect ) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetViewInset( ITextHost2 *iface, RECT *rect )
{ {
SetRectEmpty( rect ); SetRectEmpty( rect );
return S_OK; return S_OK;
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetCharFormat,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetCharFormat,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetCharFormat(ITextHost *iface, const CHARFORMATW **ppCF) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetCharFormat( ITextHost2 *iface, const CHARFORMATW **ppCF )
{ {
return E_NOTIMPL; return E_NOTIMPL;
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetParaFormat,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetParaFormat,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetParaFormat( ITextHost *iface, const PARAFORMAT **fmt ) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetParaFormat( ITextHost2 *iface, const PARAFORMAT **fmt )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
*fmt = (const PARAFORMAT *)&host->para_fmt; *fmt = (const PARAFORMAT *)&host->para_fmt;
...@@ -389,7 +389,7 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetParaFormat( ITextHost *ifa ...@@ -389,7 +389,7 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetParaFormat( ITextHost *ifa
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetSysColor,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetSysColor,8)
DECLSPEC_HIDDEN COLORREF __thiscall ITextHostImpl_TxGetSysColor( ITextHost *iface, int index ) DECLSPEC_HIDDEN COLORREF __thiscall ITextHostImpl_TxGetSysColor( ITextHost2 *iface, int index )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
...@@ -398,21 +398,21 @@ DECLSPEC_HIDDEN COLORREF __thiscall ITextHostImpl_TxGetSysColor( ITextHost *ifac ...@@ -398,21 +398,21 @@ DECLSPEC_HIDDEN COLORREF __thiscall ITextHostImpl_TxGetSysColor( ITextHost *ifac
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetBackStyle,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetBackStyle,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetBackStyle( ITextHost *iface, TXTBACKSTYLE *style ) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetBackStyle( ITextHost2 *iface, TXTBACKSTYLE *style )
{ {
*style = TXTBACK_OPAQUE; *style = TXTBACK_OPAQUE;
return S_OK; return S_OK;
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetMaxLength,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetMaxLength,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetMaxLength( ITextHost *iface, DWORD *length ) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetMaxLength( ITextHost2 *iface, DWORD *length )
{ {
*length = INFINITE; *length = INFINITE;
return S_OK; return S_OK;
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetScrollBars,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetScrollBars,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetScrollBars( ITextHost *iface, DWORD *scrollbars ) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetScrollBars( ITextHost2 *iface, DWORD *scrollbars )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
...@@ -421,7 +421,7 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetScrollBars( ITextHost *ifa ...@@ -421,7 +421,7 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetScrollBars( ITextHost *ifa
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetPasswordChar,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetPasswordChar,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetPasswordChar( ITextHost *iface, WCHAR *c ) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetPasswordChar( ITextHost2 *iface, WCHAR *c )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
...@@ -430,32 +430,32 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetPasswordChar( ITextHost *i ...@@ -430,32 +430,32 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetPasswordChar( ITextHost *i
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetAcceleratorPos,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetAcceleratorPos,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetAcceleratorPos( ITextHost *iface, LONG *pos ) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetAcceleratorPos( ITextHost2 *iface, LONG *pos )
{ {
*pos = -1; *pos = -1;
return S_OK; return S_OK;
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetExtent,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetExtent,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetExtent( ITextHost *iface, SIZEL *extent ) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetExtent( ITextHost2 *iface, SIZEL *extent )
{ {
return E_NOTIMPL; return E_NOTIMPL;
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_OnTxCharFormatChange,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_OnTxCharFormatChange,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_OnTxCharFormatChange(ITextHost *iface, const CHARFORMATW *pcf) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_OnTxCharFormatChange( ITextHost2 *iface, const CHARFORMATW *pcf )
{ {
return S_OK; return S_OK;
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_OnTxParaFormatChange,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_OnTxParaFormatChange,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_OnTxParaFormatChange(ITextHost *iface, const PARAFORMAT *ppf) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_OnTxParaFormatChange( ITextHost2 *iface, const PARAFORMAT *ppf )
{ {
return S_OK; return S_OK;
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetPropertyBits,12) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetPropertyBits,12)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetPropertyBits( ITextHost *iface, DWORD mask, DWORD *bits ) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetPropertyBits( ITextHost2 *iface, DWORD mask, DWORD *bits )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
...@@ -464,7 +464,7 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetPropertyBits( ITextHost *i ...@@ -464,7 +464,7 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetPropertyBits( ITextHost *i
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxNotify,12) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxNotify,12)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxNotify(ITextHost *iface, DWORD iNotify, void *pv) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxNotify( ITextHost2 *iface, DWORD iNotify, void *pv )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
HWND hwnd = host->window; HWND hwnd = host->window;
...@@ -522,21 +522,21 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxNotify(ITextHost *iface, DWOR ...@@ -522,21 +522,21 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxNotify(ITextHost *iface, DWOR
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxImmGetContext,4) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxImmGetContext,4)
DECLSPEC_HIDDEN HIMC __thiscall ITextHostImpl_TxImmGetContext(ITextHost *iface) DECLSPEC_HIDDEN HIMC __thiscall ITextHostImpl_TxImmGetContext( ITextHost2 *iface )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
return ImmGetContext( host->window ); return ImmGetContext( host->window );
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxImmReleaseContext,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxImmReleaseContext,8)
DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxImmReleaseContext( ITextHost *iface, HIMC context ) DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxImmReleaseContext( ITextHost2 *iface, HIMC context )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
ImmReleaseContext( host->window, context ); ImmReleaseContext( host->window, context );
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetSelectionBarWidth,8) DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetSelectionBarWidth,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetSelectionBarWidth( ITextHost *iface, LONG *width ) DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetSelectionBarWidth( ITextHost2 *iface, LONG *width )
{ {
struct host *host = impl_from_ITextHost( iface ); struct host *host = impl_from_ITextHost( iface );
...@@ -544,6 +544,80 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetSelectionBarWidth( ITextHo ...@@ -544,6 +544,80 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetSelectionBarWidth( ITextHo
return S_OK; return S_OK;
} }
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxIsDoubleClickPending,4)
DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxIsDoubleClickPending( ITextHost2 *iface )
{
return FALSE;
}
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetWindow,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetWindow( ITextHost2 *iface, HWND *hwnd )
{
struct host *host = impl_from_ITextHost( iface );
*hwnd = host->window;
return S_OK;
}
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetForegroundWindow,4)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxSetForegroundWindow( ITextHost2 *iface )
{
return E_NOTIMPL;
}
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetPalette,4)
DECLSPEC_HIDDEN HPALETTE __thiscall ITextHostImpl_TxGetPalette( ITextHost2 *iface )
{
return NULL;
}
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetEastAsianFlags,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetEastAsianFlags( ITextHost2 *iface, LONG *flags )
{
return E_NOTIMPL;
}
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCursor2,12)
DECLSPEC_HIDDEN HCURSOR __thiscall ITextHostImpl_TxSetCursor2( ITextHost2 *iface, HCURSOR cursor, BOOL text )
{
return NULL;
}
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxFreeTextServicesNotification,4)
DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxFreeTextServicesNotification( ITextHost2 *iface )
{
return;
}
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetEditStyle,12)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetEditStyle( ITextHost2 *iface, DWORD item, DWORD *data )
{
return E_NOTIMPL;
}
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetWindowStyles,12)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetWindowStyles( ITextHost2 *iface, DWORD *style, DWORD *ex_style )
{
return E_NOTIMPL;
}
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxShowDropCaret,16)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxShowDropCaret( ITextHost2 *iface, BOOL show, HDC hdc, const RECT *rect )
{
return E_NOTIMPL;
}
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxDestroyCaret,4)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxDestroyCaret( ITextHost2 *iface )
{
return E_NOTIMPL;
}
DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetHorzExtent,8)
DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetHorzExtent( ITextHost2 *iface, LONG *horz_extent )
{
return E_NOTIMPL;
}
#ifdef __ASM_USE_THISCALL_WRAPPER #ifdef __ASM_USE_THISCALL_WRAPPER
...@@ -608,8 +682,21 @@ DEFINE_STDCALL_WRAPPER(38,ITextHostImpl_TxNotify,12) ...@@ -608,8 +682,21 @@ DEFINE_STDCALL_WRAPPER(38,ITextHostImpl_TxNotify,12)
DEFINE_STDCALL_WRAPPER(39,ITextHostImpl_TxImmGetContext,4) DEFINE_STDCALL_WRAPPER(39,ITextHostImpl_TxImmGetContext,4)
DEFINE_STDCALL_WRAPPER(40,ITextHostImpl_TxImmReleaseContext,8) DEFINE_STDCALL_WRAPPER(40,ITextHostImpl_TxImmReleaseContext,8)
DEFINE_STDCALL_WRAPPER(41,ITextHostImpl_TxGetSelectionBarWidth,8) DEFINE_STDCALL_WRAPPER(41,ITextHostImpl_TxGetSelectionBarWidth,8)
/* ITextHost2 */
const ITextHostVtbl text_host_stdcall_vtbl = DEFINE_STDCALL_WRAPPER(42,ITextHostImpl_TxIsDoubleClickPending,4)
DEFINE_STDCALL_WRAPPER(43,ITextHostImpl_TxGetWindow,8)
DEFINE_STDCALL_WRAPPER(44,ITextHostImpl_TxSetForegroundWindow,4)
DEFINE_STDCALL_WRAPPER(45,ITextHostImpl_TxGetPalette,4)
DEFINE_STDCALL_WRAPPER(46,ITextHostImpl_TxGetEastAsianFlags,8)
DEFINE_STDCALL_WRAPPER(47,ITextHostImpl_TxSetCursor2,12)
DEFINE_STDCALL_WRAPPER(48,ITextHostImpl_TxFreeTextServicesNotification,4)
DEFINE_STDCALL_WRAPPER(49,ITextHostImpl_TxGetEditStyle,12)
DEFINE_STDCALL_WRAPPER(50,ITextHostImpl_TxGetWindowStyles,12)
DEFINE_STDCALL_WRAPPER(51,ITextHostImpl_TxShowDropCaret,16)
DEFINE_STDCALL_WRAPPER(52,ITextHostImpl_TxDestroyCaret,4)
DEFINE_STDCALL_WRAPPER(53,ITextHostImpl_TxGetHorzExtent,8)
const ITextHost2Vtbl text_host2_stdcall_vtbl =
{ {
NULL, NULL,
NULL, NULL,
...@@ -653,11 +740,24 @@ const ITextHostVtbl text_host_stdcall_vtbl = ...@@ -653,11 +740,24 @@ const ITextHostVtbl text_host_stdcall_vtbl =
STDCALL(ITextHostImpl_TxImmGetContext), STDCALL(ITextHostImpl_TxImmGetContext),
STDCALL(ITextHostImpl_TxImmReleaseContext), STDCALL(ITextHostImpl_TxImmReleaseContext),
STDCALL(ITextHostImpl_TxGetSelectionBarWidth), STDCALL(ITextHostImpl_TxGetSelectionBarWidth),
/* ITextHost2 */
STDCALL(ITextHostImpl_TxIsDoubleClickPending),
STDCALL(ITextHostImpl_TxGetWindow),
STDCALL(ITextHostImpl_TxSetForegroundWindow),
STDCALL(ITextHostImpl_TxGetPalette),
STDCALL(ITextHostImpl_TxGetEastAsianFlags),
STDCALL(ITextHostImpl_TxSetCursor2),
STDCALL(ITextHostImpl_TxFreeTextServicesNotification),
STDCALL(ITextHostImpl_TxGetEditStyle),
STDCALL(ITextHostImpl_TxGetWindowStyles),
STDCALL(ITextHostImpl_TxShowDropCaret),
STDCALL(ITextHostImpl_TxDestroyCaret),
STDCALL(ITextHostImpl_TxGetHorzExtent)
}; };
#endif /* __ASM_USE_THISCALL_WRAPPER */ #endif /* __ASM_USE_THISCALL_WRAPPER */
static const ITextHostVtbl textHostVtbl = static const ITextHost2Vtbl textHostVtbl =
{ {
ITextHostImpl_QueryInterface, ITextHostImpl_QueryInterface,
ITextHostImpl_AddRef, ITextHostImpl_AddRef,
...@@ -701,6 +801,19 @@ static const ITextHostVtbl textHostVtbl = ...@@ -701,6 +801,19 @@ static const ITextHostVtbl textHostVtbl =
THISCALL(ITextHostImpl_TxImmGetContext), THISCALL(ITextHostImpl_TxImmGetContext),
THISCALL(ITextHostImpl_TxImmReleaseContext), THISCALL(ITextHostImpl_TxImmReleaseContext),
THISCALL(ITextHostImpl_TxGetSelectionBarWidth), THISCALL(ITextHostImpl_TxGetSelectionBarWidth),
/* ITextHost2 */
THISCALL(ITextHostImpl_TxIsDoubleClickPending),
THISCALL(ITextHostImpl_TxGetWindow),
THISCALL(ITextHostImpl_TxSetForegroundWindow),
THISCALL(ITextHostImpl_TxGetPalette),
THISCALL(ITextHostImpl_TxGetEastAsianFlags),
THISCALL(ITextHostImpl_TxSetCursor2),
THISCALL(ITextHostImpl_TxFreeTextServicesNotification),
THISCALL(ITextHostImpl_TxGetEditStyle),
THISCALL(ITextHostImpl_TxGetWindowStyles),
THISCALL(ITextHostImpl_TxShowDropCaret),
THISCALL(ITextHostImpl_TxDestroyCaret),
THISCALL(ITextHostImpl_TxGetHorzExtent)
}; };
static const char * const edit_messages[] = static const char * const edit_messages[] =
...@@ -759,10 +872,10 @@ static BOOL create_windowed_editor( HWND hwnd, CREATESTRUCTW *create, BOOL emula ...@@ -759,10 +872,10 @@ static BOOL create_windowed_editor( HWND hwnd, CREATESTRUCTW *create, BOOL emula
if (!host) return FALSE; if (!host) return FALSE;
hr = create_text_services( NULL, &host->ITextHost_iface, &unk, emulate_10, &host->editor ); hr = create_text_services( NULL, (ITextHost *)&host->ITextHost_iface, &unk, emulate_10, &host->editor );
if (FAILED( hr )) if (FAILED( hr ))
{ {
ITextHost_Release( &host->ITextHost_iface ); ITextHost2_Release( &host->ITextHost_iface );
return FALSE; return FALSE;
} }
IUnknown_QueryInterface( unk, &IID_ITextServices, (void **)&host->text_srv ); IUnknown_QueryInterface( unk, &IID_ITextServices, (void **)&host->text_srv );
...@@ -1031,7 +1144,7 @@ static LRESULT RichEditWndProc_common( HWND hwnd, UINT msg, WPARAM wparam, ...@@ -1031,7 +1144,7 @@ static LRESULT RichEditWndProc_common( HWND hwnd, UINT msg, WPARAM wparam,
break; break;
} }
case WM_DESTROY: case WM_DESTROY:
ITextHost_Release( &host->ITextHost_iface ); ITextHost2_Release( &host->ITextHost_iface );
return 0; return 0;
case WM_ERASEBKGND: case WM_ERASEBKGND:
...@@ -1185,7 +1298,7 @@ static LRESULT RichEditWndProc_common( HWND hwnd, UINT msg, WPARAM wparam, ...@@ -1185,7 +1298,7 @@ static LRESULT RichEditWndProc_common( HWND hwnd, UINT msg, WPARAM wparam,
PAINTSTRUCT ps; PAINTSTRUCT ps;
HBRUSH brush = CreateSolidBrush( ITextHost_TxGetSysColor( &host->ITextHost_iface, COLOR_WINDOW ) ); HBRUSH brush = CreateSolidBrush( ITextHost_TxGetSysColor( &host->ITextHost_iface, COLOR_WINDOW ) );
ITextHostImpl_TxGetClientRect( &host->ITextHost_iface, &client ); ITextHost_TxGetClientRect( &host->ITextHost_iface, &client );
if (msg == WM_PAINT) if (msg == WM_PAINT)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment