Rebase against f4790714fe69df7701cff666d6b5ab4be049cbf6.

This commit is contained in:
Sebastian Lackner 2015-05-20 06:00:09 +02:00
parent 9573b57d3c
commit 349ba2df2a
11 changed files with 238 additions and 350 deletions

View File

@ -216,7 +216,7 @@ for more details.*
* ~~Reset device state in SysKeyboard*Impl_Acquire~~ ([Wine Bug #11607](https://bugs.winehq.org/show_bug.cgi?id=11607))
* Return an error when trying to open a terminated process ([Wine Bug #37087](https://bugs.winehq.org/show_bug.cgi?id=37087))
* Return correct IMediaSeeking stream positions in quartz ([Wine Bug #23174](https://bugs.winehq.org/show_bug.cgi?id=23174))
* Return correct device type for cd devices without medium
* ~~Return correct device type for cd devices without medium~~
* Return correct values for GetThreadTimes function ([Wine Bug #20230](https://bugs.winehq.org/show_bug.cgi?id=20230))
* Return default palette entries from GetSystemPaletteEntries for non-palette-based devices
* SO_CONNECT_TIME returns the appropriate time

16
debian/changelog vendored
View File

@ -1,3 +1,19 @@
wine-staging (1.7.44) UNRELEASED; urgency=low
* Removed patch to reset device state in SysKeyboard*Impl_Acquire (accepted
upstream).
* Removed patch to avoid creating thread queues for foreign threads in
attach_thread_input (accepted upstream).
* Removed patch to fix access violation when calling GetStringTypeW with NULL
src (accepted upstream).
* Removed patch to return correct device type for CD devices without medium
(accepted upstream).
* Removed patch to fix memory leak in wininet cookie handling (accepted
upstream).
* Removed various patches containing tests (accepted upstream).
* Partially removed patches for ITextFont/ITextPara implementation (fixed
upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Wed, 20 May 2015 05:55:09 +0200
wine-staging (1.7.43) unstable; urgency=low
* Disable patchset shell32-Default_Folder_ACLs (fixes Wine Staging Bug #265).
* Updated patch to calculate msvcrt exponential math operations with higher

View File

@ -1,4 +1,4 @@
From 18a7daf004ad8d8d773dfbcaf390c9fad2ebfaed Mon Sep 17 00:00:00 2001
From 3762d0ebf9a69e4d53344bbed116ce370c2de7a3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 26 Feb 2015 06:41:26 +0100
Subject: kernel32: Add support for progress callback in CopyFileEx.
@ -9,7 +9,7 @@ Subject: kernel32: Add support for progress callback in CopyFileEx.
2 files changed, 64 insertions(+), 10 deletions(-)
diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c
index 179c8e0..df98f26 100644
index eae2ca9..a3add7e 100644
--- a/dlls/kernel32/path.c
+++ b/dlls/kernel32/path.c
@@ -1112,6 +1112,9 @@ BOOL WINAPI CopyFileExW(LPCWSTR source, LPCWSTR dest,
@ -116,7 +116,7 @@ index 179c8e0..df98f26 100644
}
ret = TRUE;
diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c
index 0a8e0e2..ffebd8d 100644
index 64b0b8b..d91cab4 100644
--- a/dlls/kernel32/tests/file.c
+++ b/dlls/kernel32/tests/file.c
@@ -1131,23 +1131,17 @@ static void test_CopyFileEx(void)
@ -127,7 +127,7 @@ index 0a8e0e2..ffebd8d 100644
ok(!retok, "CopyFileExA unexpectedly succeeded\n");
- todo_wine
ok(GetLastError() == ERROR_REQUEST_ABORTED, "expected ERROR_REQUEST_ABORTED, got %d\n", GetLastError());
ok(GetFileAttributesA( dest ) != INVALID_FILE_ATTRIBUTES, "file was deleted\n");
ok(GetFileAttributesA(dest) != INVALID_FILE_ATTRIBUTES, "file was deleted\n");
hfile = CreateFileA(dest, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_DELETE,
NULL, OPEN_EXISTING, 0, 0);
@ -140,7 +140,7 @@ index 0a8e0e2..ffebd8d 100644
- todo_wine
ok(GetLastError() == ERROR_REQUEST_ABORTED, "expected ERROR_REQUEST_ABORTED, got %d\n", GetLastError());
- todo_wine
ok(GetFileAttributesA( dest ) == INVALID_FILE_ATTRIBUTES, "file was not deleted\n");
ok(GetFileAttributesA(dest) == INVALID_FILE_ATTRIBUTES, "file was not deleted\n");
ret = DeleteFileA(source);
--

View File

@ -1,88 +0,0 @@
From 83deea381c8297ff55f69b04765b6f6f8a012120 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 9 May 2015 00:26:25 +0200
Subject: kernel32/tests: Add tests for delete behaviour of CopyFileEx.
---
dlls/kernel32/tests/file.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c
index 9a6e972..0a8e0e2 100644
--- a/dlls/kernel32/tests/file.c
+++ b/dlls/kernel32/tests/file.c
@@ -1099,6 +1099,63 @@ static void test_CopyFile2(void)
DeleteFileW(dest);
}
+static DWORD WINAPI copy_progress_cb(LARGE_INTEGER total_size, LARGE_INTEGER total_transferred,
+ LARGE_INTEGER stream_size, LARGE_INTEGER stream_transferred,
+ DWORD stream, DWORD reason, HANDLE source, HANDLE dest, LPVOID userdata)
+{
+ ok(reason == CALLBACK_STREAM_SWITCH, "expected CALLBACK_STREAM_SWITCH, got %u\n", reason);
+ CloseHandle(userdata);
+ return PROGRESS_CANCEL;
+}
+
+static void test_CopyFileEx(void)
+{
+ char temp_path[MAX_PATH];
+ char source[MAX_PATH], dest[MAX_PATH];
+ static const char prefix[] = "pfx";
+ HANDLE hfile;
+ DWORD ret;
+ BOOL retok;
+
+ ret = GetTempPathA(MAX_PATH, temp_path);
+ ok(ret != 0, "GetTempPathA error %d\n", GetLastError());
+ ok(ret < MAX_PATH, "temp path should fit into MAX_PATH\n");
+
+ ret = GetTempFileNameA(temp_path, prefix, 0, source);
+ ok(ret != 0, "GetTempFileNameA error %d\n", GetLastError());
+
+ ret = GetTempFileNameA(temp_path, prefix, 0, dest);
+ ok(ret != 0, "GetTempFileNameA error %d\n", GetLastError());
+
+ hfile = CreateFileA(dest, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0);
+ ok(hfile != INVALID_HANDLE_VALUE, "failed to open destination file, error %d\n", GetLastError());
+ SetLastError(0xdeadbeef);
+ retok = CopyFileExA(source, dest, copy_progress_cb, hfile, NULL, 0);
+ todo_wine
+ ok(!retok, "CopyFileExA unexpectedly succeeded\n");
+ todo_wine
+ ok(GetLastError() == ERROR_REQUEST_ABORTED, "expected ERROR_REQUEST_ABORTED, got %d\n", GetLastError());
+ ok(GetFileAttributesA( dest ) != INVALID_FILE_ATTRIBUTES, "file was deleted\n");
+
+ hfile = CreateFileA(dest, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_DELETE,
+ NULL, OPEN_EXISTING, 0, 0);
+ todo_wine
+ ok(hfile != INVALID_HANDLE_VALUE, "failed to open destination file, error %d\n", GetLastError());
+ SetLastError(0xdeadbeef);
+ retok = CopyFileExA(source, dest, copy_progress_cb, hfile, NULL, 0);
+ todo_wine
+ ok(!retok, "CopyFileExA unexpectedly succeeded\n");
+ todo_wine
+ ok(GetLastError() == ERROR_REQUEST_ABORTED, "expected ERROR_REQUEST_ABORTED, got %d\n", GetLastError());
+ todo_wine
+ ok(GetFileAttributesA( dest ) == INVALID_FILE_ATTRIBUTES, "file was not deleted\n");
+
+ ret = DeleteFileA(source);
+ ok(ret, "DeleteFileA failed with error %d\n", GetLastError());
+ ret = DeleteFileA(dest);
+ ok(!ret, "DeleteFileA unexpectedly succeeded\n");
+}
+
/*
* Debugging routine to dump a buffer in a hexdump-like fashion.
*/
@@ -4447,6 +4504,7 @@ START_TEST(file)
test_CopyFileA();
test_CopyFileW();
test_CopyFile2();
+ test_CopyFileEx();
test_CreateFile();
test_CreateFileA();
test_CreateFileW();
--
2.4.0

View File

@ -1,33 +0,0 @@
From 1af79e37413d3d89f5290649d8e2b040ec0942af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 30 Mar 2015 03:03:03 +0200
Subject: kernel32: Return correct device type for cd devices without medium.
---
dlls/kernel32/volume.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/volume.c b/dlls/kernel32/volume.c
index 59eda44..38a72c5 100644
--- a/dlls/kernel32/volume.c
+++ b/dlls/kernel32/volume.c
@@ -1610,7 +1610,15 @@ UINT WINAPI GetDriveTypeW(LPCWSTR root) /* [in] String describing drive */
HANDLE handle;
UINT ret;
- if (!open_device_root( root, &handle )) return DRIVE_NO_ROOT_DIR;
+ if (!open_device_root( root, &handle ))
+ {
+ /* CD ROM devices do not necessarily have a volume, but a drive type */
+ ret = get_mountmgr_drive_type( root );
+ if (ret == DRIVE_CDROM || ret == DRIVE_REMOVABLE)
+ return ret;
+
+ return DRIVE_NO_ROOT_DIR;
+ }
status = NtQueryVolumeInformationFile( handle, &io, &info, sizeof(info), FileFsDeviceInformation );
NtClose( handle );
--
2.3.3

View File

@ -1,2 +0,0 @@
Fixes: Return correct device type for cd devices without medium
Category: stable

View File

@ -51,11 +51,11 @@ usage()
# Show version information
version()
{
echo "Wine Staging 1.7.43"
echo "Wine Staging 1.7.44 (unreleased)"
echo "Copyright (C) 2014-2015 the Wine Staging project authors."
echo ""
echo "Patchset to be applied on upstream Wine:"
echo " commit 0d91274defcf65093957cf8e43985b9be55642d5"
echo " commit f4790714fe69df7701cff666d6b5ab4be049cbf6"
echo ""
}
@ -132,7 +132,6 @@ patch_enable_all ()
enable_iphlpapi_TCP_Table="$1"
enable_kernel32_CompareStringEx="$1"
enable_kernel32_CopyFileEx="$1"
enable_kernel32_GetDriveTypeW="$1"
enable_kernel32_GetFinalPathNameByHandle="$1"
enable_kernel32_GetLogicalProcessorInformationEx="$1"
enable_kernel32_GetNumaProcessorNode="$1"
@ -463,9 +462,6 @@ patch_enable ()
kernel32-CopyFileEx)
enable_kernel32_CopyFileEx="$2"
;;
kernel32-GetDriveTypeW)
enable_kernel32_GetDriveTypeW="$2"
;;
kernel32-GetFinalPathNameByHandle)
enable_kernel32_GetFinalPathNameByHandle="$2"
;;
@ -1365,9 +1361,6 @@ if test "$enable_category_stable" -eq 1; then
if test "$enable_kernel32_CompareStringEx" -gt 1; then
abort "Patchset kernel32-CompareStringEx disabled, but category-stable depends on that."
fi
if test "$enable_kernel32_GetDriveTypeW" -gt 1; then
abort "Patchset kernel32-GetDriveTypeW disabled, but category-stable depends on that."
fi
if test "$enable_kernel32_GetSystemTimePreciseAsFileTime" -gt 1; then
abort "Patchset kernel32-GetSystemTimePreciseAsFileTime disabled, but category-stable depends on that."
fi
@ -1593,7 +1586,6 @@ if test "$enable_category_stable" -eq 1; then
enable_gdi32_MaxPixelFormats=1
enable_gdiplus_GdipCreateEffect=1
enable_kernel32_CompareStringEx=1
enable_kernel32_GetDriveTypeW=1
enable_kernel32_GetSystemTimePreciseAsFileTime=1
enable_kernel32_Named_Pipe=1
enable_libs_Debug_Channel=1
@ -2766,18 +2758,6 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-wined3d_swapchain_present
# |
# | Modified files:
# | * dlls/wined3d/swapchain.c
# |
if test "$enable_wined3d_wined3d_swapchain_present" -eq 1; then
patch_apply wined3d-wined3d_swapchain_present/0001-wined3d-Silence-repeated-wined3d_swapchain_present-F.patch
(
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated wined3d_swapchain_present FIXME.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-Dirtify_Vertex_Shader
# |
# | This patchset fixes the following Wine bugs:
@ -2866,6 +2846,18 @@ if test "$enable_wined3d_resource_check_usage" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-wined3d_swapchain_present
# |
# | Modified files:
# | * dlls/wined3d/swapchain.c
# |
if test "$enable_wined3d_wined3d_swapchain_present" -eq 1; then
patch_apply wined3d-wined3d_swapchain_present/0001-wined3d-Silence-repeated-wined3d_swapchain_present-F.patch
(
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated wined3d_swapchain_present FIXME.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-CSMT_Main
# |
# | This patchset fixes the following Wine bugs:
@ -3553,26 +3545,12 @@ fi
# | * dlls/kernel32/path.c, dlls/kernel32/tests/file.c
# |
if test "$enable_kernel32_CopyFileEx" -eq 1; then
patch_apply kernel32-CopyFileEx/0001-kernel32-tests-Add-tests-for-delete-behaviour-of-Cop.patch
patch_apply kernel32-CopyFileEx/0002-kernel32-Add-support-for-progress-callback-in-CopyFi.patch
patch_apply kernel32-CopyFileEx/0001-kernel32-Add-support-for-progress-callback-in-CopyFi.patch
(
echo '+ { "Sebastian Lackner", "kernel32/tests: Add tests for delete behaviour of CopyFileEx.", 1 },';
echo '+ { "Michael Müller", "kernel32: Add support for progress callback in CopyFileEx.", 1 },';
) >> "$patchlist"
fi
# Patchset kernel32-GetDriveTypeW
# |
# | Modified files:
# | * dlls/kernel32/volume.c
# |
if test "$enable_kernel32_GetDriveTypeW" -eq 1; then
patch_apply kernel32-GetDriveTypeW/0001-kernel32-Return-correct-device-type-for-cd-devices-w.patch
(
echo '+ { "Michael Müller", "kernel32: Return correct device type for cd devices without medium.", 1 },';
) >> "$patchlist"
fi
# Patchset kernel32-GetFinalPathNameByHandle
# |
# | This patchset fixes the following Wine bugs:

View File

@ -1,19 +1,19 @@
From 175a4595dc5d24c586d6715a3ba8c90b094e26b4 Mon Sep 17 00:00:00 2001
From db292bf18161a88ac2760aa6dcfb82a14906da67 Mon Sep 17 00:00:00 2001
From: Jactry Zeng <wine@jactry.com>
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 | 351 +++++++++++++++++++++++++++++++++++++++---
dlls/riched20/richole.c | 362 +++++++++++++++++++++++++++++++++++++++---
dlls/riched20/tests/richole.c | 93 +++++++++++
2 files changed, 424 insertions(+), 20 deletions(-)
2 files changed, 433 insertions(+), 22 deletions(-)
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
index 55dda9b..d5ecf52 100644
index b3566e5..3623ec7 100644
--- a/dlls/riched20/richole.c
+++ b/dlls/riched20/richole.c
@@ -51,6 +51,7 @@ DEFINE_GUID(IID_ITextPara, 0x8cc497c4, 0xa1df, 0x11ce, 0x80, 0x98, 0x00, 0xaa, 0
@@ -52,6 +52,7 @@ DEFINE_GUID(IID_ITextPara, 0x8cc497c4, 0xa1df, 0x11ce, 0x80, 0x98, 0x00, 0xaa, 0
typedef struct ITextSelectionImpl ITextSelectionImpl;
typedef struct IOleClientSiteImpl IOleClientSiteImpl;
typedef struct ITextRangeImpl ITextRangeImpl;
@ -21,7 +21,7 @@ index 55dda9b..d5ecf52 100644
typedef struct IRichEditOleImpl {
IUnknown IUnknown_inner;
@@ -63,6 +64,7 @@ typedef struct IRichEditOleImpl {
@@ -64,6 +65,7 @@ typedef struct IRichEditOleImpl {
ITextSelectionImpl *txtSel;
IOleClientSiteImpl *clientSite;
struct list rangelist;
@ -29,7 +29,7 @@ index 55dda9b..d5ecf52 100644
} IRichEditOleImpl;
struct ITextRangeImpl {
@@ -84,8 +86,11 @@ struct ITextSelectionImpl {
@@ -85,8 +87,11 @@ struct ITextSelectionImpl {
typedef struct ITextFontImpl {
ITextFont ITextFont_iface;
LONG ref;
@ -42,7 +42,7 @@ index 55dda9b..d5ecf52 100644
} ITextFontImpl;
typedef struct ITextParaImpl {
@@ -144,7 +149,7 @@ static inline ITextParaImpl *impl_from_ITextPara(ITextPara *iface)
@@ -150,7 +155,7 @@ static inline ITextParaImpl *impl_from_ITextPara(ITextPara *iface)
return CONTAINING_RECORD(iface, ITextParaImpl, ITextPara_iface);
}
@ -50,8 +50,19 @@ index 55dda9b..d5ecf52 100644
+static HRESULT create_textfont(IRichEditOleImpl *, ITextFontImpl **);
static HRESULT create_textpara(ITextRange*, ITextPara**);
static HRESULT WINAPI IRichEditOleImpl_inner_fnQueryInterface(IUnknown *iface, REFIID riid, LPVOID *ppvObj)
@@ -190,6 +195,7 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
enum textfont_prop_id {
@@ -238,9 +243,8 @@ static HRESULT get_textfont_prop_for_pos(const IRichEditOleImpl *reole, int pos,
return S_OK;
}
-static HRESULT get_textfont_prop(ITextRange *range, enum textfont_prop_id propid, LONG *value)
+static HRESULT get_textfont_prop(ITextRangeImpl *rng, enum textfont_prop_id propid, LONG *value)
{
- ITextRangeImpl *rng = impl_from_ITextRange(range);
HRESULT hr;
LONG v;
int i;
@@ -316,6 +320,7 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
if (!ref)
{
ITextRangeImpl *txtRge;
@ -59,7 +70,7 @@ index 55dda9b..d5ecf52 100644
TRACE("Destroying %p\n", This);
This->txtSel->reOle = NULL;
@@ -198,6 +204,8 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
@@ -324,6 +329,8 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
IOleClientSite_Release(&This->clientSite->IOleClientSite_iface);
LIST_FOR_EACH_ENTRY(txtRge, &This->rangelist, ITextRangeImpl, entry)
txtRge->reOle = NULL;
@ -68,7 +79,7 @@ index 55dda9b..d5ecf52 100644
heap_free(This);
}
return ref;
@@ -978,6 +986,8 @@ static HRESULT WINAPI ITextRange_fnSetEnd(ITextRange *me, LONG end)
@@ -1099,6 +1106,8 @@ static HRESULT WINAPI ITextRange_fnSetEnd(ITextRange *me, LONG end)
static HRESULT WINAPI ITextRange_fnGetFont(ITextRange *me, ITextFont **font)
{
ITextRangeImpl *This = impl_from_ITextRange(me);
@ -77,7 +88,7 @@ index 55dda9b..d5ecf52 100644
TRACE("(%p)->(%p)\n", This, font);
@@ -987,7 +997,16 @@ static HRESULT WINAPI ITextRange_fnGetFont(ITextRange *me, ITextFont **font)
@@ -1108,7 +1117,16 @@ static HRESULT WINAPI ITextRange_fnGetFont(ITextRange *me, ITextFont **font)
if (!font)
return E_INVALIDARG;
@ -95,7 +106,7 @@ index 55dda9b..d5ecf52 100644
}
static HRESULT WINAPI ITextRange_fnSetFont(ITextRange *me, ITextFont *pFont)
@@ -1511,7 +1530,14 @@ static ULONG WINAPI TextFont_Release(ITextFont *iface)
@@ -1632,7 +1650,14 @@ static ULONG WINAPI TextFont_Release(ITextFont *iface)
if (!ref)
{
@ -111,7 +122,7 @@ index 55dda9b..d5ecf52 100644
heap_free(This);
}
@@ -1520,7 +1546,12 @@ static ULONG WINAPI TextFont_Release(ITextFont *iface)
@@ -1641,7 +1666,12 @@ static ULONG WINAPI TextFont_Release(ITextFont *iface)
static HRESULT WINAPI TextFont_GetTypeInfoCount(ITextFont *iface, UINT *pctinfo)
{
@ -124,7 +135,7 @@ index 55dda9b..d5ecf52 100644
*pctinfo = 0;
return E_NOTIMPL;
}
@@ -1528,14 +1559,24 @@ static HRESULT WINAPI TextFont_GetTypeInfoCount(ITextFont *iface, UINT *pctinfo)
@@ -1649,14 +1679,24 @@ static HRESULT WINAPI TextFont_GetTypeInfoCount(ITextFont *iface, UINT *pctinfo)
static HRESULT WINAPI TextFont_GetTypeInfo(ITextFont *iface, UINT iTInfo, LCID lcid,
ITypeInfo **ppTInfo)
{
@ -149,7 +160,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1550,7 +1591,12 @@ static HRESULT WINAPI TextFont_Invoke(
@@ -1671,7 +1711,12 @@ static HRESULT WINAPI TextFont_Invoke(
EXCEPINFO *pExcepInfo,
UINT *puArgErr)
{
@ -162,7 +173,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1558,6 +1604,10 @@ static HRESULT WINAPI TextFont_GetDuplicate(ITextFont *iface, ITextFont **ret)
@@ -1679,6 +1724,10 @@ static HRESULT WINAPI TextFont_GetDuplicate(ITextFont *iface, ITextFont **ret)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, ret);
@ -173,7 +184,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1565,6 +1615,10 @@ static HRESULT WINAPI TextFont_SetDuplicate(ITextFont *iface, ITextFont *pFont)
@@ -1686,6 +1735,10 @@ static HRESULT WINAPI TextFont_SetDuplicate(ITextFont *iface, ITextFont *pFont)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, pFont);
@ -184,7 +195,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1572,6 +1626,10 @@ static HRESULT WINAPI TextFont_CanChange(ITextFont *iface, LONG *ret)
@@ -1693,6 +1746,10 @@ static HRESULT WINAPI TextFont_CanChange(ITextFont *iface, LONG *ret)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, ret);
@ -195,7 +206,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1579,6 +1637,10 @@ static HRESULT WINAPI TextFont_IsEqual(ITextFont *iface, ITextFont *font, LONG *
@@ -1700,6 +1757,10 @@ static HRESULT WINAPI TextFont_IsEqual(ITextFont *iface, ITextFont *font, LONG *
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, ret);
@ -206,7 +217,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1586,6 +1648,10 @@ static HRESULT WINAPI TextFont_Reset(ITextFont *iface, LONG value)
@@ -1707,6 +1768,10 @@ static HRESULT WINAPI TextFont_Reset(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p): stub\n", This);
@ -217,7 +228,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1593,6 +1659,10 @@ static HRESULT WINAPI TextFont_GetStyle(ITextFont *iface, LONG *value)
@@ -1714,6 +1779,10 @@ static HRESULT WINAPI TextFont_GetStyle(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -228,7 +239,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1600,6 +1670,10 @@ static HRESULT WINAPI TextFont_SetStyle(ITextFont *iface, LONG value)
@@ -1721,6 +1790,10 @@ static HRESULT WINAPI TextFont_SetStyle(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -239,7 +250,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1607,6 +1681,10 @@ static HRESULT WINAPI TextFont_GetAllCaps(ITextFont *iface, LONG *value)
@@ -1728,6 +1801,10 @@ static HRESULT WINAPI TextFont_GetAllCaps(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -250,7 +261,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1614,6 +1692,10 @@ static HRESULT WINAPI TextFont_SetAllCaps(ITextFont *iface, LONG value)
@@ -1735,6 +1812,10 @@ static HRESULT WINAPI TextFont_SetAllCaps(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -261,7 +272,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1621,6 +1703,10 @@ static HRESULT WINAPI TextFont_GetAnimation(ITextFont *iface, LONG *value)
@@ -1742,6 +1823,10 @@ static HRESULT WINAPI TextFont_GetAnimation(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -272,7 +283,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1628,6 +1714,10 @@ static HRESULT WINAPI TextFont_SetAnimation(ITextFont *iface, LONG value)
@@ -1749,6 +1834,10 @@ static HRESULT WINAPI TextFont_SetAnimation(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -283,7 +294,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1635,6 +1725,10 @@ static HRESULT WINAPI TextFont_GetBackColor(ITextFont *iface, LONG *value)
@@ -1756,6 +1845,10 @@ static HRESULT WINAPI TextFont_GetBackColor(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -294,7 +305,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1642,6 +1736,10 @@ static HRESULT WINAPI TextFont_SetBackColor(ITextFont *iface, LONG value)
@@ -1763,6 +1856,10 @@ static HRESULT WINAPI TextFont_SetBackColor(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -305,19 +316,23 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1649,13 +1747,24 @@ static HRESULT WINAPI TextFont_GetBold(ITextFont *iface, LONG *value)
@@ -1770,13 +1867,28 @@ static HRESULT WINAPI TextFont_GetBold(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
- return E_NOTIMPL;
TRACE("(%p)->(%p)\n", This, value);
- return get_textfont_prop(This->range, FONT_BOLD, value);
+
+ if (!value)
+ return E_INVALIDARG;
+ if (!This->reOle)
+ return CO_E_RELEASED;
+ if (!This->txtRge)
+ {
+ FIXME("not implemented\n");
+ return E_NOTIMPL;
+ }
+
+ *value = tomFalse;
+ return S_OK;
+ return get_textfont_prop(This->txtRge, FONT_BOLD, value);
}
static HRESULT WINAPI TextFont_SetBold(ITextFont *iface, LONG value)
@ -331,7 +346,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1663,6 +1772,10 @@ static HRESULT WINAPI TextFont_GetEmboss(ITextFont *iface, LONG *value)
@@ -1784,6 +1896,10 @@ static HRESULT WINAPI TextFont_GetEmboss(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -342,7 +357,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1670,6 +1783,10 @@ static HRESULT WINAPI TextFont_SetEmboss(ITextFont *iface, LONG value)
@@ -1791,6 +1907,10 @@ static HRESULT WINAPI TextFont_SetEmboss(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -353,7 +368,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1677,13 +1794,24 @@ static HRESULT WINAPI TextFont_GetForeColor(ITextFont *iface, LONG *value)
@@ -1798,13 +1918,24 @@ static HRESULT WINAPI TextFont_GetForeColor(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -379,7 +394,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1691,6 +1819,10 @@ static HRESULT WINAPI TextFont_GetHidden(ITextFont *iface, LONG *value)
@@ -1812,6 +1943,10 @@ static HRESULT WINAPI TextFont_GetHidden(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -390,7 +405,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1698,6 +1830,10 @@ static HRESULT WINAPI TextFont_SetHidden(ITextFont *iface, LONG value)
@@ -1819,6 +1954,10 @@ static HRESULT WINAPI TextFont_SetHidden(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -401,7 +416,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1705,6 +1841,10 @@ static HRESULT WINAPI TextFont_GetEngrave(ITextFont *iface, LONG *value)
@@ -1826,6 +1965,10 @@ static HRESULT WINAPI TextFont_GetEngrave(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -412,7 +427,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1712,6 +1852,10 @@ static HRESULT WINAPI TextFont_SetEngrave(ITextFont *iface, LONG value)
@@ -1833,6 +1976,10 @@ static HRESULT WINAPI TextFont_SetEngrave(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -423,19 +438,23 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1719,13 +1863,24 @@ static HRESULT WINAPI TextFont_GetItalic(ITextFont *iface, LONG *value)
@@ -1840,13 +1987,28 @@ static HRESULT WINAPI TextFont_GetItalic(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
- return E_NOTIMPL;
TRACE("(%p)->(%p)\n", This, value);
- return get_textfont_prop(This->range, FONT_ITALIC, value);
+
+ if (!value)
+ return E_INVALIDARG;
+ if (!This->reOle)
+ return CO_E_RELEASED;
+ if (!This->txtRge)
+ {
+ FIXME("not implemented\n");
+ return E_NOTIMPL;
+ }
+
+ *value = tomFalse;
+ return S_OK;
+ return get_textfont_prop(This->txtRge, FONT_ITALIC, value);
}
static HRESULT WINAPI TextFont_SetItalic(ITextFont *iface, LONG value)
@ -449,7 +468,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1733,6 +1888,10 @@ static HRESULT WINAPI TextFont_GetKerning(ITextFont *iface, FLOAT *value)
@@ -1854,6 +2016,10 @@ static HRESULT WINAPI TextFont_GetKerning(ITextFont *iface, FLOAT *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -460,7 +479,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1740,6 +1899,10 @@ static HRESULT WINAPI TextFont_SetKerning(ITextFont *iface, FLOAT value)
@@ -1861,6 +2027,10 @@ static HRESULT WINAPI TextFont_SetKerning(ITextFont *iface, FLOAT value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%.2f): stub\n", This, value);
@ -471,7 +490,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1747,6 +1910,10 @@ static HRESULT WINAPI TextFont_GetLanguageID(ITextFont *iface, LONG *value)
@@ -1868,6 +2038,10 @@ static HRESULT WINAPI TextFont_GetLanguageID(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -482,7 +501,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1754,20 +1921,37 @@ static HRESULT WINAPI TextFont_SetLanguageID(ITextFont *iface, LONG value)
@@ -1875,20 +2049,37 @@ static HRESULT WINAPI TextFont_SetLanguageID(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -521,7 +540,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1775,6 +1959,10 @@ static HRESULT WINAPI TextFont_GetOutline(ITextFont *iface, LONG *value)
@@ -1896,6 +2087,10 @@ static HRESULT WINAPI TextFont_GetOutline(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -532,7 +551,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1782,6 +1970,10 @@ static HRESULT WINAPI TextFont_SetOutline(ITextFont *iface, LONG value)
@@ -1903,6 +2098,10 @@ static HRESULT WINAPI TextFont_SetOutline(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -543,7 +562,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1789,6 +1981,10 @@ static HRESULT WINAPI TextFont_GetPosition(ITextFont *iface, FLOAT *value)
@@ -1910,6 +2109,10 @@ static HRESULT WINAPI TextFont_GetPosition(ITextFont *iface, FLOAT *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -554,7 +573,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1796,6 +1992,10 @@ static HRESULT WINAPI TextFont_SetPosition(ITextFont *iface, FLOAT value)
@@ -1917,6 +2120,10 @@ static HRESULT WINAPI TextFont_SetPosition(ITextFont *iface, FLOAT value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%.2f): stub\n", This, value);
@ -565,7 +584,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1803,6 +2003,10 @@ static HRESULT WINAPI TextFont_GetProtected(ITextFont *iface, LONG *value)
@@ -1924,6 +2131,10 @@ static HRESULT WINAPI TextFont_GetProtected(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -576,7 +595,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1810,6 +2014,10 @@ static HRESULT WINAPI TextFont_SetProtected(ITextFont *iface, LONG value)
@@ -1931,6 +2142,10 @@ static HRESULT WINAPI TextFont_SetProtected(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -587,7 +606,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1817,6 +2025,10 @@ static HRESULT WINAPI TextFont_GetShadow(ITextFont *iface, LONG *value)
@@ -1938,6 +2153,10 @@ static HRESULT WINAPI TextFont_GetShadow(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -598,7 +617,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1824,6 +2036,10 @@ static HRESULT WINAPI TextFont_SetShadow(ITextFont *iface, LONG value)
@@ -1945,6 +2164,10 @@ static HRESULT WINAPI TextFont_SetShadow(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -609,7 +628,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1831,13 +2047,24 @@ static HRESULT WINAPI TextFont_GetSize(ITextFont *iface, FLOAT *value)
@@ -1952,13 +2175,24 @@ static HRESULT WINAPI TextFont_GetSize(ITextFont *iface, FLOAT *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -635,7 +654,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1845,6 +2072,10 @@ static HRESULT WINAPI TextFont_GetSmallCaps(ITextFont *iface, LONG *value)
@@ -1966,6 +2200,10 @@ static HRESULT WINAPI TextFont_GetSmallCaps(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -646,7 +665,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1852,6 +2083,10 @@ static HRESULT WINAPI TextFont_SetSmallCaps(ITextFont *iface, LONG value)
@@ -1973,6 +2211,10 @@ static HRESULT WINAPI TextFont_SetSmallCaps(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -657,7 +676,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1859,6 +2094,10 @@ static HRESULT WINAPI TextFont_GetSpacing(ITextFont *iface, FLOAT *value)
@@ -1980,6 +2222,10 @@ static HRESULT WINAPI TextFont_GetSpacing(ITextFont *iface, FLOAT *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -668,7 +687,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1866,6 +2105,10 @@ static HRESULT WINAPI TextFont_SetSpacing(ITextFont *iface, FLOAT value)
@@ -1987,6 +2233,10 @@ static HRESULT WINAPI TextFont_SetSpacing(ITextFont *iface, FLOAT value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%.2f): stub\n", This, value);
@ -679,7 +698,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1873,13 +2116,24 @@ static HRESULT WINAPI TextFont_GetStrikeThrough(ITextFont *iface, LONG *value)
@@ -1994,13 +2244,24 @@ static HRESULT WINAPI TextFont_GetStrikeThrough(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -705,7 +724,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1887,13 +2141,24 @@ static HRESULT WINAPI TextFont_GetSubscript(ITextFont *iface, LONG *value)
@@ -2008,13 +2269,24 @@ static HRESULT WINAPI TextFont_GetSubscript(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -731,7 +750,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1901,13 +2166,24 @@ static HRESULT WINAPI TextFont_GetSuperscript(ITextFont *iface, LONG *value)
@@ -2022,13 +2294,24 @@ static HRESULT WINAPI TextFont_GetSuperscript(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -757,7 +776,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1915,13 +2191,24 @@ static HRESULT WINAPI TextFont_GetUnderline(ITextFont *iface, LONG *value)
@@ -2036,13 +2319,24 @@ static HRESULT WINAPI TextFont_GetUnderline(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -783,7 +802,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1929,6 +2216,10 @@ static HRESULT WINAPI TextFont_GetWeight(ITextFont *iface, LONG *value)
@@ -2050,6 +2344,10 @@ static HRESULT WINAPI TextFont_GetWeight(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -794,7 +813,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -1936,6 +2227,10 @@ static HRESULT WINAPI TextFont_SetWeight(ITextFont *iface, LONG value)
@@ -2057,6 +2355,10 @@ static HRESULT WINAPI TextFont_SetWeight(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -805,7 +824,7 @@ index 55dda9b..d5ecf52 100644
return E_NOTIMPL;
}
@@ -2004,21 +2299,20 @@ static ITextFontVtbl textfontvtbl = {
@@ -2125,21 +2427,20 @@ static ITextFontVtbl textfontvtbl = {
TextFont_SetWeight
};
@ -831,7 +850,7 @@ index 55dda9b..d5ecf52 100644
return S_OK;
}
@@ -3070,11 +3364,27 @@ static HRESULT WINAPI ITextSelection_fnSetEnd(ITextSelection *me, LONG cpLim)
@@ -3191,11 +3492,27 @@ static HRESULT WINAPI ITextSelection_fnSetEnd(ITextSelection *me, LONG cpLim)
static HRESULT WINAPI ITextSelection_fnGetFont(ITextSelection *me, ITextFont **pFont)
{
ITextSelectionImpl *This = impl_from_ITextSelection(me);
@ -861,7 +880,7 @@ index 55dda9b..d5ecf52 100644
}
static HRESULT WINAPI ITextSelection_fnSetFont(ITextSelection *me, ITextFont *pFont)
@@ -3708,6 +4018,7 @@ LRESULT CreateIRichEditOle(IUnknown *outer_unk, ME_TextEditor *editor, LPVOID *p
@@ -3829,6 +4146,7 @@ LRESULT CreateIRichEditOle(IUnknown *outer_unk, ME_TextEditor *editor, LPVOID *p
}
TRACE("Created %p\n",reo);
list_init(&reo->rangelist);
@ -870,10 +889,10 @@ index 55dda9b..d5ecf52 100644
reo->outer_unk = outer_unk;
else
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
index 9a52f78..c52653f 100644
index e9ae68b..070b05a 100644
--- a/dlls/riched20/tests/richole.c
+++ b/dlls/riched20/tests/richole.c
@@ -1478,6 +1478,97 @@ static void test_ITextSelection_SetEnd(void)
@@ -1506,6 +1506,97 @@ static void test_ITextSelection_SetEnd(void)
release_interfaces(&w, &reOle, &txtDoc, &txtSel);
}
@ -971,7 +990,7 @@ index 9a52f78..c52653f 100644
START_TEST(richole)
{
/* Must explicitly LoadLibrary(). The test has no references to functions in
@@ -1493,6 +1584,7 @@ START_TEST(richole)
@@ -1521,6 +1612,7 @@ START_TEST(richole)
test_ITextSelection_SetStart();
test_ITextSelection_SetEnd();
test_ITextSelection_Collapse();
@ -979,7 +998,7 @@ index 9a52f78..c52653f 100644
test_ITextDocument_Range();
test_ITextRange_GetChar();
test_ITextRange_GetStart_GetEnd();
@@ -1500,6 +1592,7 @@ START_TEST(richole)
@@ -1528,6 +1620,7 @@ START_TEST(richole)
test_ITextRange_Collapse();
test_ITextRange_SetStart();
test_ITextRange_SetEnd();

View File

@ -1,4 +1,4 @@
From c3bde6240c5e45eaca9a25e1e7f0b4b640325b19 Mon Sep 17 00:00:00 2001
From bc105d05c98bd8d4524ad67d9e95ab88bca4135b Mon Sep 17 00:00:00 2001
From: Jactry Zeng <wine@jactry.com>
Date: Sun, 10 Aug 2014 22:17:57 +0800
Subject: riched20: Stub for ITextPara interface and implement
@ -10,10 +10,10 @@ Subject: riched20: Stub for ITextPara interface and implement
2 files changed, 294 insertions(+), 9 deletions(-)
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
index d5ecf52..409f3e8 100644
index 3623ec7..0e51c50 100644
--- a/dlls/riched20/richole.c
+++ b/dlls/riched20/richole.c
@@ -52,6 +52,7 @@ typedef struct ITextSelectionImpl ITextSelectionImpl;
@@ -53,6 +53,7 @@ typedef struct ITextSelectionImpl ITextSelectionImpl;
typedef struct IOleClientSiteImpl IOleClientSiteImpl;
typedef struct ITextRangeImpl ITextRangeImpl;
typedef struct ITextFontImpl ITextFontImpl;
@ -21,7 +21,7 @@ index d5ecf52..409f3e8 100644
typedef struct IRichEditOleImpl {
IUnknown IUnknown_inner;
@@ -65,6 +66,7 @@ typedef struct IRichEditOleImpl {
@@ -66,6 +67,7 @@ typedef struct IRichEditOleImpl {
IOleClientSiteImpl *clientSite;
struct list rangelist;
struct list fontlist;
@ -29,7 +29,7 @@ index d5ecf52..409f3e8 100644
} IRichEditOleImpl;
struct ITextRangeImpl {
@@ -96,8 +98,11 @@ typedef struct ITextFontImpl {
@@ -97,8 +99,11 @@ typedef struct ITextFontImpl {
typedef struct ITextParaImpl {
ITextPara ITextPara_iface;
LONG ref;
@ -42,16 +42,16 @@ index d5ecf52..409f3e8 100644
} ITextParaImpl;
struct IOleClientSiteImpl {
@@ -150,7 +155,7 @@ static inline ITextParaImpl *impl_from_ITextPara(ITextPara *iface)
@@ -156,7 +161,7 @@ static inline ITextParaImpl *impl_from_ITextPara(ITextPara *iface)
}
static HRESULT create_textfont(IRichEditOleImpl *, ITextFontImpl **);
-static HRESULT create_textpara(ITextRange*, ITextPara**);
+static HRESULT create_textpara(IRichEditOleImpl *, ITextParaImpl **);
static HRESULT WINAPI IRichEditOleImpl_inner_fnQueryInterface(IUnknown *iface, REFIID riid, LPVOID *ppvObj)
{
@@ -196,6 +201,7 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
enum textfont_prop_id {
FONT_ALLCAPS = 0,
@@ -321,6 +326,7 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
{
ITextRangeImpl *txtRge;
ITextFontImpl *txtFont;
@ -59,7 +59,7 @@ index d5ecf52..409f3e8 100644
TRACE("Destroying %p\n", This);
This->txtSel->reOle = NULL;
@@ -206,6 +212,8 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
@@ -331,6 +337,8 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
txtRge->reOle = NULL;
LIST_FOR_EACH_ENTRY(txtFont, &This->fontlist, ITextFontImpl, entry)
txtFont->reOle = NULL;
@ -68,7 +68,7 @@ index d5ecf52..409f3e8 100644
heap_free(This);
}
return ref;
@@ -1022,6 +1030,8 @@ static HRESULT WINAPI ITextRange_fnSetFont(ITextRange *me, ITextFont *pFont)
@@ -1142,6 +1150,8 @@ static HRESULT WINAPI ITextRange_fnSetFont(ITextRange *me, ITextFont *pFont)
static HRESULT WINAPI ITextRange_fnGetPara(ITextRange *me, ITextPara **para)
{
ITextRangeImpl *This = impl_from_ITextRange(me);
@ -77,7 +77,7 @@ index d5ecf52..409f3e8 100644
TRACE("(%p)->(%p)\n", This, para);
@@ -1031,7 +1041,16 @@ static HRESULT WINAPI ITextRange_fnGetPara(ITextRange *me, ITextPara **para)
@@ -1151,7 +1161,16 @@ static HRESULT WINAPI ITextRange_fnGetPara(ITextRange *me, ITextPara **para)
if (!para)
return E_INVALIDARG;
@ -95,7 +95,7 @@ index d5ecf52..409f3e8 100644
}
static HRESULT WINAPI ITextRange_fnSetPara(ITextRange *me, ITextPara *pPara)
@@ -2353,7 +2372,14 @@ static ULONG WINAPI TextPara_Release(ITextPara *iface)
@@ -2481,7 +2500,14 @@ static ULONG WINAPI TextPara_Release(ITextPara *iface)
if (!ref)
{
@ -111,7 +111,7 @@ index d5ecf52..409f3e8 100644
heap_free(This);
}
@@ -2362,7 +2388,12 @@ static ULONG WINAPI TextPara_Release(ITextPara *iface)
@@ -2490,7 +2516,12 @@ static ULONG WINAPI TextPara_Release(ITextPara *iface)
static HRESULT WINAPI TextPara_GetTypeInfoCount(ITextPara *iface, UINT *pctinfo)
{
@ -124,7 +124,7 @@ index d5ecf52..409f3e8 100644
*pctinfo = 0;
return E_NOTIMPL;
}
@@ -2370,14 +2401,24 @@ static HRESULT WINAPI TextPara_GetTypeInfoCount(ITextPara *iface, UINT *pctinfo)
@@ -2498,14 +2529,24 @@ static HRESULT WINAPI TextPara_GetTypeInfoCount(ITextPara *iface, UINT *pctinfo)
static HRESULT WINAPI TextPara_GetTypeInfo(ITextPara *iface, UINT iTInfo, LCID lcid,
ITypeInfo **ppTInfo)
{
@ -149,7 +149,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2392,7 +2433,12 @@ static HRESULT WINAPI TextPara_Invoke(
@@ -2520,7 +2561,12 @@ static HRESULT WINAPI TextPara_Invoke(
EXCEPINFO *pExcepInfo,
UINT *puArgErr)
{
@ -162,7 +162,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2400,6 +2446,10 @@ static HRESULT WINAPI TextPara_GetDuplicate(ITextPara *iface, ITextPara **ret)
@@ -2528,6 +2574,10 @@ static HRESULT WINAPI TextPara_GetDuplicate(ITextPara *iface, ITextPara **ret)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, ret);
@ -173,7 +173,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2407,6 +2457,10 @@ static HRESULT WINAPI TextPara_SetDuplicate(ITextPara *iface, ITextPara *para)
@@ -2535,6 +2585,10 @@ static HRESULT WINAPI TextPara_SetDuplicate(ITextPara *iface, ITextPara *para)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, para);
@ -184,7 +184,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2414,6 +2468,10 @@ static HRESULT WINAPI TextPara_CanChange(ITextPara *iface, LONG *ret)
@@ -2542,6 +2596,10 @@ static HRESULT WINAPI TextPara_CanChange(ITextPara *iface, LONG *ret)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, ret);
@ -195,7 +195,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2421,6 +2479,10 @@ static HRESULT WINAPI TextPara_IsEqual(ITextPara *iface, ITextPara *para, LONG *
@@ -2549,6 +2607,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);
@ -206,7 +206,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2428,6 +2490,10 @@ static HRESULT WINAPI TextPara_Reset(ITextPara *iface, LONG value)
@@ -2556,6 +2618,10 @@ static HRESULT WINAPI TextPara_Reset(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -217,7 +217,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2435,6 +2501,10 @@ static HRESULT WINAPI TextPara_GetStyle(ITextPara *iface, LONG *value)
@@ -2563,6 +2629,10 @@ static HRESULT WINAPI TextPara_GetStyle(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -228,7 +228,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2442,6 +2512,10 @@ static HRESULT WINAPI TextPara_SetStyle(ITextPara *iface, LONG value)
@@ -2570,6 +2640,10 @@ static HRESULT WINAPI TextPara_SetStyle(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -239,7 +239,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2449,6 +2523,10 @@ static HRESULT WINAPI TextPara_GetAlignment(ITextPara *iface, LONG *value)
@@ -2577,6 +2651,10 @@ static HRESULT WINAPI TextPara_GetAlignment(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -250,7 +250,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2456,6 +2534,10 @@ static HRESULT WINAPI TextPara_SetAlignment(ITextPara *iface, LONG value)
@@ -2584,6 +2662,10 @@ static HRESULT WINAPI TextPara_SetAlignment(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -261,7 +261,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2463,6 +2545,10 @@ static HRESULT WINAPI TextPara_GetHyphenation(ITextPara *iface, LONG *value)
@@ -2591,6 +2673,10 @@ static HRESULT WINAPI TextPara_GetHyphenation(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -272,7 +272,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2470,6 +2556,10 @@ static HRESULT WINAPI TextPara_SetHyphenation(ITextPara *iface, LONG value)
@@ -2598,6 +2684,10 @@ static HRESULT WINAPI TextPara_SetHyphenation(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -283,7 +283,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2477,6 +2567,10 @@ static HRESULT WINAPI TextPara_GetFirstLineIndent(ITextPara *iface, FLOAT *value
@@ -2605,6 +2695,10 @@ static HRESULT WINAPI TextPara_GetFirstLineIndent(ITextPara *iface, FLOAT *value
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -294,7 +294,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2484,6 +2578,10 @@ static HRESULT WINAPI TextPara_GetKeepTogether(ITextPara *iface, LONG *value)
@@ -2612,6 +2706,10 @@ static HRESULT WINAPI TextPara_GetKeepTogether(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -305,7 +305,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2491,6 +2589,10 @@ static HRESULT WINAPI TextPara_SetKeepTogether(ITextPara *iface, LONG value)
@@ -2619,6 +2717,10 @@ static HRESULT WINAPI TextPara_SetKeepTogether(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -316,7 +316,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2498,6 +2600,10 @@ static HRESULT WINAPI TextPara_GetKeepWithNext(ITextPara *iface, LONG *value)
@@ -2626,6 +2728,10 @@ static HRESULT WINAPI TextPara_GetKeepWithNext(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -327,7 +327,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2505,6 +2611,10 @@ static HRESULT WINAPI TextPara_SetKeepWithNext(ITextPara *iface, LONG value)
@@ -2633,6 +2739,10 @@ static HRESULT WINAPI TextPara_SetKeepWithNext(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -338,7 +338,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2512,6 +2622,10 @@ static HRESULT WINAPI TextPara_GetLeftIndent(ITextPara *iface, FLOAT *value)
@@ -2640,6 +2750,10 @@ static HRESULT WINAPI TextPara_GetLeftIndent(ITextPara *iface, FLOAT *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -349,7 +349,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2519,6 +2633,10 @@ static HRESULT WINAPI TextPara_GetLineSpacing(ITextPara *iface, FLOAT *value)
@@ -2647,6 +2761,10 @@ static HRESULT WINAPI TextPara_GetLineSpacing(ITextPara *iface, FLOAT *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -360,7 +360,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2526,6 +2644,10 @@ static HRESULT WINAPI TextPara_GetLineSpacingRule(ITextPara *iface, LONG *value)
@@ -2654,6 +2772,10 @@ static HRESULT WINAPI TextPara_GetLineSpacingRule(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -371,7 +371,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2533,6 +2655,10 @@ static HRESULT WINAPI TextPara_GetListAlignment(ITextPara *iface, LONG *value)
@@ -2661,6 +2783,10 @@ static HRESULT WINAPI TextPara_GetListAlignment(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -382,7 +382,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2540,6 +2666,10 @@ static HRESULT WINAPI TextPara_SetListAlignment(ITextPara *iface, LONG value)
@@ -2668,6 +2794,10 @@ static HRESULT WINAPI TextPara_SetListAlignment(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -393,7 +393,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2547,6 +2677,10 @@ static HRESULT WINAPI TextPara_GetListLevelIndex(ITextPara *iface, LONG *value)
@@ -2675,6 +2805,10 @@ static HRESULT WINAPI TextPara_GetListLevelIndex(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -404,7 +404,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2554,6 +2688,10 @@ static HRESULT WINAPI TextPara_SetListLevelIndex(ITextPara *iface, LONG value)
@@ -2682,6 +2816,10 @@ static HRESULT WINAPI TextPara_SetListLevelIndex(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -415,7 +415,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2561,6 +2699,10 @@ static HRESULT WINAPI TextPara_GetListStart(ITextPara *iface, LONG *value)
@@ -2689,6 +2827,10 @@ static HRESULT WINAPI TextPara_GetListStart(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -426,7 +426,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2568,6 +2710,10 @@ static HRESULT WINAPI TextPara_SetListStart(ITextPara *iface, LONG value)
@@ -2696,6 +2838,10 @@ static HRESULT WINAPI TextPara_SetListStart(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -437,7 +437,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2575,6 +2721,10 @@ static HRESULT WINAPI TextPara_GetListTab(ITextPara *iface, FLOAT *value)
@@ -2703,6 +2849,10 @@ static HRESULT WINAPI TextPara_GetListTab(ITextPara *iface, FLOAT *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -448,7 +448,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2582,6 +2732,10 @@ static HRESULT WINAPI TextPara_SetListTab(ITextPara *iface, FLOAT value)
@@ -2710,6 +2860,10 @@ static HRESULT WINAPI TextPara_SetListTab(ITextPara *iface, FLOAT value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%.2f)\n", This, value);
@ -459,7 +459,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2589,6 +2743,10 @@ static HRESULT WINAPI TextPara_GetListType(ITextPara *iface, LONG *value)
@@ -2717,6 +2871,10 @@ static HRESULT WINAPI TextPara_GetListType(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -470,7 +470,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2596,6 +2754,10 @@ static HRESULT WINAPI TextPara_SetListType(ITextPara *iface, LONG value)
@@ -2724,6 +2882,10 @@ static HRESULT WINAPI TextPara_SetListType(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -481,7 +481,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2603,6 +2765,10 @@ static HRESULT WINAPI TextPara_GetNoLineNumber(ITextPara *iface, LONG *value)
@@ -2731,6 +2893,10 @@ static HRESULT WINAPI TextPara_GetNoLineNumber(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -492,7 +492,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2610,6 +2776,10 @@ static HRESULT WINAPI TextPara_SetNoLineNumber(ITextPara *iface, LONG value)
@@ -2738,6 +2904,10 @@ static HRESULT WINAPI TextPara_SetNoLineNumber(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -503,7 +503,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2617,6 +2787,10 @@ static HRESULT WINAPI TextPara_GetPageBreakBefore(ITextPara *iface, LONG *value)
@@ -2745,6 +2915,10 @@ static HRESULT WINAPI TextPara_GetPageBreakBefore(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -514,7 +514,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2624,6 +2798,10 @@ static HRESULT WINAPI TextPara_SetPageBreakBefore(ITextPara *iface, LONG value)
@@ -2752,6 +2926,10 @@ static HRESULT WINAPI TextPara_SetPageBreakBefore(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -525,7 +525,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2631,6 +2809,10 @@ static HRESULT WINAPI TextPara_GetRightIndent(ITextPara *iface, FLOAT *value)
@@ -2759,6 +2937,10 @@ static HRESULT WINAPI TextPara_GetRightIndent(ITextPara *iface, FLOAT *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -536,7 +536,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2638,6 +2820,10 @@ static HRESULT WINAPI TextPara_SetRightIndent(ITextPara *iface, FLOAT value)
@@ -2766,6 +2948,10 @@ static HRESULT WINAPI TextPara_SetRightIndent(ITextPara *iface, FLOAT value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%.2f)\n", This, value);
@ -547,7 +547,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2645,6 +2831,10 @@ static HRESULT WINAPI TextPara_SetIndents(ITextPara *iface, FLOAT StartIndent, F
@@ -2773,6 +2959,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);
@ -558,7 +558,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2652,6 +2842,10 @@ static HRESULT WINAPI TextPara_SetLineSpacing(ITextPara *iface, LONG LineSpacing
@@ -2780,6 +2970,10 @@ static HRESULT WINAPI TextPara_SetLineSpacing(ITextPara *iface, LONG LineSpacing
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d %.2f)\n", This, LineSpacingRule, LineSpacing);
@ -569,7 +569,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2659,6 +2853,10 @@ static HRESULT WINAPI TextPara_GetSpaceAfter(ITextPara *iface, FLOAT *value)
@@ -2787,6 +2981,10 @@ static HRESULT WINAPI TextPara_GetSpaceAfter(ITextPara *iface, FLOAT *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -580,7 +580,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2666,6 +2864,10 @@ static HRESULT WINAPI TextPara_SetSpaceAfter(ITextPara *iface, FLOAT value)
@@ -2794,6 +2992,10 @@ static HRESULT WINAPI TextPara_SetSpaceAfter(ITextPara *iface, FLOAT value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%.2f)\n", This, value);
@ -591,7 +591,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2673,6 +2875,10 @@ static HRESULT WINAPI TextPara_GetSpaceBefore(ITextPara *iface, FLOAT *value)
@@ -2801,6 +3003,10 @@ static HRESULT WINAPI TextPara_GetSpaceBefore(ITextPara *iface, FLOAT *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -602,7 +602,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2680,6 +2886,10 @@ static HRESULT WINAPI TextPara_SetSpaceBefore(ITextPara *iface, FLOAT value)
@@ -2808,6 +3014,10 @@ static HRESULT WINAPI TextPara_SetSpaceBefore(ITextPara *iface, FLOAT value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%.2f)\n", This, value);
@ -613,7 +613,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2687,6 +2897,10 @@ static HRESULT WINAPI TextPara_GetWidowControl(ITextPara *iface, LONG *value)
@@ -2815,6 +3025,10 @@ static HRESULT WINAPI TextPara_GetWidowControl(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -624,7 +624,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2694,6 +2908,10 @@ static HRESULT WINAPI TextPara_SetWidowControl(ITextPara *iface, LONG value)
@@ -2822,6 +3036,10 @@ static HRESULT WINAPI TextPara_SetWidowControl(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -635,7 +635,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2701,6 +2919,10 @@ static HRESULT WINAPI TextPara_GetTabCount(ITextPara *iface, LONG *value)
@@ -2829,6 +3047,10 @@ static HRESULT WINAPI TextPara_GetTabCount(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -646,7 +646,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2708,6 +2930,10 @@ static HRESULT WINAPI TextPara_AddTab(ITextPara *iface, FLOAT tbPos, LONG tbAlig
@@ -2836,6 +3058,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);
@ -657,7 +657,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2715,6 +2941,10 @@ static HRESULT WINAPI TextPara_ClearAllTabs(ITextPara *iface)
@@ -2843,6 +3069,10 @@ static HRESULT WINAPI TextPara_ClearAllTabs(ITextPara *iface)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)\n", This);
@ -668,7 +668,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2722,6 +2952,10 @@ static HRESULT WINAPI TextPara_DeleteTab(ITextPara *iface, FLOAT pos)
@@ -2850,6 +3080,10 @@ static HRESULT WINAPI TextPara_DeleteTab(ITextPara *iface, FLOAT pos)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%.2f)\n", This, pos);
@ -679,7 +679,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2729,6 +2963,10 @@ static HRESULT WINAPI TextPara_GetTab(ITextPara *iface, LONG iTab, FLOAT *ptbPos
@@ -2857,6 +3091,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);
@ -690,7 +690,7 @@ index d5ecf52..409f3e8 100644
return E_NOTIMPL;
}
@@ -2790,21 +3028,20 @@ static ITextParaVtbl textparavtbl = {
@@ -2918,21 +3156,20 @@ static ITextParaVtbl textparavtbl = {
TextPara_GetTab
};
@ -716,7 +716,7 @@ index d5ecf52..409f3e8 100644
return S_OK;
}
@@ -4019,6 +4256,7 @@ LRESULT CreateIRichEditOle(IUnknown *outer_unk, ME_TextEditor *editor, LPVOID *p
@@ -4147,6 +4384,7 @@ LRESULT CreateIRichEditOle(IUnknown *outer_unk, ME_TextEditor *editor, LPVOID *p
TRACE("Created %p\n",reo);
list_init(&reo->rangelist);
list_init(&reo->fontlist);
@ -725,10 +725,10 @@ index d5ecf52..409f3e8 100644
reo->outer_unk = outer_unk;
else
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
index c52653f..e1e330d 100644
index 070b05a..0fb5c98 100644
--- a/dlls/riched20/tests/richole.c
+++ b/dlls/riched20/tests/richole.c
@@ -1569,6 +1569,52 @@ static void test_ITextSelection_GetFont(void)
@@ -1597,6 +1597,52 @@ static void test_ITextSelection_GetFont(void)
ITextFont_Release(txtFont);
}
@ -781,7 +781,7 @@ index c52653f..e1e330d 100644
START_TEST(richole)
{
/* Must explicitly LoadLibrary(). The test has no references to functions in
@@ -1593,6 +1639,7 @@ START_TEST(richole)
@@ -1621,6 +1667,7 @@ START_TEST(richole)
test_ITextRange_SetStart();
test_ITextRange_SetEnd();
test_ITextRange_GetFont();

View File

@ -1,18 +1,18 @@
From 0b40418cf55b2c6b963433c48fd52f8465558f1d Mon Sep 17 00:00:00 2001
From e0ae36a5cdcabb900a2e12a701990f4d0fcc7f7b Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 1 Nov 2014 22:51:34 +0100
Subject: riched20: Silence repeated FIXMEs triggered by Adobe Reader.
Adobe Reader calls these functions very often while scrolling through a document.
---
dlls/riched20/richole.c | 48 ++++++++++++++++++++++++++++++++++++++----------
1 file changed, 38 insertions(+), 10 deletions(-)
dlls/riched20/richole.c | 46 ++++++++++++++++++++++++++++++++++++----------
1 file changed, 36 insertions(+), 10 deletions(-)
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
index 7a07a84..8e719eb 100644
index a2cdcf4..cb12e80 100644
--- a/dlls/riched20/richole.c
+++ b/dlls/riched20/richole.c
@@ -175,6 +175,14 @@ static HRESULT WINAPI IRichEditOleImpl_inner_fnQueryInterface(IUnknown *iface, R
@@ -300,6 +300,14 @@ static HRESULT WINAPI IRichEditOleImpl_inner_fnQueryInterface(IUnknown *iface, R
IUnknown_AddRef((IUnknown *)*ppvObj);
return S_OK;
}
@ -27,18 +27,17 @@ index 7a07a84..8e719eb 100644
FIXME("%p: unhandled interface %s\n", This, debugstr_guid(riid));
return E_NOINTERFACE;
@@ -1833,7 +1841,9 @@ static HRESULT WINAPI TextFont_SetBackColor(ITextFont *iface, LONG value)
static HRESULT WINAPI TextFont_GetBold(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
- FIXME("(%p)->(%p): stub\n", This, value);
+ static int once;
+
+ if (!once++) FIXME("(%p)->(%p): stub\n", This, value);
@@ -1961,7 +1969,8 @@ static HRESULT WINAPI TextFont_GetBold(ITextFont *iface, LONG *value)
return CO_E_RELEASED;
if (!This->txtRge)
{
- FIXME("not implemented\n");
+ static int once;
+ if (!once++) FIXME("not implemented\n");
return E_NOTIMPL;
}
if (!value)
return E_INVALIDARG;
@@ -1880,7 +1890,9 @@ static HRESULT WINAPI TextFont_SetEmboss(ITextFont *iface, LONG value)
@@ -2004,7 +2013,9 @@ static HRESULT WINAPI TextFont_SetEmboss(ITextFont *iface, LONG value)
static HRESULT WINAPI TextFont_GetForeColor(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
@ -49,18 +48,17 @@ index 7a07a84..8e719eb 100644
if (!value)
return E_INVALIDARG;
@@ -1949,7 +1961,9 @@ static HRESULT WINAPI TextFont_SetEngrave(ITextFont *iface, LONG value)
static HRESULT WINAPI TextFont_GetItalic(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
- FIXME("(%p)->(%p): stub\n", This, value);
+ static int once;
+
+ if (!once++) FIXME("(%p)->(%p): stub\n", This, value);
@@ -2081,7 +2092,8 @@ static HRESULT WINAPI TextFont_GetItalic(ITextFont *iface, LONG *value)
return CO_E_RELEASED;
if (!This->txtRge)
{
- FIXME("not implemented\n");
+ static int once;
+ if (!once++) FIXME("not implemented\n");
return E_NOTIMPL;
}
if (!value)
return E_INVALIDARG;
@@ -1996,7 +2010,9 @@ static HRESULT WINAPI TextFont_SetKerning(ITextFont *iface, FLOAT value)
@@ -2124,7 +2136,9 @@ static HRESULT WINAPI TextFont_SetKerning(ITextFont *iface, FLOAT value)
static HRESULT WINAPI TextFont_GetLanguageID(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
@ -71,7 +69,7 @@ index 7a07a84..8e719eb 100644
if (!This->reOle)
return CO_E_RELEASED;
@@ -2133,7 +2149,9 @@ static HRESULT WINAPI TextFont_SetShadow(ITextFont *iface, LONG value)
@@ -2261,7 +2275,9 @@ static HRESULT WINAPI TextFont_SetShadow(ITextFont *iface, LONG value)
static HRESULT WINAPI TextFont_GetSize(ITextFont *iface, FLOAT *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
@ -82,7 +80,7 @@ index 7a07a84..8e719eb 100644
if (!value)
return E_INVALIDARG;
@@ -2202,7 +2220,9 @@ static HRESULT WINAPI TextFont_SetSpacing(ITextFont *iface, FLOAT value)
@@ -2330,7 +2346,9 @@ static HRESULT WINAPI TextFont_SetSpacing(ITextFont *iface, FLOAT value)
static HRESULT WINAPI TextFont_GetStrikeThrough(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
@ -93,7 +91,7 @@ index 7a07a84..8e719eb 100644
if (!value)
return E_INVALIDARG;
@@ -2227,7 +2247,9 @@ static HRESULT WINAPI TextFont_SetStrikeThrough(ITextFont *iface, LONG value)
@@ -2355,7 +2373,9 @@ static HRESULT WINAPI TextFont_SetStrikeThrough(ITextFont *iface, LONG value)
static HRESULT WINAPI TextFont_GetSubscript(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
@ -104,7 +102,7 @@ index 7a07a84..8e719eb 100644
if (!value)
return E_INVALIDARG;
@@ -2277,7 +2299,9 @@ static HRESULT WINAPI TextFont_SetSuperscript(ITextFont *iface, LONG value)
@@ -2405,7 +2425,9 @@ static HRESULT WINAPI TextFont_SetSuperscript(ITextFont *iface, LONG value)
static HRESULT WINAPI TextFont_GetUnderline(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
@ -115,7 +113,7 @@ index 7a07a84..8e719eb 100644
if (!value)
return E_INVALIDARG;
@@ -2302,7 +2326,9 @@ static HRESULT WINAPI TextFont_SetUnderline(ITextFont *iface, LONG value)
@@ -2430,7 +2452,9 @@ static HRESULT WINAPI TextFont_SetUnderline(ITextFont *iface, LONG value)
static HRESULT WINAPI TextFont_GetWeight(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
@ -126,7 +124,7 @@ index 7a07a84..8e719eb 100644
if (!This->reOle)
return CO_E_RELEASED;
@@ -2593,7 +2619,9 @@ static HRESULT WINAPI TextPara_SetStyle(ITextPara *iface, LONG value)
@@ -2721,7 +2745,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);

View File

@ -1099,7 +1099,7 @@ diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -3298,7 +3298,11 @@
@@ -3304,7 +3304,11 @@
float y_offset = context->render_offscreen
? (center_offset - (2.0f * y) - h) / h
: (center_offset - (2.0f * y) - h) / -h;
@ -1111,7 +1111,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
state->render_states[WINED3D_RS_ZENABLE] : WINED3D_ZB_FALSE;
float z_scale = zenable ? 2.0f : 0.0f;
float z_offset = zenable ? -1.0f : 0.0f;
@@ -3421,6 +3425,7 @@
@@ -3427,6 +3431,7 @@
/* case WINED3D_TTFF_COUNT1: Won't ever get here. */
case WINED3D_TTFF_COUNT2:
mat._13 = mat._23 = mat._33 = mat._43 = 0.0f;
@ -1119,7 +1119,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
/* OpenGL divides the first 3 vertex coord by the 4th by default,
* which is essentially the same as D3DTTFF_PROJECTED. Make sure that
* the 4th coord evaluates to 1.0 to eliminate that.
@@ -3433,6 +3438,20 @@
@@ -3439,6 +3444,20 @@
* A more serious problem occurs if the app passes 4 coordinates in, and the
* 4th is != 1.0(opengl default). This would have to be fixed in draw_strided_slow
* or a replacement shader. */
@ -1140,7 +1140,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
default:
mat._14 = mat._24 = mat._34 = 0.0f; mat._44 = 1.0f;
}
@@ -3792,7 +3811,11 @@
@@ -3798,7 +3817,11 @@
unsigned int i;
DWORD ttff;
DWORD cop, aop, carg0, carg1, carg2, aarg0, aarg1, aarg2;
@ -1685,7 +1685,7 @@ diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
--- a/dlls/d3d9/tests/visual.c
+++ b/dlls/d3d9/tests/visual.c
@@ -16877,7 +16877,11 @@
@@ -16880,7 +16880,11 @@
fill_surface(surface_managed, 0x0000ff00, D3DLOCK_NO_DIRTY_UPDATE);
add_dirty_rect_test_draw(device);
color = getPixelColor(device, 320, 240);