Compare commits

..

20 Commits

Author SHA1 Message Date
Alistair Leslie-Hughes
e004127f41 Release v10.14 2025-08-30 10:40:08 +10:00
Alistair Leslie-Hughes
5cba568c93 Updated vkd3d-latest patchset 2025-08-30 10:30:19 +10:00
Elizabeth Figura
e2610f8a45 Rebase against 5fd9826b8cdcb9130b0bf6943a2a5cd7c7499370. 2025-08-28 16:19:59 -05:00
Alistair Leslie-Hughes
e250393ba4 Rebase against 4a7d6576f0a8507097e3894a579061b568db6ac6. 2025-08-28 07:33:47 +10:00
Alistair Leslie-Hughes
ce66dea197 Rebase against 7dcdd7a6549793e8a6469816a5c25226e2d73e9c. 2025-08-24 09:05:15 +10:00
Alistair Leslie-Hughes
7cd95e9f79 Updated vkd3d-latest patchset
Squashed.

Updated to vkd3d 1.17+
2025-08-22 08:09:57 +10:00
Alistair Leslie-Hughes
c605cf204a Rebase against 288a40d05c8cddf62d0b12524a90d2d4f5ce114d. 2025-08-20 07:53:40 +10:00
Alistair Leslie-Hughes
a8f798fc3c Rebase against 2e4974af42a96dfcd426be5e40faecd9853401d1. 2025-08-19 07:45:52 +10:00
Alistair Leslie-Hughes
a8a6d7b0ed Release v10.13 2025-08-16 13:28:15 +10:00
Alistair Leslie-Hughes
f09ef9a3ca Added oleaut32_typelib_dispatch patchset 2025-08-16 13:27:01 +10:00
Alistair Leslie-Hughes
a877872a9a Updated vkd3d-latest patchset 2025-08-15 08:07:30 +10:00
Alistair Leslie-Hughes
e2390e2637 Updated vkd3d-latest patchset 2025-08-07 07:20:57 +10:00
Alistair Leslie-Hughes
999c6a11d6 Updated vkd3d-latest patchset 2025-08-01 07:19:16 +10:00
Alistair Leslie-Hughes
dde6218e4e Updated vkd3d-latest patchset 2025-07-30 08:46:43 +10:00
Alistair Leslie-Hughes
6336965159 Updated vkd3d-latest patchset 2025-07-24 07:31:47 +10:00
Alistair Leslie-Hughes
18084e82a7 Updated oleaut32-default-pic-size definition 2025-07-22 07:38:47 +10:00
Elizabeth Figura
89d2f58ebd Rebase against 7c7b3e43047a26789f1cbd5b3a04a37a3d08e2bd. 2025-07-21 16:35:21 -05:00
Elizabeth Figura
1db546cd7e Rebase against e44737278a4487cb8a75f81cedbe7393c5f716cc. 2025-07-18 18:05:19 -05:00
Elizabeth Figura
5e73b4fe8b Rebase against 182e2887b7c01d464f296bd7aa1335f147d8e514. 2025-07-18 17:50:06 -05:00
Alistair Leslie-Hughes
54295e8aaa Rebase against e1af2ae201c9853133ef3af1dafe15fe992fed92. 2025-07-16 12:47:09 +10:00
28 changed files with 4083 additions and 23582 deletions

View File

@@ -1,14 +1,14 @@
From 05dfee93e261b38037c370611ab0f63a2785a08c Mon Sep 17 00:00:00 2001
From 956a8db76088ebaa82e0093ab0e62ed1ed2aa69b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 27 Feb 2016 00:04:10 +0100
Subject: [PATCH] krnl386.exe16: Emulate GDT and LDT access.
---
dlls/krnl386.exe16/instr.c | 65 ++++++++++++++++++++++++++++++++------
1 file changed, 56 insertions(+), 9 deletions(-)
dlls/krnl386.exe16/instr.c | 57 +++++++++++++++++++++++++++++++++-----
1 file changed, 50 insertions(+), 7 deletions(-)
diff --git a/dlls/krnl386.exe16/instr.c b/dlls/krnl386.exe16/instr.c
index 666ef71363f..c6d05b7a0c9 100644
index 6af3ca30d59..bc05db6a719 100644
--- a/dlls/krnl386.exe16/instr.c
+++ b/dlls/krnl386.exe16/instr.c
@@ -60,7 +60,8 @@ static inline void *get_stack( CONTEXT *context )
@@ -21,7 +21,7 @@ index 666ef71363f..c6d05b7a0c9 100644
{
WORD limit;
BYTE *base;
@@ -68,19 +69,41 @@ struct idtr
@@ -68,12 +69,30 @@ struct idtr
#pragma pack(pop)
static LDT_ENTRY idt[256];
@@ -32,43 +32,30 @@ index 666ef71363f..c6d05b7a0c9 100644
+static BOOL emulate_idtr( BYTE *data, unsigned int data_size, unsigned int *offset )
{
- struct idtr ret;
#if defined(__i386__) && defined(__GNUC__)
+ struct dtr ret;
__asm__( "sidtl %0" : "=m" (ret) );
- return ret;
+ *offset = data - ret.base;
+ return (*offset <= ret.limit + 1 - data_size);
+#else
+ return FALSE;
+#endif
+}
+
+static BOOL emulate_gdtr( BYTE *data, unsigned int data_size, unsigned int *offset )
+{
+#if defined(__i386__) && defined(__GNUC__)
+ struct dtr ret;
+ __asm__( "sgdtl %0" : "=m" (ret) );
+ *offset = data - ret.base;
+ return (*offset <= ret.limit + 1 - data_size);
#else
- ret.base = (BYTE *)idt;
- ret.limit = sizeof(idt) - 1;
+ return FALSE;
#endif
- return ret;
}
+}
+
+static inline WORD get_ldt(void)
+{
+ WORD seg = 1;
+#if defined(__i386__) && defined(__GNUC__)
+ __asm__( "sldt %0" : "=m" (seg) );
+#endif
+ return seg;
+}
}
/***********************************************************************
* INSTR_ReplaceSelector
@@ -705,10 +728,9 @@ DWORD __wine_emulate_instruction( EXCEPTION_RECORD *rec, CONTEXT *context )
@@ -700,10 +719,9 @@ DWORD __wine_emulate_instruction( EXCEPTION_RECORD *rec, CONTEXT *context )
BYTE *data = INSTR_GetOperandAddr(context, instr + 1, long_addr,
segprefix, &len);
unsigned int data_size = (*instr == 0x8b) ? (long_op ? 4 : 2) : 1;
@@ -81,7 +68,7 @@ index 666ef71363f..c6d05b7a0c9 100644
{
idt[1].LimitLow = 0x100; /* FIXME */
idt[2].LimitLow = 0x11E; /* FIXME */
@@ -722,6 +744,31 @@ DWORD __wine_emulate_instruction( EXCEPTION_RECORD *rec, CONTEXT *context )
@@ -717,6 +735,31 @@ DWORD __wine_emulate_instruction( EXCEPTION_RECORD *rec, CONTEXT *context )
context->Eip += prefixlen + len + 1;
return ExceptionContinueExecution;
}

