Rebase against 9586d3b2567e6b4a2270caeacf39796c168351c0.

This commit is contained in:
Sebastian Lackner 2015-05-21 18:47:14 +02:00
parent b2297b41c3
commit ca8ffcd619
20 changed files with 127 additions and 609 deletions

View File

@ -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
View File

@ -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

View File

@ -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

View File

@ -1 +0,0 @@
Fixes: Add stub for advapi32.ImpersonateAnonymousToken

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1 +0,0 @@
Fixes: [38107] Implement null.sys to provide \Device\Null

View File

@ -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

View File

@ -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

View File

@ -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])

View File

@ -1,3 +1,2 @@
Fixes: Basic support for CUDA
Fixes: [37664] MediaCoder needs CUDA for video encoding
Depends: null-Null_Device

View File

@ -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
# |

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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

View File

@ -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 */
+

View File

@ -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();
}