mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against 9586d3b2567e6b4a2270caeacf39796c168351c0.
This commit is contained in:
parent
b2297b41c3
commit
ca8ffcd619
@ -64,7 +64,7 @@ for more details.*
|
||||
* Add stub for D3DXFrameFind ([Wine Bug #38334](https://bugs.winehq.org/show_bug.cgi?id=38334))
|
||||
* Add stub for D3DXIntersect
|
||||
* Add stub for NtSetLdtEntries/ZwSetLdtEntries ([Wine Bug #26268](https://bugs.winehq.org/show_bug.cgi?id=26268))
|
||||
* Add stub for advapi32.ImpersonateAnonymousToken
|
||||
* ~~Add stub for advapi32.ImpersonateAnonymousToken~~
|
||||
* Add stub for atl80.AtlIPersistPropertyBag_Save ([Wine Bug #33888](https://bugs.winehq.org/show_bug.cgi?id=33888))
|
||||
* Add stub for d3d11.D3D11CreateDeviceAndSwapChain ([Wine Bug #33153](https://bugs.winehq.org/show_bug.cgi?id=33153))
|
||||
* Add stub for fltlib.FilterLoad ([Wine Bug #38435](https://bugs.winehq.org/show_bug.cgi?id=38435))
|
||||
@ -181,7 +181,7 @@ for more details.*
|
||||
* Implement mscoree._CorValidateImage for mono runtime
|
||||
* Implement ntoskrnl driver testing framework.
|
||||
* Implement ntoskrnl.KeInitializeMutex
|
||||
* Implement null.sys to provide \Device\Null ([Wine Bug #38107](https://bugs.winehq.org/show_bug.cgi?id=38107))
|
||||
* ~~Implement null.sys to provide \Device\Null~~ ([Wine Bug #38107](https://bugs.winehq.org/show_bug.cgi?id=38107))
|
||||
* Implement proper handling of CLI .NET images in Wine library loader
|
||||
* Implement stub for ntoskrnl.IoGetAttachedDeviceReference
|
||||
* Implement stub for ntoskrnl.KeDelayExecutionThread.
|
||||
@ -245,7 +245,7 @@ for more details.*
|
||||
* Support for ID3DXFont::DrawTextA/W ([Wine Bug #24754](https://bugs.winehq.org/show_bug.cgi?id=24754))
|
||||
* Support for ID3DXSkinInfoImpl_UpdateSkinnedMesh ([Wine Bug #32572](https://bugs.winehq.org/show_bug.cgi?id=32572))
|
||||
* ~~Support for ITextDocument_fnRange function~~ ([Wine Bug #12458](https://bugs.winehq.org/show_bug.cgi?id=12458))
|
||||
* Support for ITextRange, ITextFont and ITextPara ([Wine Bug #18303](https://bugs.winehq.org/show_bug.cgi?id=18303))
|
||||
* ~~Support for ITextRange, ITextFont and ITextPara~~ ([Wine Bug #18303](https://bugs.winehq.org/show_bug.cgi?id=18303))
|
||||
* Support for Junction Points ([Wine Bug #12401](https://bugs.winehq.org/show_bug.cgi?id=12401))
|
||||
* Support for KF_FLAG_DEFAULT_PATH in SHGetKnownFolderPath ([Wine Bug #30385](https://bugs.winehq.org/show_bug.cgi?id=30385))
|
||||
* Support for LoadIconMetric ([Wine Bug #35375](https://bugs.winehq.org/show_bug.cgi?id=35375))
|
||||
|
3
debian/changelog
vendored
3
debian/changelog
vendored
@ -18,6 +18,9 @@ wine-staging (1.7.44) UNRELEASED; urgency=low
|
||||
* Removed patch to implement kernel32.GetSystemTimePreciseAsFileTime (accepted
|
||||
upstream).
|
||||
* Removed various patches containing tests (accepted upstream).
|
||||
* Removed patches for advapi32.ImpersonateAnonymousToken (accepted upstream).
|
||||
* Removed patches for \Device\Null driver (fixed upstream with alternative
|
||||
solution).
|
||||
* Partially removed patches for ITextFont/ITextPara implementation (fixed
|
||||
upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Wed, 20 May 2015 05:55:09 +0200
|
||||
|
@ -1,75 +0,0 @@
|
||||
From a996ccc06eebf03b706e28c3af277901b5074e37 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 30 Apr 2015 01:37:44 +0200
|
||||
Subject: advapi32: Add stub for ImpersonateAnonymousToken.
|
||||
|
||||
---
|
||||
dlls/advapi32/advapi32.spec | 2 +-
|
||||
dlls/advapi32/security.c | 10 ++++++++++
|
||||
.../api-ms-win-security-base-l1-1-0.spec | 2 +-
|
||||
.../api-ms-win-security-base-l1-2-0.spec | 2 +-
|
||||
4 files changed, 13 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec
|
||||
index e7b7cf7..9fdd266 100644
|
||||
--- a/dlls/advapi32/advapi32.spec
|
||||
+++ b/dlls/advapi32/advapi32.spec
|
||||
@@ -375,7 +375,7 @@
|
||||
@ stub I_ScSetServiceBitsA
|
||||
# @ stub I_ScSetServiceBitsW
|
||||
# @ stub IdentifyCodeAuthzLevelW
|
||||
-# @ stub ImpersonateAnonymousToken
|
||||
+@ stdcall ImpersonateAnonymousToken(long)
|
||||
@ stdcall ImpersonateLoggedOnUser(long)
|
||||
@ stdcall ImpersonateNamedPipeClient(long)
|
||||
@ stdcall ImpersonateSelf(long)
|
||||
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
|
||||
index d27b2e7..de3c82e 100644
|
||||
--- a/dlls/advapi32/security.c
|
||||
+++ b/dlls/advapi32/security.c
|
||||
@@ -2501,6 +2501,16 @@ BOOL WINAPI ImpersonateLoggedOnUser(HANDLE hToken)
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
+ * ImpersonateAnonymousToken [ADVAPI32.@]
|
||||
+ */
|
||||
+BOOL WINAPI ImpersonateAnonymousToken(HANDLE hThread)
|
||||
+{
|
||||
+ FIXME("(%p)\n", hThread);
|
||||
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
+ return FALSE;
|
||||
+}
|
||||
+
|
||||
+/******************************************************************************
|
||||
* AccessCheck [ADVAPI32.@]
|
||||
*/
|
||||
BOOL WINAPI
|
||||
diff --git a/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec b/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec
|
||||
index 548ae83..4277706 100644
|
||||
--- a/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec
|
||||
+++ b/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec
|
||||
@@ -58,7 +58,7 @@
|
||||
@ stdcall GetSidSubAuthorityCount(ptr) advapi32.GetSidSubAuthorityCount
|
||||
@ stdcall GetTokenInformation(long long ptr long ptr) advapi32.GetTokenInformation
|
||||
@ stub GetWindowsAccountDomainSid
|
||||
-@ stub ImpersonateAnonymousToken
|
||||
+@ stdcall ImpersonateAnonymousToken(long) advapi32.ImpersonateAnonymousToken
|
||||
@ stdcall ImpersonateLoggedOnUser(long) advapi32.ImpersonateLoggedOnUser
|
||||
@ stdcall ImpersonateSelf(long) advapi32.ImpersonateSelf
|
||||
@ stdcall InitializeAcl(ptr long long) advapi32.InitializeAcl
|
||||
diff --git a/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec b/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec
|
||||
index d268183..3adef23 100644
|
||||
--- a/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec
|
||||
+++ b/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec
|
||||
@@ -64,7 +64,7 @@
|
||||
@ stdcall GetSidSubAuthorityCount(ptr) advapi32.GetSidSubAuthorityCount
|
||||
@ stdcall GetTokenInformation(long long ptr long ptr) advapi32.GetTokenInformation
|
||||
@ stub GetWindowsAccountDomainSid
|
||||
-@ stub ImpersonateAnonymousToken
|
||||
+@ stdcall ImpersonateAnonymousToken(long) advapi32.ImpersonateAnonymousToken
|
||||
@ stdcall ImpersonateLoggedOnUser(long) advapi32.ImpersonateLoggedOnUser
|
||||
@ stdcall ImpersonateSelf(long) advapi32.ImpersonateSelf
|
||||
@ stdcall InitializeAcl(ptr long long) advapi32.InitializeAcl
|
||||
--
|
||||
2.4.0
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: Add stub for advapi32.ImpersonateAnonymousToken
|
@ -1,4 +1,4 @@
|
||||
From 1b7cdebf9ee746d71dee0f69d5fa4da63a3ef5f0 Mon Sep 17 00:00:00 2001
|
||||
From 8ad4ff3e0ed7e3065a1f408873a69d51cb6b3b51 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Fri, 15 Aug 2014 22:23:08 +0200
|
||||
Subject: ntdll: Unify similar code in NtReadFile and FILE_AsyncReadService.
|
||||
@ -15,14 +15,14 @@ Changes in FILE_AsyncReadService:
|
||||
whereas NtReadFile uses different behaviour based on the fd type.
|
||||
Now both implementations match, and behave the same way.
|
||||
---
|
||||
dlls/ntdll/file.c | 106 +++++++++++++++++++++++-------------------------------
|
||||
1 file changed, 45 insertions(+), 61 deletions(-)
|
||||
dlls/ntdll/file.c | 108 +++++++++++++++++++++++-------------------------------
|
||||
1 file changed, 46 insertions(+), 62 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
|
||||
index 7995738..bc3c894 100644
|
||||
index 79daec5..fd88777 100644
|
||||
--- a/dlls/ntdll/file.c
|
||||
+++ b/dlls/ntdll/file.c
|
||||
@@ -437,6 +437,44 @@ NTSTATUS FILE_GetNtStatus(void)
|
||||
@@ -471,6 +471,45 @@ NTSTATUS FILE_GetNtStatus(void)
|
||||
}
|
||||
}
|
||||
|
||||
@ -45,6 +45,7 @@ index 7995738..bc3c894 100644
|
||||
+ {
|
||||
+ case FD_TYPE_FILE:
|
||||
+ case FD_TYPE_CHAR:
|
||||
+ case FD_TYPE_DEVICE:
|
||||
+ return length ? STATUS_END_OF_FILE : STATUS_SUCCESS;
|
||||
+ case FD_TYPE_SERIAL:
|
||||
+ return STATUS_PENDING;
|
||||
@ -67,7 +68,7 @@ index 7995738..bc3c894 100644
|
||||
/***********************************************************************
|
||||
* FILE_AsyncReadService (INTERNAL)
|
||||
*/
|
||||
@@ -444,44 +482,19 @@ static NTSTATUS FILE_AsyncReadService( void *user, IO_STATUS_BLOCK *iosb,
|
||||
@@ -478,44 +517,19 @@ static NTSTATUS FILE_AsyncReadService( void *user, IO_STATUS_BLOCK *iosb,
|
||||
NTSTATUS status, void **apc, void **arg )
|
||||
{
|
||||
struct async_fileio_read *fileio = user;
|
||||
@ -117,7 +118,7 @@ index 7995738..bc3c894 100644
|
||||
break;
|
||||
|
||||
case STATUS_TIMEOUT:
|
||||
@@ -632,7 +645,6 @@ static NTSTATUS get_io_avail_mode( HANDLE handle, enum server_fd_type type, BOOL
|
||||
@@ -762,7 +776,6 @@ static NTSTATUS get_io_avail_mode( HANDLE handle, enum server_fd_type type, BOOL
|
||||
return status;
|
||||
}
|
||||
|
||||
@ -125,7 +126,7 @@ index 7995738..bc3c894 100644
|
||||
/******************************************************************************
|
||||
* NtReadFile [NTDLL.@]
|
||||
* ZwReadFile [NTDLL.@]
|
||||
@@ -725,37 +737,9 @@ NTSTATUS WINAPI NtReadFile(HANDLE hFile, HANDLE hEvent,
|
||||
@@ -858,38 +871,9 @@ NTSTATUS WINAPI NtReadFile(HANDLE hFile, HANDLE hEvent,
|
||||
|
||||
for (;;)
|
||||
{
|
||||
@ -143,6 +144,7 @@ index 7995738..bc3c894 100644
|
||||
- {
|
||||
- case FD_TYPE_FILE:
|
||||
- case FD_TYPE_CHAR:
|
||||
- case FD_TYPE_DEVICE:
|
||||
- status = length ? STATUS_END_OF_FILE : STATUS_SUCCESS;
|
||||
- goto done;
|
||||
- case FD_TYPE_SERIAL:
|
||||
@ -166,5 +168,5 @@ index 7995738..bc3c894 100644
|
||||
if (async_read)
|
||||
{
|
||||
--
|
||||
2.3.0
|
||||
2.4.0
|
||||
|
||||
|
@ -1,41 +1,20 @@
|
||||
From 92a522e2fd22e78a8aec27e6121aa261e5bf0777 Mon Sep 17 00:00:00 2001
|
||||
From 40983a8c7b9a83a931ac274e3ce5cdd18e9753d5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 26 Feb 2015 05:28:23 +0100
|
||||
Subject: include: Declare a couple more file information class structures.
|
||||
|
||||
---
|
||||
include/winbase.h | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 88 insertions(+)
|
||||
include/winbase.h | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 67 insertions(+)
|
||||
|
||||
diff --git a/include/winbase.h b/include/winbase.h
|
||||
index 1eb49b3..2b6df8d 100644
|
||||
index b3066ca..12fe2b0 100644
|
||||
--- a/include/winbase.h
|
||||
+++ b/include/winbase.h
|
||||
@@ -796,6 +796,68 @@ typedef enum _FILE_INFO_BY_HANDLE_CLASS {
|
||||
MaximumFileInfoByHandlesClass
|
||||
} FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
|
||||
@@ -844,6 +844,73 @@ typedef struct _FILE_NAME_INFO {
|
||||
WCHAR FileName[1];
|
||||
} FILE_NAME_INFO, *PFILE_NAME_INFO;
|
||||
|
||||
+typedef struct _FILE_BASIC_INFO {
|
||||
+ LARGE_INTEGER CreationTime;
|
||||
+ LARGE_INTEGER LastAccessTime;
|
||||
+ LARGE_INTEGER LastWriteTime;
|
||||
+ LARGE_INTEGER ChangeTime;
|
||||
+ DWORD FileAttributes;
|
||||
+} FILE_BASIC_INFO, *PFILE_BASIC_INFO;
|
||||
+
|
||||
+typedef struct _FILE_STANDARD_INFO {
|
||||
+ LARGE_INTEGER AllocationSize;
|
||||
+ LARGE_INTEGER EndOfFile;
|
||||
+ DWORD NumberOfLinks;
|
||||
+ BOOLEAN DeletePending;
|
||||
+ BOOLEAN Directory;
|
||||
+} FILE_STANDARD_INFO, *PFILE_STANDARD_INFO;
|
||||
+
|
||||
+typedef struct _FILE_NAME_INFO {
|
||||
+ DWORD FileNameLength;
|
||||
+ WCHAR FileName[1];
|
||||
+} FILE_NAME_INFO, *PFILE_NAME_INFO;
|
||||
+
|
||||
+typedef struct _FILE_RENAME_INFO {
|
||||
+ BOOLEAN ReplaceIfExists;
|
||||
+ HANDLE RootDirectory;
|
||||
@ -77,13 +56,6 @@ index 1eb49b3..2b6df8d 100644
|
||||
+ DWORD ReparseTag;
|
||||
+} FILE_ATTRIBUTE_TAG_INFO, *PFILE_ATTRIBUTE_TAG_INFO;
|
||||
+
|
||||
typedef struct _FILE_ID_BOTH_DIR_INFO {
|
||||
DWORD NextEntryOffset;
|
||||
DWORD FileIndex;
|
||||
@@ -814,6 +876,32 @@ typedef struct _FILE_ID_BOTH_DIR_INFO {
|
||||
WCHAR FileName[1];
|
||||
} FILE_ID_BOTH_DIR_INFO, *PFILE_ID_BOTH_DIR_INFO;
|
||||
|
||||
+typedef struct _FILE_FULL_DIR_INFO {
|
||||
+ ULONG NextEntryOffset;
|
||||
+ ULONG FileIndex;
|
||||
@ -114,5 +86,5 @@ index 1eb49b3..2b6df8d 100644
|
||||
#define PIPE_ACCESS_OUTBOUND 2
|
||||
#define PIPE_ACCESS_DUPLEX 3
|
||||
--
|
||||
2.3.0
|
||||
2.4.0
|
||||
|
||||
|
@ -1,109 +0,0 @@
|
||||
From 0a3f771a48590503f8e8b951939e905bde132744 Mon Sep 17 00:00:00 2001
|
||||
From: Qian Hong <qhong@codeweavers.com>
|
||||
Date: Thu, 12 Mar 2015 06:43:03 +0800
|
||||
Subject: null.sys: Added stub dll.
|
||||
|
||||
Changes by Sebastian Lackner <sebastian@fds-team.de>:
|
||||
* Install driver to system32/drivers directory.
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/null.sys/Makefile.in | 5 +++++
|
||||
dlls/null.sys/main.c | 38 ++++++++++++++++++++++++++++++++++++++
|
||||
dlls/null.sys/null.sys.spec | 1 +
|
||||
loader/wine.inf.in | 2 ++
|
||||
5 files changed, 47 insertions(+)
|
||||
create mode 100644 dlls/null.sys/Makefile.in
|
||||
create mode 100644 dlls/null.sys/main.c
|
||||
create mode 100644 dlls/null.sys/null.sys.spec
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index a9a7bcf..32b2e16 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3157,4 +3157,5 @@ WINE_CONFIG_DLL(ntoskrnl.exe,,[implib])
|
||||
WINE_CONFIG_DLL(ntprint)
|
||||
WINE_CONFIG_TEST(dlls/ntprint/tests)
|
||||
+WINE_CONFIG_DLL(null.sys)
|
||||
WINE_CONFIG_DLL(objsel,,[clean])
|
||||
WINE_CONFIG_DLL(odbc32,,[implib])
|
||||
diff --git a/dlls/null.sys/Makefile.in b/dlls/null.sys/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..4ea3b55
|
||||
--- /dev/null
|
||||
+++ b/dlls/null.sys/Makefile.in
|
||||
@@ -0,0 +1,5 @@
|
||||
+MODULE = null.sys
|
||||
+EXTRADLLFLAGS = -Wb,--subsystem,native
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ main.c
|
||||
diff --git a/dlls/null.sys/main.c b/dlls/null.sys/main.c
|
||||
new file mode 100644
|
||||
index 0000000..141c218
|
||||
--- /dev/null
|
||||
+++ b/dlls/null.sys/main.c
|
||||
@@ -0,0 +1,38 @@
|
||||
+/*
|
||||
+ * null.sys
|
||||
+ *
|
||||
+ * Copyright 2015 Qian Hong for CodeWeavers
|
||||
+ *
|
||||
+ * This library is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU Lesser General Public
|
||||
+ * License as published by the Free Software Foundation; either
|
||||
+ * version 2.1 of the License, or (at your option) any later version.
|
||||
+ *
|
||||
+ * This library is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ * Lesser General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU Lesser General Public
|
||||
+ * License along with this library; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
+ */
|
||||
+
|
||||
+#include <stdarg.h>
|
||||
+
|
||||
+#include "ntstatus.h"
|
||||
+#define WIN32_NO_STATUS
|
||||
+#include "windef.h"
|
||||
+#include "winbase.h"
|
||||
+#include "winternl.h"
|
||||
+#include "ddk/wdm.h"
|
||||
+#include "wine/debug.h"
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(null);
|
||||
+
|
||||
+NTSTATUS WINAPI DriverEntry(DRIVER_OBJECT *driver, UNICODE_STRING *path)
|
||||
+{
|
||||
+ TRACE("(%p, %s)\n", driver, debugstr_w(path->Buffer));
|
||||
+
|
||||
+ return STATUS_SUCCESS;
|
||||
+}
|
||||
diff --git a/dlls/null.sys/null.sys.spec b/dlls/null.sys/null.sys.spec
|
||||
new file mode 100644
|
||||
index 0000000..76421d7
|
||||
--- /dev/null
|
||||
+++ b/dlls/null.sys/null.sys.spec
|
||||
@@ -0,0 +1 @@
|
||||
+# nothing to export
|
||||
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
|
||||
index fcd2e49..8a6c767 100644
|
||||
--- a/loader/wine.inf.in
|
||||
+++ b/loader/wine.inf.in
|
||||
@@ -2498,4 +2498,5 @@ HKLM,%CurrentVersion%\Telephony\Country List\998,"SameAreaRule",,"G"
|
||||
12,,mountmgr.sys,-
|
||||
12,,ndis.sys,-
|
||||
+12,,null.sys,-
|
||||
; skip .NET fake dlls in Wine Mono package
|
||||
11,,aspnet_regiis.exe,-
|
||||
@@ -2536,4 +2537,5 @@ HKLM,%CurrentVersion%\Telephony\Country List\998,"SameAreaRule",,"G"
|
||||
12,,mountmgr.sys
|
||||
12,,ndis.sys
|
||||
+12,,null.sys
|
||||
; skip .NET fake dlls in Wine Mono package
|
||||
11,,aspnet_regiis.exe,-
|
||||
--
|
||||
2.4.0
|
||||
|
@ -1,200 +0,0 @@
|
||||
From f5ebb97d978d8418e1034ea58af16e6a0aa0216d Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Fri, 15 May 2015 22:23:52 +0200
|
||||
Subject: null.sys: Implement device ioctl/read/write functions.
|
||||
|
||||
Based on a patch by Qian Hong.
|
||||
---
|
||||
dlls/ntdll/tests/om.c | 12 +++------
|
||||
dlls/null.sys/Makefile.in | 1 +
|
||||
dlls/null.sys/main.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++
|
||||
loader/wine.inf.in | 11 +++++++++
|
||||
4 files changed, 79 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c
|
||||
index 71380a7..ca32577 100644
|
||||
--- a/dlls/ntdll/tests/om.c
|
||||
+++ b/dlls/ntdll/tests/om.c
|
||||
@@ -1053,30 +1053,27 @@ static void test_null_device(void)
|
||||
pRtlCreateUnicodeStringFromAsciiz(&str, "\\Device\\Null");
|
||||
InitializeObjectAttributes(&attr, &str, OBJ_CASE_INSENSITIVE, 0, NULL);
|
||||
status = pNtOpenSymbolicLinkObject(&null, SYMBOLIC_LINK_QUERY, &attr);
|
||||
- todo_wine
|
||||
ok(status == STATUS_OBJECT_TYPE_MISMATCH,
|
||||
"expected STATUS_OBJECT_TYPE_MISMATCH, got %08x\n", status);
|
||||
|
||||
status = pNtOpenFile(&null, GENERIC_READ | GENERIC_WRITE, &attr, &iosb,
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE, 0);
|
||||
- todo_wine
|
||||
ok(status == STATUS_SUCCESS,
|
||||
"expected STATUS_SUCCESS, got %08x\n", status);
|
||||
- if (status != STATUS_SUCCESS)
|
||||
- {
|
||||
- skip("opening \\Device\\Null failed, skipping read/write tests\n");
|
||||
- goto out;
|
||||
- }
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
ret = WriteFile(null, buf, sizeof(buf), &num_bytes, NULL);
|
||||
+ todo_wine
|
||||
ok(!ret, "WriteFile unexpectedly succeeded\n");
|
||||
+ todo_wine
|
||||
ok(GetLastError() == ERROR_INVALID_PARAMETER,
|
||||
"expected ERROR_INVALID_PARAMETER, got %u\n", GetLastError());
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
ret = ReadFile(null, buf, sizeof(buf), &num_bytes, NULL);
|
||||
+ todo_wine
|
||||
ok(!ret, "ReadFile unexpectedly succeeded\n");
|
||||
+ todo_wine
|
||||
ok(GetLastError() == ERROR_INVALID_PARAMETER,
|
||||
"expected ERROR_INVALID_PARAMETER, got %u\n", GetLastError());
|
||||
|
||||
@@ -1114,7 +1111,6 @@ static void test_null_device(void)
|
||||
|
||||
pNtClose(null);
|
||||
|
||||
-out:
|
||||
null = CreateFileA("\\\\.\\Null", GENERIC_READ | GENERIC_WRITE,
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
|
||||
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
diff --git a/dlls/null.sys/Makefile.in b/dlls/null.sys/Makefile.in
|
||||
index 4ea3b55..95c249d 100644
|
||||
--- a/dlls/null.sys/Makefile.in
|
||||
+++ b/dlls/null.sys/Makefile.in
|
||||
@@ -1,4 +1,5 @@
|
||||
MODULE = null.sys
|
||||
+IMPORTS = ntoskrnl.exe
|
||||
EXTRADLLFLAGS = -Wb,--subsystem,native
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/null.sys/main.c b/dlls/null.sys/main.c
|
||||
index 141c218..ecbb7cf 100644
|
||||
--- a/dlls/null.sys/main.c
|
||||
+++ b/dlls/null.sys/main.c
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
+#define NONAMELESSUNION
|
||||
#include "ntstatus.h"
|
||||
#define WIN32_NO_STATUS
|
||||
#include "windef.h"
|
||||
@@ -30,9 +31,71 @@
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(null);
|
||||
|
||||
+static NTSTATUS WINAPI null_ioctl( DEVICE_OBJECT *device, IRP *irp )
|
||||
+{
|
||||
+ IO_STACK_LOCATION *irpsp = IoGetCurrentIrpStackLocation( irp );
|
||||
+ ULONG code = irpsp->Parameters.DeviceIoControl.IoControlCode;
|
||||
+
|
||||
+ FIXME("Unsupported ioctl %x (device=%x access=%x func=%x method=%x)\n",
|
||||
+ code, code >> 16, (code >> 14) & 3, (code >> 2) & 0xfff, code & 3);
|
||||
+ irp->IoStatus.u.Status = STATUS_NOT_SUPPORTED;
|
||||
+
|
||||
+ IoCompleteRequest( irp, IO_NO_INCREMENT );
|
||||
+ return STATUS_SUCCESS;
|
||||
+}
|
||||
+
|
||||
+static NTSTATUS WINAPI null_read( DEVICE_OBJECT *device, IRP *irp )
|
||||
+{
|
||||
+ IO_STACK_LOCATION *irpsp = IoGetCurrentIrpStackLocation( irp );
|
||||
+
|
||||
+ TRACE( "length %u key %u byteoffset %u\n",
|
||||
+ irpsp->Parameters.Read.Length,
|
||||
+ irpsp->Parameters.Read.Key,
|
||||
+ irpsp->Parameters.Read.ByteOffset.u.LowPart);
|
||||
+
|
||||
+ irp->IoStatus.u.Status = STATUS_END_OF_FILE;
|
||||
+
|
||||
+ IoCompleteRequest( irp, IO_NO_INCREMENT );
|
||||
+ return STATUS_END_OF_FILE;
|
||||
+}
|
||||
+
|
||||
+static NTSTATUS WINAPI null_write( DEVICE_OBJECT *device, IRP *irp )
|
||||
+{
|
||||
+ IO_STACK_LOCATION *irpsp = IoGetCurrentIrpStackLocation( irp );
|
||||
+
|
||||
+ TRACE( "length %u key %u byteoffset %u\n",
|
||||
+ irpsp->Parameters.Read.Length,
|
||||
+ irpsp->Parameters.Read.Key,
|
||||
+ irpsp->Parameters.Read.ByteOffset.u.LowPart);
|
||||
+
|
||||
+ irp->IoStatus.Information = irpsp->Parameters.Read.Length;
|
||||
+ irp->IoStatus.u.Status = STATUS_SUCCESS;
|
||||
+
|
||||
+ IoCompleteRequest( irp, IO_NO_INCREMENT );
|
||||
+ return STATUS_SUCCESS;
|
||||
+}
|
||||
+
|
||||
NTSTATUS WINAPI DriverEntry(DRIVER_OBJECT *driver, UNICODE_STRING *path)
|
||||
{
|
||||
+ static const WCHAR device_nullW[] = {'\\','D','e','v','i','c','e','\\','N','u','l','l',0};
|
||||
+ UNICODE_STRING nameW;
|
||||
+ DEVICE_OBJECT *device;
|
||||
+ NTSTATUS status;
|
||||
+
|
||||
TRACE("(%p, %s)\n", driver, debugstr_w(path->Buffer));
|
||||
|
||||
+ driver->MajorFunction[IRP_MJ_DEVICE_CONTROL] = null_ioctl;
|
||||
+ driver->MajorFunction[IRP_MJ_READ] = null_read;
|
||||
+ driver->MajorFunction[IRP_MJ_WRITE] = null_write;
|
||||
+
|
||||
+ RtlInitUnicodeString( &nameW, device_nullW );
|
||||
+
|
||||
+ status = IoCreateDevice( driver, 0, &nameW, 0, 0, FALSE, &device );
|
||||
+ if (status)
|
||||
+ {
|
||||
+ FIXME( "failed to create device error %x\n", status );
|
||||
+ return status;
|
||||
+ }
|
||||
+
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
|
||||
index 8a6c767..057d047 100644
|
||||
--- a/loader/wine.inf.in
|
||||
+++ b/loader/wine.inf.in
|
||||
@@ -121,6 +121,7 @@ AddReg=\
|
||||
AddService=BITS,0,BITSService
|
||||
AddService=MSIServer,0,MSIService
|
||||
AddService=MountMgr,0x800,MountMgrService
|
||||
+AddService=Null,0x800,NullService
|
||||
AddService=Spooler,0,SpoolerService
|
||||
AddService=StiSvc,0,StiService
|
||||
AddService=TermService,0,TerminalServices
|
||||
@@ -134,6 +135,7 @@ AddService=Schedule,0,TaskSchedulerService
|
||||
AddService=BITS,0,BITSService
|
||||
AddService=MSIServer,0,MSIService
|
||||
AddService=MountMgr,0x800,MountMgrService
|
||||
+AddService=Null,0x800,NullService
|
||||
AddService=Spooler,0,SpoolerService
|
||||
AddService=StiSvc,0,StiService
|
||||
AddService=TermService,0,TerminalServices
|
||||
@@ -147,6 +149,7 @@ AddService=Schedule,0,TaskSchedulerService
|
||||
AddService=BITS,0,BITSService
|
||||
AddService=MSIServer,0,MSIService
|
||||
AddService=MountMgr,0x800,MountMgrService
|
||||
+AddService=Null,0x800,NullService
|
||||
AddService=Spooler,0,SpoolerService
|
||||
AddService=StiSvc,0,StiService
|
||||
AddService=TermService,0,TerminalServices
|
||||
@@ -3128,6 +3131,14 @@ ServiceType=1
|
||||
StartType=2
|
||||
ErrorControl=1
|
||||
|
||||
+[NullService]
|
||||
+Description="Null service"
|
||||
+DisplayName="Null"
|
||||
+ServiceBinary="%12%\null.sys"
|
||||
+ServiceType=1
|
||||
+StartType=2
|
||||
+ErrorControl=1
|
||||
+
|
||||
[SpoolerService]
|
||||
Description="Loads files to memory for later printing"
|
||||
DisplayName="Print Spooler"
|
||||
--
|
||||
2.4.0
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [38107] Implement null.sys to provide \Device\Null
|
@ -41,16 +41,14 @@ index 8a98996..efe32af 100644
|
||||
|
||||
dnl Disable winetest too if tests are disabled
|
||||
enable_winetest=${enable_winetest:-$enable_tests}
|
||||
@@ -3157,6 +3163,9 @@ WINE_CONFIG_DLL(ntoskrnl.exe,,[implib])
|
||||
@@ -3159,4 +3165,7 @@ WINE_CONFIG_DLL(ntoskrnl.exe,,[implib])
|
||||
WINE_CONFIG_DLL(ntprint)
|
||||
WINE_CONFIG_TEST(dlls/ntprint/tests)
|
||||
WINE_CONFIG_DLL(null.sys)
|
||||
+WINE_CONFIG_DLL(nvapi,enable_win32)
|
||||
+WINE_CONFIG_TEST(dlls/nvapi/tests)
|
||||
+WINE_CONFIG_DLL(nvapi64,enable_win64)
|
||||
WINE_CONFIG_DLL(nvcuda)
|
||||
WINE_CONFIG_TEST(dlls/nvcuda/tests)
|
||||
WINE_CONFIG_DLL(objsel,,[clean])
|
||||
diff --git a/dlls/nvapi/Makefile.in b/dlls/nvapi/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..606177f
|
||||
|
@ -19,14 +19,12 @@ diff --git a/configure.ac b/configure.ac
|
||||
index 32b2e16..1e38434 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3157,6 +3157,7 @@ WINE_CONFIG_DLL(ntoskrnl.exe,,[implib])
|
||||
@@ -3159,4 +3159,5 @@ WINE_CONFIG_DLL(ntoskrnl.exe,,[implib])
|
||||
WINE_CONFIG_DLL(ntprint)
|
||||
WINE_CONFIG_TEST(dlls/ntprint/tests)
|
||||
WINE_CONFIG_DLL(null.sys)
|
||||
+WINE_CONFIG_DLL(nvcuda)
|
||||
WINE_CONFIG_DLL(objsel,,[clean])
|
||||
WINE_CONFIG_DLL(odbc32,,[implib])
|
||||
WINE_CONFIG_DLL(odbccp32,,[implib])
|
||||
diff --git a/dlls/nvcuda/Makefile.in b/dlls/nvcuda/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..4b33278
|
||||
|
@ -27,8 +27,8 @@ index 1e38434..8a98996 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3158,6 +3158,7 @@ WINE_CONFIG_DLL(ntprint)
|
||||
WINE_CONFIG_DLL(ntprint)
|
||||
WINE_CONFIG_TEST(dlls/ntprint/tests)
|
||||
WINE_CONFIG_DLL(null.sys)
|
||||
WINE_CONFIG_DLL(nvcuda)
|
||||
+WINE_CONFIG_TEST(dlls/nvcuda/tests)
|
||||
WINE_CONFIG_DLL(objsel,,[clean])
|
||||
|
@ -1,3 +1,2 @@
|
||||
Fixes: Basic support for CUDA
|
||||
Fixes: [37664] MediaCoder needs CUDA for video encoding
|
||||
Depends: null-Null_Device
|
||||
|
@ -55,7 +55,7 @@ version()
|
||||
echo "Copyright (C) 2014-2015 the Wine Staging project authors."
|
||||
echo ""
|
||||
echo "Patchset to be applied on upstream Wine:"
|
||||
echo " commit 1e8759805e3c5dfe00a31bb5f13f1c1da28d2826"
|
||||
echo " commit 9586d3b2567e6b4a2270caeacf39796c168351c0"
|
||||
echo ""
|
||||
}
|
||||
|
||||
@ -79,7 +79,6 @@ patch_enable_all ()
|
||||
enable_Exagear="$1"
|
||||
enable_Pipelight="$1"
|
||||
enable_Staging="$1"
|
||||
enable_advapi32_ImpersonateAnonymousToken="$1"
|
||||
enable_advapi32_LsaLookupSids="$1"
|
||||
enable_advapi32_OpenSCManagerW="$1"
|
||||
enable_atl_AtlIPersistPropertyBag_Save="$1"
|
||||
@ -185,7 +184,6 @@ patch_enable_all ()
|
||||
enable_ntoskrnl_DriverTest="$1"
|
||||
enable_ntoskrnl_Emulator="$1"
|
||||
enable_ntoskrnl_Stubs="$1"
|
||||
enable_null_Null_Device="$1"
|
||||
enable_nvapi_Stub_DLL="$1"
|
||||
enable_nvcuda_CUDA_Support="$1"
|
||||
enable_nvcuvid_CUDA_Video_Support="$1"
|
||||
@ -299,9 +297,6 @@ patch_enable ()
|
||||
Staging)
|
||||
enable_Staging="$2"
|
||||
;;
|
||||
advapi32-ImpersonateAnonymousToken)
|
||||
enable_advapi32_ImpersonateAnonymousToken="$2"
|
||||
;;
|
||||
advapi32-LsaLookupSids)
|
||||
enable_advapi32_LsaLookupSids="$2"
|
||||
;;
|
||||
@ -617,9 +612,6 @@ patch_enable ()
|
||||
ntoskrnl-Stubs)
|
||||
enable_ntoskrnl_Stubs="$2"
|
||||
;;
|
||||
null-Null_Device)
|
||||
enable_null_Null_Device="$2"
|
||||
;;
|
||||
nvapi-Stub_DLL)
|
||||
enable_nvapi_Stub_DLL="$2"
|
||||
;;
|
||||
@ -1719,13 +1711,6 @@ if test "$enable_nvapi_Stub_DLL" -eq 1; then
|
||||
enable_nvcuda_CUDA_Support=1
|
||||
fi
|
||||
|
||||
if test "$enable_nvcuda_CUDA_Support" -eq 1; then
|
||||
if test "$enable_null_Null_Device" -gt 1; then
|
||||
abort "Patchset null-Null_Device disabled, but nvcuda-CUDA_Support depends on that."
|
||||
fi
|
||||
enable_null_Null_Device=1
|
||||
fi
|
||||
|
||||
if test "$enable_ntoskrnl_Emulator" -eq 1; then
|
||||
if test "$enable_ntdll_User_Shared_Data" -gt 1; then
|
||||
abort "Patchset ntdll-User_Shared_Data disabled, but ntoskrnl-Emulator depends on that."
|
||||
@ -2016,19 +2001,6 @@ if test "$enable_Staging" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset advapi32-ImpersonateAnonymousToken
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/advapi32/advapi32.spec, dlls/advapi32/security.c, dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-
|
||||
# | base-l1-1-0.spec, dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec
|
||||
# |
|
||||
if test "$enable_advapi32_ImpersonateAnonymousToken" -eq 1; then
|
||||
patch_apply advapi32-ImpersonateAnonymousToken/0001-advapi32-Add-stub-for-ImpersonateAnonymousToken.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "advapi32: Add stub for ImpersonateAnonymousToken.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset server-Misc_ACL
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -2682,6 +2654,18 @@ if test "$enable_dxgi_GetDesc" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset makedep-PARENTSPEC
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * tools/makedep.c
|
||||
# |
|
||||
if test "$enable_makedep_PARENTSPEC" -eq 1; then
|
||||
patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-DllRedirects
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -2702,18 +2686,6 @@ if test "$enable_ntdll_DllRedirects" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset makedep-PARENTSPEC
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * tools/makedep.c
|
||||
# |
|
||||
if test "$enable_makedep_PARENTSPEC" -eq 1; then
|
||||
patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-CSMT_Helper
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -4347,24 +4319,6 @@ if test "$enable_ntoskrnl_Stubs" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset null-Null_Device
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#38107] Implement null.sys to provide \Device\Null
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * configure.ac, dlls/ntdll/tests/om.c, dlls/null.sys/Makefile.in, dlls/null.sys/main.c, dlls/null.sys/null.sys.spec,
|
||||
# | loader/wine.inf.in
|
||||
# |
|
||||
if test "$enable_null_Null_Device" -eq 1; then
|
||||
patch_apply null-Null_Device/0001-null.sys-Added-stub-dll.patch
|
||||
patch_apply null-Null_Device/0002-null.sys-Implement-device-ioctl-read-write-functions.patch
|
||||
(
|
||||
echo '+ { "Qian Hong", "null.sys: Added stub dll.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "null.sys: Implement device ioctl/read/write functions.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset nvcuda-CUDA_Support
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -4522,9 +4476,6 @@ fi
|
||||
|
||||
# Patchset riched20-IText_Interface
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#18303] Support for ITextRange, ITextFont and ITextPara
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/riched20/richole.c, dlls/riched20/run.c, dlls/riched20/tests/richole.c
|
||||
# |
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 5dac9e4ab5b7df2ab94e2338b425b83249515169 Mon Sep 17 00:00:00 2001
|
||||
From 366724a8595982b9d1159509188899afb227ecf5 Mon Sep 17 00:00:00 2001
|
||||
From: Jactry Zeng <wine@jactry.com>
|
||||
Date: Fri, 8 Aug 2014 21:32:57 +0800
|
||||
Subject: riched20: Implement IText{Selection, Range}::Set{Start, End}.
|
||||
@ -9,10 +9,10 @@ Subject: riched20: Implement IText{Selection, Range}::Set{Start, End}.
|
||||
2 files changed, 177 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
|
||||
index c9c75b8..64579a6 100644
|
||||
index 3a4eb3b..f93f086 100644
|
||||
--- a/dlls/riched20/richole.c
|
||||
+++ b/dlls/riched20/richole.c
|
||||
@@ -3233,14 +3233,33 @@ static HRESULT WINAPI ITextSelection_fnGetStart(ITextSelection *me, LONG *pcpFir
|
||||
@@ -3270,14 +3270,33 @@ static HRESULT WINAPI ITextSelection_fnGetStart(ITextSelection *me, LONG *pcpFir
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ index c9c75b8..64579a6 100644
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ITextSelection_fnGetEnd(ITextSelection *me, LONG *pcpLim)
|
||||
@@ -3257,14 +3276,33 @@ static HRESULT WINAPI ITextSelection_fnGetEnd(ITextSelection *me, LONG *pcpLim)
|
||||
@@ -3294,14 +3313,33 @@ static HRESULT WINAPI ITextSelection_fnGetEnd(ITextSelection *me, LONG *pcpLim)
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@ -85,11 +85,11 @@ index c9c75b8..64579a6 100644
|
||||
|
||||
static HRESULT WINAPI ITextSelection_fnGetFont(ITextSelection *me, ITextFont **font)
|
||||
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
|
||||
index a47d31f..a553519 100644
|
||||
index 5472ce1..e654653 100644
|
||||
--- a/dlls/riched20/tests/richole.c
|
||||
+++ b/dlls/riched20/tests/richole.c
|
||||
@@ -1415,6 +1415,137 @@ todo_wine {
|
||||
release_interfaces(&hwnd, &reOle, &doc, NULL);
|
||||
@@ -1570,6 +1570,137 @@ static void test_ITextFont(void)
|
||||
ITextFont_Release(font);
|
||||
}
|
||||
|
||||
+static void test_ITextRange_SetStart(void)
|
||||
@ -226,7 +226,7 @@ index a47d31f..a553519 100644
|
||||
START_TEST(richole)
|
||||
{
|
||||
/* Must explicitly LoadLibrary(). The test has no references to functions in
|
||||
@@ -1427,12 +1558,16 @@ START_TEST(richole)
|
||||
@@ -1582,12 +1713,16 @@ START_TEST(richole)
|
||||
test_ITextSelection_GetText();
|
||||
test_ITextSelection_GetChar();
|
||||
test_ITextSelection_GetStart_GetEnd();
|
||||
|
@ -1,19 +1,19 @@
|
||||
From cc36959dd99ee77266b9b93d759934124457abc3 Mon Sep 17 00:00:00 2001
|
||||
From 815bce1478d691786f20e5f1e432e492e866464f 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 | 220 +++++++++++++++++++++++++++++++++++++++++-
|
||||
dlls/riched20/tests/richole.c | 93 ++++++++++++++++++
|
||||
2 files changed, 312 insertions(+), 1 deletion(-)
|
||||
dlls/riched20/richole.c | 207 ++++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/riched20/tests/richole.c | 93 +++++++++++++++++++
|
||||
2 files changed, 300 insertions(+)
|
||||
|
||||
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
|
||||
index 64579a6..71fb311 100644
|
||||
index f93f086..b304fb3 100644
|
||||
--- a/dlls/riched20/richole.c
|
||||
+++ b/dlls/riched20/richole.c
|
||||
@@ -1749,9 +1749,21 @@ static ULONG WINAPI TextFont_Release(ITextFont *iface)
|
||||
@@ -1761,9 +1761,21 @@ static ULONG WINAPI TextFont_Release(ITextFont *iface)
|
||||
return ref;
|
||||
}
|
||||
|
||||
@ -35,7 +35,7 @@ index 64579a6..71fb311 100644
|
||||
*pctinfo = 0;
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
@@ -1759,14 +1771,24 @@ static HRESULT WINAPI TextFont_GetTypeInfoCount(ITextFont *iface, UINT *pctinfo)
|
||||
@@ -1771,14 +1783,24 @@ static HRESULT WINAPI TextFont_GetTypeInfoCount(ITextFont *iface, UINT *pctinfo)
|
||||
static HRESULT WINAPI TextFont_GetTypeInfo(ITextFont *iface, UINT iTInfo, LCID lcid,
|
||||
ITypeInfo **ppTInfo)
|
||||
{
|
||||
@ -60,7 +60,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1781,7 +1803,12 @@ static HRESULT WINAPI TextFont_Invoke(
|
||||
@@ -1793,7 +1815,12 @@ static HRESULT WINAPI TextFont_Invoke(
|
||||
EXCEPINFO *pExcepInfo,
|
||||
UINT *puArgErr)
|
||||
{
|
||||
@ -73,7 +73,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1789,6 +1816,10 @@ static HRESULT WINAPI TextFont_GetDuplicate(ITextFont *iface, ITextFont **ret)
|
||||
@@ -1801,6 +1828,10 @@ static HRESULT WINAPI TextFont_GetDuplicate(ITextFont *iface, ITextFont **ret)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, ret);
|
||||
@ -84,7 +84,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1796,6 +1827,10 @@ static HRESULT WINAPI TextFont_SetDuplicate(ITextFont *iface, ITextFont *pFont)
|
||||
@@ -1808,6 +1839,10 @@ static HRESULT WINAPI TextFont_SetDuplicate(ITextFont *iface, ITextFont *pFont)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, pFont);
|
||||
@ -95,7 +95,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1803,6 +1838,10 @@ static HRESULT WINAPI TextFont_CanChange(ITextFont *iface, LONG *ret)
|
||||
@@ -1815,6 +1850,10 @@ static HRESULT WINAPI TextFont_CanChange(ITextFont *iface, LONG *ret)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, ret);
|
||||
@ -106,7 +106,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1810,6 +1849,10 @@ static HRESULT WINAPI TextFont_IsEqual(ITextFont *iface, ITextFont *font, LONG *
|
||||
@@ -1822,6 +1861,10 @@ static HRESULT WINAPI TextFont_IsEqual(ITextFont *iface, ITextFont *font, LONG *
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, ret);
|
||||
@ -117,7 +117,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1817,6 +1860,10 @@ static HRESULT WINAPI TextFont_Reset(ITextFont *iface, LONG value)
|
||||
@@ -1829,6 +1872,10 @@ static HRESULT WINAPI TextFont_Reset(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p): stub\n", This);
|
||||
@ -128,7 +128,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1824,6 +1871,10 @@ static HRESULT WINAPI TextFont_GetStyle(ITextFont *iface, LONG *value)
|
||||
@@ -1836,6 +1883,10 @@ static HRESULT WINAPI TextFont_GetStyle(ITextFont *iface, LONG *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
@ -139,7 +139,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1831,6 +1882,10 @@ static HRESULT WINAPI TextFont_SetStyle(ITextFont *iface, LONG value)
|
||||
@@ -1843,6 +1894,10 @@ static HRESULT WINAPI TextFont_SetStyle(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -150,7 +150,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1838,6 +1893,10 @@ static HRESULT WINAPI TextFont_GetAllCaps(ITextFont *iface, LONG *value)
|
||||
@@ -1850,6 +1905,10 @@ static HRESULT WINAPI TextFont_GetAllCaps(ITextFont *iface, LONG *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
@ -161,7 +161,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1845,6 +1904,10 @@ static HRESULT WINAPI TextFont_SetAllCaps(ITextFont *iface, LONG value)
|
||||
@@ -1857,6 +1916,10 @@ static HRESULT WINAPI TextFont_SetAllCaps(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -172,7 +172,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1852,6 +1915,10 @@ static HRESULT WINAPI TextFont_GetAnimation(ITextFont *iface, LONG *value)
|
||||
@@ -1864,6 +1927,10 @@ static HRESULT WINAPI TextFont_GetAnimation(ITextFont *iface, LONG *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
@ -183,7 +183,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1859,6 +1926,10 @@ static HRESULT WINAPI TextFont_SetAnimation(ITextFont *iface, LONG value)
|
||||
@@ -1871,6 +1938,10 @@ static HRESULT WINAPI TextFont_SetAnimation(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -194,7 +194,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1866,6 +1937,10 @@ static HRESULT WINAPI TextFont_GetBackColor(ITextFont *iface, LONG *value)
|
||||
@@ -1878,6 +1949,10 @@ static HRESULT WINAPI TextFont_GetBackColor(ITextFont *iface, LONG *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
@ -205,7 +205,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1873,6 +1948,10 @@ static HRESULT WINAPI TextFont_SetBackColor(ITextFont *iface, LONG value)
|
||||
@@ -1885,6 +1960,10 @@ static HRESULT WINAPI TextFont_SetBackColor(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -216,7 +216,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1887,6 +1966,10 @@ static HRESULT WINAPI TextFont_SetBold(ITextFont *iface, LONG value)
|
||||
@@ -1899,6 +1978,10 @@ static HRESULT WINAPI TextFont_SetBold(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -227,7 +227,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1894,6 +1977,10 @@ static HRESULT WINAPI TextFont_GetEmboss(ITextFont *iface, LONG *value)
|
||||
@@ -1906,6 +1989,10 @@ static HRESULT WINAPI TextFont_GetEmboss(ITextFont *iface, LONG *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
@ -238,7 +238,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1901,6 +1988,10 @@ static HRESULT WINAPI TextFont_SetEmboss(ITextFont *iface, LONG value)
|
||||
@@ -1913,6 +2000,10 @@ static HRESULT WINAPI TextFont_SetEmboss(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -249,7 +249,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1915,6 +2006,10 @@ static HRESULT WINAPI TextFont_SetForeColor(ITextFont *iface, LONG value)
|
||||
@@ -1927,6 +2018,10 @@ static HRESULT WINAPI TextFont_SetForeColor(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -260,7 +260,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1922,6 +2017,10 @@ static HRESULT WINAPI TextFont_GetHidden(ITextFont *iface, LONG *value)
|
||||
@@ -1934,6 +2029,10 @@ static HRESULT WINAPI TextFont_GetHidden(ITextFont *iface, LONG *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
@ -271,7 +271,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1929,6 +2028,10 @@ static HRESULT WINAPI TextFont_SetHidden(ITextFont *iface, LONG value)
|
||||
@@ -1941,6 +2040,10 @@ static HRESULT WINAPI TextFont_SetHidden(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -282,7 +282,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1936,6 +2039,10 @@ static HRESULT WINAPI TextFont_GetEngrave(ITextFont *iface, LONG *value)
|
||||
@@ -1948,6 +2051,10 @@ static HRESULT WINAPI TextFont_GetEngrave(ITextFont *iface, LONG *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
@ -293,7 +293,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1943,6 +2050,10 @@ static HRESULT WINAPI TextFont_SetEngrave(ITextFont *iface, LONG value)
|
||||
@@ -1955,6 +2062,10 @@ static HRESULT WINAPI TextFont_SetEngrave(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -304,7 +304,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1957,6 +2068,10 @@ static HRESULT WINAPI TextFont_SetItalic(ITextFont *iface, LONG value)
|
||||
@@ -1969,6 +2080,10 @@ static HRESULT WINAPI TextFont_SetItalic(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -315,7 +315,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1964,6 +2079,10 @@ static HRESULT WINAPI TextFont_GetKerning(ITextFont *iface, FLOAT *value)
|
||||
@@ -1976,6 +2091,10 @@ static HRESULT WINAPI TextFont_GetKerning(ITextFont *iface, FLOAT *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
@ -326,7 +326,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1971,6 +2090,10 @@ static HRESULT WINAPI TextFont_SetKerning(ITextFont *iface, FLOAT value)
|
||||
@@ -1983,6 +2102,10 @@ static HRESULT WINAPI TextFont_SetKerning(ITextFont *iface, FLOAT value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%.2f): stub\n", This, value);
|
||||
@ -337,7 +337,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -1985,20 +2108,39 @@ static HRESULT WINAPI TextFont_SetLanguageID(ITextFont *iface, LONG value)
|
||||
@@ -1997,6 +2120,10 @@ static HRESULT WINAPI TextFont_SetLanguageID(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -348,26 +348,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI TextFont_GetName(ITextFont *iface, BSTR *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
+ static const WCHAR font[] = {'S', 'y', 's', 't', 'e', 'm', 0};
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
- return E_NOTIMPL;
|
||||
+
|
||||
+ if (!value)
|
||||
+ return E_INVALIDARG;
|
||||
+
|
||||
+ *value = NULL;
|
||||
+
|
||||
+ if (!font_get_reole(This))
|
||||
+ return CO_E_RELEASED;
|
||||
+
|
||||
+ *value = SysAllocString(font);
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI TextFont_SetName(ITextFont *iface, BSTR value)
|
||||
@@ -2034,6 +2161,10 @@ static HRESULT WINAPI TextFont_SetName(ITextFont *iface, BSTR value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%s): stub\n", This, debugstr_w(value));
|
||||
@ -378,7 +359,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2006,6 +2148,10 @@ static HRESULT WINAPI TextFont_GetOutline(ITextFont *iface, LONG *value)
|
||||
@@ -2041,6 +2172,10 @@ static HRESULT WINAPI TextFont_GetOutline(ITextFont *iface, LONG *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
@ -389,7 +370,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2013,6 +2159,10 @@ static HRESULT WINAPI TextFont_SetOutline(ITextFont *iface, LONG value)
|
||||
@@ -2048,6 +2183,10 @@ static HRESULT WINAPI TextFont_SetOutline(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -400,7 +381,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2020,6 +2170,10 @@ static HRESULT WINAPI TextFont_GetPosition(ITextFont *iface, FLOAT *value)
|
||||
@@ -2055,6 +2194,10 @@ static HRESULT WINAPI TextFont_GetPosition(ITextFont *iface, FLOAT *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
@ -411,7 +392,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2027,6 +2181,10 @@ static HRESULT WINAPI TextFont_SetPosition(ITextFont *iface, FLOAT value)
|
||||
@@ -2062,6 +2205,10 @@ static HRESULT WINAPI TextFont_SetPosition(ITextFont *iface, FLOAT value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%.2f): stub\n", This, value);
|
||||
@ -422,7 +403,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2034,6 +2192,10 @@ static HRESULT WINAPI TextFont_GetProtected(ITextFont *iface, LONG *value)
|
||||
@@ -2069,6 +2216,10 @@ static HRESULT WINAPI TextFont_GetProtected(ITextFont *iface, LONG *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
@ -433,7 +414,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2041,6 +2203,10 @@ static HRESULT WINAPI TextFont_SetProtected(ITextFont *iface, LONG value)
|
||||
@@ -2076,6 +2227,10 @@ static HRESULT WINAPI TextFont_SetProtected(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -444,7 +425,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2048,6 +2214,10 @@ static HRESULT WINAPI TextFont_GetShadow(ITextFont *iface, LONG *value)
|
||||
@@ -2083,6 +2238,10 @@ static HRESULT WINAPI TextFont_GetShadow(ITextFont *iface, LONG *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
@ -455,7 +436,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2055,6 +2225,10 @@ static HRESULT WINAPI TextFont_SetShadow(ITextFont *iface, LONG value)
|
||||
@@ -2090,6 +2249,10 @@ static HRESULT WINAPI TextFont_SetShadow(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -466,7 +447,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2069,6 +2243,10 @@ static HRESULT WINAPI TextFont_SetSize(ITextFont *iface, FLOAT value)
|
||||
@@ -2104,6 +2267,10 @@ static HRESULT WINAPI TextFont_SetSize(ITextFont *iface, FLOAT value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%.2f): stub\n", This, value);
|
||||
@ -477,7 +458,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2076,6 +2254,10 @@ static HRESULT WINAPI TextFont_GetSmallCaps(ITextFont *iface, LONG *value)
|
||||
@@ -2111,6 +2278,10 @@ static HRESULT WINAPI TextFont_GetSmallCaps(ITextFont *iface, LONG *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
@ -488,7 +469,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2083,6 +2265,10 @@ static HRESULT WINAPI TextFont_SetSmallCaps(ITextFont *iface, LONG value)
|
||||
@@ -2118,6 +2289,10 @@ static HRESULT WINAPI TextFont_SetSmallCaps(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -499,7 +480,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2090,6 +2276,10 @@ static HRESULT WINAPI TextFont_GetSpacing(ITextFont *iface, FLOAT *value)
|
||||
@@ -2125,6 +2300,10 @@ static HRESULT WINAPI TextFont_GetSpacing(ITextFont *iface, FLOAT *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
@ -510,7 +491,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2097,6 +2287,10 @@ static HRESULT WINAPI TextFont_SetSpacing(ITextFont *iface, FLOAT value)
|
||||
@@ -2132,6 +2311,10 @@ static HRESULT WINAPI TextFont_SetSpacing(ITextFont *iface, FLOAT value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%.2f): stub\n", This, value);
|
||||
@ -521,7 +502,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2111,6 +2305,10 @@ static HRESULT WINAPI TextFont_SetStrikeThrough(ITextFont *iface, LONG value)
|
||||
@@ -2146,6 +2329,10 @@ static HRESULT WINAPI TextFont_SetStrikeThrough(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -532,7 +513,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2125,6 +2323,10 @@ static HRESULT WINAPI TextFont_SetSubscript(ITextFont *iface, LONG value)
|
||||
@@ -2160,6 +2347,10 @@ static HRESULT WINAPI TextFont_SetSubscript(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -543,7 +524,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2139,6 +2341,10 @@ static HRESULT WINAPI TextFont_SetSuperscript(ITextFont *iface, LONG value)
|
||||
@@ -2174,6 +2365,10 @@ static HRESULT WINAPI TextFont_SetSuperscript(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -554,7 +535,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2153,6 +2359,10 @@ static HRESULT WINAPI TextFont_SetUnderline(ITextFont *iface, LONG value)
|
||||
@@ -2188,6 +2383,10 @@ static HRESULT WINAPI TextFont_SetUnderline(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -565,7 +546,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2160,6 +2370,10 @@ static HRESULT WINAPI TextFont_GetWeight(ITextFont *iface, LONG *value)
|
||||
@@ -2195,6 +2394,10 @@ static HRESULT WINAPI TextFont_GetWeight(ITextFont *iface, LONG *value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%p): stub\n", This, value);
|
||||
@ -576,7 +557,7 @@ index 64579a6..71fb311 100644
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@@ -2167,6 +2381,10 @@ static HRESULT WINAPI TextFont_SetWeight(ITextFont *iface, LONG value)
|
||||
@@ -2202,6 +2405,10 @@ static HRESULT WINAPI TextFont_SetWeight(ITextFont *iface, LONG value)
|
||||
{
|
||||
ITextFontImpl *This = impl_from_ITextFont(iface);
|
||||
FIXME("(%p)->(%d): stub\n", This, value);
|
||||
@ -588,10 +569,10 @@ index 64579a6..71fb311 100644
|
||||
}
|
||||
|
||||
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
|
||||
index a553519..40577b3 100644
|
||||
index e654653..6bd3790 100644
|
||||
--- a/dlls/riched20/tests/richole.c
|
||||
+++ b/dlls/riched20/tests/richole.c
|
||||
@@ -1546,6 +1546,97 @@ static void test_ITextSelection_SetEnd(void)
|
||||
@@ -1701,6 +1701,97 @@ static void test_ITextSelection_SetEnd(void)
|
||||
release_interfaces(&w, &reOle, &txtDoc, &txtSel);
|
||||
}
|
||||
|
||||
@ -689,7 +670,7 @@ index a553519..40577b3 100644
|
||||
START_TEST(richole)
|
||||
{
|
||||
/* Must explicitly LoadLibrary(). The test has no references to functions in
|
||||
@@ -1561,6 +1652,7 @@ START_TEST(richole)
|
||||
@@ -1716,6 +1807,7 @@ START_TEST(richole)
|
||||
test_ITextSelection_SetStart();
|
||||
test_ITextSelection_SetEnd();
|
||||
test_ITextSelection_Collapse();
|
||||
@ -697,7 +678,7 @@ index a553519..40577b3 100644
|
||||
test_ITextDocument_Range();
|
||||
test_ITextRange_GetChar();
|
||||
test_ITextRange_GetStart_GetEnd();
|
||||
@@ -1568,6 +1660,7 @@ START_TEST(richole)
|
||||
@@ -1723,6 +1815,7 @@ START_TEST(richole)
|
||||
test_ITextRange_Collapse();
|
||||
test_ITextRange_SetStart();
|
||||
test_ITextRange_SetEnd();
|
||||
|
@ -1,4 +1,4 @@
|
||||
From b124ce2417572b6e7147bbfd8c931885886d37cb Mon Sep 17 00:00:00 2001
|
||||
From 94fce2253318d11cb2cdc7681d639c795b816b27 Mon Sep 17 00:00:00 2001
|
||||
From: Jactry Zeng <wine@jactry.com>
|
||||
Date: Wed, 13 Aug 2014 15:40:11 +0800
|
||||
Subject: riched20: Implement ITextRange::GetText.
|
||||
@ -9,10 +9,10 @@ Subject: riched20: Implement ITextRange::GetText.
|
||||
2 files changed, 67 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
|
||||
index f664616..4aee91f 100644
|
||||
index ee9f75c..3813c4f 100644
|
||||
--- a/dlls/riched20/richole.c
|
||||
+++ b/dlls/riched20/richole.c
|
||||
@@ -1033,14 +1033,40 @@ static HRESULT WINAPI ITextRange_fnInvoke(ITextRange *me, DISPID dispIdMember, R
|
||||
@@ -1045,14 +1045,40 @@ static HRESULT WINAPI ITextRange_fnInvoke(ITextRange *me, DISPID dispIdMember, R
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@ -55,16 +55,16 @@ index f664616..4aee91f 100644
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ITextRange_fnSetText(ITextRange *me, BSTR bstr)
|
||||
@@ -3565,8 +3591,6 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr)
|
||||
@@ -3589,8 +3615,6 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr)
|
||||
{
|
||||
ITextSelectionImpl *This = impl_from_ITextSelection(me);
|
||||
ME_Cursor *start = NULL, *end = NULL;
|
||||
- int nChars, endOfs;
|
||||
- BOOL bEOP;
|
||||
|
||||
if (!This->reOle)
|
||||
return CO_E_RELEASED;
|
||||
@@ -3575,23 +3599,7 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr)
|
||||
TRACE("(%p)->(%p)\n", This, pbstr);
|
||||
|
||||
@@ -3601,23 +3625,7 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr)
|
||||
return E_INVALIDARG;
|
||||
|
||||
ME_GetSelection(This->reOle->editor, &start, &end);
|
||||
@ -90,10 +90,10 @@ index f664616..4aee91f 100644
|
||||
|
||||
static HRESULT WINAPI ITextSelection_fnSetText(ITextSelection *me, BSTR bstr)
|
||||
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
|
||||
index 065c86c..44b1f4c 100644
|
||||
index 44e6051..583b195 100644
|
||||
--- a/dlls/riched20/tests/richole.c
|
||||
+++ b/dlls/riched20/tests/richole.c
|
||||
@@ -1683,6 +1683,43 @@ static void test_ITextRange_GetPara(void)
|
||||
@@ -1838,6 +1838,43 @@ static void test_ITextRange_GetPara(void)
|
||||
ITextPara_Release(txtPara);
|
||||
}
|
||||
|
||||
@ -137,7 +137,7 @@ index 065c86c..44b1f4c 100644
|
||||
START_TEST(richole)
|
||||
{
|
||||
/* Must explicitly LoadLibrary(). The test has no references to functions in
|
||||
@@ -1708,6 +1745,7 @@ START_TEST(richole)
|
||||
@@ -1863,6 +1900,7 @@ START_TEST(richole)
|
||||
test_ITextRange_SetEnd();
|
||||
test_ITextRange_GetFont();
|
||||
test_ITextRange_GetPara();
|
||||
|
@ -1,3 +1,3 @@
|
||||
# Fixes: [12458] Support for ITextDocument_fnRange function
|
||||
Fixes: [18303] Support for ITextRange, ITextFont and ITextPara
|
||||
# Fixes: [18303] Support for ITextRange, ITextFont and ITextPara
|
||||
Fixes: Adobe Reader needs ITextSelection_fnGetDuplicate implementation
|
||||
|
@ -1,4 +1,4 @@
|
||||
From d85bdf641474a9d1bc01fc6d5262077ba3186c59 Mon Sep 17 00:00:00 2001
|
||||
From e56e42a0193c98b3550855edf9f0015e1efc29ca Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 19 Mar 2015 01:22:34 +0100
|
||||
Subject: server: Implement support for global and local shared memory blocks
|
||||
@ -158,10 +158,10 @@ index d573d1f..695389a 100644
|
||||
/* macros for server requests */
|
||||
|
||||
diff --git a/include/winternl.h b/include/winternl.h
|
||||
index 9231468..3ecaef7 100644
|
||||
index a84c6d4..9128ffd 100644
|
||||
--- a/include/winternl.h
|
||||
+++ b/include/winternl.h
|
||||
@@ -353,7 +353,7 @@ typedef struct _TEB
|
||||
@@ -366,7 +366,7 @@ typedef struct _TEB
|
||||
PVOID Spare4; /* f7c/1750 */
|
||||
PVOID ReservedForOle; /* f80/1758 */
|
||||
ULONG WaitingOnLoaderLock; /* f84/1760 */
|
||||
@ -171,10 +171,10 @@ index 9231468..3ecaef7 100644
|
||||
ULONG ImpersonationLocale; /* f98/1788 */
|
||||
ULONG IsImpersonating; /* f9c/178c */
|
||||
diff --git a/server/fd.c b/server/fd.c
|
||||
index 1253b3d..08c052d 100644
|
||||
index f0a52ad..791a36f 100644
|
||||
--- a/server/fd.c
|
||||
+++ b/server/fd.c
|
||||
@@ -2328,6 +2328,33 @@ DECL_HANDLER(write)
|
||||
@@ -2323,6 +2323,33 @@ DECL_HANDLER(write)
|
||||
}
|
||||
}
|
||||
|
||||
@ -209,12 +209,12 @@ index 1253b3d..08c052d 100644
|
||||
DECL_HANDLER(ioctl)
|
||||
{
|
||||
diff --git a/server/file.h b/server/file.h
|
||||
index 603b686..c0debbd 100644
|
||||
index b5e0ca7..7ffef6f 100644
|
||||
--- a/server/file.h
|
||||
+++ b/server/file.h
|
||||
@@ -138,6 +138,14 @@ extern obj_handle_t open_mapping_file( struct process *process, struct mapping *
|
||||
extern struct mapping *grab_mapping_unless_removable( struct mapping *mapping );
|
||||
extern int get_page_size(void);
|
||||
@@ -145,6 +145,14 @@ extern void create_mailslot_device( struct directory *root, const struct unicode
|
||||
extern struct device *create_unix_device( struct directory *root, const struct unicode_str *name,
|
||||
const char *unix_path );
|
||||
|
||||
+/* shared memory functions */
|
||||
+
|
||||
|
@ -9605,7 +9605,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
|
||||
--- a/dlls/wined3d/directx.c
|
||||
+++ b/dlls/wined3d/directx.c
|
||||
@@ -5323,9 +5323,15 @@
|
||||
@@ -5325,9 +5325,15 @@
|
||||
DebugBreak();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user