View File

@@ -1,50 +1,26 @@
From d1d83243555801226876f651b6f3304d3e595ae4 Mon Sep 17 00:00:00 2001
From 684fb32612284520e8e4b61cb015f546c8b5d218 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 1 Jul 2019 09:58:55 +1000
Subject: [PATCH] loader: Add Keyboard Layouts registry enteries.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
loader/wine.inf.in | 209 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 209 insertions(+)
loader/wine.inf.in | 206 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 206 insertions(+)
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
index d5f943861a8..b07843ff237 100644
index f204c458511..62cc028a0d0 100644
--- a/loader/wine.inf.in
+++ b/loader/wine.inf.in
@@ -63,6 +63,7 @@ AddReg=\
Debugger,\
@@ -64,6 +64,7 @@ AddReg=\
DirectX,\
Fonts,\
LicenseInformation,\
+ KeyboardLayouts,\
MCI,\
Misc,\
OLE,\
@@ -86,6 +87,7 @@ AddReg=\
Debugger,\
DirectX,\
Fonts,\
+ KeyboardLayouts,\
MCI,\
Misc,\
OLE,\
@@ -111,6 +113,7 @@ AddReg=\
Debugger,\
DirectX,\
Fonts,\
+ KeyboardLayouts,\
MCI,\
Misc,\
OLE,\
@@ -156,6 +159,7 @@ AddReg=\
CurrentVersionWow64.ntx86,\
Debugger,\
DirectX,\
+ KeyboardLayouts,\
MCI,\
Misc,\
Tapi,\
@@ -628,6 +632,211 @@ HKCU,Software\Microsoft\Windows\Shell\Associations\UrlAssociations\ftp\UserChoic
@@ -632,6 +633,211 @@ HKCU,Software\Microsoft\Windows\Shell\Associations\UrlAssociations\ftp\UserChoic
HKCU,Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice,"ProgId",,"http"
HKCU,Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice,"ProgId",,"https"
@@ -257,5 +233,5 @@ index d5f943861a8..b07843ff237 100644
HKLM,"Software\Microsoft\OLE","EnableDCOM",,"Y"
HKLM,"Software\Microsoft\OLE","EnableRemoteConnect",,"N"
--
2.39.2
2.50.1

View File

@@ -1,4 +1,4 @@
From e27b26f100bedf8f8374333ce9026fd96ed9102b Mon Sep 17 00:00:00 2001
From d529517d43a4747ab61dde9c6eff4a14a261d678 Mon Sep 17 00:00:00 2001
From: Torge Matthies <tmatthies@codeweavers.com>
Date: Fri, 25 Oct 2024 10:47:30 +0200
Subject: [PATCH] mf/tests: Add network bytestream tests.
@@ -8,10 +8,10 @@ Subject: [PATCH] mf/tests: Add network bytestream tests.
1 file changed, 347 insertions(+)
diff --git a/dlls/mf/tests/mf.c b/dlls/mf/tests/mf.c
index 1070e9c1b2d..9d41b05fad3 100644
index a02f2859f91..db58a55d145 100644
--- a/dlls/mf/tests/mf.c
+++ b/dlls/mf/tests/mf.c
@@ -4908,6 +4908,7 @@ static void test_evr(void)
@@ -5190,6 +5190,7 @@ static void test_evr(void)
hr = IMFActivate_ActivateObject(activate, &IID_IMFMediaSink, (void **)&sink);
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
@@ -19,8 +19,8 @@ index 1070e9c1b2d..9d41b05fad3 100644
check_interface(sink, &IID_IMFMediaSinkPreroll, TRUE);
check_interface(sink, &IID_IMFVideoRenderer, TRUE);
@@ -7130,6 +7131,351 @@ static void test_media_session_thinning(void)
ok(hr == S_OK, "Shutdown failure, hr %#lx.\n", hr);
@@ -8040,6 +8041,351 @@ static void test_media_session_seek(void)
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
}
+static void test_network_bytestream(void)
@@ -371,14 +371,14 @@ index 1070e9c1b2d..9d41b05fad3 100644
START_TEST(mf)
{
init_functions();
@@ -7165,6 +7511,7 @@ START_TEST(mf)
@@ -8075,6 +8421,7 @@ START_TEST(mf)
test_media_session_Start();
test_MFEnumDeviceSources();
test_media_session_Close();
+ test_network_bytestream();
test_media_session_source_shutdown();
test_media_session_thinning();
}
test_media_session_seek();
--
2.47.2

