diff --git a/patches/dinput-axis-recalc/0001-dinput-Recalculated-Axis-after-deadzone-change.patch b/patches/dinput-axis-recalc/0001-dinput-Recalculated-Axis-after-deadzone-change.patch index 6f012f30..4e738619 100644 --- a/patches/dinput-axis-recalc/0001-dinput-Recalculated-Axis-after-deadzone-change.patch +++ b/patches/dinput-axis-recalc/0001-dinput-Recalculated-Axis-after-deadzone-change.patch @@ -1,19 +1,19 @@ -From b5311918d5fbdc15b3321fed444daa0d0c8507de Mon Sep 17 00:00:00 2001 +From 24829b2ba6d5efd950f178b8282dda826c4d1df0 Mon Sep 17 00:00:00 2001 From: Bruno Jesus Date: Thu, 28 Feb 2019 15:56:18 +1100 Subject: [PATCH] dinput: Recalculated Axis after deadzone change. Wine-bugs: https://bugs.winehq.org/show_bug.cgi?id=41317 --- - dlls/dinput/joystick.c | 149 ++++++++++++++++++++++++++----------------------- + dlls/dinput/joystick.c | 149 ++++++++++++++++++++++------------------- 1 file changed, 80 insertions(+), 69 deletions(-) diff --git a/dlls/dinput/joystick.c b/dlls/dinput/joystick.c -index 0ec1ceb..fd3d44d 100644 +index 433348cd04..c150528e3d 100644 --- a/dlls/dinput/joystick.c +++ b/dlls/dinput/joystick.c -@@ -271,6 +271,76 @@ BOOL device_disabled_registry(const char* name) - return do_disable; +@@ -312,6 +312,76 @@ BOOL is_xinput_device(const DIDEVCAPS *devcaps, WORD vid, WORD pid) + return (devcaps->dwAxes == 6 && devcaps->dwButtons >= 14); } +static void remap_init(JoystickGenericImpl *This, int obj, ObjProps *remap_props) @@ -89,7 +89,7 @@ index 0ec1ceb..fd3d44d 100644 /****************************************************************************** * SetProperty : change input device properties */ -@@ -278,7 +348,6 @@ HRESULT WINAPI JoystickWGenericImpl_SetProperty(LPDIRECTINPUTDEVICE8W iface, REF +@@ -319,7 +389,6 @@ HRESULT WINAPI JoystickWGenericImpl_SetProperty(LPDIRECTINPUTDEVICE8W iface, REF { JoystickGenericImpl *This = impl_from_IDirectInputDevice8W(iface); DWORD i; @@ -97,7 +97,7 @@ index 0ec1ceb..fd3d44d 100644 TRACE("(%p,%s,%p)\n",This,debugstr_guid(rguid),ph); -@@ -295,69 +364,15 @@ HRESULT WINAPI JoystickWGenericImpl_SetProperty(LPDIRECTINPUTDEVICE8W iface, REF +@@ -336,69 +405,15 @@ HRESULT WINAPI JoystickWGenericImpl_SetProperty(LPDIRECTINPUTDEVICE8W iface, REF case (DWORD_PTR)DIPROP_RANGE: { LPCDIPROPRANGE pr = (LPCDIPROPRANGE)ph; if (ph->dwHow == DIPH_DEVICE) { @@ -171,7 +171,7 @@ index 0ec1ceb..fd3d44d 100644 } break; } -@@ -366,15 +381,13 @@ HRESULT WINAPI JoystickWGenericImpl_SetProperty(LPDIRECTINPUTDEVICE8W iface, REF +@@ -407,15 +422,13 @@ HRESULT WINAPI JoystickWGenericImpl_SetProperty(LPDIRECTINPUTDEVICE8W iface, REF if (ph->dwHow == DIPH_DEVICE) { TRACE("deadzone(%d) all\n", pd->dwData); for (i = 0; i < This->base.data_format.wine_df->dwNumObjs; i++) @@ -190,7 +190,7 @@ index 0ec1ceb..fd3d44d 100644 } break; } -@@ -383,15 +396,13 @@ HRESULT WINAPI JoystickWGenericImpl_SetProperty(LPDIRECTINPUTDEVICE8W iface, REF +@@ -424,15 +437,13 @@ HRESULT WINAPI JoystickWGenericImpl_SetProperty(LPDIRECTINPUTDEVICE8W iface, REF if (ph->dwHow == DIPH_DEVICE) { TRACE("saturation(%d) all\n", pd->dwData); for (i = 0; i < This->base.data_format.wine_df->dwNumObjs; i++) @@ -210,5 +210,5 @@ index 0ec1ceb..fd3d44d 100644 break; } -- -1.9.1 +2.17.1 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index eab6f01a..a0399992 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "48a74277f5f9e0c87d8c01457236a89d94cb71d3" + echo "78f74446b9806f63a27c2d643b8e29156b5bdcbe" } # Show version information @@ -5328,24 +5328,12 @@ fi # | * dlls/riched20/richole.c, dlls/riched20/run.c, dlls/riched20/tests/richole.c # | if test "$enable_riched20_IText_Interface" -eq 1; then - patch_apply riched20-IText_Interface/0001-riched20-Implement-IText-Selection-Range-Set-Start-E.patch - patch_apply riched20-IText_Interface/0002-riched20-Stub-for-ITextFont-interface-and-implement-.patch patch_apply riched20-IText_Interface/0003-riched20-Stub-for-ITextPara-interface-and-implement-.patch patch_apply riched20-IText_Interface/0004-riched20-Fix-ME_RunOfsFromCharOfs-when-nCharOfs-strl.patch - patch_apply riched20-IText_Interface/0005-riched20-Implement-ITextRange-GetText.patch - patch_apply riched20-IText_Interface/0007-riched20-Implement-ITextRange-IsEqual.patch - patch_apply riched20-IText_Interface/0008-riched20-Implement-ITextRange-GetStoryLength.patch - patch_apply riched20-IText_Interface/0009-riched20-Implement-ITextSelection-GetStoryLength.patch patch_apply riched20-IText_Interface/0010-riched20-Silence-repeated-FIXMEs-triggered-by-Adobe-.patch ( - printf '%s\n' '+ { "Jactry Zeng", "riched20: Implement IText{Selection, Range}::Set{Start, End}.", 1 },'; - printf '%s\n' '+ { "Jactry Zeng", "riched20: Stub for ITextFont interface and implement ITextRange::GetFont and ITextSelection::GetFont.", 1 },'; printf '%s\n' '+ { "Jactry Zeng", "riched20: Stub for ITextPara interface and implement ITextRange::GetPara.", 1 },'; printf '%s\n' '+ { "Jactry Zeng", "riched20: Fix ME_RunOfsFromCharOfs() when nCharOfs > strlen().", 1 },'; - printf '%s\n' '+ { "Jactry Zeng", "riched20: Implement ITextRange::GetText.", 1 },'; - printf '%s\n' '+ { "Jactry Zeng", "riched20: Implement ITextRange::IsEqual.", 1 },'; - printf '%s\n' '+ { "Jactry Zeng", "riched20: Implement ITextRange::GetStoryLength.", 1 },'; - printf '%s\n' '+ { "Jactry Zeng", "riched20: Implement ITextSelection::GetStoryLength.", 1 },'; printf '%s\n' '+ { "Sebastian Lackner", "riched20: Silence repeated FIXMEs triggered by Adobe Reader.", 1 },'; ) >> "$patchlist" fi diff --git a/patches/riched20-IText_Interface/0001-riched20-Implement-IText-Selection-Range-Set-Start-E.patch b/patches/riched20-IText_Interface/0001-riched20-Implement-IText-Selection-Range-Set-Start-E.patch deleted file mode 100644 index 66fa23c2..00000000 --- a/patches/riched20-IText_Interface/0001-riched20-Implement-IText-Selection-Range-Set-Start-E.patch +++ /dev/null @@ -1,172 +0,0 @@ -From ad837ef7c71cdca27ce947100107bfe5c6982ff7 Mon Sep 17 00:00:00 2001 -From: Jactry Zeng -Date: Fri, 8 Aug 2014 21:32:57 +0800 -Subject: [PATCH] riched20: Implement IText{Selection, Range}::Set{Start, End}. - ---- - dlls/riched20/tests/richole.c | 135 ++++++++++++++++++++++++++++++++++ - 1 file changed, 135 insertions(+) - -diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 70646202f04..77f93a55c14 100644 ---- a/dlls/riched20/tests/richole.c -+++ b/dlls/riched20/tests/richole.c -@@ -3808,6 +3808,137 @@ static void test_MoveEnd(void) - ITextRange_Release(range); - } - -+static void test_ITextRange_SetStart(void) -+{ -+ HWND w; -+ IRichEditOle *reOle = NULL; -+ ITextDocument *txtDoc = NULL; -+ ITextRange *txtRge = NULL; -+ HRESULT hres; -+ LONG first, lim, start, end; -+ static const CHAR test_text1[] = "TestSomeText"; -+ -+ create_interfaces(&w, &reOle, &txtDoc, NULL); -+ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); -+ -+ first = 4, lim = 8; -+ ITextDocument_Range(txtDoc, first, lim, &txtRge); -+ hres = ITextRange_SetStart(txtRge, first); -+ ok(hres == S_FALSE, "ITextRange_SetStart\n"); -+ -+#define TEST_TXTRGE_SETSTART(cp, expected_start, expected_end) \ -+ hres = ITextRange_SetStart(txtRge, cp); \ -+ ok(hres == S_OK, "ITextRange_SetStart\n"); \ -+ ITextRange_GetStart(txtRge, &start); \ -+ ITextRange_GetEnd(txtRge, &end); \ -+ ok(start == expected_start, "got wrong start value: %d\n", start); \ -+ ok(end == expected_end, "got wrong end value: %d\n", end); -+ -+ TEST_TXTRGE_SETSTART(2, 2, 8) -+ TEST_TXTRGE_SETSTART(-1, 0, 8) -+ TEST_TXTRGE_SETSTART(13, 12, 12) -+ -+ release_interfaces(&w, &reOle, &txtDoc, NULL); -+} -+ -+static void test_ITextRange_SetEnd(void) -+{ -+ HWND w; -+ IRichEditOle *reOle = NULL; -+ ITextDocument *txtDoc = NULL; -+ ITextRange *txtRge = NULL; -+ HRESULT hres; -+ LONG first, lim, start, end; -+ static const CHAR test_text1[] = "TestSomeText"; -+ -+ create_interfaces(&w, &reOle, &txtDoc, NULL); -+ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); -+ -+ first = 4, lim = 8; -+ ITextDocument_Range(txtDoc, first, lim, &txtRge); -+ hres = ITextRange_SetEnd(txtRge, lim); -+ ok(hres == S_FALSE, "ITextRange_SetEnd\n"); -+ -+#define TEST_TXTRGE_SETEND(cp, expected_start, expected_end) \ -+ hres = ITextRange_SetEnd(txtRge, cp); \ -+ ok(hres == S_OK, "ITextRange_SetEnd\n"); \ -+ ITextRange_GetStart(txtRge, &start); \ -+ ITextRange_GetEnd(txtRge, &end); \ -+ ok(start == expected_start, "got wrong start value: %d\n", start); \ -+ ok(end == expected_end, "got wrong end value: %d\n", end); -+ -+ TEST_TXTRGE_SETEND(6, 4, 6) -+ TEST_TXTRGE_SETEND(14, 4, 13) -+ TEST_TXTRGE_SETEND(-1, 0, 0) -+ -+ ITextRange_Release(txtRge); -+ release_interfaces(&w, &reOle, &txtDoc, NULL); -+} -+ -+static void test_ITextSelection_SetStart(void) -+{ -+ HWND w; -+ IRichEditOle *reOle = NULL; -+ ITextDocument *txtDoc = NULL; -+ ITextSelection *txtSel = NULL; -+ HRESULT hres; -+ LONG first, lim, start, end; -+ static const CHAR test_text1[] = "TestSomeText"; -+ -+ create_interfaces(&w, &reOle, &txtDoc, &txtSel); -+ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); -+ -+ first = 4, lim = 8; -+ SendMessageA(w, EM_SETSEL, first, lim); -+ hres = ITextSelection_SetStart(txtSel, first); -+ ok(hres == S_FALSE, "ITextSelection_SetStart\n"); -+ -+#define TEST_TXTSEL_SETSTART(cp, expected_start, expected_end) \ -+ hres = ITextSelection_SetStart(txtSel, cp); \ -+ ok(hres == S_OK, "ITextSelection_SetStart\n"); \ -+ SendMessageA(w, EM_GETSEL, (LPARAM)&start, (WPARAM)&end); \ -+ ok(start == expected_start, "got wrong start value: %d\n", start); \ -+ ok(end == expected_end, "got wrong end value: %d\n", end); -+ -+ TEST_TXTSEL_SETSTART(2, 2, 8) -+ TEST_TXTSEL_SETSTART(-1, 0, 8) -+ TEST_TXTSEL_SETSTART(13, 12, 12) -+ -+ release_interfaces(&w, &reOle, &txtDoc, &txtSel); -+} -+ -+static void test_ITextSelection_SetEnd(void) -+{ -+ HWND w; -+ IRichEditOle *reOle = NULL; -+ ITextDocument *txtDoc = NULL; -+ ITextSelection *txtSel = NULL; -+ HRESULT hres; -+ LONG first, lim, start, end; -+ static const CHAR test_text1[] = "TestSomeText"; -+ -+ create_interfaces(&w, &reOle, &txtDoc, &txtSel); -+ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); -+ -+ first = 4, lim = 8; -+ SendMessageA(w, EM_SETSEL, first, lim); -+ hres = ITextSelection_SetEnd(txtSel, lim); -+ ok(hres == S_FALSE, "ITextSelection_SetEnd\n"); -+ -+#define TEST_TXTSEL_SETEND(cp, expected_start, expected_end) \ -+ hres = ITextSelection_SetEnd(txtSel, cp); \ -+ ok(hres == S_OK, "ITextSelection_SetEnd\n"); \ -+ SendMessageA(w, EM_GETSEL, (LPARAM)&start, (WPARAM)&end); \ -+ ok(start == expected_start, "got wrong start value: %d\n", start); \ -+ ok(end == expected_end, "got wrong end value: %d\n", end); -+ -+ TEST_TXTSEL_SETEND(6, 4, 6) -+ TEST_TXTSEL_SETEND(14, 4, 13) -+ TEST_TXTSEL_SETEND(-1, 0, 0) -+ -+ release_interfaces(&w, &reOle, &txtDoc, &txtSel); -+} -+ - START_TEST(richole) - { - /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -3820,6 +3951,8 @@ START_TEST(richole) - test_GetText(); - test_ITextSelection_GetChar(); - test_ITextSelection_GetStart_GetEnd(); -+ test_ITextSelection_SetStart(); -+ test_ITextSelection_SetEnd(); - test_ITextSelection_Collapse(); - test_ITextDocument_Range(); - test_ITextRange_GetChar(); -@@ -3827,6 +3960,8 @@ START_TEST(richole) - test_ITextRange_GetStart_GetEnd(); - test_ITextRange_SetRange(); - test_ITextRange_GetDuplicate(); -+ test_ITextRange_SetStart(); -+ test_ITextRange_SetEnd(); - test_ITextRange_Collapse(); - test_GetClientSite(); - test_IOleWindow_GetWindow(); --- -2.20.1 - diff --git a/patches/riched20-IText_Interface/0002-riched20-Stub-for-ITextFont-interface-and-implement-.patch b/patches/riched20-IText_Interface/0002-riched20-Stub-for-ITextFont-interface-and-implement-.patch deleted file mode 100644 index 9c288621..00000000 --- a/patches/riched20-IText_Interface/0002-riched20-Stub-for-ITextFont-interface-and-implement-.patch +++ /dev/null @@ -1,191 +0,0 @@ -From c1711e301579aa2469cad8b0d3ba5567edc4611b Mon Sep 17 00:00:00 2001 -From: Jactry Zeng -Date: Mon, 11 Aug 2014 13:51:55 +0800 -Subject: riched20: Stub for ITextFont interface and implement - ITextRange::GetFont and ITextSelection::GetFont. - ---- - dlls/riched20/richole.c | 20 ++++++++++ - dlls/riched20/tests/richole.c | 93 +++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 113 insertions(+) - -diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index 1013e67..9e7d853 100644 ---- a/dlls/riched20/richole.c -+++ b/dlls/riched20/richole.c -@@ -2654,6 +2654,10 @@ static HRESULT WINAPI TextFont_SetDuplicate(ITextFont *iface, ITextFont *pFont) - { - ITextFontImpl *This = impl_from_ITextFont(iface); - FIXME("(%p)->(%p): stub\n", This, pFont); -+ -+ if (This->range && !get_range_reole(This->range)) -+ return CO_E_RELEASED; -+ - return E_NOTIMPL; - } - -@@ -2661,6 +2665,10 @@ static HRESULT WINAPI TextFont_CanChange(ITextFont *iface, LONG *ret) - { - ITextFontImpl *This = impl_from_ITextFont(iface); - FIXME("(%p)->(%p): stub\n", This, ret); -+ -+ if (This->range && !get_range_reole(This->range)) -+ return CO_E_RELEASED; -+ - return E_NOTIMPL; - } - -@@ -2668,6 +2676,10 @@ static HRESULT WINAPI TextFont_IsEqual(ITextFont *iface, ITextFont *font, LONG * - { - ITextFontImpl *This = impl_from_ITextFont(iface); - FIXME("(%p)->(%p %p): stub\n", This, font, ret); -+ -+ if (This->range && !get_range_reole(This->range)) -+ return CO_E_RELEASED; -+ - return E_NOTIMPL; - } - -@@ -2841,6 +2853,10 @@ static HRESULT WINAPI TextFont_GetStyle(ITextFont *iface, LONG *value) - { - ITextFontImpl *This = impl_from_ITextFont(iface); - FIXME("(%p)->(%p): stub\n", This, value); -+ -+ if (This->range && !get_range_reole(This->range)) -+ return CO_E_RELEASED; -+ - return E_NOTIMPL; - } - -@@ -2848,6 +2864,10 @@ static HRESULT WINAPI TextFont_SetStyle(ITextFont *iface, LONG value) - { - ITextFontImpl *This = impl_from_ITextFont(iface); - FIXME("(%p)->(%d): stub\n", This, value); -+ -+ if (This->range && !get_range_reole(This->range)) -+ return CO_E_RELEASED; -+ - return E_NOTIMPL; - } - -diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 8047f4b..851ae9a 100644 ---- a/dlls/riched20/tests/richole.c -+++ b/dlls/riched20/tests/richole.c -@@ -3528,6 +3528,97 @@ static void test_ITextSelection_SetEnd(void) - release_interfaces(&w, &reOle, &txtDoc, &txtSel); - } - -+static void test_ITextRange_GetFont(void) -+{ -+ HWND w; -+ IRichEditOle *reOle = NULL; -+ ITextDocument *txtDoc = NULL; -+ ITextRange *txtRge = NULL; -+ ITextFont *txtFont = NULL, *txtFont1 = NULL; -+ HRESULT hres; -+ int first, lim; -+ int refcount; -+ static const CHAR test_text1[] = "TestSomeText"; -+ LONG value; -+ -+ create_interfaces(&w, &reOle, &txtDoc, NULL); -+ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); -+ -+ first = 4, lim = 4; -+ ITextDocument_Range(txtDoc, first, lim, &txtRge); -+ refcount = get_refcount((IUnknown *)txtRge); -+ ok(refcount == 1, "got wrong ref count: %d\n", refcount); -+ -+ hres = ITextRange_GetFont(txtRge, &txtFont); -+ ok(hres == S_OK, "ITextRange_GetFont\n"); -+ refcount = get_refcount((IUnknown *)txtFont); -+ ok(refcount == 1, "got wrong ref count: %d\n", refcount); -+ refcount = get_refcount((IUnknown *)txtRge); -+ ok(refcount == 2, "got wrong ref count: %d\n", refcount); -+ -+ hres = ITextRange_GetFont(txtRge, &txtFont1); -+ ok(hres == S_OK, "ITextRange_GetFont\n"); -+ ok(txtFont1 != txtFont, "A new pointer should be return\n"); -+ refcount = get_refcount((IUnknown *)txtFont1); -+ ok(refcount == 1, "got wrong ref count: %d\n", refcount); -+ ITextFont_Release(txtFont1); -+ refcount = get_refcount((IUnknown *)txtRge); -+ ok(refcount == 2, "got wrong ref count: %d\n", refcount); -+ -+ ITextRange_Release(txtRge); -+ release_interfaces(&w, &reOle, &txtDoc, NULL); -+ -+ hres = ITextFont_GetOutline(txtFont, &value); -+ ok(hres == CO_E_RELEASED, "ITextFont after ITextDocument destroyed\n"); -+ -+ ITextFont_Release(txtFont); -+} -+ -+static void test_ITextSelection_GetFont(void) -+{ -+ HWND w; -+ IRichEditOle *reOle = NULL; -+ ITextDocument *txtDoc = NULL; -+ ITextSelection *txtSel = NULL; -+ ITextFont *txtFont = NULL, *txtFont1 = NULL; -+ HRESULT hres; -+ int first, lim; -+ int refcount; -+ static const CHAR test_text1[] = "TestSomeText"; -+ LONG value; -+ -+ create_interfaces(&w, &reOle, &txtDoc, &txtSel); -+ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); -+ -+ first = 4, lim = 4; -+ SendMessageA(w, EM_SETSEL, first, lim); -+ refcount = get_refcount((IUnknown *)txtSel); -+ ok(refcount == 2, "got wrong ref count: %d\n", refcount); -+ -+ hres = ITextSelection_GetFont(txtSel, &txtFont); -+ ok(hres == S_OK, "ITextSelection_GetFont\n"); -+ refcount = get_refcount((IUnknown *)txtFont); -+ ok(refcount == 1, "got wrong ref count: %d\n", refcount); -+ refcount = get_refcount((IUnknown *)txtSel); -+ ok(refcount == 3, "got wrong ref count: %d\n", refcount); -+ -+ hres = ITextSelection_GetFont(txtSel, &txtFont1); -+ ok(hres == S_OK, "ITextSelection_GetFont\n"); -+ ok(txtFont1 != txtFont, "A new pointer should be return\n"); -+ refcount = get_refcount((IUnknown *)txtFont1); -+ ok(refcount == 1, "got wrong ref count: %d\n", refcount); -+ ITextFont_Release(txtFont1); -+ refcount = get_refcount((IUnknown *)txtSel); -+ ok(refcount == 3, "got wrong ref count: %d\n", refcount); -+ -+ release_interfaces(&w, &reOle, &txtDoc, &txtSel); -+ -+ hres = ITextFont_GetOutline(txtFont, &value); -+ ok(hres == CO_E_RELEASED, "ITextFont after ITextDocument destroyed\n"); -+ -+ ITextFont_Release(txtFont); -+} -+ - START_TEST(richole) - { - /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -3543,6 +3634,7 @@ START_TEST(richole) - test_ITextSelection_SetStart(); - test_ITextSelection_SetEnd(); - test_ITextSelection_Collapse(); -+ test_ITextSelection_GetFont(); - test_ITextDocument_Range(); - test_ITextRange_GetChar(); - test_ITextRange_ScrollIntoView(); -@@ -3551,6 +3643,7 @@ START_TEST(richole) - test_ITextRange_SetStart(); - test_ITextRange_SetEnd(); - test_ITextRange_Collapse(); -+ test_ITextRange_GetFont(); - test_GetClientSite(); - test_IOleWindow_GetWindow(); - test_IOleInPlaceSite_GetWindow(); --- -2.7.1 - diff --git a/patches/riched20-IText_Interface/0003-riched20-Stub-for-ITextPara-interface-and-implement-.patch b/patches/riched20-IText_Interface/0003-riched20-Stub-for-ITextPara-interface-and-implement-.patch index 63fc08ef..33c9af26 100644 --- a/patches/riched20-IText_Interface/0003-riched20-Stub-for-ITextPara-interface-and-implement-.patch +++ b/patches/riched20-IText_Interface/0003-riched20-Stub-for-ITextPara-interface-and-implement-.patch @@ -1,19 +1,19 @@ -From b2a2a423ce6d478f1d34408c5db559bffc482a17 Mon Sep 17 00:00:00 2001 +From bd691edcc2cedd99ca55b1628980c46b93ddf90d Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Sun, 10 Aug 2014 22:17:57 +0800 -Subject: riched20: Stub for ITextPara interface and implement +Subject: [PATCH] riched20: Stub for ITextPara interface and implement ITextRange::GetPara. --- - dlls/riched20/richole.c | 202 ++++++++++++++++++++++++++++++++++++++++++ - dlls/riched20/tests/richole.c | 47 ++++++++++ - 2 files changed, 249 insertions(+) + dlls/riched20/richole.c | 202 +++++++++++++++++++++++++ + dlls/riched20/tests/richole.c | 270 ++++++++++++++++++++++++++++++++++ + 2 files changed, 472 insertions(+) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index 64809cc..c309292 100644 +index c1119200153..724113404b4 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -3264,6 +3264,16 @@ static ULONG WINAPI TextPara_Release(ITextPara *iface) +@@ -3422,6 +3422,16 @@ static ULONG WINAPI TextPara_Release(ITextPara *iface) return ref; } @@ -30,7 +30,7 @@ index 64809cc..c309292 100644 static HRESULT WINAPI TextPara_GetTypeInfoCount(ITextPara *iface, UINT *pctinfo) { ITextParaImpl *This = impl_from_ITextPara(iface); -@@ -3330,6 +3340,10 @@ static HRESULT WINAPI TextPara_GetDuplicate(ITextPara *iface, ITextPara **ret) +@@ -3489,6 +3499,10 @@ static HRESULT WINAPI TextPara_GetDuplicate(ITextPara *iface, ITextPara **ret) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, ret); @@ -41,7 +41,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3337,6 +3351,10 @@ static HRESULT WINAPI TextPara_SetDuplicate(ITextPara *iface, ITextPara *para) +@@ -3496,6 +3510,10 @@ static HRESULT WINAPI TextPara_SetDuplicate(ITextPara *iface, ITextPara *para) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, para); @@ -52,7 +52,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3344,6 +3362,10 @@ static HRESULT WINAPI TextPara_CanChange(ITextPara *iface, LONG *ret) +@@ -3503,6 +3521,10 @@ static HRESULT WINAPI TextPara_CanChange(ITextPara *iface, LONG *ret) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, ret); @@ -63,7 +63,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3351,6 +3373,10 @@ static HRESULT WINAPI TextPara_IsEqual(ITextPara *iface, ITextPara *para, LONG * +@@ -3510,6 +3532,10 @@ static HRESULT WINAPI TextPara_IsEqual(ITextPara *iface, ITextPara *para, LONG * { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p %p)\n", This, para, ret); @@ -74,7 +74,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3358,6 +3384,10 @@ static HRESULT WINAPI TextPara_Reset(ITextPara *iface, LONG value) +@@ -3517,6 +3543,10 @@ static HRESULT WINAPI TextPara_Reset(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -85,7 +85,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3365,6 +3395,10 @@ static HRESULT WINAPI TextPara_GetStyle(ITextPara *iface, LONG *value) +@@ -3524,6 +3554,10 @@ static HRESULT WINAPI TextPara_GetStyle(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -96,7 +96,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3372,6 +3406,10 @@ static HRESULT WINAPI TextPara_SetStyle(ITextPara *iface, LONG value) +@@ -3531,6 +3565,10 @@ static HRESULT WINAPI TextPara_SetStyle(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -107,7 +107,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3379,6 +3417,10 @@ static HRESULT WINAPI TextPara_GetAlignment(ITextPara *iface, LONG *value) +@@ -3538,6 +3576,10 @@ static HRESULT WINAPI TextPara_GetAlignment(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -118,7 +118,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3386,6 +3428,10 @@ static HRESULT WINAPI TextPara_SetAlignment(ITextPara *iface, LONG value) +@@ -3545,6 +3587,10 @@ static HRESULT WINAPI TextPara_SetAlignment(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -129,7 +129,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3393,6 +3439,10 @@ static HRESULT WINAPI TextPara_GetHyphenation(ITextPara *iface, LONG *value) +@@ -3552,6 +3598,10 @@ static HRESULT WINAPI TextPara_GetHyphenation(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -140,7 +140,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3400,6 +3450,10 @@ static HRESULT WINAPI TextPara_SetHyphenation(ITextPara *iface, LONG value) +@@ -3559,6 +3609,10 @@ static HRESULT WINAPI TextPara_SetHyphenation(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -151,7 +151,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3407,6 +3461,10 @@ static HRESULT WINAPI TextPara_GetFirstLineIndent(ITextPara *iface, FLOAT *value +@@ -3566,6 +3620,10 @@ static HRESULT WINAPI TextPara_GetFirstLineIndent(ITextPara *iface, FLOAT *value { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -162,7 +162,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3414,6 +3472,10 @@ static HRESULT WINAPI TextPara_GetKeepTogether(ITextPara *iface, LONG *value) +@@ -3573,6 +3631,10 @@ static HRESULT WINAPI TextPara_GetKeepTogether(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -173,7 +173,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3421,6 +3483,10 @@ static HRESULT WINAPI TextPara_SetKeepTogether(ITextPara *iface, LONG value) +@@ -3580,6 +3642,10 @@ static HRESULT WINAPI TextPara_SetKeepTogether(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -184,7 +184,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3428,6 +3494,10 @@ static HRESULT WINAPI TextPara_GetKeepWithNext(ITextPara *iface, LONG *value) +@@ -3587,6 +3653,10 @@ static HRESULT WINAPI TextPara_GetKeepWithNext(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -195,7 +195,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3435,6 +3505,10 @@ static HRESULT WINAPI TextPara_SetKeepWithNext(ITextPara *iface, LONG value) +@@ -3594,6 +3664,10 @@ static HRESULT WINAPI TextPara_SetKeepWithNext(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -206,7 +206,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3442,6 +3516,10 @@ static HRESULT WINAPI TextPara_GetLeftIndent(ITextPara *iface, FLOAT *value) +@@ -3601,6 +3675,10 @@ static HRESULT WINAPI TextPara_GetLeftIndent(ITextPara *iface, FLOAT *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -217,7 +217,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3449,6 +3527,10 @@ static HRESULT WINAPI TextPara_GetLineSpacing(ITextPara *iface, FLOAT *value) +@@ -3608,6 +3686,10 @@ static HRESULT WINAPI TextPara_GetLineSpacing(ITextPara *iface, FLOAT *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -228,7 +228,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3456,6 +3538,10 @@ static HRESULT WINAPI TextPara_GetLineSpacingRule(ITextPara *iface, LONG *value) +@@ -3615,6 +3697,10 @@ static HRESULT WINAPI TextPara_GetLineSpacingRule(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -239,7 +239,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3463,6 +3549,10 @@ static HRESULT WINAPI TextPara_GetListAlignment(ITextPara *iface, LONG *value) +@@ -3622,6 +3708,10 @@ static HRESULT WINAPI TextPara_GetListAlignment(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -250,7 +250,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3470,6 +3560,10 @@ static HRESULT WINAPI TextPara_SetListAlignment(ITextPara *iface, LONG value) +@@ -3629,6 +3719,10 @@ static HRESULT WINAPI TextPara_SetListAlignment(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -261,7 +261,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3477,6 +3571,10 @@ static HRESULT WINAPI TextPara_GetListLevelIndex(ITextPara *iface, LONG *value) +@@ -3636,6 +3730,10 @@ static HRESULT WINAPI TextPara_GetListLevelIndex(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -272,7 +272,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3484,6 +3582,10 @@ static HRESULT WINAPI TextPara_SetListLevelIndex(ITextPara *iface, LONG value) +@@ -3643,6 +3741,10 @@ static HRESULT WINAPI TextPara_SetListLevelIndex(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -283,7 +283,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3491,6 +3593,10 @@ static HRESULT WINAPI TextPara_GetListStart(ITextPara *iface, LONG *value) +@@ -3650,6 +3752,10 @@ static HRESULT WINAPI TextPara_GetListStart(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -294,7 +294,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3498,6 +3604,10 @@ static HRESULT WINAPI TextPara_SetListStart(ITextPara *iface, LONG value) +@@ -3657,6 +3763,10 @@ static HRESULT WINAPI TextPara_SetListStart(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -305,7 +305,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3505,6 +3615,10 @@ static HRESULT WINAPI TextPara_GetListTab(ITextPara *iface, FLOAT *value) +@@ -3664,6 +3774,10 @@ static HRESULT WINAPI TextPara_GetListTab(ITextPara *iface, FLOAT *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -316,7 +316,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3512,6 +3626,10 @@ static HRESULT WINAPI TextPara_SetListTab(ITextPara *iface, FLOAT value) +@@ -3671,6 +3785,10 @@ static HRESULT WINAPI TextPara_SetListTab(ITextPara *iface, FLOAT value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%.2f)\n", This, value); @@ -327,7 +327,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3519,6 +3637,10 @@ static HRESULT WINAPI TextPara_GetListType(ITextPara *iface, LONG *value) +@@ -3678,6 +3796,10 @@ static HRESULT WINAPI TextPara_GetListType(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -338,7 +338,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3526,6 +3648,10 @@ static HRESULT WINAPI TextPara_SetListType(ITextPara *iface, LONG value) +@@ -3685,6 +3807,10 @@ static HRESULT WINAPI TextPara_SetListType(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -349,7 +349,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3533,6 +3659,10 @@ static HRESULT WINAPI TextPara_GetNoLineNumber(ITextPara *iface, LONG *value) +@@ -3692,6 +3818,10 @@ static HRESULT WINAPI TextPara_GetNoLineNumber(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -360,7 +360,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3540,6 +3670,10 @@ static HRESULT WINAPI TextPara_SetNoLineNumber(ITextPara *iface, LONG value) +@@ -3699,6 +3829,10 @@ static HRESULT WINAPI TextPara_SetNoLineNumber(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -371,7 +371,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3547,6 +3681,10 @@ static HRESULT WINAPI TextPara_GetPageBreakBefore(ITextPara *iface, LONG *value) +@@ -3706,6 +3840,10 @@ static HRESULT WINAPI TextPara_GetPageBreakBefore(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -382,7 +382,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3554,6 +3692,10 @@ static HRESULT WINAPI TextPara_SetPageBreakBefore(ITextPara *iface, LONG value) +@@ -3713,6 +3851,10 @@ static HRESULT WINAPI TextPara_SetPageBreakBefore(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -393,7 +393,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3561,6 +3703,10 @@ static HRESULT WINAPI TextPara_GetRightIndent(ITextPara *iface, FLOAT *value) +@@ -3720,6 +3862,10 @@ static HRESULT WINAPI TextPara_GetRightIndent(ITextPara *iface, FLOAT *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -404,7 +404,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3568,6 +3714,10 @@ static HRESULT WINAPI TextPara_SetRightIndent(ITextPara *iface, FLOAT value) +@@ -3727,6 +3873,10 @@ static HRESULT WINAPI TextPara_SetRightIndent(ITextPara *iface, FLOAT value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%.2f)\n", This, value); @@ -415,7 +415,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3575,6 +3725,10 @@ static HRESULT WINAPI TextPara_SetIndents(ITextPara *iface, FLOAT StartIndent, F +@@ -3734,6 +3884,10 @@ static HRESULT WINAPI TextPara_SetIndents(ITextPara *iface, FLOAT StartIndent, F { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%.2f %.2f %.2f)\n", This, StartIndent, LeftIndent, RightIndent); @@ -426,7 +426,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3582,6 +3736,10 @@ static HRESULT WINAPI TextPara_SetLineSpacing(ITextPara *iface, LONG LineSpacing +@@ -3741,6 +3895,10 @@ static HRESULT WINAPI TextPara_SetLineSpacing(ITextPara *iface, LONG LineSpacing { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d %.2f)\n", This, LineSpacingRule, LineSpacing); @@ -437,7 +437,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3589,6 +3747,10 @@ static HRESULT WINAPI TextPara_GetSpaceAfter(ITextPara *iface, FLOAT *value) +@@ -3748,6 +3906,10 @@ static HRESULT WINAPI TextPara_GetSpaceAfter(ITextPara *iface, FLOAT *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -448,7 +448,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3596,6 +3758,10 @@ static HRESULT WINAPI TextPara_SetSpaceAfter(ITextPara *iface, FLOAT value) +@@ -3755,6 +3917,10 @@ static HRESULT WINAPI TextPara_SetSpaceAfter(ITextPara *iface, FLOAT value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%.2f)\n", This, value); @@ -459,7 +459,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3603,6 +3769,10 @@ static HRESULT WINAPI TextPara_GetSpaceBefore(ITextPara *iface, FLOAT *value) +@@ -3762,6 +3928,10 @@ static HRESULT WINAPI TextPara_GetSpaceBefore(ITextPara *iface, FLOAT *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -470,7 +470,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3610,6 +3780,10 @@ static HRESULT WINAPI TextPara_SetSpaceBefore(ITextPara *iface, FLOAT value) +@@ -3769,6 +3939,10 @@ static HRESULT WINAPI TextPara_SetSpaceBefore(ITextPara *iface, FLOAT value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%.2f)\n", This, value); @@ -481,7 +481,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3617,6 +3791,10 @@ static HRESULT WINAPI TextPara_GetWidowControl(ITextPara *iface, LONG *value) +@@ -3776,6 +3950,10 @@ static HRESULT WINAPI TextPara_GetWidowControl(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -492,7 +492,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3624,6 +3802,10 @@ static HRESULT WINAPI TextPara_SetWidowControl(ITextPara *iface, LONG value) +@@ -3783,6 +3961,10 @@ static HRESULT WINAPI TextPara_SetWidowControl(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -503,7 +503,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3631,6 +3813,10 @@ static HRESULT WINAPI TextPara_GetTabCount(ITextPara *iface, LONG *value) +@@ -3790,6 +3972,10 @@ static HRESULT WINAPI TextPara_GetTabCount(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -514,7 +514,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3638,6 +3824,10 @@ static HRESULT WINAPI TextPara_AddTab(ITextPara *iface, FLOAT tbPos, LONG tbAlig +@@ -3797,6 +3983,10 @@ static HRESULT WINAPI TextPara_AddTab(ITextPara *iface, FLOAT tbPos, LONG tbAlig { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%.2f %d %d)\n", This, tbPos, tbAlign, tbLeader); @@ -525,7 +525,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3645,6 +3835,10 @@ static HRESULT WINAPI TextPara_ClearAllTabs(ITextPara *iface) +@@ -3804,6 +3994,10 @@ static HRESULT WINAPI TextPara_ClearAllTabs(ITextPara *iface) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)\n", This); @@ -536,7 +536,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3652,6 +3846,10 @@ static HRESULT WINAPI TextPara_DeleteTab(ITextPara *iface, FLOAT pos) +@@ -3811,6 +4005,10 @@ static HRESULT WINAPI TextPara_DeleteTab(ITextPara *iface, FLOAT pos) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%.2f)\n", This, pos); @@ -547,7 +547,7 @@ index 64809cc..c309292 100644 return E_NOTIMPL; } -@@ -3659,6 +3857,10 @@ static HRESULT WINAPI TextPara_GetTab(ITextPara *iface, LONG iTab, FLOAT *ptbPos +@@ -3818,6 +4016,10 @@ static HRESULT WINAPI TextPara_GetTab(ITextPara *iface, LONG iTab, FLOAT *ptbPos { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d %p %p %p)\n", This, iTab, ptbPos, ptbAlign, ptbLeader); @@ -559,13 +559,235 @@ index 64809cc..c309292 100644 } diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 5f8e1cc..c148034 100644 +index 70646202f04..6dadf622732 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -3473,6 +3473,52 @@ static void test_ITextSelection_GetFont(void) - ITextFont_Release(txtFont); +@@ -3808,6 +3808,274 @@ static void test_MoveEnd(void) + ITextRange_Release(range); } ++static void test_ITextRange_SetStart(void) ++{ ++ HWND w; ++ IRichEditOle *reOle = NULL; ++ ITextDocument *txtDoc = NULL; ++ ITextRange *txtRge = NULL; ++ HRESULT hres; ++ LONG first, lim, start, end; ++ static const CHAR test_text1[] = "TestSomeText"; ++ ++ create_interfaces(&w, &reOle, &txtDoc, NULL); ++ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); ++ ++ first = 4, lim = 8; ++ ITextDocument_Range(txtDoc, first, lim, &txtRge); ++ hres = ITextRange_SetStart(txtRge, first); ++ ok(hres == S_FALSE, "ITextRange_SetStart\n"); ++ ++#define TEST_TXTRGE_SETSTART(cp, expected_start, expected_end) \ ++ hres = ITextRange_SetStart(txtRge, cp); \ ++ ok(hres == S_OK, "ITextRange_SetStart\n"); \ ++ ITextRange_GetStart(txtRge, &start); \ ++ ITextRange_GetEnd(txtRge, &end); \ ++ ok(start == expected_start, "got wrong start value: %d\n", start); \ ++ ok(end == expected_end, "got wrong end value: %d\n", end); ++ ++ TEST_TXTRGE_SETSTART(2, 2, 8) ++ TEST_TXTRGE_SETSTART(-1, 0, 8) ++ TEST_TXTRGE_SETSTART(13, 12, 12) ++ ++ release_interfaces(&w, &reOle, &txtDoc, NULL); ++} ++ ++static void test_ITextRange_SetEnd(void) ++{ ++ HWND w; ++ IRichEditOle *reOle = NULL; ++ ITextDocument *txtDoc = NULL; ++ ITextRange *txtRge = NULL; ++ HRESULT hres; ++ LONG first, lim, start, end; ++ static const CHAR test_text1[] = "TestSomeText"; ++ ++ create_interfaces(&w, &reOle, &txtDoc, NULL); ++ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); ++ ++ first = 4, lim = 8; ++ ITextDocument_Range(txtDoc, first, lim, &txtRge); ++ hres = ITextRange_SetEnd(txtRge, lim); ++ ok(hres == S_FALSE, "ITextRange_SetEnd\n"); ++ ++#define TEST_TXTRGE_SETEND(cp, expected_start, expected_end) \ ++ hres = ITextRange_SetEnd(txtRge, cp); \ ++ ok(hres == S_OK, "ITextRange_SetEnd\n"); \ ++ ITextRange_GetStart(txtRge, &start); \ ++ ITextRange_GetEnd(txtRge, &end); \ ++ ok(start == expected_start, "got wrong start value: %d\n", start); \ ++ ok(end == expected_end, "got wrong end value: %d\n", end); ++ ++ TEST_TXTRGE_SETEND(6, 4, 6) ++ TEST_TXTRGE_SETEND(14, 4, 13) ++ TEST_TXTRGE_SETEND(-1, 0, 0) ++ ++ ITextRange_Release(txtRge); ++ release_interfaces(&w, &reOle, &txtDoc, NULL); ++} ++ ++static void test_ITextSelection_SetStart(void) ++{ ++ HWND w; ++ IRichEditOle *reOle = NULL; ++ ITextDocument *txtDoc = NULL; ++ ITextSelection *txtSel = NULL; ++ HRESULT hres; ++ LONG first, lim, start, end; ++ static const CHAR test_text1[] = "TestSomeText"; ++ ++ create_interfaces(&w, &reOle, &txtDoc, &txtSel); ++ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); ++ ++ first = 4, lim = 8; ++ SendMessageA(w, EM_SETSEL, first, lim); ++ hres = ITextSelection_SetStart(txtSel, first); ++ ok(hres == S_FALSE, "ITextSelection_SetStart\n"); ++ ++#define TEST_TXTSEL_SETSTART(cp, expected_start, expected_end) \ ++ hres = ITextSelection_SetStart(txtSel, cp); \ ++ ok(hres == S_OK, "ITextSelection_SetStart\n"); \ ++ SendMessageA(w, EM_GETSEL, (LPARAM)&start, (WPARAM)&end); \ ++ ok(start == expected_start, "got wrong start value: %d\n", start); \ ++ ok(end == expected_end, "got wrong end value: %d\n", end); ++ ++ TEST_TXTSEL_SETSTART(2, 2, 8) ++ TEST_TXTSEL_SETSTART(-1, 0, 8) ++ TEST_TXTSEL_SETSTART(13, 12, 12) ++ ++ release_interfaces(&w, &reOle, &txtDoc, &txtSel); ++} ++ ++static void test_ITextSelection_SetEnd(void) ++{ ++ HWND w; ++ IRichEditOle *reOle = NULL; ++ ITextDocument *txtDoc = NULL; ++ ITextSelection *txtSel = NULL; ++ HRESULT hres; ++ LONG first, lim, start, end; ++ static const CHAR test_text1[] = "TestSomeText"; ++ ++ create_interfaces(&w, &reOle, &txtDoc, &txtSel); ++ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); ++ ++ first = 4, lim = 8; ++ SendMessageA(w, EM_SETSEL, first, lim); ++ hres = ITextSelection_SetEnd(txtSel, lim); ++ ok(hres == S_FALSE, "ITextSelection_SetEnd\n"); ++ ++#define TEST_TXTSEL_SETEND(cp, expected_start, expected_end) \ ++ hres = ITextSelection_SetEnd(txtSel, cp); \ ++ ok(hres == S_OK, "ITextSelection_SetEnd\n"); \ ++ SendMessageA(w, EM_GETSEL, (LPARAM)&start, (WPARAM)&end); \ ++ ok(start == expected_start, "got wrong start value: %d\n", start); \ ++ ok(end == expected_end, "got wrong end value: %d\n", end); ++ ++ TEST_TXTSEL_SETEND(6, 4, 6) ++ TEST_TXTSEL_SETEND(14, 4, 13) ++ TEST_TXTSEL_SETEND(-1, 0, 0) ++ ++ release_interfaces(&w, &reOle, &txtDoc, &txtSel); ++} ++ ++static void test_ITextRange_GetFont(void) ++{ ++ HWND w; ++ IRichEditOle *reOle = NULL; ++ ITextDocument *txtDoc = NULL; ++ ITextRange *txtRge = NULL; ++ ITextFont *txtFont = NULL, *txtFont1 = NULL; ++ HRESULT hres; ++ int first, lim; ++ int refcount; ++ static const CHAR test_text1[] = "TestSomeText"; ++ LONG value; ++ ++ create_interfaces(&w, &reOle, &txtDoc, NULL); ++ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); ++ ++ first = 4, lim = 4; ++ ITextDocument_Range(txtDoc, first, lim, &txtRge); ++ refcount = get_refcount((IUnknown *)txtRge); ++ ok(refcount == 1, "got wrong ref count: %d\n", refcount); ++ ++ hres = ITextRange_GetFont(txtRge, &txtFont); ++ ok(hres == S_OK, "ITextRange_GetFont\n"); ++ refcount = get_refcount((IUnknown *)txtFont); ++ ok(refcount == 1, "got wrong ref count: %d\n", refcount); ++ refcount = get_refcount((IUnknown *)txtRge); ++ ok(refcount == 2, "got wrong ref count: %d\n", refcount); ++ ++ hres = ITextRange_GetFont(txtRge, &txtFont1); ++ ok(hres == S_OK, "ITextRange_GetFont\n"); ++ ok(txtFont1 != txtFont, "A new pointer should be return\n"); ++ refcount = get_refcount((IUnknown *)txtFont1); ++ ok(refcount == 1, "got wrong ref count: %d\n", refcount); ++ ITextFont_Release(txtFont1); ++ refcount = get_refcount((IUnknown *)txtRge); ++ ok(refcount == 2, "got wrong ref count: %d\n", refcount); ++ ++ ITextRange_Release(txtRge); ++ release_interfaces(&w, &reOle, &txtDoc, NULL); ++ ++ hres = ITextFont_GetOutline(txtFont, &value); ++ ok(hres == CO_E_RELEASED, "ITextFont after ITextDocument destroyed\n"); ++ ++ ITextFont_Release(txtFont); ++} ++ ++static void test_ITextSelection_GetFont(void) ++{ ++ HWND w; ++ IRichEditOle *reOle = NULL; ++ ITextDocument *txtDoc = NULL; ++ ITextSelection *txtSel = NULL; ++ ITextFont *txtFont = NULL, *txtFont1 = NULL; ++ HRESULT hres; ++ int first, lim; ++ int refcount; ++ static const CHAR test_text1[] = "TestSomeText"; ++ LONG value; ++ ++ create_interfaces(&w, &reOle, &txtDoc, &txtSel); ++ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); ++ ++ first = 4, lim = 4; ++ SendMessageA(w, EM_SETSEL, first, lim); ++ refcount = get_refcount((IUnknown *)txtSel); ++ ok(refcount == 2, "got wrong ref count: %d\n", refcount); ++ ++ hres = ITextSelection_GetFont(txtSel, &txtFont); ++ ok(hres == S_OK, "ITextSelection_GetFont\n"); ++ refcount = get_refcount((IUnknown *)txtFont); ++ ok(refcount == 1, "got wrong ref count: %d\n", refcount); ++ refcount = get_refcount((IUnknown *)txtSel); ++ ok(refcount == 3, "got wrong ref count: %d\n", refcount); ++ ++ hres = ITextSelection_GetFont(txtSel, &txtFont1); ++ ok(hres == S_OK, "ITextSelection_GetFont\n"); ++ ok(txtFont1 != txtFont, "A new pointer should be return\n"); ++ refcount = get_refcount((IUnknown *)txtFont1); ++ ok(refcount == 1, "got wrong ref count: %d\n", refcount); ++ ITextFont_Release(txtFont1); ++ refcount = get_refcount((IUnknown *)txtSel); ++ ok(refcount == 3, "got wrong ref count: %d\n", refcount); ++ ++ release_interfaces(&w, &reOle, &txtDoc, &txtSel); ++ ++ hres = ITextFont_GetOutline(txtFont, &value); ++ ok(hres == CO_E_RELEASED, "ITextFont after ITextDocument destroyed\n"); ++ ++ ITextFont_Release(txtFont); ++} ++ +static void test_ITextRange_GetPara(void) +{ + HWND w; @@ -615,14 +837,15 @@ index 5f8e1cc..c148034 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -3497,6 +3543,7 @@ START_TEST(richole) - test_ITextRange_SetEnd(); +@@ -3828,6 +4096,8 @@ START_TEST(richole) + test_ITextRange_SetRange(); + test_ITextRange_GetDuplicate(); test_ITextRange_Collapse(); - test_ITextRange_GetFont(); ++ test_ITextRange_GetFont(); + test_ITextRange_GetPara(); test_GetClientSite(); test_IOleWindow_GetWindow(); test_IOleInPlaceSite_GetWindow(); -- -2.4.2 +2.17.1 diff --git a/patches/riched20-IText_Interface/0005-riched20-Implement-ITextRange-GetText.patch b/patches/riched20-IText_Interface/0005-riched20-Implement-ITextRange-GetText.patch deleted file mode 100644 index 8fc3b045..00000000 --- a/patches/riched20-IText_Interface/0005-riched20-Implement-ITextRange-GetText.patch +++ /dev/null @@ -1,68 +0,0 @@ -From ce774a2b82262619fb882649ca02802e943ce404 Mon Sep 17 00:00:00 2001 -From: Jactry Zeng -Date: Wed, 13 Aug 2014 15:40:11 +0800 -Subject: riched20: Implement ITextRange::GetText. - ---- - dlls/riched20/tests/richole.c | 38 ++++++++++++++++++++++++++++++++++++++ - 1 file changed, 38 insertions(+) - -diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index c148034..051d9fe 100644 ---- a/dlls/riched20/tests/richole.c -+++ b/dlls/riched20/tests/richole.c -@@ -3519,6 +3519,43 @@ static void test_ITextRange_GetPara(void) - ITextPara_Release(txtPara); - } - -+static void test_ITextRange_GetText(void) -+{ -+ HWND w; -+ IRichEditOle *reOle = NULL; -+ ITextDocument *txtDoc = NULL; -+ ITextRange *txtRge = NULL; -+ HRESULT hres; -+ BSTR bstr = NULL; -+ static const CHAR test_text1[] = "TestSomeText"; -+ static const WCHAR bufW1[] = {'T', 'e', 's', 't', 0}; -+ static const WCHAR bufW2[] = {'T', 'e', 'x', 't', '\r', 0}; -+ static const WCHAR bufW3[] = {'T', 'e', 'x', 't', 0}; -+ static const WCHAR bufW4[] = {'T', 'e', 's', 't', 'S', 'o', 'm', -+ 'e', 'T', 'e', 'x', 't', '\r', 0}; -+ static const WCHAR bufW5[] = {'\r', 0}; -+ -+ -+#define TEST_TXTRGE_GETTEXT(first, lim, expected_string) \ -+ create_interfaces(&w, &reOle, &txtDoc, NULL); \ -+ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); \ -+ ITextDocument_Range(txtDoc, first, lim, &txtRge); \ -+ hres = ITextRange_GetText(txtRge, &bstr); \ -+ ok(hres == S_OK, "ITextRange_GetText\n"); \ -+ ok(!lstrcmpW(bstr, expected_string), "got wrong text: %s\n", wine_dbgstr_w(bstr)); \ -+ SysFreeString(bstr); \ -+ ITextRange_Release(txtRge); \ -+ release_interfaces(&w, &reOle, &txtDoc, NULL); -+ -+ TEST_TXTRGE_GETTEXT(0, 4, bufW1) -+ TEST_TXTRGE_GETTEXT(4, 0, bufW1) -+ TEST_TXTRGE_GETTEXT(8, 12, bufW3) -+ TEST_TXTRGE_GETTEXT(8, 13, bufW2) -+ TEST_TXTRGE_GETTEXT(12, 13, bufW5) -+ TEST_TXTRGE_GETTEXT(0, 13, bufW4) -+ TEST_TXTRGE_GETTEXT(1, 1, NULL) -+} -+ - START_TEST(richole) - { - /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -3544,6 +3581,7 @@ START_TEST(richole) - test_ITextRange_Collapse(); - test_ITextRange_GetFont(); - test_ITextRange_GetPara(); -+ test_ITextRange_GetText(); - test_GetClientSite(); - test_IOleWindow_GetWindow(); - test_IOleInPlaceSite_GetWindow(); --- -2.4.2 - diff --git a/patches/riched20-IText_Interface/0007-riched20-Implement-ITextRange-IsEqual.patch b/patches/riched20-IText_Interface/0007-riched20-Implement-ITextRange-IsEqual.patch deleted file mode 100644 index 5cc82b1d..00000000 --- a/patches/riched20-IText_Interface/0007-riched20-Implement-ITextRange-IsEqual.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 2d05fb15e16385684dfc1e9f1d2c51fa4d5830d9 Mon Sep 17 00:00:00 2001 -From: Jactry Zeng -Date: Fri, 15 Aug 2014 14:27:21 +0800 -Subject: [PATCH] riched20: Implement ITextRange::IsEqual. - ---- - dlls/riched20/tests/richole.c | 47 +++++++++++++++++++++++++++++++++++ - 1 file changed, 47 insertions(+) - -diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 4512085ea3..b2bb21d69b 100644 ---- a/dlls/riched20/tests/richole.c -+++ b/dlls/riched20/tests/richole.c -@@ -4113,6 +4113,52 @@ static void test_ITextRange_GetText(void) - TEST_TXTRGE_GETTEXT(1, 1, NULL) - } - -+static void test_ITextRange_IsEqual2(void) -+{ -+ HWND w; -+ IRichEditOle *reOle = NULL; -+ ITextDocument *txtDoc = NULL; -+ ITextRange *txtRge1 = NULL, *txtRge2 = NULL; -+ HRESULT hres; -+ static const CHAR test_text1[] = "TestSomeText"; -+ LONG res; -+ -+ create_interfaces(&w, &reOle, &txtDoc, NULL); -+ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); -+ ITextDocument_Range(txtDoc, 2, 4, &txtRge1); -+ ITextDocument_Range(txtDoc, 2, 4, &txtRge2); -+ -+#define TEST_TXTRGE_ISEQUAL(expected_hres, expected_res) \ -+ hres = ITextRange_IsEqual(txtRge1, txtRge2, &res); \ -+ ok(hres == expected_hres, "ITextRange_IsEqual\n"); \ -+ ok(res == expected_res, "got wrong return value: %d\n", res); -+ -+ TEST_TXTRGE_ISEQUAL(S_OK, tomTrue) -+ ITextRange_SetRange(txtRge2, 1, 2); -+ TEST_TXTRGE_ISEQUAL(S_FALSE, tomFalse) -+ -+ ITextRange_SetRange(txtRge1, 1, 1); -+ ITextRange_SetRange(txtRge2, 2, 2); -+ TEST_TXTRGE_ISEQUAL(S_FALSE, tomFalse) -+ -+ ITextRange_SetRange(txtRge2, 1, 1); -+ TEST_TXTRGE_ISEQUAL(S_OK, tomTrue) -+ -+ hres = ITextRange_IsEqual(txtRge1, txtRge1, &res); -+ ok(hres == S_OK, "ITextRange_IsEqual\n"); -+ ok(res == tomTrue, "got wrong return value: %d\n", res); -+ -+ hres = ITextRange_IsEqual(txtRge1, txtRge2, NULL); -+ ok(hres == S_OK, "ITextRange_IsEqual\n"); -+ -+ hres = ITextRange_IsEqual(txtRge1, NULL, NULL); -+ ok(hres == S_FALSE, "ITextRange_IsEqual\n"); -+ -+ ITextRange_Release(txtRge1); -+ ITextRange_Release(txtRge2); -+ release_interfaces(&w, &reOle, &txtDoc, NULL); -+} -+ - START_TEST(richole) - { - /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -4141,6 +4187,7 @@ START_TEST(richole) - test_ITextRange_GetFont(); - test_ITextRange_GetPara(); - test_ITextRange_GetText(); -+ test_ITextRange_IsEqual2(); - test_GetClientSite(); - test_IOleWindow_GetWindow(); - test_IOleInPlaceSite_GetWindow(); --- -2.20.1 - diff --git a/patches/riched20-IText_Interface/0008-riched20-Implement-ITextRange-GetStoryLength.patch b/patches/riched20-IText_Interface/0008-riched20-Implement-ITextRange-GetStoryLength.patch deleted file mode 100644 index 0578097e..00000000 --- a/patches/riched20-IText_Interface/0008-riched20-Implement-ITextRange-GetStoryLength.patch +++ /dev/null @@ -1,62 +0,0 @@ -From a3c18216d981f2f46f3a2572d5ba17f278c259c2 Mon Sep 17 00:00:00 2001 -From: Jactry Zeng -Date: Mon, 18 Aug 2014 14:38:50 +0800 -Subject: [PATCH] riched20: Implement ITextRange::GetStoryLength. - ---- - dlls/riched20/tests/richole.c | 32 ++++++++++++++++++++++++++++++++ - 1 file changed, 32 insertions(+) - -diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index b2bb21d69bc..5e105b3444a 100644 ---- a/dlls/riched20/tests/richole.c -+++ b/dlls/riched20/tests/richole.c -@@ -4159,6 +4159,37 @@ static void test_ITextRange_IsEqual2(void) - release_interfaces(&w, &reOle, &txtDoc, NULL); - } - -+static void test_ITextRange_GetStoryLength(void) -+{ -+ HWND w; -+ IRichEditOle *reOle = NULL; -+ ITextDocument *txtDoc = NULL; -+ ITextRange *txtRge = NULL; -+ HRESULT hres; -+ LONG count; -+ static const CHAR test_text1[] = "TestSomeText"; -+ int len = strlen(test_text1) + 1; -+ -+ create_interfaces(&w, &reOle, &txtDoc, NULL); -+ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); -+ ITextDocument_Range(txtDoc, 0, 0, &txtRge); -+ -+ hres = ITextRange_GetStoryLength(txtRge, &count); -+ ok(hres == S_OK, "ITextRange_GetStoryLength\n"); -+ ok(count == len, "got wrong length: %d\n", count); -+ -+ ITextRange_SetRange(txtRge, 1, 2); -+ hres = ITextRange_GetStoryLength(txtRge, &count); -+ ok(hres == S_OK, "ITextRange_GetStoryLength\n"); -+ ok(count == len, "got wrong length: %d\n", count); -+ -+ hres = ITextRange_GetStoryLength(txtRge, NULL); -+ ok(hres == E_INVALIDARG, "ITextRange_GetStoryLength\n"); -+ -+ ITextRange_Release(txtRge); -+ release_interfaces(&w, &reOle, &txtDoc, NULL); -+} -+ - START_TEST(richole) - { - /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -4188,6 +4219,7 @@ START_TEST(richole) - test_ITextRange_GetPara(); - test_ITextRange_GetText(); - test_ITextRange_IsEqual2(); -+ test_ITextRange_GetStoryLength(); - test_GetClientSite(); - test_IOleWindow_GetWindow(); - test_IOleInPlaceSite_GetWindow(); --- -2.20.1 - diff --git a/patches/riched20-IText_Interface/0009-riched20-Implement-ITextSelection-GetStoryLength.patch b/patches/riched20-IText_Interface/0009-riched20-Implement-ITextSelection-GetStoryLength.patch deleted file mode 100644 index b02ab67c..00000000 --- a/patches/riched20-IText_Interface/0009-riched20-Implement-ITextSelection-GetStoryLength.patch +++ /dev/null @@ -1,60 +0,0 @@ -From e5dad19d1dbab38b6a6c31bd23fe7dac278e6d1a Mon Sep 17 00:00:00 2001 -From: Jactry Zeng -Date: Mon, 18 Aug 2014 14:47:14 +0800 -Subject: riched20: Implement ITextSelection::GetStoryLength. - ---- - dlls/riched20/tests/richole.c | 30 ++++++++++++++++++++++++++++++ - 1 file changed, 30 insertions(+) - -diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index c7d6299..38a8f80 100644 ---- a/dlls/riched20/tests/richole.c -+++ b/dlls/riched20/tests/richole.c -@@ -3813,6 +3813,35 @@ static void test_ITextRange_GetStoryLength(void) - release_interfaces(&w, &reOle, &txtDoc, NULL); - } - -+static void test_ITextSelection_GetStoryLength(void) -+{ -+ HWND w; -+ IRichEditOle *reOle = NULL; -+ ITextDocument *txtDoc = NULL; -+ ITextSelection *txtSel = NULL; -+ HRESULT hres; -+ LONG count; -+ static const CHAR test_text1[] = "TestSomeText"; -+ int len = strlen(test_text1) + 1; -+ -+ create_interfaces(&w, &reOle, &txtDoc, &txtSel); -+ SendMessageA(w, WM_SETTEXT, 0, (LPARAM)test_text1); -+ -+ hres = ITextSelection_GetStoryLength(txtSel, &count); -+ ok(hres == S_OK, "ITextSelection_GetStoryLength\n"); -+ ok(count == len, "got wrong length: %d\n", count); -+ -+ SendMessageA(w, EM_SETSEL, 1, 2); -+ hres = ITextSelection_GetStoryLength(txtSel, &count); -+ ok(hres == S_OK, "ITextSelection_GetStoryLength\n"); -+ ok(count == len, "got wrong length: %d\n", count); -+ -+ hres = ITextSelection_GetStoryLength(txtSel, NULL); -+ ok(hres == E_INVALIDARG, "ITextSelection_GetStoryLength\n"); -+ -+ release_interfaces(&w, &reOle, &txtDoc, &txtSel); -+} -+ - START_TEST(richole) - { - /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -3829,6 +3858,7 @@ START_TEST(richole) - test_ITextSelection_SetEnd(); - test_ITextSelection_Collapse(); - test_ITextSelection_GetFont(); -+ test_ITextSelection_GetStoryLength(); - test_ITextDocument_Range(); - test_ITextRange_GetChar(); - test_ITextRange_ScrollIntoView(); --- -2.7.1 - diff --git a/patches/riched20-IText_Interface/0010-riched20-Silence-repeated-FIXMEs-triggered-by-Adobe-.patch b/patches/riched20-IText_Interface/0010-riched20-Silence-repeated-FIXMEs-triggered-by-Adobe-.patch index 0b9fc9cd..963fdf82 100644 --- a/patches/riched20-IText_Interface/0010-riched20-Silence-repeated-FIXMEs-triggered-by-Adobe-.patch +++ b/patches/riched20-IText_Interface/0010-riched20-Silence-repeated-FIXMEs-triggered-by-Adobe-.patch @@ -1,7 +1,7 @@ -From 17ad773281bf85925a0070fd0ba4ce07804c497c Mon Sep 17 00:00:00 2001 +From fc7edfef4776f6ce7577a0597f78ad4971fe776d Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 1 Nov 2014 22:51:34 +0100 -Subject: riched20: Silence repeated FIXMEs triggered by Adobe Reader. +Subject: [PATCH] riched20: Silence repeated FIXMEs triggered by Adobe Reader. Adobe Reader calls these functions very often while scrolling through a document. --- @@ -9,10 +9,10 @@ Adobe Reader calls these functions very often while scrolling through a document 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index 8aea23e..39cee96 100644 +index 724113404b4..5a620c537d5 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -927,6 +927,14 @@ static HRESULT WINAPI IRichEditOleImpl_inner_fnQueryInterface(IUnknown *iface, R +@@ -951,6 +951,14 @@ static HRESULT WINAPI IRichEditOleImpl_inner_fnQueryInterface(IUnknown *iface, R IUnknown_AddRef((IUnknown *)*ppvObj); return S_OK; } @@ -27,7 +27,7 @@ index 8aea23e..39cee96 100644 FIXME("%p: unhandled interface %s\n", This, debugstr_guid(riid)); return E_NOINTERFACE; -@@ -3438,7 +3446,9 @@ static HRESULT WINAPI TextPara_SetStyle(ITextPara *iface, LONG value) +@@ -3575,7 +3583,9 @@ static HRESULT WINAPI TextPara_SetStyle(ITextPara *iface, LONG value) static HRESULT WINAPI TextPara_GetAlignment(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); @@ -39,5 +39,5 @@ index 8aea23e..39cee96 100644 if (!para_get_reole(This)) return CO_E_RELEASED; -- -2.4.2 +2.17.1 diff --git a/patches/wuauserv-Dummy_Service/0001-wuauserv-Add-dummy-service.patch b/patches/wuauserv-Dummy_Service/0001-wuauserv-Add-dummy-service.patch index ad07925f..d64c2cf0 100644 --- a/patches/wuauserv-Dummy_Service/0001-wuauserv-Add-dummy-service.patch +++ b/patches/wuauserv-Dummy_Service/0001-wuauserv-Add-dummy-service.patch @@ -1,19 +1,19 @@ -From 0873ea7db1a66d1555ac608b249ac350f9c9097b Mon Sep 17 00:00:00 2001 +From 5613df7b70c1463cb5d115bf6d6bad077e27ca26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Fri, 11 Mar 2016 21:44:53 +0100 Subject: [PATCH] wuauserv: Add dummy service. --- configure.ac | 1 + - loader/wine.inf.in | 11 +++++ - programs/wuauserv/Makefile.in | 6 +++ - programs/wuauserv/main.c | 104 ++++++++++++++++++++++++++++++++++++++++++ + loader/wine.inf.in | 11 ++++ + programs/wuauserv/Makefile.in | 6 ++ + programs/wuauserv/main.c | 104 ++++++++++++++++++++++++++++++++++ 4 files changed, 122 insertions(+) create mode 100644 programs/wuauserv/Makefile.in create mode 100644 programs/wuauserv/main.c diff --git a/configure.ac b/configure.ac -index 13467e5..ddfba7d 100644 +index acdd8d5577f..adf23e9a95f 100644 --- a/configure.ac +++ b/configure.ac @@ -4039,6 +4039,7 @@ WINE_CONFIG_MAKEFILE(programs/wordpad) @@ -25,34 +25,34 @@ index 13467e5..ddfba7d 100644 WINE_CONFIG_MAKEFILE(programs/xcopy) WINE_CONFIG_MAKEFILE(programs/xcopy/tests) diff --git a/loader/wine.inf.in b/loader/wine.inf.in -index edb8401..c5d8e8f 100644 +index f77831f44a6..3e6a8e0a8cf 100644 --- a/loader/wine.inf.in +++ b/loader/wine.inf.in -@@ -136,6 +136,7 @@ AddService=Schedule,0,TaskSchedulerService +@@ -132,6 +132,7 @@ AddService=FontCache,0,FontCacheService + AddService=Schedule,0,TaskSchedulerService AddService=WineBus,0,WineBusService - AddService=WineHID,0,WineHIDService AddService=Winmgmt,0,WinmgmtService +AddService=wuauserv,0,wuauService [DefaultInstall.NT.Services] AddService=BITS,0,BITSService -@@ -153,6 +154,7 @@ AddService=Schedule,0,TaskSchedulerService +@@ -148,6 +149,7 @@ AddService=FontCache,0,FontCacheService + AddService=Schedule,0,TaskSchedulerService AddService=WineBus,0,WineBusService - AddService=WineHID,0,WineHIDService AddService=Winmgmt,0,WinmgmtService +AddService=wuauserv,0,wuauService [DefaultInstall.ntamd64.Services] AddService=BITS,0,BITSService -@@ -170,6 +172,7 @@ AddService=Schedule,0,TaskSchedulerService +@@ -164,6 +166,7 @@ AddService=FontCache,0,FontCacheService + AddService=Schedule,0,TaskSchedulerService AddService=WineBus,0,WineBusService - AddService=WineHID,0,WineHIDService AddService=Winmgmt,0,WinmgmtService +AddService=wuauserv,0,wuauService [Strings] MciExtStr="Software\Microsoft\Windows NT\CurrentVersion\MCI Extensions" -@@ -3471,6 +3474,14 @@ ErrorControl=1 +@@ -3634,6 +3637,14 @@ ErrorControl=1 HKR,Parameters,"ServiceDll",,"%11%\schedsvc.dll" HKLM,%CurrentVersionNT%\SvcHost,"netsvcs",0x00010008,"Schedule" @@ -69,7 +69,7 @@ index edb8401..c5d8e8f 100644 HKLM,"System\CurrentControlSet\Services\Eventlog\Application",,16 diff --git a/programs/wuauserv/Makefile.in b/programs/wuauserv/Makefile.in new file mode 100644 -index 0000000..16f27f1 +index 00000000000..16f27f13120 --- /dev/null +++ b/programs/wuauserv/Makefile.in @@ -0,0 +1,6 @@ @@ -81,7 +81,7 @@ index 0000000..16f27f1 + main.c diff --git a/programs/wuauserv/main.c b/programs/wuauserv/main.c new file mode 100644 -index 0000000..31df299 +index 00000000000..31df299e90e --- /dev/null +++ b/programs/wuauserv/main.c @@ -0,0 +1,104 @@ @@ -190,5 +190,5 @@ index 0000000..31df299 + return 0; +} -- -1.9.1 +2.17.1