You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
21 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
05bc4b822f | ||
|
177488c071 | ||
|
d0d5fef5bb | ||
|
7d45af5cb4 | ||
|
ad6dc1328b | ||
|
f6f66d11a2 | ||
|
5ab7824f62 | ||
|
c263c6fabb | ||
|
f10d2d0452 | ||
|
bc8dead787 | ||
|
3738f9baee | ||
|
c2de76b804 | ||
|
5a9719f283 | ||
|
c8d46d4ca3 | ||
|
4f96088b1e | ||
|
7f8391d22f | ||
|
2f87552459 | ||
|
4f83c2f614 | ||
|
dc277fed5e | ||
|
342b3b8162 | ||
|
891daebf57 |
@@ -1,4 +1,4 @@
|
||||
From 6dbedd8d7aebe117b013c61f9549848f13619f0e Mon Sep 17 00:00:00 2001
|
||||
From 6c64a33f908b9fade24fe11d89533a70fdce352f Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Wed, 13 Jun 2018 10:44:49 -0500
|
||||
Subject: [PATCH] configure: Check for sys/eventfd.h, ppoll(), and shm_open().
|
||||
@@ -12,10 +12,10 @@ Although perhaps we shouldn't since the server doesn't do this.
|
||||
2 files changed, 18 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 67775f9cd15..c03d4c3688b 100644
|
||||
index eb7f8223b51..388ac14dc8a 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -407,6 +407,7 @@ AC_CHECK_HEADERS(\
|
||||
@@ -411,6 +411,7 @@ AC_CHECK_HEADERS(\
|
||||
sys/cdio.h \
|
||||
sys/epoll.h \
|
||||
sys/event.h \
|
||||
@@ -23,15 +23,15 @@ index 67775f9cd15..c03d4c3688b 100644
|
||||
sys/extattr.h \
|
||||
sys/filio.h \
|
||||
sys/ipc.h \
|
||||
@@ -2067,6 +2068,7 @@ AC_CHECK_FUNCS(\
|
||||
@@ -2079,6 +2080,7 @@ AC_CHECK_FUNCS(\
|
||||
port_create \
|
||||
posix_fadvise \
|
||||
posix_fallocate \
|
||||
+ ppoll \
|
||||
prctl \
|
||||
sched_getcpu \
|
||||
sched_yield \
|
||||
renameat \
|
||||
@@ -2087,6 +2089,12 @@ AC_SEARCH_LIBS(clock_gettime, rt,
|
||||
@@ -2100,6 +2102,12 @@ AC_SEARCH_LIBS(clock_gettime, rt,
|
||||
test "$ac_res" = "none required" || AC_SUBST(RT_LIBS,"$ac_res")])
|
||||
LIBS=$ac_save_LIBS
|
||||
|
||||
@@ -45,10 +45,10 @@ index 67775f9cd15..c03d4c3688b 100644
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM(
|
||||
[[#include <sched.h>]], [[sched_setaffinity(0, 0, 0);]])],[wine_cv_have_sched_setaffinity=yes],[wine_cv_have_sched_setaffinity=no]))
|
||||
diff --git a/include/config.h.in b/include/config.h.in
|
||||
index 1c3d4c4d62b..e9686e04a2a 100644
|
||||
index 6033d8674f3..563b63a92df 100644
|
||||
--- a/include/config.h.in
|
||||
+++ b/include/config.h.in
|
||||
@@ -318,6 +318,9 @@
|
||||
@@ -321,6 +321,9 @@
|
||||
/* Define to 1 if you have the 'posix_fallocate' function. */
|
||||
#undef HAVE_POSIX_FALLOCATE
|
||||
|
||||
@@ -58,7 +58,7 @@ index 1c3d4c4d62b..e9686e04a2a 100644
|
||||
/* Define to 1 if you have the 'prctl' function. */
|
||||
#undef HAVE_PRCTL
|
||||
|
||||
@@ -375,7 +378,10 @@
|
||||
@@ -381,7 +384,10 @@
|
||||
/* Define to 1 if 'interface_id' is a member of 'sg_io_hdr_t'. */
|
||||
#undef HAVE_SG_IO_HDR_T_INTERFACE_ID
|
||||
|
||||
@@ -70,7 +70,7 @@ index 1c3d4c4d62b..e9686e04a2a 100644
|
||||
#undef HAVE_SIGINFO_T_SI_FD
|
||||
|
||||
/* Define to 1 if you have the 'sigprocmask' function. */
|
||||
@@ -504,6 +510,9 @@
|
||||
@@ -510,6 +516,9 @@
|
||||
/* Define to 1 if you have the <sys/epoll.h> header file. */
|
||||
#undef HAVE_SYS_EPOLL_H
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 43ca4e4a3c633d405b3d282badb028c4250f942d Mon Sep 17 00:00:00 2001
|
||||
From e93243e7863c239a1e4b2d91cb12dcd2cb373b36 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 30 May 2015 02:23:15 +0200
|
||||
Subject: [PATCH] ntdll: Add support for hiding wine version information from
|
||||
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Add support for hiding wine version information from
|
||||
2 files changed, 103 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index fbad84d2c36..5afeb0f63b0 100644
|
||||
index 9dcb475c148..9e61c38d773 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -87,6 +87,9 @@ const WCHAR system_dir[] = L"C:\\windows\\system32\\";
|
||||
@@ -88,6 +88,9 @@ const WCHAR system_dir[] = L"C:\\windows\\system32\\";
|
||||
/* system search path */
|
||||
static const WCHAR system_path[] = L"C:\\windows\\system32;C:\\windows\\system;C:\\windows";
|
||||
|
||||
@@ -23,7 +23,7 @@ index fbad84d2c36..5afeb0f63b0 100644
|
||||
static BOOL is_prefix_bootstrap; /* are we bootstrapping the prefix? */
|
||||
static BOOL imports_fixup_done = FALSE; /* set once the imports have been fixed up, before attaching them */
|
||||
static BOOL process_detaching = FALSE; /* set on process detach to avoid deadlocks with thread detach */
|
||||
@@ -106,6 +109,8 @@ struct dll_dir_entry
|
||||
@@ -107,6 +110,8 @@ struct dll_dir_entry
|
||||
|
||||
static struct list dll_dir_list = LIST_INIT( dll_dir_list ); /* extra dirs from LdrAddDllDirectory */
|
||||
|
||||
@@ -32,7 +32,7 @@ index fbad84d2c36..5afeb0f63b0 100644
|
||||
struct ldr_notification
|
||||
{
|
||||
struct list entry;
|
||||
@@ -2030,6 +2035,96 @@ NTSTATUS WINAPI LdrUnlockLoaderLock( ULONG flags, ULONG_PTR magic )
|
||||
@@ -2022,6 +2027,96 @@ NTSTATUS WINAPI LdrUnlockLoaderLock( ULONG flags, ULONG_PTR magic )
|
||||
}
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ index fbad84d2c36..5afeb0f63b0 100644
|
||||
/******************************************************************
|
||||
* LdrGetProcedureAddress (NTDLL.@)
|
||||
*/
|
||||
@@ -2050,7 +2145,7 @@ NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE module, const ANSI_STRING *name,
|
||||
@@ -2042,7 +2137,7 @@ NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE module, const ANSI_STRING *name,
|
||||
{
|
||||
void *proc = name ? find_named_export( module, exports, exp_size, name->Buffer, -1, NULL )
|
||||
: find_ordinal_export( module, exports, exp_size, ord - exports->Base, NULL );
|
||||
@@ -138,7 +138,7 @@ index fbad84d2c36..5afeb0f63b0 100644
|
||||
{
|
||||
*address = proc;
|
||||
ret = STATUS_SUCCESS;
|
||||
@@ -2311,6 +2406,8 @@ static void build_ntdll_module(void)
|
||||
@@ -2304,6 +2399,8 @@ static void build_ntdll_module(void)
|
||||
wm->ldr.Flags &= ~LDR_DONT_RESOLVE_REFS;
|
||||
node_ntdll = wm->ldr.DdagNode;
|
||||
if (TRACE_ON(relay)) RELAY_SetupDLL( module );
|
||||
@@ -148,12 +148,12 @@ index fbad84d2c36..5afeb0f63b0 100644
|
||||
|
||||
|
||||
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
|
||||
index cffe27d847c..d3c4a9cae68 100644
|
||||
index fb5fb311646..a342cbf7d26 100644
|
||||
--- a/dlls/ntdll/ntdll_misc.h
|
||||
+++ b/dlls/ntdll/ntdll_misc.h
|
||||
@@ -145,6 +145,11 @@ static inline TEB64 *NtCurrentTeb64(void) { return NULL; }
|
||||
static inline TEB64 *NtCurrentTeb64(void) { return (TEB64 *)NtCurrentTeb()->GdiBatchCount; }
|
||||
#endif
|
||||
@@ -117,6 +117,11 @@ static inline void *get_rva( HMODULE module, DWORD va )
|
||||
return (void *)((char *)module + va);
|
||||
}
|
||||
|
||||
+/* version */
|
||||
+extern const char * CDECL wine_get_version(void);
|
||||
@@ -164,5 +164,5 @@ index cffe27d847c..d3c4a9cae68 100644
|
||||
static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len )
|
||||
{
|
||||
--
|
||||
2.43.0
|
||||
2.45.2
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From a6d2b52c9461723c39982237512d29de0154b5ff Mon Sep 17 00:00:00 2001
|
||||
From 7b9165576a8ba0e317c280c9bedd2137fb745149 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Thu, 16 Jan 2014 20:56:49 -0700
|
||||
Subject: [PATCH] ntdll: Add support for creating reparse points.
|
||||
@@ -13,12 +13,12 @@ Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
|
||||
5 files changed, 451 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 3bde1e448be..52537e7056c 100644
|
||||
index 0368b661e61..eb7f8223b51 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2081,6 +2081,8 @@ AC_CHECK_FUNCS(\
|
||||
posix_fallocate \
|
||||
@@ -2082,6 +2082,8 @@ AC_CHECK_FUNCS(\
|
||||
prctl \
|
||||
sched_getcpu \
|
||||
sched_yield \
|
||||
+ renameat \
|
||||
+ renameat2 \
|
||||
@@ -39,7 +39,7 @@ index 37bd6c86e31..f9a15d28ed2 100644
|
||||
EXTRADLLFLAGS = -nodefaultlibs
|
||||
i386_EXTRADLLFLAGS = -Wl,--image-base,0x7bc00000
|
||||
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
|
||||
index 95bd1c37cac..25cac61317b 100644
|
||||
index 02bdf67796d..63b5ebcab54 100644
|
||||
--- a/dlls/ntdll/tests/file.c
|
||||
+++ b/dlls/ntdll/tests/file.c
|
||||
@@ -38,6 +38,7 @@
|
||||
@@ -50,7 +50,7 @@ index 95bd1c37cac..25cac61317b 100644
|
||||
|
||||
#ifndef IO_COMPLETION_ALL_ACCESS
|
||||
#define IO_COMPLETION_ALL_ACCESS 0x001F0003
|
||||
@@ -5906,32 +5907,154 @@ static void test_mailslot_name(void)
|
||||
@@ -5952,32 +5953,154 @@ static void test_mailslot_name(void)
|
||||
CloseHandle( device );
|
||||
}
|
||||
|
||||
@@ -222,7 +222,7 @@ index 95bd1c37cac..25cac61317b 100644
|
||||
}
|
||||
|
||||
static void test_set_io_completion_ex(void)
|
||||
@@ -6071,6 +6194,6 @@ START_TEST(file)
|
||||
@@ -6117,6 +6240,6 @@ START_TEST(file)
|
||||
test_ioctl();
|
||||
test_query_ea();
|
||||
test_flush_buffers_file();
|
||||
@@ -231,7 +231,7 @@ index 95bd1c37cac..25cac61317b 100644
|
||||
+ test_mailslot_name();
|
||||
}
|
||||
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
|
||||
index 9da53339ff0..34121c7d08a 100644
|
||||
index 8bc69557057..00ac7377dd4 100644
|
||||
--- a/dlls/ntdll/unix/file.c
|
||||
+++ b/dlls/ntdll/unix/file.c
|
||||
@@ -36,6 +36,8 @@
|
||||
@@ -389,7 +389,7 @@ index 9da53339ff0..34121c7d08a 100644
|
||||
static BOOL fd_is_mount_point( int fd, const struct stat *st )
|
||||
{
|
||||
struct stat parent;
|
||||
@@ -3415,6 +3535,181 @@ done:
|
||||
@@ -3416,6 +3536,181 @@ done:
|
||||
}
|
||||
|
||||
|
||||
@@ -571,7 +571,7 @@ index 9da53339ff0..34121c7d08a 100644
|
||||
/******************************************************************************
|
||||
* lookup_unix_name
|
||||
*
|
||||
@@ -6250,6 +6545,13 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
|
||||
@@ -6246,6 +6541,13 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
|
||||
break;
|
||||
}
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From c2236d2048faf1e01da3130fdb81688da6829d4a Mon Sep 17 00:00:00 2001
|
||||
From 742f9b17c321b671e6b7bcd3bc7772e3ef66729d Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Thu, 16 Jan 2014 21:02:11 -0700
|
||||
Subject: [PATCH] server: Implement FILE_OPEN_REPARSE_POINT option.
|
||||
@@ -10,7 +10,7 @@ Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
|
||||
2 files changed, 142 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernelbase/file.c b/dlls/kernelbase/file.c
|
||||
index 1f13511fa7b..1c41e0011f3 100644
|
||||
index 249f476eb7e..2ea3d81a264 100644
|
||||
--- a/dlls/kernelbase/file.c
|
||||
+++ b/dlls/kernelbase/file.c
|
||||
@@ -769,6 +769,8 @@ static UINT get_nt_file_options( DWORD attributes )
|
||||
@@ -23,7 +23,7 @@ index 1f13511fa7b..1c41e0011f3 100644
|
||||
}
|
||||
|
||||
diff --git a/server/fd.c b/server/fd.c
|
||||
index 04688c5eb0d..94b8bd088ed 100644
|
||||
index c82ed49034e..cd4b35915d4 100644
|
||||
--- a/server/fd.c
|
||||
+++ b/server/fd.c
|
||||
@@ -32,6 +32,7 @@
|
||||
@@ -201,16 +201,7 @@ index 04688c5eb0d..94b8bd088ed 100644
|
||||
if ((fd->unix_fd = open( name, rw_mode | (flags & ~O_TRUNC), *mode )) == -1)
|
||||
{
|
||||
/* if we tried to open a directory for write access, retry read-only */
|
||||
@@ -1945,7 +2066,7 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam
|
||||
fd->unix_name = NULL;
|
||||
if ((path = dup_fd_name( root, name )))
|
||||
{
|
||||
- fd->unix_name = realpath( path, NULL );
|
||||
+ fd->unix_name = normalize_path( path, flags );
|
||||
free( path );
|
||||
}
|
||||
|
||||
@@ -1956,10 +2077,11 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam
|
||||
@@ -1947,10 +2068,11 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam
|
||||
*mode = st.st_mode;
|
||||
|
||||
/* only bother with an inode for normal files and directories */
|
||||
@@ -223,7 +214,16 @@ index 04688c5eb0d..94b8bd088ed 100644
|
||||
|
||||
if (!inode)
|
||||
{
|
||||
@@ -1974,13 +2096,17 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam
|
||||
@@ -1962,7 +2084,7 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam
|
||||
|
||||
if ((path = dup_fd_name( root, name )))
|
||||
{
|
||||
- fd->unix_name = realpath( path, NULL );
|
||||
+ fd->unix_name = normalize_path( path, flags );
|
||||
free( path );
|
||||
}
|
||||
|
||||
@@ -1975,13 +2097,17 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam
|
||||
list_add_head( &inode->open, &fd->inode_entry );
|
||||
closed_fd = NULL;
|
||||
|
||||
@@ -243,7 +243,7 @@ index 04688c5eb0d..94b8bd088ed 100644
|
||||
{
|
||||
set_error( STATUS_FILE_IS_A_DIRECTORY );
|
||||
goto error;
|
||||
@@ -2427,6 +2553,7 @@ static struct fd *get_handle_fd_obj( struct process *process, obj_handle_t handl
|
||||
@@ -2428,6 +2554,7 @@ static struct fd *get_handle_fd_obj( struct process *process, obj_handle_t handl
|
||||
|
||||
static int is_dir_empty( int fd )
|
||||
{
|
||||
@@ -251,7 +251,7 @@ index 04688c5eb0d..94b8bd088ed 100644
|
||||
DIR *dir;
|
||||
int empty;
|
||||
struct dirent *de;
|
||||
@@ -2434,8 +2561,13 @@ static int is_dir_empty( int fd )
|
||||
@@ -2435,8 +2562,13 @@ static int is_dir_empty( int fd )
|
||||
if ((fd = dup( fd )) == -1)
|
||||
return -1;
|
||||
|
||||
@@ -266,7 +266,7 @@ index 04688c5eb0d..94b8bd088ed 100644
|
||||
close( fd );
|
||||
return -1;
|
||||
}
|
||||
@@ -2447,6 +2579,7 @@ static int is_dir_empty( int fd )
|
||||
@@ -2448,6 +2580,7 @@ static int is_dir_empty( int fd )
|
||||
empty = 0;
|
||||
}
|
||||
closedir( dir );
|
||||
@@ -274,7 +274,7 @@ index 04688c5eb0d..94b8bd088ed 100644
|
||||
return empty;
|
||||
}
|
||||
|
||||
@@ -2485,7 +2618,7 @@ static void set_fd_disposition( struct fd *fd, unsigned int flags )
|
||||
@@ -2486,7 +2619,7 @@ static void set_fd_disposition( struct fd *fd, unsigned int flags )
|
||||
file_set_error();
|
||||
return;
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,340 @@
|
||||
From c3d5c3b03aa6a746797f6e1debf17f0978ed68c0 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sat, 18 Jan 2025 16:15:28 +1100
|
||||
Subject: [PATCH] Updated vkd3d to a082daeb56c239b41d67b5df5abceb342c0b32b9.
|
||||
|
||||
---
|
||||
libs/vkd3d/libs/vkd3d-shader/hlsl.c | 1 +
|
||||
libs/vkd3d/libs/vkd3d-shader/hlsl.h | 1 +
|
||||
libs/vkd3d/libs/vkd3d-shader/hlsl.y | 14 ++
|
||||
libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c | 198 +++++++++++++++++++-
|
||||
libs/vkd3d/libs/vkd3d-shader/msl.c | 1 -
|
||||
5 files changed, 207 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/hlsl.c b/libs/vkd3d/libs/vkd3d-shader/hlsl.c
|
||||
index 858186a1071..23f54d3edec 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/hlsl.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/hlsl.c
|
||||
@@ -3238,6 +3238,7 @@ const char *debug_hlsl_expr_op(enum hlsl_ir_expr_op op)
|
||||
[HLSL_OP1_F32TOF16] = "f32tof16",
|
||||
[HLSL_OP1_FLOOR] = "floor",
|
||||
[HLSL_OP1_FRACT] = "fract",
|
||||
+ [HLSL_OP1_ISINF] = "isinf",
|
||||
[HLSL_OP1_LOG2] = "log2",
|
||||
[HLSL_OP1_LOGIC_NOT] = "!",
|
||||
[HLSL_OP1_NEG] = "-",
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/hlsl.h b/libs/vkd3d/libs/vkd3d-shader/hlsl.h
|
||||
index d712a325322..4d78dbebb34 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/hlsl.h
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/hlsl.h
|
||||
@@ -704,6 +704,7 @@ enum hlsl_ir_expr_op
|
||||
HLSL_OP1_F32TOF16,
|
||||
HLSL_OP1_FLOOR,
|
||||
HLSL_OP1_FRACT,
|
||||
+ HLSL_OP1_ISINF,
|
||||
HLSL_OP1_LOG2,
|
||||
HLSL_OP1_LOGIC_NOT,
|
||||
HLSL_OP1_NEG,
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/hlsl.y b/libs/vkd3d/libs/vkd3d-shader/hlsl.y
|
||||
index e6eaac78994..e5a03067d16 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/hlsl.y
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/hlsl.y
|
||||
@@ -4313,6 +4313,19 @@ static bool intrinsic_fwidth(struct hlsl_ctx *ctx,
|
||||
return !!add_user_call(ctx, func, params, false, loc);
|
||||
}
|
||||
|
||||
+static bool intrinsic_isinf(struct hlsl_ctx *ctx,
|
||||
+ const struct parse_initializer *params, const struct vkd3d_shader_location *loc)
|
||||
+{
|
||||
+ struct hlsl_type *type = params->args[0]->data_type, *bool_type;
|
||||
+ struct hlsl_ir_node *args[HLSL_MAX_OPERANDS] = {0};
|
||||
+
|
||||
+ bool_type = hlsl_get_numeric_type(ctx, type->class, HLSL_TYPE_BOOL,
|
||||
+ type->e.numeric.dimx, type->e.numeric.dimy);
|
||||
+
|
||||
+ args[0] = params->args[0];
|
||||
+ return !!add_expr(ctx, params->instrs, HLSL_OP1_ISINF, args, bool_type, loc);
|
||||
+}
|
||||
+
|
||||
static bool intrinsic_ldexp(struct hlsl_ctx *ctx,
|
||||
const struct parse_initializer *params, const struct vkd3d_shader_location *loc)
|
||||
{
|
||||
@@ -5410,6 +5423,7 @@ intrinsic_functions[] =
|
||||
{"fmod", 2, true, intrinsic_fmod},
|
||||
{"frac", 1, true, intrinsic_frac},
|
||||
{"fwidth", 1, true, intrinsic_fwidth},
|
||||
+ {"isinf", 1, true, intrinsic_isinf},
|
||||
{"ldexp", 2, true, intrinsic_ldexp},
|
||||
{"length", 1, true, intrinsic_length},
|
||||
{"lerp", 3, true, intrinsic_lerp},
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c b/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c
|
||||
index c666599b342..cef6a87c8b6 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c
|
||||
@@ -2881,6 +2881,7 @@ static bool lower_separate_samples(struct hlsl_ctx *ctx, struct hlsl_ir_node *in
|
||||
load = hlsl_ir_resource_load(instr);
|
||||
|
||||
if (load->load_type != HLSL_RESOURCE_SAMPLE
|
||||
+ && load->load_type != HLSL_RESOURCE_SAMPLE_GRAD
|
||||
&& load->load_type != HLSL_RESOURCE_SAMPLE_LOD
|
||||
&& load->load_type != HLSL_RESOURCE_SAMPLE_LOD_BIAS)
|
||||
return false;
|
||||
@@ -2908,6 +2909,13 @@ static bool lower_separate_samples(struct hlsl_ctx *ctx, struct hlsl_ir_node *in
|
||||
return false;
|
||||
vkd3d_string_buffer_printf(name, "%s+%s", sampler->name, resource->name);
|
||||
|
||||
+ if (load->texel_offset.node)
|
||||
+ {
|
||||
+ hlsl_error(ctx, &instr->loc, VKD3D_SHADER_ERROR_HLSL_INCOMPATIBLE_PROFILE,
|
||||
+ "Texel offsets are not supported on profiles lower than 4.0.\n");
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
TRACE("Lowering to combined sampler %s.\n", debugstr_a(name->buffer));
|
||||
|
||||
if (!(var = hlsl_get_var(ctx->globals, name->buffer)))
|
||||
@@ -3099,11 +3107,24 @@ static bool sort_synthetic_separated_samplers_first(struct hlsl_ctx *ctx)
|
||||
return false;
|
||||
}
|
||||
|
||||
-/* Turn CAST to int or uint into FLOOR + REINTERPRET (which is written as a mere MOV). */
|
||||
+/* Turn CAST to int or uint as follows:
|
||||
+ *
|
||||
+ * CAST(x) = x - FRACT(x) + extra
|
||||
+ *
|
||||
+ * where
|
||||
+ *
|
||||
+ * extra = FRACT(x) > 0 && x < 0
|
||||
+ *
|
||||
+ * where the comparisons in the extra term are performed using CMP or SLT
|
||||
+ * depending on whether this is a pixel or vertex shader, respectively.
|
||||
+ *
|
||||
+ * A REINTERPET (which is written as a mere MOV) is also applied to the final
|
||||
+ * result for type consistency.
|
||||
+ */
|
||||
static bool lower_casts_to_int(struct hlsl_ctx *ctx, struct hlsl_ir_node *instr, struct hlsl_block *block)
|
||||
{
|
||||
struct hlsl_ir_node *operands[HLSL_MAX_OPERANDS] = { 0 };
|
||||
- struct hlsl_ir_node *arg, *floor, *res;
|
||||
+ struct hlsl_ir_node *arg, *res;
|
||||
struct hlsl_ir_expr *expr;
|
||||
|
||||
if (instr->type != HLSL_IR_EXPR)
|
||||
@@ -3118,12 +3139,83 @@ static bool lower_casts_to_int(struct hlsl_ctx *ctx, struct hlsl_ir_node *instr,
|
||||
if (arg->data_type->e.numeric.type != HLSL_TYPE_FLOAT && arg->data_type->e.numeric.type != HLSL_TYPE_HALF)
|
||||
return false;
|
||||
|
||||
- if (!(floor = hlsl_new_unary_expr(ctx, HLSL_OP1_FLOOR, arg, &instr->loc)))
|
||||
- return false;
|
||||
- hlsl_block_add_instr(block, floor);
|
||||
+ if (ctx->profile->type == VKD3D_SHADER_TYPE_PIXEL)
|
||||
+ {
|
||||
+ struct hlsl_ir_node *fract, *neg_fract, *has_fract, *floor, *extra, *zero, *one;
|
||||
+ struct hlsl_constant_value zero_value, one_value;
|
||||
+
|
||||
+ memset(&zero_value, 0, sizeof(zero_value));
|
||||
+ if (!(zero = hlsl_new_constant(ctx, arg->data_type, &zero_value, &instr->loc)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, zero);
|
||||
+
|
||||
+ one_value.u[0].f = 1.0;
|
||||
+ one_value.u[1].f = 1.0;
|
||||
+ one_value.u[2].f = 1.0;
|
||||
+ one_value.u[3].f = 1.0;
|
||||
+ if (!(one = hlsl_new_constant(ctx, arg->data_type, &one_value, &instr->loc)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, one);
|
||||
+
|
||||
+ if (!(fract = hlsl_new_unary_expr(ctx, HLSL_OP1_FRACT, arg, &instr->loc)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, fract);
|
||||
+
|
||||
+ if (!(neg_fract = hlsl_new_unary_expr(ctx, HLSL_OP1_NEG, fract, &instr->loc)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, neg_fract);
|
||||
+
|
||||
+ if (!(has_fract = hlsl_new_ternary_expr(ctx, HLSL_OP3_CMP, neg_fract, zero, one)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, has_fract);
|
||||
+
|
||||
+ if (!(extra = hlsl_new_ternary_expr(ctx, HLSL_OP3_CMP, arg, zero, has_fract)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, extra);
|
||||
+
|
||||
+ if (!(floor = hlsl_new_binary_expr(ctx, HLSL_OP2_ADD, arg, neg_fract)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, floor);
|
||||
+
|
||||
+ if (!(res = hlsl_new_binary_expr(ctx, HLSL_OP2_ADD, floor, extra)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, res);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ struct hlsl_ir_node *neg_arg, *is_neg, *fract, *neg_fract, *has_fract, *floor;
|
||||
+
|
||||
+ if (!(neg_arg = hlsl_new_unary_expr(ctx, HLSL_OP1_NEG, arg, &instr->loc)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, neg_arg);
|
||||
+
|
||||
+ if (!(is_neg = hlsl_new_binary_expr(ctx, HLSL_OP2_SLT, arg, neg_arg)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, is_neg);
|
||||
+
|
||||
+ if (!(fract = hlsl_new_unary_expr(ctx, HLSL_OP1_FRACT, arg, &instr->loc)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, fract);
|
||||
+
|
||||
+ if (!(neg_fract = hlsl_new_unary_expr(ctx, HLSL_OP1_NEG, fract, &instr->loc)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, neg_fract);
|
||||
+
|
||||
+ if (!(has_fract = hlsl_new_binary_expr(ctx, HLSL_OP2_SLT, neg_fract, fract)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, has_fract);
|
||||
+
|
||||
+ if (!(floor = hlsl_new_binary_expr(ctx, HLSL_OP2_ADD, arg, neg_fract)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, floor);
|
||||
+
|
||||
+ if (!(res = hlsl_new_ternary_expr(ctx, HLSL_OP3_MAD, is_neg, has_fract, floor)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, res);
|
||||
+ }
|
||||
|
||||
memset(operands, 0, sizeof(operands));
|
||||
- operands[0] = floor;
|
||||
+ operands[0] = res;
|
||||
if (!(res = hlsl_new_expr(ctx, HLSL_OP1_REINTERPRET, operands, instr->data_type, &instr->loc)))
|
||||
return false;
|
||||
hlsl_block_add_instr(block, res);
|
||||
@@ -6977,7 +7069,8 @@ static void sm1_generate_vsir_sampler_dcls(struct hlsl_ctx *ctx,
|
||||
break;
|
||||
|
||||
case HLSL_SAMPLER_DIM_GENERIC:
|
||||
- /* These can appear in sm4-style combined sample instructions. */
|
||||
+ /* These can appear in sm4-style separate sample
|
||||
+ * instructions that haven't been lowered. */
|
||||
hlsl_fixme(ctx, &var->loc, "Generic samplers need to be lowered.");
|
||||
continue;
|
||||
|
||||
@@ -11732,6 +11825,95 @@ static bool lower_f32tof16(struct hlsl_ctx *ctx, struct hlsl_ir_node *node, stru
|
||||
return true;
|
||||
}
|
||||
|
||||
+static bool lower_isinf(struct hlsl_ctx *ctx, struct hlsl_ir_node *node, struct hlsl_block *block)
|
||||
+{
|
||||
+ struct hlsl_ir_node *call, *rhs, *store;
|
||||
+ struct hlsl_ir_function_decl *func;
|
||||
+ unsigned int component_count;
|
||||
+ struct hlsl_ir_load *load;
|
||||
+ struct hlsl_ir_expr *expr;
|
||||
+ struct hlsl_ir_var *lhs;
|
||||
+ const char *template;
|
||||
+ char *body;
|
||||
+
|
||||
+ static const char template_sm2[] =
|
||||
+ "typedef bool%u boolX;\n"
|
||||
+ "typedef float%u floatX;\n"
|
||||
+ "boolX isinf(floatX x)\n"
|
||||
+ "{\n"
|
||||
+ " floatX v = 1 / x;\n"
|
||||
+ " v = v * v;\n"
|
||||
+ " return v <= 0;\n"
|
||||
+ "}\n";
|
||||
+
|
||||
+ static const char template_sm3[] =
|
||||
+ "typedef bool%u boolX;\n"
|
||||
+ "typedef float%u floatX;\n"
|
||||
+ "boolX isinf(floatX x)\n"
|
||||
+ "{\n"
|
||||
+ " floatX v = 1 / x;\n"
|
||||
+ " return v <= 0;\n"
|
||||
+ "}\n";
|
||||
+
|
||||
+ static const char template_sm4[] =
|
||||
+ "typedef bool%u boolX;\n"
|
||||
+ "typedef float%u floatX;\n"
|
||||
+ "boolX isinf(floatX x)\n"
|
||||
+ "{\n"
|
||||
+ " return (asuint(x) & 0x7fffffff) == 0x7f800000;\n"
|
||||
+ "}\n";
|
||||
+
|
||||
+ static const char template_int[] =
|
||||
+ "typedef bool%u boolX;\n"
|
||||
+ "typedef float%u floatX;\n"
|
||||
+ "boolX isinf(floatX x)\n"
|
||||
+ "{\n"
|
||||
+ " return false;\n"
|
||||
+ "}";
|
||||
+
|
||||
+ if (node->type != HLSL_IR_EXPR)
|
||||
+ return false;
|
||||
+
|
||||
+ expr = hlsl_ir_expr(node);
|
||||
+
|
||||
+ if (expr->op != HLSL_OP1_ISINF)
|
||||
+ return false;
|
||||
+
|
||||
+ rhs = expr->operands[0].node;
|
||||
+
|
||||
+ if (hlsl_version_lt(ctx, 3, 0))
|
||||
+ template = template_sm2;
|
||||
+ else if (hlsl_version_lt(ctx, 4, 0))
|
||||
+ template = template_sm3;
|
||||
+ else if (type_is_integer(rhs->data_type))
|
||||
+ template = template_int;
|
||||
+ else
|
||||
+ template = template_sm4;
|
||||
+
|
||||
+ component_count = hlsl_type_component_count(rhs->data_type);
|
||||
+ if (!(body = hlsl_sprintf_alloc(ctx, template, component_count, component_count)))
|
||||
+ return false;
|
||||
+
|
||||
+ if (!(func = hlsl_compile_internal_function(ctx, "isinf", body)))
|
||||
+ return false;
|
||||
+
|
||||
+ lhs = func->parameters.vars[0];
|
||||
+
|
||||
+ if (!(store = hlsl_new_simple_store(ctx, lhs, rhs)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, store);
|
||||
+
|
||||
+ if (!(call = hlsl_new_call(ctx, func, &node->loc)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, call);
|
||||
+
|
||||
+ if (!(load = hlsl_new_var_load(ctx, func->return_var, &node->loc)))
|
||||
+ return false;
|
||||
+ hlsl_block_add_instr(block, &load->node);
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
static void process_entry_function(struct hlsl_ctx *ctx,
|
||||
const struct hlsl_block *global_uniform_block, struct hlsl_ir_function_decl *entry_func)
|
||||
{
|
||||
@@ -11765,6 +11947,8 @@ static void process_entry_function(struct hlsl_ctx *ctx,
|
||||
lower_ir(ctx, lower_f32tof16, body);
|
||||
}
|
||||
|
||||
+ lower_ir(ctx, lower_isinf, body);
|
||||
+
|
||||
lower_return(ctx, entry_func, body, false);
|
||||
|
||||
while (hlsl_transform_ir(ctx, lower_calls, body, NULL));
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/msl.c b/libs/vkd3d/libs/vkd3d-shader/msl.c
|
||||
index bb85e62e94c..e783128e236 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/msl.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/msl.c
|
||||
@@ -198,7 +198,6 @@ static void msl_print_register_name(struct vkd3d_string_buffer *buffer,
|
||||
vkd3d_string_buffer_printf(buffer, "uint4(%#xu, %#xu, %#xu, %#xu)",
|
||||
reg->u.immconst_u32[0], reg->u.immconst_u32[1],
|
||||
reg->u.immconst_u32[2], reg->u.immconst_u32[3]);
|
||||
- vkd3d_string_buffer_printf(buffer, "%#xu", reg->u.immconst_u32[0]);
|
||||
break;
|
||||
case VKD3D_DATA_FLOAT:
|
||||
vkd3d_string_buffer_printf(buffer, "as_type<float4>(uint4(%#xu, %#xu, %#xu, %#xu))",
|
||||
--
|
||||
2.45.2
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,88 +0,0 @@
|
||||
From 24e25b011b5bb5cff32f2aaecef740e515f7fa21 Mon Sep 17 00:00:00 2001
|
||||
From: Esdras Tarsis <esdrastarsis@gmail.com>
|
||||
Date: Wed, 2 Sep 2020 23:41:19 -0300
|
||||
Subject: [PATCH] windows.networking.connectivity: Add stub dll.
|
||||
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46534
|
||||
Signed-off-by: Esdras Tarsis <esdrastarsis@gmail.com>
|
||||
---
|
||||
configure.ac | 1 +
|
||||
.../Makefile.in | 7 +++++
|
||||
.../windows.networking.connectivity.spec | 3 +++
|
||||
.../windows.networking.connectivity_main.c | 26 +++++++++++++++++++
|
||||
4 files changed, 37 insertions(+)
|
||||
create mode 100644 dlls/windows.networking.connectivity/Makefile.in
|
||||
create mode 100644 dlls/windows.networking.connectivity/windows.networking.connectivity.spec
|
||||
create mode 100644 dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 475743bc121..a722917f079 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3219,6 +3219,7 @@ WINE_CONFIG_MAKEFILE(dlls/windows.media.speech)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windows.media.speech/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windows.media)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windows.media/tests)
|
||||
+WINE_CONFIG_MAKEFILE(dlls/windows.networking.connectivity)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windows.networking.hostname)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windows.networking.hostname/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windows.networking)
|
||||
diff --git a/dlls/windows.networking.connectivity/Makefile.in b/dlls/windows.networking.connectivity/Makefile.in
|
||||
new file mode 100644
|
||||
index 00000000000..b5a57c13128
|
||||
--- /dev/null
|
||||
+++ b/dlls/windows.networking.connectivity/Makefile.in
|
||||
@@ -0,0 +1,7 @@
|
||||
+MODULE = windows.networking.connectivity.dll
|
||||
+IMPORTS = combase uuid
|
||||
+
|
||||
+EXTRADLLFLAGS = -mno-cygwin
|
||||
+
|
||||
+SOURCES = \
|
||||
+ windows.networking.connectivity_main.c
|
||||
diff --git a/dlls/windows.networking.connectivity/windows.networking.connectivity.spec b/dlls/windows.networking.connectivity/windows.networking.connectivity.spec
|
||||
new file mode 100644
|
||||
index 00000000000..4b286869e02
|
||||
--- /dev/null
|
||||
+++ b/dlls/windows.networking.connectivity/windows.networking.connectivity.spec
|
||||
@@ -0,0 +1,3 @@
|
||||
+@ stdcall -private DllCanUnloadNow()
|
||||
+@ stdcall -private DllGetActivationFactory(ptr ptr)
|
||||
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
|
||||
\ No newline at end of file
|
||||
diff --git a/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c b/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
new file mode 100644
|
||||
index 00000000000..b6d4561c493
|
||||
--- /dev/null
|
||||
+++ b/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
@@ -0,0 +1,26 @@
|
||||
+#include <stdarg.h>
|
||||
+
|
||||
+#define COBJMACROS
|
||||
+#include "windef.h"
|
||||
+#include "winbase.h"
|
||||
+#include "winstring.h"
|
||||
+#include "wine/debug.h"
|
||||
+
|
||||
+#include "objbase.h"
|
||||
+#include "initguid.h"
|
||||
+
|
||||
+#include "activation.h"
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(network);
|
||||
+
|
||||
+HRESULT WINAPI DllGetClassObject(REFCLSID clsid, REFIID riid, LPVOID *object)
|
||||
+{
|
||||
+ FIXME("clsid %s, riid %s, object %p stub!\n", debugstr_guid(clsid), debugstr_guid(riid), object);
|
||||
+ return CLASS_E_CLASSNOTAVAILABLE;
|
||||
+}
|
||||
+
|
||||
+HRESULT WINAPI DllGetActivationFactory(HSTRING classid, IActivationFactory **factory)
|
||||
+{
|
||||
+ FIXME("classid %s, factory %p stub!\n", debugstr_hstring(classid), factory);
|
||||
+ return E_NOINTERFACE;
|
||||
+}
|
||||
\ No newline at end of file
|
||||
--
|
||||
2.43.0
|
||||
|
@@ -1,136 +0,0 @@
|
||||
From 3f6ade7cf0bb0652b426ac20ef1c524f087966e4 Mon Sep 17 00:00:00 2001
|
||||
From: Esdras Tarsis <esdrastarsis@gmail.com>
|
||||
Date: Wed, 2 Sep 2020 23:53:28 -0300
|
||||
Subject: [PATCH] windows.networking.connectivity: Implement IActivationFactory
|
||||
stubs.
|
||||
|
||||
v2:
|
||||
Add Proper QueryInterface
|
||||
Fixed Initial Reference Count value.
|
||||
---
|
||||
.../windows.networking.connectivity_main.c | 104 +++++++++++++++++-
|
||||
1 file changed, 101 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c b/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
index b6d4561c493..219170366be 100644
|
||||
--- a/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
+++ b/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
@@ -13,6 +13,102 @@
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(network);
|
||||
|
||||
+struct windows_networking_connectivity
|
||||
+{
|
||||
+ IActivationFactory IActivationFactory_iface;
|
||||
+ LONG refcount;
|
||||
+};
|
||||
+
|
||||
+static inline struct windows_networking_connectivity *impl_from_IActivationFactory(IActivationFactory *iface)
|
||||
+{
|
||||
+ return CONTAINING_RECORD(iface, struct windows_networking_connectivity, IActivationFactory_iface);
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE windows_networking_connectivity_QueryInterface(
|
||||
+ IActivationFactory *iface, REFIID iid, void **object)
|
||||
+{
|
||||
+ TRACE("iface %p, iid %s, object %p stub!\n", iface, debugstr_guid(iid), object);
|
||||
+
|
||||
+ if (IsEqualGUID(iid, &IID_IUnknown) ||
|
||||
+ IsEqualGUID(iid, &IID_IInspectable) ||
|
||||
+ IsEqualGUID(iid, &IID_IAgileObject) ||
|
||||
+ IsEqualGUID(iid, &IID_IActivationFactory))
|
||||
+ {
|
||||
+ IUnknown_AddRef(iface);
|
||||
+ *object = &impl->INetworkInformationStatics_iface;
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+
|
||||
+ FIXME("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid));
|
||||
+ *object = NULL;
|
||||
+ return E_NOINTERFACE;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE windows_networking_connectivity_AddRef(
|
||||
+ IActivationFactory *iface)
|
||||
+{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_IActivationFactory(iface);
|
||||
+ ULONG rc = InterlockedIncrement(&impl->refcount);
|
||||
+ TRACE("%p increasing refcount to %lu.\n", impl, rc);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE windows_networking_connectivity_Release(
|
||||
+ IActivationFactory *iface)
|
||||
+{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_IActivationFactory(iface);
|
||||
+ ULONG rc = InterlockedDecrement(&impl->refcount);
|
||||
+ TRACE("%p decreasing refcount to %lu.\n", impl, rc);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE windows_networking_connectivity_GetIids(
|
||||
+ IActivationFactory *iface, ULONG *iid_count, IID **iids)
|
||||
+{
|
||||
+ FIXME("iface %p, iid_count %p, iids %p stub!\n", iface, iid_count, iids);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE windows_networking_connectivity_GetRuntimeClassName(
|
||||
+ IActivationFactory *iface, HSTRING *class_name)
|
||||
+{
|
||||
+ FIXME("iface %p, class_name %p stub!\n", iface, class_name);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE windows_networking_connectivity_GetTrustLevel(
|
||||
+ IActivationFactory *iface, TrustLevel *trust_level)
|
||||
+{
|
||||
+ FIXME("iface %p, trust_level %p stub!\n", iface, trust_level);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE windows_networking_connectivity_ActivateInstance(
|
||||
+ IActivationFactory *iface, IInspectable **instance)
|
||||
+{
|
||||
+ FIXME("iface %p, instance %p stub!\n", iface, instance);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static const struct IActivationFactoryVtbl activation_factory_vtbl =
|
||||
+{
|
||||
+ windows_networking_connectivity_QueryInterface,
|
||||
+ windows_networking_connectivity_AddRef,
|
||||
+ windows_networking_connectivity_Release,
|
||||
+ /* IInspectable methods */
|
||||
+ windows_networking_connectivity_GetIids,
|
||||
+ windows_networking_connectivity_GetRuntimeClassName,
|
||||
+ windows_networking_connectivity_GetTrustLevel,
|
||||
+ /* IActivationFactory methods */
|
||||
+ windows_networking_connectivity_ActivateInstance,
|
||||
+};
|
||||
+
|
||||
+static struct windows_networking_connectivity windows_networking_connectivity =
|
||||
+{
|
||||
+ {&activation_factory_vtbl},
|
||||
+ 1
|
||||
+};
|
||||
+
|
||||
HRESULT WINAPI DllGetClassObject(REFCLSID clsid, REFIID riid, LPVOID *object)
|
||||
{
|
||||
FIXME("clsid %s, riid %s, object %p stub!\n", debugstr_guid(clsid), debugstr_guid(riid), object);
|
||||
@@ -21,6 +117,8 @@ HRESULT WINAPI DllGetClassObject(REFCLSID clsid, REFIID riid, LPVOID *object)
|
||||
|
||||
HRESULT WINAPI DllGetActivationFactory(HSTRING classid, IActivationFactory **factory)
|
||||
{
|
||||
- FIXME("classid %s, factory %p stub!\n", debugstr_hstring(classid), factory);
|
||||
- return E_NOINTERFACE;
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+ TRACE("classid %s, factory %p.\n", debugstr_hstring(classid), factory);
|
||||
+ *factory = &windows_networking_connectivity.IActivationFactory_iface;
|
||||
+ IUnknown_AddRef(*factory);
|
||||
+ return S_OK;
|
||||
+}
|
||||
--
|
||||
2.40.1
|
||||
|
@@ -1,297 +0,0 @@
|
||||
From 49769a580bc4ce9a12a74d6f3c79cc32aa42acd5 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 1 Jun 2021 11:10:25 +1000
|
||||
Subject: windows.networking.connectivity: Implement INetworkInformationStatics
|
||||
stubs.
|
||||
|
||||
v2:
|
||||
Fixed QueryInterfaces
|
||||
|
||||
Based off patch by Esdras Tarsis.
|
||||
|
||||
diff --git a/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c b/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
index 219170366be..2a0185dd009 100644
|
||||
--- a/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
+++ b/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
@@ -10,12 +10,17 @@
|
||||
#include "initguid.h"
|
||||
|
||||
#include "activation.h"
|
||||
+#define WIDL_using_Windows_Networking_Connectivity
|
||||
+#define WIDL_using_Windows_Foundation_Collections
|
||||
+#include "windows.networking.connectivity.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(network);
|
||||
|
||||
struct windows_networking_connectivity
|
||||
{
|
||||
IActivationFactory IActivationFactory_iface;
|
||||
+ INetworkInformationStatics INetworkInformationStatics_iface;
|
||||
+ IVectorView_ConnectionProfile IVectorView_iface;
|
||||
LONG refcount;
|
||||
};
|
||||
|
||||
@@ -24,9 +29,240 @@ static inline struct windows_networking_connectivity *impl_from_IActivationFacto
|
||||
return CONTAINING_RECORD(iface, struct windows_networking_connectivity, IActivationFactory_iface);
|
||||
}
|
||||
|
||||
+static inline struct windows_networking_connectivity *impl_from_INetworkInformationStatics(INetworkInformationStatics *iface)
|
||||
+{
|
||||
+ return CONTAINING_RECORD(iface, struct windows_networking_connectivity, INetworkInformationStatics_iface);
|
||||
+}
|
||||
+
|
||||
+static inline struct windows_networking_connectivity *impl_from_IVectorView_ConnectionProfile(IVectorView_ConnectionProfile *iface)
|
||||
+{
|
||||
+ return CONTAINING_RECORD(iface, struct windows_networking_connectivity, IVectorView_iface);
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_QueryInterface(IVectorView_ConnectionProfile *iface, REFIID iid, void **object)
|
||||
+{
|
||||
+ TRACE("iface %p, iid %s, object %p stub!\n", iface, debugstr_guid(iid), object);
|
||||
+ IUnknown_AddRef(iface);
|
||||
+ *object = iface;
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE vector_view_AddRef(IVectorView_ConnectionProfile *iface)
|
||||
+{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_IVectorView_ConnectionProfile(iface);
|
||||
+ ULONG rc = InterlockedIncrement(&impl->refcount);
|
||||
+ TRACE("%p increasing refcount to %lu.\n", impl, rc);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE vector_view_Release(IVectorView_ConnectionProfile *iface)
|
||||
+{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_IVectorView_ConnectionProfile(iface);
|
||||
+ ULONG rc = InterlockedDecrement(&impl->refcount);
|
||||
+ TRACE("%p decreasing refcount to %lu.\n", impl, rc);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_GetIids(IVectorView_ConnectionProfile *iface, ULONG *iid_count, IID **iids)
|
||||
+{
|
||||
+ FIXME("iface %p, iid_count %p, iids %p stub!\n", iface, iid_count, iids);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_GetRuntimeClassName(IVectorView_ConnectionProfile *iface, HSTRING *class_name)
|
||||
+{
|
||||
+ FIXME("iface %p, class_name %p stub!\n", iface, class_name);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_GetTrustLevel(IVectorView_ConnectionProfile *iface, TrustLevel *trust_level)
|
||||
+{
|
||||
+ FIXME("iface %p, trust_level %p stub!\n", iface, trust_level);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_GetAt(IVectorView_ConnectionProfile *iface, UINT32 index, IConnectionProfile **out_value)
|
||||
+{
|
||||
+ FIXME("iface %p, index %#x, out_value %p stub!\n", iface, index, out_value);
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_get_Size(
|
||||
+ IVectorView_ConnectionProfile *iface, UINT32 *out_value)
|
||||
+{
|
||||
+ FIXME("iface %p, out_value %p stub!\n", iface, out_value);
|
||||
+ *out_value = 0;
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_IndexOf(
|
||||
+ IVectorView_ConnectionProfile *iface, IConnectionProfile *value, UINT32 *index, BOOLEAN *out_value)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p, index %p, out_value %p stub!\n", iface, value, index, out_value);
|
||||
+ *out_value = FALSE;
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_GetMany(
|
||||
+ IVectorView_ConnectionProfile *iface, UINT32 start_index, UINT32 size, IConnectionProfile **items, UINT32 *out_value)
|
||||
+{
|
||||
+ FIXME("iface %p, start_index %#x, items %p, out_value %p stub!\n", iface, start_index, items, out_value);
|
||||
+ *out_value = 0;
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static const struct IVectorView_ConnectionProfileVtbl vector_view_vtbl =
|
||||
+{
|
||||
+ vector_view_QueryInterface,
|
||||
+ vector_view_AddRef,
|
||||
+ vector_view_Release,
|
||||
+ vector_view_GetIids,
|
||||
+ vector_view_GetRuntimeClassName,
|
||||
+ vector_view_GetTrustLevel,
|
||||
+ vector_view_GetAt,
|
||||
+ vector_view_get_Size,
|
||||
+ vector_view_IndexOf,
|
||||
+ vector_view_GetMany
|
||||
+};
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_QueryInterface(
|
||||
+ INetworkInformationStatics *iface, REFIID iid, void **object)
|
||||
+{
|
||||
+ TRACE("iface %p, iid %s, object %p stub!\n", iface, debugstr_guid(iid), object);
|
||||
+
|
||||
+ if (IsEqualGUID(iid, &IID_IUnknown) ||
|
||||
+ IsEqualGUID(iid, &IID_IInspectable) ||
|
||||
+ IsEqualGUID(iid, &IID_IAgileObject) ||
|
||||
+ IsEqualGUID(iid, &IID_INetworkInformationStatics))
|
||||
+ {
|
||||
+ IUnknown_AddRef(iface);
|
||||
+ *object = iface;
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+
|
||||
+ WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid));
|
||||
+ *object = NULL;
|
||||
+ return E_NOINTERFACE;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE network_information_statics_AddRef(
|
||||
+ INetworkInformationStatics *iface)
|
||||
+{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_INetworkInformationStatics(iface);
|
||||
+ ULONG rc = InterlockedIncrement(&impl->refcount);
|
||||
+ TRACE("%p increasing refcount to %lu.\n", impl, rc);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE network_information_statics_Release(
|
||||
+ INetworkInformationStatics *iface)
|
||||
+{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_INetworkInformationStatics(iface);
|
||||
+ ULONG rc = InterlockedDecrement(&impl->refcount);
|
||||
+ TRACE("%p decreasing refcount to %lu.\n", impl, rc);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_GetIids(
|
||||
+ INetworkInformationStatics *iface, ULONG *iid_count, IID **iids)
|
||||
+{
|
||||
+ FIXME("iface %p, iid_count %p, iids %p stub!\n", iface, iid_count, iids);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_GetRuntimeClassName(
|
||||
+ INetworkInformationStatics *iface, HSTRING *class_name)
|
||||
+{
|
||||
+ FIXME("iface %p, class_name %p stub!\n", iface, class_name);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_GetTrustLevel(
|
||||
+ INetworkInformationStatics *iface, TrustLevel *trust_level)
|
||||
+{
|
||||
+ FIXME("iface %p, trust_level %p stub!\n", iface, trust_level);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_GetConnectionProfiles(INetworkInformationStatics *iface, __FIVectorView_1_Windows__CNetworking__CConnectivity__CConnectionProfile **value)
|
||||
+{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_INetworkInformationStatics(iface);
|
||||
+ FIXME("iface %p, %p stub!\n", iface, value);
|
||||
+ *value = &impl->IVectorView_iface;
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_GetInternetConnectionProfile(INetworkInformationStatics *iface, IConnectionProfile **value)
|
||||
+{
|
||||
+ FIXME("iface %p, %p stub!\n", iface, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_GetLanIdentifiers(INetworkInformationStatics *iface, __FIVectorView_1_Windows__CNetworking__CConnectivity__CLanIdentifier **value)
|
||||
+{
|
||||
+ FIXME("iface %p, %p stub!\n", iface, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_GetHostNames(INetworkInformationStatics *iface, __FIVectorView_1_Windows__CNetworking__CHostName **value)
|
||||
+{
|
||||
+ FIXME("iface %p, %p stub!\n", iface, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_GetProxyConfigurationAsync(INetworkInformationStatics *iface, __x_ABI_CWindows_CFoundation_CIUriRuntimeClass *name,
|
||||
+ __FIAsyncOperation_1_Windows__CNetworking__CConnectivity__CProxyConfiguration **value)
|
||||
+{
|
||||
+ FIXME("iface %p, %p, %p stub!\n", iface, name, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_GetSortedEndpointPairs(INetworkInformationStatics *iface, __FIIterable_1_Windows__CNetworking__CEndpointPair* destinationList,
|
||||
+ enum __x_ABI_CWindows_CNetworking_CHostNameSortOptions sortOptions,
|
||||
+ __FIVectorView_1_Windows__CNetworking__CEndpointPair **value)
|
||||
+{
|
||||
+ FIXME("iface %p, %p stub!\n", iface, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_eventadd_NetworkStatusChanged(
|
||||
+ INetworkInformationStatics *iface, __x_ABI_CWindows_CNetworking_CConnectivity_CINetworkStatusChangedEventHandler *value, EventRegistrationToken* token)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p, token %p stub!\n", iface, value, token);
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_eventremove_NetworkStatusChanged(
|
||||
+ INetworkInformationStatics *iface, EventRegistrationToken token)
|
||||
+{
|
||||
+ FIXME("iface %p, token %#I64x stub!\n", iface, token.value);
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static const struct INetworkInformationStaticsVtbl network_information_statics_vtbl =
|
||||
+{
|
||||
+ network_information_statics_QueryInterface,
|
||||
+ network_information_statics_AddRef,
|
||||
+ network_information_statics_Release,
|
||||
+ /* IInspectable methods */
|
||||
+ network_information_statics_GetIids,
|
||||
+ network_information_statics_GetRuntimeClassName,
|
||||
+ network_information_statics_GetTrustLevel,
|
||||
+ /* INetworkInformationStatics methods */
|
||||
+ network_information_statics_GetConnectionProfiles,
|
||||
+ network_information_statics_GetInternetConnectionProfile,
|
||||
+ network_information_statics_GetLanIdentifiers,
|
||||
+ network_information_statics_GetHostNames,
|
||||
+ network_information_statics_GetProxyConfigurationAsync,
|
||||
+ network_information_statics_GetSortedEndpointPairs,
|
||||
+ network_information_statics_eventadd_NetworkStatusChanged,
|
||||
+ network_information_statics_eventremove_NetworkStatusChanged,
|
||||
+};
|
||||
+
|
||||
static HRESULT STDMETHODCALLTYPE windows_networking_connectivity_QueryInterface(
|
||||
IActivationFactory *iface, REFIID iid, void **object)
|
||||
{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_IActivationFactory(iface);
|
||||
TRACE("iface %p, iid %s, object %p stub!\n", iface, debugstr_guid(iid), object);
|
||||
|
||||
if (IsEqualGUID(iid, &IID_IUnknown) ||
|
||||
@@ -39,6 +275,13 @@ static HRESULT STDMETHODCALLTYPE windows_networking_connectivity_QueryInterface(
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
+ if (IsEqualGUID(iid, &IID_INetworkInformationStatics))
|
||||
+ {
|
||||
+ IUnknown_AddRef(iface);
|
||||
+ *object = &impl->INetworkInformationStatics_iface;
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+
|
||||
FIXME("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid));
|
||||
*object = NULL;
|
||||
return E_NOINTERFACE;
|
||||
@@ -106,6 +349,8 @@ static const struct IActivationFactoryVtbl activation_factory_vtbl =
|
||||
static struct windows_networking_connectivity windows_networking_connectivity =
|
||||
{
|
||||
{&activation_factory_vtbl},
|
||||
+ {&network_information_statics_vtbl},
|
||||
+ {&vector_view_vtbl},
|
||||
1
|
||||
};
|
||||
|
@@ -1,198 +0,0 @@
|
||||
From ef41fa79b32aa3d211e1e8b64b9ace89f8fa5876 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 1 Jun 2021 13:13:57 +1000
|
||||
Subject: [PATCH 7/8] windows.networking.connectivity: Implement
|
||||
INetworkInformationStatics GetInternetConnectionProfile
|
||||
|
||||
---
|
||||
.../windows.networking.connectivity_main.c | 163 +++++++++++++++++-
|
||||
1 file changed, 161 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c b/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
index b96e6c4f0a4..ba1f5a5401d 100644
|
||||
--- a/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
+++ b/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "winbase.h"
|
||||
#include "winstring.h"
|
||||
#include "wine/debug.h"
|
||||
+#include "wine/heap.h"
|
||||
|
||||
#include "objbase.h"
|
||||
#include "initguid.h"
|
||||
@@ -201,12 +202,170 @@ static HRESULT STDMETHODCALLTYPE network_information_statics_GetConnectionProfil
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE network_information_statics_GetInternetConnectionProfile(INetworkInformationStatics *iface, IConnectionProfile **value)
|
||||
+struct connection_profile
|
||||
{
|
||||
- FIXME("iface %p, %p stub!\n", iface, value);
|
||||
+ IConnectionProfile IConnectionProfile_iface;
|
||||
+ LONG ref;
|
||||
+};
|
||||
+
|
||||
+static inline struct connection_profile *impl_from_IConnectionProfile(IConnectionProfile *iface)
|
||||
+{
|
||||
+ return CONTAINING_RECORD(iface, struct connection_profile, IConnectionProfile_iface);
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI connection_profile_QueryInterface(IConnectionProfile *iface, REFIID riid, void **object)
|
||||
+{
|
||||
+ TRACE("iface %p, iid %s, object %p stub!\n", iface, debugstr_guid(riid), object);
|
||||
+
|
||||
+ if (IsEqualGUID(riid, &IID_IUnknown) ||
|
||||
+ IsEqualGUID(riid, &IID_IInspectable) ||
|
||||
+ IsEqualGUID(riid, &IID_IConnectionProfile))
|
||||
+ {
|
||||
+ IUnknown_AddRef(iface);
|
||||
+ *object = iface;
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+
|
||||
+ WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
|
||||
+ *object = NULL;
|
||||
+ return E_NOINTERFACE;
|
||||
+}
|
||||
+
|
||||
+static ULONG WINAPI connection_profile_AddRef(IConnectionProfile *iface)
|
||||
+{
|
||||
+ struct connection_profile *impl = impl_from_IConnectionProfile(iface);
|
||||
+ ULONG rc = InterlockedIncrement(&impl->ref);
|
||||
+ TRACE("%p increasing refcount to %lu.\n", impl, rc);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static ULONG WINAPI connection_profile_Release(IConnectionProfile *iface)
|
||||
+{
|
||||
+ struct connection_profile *impl = impl_from_IConnectionProfile(iface);
|
||||
+ ULONG rc = InterlockedIncrement(&impl->ref);
|
||||
+ TRACE("%p increasing refcount to %lu.\n", impl, rc);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI connection_profile_GetIids(IConnectionProfile *iface, ULONG *iid_count, IID **iids)
|
||||
+{
|
||||
+ FIXME("iface %p, iid_count %p, iids %p stub!\n", iface, iid_count, iids);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI connection_profile_GetRuntimeClassName(IConnectionProfile *iface, HSTRING *class_name)
|
||||
+{
|
||||
+ FIXME("iface %p, class_name %p stub!\n", iface, class_name);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI connection_profile_GetTrustLevel(IConnectionProfile *iface, TrustLevel *trust_level)
|
||||
+{
|
||||
+ FIXME("iface %p, trust_level %p stub!\n", iface, trust_level);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI connection_profile_get_ProfileName(IConnectionProfile *iface, HSTRING *value)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p stub!\n", iface, value);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
+static HRESULT WINAPI connection_profile_GetNetworkConnectivityLevel(IConnectionProfile *iface,
|
||||
+ enum __x_ABI_CWindows_CNetworking_CConnectivity_CNetworkConnectivityLevel *value)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p stub!\n", iface, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI connection_profile_GetNetworkNames(IConnectionProfile *iface, __FIVectorView_1_HSTRING **value)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p stub!\n", iface, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI connection_profile_GetConnectionCost(IConnectionProfile *iface,
|
||||
+ __x_ABI_CWindows_CNetworking_CConnectivity_CIConnectionCost **value)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p stub!\n", iface, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI connection_profile_GetDataPlanStatus(IConnectionProfile *iface,
|
||||
+ __x_ABI_CWindows_CNetworking_CConnectivity_CIDataPlanStatus **value)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p stub!\n", iface, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI connection_profile_get_NetworkAdapter(IConnectionProfile *iface,
|
||||
+ __x_ABI_CWindows_CNetworking_CConnectivity_CINetworkAdapter **value)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p stub!\n", iface, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI connection_profile_GetLocalUsage(IConnectionProfile *iface,
|
||||
+ struct __x_ABI_CWindows_CFoundation_CDateTime start, struct __x_ABI_CWindows_CFoundation_CDateTime end,
|
||||
+ __x_ABI_CWindows_CNetworking_CConnectivity_CIDataUsage **value)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p stub!\n", iface, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI connection_profile_GetLocalUsagePerRoamingStates(IConnectionProfile *iface,
|
||||
+ struct __x_ABI_CWindows_CFoundation_CDateTime start, struct __x_ABI_CWindows_CFoundation_CDateTime end,
|
||||
+ enum __x_ABI_CWindows_CNetworking_CConnectivity_CRoamingStates states,
|
||||
+ __x_ABI_CWindows_CNetworking_CConnectivity_CIDataUsage **value)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p stub!\n", iface, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI connection_profile_get_NetworkSecuritySettings(IConnectionProfile *iface,
|
||||
+ __x_ABI_CWindows_CNetworking_CConnectivity_CINetworkSecuritySettings **value)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p stub!\n", iface, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+struct __x_ABI_CWindows_CNetworking_CConnectivity_CIConnectionProfileVtbl connection_vtbl =
|
||||
+{
|
||||
+ connection_profile_QueryInterface,
|
||||
+ connection_profile_AddRef,
|
||||
+ connection_profile_Release,
|
||||
+ connection_profile_GetIids,
|
||||
+ connection_profile_GetRuntimeClassName,
|
||||
+ connection_profile_GetTrustLevel,
|
||||
+ connection_profile_get_ProfileName,
|
||||
+ connection_profile_GetNetworkConnectivityLevel,
|
||||
+ connection_profile_GetNetworkNames,
|
||||
+ connection_profile_GetConnectionCost,
|
||||
+ connection_profile_GetDataPlanStatus,
|
||||
+ connection_profile_get_NetworkAdapter,
|
||||
+ connection_profile_GetLocalUsage,
|
||||
+ connection_profile_GetLocalUsagePerRoamingStates,
|
||||
+ connection_profile_get_NetworkSecuritySettings
|
||||
+};
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_GetInternetConnectionProfile(INetworkInformationStatics *iface, IConnectionProfile **value)
|
||||
+{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_INetworkInformationStatics(iface);
|
||||
+ struct connection_profile *profile;
|
||||
+
|
||||
+ FIXME("iface %p, %p stub!\n", impl, value);
|
||||
+
|
||||
+ profile = heap_alloc(sizeof(struct connection_profile));
|
||||
+ if (!profile)
|
||||
+ return E_OUTOFMEMORY;
|
||||
+
|
||||
+ profile->IConnectionProfile_iface.lpVtbl = &connection_vtbl;
|
||||
+ profile->ref = 1;
|
||||
+
|
||||
+ *value = &profile->IConnectionProfile_iface;
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
static HRESULT STDMETHODCALLTYPE network_information_statics_GetLanIdentifiers(INetworkInformationStatics *iface, __FIVectorView_1_Windows__CNetworking__CConnectivity__CLanIdentifier **value)
|
||||
{
|
||||
FIXME("iface %p, %p stub!\n", iface, value);
|
||||
--
|
||||
2.30.2
|
||||
|
@@ -1,30 +0,0 @@
|
||||
From 308cffe2fdf351c360870cd96c04b3384a70bd7a Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 1 Jun 2021 13:24:16 +1000
|
||||
Subject: [PATCH 8/8] windows.networking.connectivity: IConnectionProfile
|
||||
GetNetworkConnectivityLevel always return internet access
|
||||
|
||||
---
|
||||
.../windows.networking.connectivity_main.c | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c b/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
index ba1f5a5401d..0e8f4e699f0 100644
|
||||
--- a/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
+++ b/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
@@ -274,8 +274,10 @@ static HRESULT WINAPI connection_profile_get_ProfileName(IConnectionProfile *ifa
|
||||
static HRESULT WINAPI connection_profile_GetNetworkConnectivityLevel(IConnectionProfile *iface,
|
||||
enum __x_ABI_CWindows_CNetworking_CConnectivity_CNetworkConnectivityLevel *value)
|
||||
{
|
||||
- FIXME("iface %p, value %p stub!\n", iface, value);
|
||||
- return E_NOTIMPL;
|
||||
+ struct connection_profile *impl = impl_from_IConnectionProfile(iface);
|
||||
+ FIXME("iface %p, value %p stub!\n", impl, value);
|
||||
+ *value = NetworkConnectivityLevel_InternetAccess;
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI connection_profile_GetNetworkNames(IConnectionProfile *iface, __FIVectorView_1_HSTRING **value)
|
||||
--
|
||||
2.30.2
|
||||
|
@@ -1,62 +0,0 @@
|
||||
From 40f1be260d9741017d2bd4e755b3ce1b09187b3d Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Mon, 25 Mar 2024 08:38:33 +1100
|
||||
Subject: [PATCH] windows.networking.connectivity: Register interfaces
|
||||
|
||||
---
|
||||
.../Makefile.in | 2 ++
|
||||
.../classes.idl | 28 +++++++++++++++++++
|
||||
2 files changed, 30 insertions(+)
|
||||
create mode 100644 dlls/windows.networking.connectivity/classes.idl
|
||||
|
||||
diff --git a/dlls/windows.networking.connectivity/Makefile.in b/dlls/windows.networking.connectivity/Makefile.in
|
||||
index 3f0895ab567..43c512a2213 100644
|
||||
--- a/dlls/windows.networking.connectivity/Makefile.in
|
||||
+++ b/dlls/windows.networking.connectivity/Makefile.in
|
||||
@@ -1,7 +1,9 @@
|
||||
MODULE = windows.networking.connectivity.dll
|
||||
IMPORTS = combase uuid
|
||||
+EXTRAIDLFLAGS = -DDO_NO_IMPORTS
|
||||
|
||||
EXTRADLLFLAGS = -mno-cygwin
|
||||
|
||||
SOURCES = \
|
||||
+ classes.idl \
|
||||
windows.networking.connectivity_main.c
|
||||
diff --git a/dlls/windows.networking.connectivity/classes.idl b/dlls/windows.networking.connectivity/classes.idl
|
||||
new file mode 100644
|
||||
index 00000000000..548a62be964
|
||||
--- /dev/null
|
||||
+++ b/dlls/windows.networking.connectivity/classes.idl
|
||||
@@ -0,0 +1,28 @@
|
||||
+/*
|
||||
+ * Runtime Classes for windows.networking.hostname.dll
|
||||
+ *
|
||||
+ * Copyright (C) 2023 Mohamad Al-Jaf
|
||||
+ *
|
||||
+ * 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
|
||||
+ */
|
||||
+
|
||||
+#pragma makedep register
|
||||
+
|
||||
+#ifdef __WIDL__
|
||||
+#pragma winrt ns_prefix
|
||||
+#endif
|
||||
+
|
||||
+#define DO_NO_IMPORTS
|
||||
+#include "windows.networking.connectivity.idl"
|
||||
--
|
||||
2.43.0
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [46534] Implement INetworkInformationStatics interface
|
@@ -1,4 +1,4 @@
|
||||
From 11f4a6f3093e589ee31d88a872f35155a26e47aa Mon Sep 17 00:00:00 2001
|
||||
From 1a1df38fe5f57d6c8872d0c92cc7b24512c8c72d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 16:37:40 +0100
|
||||
Subject: [PATCH] wineboot: Initialize proxy settings registry key.
|
||||
@@ -9,19 +9,19 @@ Subject: [PATCH] wineboot: Initialize proxy settings registry key.
|
||||
2 files changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/programs/wineboot/Makefile.in b/programs/wineboot/Makefile.in
|
||||
index 667f8f48702..4a1747ad047 100644
|
||||
index 0983420a91f..d346b8984b1 100644
|
||||
--- a/programs/wineboot/Makefile.in
|
||||
+++ b/programs/wineboot/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
MODULE = wineboot.exe
|
||||
IMPORTS = uuid advapi32 ws2_32 kernelbase
|
||||
-DELAYIMPORTS = shell32 shlwapi version user32 setupapi newdev
|
||||
+DELAYIMPORTS = shell32 shlwapi version user32 setupapi newdev wininet
|
||||
-DELAYIMPORTS = shell32 shlwapi version user32 gdi32 setupapi newdev
|
||||
+DELAYIMPORTS = shell32 shlwapi version user32 gdi32 setupapi newdev wininet
|
||||
|
||||
EXTRADLLFLAGS = -mconsole
|
||||
|
||||
diff --git a/programs/wineboot/wineboot.c b/programs/wineboot/wineboot.c
|
||||
index b82c5ec6524..2af77ee0d87 100644
|
||||
index 57aa4335534..d15ed726530 100644
|
||||
--- a/programs/wineboot/wineboot.c
|
||||
+++ b/programs/wineboot/wineboot.c
|
||||
@@ -77,6 +77,7 @@
|
||||
@@ -32,7 +32,7 @@ index b82c5ec6524..2af77ee0d87 100644
|
||||
#include <newdev.h>
|
||||
#include "resource.h"
|
||||
|
||||
@@ -902,6 +903,13 @@ static void create_volatile_environment_registry_key(void)
|
||||
@@ -1180,6 +1181,13 @@ static void create_volatile_environment_registry_key(void)
|
||||
RegCloseKey( hkey );
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ index b82c5ec6524..2af77ee0d87 100644
|
||||
/* Performs the rename operations dictated in %SystemRoot%\Wininit.ini.
|
||||
* Returns FALSE if there was an error, or otherwise if all is ok.
|
||||
*/
|
||||
@@ -1712,6 +1720,7 @@ int __cdecl main( int argc, char *argv[] )
|
||||
@@ -2019,6 +2027,7 @@ int __cdecl main( int argc, char *argv[] )
|
||||
if (init || update) update_wineprefix( update );
|
||||
|
||||
create_volatile_environment_registry_key();
|
||||
@@ -55,5 +55,5 @@ index b82c5ec6524..2af77ee0d87 100644
|
||||
ProcessRunKeys( HKEY_LOCAL_MACHINE, L"RunOnce", TRUE, TRUE );
|
||||
|
||||
--
|
||||
2.34.1
|
||||
2.45.2
|
||||
|
||||
|
@@ -1 +1 @@
|
||||
Wine Staging 9.22
|
||||
Wine Staging 10.0
|
||||
|
@@ -1 +1 @@
|
||||
51ccd95c49c2c61ad41960b25a01f834601d70c0
|
||||
b073859675060c9211fcbccfd90e4e87520dc2c2
|
||||
|
Reference in New Issue
Block a user