View File

@@ -1,4 +1,4 @@
From 5b94720ada0b6f75ddff60cf19472a2685dbeaf0 Mon Sep 17 00:00:00 2001
From 6b96b85136b078f9779c07e5c0daecd7b1006e09 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Sun, 4 Sep 2022 13:19:16 -0600
Subject: [PATCH] ntdll: Allow reparse points to target the applicable Unix
@@ -9,14 +9,14 @@ the user to follow the symlink outside of Wine.
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
---
dlls/ntdll/unix/file.c | 118 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 118 insertions(+)
dlls/ntdll/unix/file.c | 90 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 90 insertions(+)
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index c54fd1119e1..33f26ceb89a 100644
index f83a30d36ed..234a0fa7397 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -3712,6 +3712,114 @@ static NTSTATUS get_reparse_target( UNICODE_STRING *nt_target, REPARSE_DATA_BUFF
@@ -3714,6 +3714,86 @@ static NTSTATUS get_reparse_target( UNICODE_STRING *nt_target, REPARSE_DATA_BUFF
}
@@ -24,12 +24,9 @@ index c54fd1119e1..33f26ceb89a 100644
+NTSTATUS create_reparse_target( int dirfd, const char *unix_src, int depth, const char *link_path,
+ REPARSE_DATA_BUFFER *buffer )
+{
+ ULONG nt_path_len = PATH_MAX, unix_path_len = PATH_MAX;
+ UNICODE_STRING nt_target, nt_full_target;
+ ULONG unix_target_len = PATH_MAX;
+ char *unix_path = NULL, *d;
+ char target_path[PATH_MAX];
+ OBJECT_ATTRIBUTES attr;
+ int nt_target_len;
+ char *unix_target;
+ int is_relative;
@@ -41,8 +38,6 @@ index c54fd1119e1..33f26ceb89a 100644
+ /* if the target path is relative then turn the source path into an NT path */
+ if (is_relative)
+ {
+ UNICODE_STRING nt_path_tmp;
+
+ /* resolve the NT path of the source */
+ unix_path = malloc( strlen(unix_src) + 2 );
+ if (!unix_path) return STATUS_NO_MEMORY;
@@ -55,17 +50,7 @@ index c54fd1119e1..33f26ceb89a 100644
+ if (status != STATUS_SUCCESS)
+ return status;
+ /* re-resolve the unix path for the source */
+ nt_path_tmp.Buffer = nt_path;
+ nt_path_tmp.Length = wcslen(nt_path) * sizeof(WCHAR);
+ InitializeObjectAttributes( &attr, &nt_path_tmp, 0, 0, NULL );
+ for (;;)
+ {
+ unix_path = malloc( unix_path_len );
+ if (!unix_path) return STATUS_NO_MEMORY;
+ status = wine_nt_to_unix_file_name( &attr, unix_path, &unix_path_len, FILE_OPEN_IF );
+ if (status != STATUS_BUFFER_TOO_SMALL) break;
+ free( unix_path );
+ }
+ status = ntdll_get_unix_file_name( nt_path, &unix_path, FILE_OPEN_IF );
+ }
+ else
+ {
@@ -85,21 +70,8 @@ index c54fd1119e1..33f26ceb89a 100644
+ wcscpy( nt_full_target.Buffer, nt_path );
+ free( nt_path );
+ memcpy( &nt_full_target.Buffer[wcslen(nt_full_target.Buffer)], nt_target.Buffer, nt_target_len );
+ nt_full_target.Length = wcslen( nt_full_target.Buffer ) * sizeof(WCHAR);
+ /* find the unix path for the target */
+ InitializeObjectAttributes( &attr, &nt_full_target, 0, 0, NULL );
+ for (;;)
+ {
+ unix_target = malloc( unix_target_len );
+ if (!unix_target)
+ {
+ status = STATUS_NO_MEMORY;
+ goto cleanup;
+ }
+ status = wine_nt_to_unix_file_name( &attr, unix_target, &unix_target_len, FILE_OPEN_IF );
+ if (status != STATUS_BUFFER_TOO_SMALL) break;
+ free( unix_target );
+ }
+ status = ntdll_get_unix_file_name( nt_full_target.Buffer, &unix_target, FILE_OPEN_IF );
+ /* create the symlink to the target at the last metadata location */
+ if (status == STATUS_SUCCESS || status == STATUS_NO_SUCH_FILE)
+ {
@@ -131,7 +103,7 @@ index c54fd1119e1..33f26ceb89a 100644
/*
* Retrieve the unix name corresponding to a file handle, remove that directory, and then symlink
* the requested directory to the location of the old directory.
@@ -3845,6 +3953,16 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
@@ -3847,6 +3927,16 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
link_dir_fd = fd;
}

View File

@@ -1,15 +1,15 @@
From 41e1d1b92a179f00f391919b47732e7eab9f8337 Mon Sep 17 00:00:00 2001
From efd73d7778d8c083337bda1ad162618841c368e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 30 Nov 2021 16:32:34 +0300
Subject: [PATCH] ntdll: Implement opening files through nt device paths.
---
dlls/ntdll/tests/file.c | 25 +++++++-
dlls/ntdll/unix/file.c | 134 +++++++++++++++++++++++++++++++++++++++-
2 files changed, 156 insertions(+), 3 deletions(-)
dlls/ntdll/unix/file.c | 135 +++++++++++++++++++++++++++++++++++++++-
2 files changed, 157 insertions(+), 3 deletions(-)
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
index 16489f4b29c..11769021b32 100644
index 25381caf313..7f048572e03 100644
--- a/dlls/ntdll/tests/file.c
+++ b/dlls/ntdll/tests/file.c
@@ -139,18 +139,22 @@ static void WINAPI apc( void *arg, IO_STATUS_BLOCK *iosb, ULONG reserved )
@@ -63,10 +63,10 @@ index 16489f4b29c..11769021b32 100644
static void open_file_test(void)
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index a39079efa97..c76d91cdf68 100644
index 542a314ea81..68587cbef11 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -4688,7 +4688,7 @@ static NTSTATUS nt_to_unix_file_name_no_root( FILE_OBJECT *fileobj, char **unix_
@@ -4593,7 +4593,7 @@ static NTSTATUS nt_to_unix_file_name_no_root( FILE_OBJECT *fileobj, char **unix_
/******************************************************************************
@@ -75,7 +75,7 @@ index a39079efa97..c76d91cdf68 100644
*
* Convert a file name from NT namespace to Unix namespace.
*
@@ -4696,7 +4696,7 @@ static NTSTATUS nt_to_unix_file_name_no_root( FILE_OBJECT *fileobj, char **unix_
@@ -4601,7 +4601,7 @@ static NTSTATUS nt_to_unix_file_name_no_root( FILE_OBJECT *fileobj, char **unix_
* element doesn't have to exist; in that case STATUS_NO_SUCH_FILE is
* returned, but the unix name is still filled in properly.
*/
@@ -84,7 +84,7 @@ index a39079efa97..c76d91cdf68 100644
{
HANDLE rootdir = attr->RootDirectory;
enum server_fd_type type;
@@ -4775,6 +4775,136 @@ reparse:
@@ -4680,6 +4680,137 @@ reparse:
}
@@ -218,8 +218,9 @@ index a39079efa97..c76d91cdf68 100644
+ return status;
+}
+
/******************************************************************************
* wine_nt_to_unix_file_name
+
/******************************************************************
* collapse_path
*
--
2.47.2

View File

@@ -1,2 +1,3 @@
Fixes: [37487] Resolve \\SystemRoot\\ prefix when opening files
Fixes: Implement opening files through nt device paths
Depends: ntdll-Junction_Points

View File

@@ -1,4 +1,4 @@
From e1f8622b3b787ca19ca1cfc149492c517e5833c4 Mon Sep 17 00:00:00 2001
From 034ac695e2f8f6bdd5f610f00b85e5bce08f86a4 Mon Sep 17 00:00:00 2001
From: Paul Gofman <pgofman@codeweavers.com>
Date: Tue, 20 Jun 2023 11:54:06 -0600
Subject: [PATCH] ntdll: Implement NtFlushKey().
@@ -10,7 +10,7 @@ Subject: [PATCH] ntdll: Implement NtFlushKey().
3 files changed, 247 insertions(+), 14 deletions(-)
diff --git a/dlls/ntdll/unix/registry.c b/dlls/ntdll/unix/registry.c
index 88ad7e569a1..492dd00d67a 100644
index e6b0d40c875..3b6bb9d817a 100644
--- a/dlls/ntdll/unix/registry.c
+++ b/dlls/ntdll/unix/registry.c
@@ -29,6 +29,8 @@
@@ -210,10 +210,10 @@ index 88ad7e569a1..492dd00d67a 100644
}
diff --git a/server/protocol.def b/server/protocol.def
index 1117e3b797a..910960285a0 100644
index 4e3e2885240..6bed72d380c 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -1834,6 +1834,18 @@ struct process_info
@@ -2023,6 +2023,18 @@ struct process_info
/* Flush a registry key */
@REQ(flush_key)
obj_handle_t hkey; /* handle to the key */
@@ -233,7 +233,7 @@ index 1117e3b797a..910960285a0 100644
diff --git a/server/registry.c b/server/registry.c
index ec1ca27be80..6ec1202cf7a 100644
index 73b75147850..dd6735fdce9 100644
--- a/server/registry.c
+++ b/server/registry.c
@@ -90,6 +90,7 @@ struct key
@@ -290,7 +290,7 @@ index ec1ca27be80..6ec1202cf7a 100644
}
/* go through all the notifications and send them if necessary */
@@ -1995,6 +2001,7 @@ void init_registry(void)
@@ -2009,6 +2015,7 @@ void init_registry(void)
/* save a registry branch to a file */
static void save_all_subkeys( struct key *key, FILE *f )
{
@@ -298,7 +298,7 @@ index ec1ca27be80..6ec1202cf7a 100644
fprintf( f, "WINE REGISTRY Version 2\n" );
fprintf( f, ";; All keys relative to " );
dump_path( key, NULL, f );
@@ -2179,7 +2186,7 @@ static int save_branch( struct key *key, const char *filename )
@@ -2193,7 +2200,7 @@ static int save_branch( struct key *key, const char *filename )
}
done:
@@ -307,8 +307,8 @@ index ec1ca27be80..6ec1202cf7a 100644
return ret;
}
@@ -2227,6 +2234,36 @@ static int is_wow64_thread( struct thread *thread )
return (is_machine_64bit( native_machine ) && !is_machine_64bit( thread->process->machine ));
@@ -2235,6 +2242,36 @@ void flush_registry(void)
if (fchdir( server_dir_fd ) == -1) fatal_error( "chdir to server dir: %s\n", strerror( errno ));
}
+/* find all the branches inside the specified key or the branch containing the key */
@@ -344,7 +344,7 @@ index ec1ca27be80..6ec1202cf7a 100644
/* create a registry key */
DECL_HANDLER(create_key)
@@ -2291,15 +2328,56 @@ DECL_HANDLER(delete_key)
@@ -2303,15 +2340,56 @@ DECL_HANDLER(delete_key)
}
}
@@ -406,5 +406,5 @@ index ec1ca27be80..6ec1202cf7a 100644
/* enumerate registry subkeys */
--
2.43.0
2.50.1

