51#if defined(__i386__) && !defined(__MINGW32__) && (!defined(_MSC_VER) || !defined(__clang__))
52static ITextServicesVtbl itextServicesStdcallVtbl;
53#define TXTSERV_VTABLE(This) (&itextServicesStdcallVtbl)
55#define TXTSERV_VTABLE(This) (This)->lpVtbl
58#define ITextServices_TxSendMessage(This,a,b,c,d) TXTSERV_VTABLE(This)->TxSendMessage(This,a,b,c,d)
59#define ITextServices_TxDraw(This,a,b,c,d,e,f,g,h,i,j,k,l) TXTSERV_VTABLE(This)->TxDraw(This,a,b,c,d,e,f,g,h,i,j,k,l)
60#define ITextServices_TxGetHScroll(This,a,b,c,d,e) TXTSERV_VTABLE(This)->TxGetHScroll(This,a,b,c,d,e)
61#define ITextServices_TxGetVScroll(This,a,b,c,d,e) TXTSERV_VTABLE(This)->TxGetVScroll(This,a,b,c,d,e)
62#define ITextServices_OnTxSetCursor(This,a,b,c,d,e,f,g,h,i) TXTSERV_VTABLE(This)->OnTxSetCursor(This,a,b,c,d,e,f,g,h,i)
63#define ITextServices_TxQueryHitPoint(This,a,b,c,d,e,f,g,h,i,j) TXTSERV_VTABLE(This)->TxQueryHitPoint(This,a,b,c,d,e,f,g,h,i,j)
64#define ITextServices_OnTxInPlaceActivate(This,a) TXTSERV_VTABLE(This)->OnTxInPlaceActivate(This,a)
65#define ITextServices_OnTxInPlaceDeactivate(This) TXTSERV_VTABLE(This)->OnTxInPlaceDeactivate(This)
66#define ITextServices_OnTxUIActivate(This) TXTSERV_VTABLE(This)->OnTxUIActivate(This)
67#define ITextServices_OnTxUIDeactivate(This) TXTSERV_VTABLE(This)->OnTxUIDeactivate(This)
68#define ITextServices_TxGetText(This,a) TXTSERV_VTABLE(This)->TxGetText(This,a)
69#define ITextServices_TxSetText(This,a) TXTSERV_VTABLE(This)->TxSetText(This,a)
70#define ITextServices_TxGetCurTargetX(This,a) TXTSERV_VTABLE(This)->TxGetCurTargetX(This,a)
71#define ITextServices_TxGetBaseLinePos(This,a) TXTSERV_VTABLE(This)->TxGetBaseLinePos(This,a)
72#define ITextServices_TxGetNaturalSize(This,a,b,c,d,e,f,g,h) TXTSERV_VTABLE(This)->TxGetNaturalSize(This,a,b,c,d,e,f,g,h)
73#define ITextServices_TxGetDropTarget(This,a) TXTSERV_VTABLE(This)->TxGetDropTarget(This,a)
74#define ITextServices_OnTxPropertyBitsChange(This,a,b) TXTSERV_VTABLE(This)->OnTxPropertyBitsChange(This,a,b)
75#define ITextServices_TxGetCachedSize(This,a,b) TXTSERV_VTABLE(This)->TxGetCachedSize(This,a,b)
79#define TRACECALL if(winetest_debug > 1) trace
99static const WCHAR lorem[] =
L"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. "
100 "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. "
101 "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. "
102 "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
112 ITextHost_AddRef((ITextHost *)*
ppvObject);
159 TRACECALL(
"Call to TxShowScrollBar(%p, fnBar=%d, fShow=%d)\n",
167 TRACECALL(
"Call to TxEnableScrollBar(%p, fuSBFlags=%d, fuArrowflags=%d)\n",
168 This, fuSBFlags, fuArrowflags);
176 TRACECALL(
"Call to TxSetScrollRange(%p, fnBar=%d, nMinPos=%d, nMaxPos=%d, fRedraw=%d)\n",
177 This, fnBar, nMinPos, nMaxPos, fRedraw);
184 TRACECALL(
"Call to TxSetScrollPos(%p, fnBar=%d, nPos=%d, fRedraw=%d)\n",
185 This, fnBar, nPos, fRedraw);
192 TRACECALL(
"Call to TxInvalidateRect(%p, prc=%p, fMode=%d)\n",
199 TRACECALL(
"Call to TxViewChange(%p, fUpdate=%d)\n",
206 TRACECALL(
"Call to TxCreateCaret(%p, nbmp=%p, xWidth=%d, yHeight=%d)\n",
214 TRACECALL(
"Call to TxShowCaret(%p, fShow=%d)\n",
229 TRACECALL(
"Call to TxSetTimer(%p, idTimer=%u, uTimeout=%u)\n",
230 This, idTimer, uTimeout);
237 TRACECALL(
"Call to TxKillTimer(%p, idTimer=%u)\n",
This, idTimer);
245 TRACECALL(
"Call to TxScrollWindowEx(%p, %d, %d, %p, %p, %p, %p, %d)\n",
246 This,
dx,
dy, lprcScroll, lprcClip, hRgnUpdate, lprcUpdate, fuScroll);
252 TRACECALL(
"Call to TxSetCapture(%p, fCapture=%d)\n",
This, fCapture);
264 TRACECALL(
"Call to TxSetCursor(%p, hcur=%p, fText=%d)\n",
271 TRACECALL(
"Call to TxScreenToClient(%p, lppt=%p)\n",
This, lppt);
278 TRACECALL(
"Call to TxClientToScreen(%p, lppt=%p)\n",
This, lppt);
285 TRACECALL(
"Call to TxActivate(%p, plOldState=%p)\n",
This, plOldState);
292 TRACECALL(
"Call to TxDeactivate(%p, lNewState=%d)\n",
This, lNewState);
314 TRACECALL(
"Call to TxGetCharFormat(%p, ppCF=%p)\n",
This, ppCF);
322 TRACECALL(
"Call to TxGetParaFormat(%p, ppPF=%p)\n",
This, ppPF);
329 TRACECALL(
"Call to TxGetSysColor(%p, nIndex=%d)\n",
This, nIndex);
336 TRACECALL(
"Call to TxGetBackStyle(%p, pStyle=%p)\n",
This, pStyle);
343 TRACECALL(
"Call to TxGetMaxLength(%p, pLength=%p)\n",
This, pLength);
350 TRACECALL(
"Call to TxGetScrollBars(%p, scrollbars=%p)\n",
This, scrollbars);
351 *scrollbars =
This->scrollbars;
372 TRACECALL(
"Call to TxGetExtent(%p, lpExtent=%p)\n",
This, lpExtent);
379 TRACECALL(
"Call to OnTxCharFormatChange(%p, pcf=%p)\n",
This, pcf);
386 TRACECALL(
"Call to OnTxParaFormatChange(%p, ppf=%p)\n",
This, ppf);
395 TRACECALL(
"Call to TxGetPropertyBits(%p, dwMask=0x%08x, pdwBits=%p)\n",
396 This, dwMask, pdwBits);
397 *pdwBits =
This->props & dwMask;
431 TRACECALL(
"Call to TxImmReleaseContext(%p, himc=%p)\n",
This, himc);
440 TRACECALL(
"Call to TxGetSelectionBarWidth(%p, lSelBarWidth=%p)\n",
519#if defined(__i386__) && !defined(__MINGW32__) && (!defined(_MSC_VER) || !defined(__clang__))
526 (
sizeof(ITextHostVtbl)/
sizeof(
void*) - 3)
528 +(
sizeof(ITextServicesVtbl)/
sizeof(
void*) - 3)
547 while (pVtable != pVtableEnd) {
549 thunk->pop_eax = 0x58;
550 thunk->push_ecx = 0x51;
551 thunk->push_eax = 0x50;
552 thunk->jmp_func = 0xe9;
554 thunk->func = (
char*)*pVtable - (
char*)(&
thunk->func + 1);
566 pVtable = (
void**)&itextServicesStdcallVtbl + 3;
567 pVtableEnd = (
void**)(&itextServicesStdcallVtbl + 1);
568 while (pVtable != pVtableEnd) {
612 if (dummyTextHost ==
NULL) {
613 win_skip(
"Insufficient memory to create ITextHost interface\n");
624 dummyTextHost->
props = 0;
636 win_skip(
"CreateTextServices failed.\n");
641 ok((
result ==
S_OK) && (*txtserv !=
NULL),
"Querying interface failed (result = %x, txtserv = %p)\n",
result, *txtserv);
642 IUnknown_Release(
init);
645 win_skip(
"Could not retrieve ITextServices interface\n");
672 const WCHAR *expected_string;
674 ITextServices *txtserv;
685 ok(
hres ==
S_OK,
"ITextServices_TxGetText failed (result = %x)\n",
hres);
690 hres = ITextServices_QueryInterface(txtserv, &IID_IRichEditOle, (
void **)&reole);
692 hres = IRichEditOle_GetClientSite(reole, &clientsite);
694 expected_string =
L"abc\xfffc""defg";
696 hres = IRichEditOle_InsertObject(reole, &reobject);
703 IOleClientSite_Release(clientsite);
704 IRichEditOle_Release(reole);
706 ITextServices_Release(txtserv);
707 ITextHost_Release(
host);
712 ITextServices *txtserv;
716 WCHAR settext[] = {
'T',
'e',
's',
't',0};
722 ok(
hres ==
S_OK,
"ITextServices_TxSetText failed (result = %x)\n",
hres);
725 ok(
hres ==
S_OK,
"ITextServices_TxGetText failed (result = %x)\n",
hres);
728 "String returned of wrong length (expected 4, got %d)\n",
SysStringLen(rettext));
730 "String returned differs\n");
737 ok(
hres ==
S_OK,
"ITextServices_TxSetText failed (result = %x)\n",
hres);
740 ok(
hres ==
S_OK,
"ITextServices_TxGetText failed (result = %x)\n",
hres);
742 "String returned of wrong length (expected 0, got %d)\n",
SysStringLen(rettext));
745 ITextServices_Release(txtserv);
746 ITextHost_Release(
host);
749#define CHECK_TXGETNATURALSIZE(res,width,height,hdc,rect,string) \
750 _check_txgetnaturalsize(res, width, height, hdc, rect, string, __LINE__)
754 LONG expected_width, expected_height;
759 ok_(__FILE__,
line)(
res ==
S_OK,
"ITextServices_TxGetNaturalSize failed: 0x%08x.\n",
res);
761 "got wrong width: %d, expected: %d {+1}.\n",
width, expected_width);
762 ok_(__FILE__,
line)(
height == expected_height,
"got wrong height: %d, expected: %d.\n",
768 ITextServices *txtserv;
772 static const WCHAR test_text[] =
L"TestSomeText";
785 0, 0, 100, 100, 0, 0, 0,
NULL);
791 cf.cbSize =
sizeof(
cf);
811 ITextServices_Release(txtserv);
812 ITextHost_Release(
host);
817 ITextServices *txtserv;
829 0, 0, 400, 400, 0, 0, 0,
NULL );
862 ITextServices_Release(txtserv);
864 ITextHost_Release(
host);
867DEFINE_GUID(expected_iid_itextservices, 0x8d33f740, 0xcf58, 0x11ce, 0xa8, 0x9d, 0x00, 0xaa, 0x00, 0x6c, 0xad, 0xc5);
868DEFINE_GUID(expected_iid_itexthost, 0x13e670f4,0x1a5a,0x11cf,0xab,0xeb,0x00,0xaa,0x00,0xb6,0x5e,0xa1);
869DEFINE_GUID(expected_iid_itexthost2, 0x13e670f5,0x1a5a,0x11cf,0xab,0xeb,0x00,0xaa,0x00,0xb6,0x5e,0xa1);
897 return IUnknown_QueryInterface(
This->inner_unk,
riid,
ppv);
925 ITextServices *textsrv;
932 ok(
hr ==
S_OK,
"CreateTextServices failed: %08x\n",
hr);
934 ok(
hr ==
S_OK,
"QueryInterface for IID_ITextServices failed: %08x\n",
hr);
935 refcount = ITextServices_AddRef(textsrv);
936 ok(refcount == unk_obj.
ref,
"CreateTextServices just pretends to support COM aggregation\n");
937 refcount = ITextServices_Release(textsrv);
938 ok(refcount == unk_obj.
ref,
"CreateTextServices just pretends to support COM aggregation\n");
939 refcount = ITextServices_Release(textsrv);
940 ok(refcount == 19,
"Refcount should be back at 19 but is %u\n", refcount);
947 IUnknown_AddRef(iface);
948 return IUnknown_Release(iface);
953 ITextServices *txtserv;
966 ok(refcount == 1,
"got wrong ref count: %d\n", refcount);
969 hres = ITextServices_QueryInterface(txtserv, &IID_IRichEditOle, (
void **)&txtsrv_reole);
972 ok(refcount == 2,
"got wrong ref count: %d\n", refcount);
974 ok(refcount == 2,
"got wrong ref count: %d\n", refcount);
976 hres = ITextServices_QueryInterface( txtserv, &
IID_IUnknown, (
void **)&unk );
978 hres = IRichEditOle_QueryInterface( txtsrv_reole, &
IID_IUnknown, (
void **)&unk2 );
980 ok( unk == unk2,
"unknowns differ\n" );
981 IUnknown_Release( unk2 );
982 IUnknown_Release( unk );
984 hres = IRichEditOle_QueryInterface(txtsrv_reole, &IID_ITextDocument, (
void **)&txtdoc);
987 ok(refcount == 3,
"got wrong ref count: %d\n", refcount);
989 ok(refcount == 3,
"got wrong ref count: %d\n", refcount);
991 ITextDocument_Release(txtdoc);
993 ok(refcount == 2,
"got wrong ref count: %d\n", refcount);
995 hres = IRichEditOle_QueryInterface(txtsrv_reole, &IID_ITextDocument2Old, (
void **)&txtdoc2old);
998 ok(refcount == 3,
"got wrong ref count: %d\n", refcount);
1000 ok(refcount == 3,
"got wrong ref count: %d\n", refcount);
1002 ITextDocument2Old_Release(txtdoc2old);
1004 ok(refcount == 2,
"got wrong ref count: %d\n", refcount);
1005 IRichEditOle_Release(txtsrv_reole);
1007 ok(refcount == 1,
"got wrong ref count: %d\n", refcount);
1010 hres = ITextServices_QueryInterface(txtserv, &IID_ITextDocument, (
void **)&txtsrv_txtdoc);
1011 ok(
hres ==
S_OK,
"ITextServices_QueryInterface: 0x%08x\n",
hres);
1013 ok(refcount == 2,
"got wrong ref count: %d\n", refcount);
1015 ok(refcount == 2,
"got wrong ref count: %d\n", refcount);
1017 hres = ITextDocument_QueryInterface(txtsrv_txtdoc, &IID_IRichEditOle, (
void **)&reole);
1018 ok(
hres ==
S_OK,
"ITextDocument_QueryInterface: 0x%08x\n",
hres);
1020 ok(refcount == 3,
"got wrong ref count: %d\n", refcount);
1022 ok(refcount == 3,
"got wrong ref count: %d\n", refcount);
1024 IRichEditOle_Release(reole);
1026 ok(refcount == 2,
"got wrong ref count: %d\n", refcount);
1027 ITextDocument_Release(txtsrv_txtdoc);
1029 ok(refcount == 1,
"got wrong ref count: %d\n", refcount);
1032 hres = ITextServices_QueryInterface(txtserv, &IID_ITextDocument2Old, (
void **)&txtsrv_txtdoc2old);
1033 ok(
hres ==
S_OK,
"ITextServices_QueryInterface: 0x%08x\n",
hres);
1035 ok(refcount == 2,
"got wrong ref count: %d\n", refcount);
1037 ok(refcount == 2,
"got wrong ref count: %d\n", refcount);
1039 hres = ITextDocument2Old_QueryInterface(txtsrv_txtdoc2old, &IID_IRichEditOle, (
void **)&reole);
1040 ok(
hres ==
S_OK,
"ITextDocument2Old_QueryInterface: 0x%08x\n",
hres);
1042 ok(refcount == 3,
"got wrong ref count: %d\n", refcount);
1044 ok(refcount == 3,
"got wrong ref count: %d\n", refcount);
1046 IRichEditOle_Release(reole);
1048 ok(refcount == 2,
"got wrong ref count: %d\n", refcount);
1049 ITextDocument2Old_Release(txtsrv_txtdoc2old);
1051 ok(refcount == 1,
"got wrong ref count: %d\n", refcount);
1053 ITextServices_Release(txtserv);
1054 ITextHost_Release(
host);
1059 ITextServices *txtserv;
1065 DWORD expected_effects;
1078 ok(host_cf->
dwEffects == expected_effects,
"got wrong dwEffects: %x, expected %x.\n", cf2.
dwEffects, expected_effects);
1083 ITextServices_Release(txtserv);
1084 ITextHost_Release(
host);
1089 ITextServices *txtserv;
1103 ok(
ret ==
S_OK,
"ITextServices_TxGetHScroll failed: 0x%08x.\n",
ret);
1106 ok(
ret ==
S_OK,
"ITextServices_TxGetVScroll failed: 0x%08x.\n",
ret);
1109 ok(
ret ==
S_OK,
"ITextServices_TxGetHScroll failed: 0x%08x.\n",
ret );
1110 ok( min_pos == 0,
"got %d\n", min_pos );
1111 ok( max_pos == 0,
"got %d\n", max_pos );
1121 0, 0, 400, 400, 0, 0, 0,
NULL );
1127 ok(
ret ==
S_OK,
"ITextServices_TxGetHScroll failed: 0x%08x.\n",
ret );
1128 ok( min_pos == 0,
"got %d\n", min_pos );
1130 ok( max_pos == 0,
"got %d\n", max_pos );
1139 ok(
ret ==
S_OK,
"ITextServices_TxGetHScroll failed: 0x%08x.\n",
ret );
1140 ok( min_pos == 0,
"got %d\n", min_pos );
1141 ok( max_pos >
client.bottom,
"got %d\n", max_pos );
1151 ok(
ret ==
S_OK,
"ITextServices_TxGetHScroll failed: 0x%08x.\n",
ret );
1152 ok( min_pos == 0,
"got %d\n", min_pos );
1154 ok( max_pos == 0,
"got %d\n", max_pos );
1160 ITextServices_Release(txtserv);
1161 ITextHost_Release(
host);
1166 ITextServices *txtserv;
1183 0, 0, 400, 400, 0, 0, 0,
NULL );
1216 ITextServices_Release( txtserv );
1217 ITextHost_Release(
host );
1222 ITextServices *txtserv;
1242 ITextServices_Release(txtserv);
1243 ITextHost_Release(
host);
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define InterlockedIncrement
#define InterlockedDecrement
void user(int argc, const char *argv[])
#define GetProcAddress(x, y)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
static struct text_services * impl_from_IUnknown(IUnknown *iface)
#define ITextServices_TxSetText(This, a)
#define ITextServices_TxDraw(This, a, b, c, d, e, f, g, h, i, j, k, l)
#define ITextServices_OnTxInPlaceDeactivate(This)
#define ITextServices_TxSendMessage(This, a, b, c, d)
#define ITextServices_OnTxInPlaceActivate(This, a)
#define ITextServices_TxGetHScroll(This, a, b, c, d, e)
#define ITextServices_TxGetVScroll(This, a, b, c, d, e)
#define ITextServices_OnTxPropertyBitsChange(This, a, b)
#define ITextServices_TxGetText(This, a)
#define ITextServices_TxGetNaturalSize(This, a, b, c, d, e, f, g, h)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLenum GLenum GLsizei const GLuint GLboolean enabled
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static IID * pIID_ITextServices
static HRESULT __thiscall ITextHostImpl_TxGetMaxLength(ITextHost *iface, DWORD *pLength)
static HRESULT __thiscall ITextHostImpl_TxGetViewInset(ITextHost *iface, LPRECT prc)
static HRESULT __thiscall ITextHostImpl_OnTxCharFormatChange(ITextHost *iface, const CHARFORMATW *pcf)
#define CHECK_TXGETNATURALSIZE(res, width, height, hdc, rect, string)
static COLORREF __thiscall ITextHostImpl_TxGetSysColor(ITextHost *iface, int nIndex)
static void test_TxGetNaturalSize(void)
static void fill_reobject_struct(REOBJECT *reobj, LONG cp, LPOLEOBJECT poleobj, LPSTORAGE pstg, LPOLECLIENTSITE polesite, LONG sizel_cx, LONG sizel_cy, DWORD aspect, DWORD flags, DWORD user)
static INT __thiscall ITextHostImpl_TxReleaseDC(ITextHost *iface, HDC hdc)
static BOOL __thiscall ITextHostImpl_TxScreenToClient(ITextHost *iface, LPPOINT lppt)
static HRESULT __thiscall ITextHostImpl_TxGetExtent(ITextHost *iface, LPSIZEL lpExtent)
static void test_notifications(void)
static IID * pIID_ITextHost
static HRESULT __thiscall ITextHostImpl_TxGetPropertyBits(ITextHost *iface, DWORD dwMask, DWORD *pdwBits)
static HRESULT __thiscall ITextHostImpl_TxGetPasswordChar(ITextHost *iface, WCHAR *pch)
static HMODULE hmoduleRichEdit
static HRESULT __thiscall ITextHostImpl_TxDeactivate(ITextHost *iface, LONG lNewState)
static const WCHAR lorem[]
static HRESULT __thiscall ITextHostImpl_TxActivate(ITextHost *iface, LONG *plOldState)
static BOOL __thiscall ITextHostImpl_TxShowScrollBar(ITextHost *iface, INT fnBar, BOOL fShow)
static void __thiscall ITextHostImpl_TxSetCapture(ITextHost *iface, BOOL fCapture)
static BOOL init_texthost(ITextServices **txtserv, ITextHost **ret)
static BOOL __thiscall ITextHostImpl_TxClientToScreen(ITextHost *iface, LPPOINT lppt)
static int en_update_sent
static HIMC __thiscall ITextHostImpl_TxImmGetContext(ITextHost *iface)
static BOOL __thiscall ITextHostImpl_TxCreateCaret(ITextHost *iface, HBITMAP hbmp, INT xWidth, INT yHeight)
static BOOL __thiscall ITextHostImpl_TxSetScrollPos(ITextHost *iface, INT fnBar, INT nPos, BOOL fRedraw)
static HRESULT __thiscall ITextHostImpl_TxGetBackStyle(ITextHost *iface, TXTBACKSTYLE *pStyle)
static ULONG WINAPI unk_Release(IUnknown *iface)
static ULONG WINAPI ITextHostImpl_Release(ITextHost *iface)
static void test_TxSetText(void)
static HRESULT WINAPI unk_QueryInterface(IUnknown *iface, REFIID riid, void **ppv)
static HRESULT __thiscall ITextHostImpl_TxGetAcceleratorPos(ITextHost *iface, LONG *pch)
static void setup_thiscall_wrappers(void)
static HDC __thiscall ITextHostImpl_TxGetDC(ITextHost *iface)
static BOOL __thiscall ITextHostImpl_TxSetTimer(ITextHost *iface, UINT idTimer, UINT uTimeout)
static HRESULT __thiscall ITextHostImpl_TxGetParaFormat(ITextHost *iface, const PARAFORMAT **ppPF)
static void test_QueryInterface(void)
static void __thiscall ITextHostImpl_TxImmReleaseContext(ITextHost *iface, HIMC himc)
static void __thiscall ITextHostImpl_TxKillTimer(ITextHost *iface, UINT idTimer)
static void test_TxGetText(void)
static void test_TxDraw(void)
static HRESULT __thiscall ITextHostImpl_TxGetSelectionBarWidth(ITextHost *iface, LONG *lSelBarWidth)
static void hf_to_cf(HFONT hf, CHARFORMAT2W *cf)
static ITextHostTestImpl * impl_from_ITextHost(ITextHost *iface)
static ULONG WINAPI unk_AddRef(IUnknown *iface)
static BOOL __thiscall ITextHostImpl_TxEnableScrollBar(ITextHost *iface, INT fuSBFlags, INT fuArrowflags)
static HRESULT __thiscall ITextHostImpl_TxGetScrollBars(ITextHost *iface, DWORD *scrollbars)
static int en_vscroll_sent
static BOOL __thiscall ITextHostImpl_TxSetCaretPos(ITextHost *iface, INT x, INT y)
static void test_TxGetScroll(void)
static HRESULT __thiscall ITextHostImpl_TxGetCharFormat(ITextHost *iface, const CHARFORMATW **ppCF)
static HRESULT __thiscall ITextHostImpl_TxGetClientRect(ITextHost *iface, LPRECT prc)
static const IUnknownVtbl unk_vtbl
static HRESULT __thiscall ITextHostImpl_OnTxParaFormatChange(ITextHost *iface, const PARAFORMAT *ppf)
static BOOL __thiscall ITextHostImpl_TxSetScrollRange(ITextHost *iface, INT fnBar, LONG nMinPos, INT nMaxPos, BOOL fRedraw)
static HRESULT WINAPI ITextHostImpl_QueryInterface(ITextHost *iface, REFIID riid, LPVOID *ppvObject)
static void * wrapperCodeMem
static ULONG WINAPI ITextHostImpl_AddRef(ITextHost *iface)
static void __thiscall ITextHostImpl_TxSetCursor(ITextHost *iface, HCURSOR hcur, BOOL fText)
static void __thiscall ITextHostImpl_TxInvalidateRect(ITextHost *iface, LPCRECT prc, BOOL fMode)
static BOOL __thiscall ITextHostImpl_TxShowCaret(ITextHost *iface, BOOL fShow)
static void __thiscall ITextHostImpl_TxScrollWindowEx(ITextHost *iface, INT dx, INT dy, LPCRECT lprcScroll, LPCRECT lprcClip, HRGN hRgnUpdate, LPRECT lprcUpdate, UINT fuScroll)
static void test_default_format(void)
static void __thiscall ITextHostImpl_TxViewChange(ITextHost *iface, BOOL fUpdate)
static void _check_txgetnaturalsize(HRESULT res, LONG width, LONG height, HDC hdc, RECT rect, LPCWSTR string, int line)
static HRESULT __thiscall ITextHostImpl_TxNotify(ITextHost *iface, DWORD code, void *data)
static PCreateTextServices pCreateTextServices
static void __thiscall ITextHostImpl_TxSetFocus(ITextHost *iface)
static IID * pIID_ITextHost2
static ITextHostVtbl itextHostVtbl
static void test_IIDs(void)
static void test_COM(void)
static ULONG get_refcount(IUnknown *iface)
static RECT expected_rect
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
#define PAGE_EXECUTE_READWRITE
INT WINAPI DrawTextW(HDC hdc, LPCWSTR str, INT count, LPRECT rect, UINT flags)
interface IStorage * LPSTORAGE
UINT WINAPI SysStringByteLen(BSTR str)
UINT WINAPI SysStringLen(BSTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualIID(riid1, riid2)
#define ES_DISABLENOSCROLL
#define CFE_AUTOBACKCOLOR
struct _charformat2w CHARFORMAT2W
static __inline const char * wine_dbgstr_guid(const GUID *id)
ITextHost ITextHost_iface
WCHAR lfFaceName[LF_FACESIZE]
#define TXTBIT_CLIENTRECTCHANGE
enum _TXTBACKSTYLE TXTBACKSTYLE
#define TXTBIT_SCROLLBARCHANGE
HRESULT(WINAPI * PCreateTextServices)(IUnknown *, ITextHost *, IUnknown **)
#define CONTAINING_RECORD(address, type, field)
LPVOID NTAPI VirtualAlloc(IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD flAllocationType, IN DWORD flProtect)
BOOL NTAPI VirtualFree(IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD dwFreeType)
DWORD WINAPI GetLastError(void)
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
int WINAPI SetMapMode(_In_ HDC, _In_ int)
HGDIOBJ WINAPI GetStockObject(_In_ int)
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
HWND WINAPI CreateWindowExA(_In_ DWORD dwExStyle, _In_opt_ LPCSTR lpClassName, _In_opt_ LPCSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
HDC WINAPI GetDC(_In_opt_ HWND)
BOOL WINAPI SetRectEmpty(_Out_ LPRECT)
BOOL WINAPI DestroyWindow(_In_ HWND)