mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Added windows.networking.connectivity-new-dll patchset
This commit is contained in:
parent
356d0d750c
commit
73c8cb1002
@ -240,6 +240,7 @@ patch_enable_all ()
|
||||
enable_version_VerQueryValue="$1"
|
||||
enable_wbemdisp_ISWbemObject_Invoke="$1"
|
||||
enable_widl_SLTG_Typelib_Support="$1"
|
||||
enable_windows_networking_connectivity_new_dll="$1"
|
||||
enable_windowscodecs_GIF_Encoder="$1"
|
||||
enable_windowscodecs_TIFF_Support="$1"
|
||||
enable_wine_inf_Directory_ContextMenuHandlers="$1"
|
||||
@ -768,6 +769,9 @@ patch_enable ()
|
||||
widl-SLTG_Typelib_Support)
|
||||
enable_widl_SLTG_Typelib_Support="$2"
|
||||
;;
|
||||
windows.networking.connectivity-new-dll)
|
||||
enable_windows_networking_connectivity_new_dll="$2"
|
||||
;;
|
||||
windowscodecs-GIF_Encoder)
|
||||
enable_windowscodecs_GIF_Encoder="$2"
|
||||
;;
|
||||
@ -3726,6 +3730,10 @@ fi
|
||||
|
||||
# Patchset wbemdisp-ISWbemObject-Invoke
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#51120] wbemdisp: Support DISPATCH_METHOD in ISWbemObject Invoke.
|
||||
# | * [#39463] vbscript: Support looping of data from WMI
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/vbscript/interp.c, dlls/vbscript/tests/lang.vbs, dlls/vbscript/tests/run.c, dlls/vbscript/utils.c,
|
||||
# | dlls/wbemdisp/locator.c, dlls/wbemprox/query.c
|
||||
@ -3737,6 +3745,28 @@ if test "$enable_wbemdisp_ISWbemObject_Invoke" -eq 1; then
|
||||
patch_apply wbemdisp-ISWbemObject-Invoke/0004-vbscript-Add-wmi-test.patch
|
||||
fi
|
||||
|
||||
# Patchset windows.networking.connectivity-new-dll
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#46534] Implement INetworkInformationStatics interface
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * configure.ac, dlls/windows.networking.connectivity/Makefile.in, dlls/windows.networking.connectivity/network.rgs,
|
||||
# | dlls/windows.networking.connectivity/rsrc.rc, dlls/windows.networking.connectivity/windows.networking.connectivity.spec,
|
||||
# | dlls/windows.networking.connectivity/windows.networking.connectivity_main.c, include/Makefile.in,
|
||||
# | include/windows.networking.connectivity.idl, include/windows.networking.idl
|
||||
# |
|
||||
if test "$enable_windows_networking_connectivity_new_dll" -eq 1; then
|
||||
patch_apply windows.networking.connectivity-new-dll/0001-include-Add-windows.networking.connectivity.idl.patch
|
||||
patch_apply windows.networking.connectivity-new-dll/0002-include-Add-windows.networking.idl.patch
|
||||
patch_apply windows.networking.connectivity-new-dll/0003-windows.networking.connectivity-Add-stub-dll.patch
|
||||
patch_apply windows.networking.connectivity-new-dll/0004-windows.networking.connectivity-Implement-IActivatio.patch
|
||||
patch_apply windows.networking.connectivity-new-dll/0005-windows.networking.connectivity-Implement-INetworkIn.patch
|
||||
patch_apply windows.networking.connectivity-new-dll/0006-windows.networking.connectivity-Registry-DLL.patch
|
||||
patch_apply windows.networking.connectivity-new-dll/0007-windows.networking.connectivity-Implement-INetworkIn.patch
|
||||
patch_apply windows.networking.connectivity-new-dll/0008-windows.networking.connectivity-IConnectionProfile-G.patch
|
||||
fi
|
||||
|
||||
# Patchset windowscodecs-GIF_Encoder
|
||||
# |
|
||||
# | Modified files:
|
||||
|
@ -0,0 +1,400 @@
|
||||
From c928a124f0e5a35fe02f27f0d08cfdbc9e6a35e8 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Fri, 28 May 2021 12:34:37 +1000
|
||||
Subject: [PATCH 1/8] include: Add windows.networking.connectivity.idl
|
||||
|
||||
---
|
||||
include/Makefile.in | 1 +
|
||||
include/windows.networking.connectivity.idl | 368 ++++++++++++++++++++
|
||||
2 files changed, 369 insertions(+)
|
||||
create mode 100644 include/windows.networking.connectivity.idl
|
||||
|
||||
diff --git a/include/Makefile.in b/include/Makefile.in
|
||||
index 9822bce6bdd..8e40dfd903f 100644
|
||||
--- a/include/Makefile.in
|
||||
+++ b/include/Makefile.in
|
||||
@@ -760,6 +760,7 @@ SOURCES = \
|
||||
windows.h \
|
||||
windows.media.devices.idl \
|
||||
windows.media.speechsynthesis.idl \
|
||||
+ windows.networking.connectivity.idl \
|
||||
windows.system.idl \
|
||||
windows.system.userprofile.idl \
|
||||
windowscontracts.idl \
|
||||
diff --git a/include/windows.networking.connectivity.idl b/include/windows.networking.connectivity.idl
|
||||
new file mode 100644
|
||||
index 00000000000..3ccefca02fa
|
||||
--- /dev/null
|
||||
+++ b/include/windows.networking.connectivity.idl
|
||||
@@ -0,0 +1,368 @@
|
||||
+/*
|
||||
+ * Copyright 2021 Alistair Leslie-Hughes
|
||||
+ *
|
||||
+ * 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
|
||||
+ */
|
||||
+
|
||||
+#ifdef __WIDL__
|
||||
+#pragma winrt ns_prefix
|
||||
+#endif
|
||||
+
|
||||
+import "inspectable.idl";
|
||||
+import "asyncinfo.idl";
|
||||
+import "eventtoken.idl";
|
||||
+import "windowscontracts.idl";
|
||||
+import "windows.foundation.idl";
|
||||
+
|
||||
+namespace Windows
|
||||
+{
|
||||
+ namespace Foundation
|
||||
+ {
|
||||
+ interface IClosable;
|
||||
+
|
||||
+ /*runtimeclass Uri;*/
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+namespace Windows
|
||||
+{
|
||||
+ namespace Networking
|
||||
+ {
|
||||
+ /*typedef enum DomainNameType DomainNameType;*/
|
||||
+
|
||||
+ /*runtimeclass EndpointPair;*/
|
||||
+
|
||||
+ /*runtimeclass HostName;*/
|
||||
+
|
||||
+ /*typedef enum HostNameSortOptions HostNameSortOptions;*/
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+namespace Windows
|
||||
+{
|
||||
+ namespace Networking
|
||||
+ {
|
||||
+ namespace Connectivity
|
||||
+ {
|
||||
+ runtimeclass ConnectionCost;
|
||||
+ runtimeclass ConnectionProfile;
|
||||
+ runtimeclass DataPlanStatus;
|
||||
+ runtimeclass DataPlanUsage;
|
||||
+ runtimeclass DataUsage;
|
||||
+ runtimeclass IPInformation;
|
||||
+ runtimeclass LanIdentifier;
|
||||
+ runtimeclass LanIdentifierData;
|
||||
+ runtimeclass NetworkAdapter;
|
||||
+ runtimeclass NetworkInformation;
|
||||
+ runtimeclass NetworkSecuritySettings;
|
||||
+ runtimeclass ProxyConfiguration;
|
||||
+
|
||||
+ typedef enum NetworkConnectivityLevel NetworkConnectivityLevel;
|
||||
+ typedef enum NetworkCostType NetworkCostType;
|
||||
+ typedef enum RoamingStates RoamingStates;
|
||||
+ typedef enum NetworkAuthenticationType NetworkAuthenticationType;
|
||||
+ typedef enum NetworkEncryptionType NetworkEncryptionType;
|
||||
+
|
||||
+ declare
|
||||
+ {
|
||||
+ interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.ConnectionProfile*>;
|
||||
+ interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.LanIdentifier*>;
|
||||
+ /*interface Windows.Foundation.Collections.IVectorView<Windows.Networking.HostName*>;*/
|
||||
+ /*interface Windows.Foundation.Collections.IVectorView<Windows.Networking.EndpointPair*>;*/
|
||||
+
|
||||
+
|
||||
+ /*interface Windows.Foundation.Collections.IIterable<Windows.Networking.EndpointPair*>;*/
|
||||
+
|
||||
+ /*interface Windows.Foundation.IAsyncOperation<Windows.Networking.Connectivity.ProxyConfiguration*>;*/
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ enum NetworkConnectivityLevel
|
||||
+ {
|
||||
+ None,
|
||||
+ LocalAccess,
|
||||
+ ConstrainedInternetAccess,
|
||||
+ InternetAccess
|
||||
+ };
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ enum NetworkCostType
|
||||
+ {
|
||||
+ Unknown,
|
||||
+ Unrestricted,
|
||||
+ Fixed,
|
||||
+ Variable
|
||||
+ };
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [flags]
|
||||
+ enum RoamingStates
|
||||
+ {
|
||||
+ None = 0x0,
|
||||
+ NotRoaming = 0x1,
|
||||
+ Roaming = 0x2
|
||||
+ };
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ enum NetworkAuthenticationType
|
||||
+ {
|
||||
+ None,
|
||||
+ Unknown,
|
||||
+ Open80211,
|
||||
+ SharedKey80211,
|
||||
+ Wpa,
|
||||
+ WpaPsk,
|
||||
+ WpaNone,
|
||||
+ Rsna,
|
||||
+ RsnaPsk,
|
||||
+ Ihv
|
||||
+ };
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ enum NetworkEncryptionType
|
||||
+ {
|
||||
+ None,
|
||||
+ Unknown,
|
||||
+ Wep,
|
||||
+ Wep40,
|
||||
+ Wep104,
|
||||
+ Tkip,
|
||||
+ Ccmp,
|
||||
+ WpaUseGroup,
|
||||
+ RsnUseGroup,
|
||||
+ Ihv
|
||||
+ };
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [uuid(71ba143f-598e-49d0-84eb-8febaedcc195)]
|
||||
+ delegate HRESULT NetworkStatusChangedEventHandler([in] IInspectable* sender);
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [exclusiveto(Windows.Networking.Connectivity.ConnectionProfile)]
|
||||
+ [uuid(71ba143c-598e-49d0-84eb-8febaedcc195)]
|
||||
+ interface IConnectionProfile : IInspectable
|
||||
+ {
|
||||
+ [propget] HRESULT ProfileName([out, retval] HSTRING* value);
|
||||
+ HRESULT GetNetworkConnectivityLevel([out, retval] Windows.Networking.Connectivity.NetworkConnectivityLevel* value);
|
||||
+ HRESULT GetNetworkNames([out, retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
|
||||
+ HRESULT GetConnectionCost([out, retval] Windows.Networking.Connectivity.ConnectionCost** value);
|
||||
+ HRESULT GetDataPlanStatus([out, retval] Windows.Networking.Connectivity.DataPlanStatus** value);
|
||||
+ [propget] HRESULT NetworkAdapter([out, retval] Windows.Networking.Connectivity.NetworkAdapter** value);
|
||||
+ HRESULT GetLocalUsage([in] Windows.Foundation.DateTime start, [in] Windows.Foundation.DateTime end,
|
||||
+ [out, retval] Windows.Networking.Connectivity.DataUsage** value);
|
||||
+ HRESULT GetLocalUsagePerRoamingStates([in] Windows.Foundation.DateTime start,
|
||||
+ [in] Windows.Foundation.DateTime end, [in] Windows.Networking.Connectivity.RoamingStates states,
|
||||
+ [out, retval] Windows.Networking.Connectivity.DataUsage** value);
|
||||
+ [propget] HRESULT NetworkSecuritySettings([out, retval] Windows.Networking.Connectivity.NetworkSecuritySettings** value);
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [exclusiveto(Windows.Networking.Connectivity.LanIdentifier)]
|
||||
+ [uuid(48aa53aa-1108-4546-a6cb-9a74da4b7ba0)]
|
||||
+ interface ILanIdentifier : IInspectable
|
||||
+ {
|
||||
+ [propget] HRESULT InfrastructureId([out, retval] Windows.Networking.Connectivity.LanIdentifierData** value);
|
||||
+ [propget] HRESULT PortId([out, retval] Windows.Networking.Connectivity.LanIdentifierData** value);
|
||||
+ [propget] HRESULT NetworkAdapterId([out, retval] GUID* value);
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [exclusiveto(Windows.Networking.Connectivity.LanIdentifierData)]
|
||||
+ [uuid(a74e83c3-d639-45be-a36a-c4e4aeaf6d9b)]
|
||||
+ interface ILanIdentifierData : IInspectable
|
||||
+ {
|
||||
+ [propget] HRESULT Type([out, retval] UINT32* value);
|
||||
+ [propget] HRESULT Value([out,retval] /*Windows.Foundation.Collections.IVectorView<BYTE>** */ BYTE **value);
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [exclusiveto(Windows.Networking.Connectivity.IPInformation)]
|
||||
+ [uuid(d85145e0-138f-47d7-9b3a-36bb488cef33)]
|
||||
+ interface IIPInformation : IInspectable
|
||||
+ {
|
||||
+ [propget] HRESULT NetworkAdapter([out, retval] Windows.Networking.Connectivity.NetworkAdapter** value);
|
||||
+ [propget] HRESULT PrefixLength([out, retval] /*Windows.Foundation.IReference<BYTE>** */ BYTE **value);
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [exclusiveto(Windows.Networking.Connectivity.NetworkInformation)]
|
||||
+ [uuid(5074f851-950d-4165-9c15-365619481eea)]
|
||||
+ interface INetworkInformationStatics : IInspectable
|
||||
+ {
|
||||
+ HRESULT GetConnectionProfiles([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.ConnectionProfile*>** value);
|
||||
+ HRESULT GetInternetConnectionProfile([out, retval] Windows.Networking.Connectivity.ConnectionProfile** value);
|
||||
+ HRESULT GetLanIdentifiers([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.LanIdentifier*>** value);
|
||||
+ HRESULT GetHostNames([out, retval] /*Windows.Foundation.Collections.IVectorView<Windows.Networking.HostName*>** */ DWORD **value);
|
||||
+ HRESULT GetProxyConfigurationAsync(/*[in] Windows.Foundation.Uri* */ char* uri,
|
||||
+ [out, retval] /*Windows.Foundation.IAsyncOperation<Windows.Networking.Connectivity.ProxyConfiguration*>** */ DWORD **value);
|
||||
+ HRESULT GetSortedEndpointPairs([in] /* Windows.Foundation.Collections.IIterable<Windows.Networking.EndpointPair*>* */ DWORD *endpoint,
|
||||
+ [in] /*Windows.Networking.HostNameSortOptions*/ DWORD options,
|
||||
+ [out, retval] /*Windows.Foundation.Collections.IVectorView<Windows.Networking.EndpointPair*>** */ DWORD **value);
|
||||
+ [eventadd] HRESULT NetworkStatusChanged([in] Windows.Networking.Connectivity.NetworkStatusChangedEventHandler* handler,
|
||||
+ [out, retval] EventRegistrationToken* eventCookie);
|
||||
+ [eventremove] HRESULT NetworkStatusChanged([in] EventRegistrationToken cookie);
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [exclusiveto(Windows.Networking.Connectivity.ConnectionCost)]
|
||||
+ [uuid(bad7d829-3416-4b10-a202-bac0b075bdae)]
|
||||
+ interface IConnectionCost : IInspectable
|
||||
+ {
|
||||
+ [propget] HRESULT NetworkCostType([out, retval] Windows.Networking.Connectivity.NetworkCostType* value);
|
||||
+ [propget] HRESULT Roaming([out, retval] boolean* value);
|
||||
+ [propget] HRESULT OverDataLimit([out, retval] boolean* value);
|
||||
+ [propget] HRESULT ApproachingDataLimit([out, retval] boolean* value);
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [exclusiveto(Windows.Networking.Connectivity.DataUsage)]
|
||||
+ [uuid(c1431dd3-b146-4d39-b959-0c69b096c512)]
|
||||
+ interface IDataUsage : IInspectable
|
||||
+ {
|
||||
+ [propget] HRESULT BytesSent([out, retval] UINT64* value);
|
||||
+ [propget] HRESULT BytesReceived([out, retval] UINT64* value);
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [exclusiveto(Windows.Networking.Connectivity.NetworkAdapter)]
|
||||
+ [uuid(3b542e03-5388-496c-a8a3-affd39aec2e6)]
|
||||
+ interface INetworkAdapter : IInspectable
|
||||
+ {
|
||||
+ [propget] HRESULT OutboundMaxBitsPerSecond([out, retval] UINT64* value);
|
||||
+ [propget] HRESULT InboundMaxBitsPerSecond([out ,retval] UINT64* value);
|
||||
+ [propget] HRESULT IanaInterfaceType([out, retval] UINT32* value);
|
||||
+ [propget] HRESULT NetworkItem([out, retval] /*Windows.Networking.Connectivity.NetworkItem** */ DWORD **value);
|
||||
+ [propget] HRESULT NetworkAdapterId([out, retval] GUID* value);
|
||||
+ HRESULT GetConnectedProfileAsync([out, retval] /*Windows.Foundation.IAsyncOperation<Windows.Networking.Connectivity.ConnectionProfile*>** */ DWORD **value);
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [exclusiveto(Windows.Networking.Connectivity.NetworkSecuritySettings)]
|
||||
+ [uuid(7CA07E8D-917B-4B5F-B84D-28F7A5AC5402)]
|
||||
+ interface INetworkSecuritySettings : IInspectable
|
||||
+ {
|
||||
+ [propget] HRESULT NetworkAuthenticationType([out, retval] Windows.Networking.Connectivity.NetworkAuthenticationType* value);
|
||||
+ [propget] HRESULT NetworkEncryptionType([out, retval] Windows.Networking.Connectivity.NetworkEncryptionType* value);
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [exclusiveto(Windows.Networking.Connectivity.DataPlanUsage)]
|
||||
+ [uuid(b921492d-3b44-47ff-b361-be59e69ed1b0)]
|
||||
+ interface IDataPlanUsage : IInspectable
|
||||
+ {
|
||||
+ [propget] HRESULT MegabytesUsed([out] [retval] UINT32* value);
|
||||
+ [propget] HRESULT LastSyncTime([out] [retval] Windows.Foundation.DateTime* value);
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [exclusiveto(Windows.Networking.Connectivity.DataPlanStatus)]
|
||||
+ [uuid(977a8b8c-3885-40f3-8851-42cd2bd568bb)]
|
||||
+ interface IDataPlanStatus : IInspectable
|
||||
+ {
|
||||
+ [propget] HRESULT DataPlanUsage([out, retval] Windows.Networking.Connectivity.DataPlanUsage** value);
|
||||
+ [propget] HRESULT DataLimitInMegabytes([out, retval] /*Windows.Foundation.IReference<UINT32>** */ UINT32 **value);
|
||||
+ [propget] HRESULT InboundBitsPerSecond([out, retval] /* Windows.Foundation.IReference<UINT64>** */ UINT64 **value);
|
||||
+ [propget] HRESULT OutboundBitsPerSecond([out, retval] /* Windows.Foundation.IReference<UINT64>** */ UINT64 **value);
|
||||
+ [propget] HRESULT NextBillingCycle([out, retval] /* Windows.Foundation.IReference<Windows.Foundation.DateTime>** */ UINT64 **value);
|
||||
+ [propget] HRESULT MaxTransferSizeInMegabytes([out, retval] /*Windows.Foundation.IReference<UINT32>** */ UINT32 **value);
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [marshaling_behavior(agile)]
|
||||
+ runtimeclass DataPlanStatus
|
||||
+ {
|
||||
+ [default] interface Windows.Networking.Connectivity.IDataPlanStatus;
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [marshaling_behavior(agile)]
|
||||
+ runtimeclass DataUsage
|
||||
+ {
|
||||
+ [default] interface Windows.Networking.Connectivity.IDataUsage;
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [marshaling_behavior(agile)]
|
||||
+ runtimeclass NetworkAdapter
|
||||
+ {
|
||||
+ [default] interface Windows.Networking.Connectivity.INetworkAdapter;
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [marshaling_behavior(agile)]
|
||||
+ runtimeclass DataPlanUsage
|
||||
+ {
|
||||
+ [default] interface Windows.Networking.Connectivity.IDataPlanUsage;
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [marshaling_behavior(agile)]
|
||||
+ [static(Windows.Networking.Connectivity.INetworkInformationStatics, Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ /*[static(Windows.Networking.Connectivity.INetworkInformationStatics2, Windows.Foundation.UniversalApiContract, 1.0)]*/
|
||||
+ runtimeclass NetworkInformation
|
||||
+ {
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [marshaling_behavior(agile)]
|
||||
+ runtimeclass IPInformation
|
||||
+ {
|
||||
+ [default] interface Windows.Networking.Connectivity.IIPInformation;
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [marshaling_behavior(agile)]
|
||||
+ runtimeclass NetworkSecuritySettings
|
||||
+ {
|
||||
+ [default] interface Windows.Networking.Connectivity.INetworkSecuritySettings;
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [marshaling_behavior(agile)]
|
||||
+ runtimeclass ConnectionProfile
|
||||
+ {
|
||||
+ [default] interface Windows.Networking.Connectivity.IConnectionProfile;
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Networking.Connectivity.IConnectionProfile2;
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Networking.Connectivity.IConnectionProfile3;
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Networking.Connectivity.IConnectionProfile4;
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Networking.Connectivity.IConnectionProfile5;
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [marshaling_behavior(agile)]
|
||||
+ runtimeclass ConnectionCost
|
||||
+ {
|
||||
+ [default] interface Windows.Networking.Connectivity.IConnectionCost;
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Networking.Connectivity.IConnectionCost2;
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [marshaling_behavior(agile)]
|
||||
+ runtimeclass LanIdentifier
|
||||
+ {
|
||||
+ [default] interface Windows.Networking.Connectivity.ILanIdentifier;
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [marshaling_behavior(agile)]
|
||||
+ runtimeclass LanIdentifierData
|
||||
+ {
|
||||
+ [default] interface Windows.Networking.Connectivity.ILanIdentifierData;
|
||||
+ }
|
||||
+
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
--
|
||||
2.30.2
|
||||
|
@ -0,0 +1,120 @@
|
||||
From 9bedd90e89affd509fa9e5a3301eda4f4595b9d8 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 1 Jun 2021 10:26:28 +1000
|
||||
Subject: [PATCH 2/8] include: Add windows.networking.idl
|
||||
|
||||
---
|
||||
include/Makefile.in | 1 +
|
||||
include/windows.networking.idl | 87 ++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 88 insertions(+)
|
||||
create mode 100644 include/windows.networking.idl
|
||||
|
||||
diff --git a/include/Makefile.in b/include/Makefile.in
|
||||
index 8e40dfd903f..c7b186fed44 100644
|
||||
--- a/include/Makefile.in
|
||||
+++ b/include/Makefile.in
|
||||
@@ -761,6 +761,7 @@ SOURCES = \
|
||||
windows.media.devices.idl \
|
||||
windows.media.speechsynthesis.idl \
|
||||
windows.networking.connectivity.idl \
|
||||
+ windows.networking.idl \
|
||||
windows.system.idl \
|
||||
windows.system.userprofile.idl \
|
||||
windowscontracts.idl \
|
||||
diff --git a/include/windows.networking.idl b/include/windows.networking.idl
|
||||
new file mode 100644
|
||||
index 00000000000..160cd78e540
|
||||
--- /dev/null
|
||||
+++ b/include/windows.networking.idl
|
||||
@@ -0,0 +1,87 @@
|
||||
+/*
|
||||
+ * Copyright 2021 Alistair Leslie-Hughes
|
||||
+ *
|
||||
+ * 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
|
||||
+ */
|
||||
+
|
||||
+#ifdef __WIDL__
|
||||
+#pragma winrt ns_prefix
|
||||
+#endif
|
||||
+
|
||||
+import "inspectable.idl";
|
||||
+import "asyncinfo.idl";
|
||||
+import "eventtoken.idl";
|
||||
+import "windowscontracts.idl";
|
||||
+import "windows.foundation.idl";
|
||||
+import "windows.networking.connectivity.idl";
|
||||
+
|
||||
+namespace Windows
|
||||
+{
|
||||
+ namespace Networking
|
||||
+ {
|
||||
+ typedef enum HostNameType HostNameType;
|
||||
+
|
||||
+ runtimeclass HostName;
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ enum HostNameType
|
||||
+ {
|
||||
+ DomainName,
|
||||
+ Ipv4,
|
||||
+ Ipv6,
|
||||
+ Bluetooth
|
||||
+ };
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [exclusiveto(Windows.Networking.HostName)]
|
||||
+ [uuid(bf8ecaad-ed96-49a7-9084-d416cae88dcb)]
|
||||
+ interface IHostName : IInspectable
|
||||
+ {
|
||||
+ [propget] HRESULT IPInformation([out, retval] Windows.Networking.Connectivity.IPInformation** value);
|
||||
+ [propget] HRESULT RawName([out, retval] HSTRING* value);
|
||||
+ [propget] HRESULT DisplayName([out, retval] HSTRING* value);
|
||||
+ [propget] HRESULT CanonicalName([out, retval] HSTRING* value);
|
||||
+ [propget] HRESULT Type([out, retval] Windows.Networking.HostNameType* value);
|
||||
+ HRESULT IsEqual([in] Windows.Networking.HostName* hostName, [out, retval] boolean* equal);
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [exclusiveto(Windows.Networking.HostName)]
|
||||
+ [uuid(458c23ed-712f-4576-adf1-c20b2c643558)]
|
||||
+ interface IHostNameFactory : IInspectable
|
||||
+ {
|
||||
+ HRESULT CreateHostName([in] HSTRING hostname, [out, retval] Windows.Networking.HostName** value);
|
||||
+ }
|
||||
+
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [exclusiveto(Windows.Networking.HostName)]
|
||||
+ [uuid(f68cd4bf-a388-4e8b-91ea-54dd6dd901c0)]
|
||||
+ interface IHostNameStatics : IInspectable
|
||||
+ {
|
||||
+ HRESULT Compare([in] HSTRING value1, [in] HSTRING value2, [out, retval] INT32* result);
|
||||
+ }
|
||||
+
|
||||
+ /*[activatable(Windows.Networking.IHostNameFactory, Windows.Foundation.UniversalApiContract, 1.0)]*/
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [marshaling_behavior(agile)]
|
||||
+ [static(Windows.Networking.IHostNameStatics, Windows.Foundation.UniversalApiContract, 1.0)]
|
||||
+ [threading(both)]
|
||||
+ runtimeclass HostName
|
||||
+ {
|
||||
+ [default] interface Windows.Networking.IHostName;
|
||||
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Foundation.IStringable;
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
\ No newline at end of file
|
||||
--
|
||||
2.30.2
|
||||
|
@ -0,0 +1,97 @@
|
||||
From a446063a84d5b48ac4c8aa05abca98da8a386467 Mon Sep 17 00:00:00 2001
|
||||
From: Esdras Tarsis <esdrastarsis@gmail.com>
|
||||
Date: Wed, 2 Sep 2020 23:41:19 -0300
|
||||
Subject: [PATCH 3/8] 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 | 35 +++++++++++++++++++
|
||||
4 files changed, 46 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 7ea0d824cee..e8d0d8a9023 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3775,6 +3775,7 @@ WINE_CONFIG_MAKEFILE(dlls/windows.media.devices)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windows.media.devices/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windows.media.speech)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windows.media.speech/tests)
|
||||
+WINE_CONFIG_MAKEFILE(dlls/windows.networking.connectivity)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windowscodecs)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windowscodecs/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windowscodecsext)
|
||||
diff --git a/dlls/windows.networking.connectivity/Makefile.in b/dlls/windows.networking.connectivity/Makefile.in
|
||||
new file mode 100644
|
||||
index 00000000000..6fc24a72feb
|
||||
--- /dev/null
|
||||
+++ b/dlls/windows.networking.connectivity/Makefile.in
|
||||
@@ -0,0 +1,7 @@
|
||||
+MODULE = windows.networking.connectivity
|
||||
+IMPORTS = combase uuid
|
||||
+
|
||||
+EXTRADLLFLAGS = -mno-cygwin
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ 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..96ff0ea5af2
|
||||
--- /dev/null
|
||||
+++ b/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
@@ -0,0 +1,35 @@
|
||||
+#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);
|
||||
+
|
||||
+static const char *debugstr_hstring(HSTRING hstr)
|
||||
+{
|
||||
+ const WCHAR *str;
|
||||
+ UINT32 len;
|
||||
+ if (hstr && !((ULONG_PTR)hstr >> 16)) return "(invalid)";
|
||||
+ str = WindowsGetStringRawBuffer(hstr, &len);
|
||||
+ return wine_dbgstr_wn(str, len);
|
||||
+}
|
||||
+
|
||||
+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.30.2
|
||||
|
@ -0,0 +1,136 @@
|
||||
From 587e8baeef029940518223d13b754b4e6c0352cd Mon Sep 17 00:00:00 2001
|
||||
From: Esdras Tarsis <esdrastarsis@gmail.com>
|
||||
Date: Wed, 2 Sep 2020 23:53:28 -0300
|
||||
Subject: [PATCH 4/8] 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 96ff0ea5af2..2463cc2c93c 100644
|
||||
--- a/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
+++ b/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
@@ -22,6 +22,102 @@ static const char *debugstr_hstring(HSTRING hstr)
|
||||
return wine_dbgstr_wn(str, len);
|
||||
}
|
||||
|
||||
+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 %u.\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 %u.\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);
|
||||
@@ -30,6 +126,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.30.2
|
||||
|
@ -0,0 +1,301 @@
|
||||
From bb14d124f11785e8abd8abdbc0a15854d88848ce 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: [PATCH 5/8] windows.networking.connectivity: Implement
|
||||
INetworkInformationStatics stubs.
|
||||
|
||||
v2:
|
||||
Fixed QueryInterfaces
|
||||
|
||||
Based off patch by Esdras Tarsis.
|
||||
---
|
||||
.../windows.networking.connectivity_main.c | 242 ++++++++++++++++++
|
||||
1 file changed, 242 insertions(+)
|
||||
|
||||
diff --git a/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c b/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
index 2463cc2c93c..b96e6c4f0a4 100644
|
||||
--- a/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
+++ b/dlls/windows.networking.connectivity/windows.networking.connectivity_main.c
|
||||
@@ -10,6 +10,9 @@
|
||||
#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);
|
||||
|
||||
@@ -25,6 +28,8 @@ static const char *debugstr_hstring(HSTRING hstr)
|
||||
struct windows_networking_connectivity
|
||||
{
|
||||
IActivationFactory IActivationFactory_iface;
|
||||
+ INetworkInformationStatics INetworkInformationStatics_iface;
|
||||
+ IVectorView_ConnectionProfile IVectorView_iface;
|
||||
LONG refcount;
|
||||
};
|
||||
|
||||
@@ -33,9 +38,237 @@ 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 %u.\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 %u.\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, ULONG 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, ULONG *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, ULONG *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 %u.\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 %u.\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, DWORD **value)
|
||||
+{
|
||||
+ FIXME("iface %p, %p stub!\n", iface, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_GetProxyConfigurationAsync(INetworkInformationStatics *iface, char *name, DWORD **value)
|
||||
+{
|
||||
+ FIXME("iface %p, %p, %p stub!\n", iface, name, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_GetSortedEndpointPairs(INetworkInformationStatics *iface, DWORD* destinationList, DWORD sortOptions, DWORD **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) ||
|
||||
@@ -48,6 +281,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;
|
||||
@@ -115,6 +355,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
|
||||
};
|
||||
|
||||
--
|
||||
2.30.2
|
||||
|
@ -0,0 +1,79 @@
|
||||
From 911464a8aba1d14e5191daf47501e39f78b3c9a1 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Mon, 31 May 2021 09:45:56 +1000
|
||||
Subject: [PATCH 6/8] windows.networking.connectivity: Registry DLL
|
||||
|
||||
This is a temp solution until the IDL can used for registration.
|
||||
---
|
||||
.../Makefile.in | 3 +++
|
||||
.../network.rgs | 19 ++++++++++++++++++
|
||||
dlls/windows.networking.connectivity/rsrc.rc | 20 +++++++++++++++++++
|
||||
3 files changed, 42 insertions(+)
|
||||
create mode 100644 dlls/windows.networking.connectivity/network.rgs
|
||||
create mode 100644 dlls/windows.networking.connectivity/rsrc.rc
|
||||
|
||||
diff --git a/dlls/windows.networking.connectivity/Makefile.in b/dlls/windows.networking.connectivity/Makefile.in
|
||||
index 6fc24a72feb..5785430da2c 100644
|
||||
--- a/dlls/windows.networking.connectivity/Makefile.in
|
||||
+++ b/dlls/windows.networking.connectivity/Makefile.in
|
||||
@@ -5,3 +5,6 @@ EXTRADLLFLAGS = -mno-cygwin
|
||||
|
||||
C_SRCS = \
|
||||
windows.networking.connectivity_main.c
|
||||
+
|
||||
+RC_SRCS = rsrc.rc
|
||||
+
|
||||
diff --git a/dlls/windows.networking.connectivity/network.rgs b/dlls/windows.networking.connectivity/network.rgs
|
||||
new file mode 100644
|
||||
index 00000000000..59d6f739a72
|
||||
--- /dev/null
|
||||
+++ b/dlls/windows.networking.connectivity/network.rgs
|
||||
@@ -0,0 +1,19 @@
|
||||
+HKLM
|
||||
+{
|
||||
+ NoRemove Software
|
||||
+ {
|
||||
+ NoRemove Microsoft
|
||||
+ {
|
||||
+ NoRemove WindowsRuntime
|
||||
+ {
|
||||
+ NoRemove ActivatableClassId
|
||||
+ {
|
||||
+ ForceRemove Windows.Networking.Connectivity.NetworkInformation
|
||||
+ {
|
||||
+ val 'DllPath' = s '%MODULE%'
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
diff --git a/dlls/windows.networking.connectivity/rsrc.rc b/dlls/windows.networking.connectivity/rsrc.rc
|
||||
new file mode 100644
|
||||
index 00000000000..3ebeb3a7000
|
||||
--- /dev/null
|
||||
+++ b/dlls/windows.networking.connectivity/rsrc.rc
|
||||
@@ -0,0 +1,20 @@
|
||||
+/*
|
||||
+ * Copyright 2021 Alistair Leslie-Hughes
|
||||
+ *
|
||||
+ * 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
|
||||
+ */
|
||||
+
|
||||
+/* @makedep: network.rgs */
|
||||
+1 WINE_REGISTRY network.rgs
|
||||
--
|
||||
2.30.2
|
||||
|
@ -0,0 +1,198 @@
|
||||
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 %u.\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 %u.\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
|
||||
|
@ -0,0 +1,30 @@
|
||||
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
|
||||
|
@ -0,0 +1 @@
|
||||
Fixes: [46534] Implement INetworkInformationStatics interface
|
Loading…
Reference in New Issue
Block a user