View File

@@ -1 +1,2 @@
Fixes: [20732] OleLoadPictureEx - First look for specific size if specified.
Fixes: [42273] Biet-O-Matic default icons in icon bar loaded in wrong size

View File

@@ -0,0 +1,42 @@
From b85edfd29c3ae8a67ddf079554cbf3ca11775a21 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 14 Jul 2025 10:15:14 +1000
Subject: [PATCH] msado15: ADOConnectionConstruction15::WrapDSOandSession semi
stub
---
dlls/msado15/connection.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/dlls/msado15/connection.c b/dlls/msado15/connection.c
index 568eb8b12c9..ded4a401b27 100644
--- a/dlls/msado15/connection.c
+++ b/dlls/msado15/connection.c
@@ -954,7 +954,23 @@ static HRESULT WINAPI adoconstruct_WrapDSOandSession(ADOConnectionConstruction15
{
struct connection *connection = impl_from_ADOConnectionConstruction15( iface );
FIXME("%p, %p, %p\n", connection, dso, session);
- return E_NOTIMPL;
+
+ if (connection->session)
+ IUnknown_Release( connection->session );
+ connection->session = session;
+ if (connection->session)
+ IUnknown_AddRef(connection->session);
+
+ if (connection->dso)
+ IDBInitialize_Release( connection->dso );
+ connection->dso = NULL;
+ if (dso)
+ IUnknown_QueryInterface( dso, &IID_IDBInitialize, (void**)&connection->dso );
+
+ if (dso && session)
+ connection->state = adStateOpen;
+
+ return S_OK;
}
struct ADOConnectionConstruction15Vtbl ado_construct_vtbl =
--
2.47.2

View File

@@ -0,0 +1,27 @@
From 95c5e58d9f78cefe837f4ce1c9d56fa0e70e3ed6 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 22 Jul 2025 12:06:15 +1000
Subject: [PATCH] oleaut32: Treat Interfaces with TYPEFLAG_FDISPATCHABLE flags
as an IDispatch.
---
dlls/oleaut32/typelib.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
index 856e07c2811..cc0dc4f3c18 100644
--- a/dlls/oleaut32/typelib.c
+++ b/dlls/oleaut32/typelib.c
@@ -7917,7 +7917,8 @@ static HRESULT WINAPI ITypeInfo_fnGetRefTypeInfo(
pTypeInfoImpl->ref = 0;
list_init(&pTypeInfoImpl->custdata_list);
- if (This->typeattr.typekind == TKIND_INTERFACE)
+ if (This->typeattr.typekind == TKIND_INTERFACE &&
+ This->typeattr.wTypeFlags & TYPEFLAG_FDISPATCHABLE)
pTypeInfoImpl->typeattr.typekind = TKIND_DISPATCH;
else
pTypeInfoImpl->typeattr.typekind = TKIND_INTERFACE;
--
2.47.2

View File

@@ -0,0 +1,2 @@
Fixes: [31675] oleaut32: Use correct flags to detect IDispatch interfaces.
Fixes: msado15: Implement ADOConnectionConstruction15::WrapDSOandSession.

View File

@@ -1,4 +1,4 @@
From fbd5deecb137fa6ef4b0161266d3fb4b157ad069 Mon Sep 17 00:00:00 2001
From 3d9b1442bd52b7ca013f8af5f156446caeecde1c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Thu, 19 Dec 2019 22:34:44 +0100
Subject: [PATCH] winex11: Keep track of mouse device and pointer button
@@ -17,10 +17,10 @@ Original patch by Andrew Eikum <aeikum@codeweavers.com>.
5 files changed, 114 insertions(+), 6 deletions(-)
diff --git a/configure.ac b/configure.ac
index 1923499cf9c..3c4b09d61fb 100644
index 2cc5398d178..5363c8b5e3d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1231,6 +1231,7 @@ then
@@ -1258,6 +1258,7 @@ then
dnl *** All of the following tests require X11/Xlib.h
AC_CHECK_HEADERS([X11/extensions/shape.h \
@@ -29,10 +29,10 @@ index 1923499cf9c..3c4b09d61fb 100644
X11/extensions/XShm.h \
X11/extensions/Xfixes.h \
diff --git a/dlls/winex11.drv/keyboard.c b/dlls/winex11.drv/keyboard.c
index 8a5ef62f57d..24188e25d98 100644
index 25836fe835d..d860f201c1e 100644
--- a/dlls/winex11.drv/keyboard.c
+++ b/dlls/winex11.drv/keyboard.c
@@ -1825,11 +1825,7 @@ BOOL X11DRV_ActivateKeyboardLayout(HKL hkl, UINT flags)
@@ -1835,11 +1835,7 @@ BOOL X11DRV_ActivateKeyboardLayout(HKL hkl, UINT flags)
return TRUE;
}
@@ -45,7 +45,7 @@ index 8a5ef62f57d..24188e25d98 100644
{
HWND hwnd;
@@ -1843,6 +1839,24 @@ BOOL X11DRV_MappingNotify( HWND dummy, XEvent *event )
@@ -1853,6 +1849,24 @@ BOOL X11DRV_MappingNotify( HWND dummy, XEvent *event )
return TRUE;
}
@@ -71,7 +71,7 @@ index 8a5ef62f57d..24188e25d98 100644
/***********************************************************************
* VkKeyScanEx (X11DRV.@)
diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c
index cbf5835b75c..59a9835e9b4 100644
index 63d76256202..3cb2553cb59 100644
--- a/dlls/winex11.drv/mouse.c
+++ b/dlls/winex11.drv/mouse.c
@@ -31,6 +31,9 @@
@@ -215,10 +215,10 @@ index cbf5835b75c..59a9835e9b4 100644
xinput2_available = XQueryExtension( gdi_display, "XInputExtension", &xinput2_opcode, &event, &error );
diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h
index 75dd3c1711a..f48c3782e53 100644
index c69c83e5dd9..17f0b3fc7bd 100644
--- a/dlls/winex11.drv/x11drv.h
+++ b/dlls/winex11.drv/x11drv.h
@@ -719,6 +719,7 @@ extern void reapply_cursor_clipping(void);
@@ -732,6 +732,7 @@ extern void reapply_cursor_clipping(void);
extern void ungrab_clipping_window(void);
extern void move_resize_window( HWND hwnd, int dir, POINT pos );
extern void X11DRV_InitKeyboard( Display *display );
@@ -227,17 +227,17 @@ index 75dd3c1711a..f48c3782e53 100644
typedef int (*x11drv_error_callback)( Display *display, XErrorEvent *event, void *arg );
diff --git a/dlls/winex11.drv/x11drv_main.c b/dlls/winex11.drv/x11drv_main.c
index e27202eb2bf..629c8fc172c 100644
index 715a2444667..5df92db9f5a 100644
--- a/dlls/winex11.drv/x11drv_main.c
+++ b/dlls/winex11.drv/x11drv_main.c
@@ -669,6 +669,7 @@ static NTSTATUS x11drv_init( void *arg )
@@ -673,6 +673,7 @@ static NTSTATUS x11drv_init( void *arg )
XkbUseExtension( gdi_display, NULL, NULL );
X11DRV_InitKeyboard( gdi_display );
+ X11DRV_InitMouse( gdi_display );
if (use_xim) use_xim = xim_init( input_style );
init_user_driver();
init_icm_profile();
--
2.47.2
2.50.1

View File

@@ -0,0 +1,102 @@
From f54b809d2d0402064569abf7843cfc90b8761b2b Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 26 May 2025 07:03:34 +1000
Subject: [PATCH] Updated vkd3d to 44fffee5e1331e1c7e10489d84723c3b9dad7e17.
---
dlls/msado15/tests/msado15.c | 2 +-
libs/vkd3d/include/private/vkd3d_common.h | 2 +-
libs/vkd3d/include/private/vkd3d_version.h | 2 +-
libs/vkd3d/libs/vkd3d-common/blob.c | 1 +
libs/vkd3d/libs/vkd3d-shader/preproc.l | 1 +
libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c | 2 ++
libs/vkd3d/libs/vkd3d-utils/vkd3d_utils_main.c | 2 ++
7 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/dlls/msado15/tests/msado15.c b/dlls/msado15/tests/msado15.c
index 03eaab92b39..3f4b55d2916 100644
--- a/dlls/msado15/tests/msado15.c
+++ b/dlls/msado15/tests/msado15.c
@@ -2023,8 +2023,8 @@ START_TEST(msado15)
setup_database();
test_Connection();
- test_Connection_Open();
test_ConnectionPoint();
+ test_Connection_Open();
test_ADORecordsetConstruction(FALSE);
test_ADORecordsetConstruction(TRUE);
test_Fields();
diff --git a/libs/vkd3d/include/private/vkd3d_common.h b/libs/vkd3d/include/private/vkd3d_common.h
index 08341304eea..0501e6a06c2 100644
--- a/libs/vkd3d/include/private/vkd3d_common.h
+++ b/libs/vkd3d/include/private/vkd3d_common.h
@@ -279,7 +279,7 @@ static inline unsigned int vkd3d_popcount(unsigned int v)
{
#ifdef _MSC_VER
return __popcnt(v);
-#elif defined(__MINGW32__)
+#elif defined(HAVE_BUILTIN_POPCOUNT)
return __builtin_popcount(v);
#else
v -= (v >> 1) & 0x55555555;
diff --git a/libs/vkd3d/include/private/vkd3d_version.h b/libs/vkd3d/include/private/vkd3d_version.h
index 0edc4428022..687751d6a5f 100644
--- a/libs/vkd3d/include/private/vkd3d_version.h
+++ b/libs/vkd3d/include/private/vkd3d_version.h
@@ -1 +1 @@
-#define VKD3D_VCS_ID " (Wine bundled)"
+#define VKD3D_VCS_ID " (git a8ca1f95)"
diff --git a/libs/vkd3d/libs/vkd3d-common/blob.c b/libs/vkd3d/libs/vkd3d-common/blob.c
index f60ef7db769..c2c6ad67804 100644
--- a/libs/vkd3d/libs/vkd3d-common/blob.c
+++ b/libs/vkd3d/libs/vkd3d-common/blob.c
@@ -20,6 +20,7 @@
#define WIDL_C_INLINE_WRAPPERS
#endif
#define COBJMACROS
+
#define CONST_VTABLE
#include "vkd3d.h"
#include "vkd3d_blob.h"
diff --git a/libs/vkd3d/libs/vkd3d-shader/preproc.l b/libs/vkd3d/libs/vkd3d-shader/preproc.l
index a8c0db358bc..5c56fba0229 100644
--- a/libs/vkd3d/libs/vkd3d-shader/preproc.l
+++ b/libs/vkd3d/libs/vkd3d-shader/preproc.l
@@ -20,6 +20,7 @@
%{
+#include "preproc.h"
#include "preproc.tab.h"
#undef ERROR /* defined in wingdi.h */
diff --git a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
index 5fcc836aae1..d1992c9d446 100644
--- a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
+++ b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
@@ -23,6 +23,8 @@
#include <stdio.h>
#include <math.h>
+/* VKD3D_DEBUG_ENV_NAME("VKD3D_SHADER_DEBUG"); */
+
static inline int char_to_int(char c)
{
if ('0' <= c && c <= '9')
diff --git a/libs/vkd3d/libs/vkd3d-utils/vkd3d_utils_main.c b/libs/vkd3d/libs/vkd3d-utils/vkd3d_utils_main.c
index f2967835b62..f804c1f0c24 100644
--- a/libs/vkd3d/libs/vkd3d-utils/vkd3d_utils_main.c
+++ b/libs/vkd3d/libs/vkd3d-utils/vkd3d_utils_main.c
@@ -19,6 +19,8 @@
#include "vkd3d_utils_private.h"
#undef D3D12CreateDevice
+/* VKD3D_DEBUG_ENV_NAME("VKD3D_DEBUG"); */
+
static const char *debug_d3d_blob_part(D3D_BLOB_PART part)
{
switch (part)
--
2.50.1

View File

@@ -0,0 +1,133 @@
From 5bb958cb76891665aa91871e976007f0acc3a273 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 23 Aug 2025 07:27:59 +1000
Subject: [PATCH] Updated vkd3d to d0098b0d5968d1969ec622b91fd360fd0aec2328.
---
libs/vkd3d/libs/vkd3d-shader/glsl.c | 9 +--------
libs/vkd3d/libs/vkd3d-shader/hlsl.l | 2 +-
libs/vkd3d/libs/vkd3d-shader/preproc.l | 12 ++----------
libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c | 7 ++++++-
libs/vkd3d/libs/vkd3d/utils.c | 3 ++-
5 files changed, 12 insertions(+), 21 deletions(-)
diff --git a/libs/vkd3d/libs/vkd3d-shader/glsl.c b/libs/vkd3d/libs/vkd3d-shader/glsl.c
index 5988e7b3a30..acc30b998f6 100644
--- a/libs/vkd3d/libs/vkd3d-shader/glsl.c
+++ b/libs/vkd3d/libs/vkd3d-shader/glsl.c
@@ -2329,7 +2329,6 @@ static int vkd3d_glsl_generator_generate(struct vkd3d_glsl_generator *gen, struc
struct vkd3d_string_buffer *buffer = gen->buffer;
struct vkd3d_shader_instruction *ins;
struct vsir_program_iterator it;
- void *code;
MESSAGE("Generating a GLSL shader. This is unsupported; you get to keep all the pieces if it breaks.\n");
@@ -2358,13 +2357,7 @@ static int vkd3d_glsl_generator_generate(struct vkd3d_glsl_generator *gen, struc
if (gen->failed)
return VKD3D_ERROR_INVALID_SHADER;
- if ((code = vkd3d_malloc(buffer->buffer_size)))
- {
- memcpy(code, buffer->buffer, buffer->content_size);
- out->size = buffer->content_size;
- out->code = code;
- }
- else return VKD3D_ERROR_OUT_OF_MEMORY;
+ vkd3d_shader_code_from_string_buffer(out, buffer);
return VKD3D_OK;
}
diff --git a/libs/vkd3d/libs/vkd3d-shader/hlsl.l b/libs/vkd3d/libs/vkd3d-shader/hlsl.l
index 0cdebb8a657..da9f0d39136 100644
--- a/libs/vkd3d/libs/vkd3d-shader/hlsl.l
+++ b/libs/vkd3d/libs/vkd3d-shader/hlsl.l
@@ -346,7 +346,7 @@ while {return KW_WHILE; }
<pp>{ANY} {}
{ANY} {
- return yytext[0];
+ return (unsigned char)yytext[0];
}
%%
diff --git a/libs/vkd3d/libs/vkd3d-shader/preproc.l b/libs/vkd3d/libs/vkd3d-shader/preproc.l
index 5c56fba0229..f9b1d67ac36 100644
--- a/libs/vkd3d/libs/vkd3d-shader/preproc.l
+++ b/libs/vkd3d/libs/vkd3d-shader/preproc.l
@@ -824,7 +824,6 @@ int preproc_lexer_parse(const struct vkd3d_shader_compile_info *compile_info,
static const struct vkd3d_shader_preprocess_info default_preprocess_info = {0};
struct preproc_ctx ctx = {0};
char *source_name = NULL;
- void *output_code;
unsigned int i;
vkd3d_string_buffer_init(&ctx.buffer);
@@ -901,16 +900,9 @@ int preproc_lexer_parse(const struct vkd3d_shader_compile_info *compile_info,
return VKD3D_ERROR_INVALID_SHADER;
}
- if (!(output_code = vkd3d_malloc(ctx.buffer.content_size)))
- {
- vkd3d_string_buffer_cleanup(&ctx.buffer);
- return VKD3D_ERROR_OUT_OF_MEMORY;
- }
- memcpy(output_code, ctx.buffer.buffer, ctx.buffer.content_size);
- out->size = ctx.buffer.content_size;
- out->code = output_code;
vkd3d_string_buffer_trace(&ctx.buffer);
- vkd3d_string_buffer_cleanup(&ctx.buffer);
+
+ vkd3d_shader_code_from_string_buffer(out, &ctx.buffer);
return VKD3D_OK;
fail:
diff --git a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
index 75b7f9aa769..08450b4cf85 100644
--- a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
+++ b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
@@ -2266,6 +2266,7 @@ int vkd3d_shader_preprocess(const struct vkd3d_shader_compile_info *compile_info
struct vkd3d_shader_code *out, char **messages)
{
struct vkd3d_shader_message_context message_context;
+ struct shader_dump_data dump_data;
int ret;
TRACE("compile_info %p, out %p, messages %p.\n", compile_info, out, messages);
@@ -2278,7 +2279,11 @@ int vkd3d_shader_preprocess(const struct vkd3d_shader_compile_info *compile_info
vkd3d_shader_message_context_init(&message_context, compile_info->log_level);
- ret = preproc_lexer_parse(compile_info, out, &message_context);
+ fill_shader_dump_data(compile_info, &dump_data);
+ vkd3d_shader_dump_shader(&dump_data, compile_info->source.code, compile_info->source.size, SHADER_DUMP_TYPE_SOURCE);
+
+ if ((ret = preproc_lexer_parse(compile_info, out, &message_context)) >= 0)
+ vkd3d_shader_dump_shader(&dump_data, out->code, out->size, SHADER_DUMP_TYPE_PREPROC);
vkd3d_shader_message_context_trace_messages(&message_context);
if (!vkd3d_shader_message_context_copy_messages(&message_context, messages))
diff --git a/libs/vkd3d/libs/vkd3d/utils.c b/libs/vkd3d/libs/vkd3d/utils.c
index c2832a61f67..2d0510e5456 100644
--- a/libs/vkd3d/libs/vkd3d/utils.c
+++ b/libs/vkd3d/libs/vkd3d/utils.c
@@ -703,7 +703,7 @@ const char *debug_vk_extent_3d(VkExtent3D extent)
const char *debug_vk_queue_flags(VkQueueFlags flags)
{
- char buffer[191];
+ char buffer[222];
buffer[0] = '\0';
#define FLAG_TO_STR(f) if (flags & f) { strcat(buffer, " | "#f); flags &= ~f; }
@@ -716,6 +716,7 @@ const char *debug_vk_queue_flags(VkQueueFlags flags)
#define FLAG_TO_STR(f, n) if (flags & f) { strcat(buffer, " | "#n); flags &= ~f; }
FLAG_TO_STR(0x20, VK_QUEUE_VIDEO_DECODE_BIT_KHR)
FLAG_TO_STR(0x40, VK_QUEUE_VIDEO_ENCODE_BIT_KHR)
+ FLAG_TO_STR(0x100, VK_QUEUE_OPTICAL_FLOW_BIT_NV)
#undef FLAG_TO_STR
if (flags)
FIXME("Unrecognized flag(s) %#x.\n", flags);
--
2.50.1

Some files were not shown because too many files have changed in this diff Show More