Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
8e17457f
Commit
8e17457f
authored
Mar 26, 2021
by
Huw Davies
Committed by
Alexandre Julliard
Mar 26, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
riched20: Add ITextHost2 support and use it to get the window for WM_CONTEXTMENU.
Signed-off-by:
Huw Davies
<
huw@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
c4acdfd3
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
215 additions
and
74 deletions
+215
-74
editor.c
dlls/riched20/editor.c
+30
-16
editor.h
dlls/riched20/editor.h
+15
-2
editstr.h
dlls/riched20/editstr.h
+2
-1
paint.c
dlls/riched20/paint.c
+1
-1
txthost.c
dlls/riched20/txthost.c
+167
-54
No files found.
dlls/riched20/editor.c
View file @
8e17457f
...
...
@@ -2909,15 +2909,19 @@ static BOOL ME_ShowContextMenu(ME_TextEditor *editor, int x, int y)
CHARRANGE
selrange
;
HMENU
menu
;
int
seltype
;
HWND
hwnd
,
parent
;
if
(
!
editor
->
lpOleCallback
||
!
editor
->
hWnd
)
return
FALSE
;
ME_GetSelectionOfs
(
editor
,
&
selrange
.
cpMin
,
&
selrange
.
cpMax
);
seltype
=
ME_GetSelectionType
(
editor
);
if
(
SUCCEEDED
(
IRichEditOleCallback_GetContextMenu
(
editor
->
lpOleCallback
,
seltype
,
NULL
,
&
selrange
,
&
menu
)))
if
(
!
editor
->
lpOleCallback
||
!
editor
->
have_texthost2
)
return
FALSE
;
if
(
FAILED
(
ITextHost2_TxGetWindow
(
editor
->
texthost
,
&
hwnd
)))
return
FALSE
;
parent
=
GetParent
(
hwnd
);
if
(
!
parent
)
parent
=
hwnd
;
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
);
DestroyMenu
(
menu
);
TrackPopupMenu
(
menu
,
TPM_LEFTALIGN
|
TPM_RIGHTBUTTON
,
x
,
y
,
0
,
parent
,
NULL
);
DestroyMenu
(
menu
);
}
return
TRUE
;
}
...
...
@@ -2932,16 +2936,26 @@ ME_TextEditor *ME_MakeEditor(ITextHost *texthost, BOOL bEmulateVersion10)
ed
->
hWnd
=
NULL
;
ed
->
hwndParent
=
NULL
;
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
->
bEmulateVersion10
=
bEmulateVersion10
;
ed
->
in_place_active
=
FALSE
;
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_AUTOWORDSEL
|
TXTBIT_VERTICAL
|
TXTBIT_WORDWRAP
|
TXTBIT_DISABLEDRAG
,
&
ed
->
props
);
ITextHost_TxGetScrollBars
(
texthost
,
&
ed
->
scrollbars
);
ITextHost_TxGetScrollBars
(
ed
->
texthost
,
&
ed
->
scrollbars
);
ed
->
pBuffer
=
ME_MakeText
();
ed
->
nZoomNumerator
=
ed
->
nZoomDenominator
=
0
;
ed
->
nAvailWidth
=
0
;
/* wrap to client area */
...
...
@@ -3000,7 +3014,7 @@ ME_TextEditor *ME_MakeEditor(ITextHost *texthost, BOOL bEmulateVersion10)
ed
->
password_char
=
0
;
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
);
...
...
@@ -3025,20 +3039,20 @@ ME_TextEditor *ME_MakeEditor(ITextHost *texthost, BOOL bEmulateVersion10)
{
if
(
ed
->
scrollbars
&
WS_VSCROLL
)
{
ITextHost_TxSetScrollRange
(
texthost
,
SB_VERT
,
0
,
1
,
TRUE
);
ITextHost_TxEnableScrollBar
(
texthost
,
SB_VERT
,
ESB_DISABLE_BOTH
);
ITextHost_TxSetScrollRange
(
ed
->
texthost
,
SB_VERT
,
0
,
1
,
TRUE
);
ITextHost_TxEnableScrollBar
(
ed
->
texthost
,
SB_VERT
,
ESB_DISABLE_BOTH
);
}
if
(
ed
->
scrollbars
&
WS_HSCROLL
)
{
ITextHost_TxSetScrollRange
(
texthost
,
SB_HORZ
,
0
,
1
,
TRUE
);
ITextHost_TxEnableScrollBar
(
texthost
,
SB_HORZ
,
ESB_DISABLE_BOTH
);
ITextHost_TxSetScrollRange
(
ed
->
texthost
,
SB_HORZ
,
0
,
1
,
TRUE
);
ITextHost_TxEnableScrollBar
(
ed
->
texthost
,
SB_HORZ
,
ESB_DISABLE_BOTH
);
}
}
ed
->
wheel_remain
=
0
;
ed
->
back_style
=
TXTBACK_OPAQUE
;
ITextHost_TxGetBackStyle
(
texthost
,
&
ed
->
back_style
);
ITextHost_TxGetBackStyle
(
ed
->
texthost
,
&
ed
->
back_style
);
list_init
(
&
ed
->
reobj_list
);
OleInitialize
(
NULL
);
...
...
dlls/riched20/editor.h
View file @
8e17457f
...
...
@@ -321,8 +321,8 @@ static inline ME_DisplayItem *cell_get_di(ME_Cell *cell)
/* txthost.c */
#ifdef __ASM_USE_THISCALL_WRAPPER
extern
const
struct
ITextHost
Vtbl
text_host
_stdcall_vtbl
DECLSPEC_HIDDEN
;
#define TXTHOST_VTABLE(This) (&text_host_stdcall_vtbl)
extern
const
struct
ITextHost
2Vtbl
text_host2
_stdcall_vtbl
DECLSPEC_HIDDEN
;
#define TXTHOST_VTABLE(This) (&text_host
2
_stdcall_vtbl)
#else
#define TXTHOST_VTABLE(This) (This)->lpVtbl
#endif
...
...
@@ -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_TxImmReleaseContext(This,a) TXTHOST_VTABLE(This)->TxImmReleaseContext(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 */
BOOL
add_undo_insert_run
(
ME_TextEditor
*
,
int
pos
,
const
WCHAR
*
str
,
int
len
,
int
flags
,
ME_Style
*
style
)
DECLSPEC_HIDDEN
;
...
...
dlls/riched20/editstr.h
View file @
8e17457f
...
...
@@ -378,10 +378,11 @@ typedef struct tagME_InStream ME_InStream;
typedef
struct
tagME_TextEditor
{
HWND
hWnd
,
hwndParent
;
ITextHost
*
texthost
;
ITextHost
2
*
texthost
;
IUnknown
*
reOle
;
unsigned
int
bEmulateVersion10
:
1
;
unsigned
int
in_place_active
:
1
;
unsigned
int
have_texthost2
:
1
;
ME_TextBuffer
*
pBuffer
;
ME_Cursor
*
pCursors
;
DWORD
props
;
...
...
dlls/riched20/paint.c
View file @
8e17457f
...
...
@@ -1071,7 +1071,7 @@ static void enable_show_scrollbar( ME_TextEditor *editor, INT bar, BOOL 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
(
ITextHost
2
*
host
,
INT
bar
,
SCROLLINFO
*
info
,
BOOL
set_range
)
{
LONG
max_pos
=
info
->
nMax
,
pos
=
info
->
nPos
;
...
...
dlls/riched20/txthost.c
View file @
8e17457f
...
...
@@ -33,7 +33,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(richedit);
struct
host
{
ITextHost
ITextHost_iface
;
ITextHost
2
ITextHost_iface
;
LONG
ref
;
ITextServices
*
text_srv
;
ME_TextEditor
*
editor
;
/* to be removed */
...
...
@@ -52,7 +52,7 @@ struct host
WCHAR
password_char
;
};
static
const
ITextHostVtbl
textHostVtbl
;
static
const
ITextHost
2
Vtbl
textHostVtbl
;
static
BOOL
listbox_registered
;
static
BOOL
combobox_registered
;
...
...
@@ -124,34 +124,34 @@ struct host *host_create( HWND hwnd, CREATESTRUCTW *cs, BOOL emulate_10 )
return
texthost
;
}
static
inline
struct
host
*
impl_from_ITextHost
(
ITextHost
*
iface
)
static
inline
struct
host
*
impl_from_ITextHost
(
ITextHost
2
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
struct
host
,
ITextHost_iface
);
}
static
HRESULT
WINAPI
ITextHostImpl_QueryInterface
(
ITextHost
*
iface
,
REFIID
r
iid
,
void
**
obj
)
static
HRESULT
WINAPI
ITextHostImpl_QueryInterface
(
ITextHost
2
*
iface
,
REFIID
iid
,
void
**
obj
)
{
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
;
ITextHost_AddRef
(
(
ITextHost
*
)
*
obj
);
return
S_OK
;
}
FIXME
(
"Unknown interface: %s
\n
"
,
debugstr_guid
(
riid
)
);
FIXME
(
"Unknown interface: %s
\n
"
,
debugstr_guid
(
iid
)
);
return
E_NOINTERFACE
;
}
static
ULONG
WINAPI
ITextHostImpl_AddRef
(
ITextHost
*
iface
)
static
ULONG
WINAPI
ITextHostImpl_AddRef
(
ITextHost2
*
iface
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
ULONG
ref
=
InterlockedIncrement
(
&
host
->
ref
);
return
ref
;
}
static
ULONG
WINAPI
ITextHostImpl_Release
(
ITextHost
*
iface
)
static
ULONG
WINAPI
ITextHostImpl_Release
(
ITextHost2
*
iface
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
ULONG
ref
=
InterlockedDecrement
(
&
host
->
ref
);
...
...
@@ -166,35 +166,35 @@ static ULONG WINAPI ITextHostImpl_Release(ITextHost *iface)
}
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
);
return
GetDC
(
host
->
window
);
}
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
);
return
ReleaseDC
(
host
->
window
,
hdc
);
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxShowScrollBar
,
12
)
DECLSPEC_HIDDEN
BOOL
__thiscall
ITextHostImpl_TxShowScrollBar
(
ITextHost
*
iface
,
INT
bar
,
BOOL
show
)
DECLSPEC_HIDDEN
BOOL
__thiscall
ITextHostImpl_TxShowScrollBar
(
ITextHost
2
*
iface
,
INT
bar
,
BOOL
show
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
return
ShowScrollBar
(
host
->
window
,
bar
,
show
);
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxEnableScrollBar
,
12
)
DECLSPEC_HIDDEN
BOOL
__thiscall
ITextHostImpl_TxEnableScrollBar
(
ITextHost
*
iface
,
INT
bar
,
INT
arrows
)
DECLSPEC_HIDDEN
BOOL
__thiscall
ITextHostImpl_TxEnableScrollBar
(
ITextHost
2
*
iface
,
INT
bar
,
INT
arrows
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
return
EnableScrollBar
(
host
->
window
,
bar
,
arrows
);
}
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
(
ITextHost
2
*
iface
,
INT
bar
,
LONG
min_pos
,
INT
max_pos
,
BOOL
redraw
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
SCROLLINFO
info
=
{
.
cbSize
=
sizeof
(
info
),
.
fMask
=
SIF_PAGE
|
SIF_RANGE
};
...
...
@@ -219,7 +219,7 @@ DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxSetScrollRange( ITextHost *iface
}
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
(
ITextHost
2
*
iface
,
INT
bar
,
INT
pos
,
BOOL
redraw
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
DWORD
style
=
GetWindowLongW
(
host
->
window
,
GWL_STYLE
);
...
...
@@ -244,28 +244,28 @@ DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxSetScrollPos( ITextHost *iface,
}
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
(
ITextHost
2
*
iface
,
const
RECT
*
rect
,
BOOL
mode
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
InvalidateRect
(
host
->
window
,
rect
,
mode
);
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxViewChange
,
8
)
DECLSPEC_HIDDEN
void
__thiscall
ITextHostImpl_TxViewChange
(
ITextHost
*
iface
,
BOOL
update
)
DECLSPEC_HIDDEN
void
__thiscall
ITextHostImpl_TxViewChange
(
ITextHost
2
*
iface
,
BOOL
update
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
if
(
update
)
UpdateWindow
(
host
->
window
);
}
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
(
ITextHost
2
*
iface
,
HBITMAP
bitmap
,
INT
width
,
INT
height
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
return
CreateCaret
(
host
->
window
,
bitmap
,
width
,
height
);
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxShowCaret
,
8
)
DECLSPEC_HIDDEN
BOOL
__thiscall
ITextHostImpl_TxShowCaret
(
ITextHost
*
iface
,
BOOL
show
)
DECLSPEC_HIDDEN
BOOL
__thiscall
ITextHostImpl_TxShowCaret
(
ITextHost
2
*
iface
,
BOOL
show
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
if
(
show
)
return
ShowCaret
(
host
->
window
);
...
...
@@ -273,27 +273,27 @@ DECLSPEC_HIDDEN BOOL __thiscall ITextHostImpl_TxShowCaret( ITextHost *iface, BOO
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxSetCaretPos
,
12
)
DECLSPEC_HIDDEN
BOOL
__thiscall
ITextHostImpl_TxSetCaretPos
(
ITextHost
*
iface
,
INT
x
,
INT
y
)
DECLSPEC_HIDDEN
BOOL
__thiscall
ITextHostImpl_TxSetCaretPos
(
ITextHost
2
*
iface
,
INT
x
,
INT
y
)
{
return
SetCaretPos
(
x
,
y
);
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxSetTimer
,
12
)
DECLSPEC_HIDDEN
BOOL
__thiscall
ITextHostImpl_TxSetTimer
(
ITextHost
*
iface
,
UINT
id
,
UINT
timeout
)
DECLSPEC_HIDDEN
BOOL
__thiscall
ITextHostImpl_TxSetTimer
(
ITextHost
2
*
iface
,
UINT
id
,
UINT
timeout
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
return
SetTimer
(
host
->
window
,
id
,
timeout
,
NULL
)
!=
0
;
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxKillTimer
,
8
)
DECLSPEC_HIDDEN
void
__thiscall
ITextHostImpl_TxKillTimer
(
ITextHost
*
iface
,
UINT
id
)
DECLSPEC_HIDDEN
void
__thiscall
ITextHostImpl_TxKillTimer
(
ITextHost
2
*
iface
,
UINT
id
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
KillTimer
(
host
->
window
,
id
);
}
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
(
ITextHost
2
*
iface
,
INT
dx
,
INT
dy
,
const
RECT
*
scroll
,
const
RECT
*
clip
,
HRGN
update_rgn
,
RECT
*
update_rect
,
UINT
flags
)
{
...
...
@@ -302,7 +302,7 @@ DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxScrollWindowEx( ITextHost *iface
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxSetCapture
,
8
)
DECLSPEC_HIDDEN
void
__thiscall
ITextHostImpl_TxSetCapture
(
ITextHost
*
iface
,
BOOL
capture
)
DECLSPEC_HIDDEN
void
__thiscall
ITextHostImpl_TxSetCapture
(
ITextHost
2
*
iface
,
BOOL
capture
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
if
(
capture
)
SetCapture
(
host
->
window
);
...
...
@@ -310,34 +310,34 @@ DECLSPEC_HIDDEN void __thiscall ITextHostImpl_TxSetCapture( ITextHost *iface, BO
}
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
);
SetFocus
(
host
->
window
);
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxSetCursor
,
12
)
DECLSPEC_HIDDEN
void
__thiscall
ITextHostImpl_TxSetCursor
(
ITextHost
*
iface
,
HCURSOR
cursor
,
BOOL
text
)
DECLSPEC_HIDDEN
void
__thiscall
ITextHostImpl_TxSetCursor
(
ITextHost
2
*
iface
,
HCURSOR
cursor
,
BOOL
text
)
{
SetCursor
(
cursor
);
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxScreenToClient
,
8
)
DECLSPEC_HIDDEN
BOOL
__thiscall
ITextHostImpl_TxScreenToClient
(
ITextHost
*
iface
,
POINT
*
pt
)
DECLSPEC_HIDDEN
BOOL
__thiscall
ITextHostImpl_TxScreenToClient
(
ITextHost
2
*
iface
,
POINT
*
pt
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
return
ScreenToClient
(
host
->
window
,
pt
);
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxClientToScreen
,
8
)
DECLSPEC_HIDDEN
BOOL
__thiscall
ITextHostImpl_TxClientToScreen
(
ITextHost
*
iface
,
POINT
*
pt
)
DECLSPEC_HIDDEN
BOOL
__thiscall
ITextHostImpl_TxClientToScreen
(
ITextHost
2
*
iface
,
POINT
*
pt
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
return
ClientToScreen
(
host
->
window
,
pt
);
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxActivate
,
8
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxActivate
(
ITextHost
*
iface
,
LONG
*
old_state
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxActivate
(
ITextHost
2
*
iface
,
LONG
*
old_state
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
*
old_state
=
HandleToLong
(
SetActiveWindow
(
host
->
window
)
);
...
...
@@ -345,14 +345,14 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxActivate( ITextHost *iface, L
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxDeactivate
,
8
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxDeactivate
(
ITextHost
*
iface
,
LONG
new_state
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxDeactivate
(
ITextHost
2
*
iface
,
LONG
new_state
)
{
HWND
ret
=
SetActiveWindow
(
LongToHandle
(
new_state
)
);
return
ret
?
S_OK
:
E_FAIL
;
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxGetClientRect
,
8
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetClientRect
(
ITextHost
*
iface
,
RECT
*
rect
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetClientRect
(
ITextHost
2
*
iface
,
RECT
*
rect
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
...
...
@@ -368,20 +368,20 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetClientRect( ITextHost *ifa
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxGetViewInset
,
8
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetViewInset
(
ITextHost
*
iface
,
RECT
*
rect
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetViewInset
(
ITextHost
2
*
iface
,
RECT
*
rect
)
{
SetRectEmpty
(
rect
);
return
S_OK
;
}
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
;
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxGetParaFormat
,
8
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetParaFormat
(
ITextHost
*
iface
,
const
PARAFORMAT
**
fmt
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetParaFormat
(
ITextHost
2
*
iface
,
const
PARAFORMAT
**
fmt
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
*
fmt
=
(
const
PARAFORMAT
*
)
&
host
->
para_fmt
;
...
...
@@ -389,7 +389,7 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetParaFormat( ITextHost *ifa
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxGetSysColor
,
8
)
DECLSPEC_HIDDEN
COLORREF
__thiscall
ITextHostImpl_TxGetSysColor
(
ITextHost
*
iface
,
int
index
)
DECLSPEC_HIDDEN
COLORREF
__thiscall
ITextHostImpl_TxGetSysColor
(
ITextHost
2
*
iface
,
int
index
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
...
...
@@ -398,21 +398,21 @@ DECLSPEC_HIDDEN COLORREF __thiscall ITextHostImpl_TxGetSysColor( ITextHost *ifac
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxGetBackStyle
,
8
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetBackStyle
(
ITextHost
*
iface
,
TXTBACKSTYLE
*
style
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetBackStyle
(
ITextHost
2
*
iface
,
TXTBACKSTYLE
*
style
)
{
*
style
=
TXTBACK_OPAQUE
;
return
S_OK
;
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxGetMaxLength
,
8
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetMaxLength
(
ITextHost
*
iface
,
DWORD
*
length
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetMaxLength
(
ITextHost
2
*
iface
,
DWORD
*
length
)
{
*
length
=
INFINITE
;
return
S_OK
;
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxGetScrollBars
,
8
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetScrollBars
(
ITextHost
*
iface
,
DWORD
*
scrollbars
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetScrollBars
(
ITextHost
2
*
iface
,
DWORD
*
scrollbars
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
...
...
@@ -421,7 +421,7 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetScrollBars( ITextHost *ifa
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxGetPasswordChar
,
8
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetPasswordChar
(
ITextHost
*
iface
,
WCHAR
*
c
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetPasswordChar
(
ITextHost
2
*
iface
,
WCHAR
*
c
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
...
...
@@ -430,32 +430,32 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetPasswordChar( ITextHost *i
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxGetAcceleratorPos
,
8
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetAcceleratorPos
(
ITextHost
*
iface
,
LONG
*
pos
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetAcceleratorPos
(
ITextHost
2
*
iface
,
LONG
*
pos
)
{
*
pos
=
-
1
;
return
S_OK
;
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxGetExtent
,
8
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetExtent
(
ITextHost
*
iface
,
SIZEL
*
extent
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetExtent
(
ITextHost
2
*
iface
,
SIZEL
*
extent
)
{
return
E_NOTIMPL
;
}
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
;
}
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
;
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxGetPropertyBits
,
12
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetPropertyBits
(
ITextHost
*
iface
,
DWORD
mask
,
DWORD
*
bits
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetPropertyBits
(
ITextHost
2
*
iface
,
DWORD
mask
,
DWORD
*
bits
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
...
...
@@ -464,7 +464,7 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetPropertyBits( ITextHost *i
}
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
);
HWND
hwnd
=
host
->
window
;
...
...
@@ -522,21 +522,21 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxNotify(ITextHost *iface, DWOR
}
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
);
return
ImmGetContext
(
host
->
window
);
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxImmReleaseContext
,
8
)
DECLSPEC_HIDDEN
void
__thiscall
ITextHostImpl_TxImmReleaseContext
(
ITextHost
*
iface
,
HIMC
context
)
DECLSPEC_HIDDEN
void
__thiscall
ITextHostImpl_TxImmReleaseContext
(
ITextHost
2
*
iface
,
HIMC
context
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
ImmReleaseContext
(
host
->
window
,
context
);
}
DEFINE_THISCALL_WRAPPER
(
ITextHostImpl_TxGetSelectionBarWidth
,
8
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetSelectionBarWidth
(
ITextHost
*
iface
,
LONG
*
width
)
DECLSPEC_HIDDEN
HRESULT
__thiscall
ITextHostImpl_TxGetSelectionBarWidth
(
ITextHost
2
*
iface
,
LONG
*
width
)
{
struct
host
*
host
=
impl_from_ITextHost
(
iface
);
...
...
@@ -544,6 +544,80 @@ DECLSPEC_HIDDEN HRESULT __thiscall ITextHostImpl_TxGetSelectionBarWidth( ITextHo
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
...
...
@@ -608,8 +682,21 @@ DEFINE_STDCALL_WRAPPER(38,ITextHostImpl_TxNotify,12)
DEFINE_STDCALL_WRAPPER
(
39
,
ITextHostImpl_TxImmGetContext
,
4
)
DEFINE_STDCALL_WRAPPER
(
40
,
ITextHostImpl_TxImmReleaseContext
,
8
)
DEFINE_STDCALL_WRAPPER
(
41
,
ITextHostImpl_TxGetSelectionBarWidth
,
8
)
const
ITextHostVtbl
text_host_stdcall_vtbl
=
/* ITextHost2 */
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
,
...
...
@@ -653,11 +740,24 @@ const ITextHostVtbl text_host_stdcall_vtbl =
STDCALL
(
ITextHostImpl_TxImmGetContext
),
STDCALL
(
ITextHostImpl_TxImmReleaseContext
),
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 */
static
const
ITextHostVtbl
textHostVtbl
=
static
const
ITextHost
2
Vtbl
textHostVtbl
=
{
ITextHostImpl_QueryInterface
,
ITextHostImpl_AddRef
,
...
...
@@ -701,6 +801,19 @@ static const ITextHostVtbl textHostVtbl =
THISCALL
(
ITextHostImpl_TxImmGetContext
),
THISCALL
(
ITextHostImpl_TxImmReleaseContext
),
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
[]
=
...
...
@@ -759,10 +872,10 @@ static BOOL create_windowed_editor( HWND hwnd, CREATESTRUCTW *create, BOOL emula
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
))
{
ITextHost_Release
(
&
host
->
ITextHost_iface
);
ITextHost
2
_Release
(
&
host
->
ITextHost_iface
);
return
FALSE
;
}
IUnknown_QueryInterface
(
unk
,
&
IID_ITextServices
,
(
void
**
)
&
host
->
text_srv
);
...
...
@@ -1031,7 +1144,7 @@ static LRESULT RichEditWndProc_common( HWND hwnd, UINT msg, WPARAM wparam,
break
;
}
case
WM_DESTROY
:
ITextHost_Release
(
&
host
->
ITextHost_iface
);
ITextHost
2
_Release
(
&
host
->
ITextHost_iface
);
return
0
;
case
WM_ERASEBKGND
:
...
...
@@ -1185,7 +1298,7 @@ static LRESULT RichEditWndProc_common( HWND hwnd, UINT msg, WPARAM wparam,
PAINTSTRUCT
ps
;
HBRUSH
brush
=
CreateSolidBrush
(
ITextHost_TxGetSysColor
(
&
host
->
ITextHost_iface
,
COLOR_WINDOW
)
);
ITextHost
Impl
_TxGetClientRect
(
&
host
->
ITextHost_iface
,
&
client
);
ITextHost_TxGetClientRect
(
&
host
->
ITextHost_iface
,
&
client
);
if
(
msg
==
WM_PAINT
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment