From 1a240dd4abe1b90f6e62d3a1e57ef171894b4bc6 Mon Sep 17 00:00:00 2001 From: David Hall Date: Mon, 2 Oct 2023 18:03:41 -0600 Subject: [PATCH] Added nullability to FunDisc --- PInvoke/FunDisc/FunctionDiscoveryApi.cs | 36 ++++++++++++------------ PInvoke/FunDisc/FunctionDiscoveryCategories.cs | 2 ++ PInvoke/FunDisc/FunctionDiscoveryConstraints.cs | 2 ++ PInvoke/FunDisc/FunctionDiscoveryKeys.cs | 2 ++ PInvoke/FunDisc/FunctionDiscoveryKeys_DevPKEY.cs | 2 ++ 5 files changed, 26 insertions(+), 18 deletions(-) diff --git a/PInvoke/FunDisc/FunctionDiscoveryApi.cs b/PInvoke/FunDisc/FunctionDiscoveryApi.cs index e899c855..ad5736d4 100644 --- a/PInvoke/FunDisc/FunctionDiscoveryApi.cs +++ b/PInvoke/FunDisc/FunctionDiscoveryApi.cs @@ -211,7 +211,7 @@ public static partial class FunDisc // IFunctionInstanceCollection **ppIFunctionInstanceCollection ); [PreserveSig] HRESULT GetInstanceCollection([MarshalAs(UnmanagedType.LPWStr)] string pszCategory, [MarshalAs(UnmanagedType.LPWStr), Optional] string? pszSubCategory, - [MarshalAs(UnmanagedType.Bool)] bool fIncludeAllSubCategories, out IFunctionInstanceCollection ppIFunctionInstanceCollection); + [MarshalAs(UnmanagedType.Bool)] bool fIncludeAllSubCategories, out IFunctionInstanceCollection? ppIFunctionInstanceCollection); /// /// @@ -260,7 +260,7 @@ public static partial class FunDisc // https://docs.microsoft.com/en-us/windows/win32/api/functiondiscoveryapi/nf-functiondiscoveryapi-ifunctiondiscovery-getinstance // HRESULT GetInstance( const WCHAR *pszFunctionInstanceIdentity, IFunctionInstance **ppIFunctionInstance ); [PreserveSig] - HRESULT GetInstance([MarshalAs(UnmanagedType.LPWStr)] string pszFunctionInstanceIdentity, out IFunctionInstance ppIFunctionInstance); + HRESULT GetInstance([MarshalAs(UnmanagedType.LPWStr)] string pszFunctionInstanceIdentity, out IFunctionInstance? ppIFunctionInstance); /// /// @@ -345,8 +345,8 @@ public static partial class FunDisc HRESULT CreateInstanceCollectionQuery([MarshalAs(UnmanagedType.LPWStr)] string pszCategory, [MarshalAs(UnmanagedType.LPWStr), Optional] string? pszSubCategory, [MarshalAs(UnmanagedType.Bool)] bool fIncludeAllSubCategories, - IFunctionDiscoveryNotification pIFunctionDiscoveryNotification, ref ulong pfdqcQueryContext, - out IFunctionInstanceCollectionQuery ppIFunctionInstanceCollectionQuery); + IFunctionDiscoveryNotification? pIFunctionDiscoveryNotification, ref ulong pfdqcQueryContext, + out IFunctionInstanceCollectionQuery? ppIFunctionInstanceCollectionQuery); /// /// @@ -399,8 +399,8 @@ public static partial class FunDisc // *pIFunctionDiscoveryNotification, ulong *pfdqcQueryContext, IFunctionInstanceQuery **ppIFunctionInstanceQuery ); [PreserveSig] HRESULT CreateInstanceQuery([MarshalAs(UnmanagedType.LPWStr)] string pszFunctionInstanceIdentity, - IFunctionDiscoveryNotification pIFunctionDiscoveryNotification, ref ulong pfdqcQueryContext, - out IFunctionInstanceQuery ppIFunctionInstanceQuery); + IFunctionDiscoveryNotification? pIFunctionDiscoveryNotification, ref ulong pfdqcQueryContext, + out IFunctionInstanceQuery? ppIFunctionInstanceQuery); /// /// @@ -493,7 +493,7 @@ public static partial class FunDisc [PreserveSig] HRESULT AddInstance(SystemVisibilityFlags enumSystemVisibility, [MarshalAs(UnmanagedType.LPWStr)] string pszCategory, [MarshalAs(UnmanagedType.LPWStr), Optional] string? pszSubCategory, - [MarshalAs(UnmanagedType.LPWStr)] string pszCategoryIdentity, out IFunctionInstance ppIFunctionInstance); + [MarshalAs(UnmanagedType.LPWStr)] string pszCategoryIdentity, out IFunctionInstance? ppIFunctionInstance); /// /// @@ -652,7 +652,7 @@ public static partial class FunDisc // https://docs.microsoft.com/en-us/windows/win32/api/functiondiscoveryapi/nf-functiondiscoveryapi-ifunctiondiscoverynotification-onupdate // HRESULT OnUpdate( QueryUpdateAction enumQueryUpdateAction, ulong fdqcQueryContext, IFunctionInstance *pIFunctionInstance ); [PreserveSig] - HRESULT OnUpdate(QueryUpdateAction enumQueryUpdateAction, ulong fdqcQueryContext, IFunctionInstance pIFunctionInstance); + HRESULT OnUpdate(QueryUpdateAction enumQueryUpdateAction, [Optional] ulong fdqcQueryContext, IFunctionInstance pIFunctionInstance); /// /// @@ -805,7 +805,7 @@ public static partial class FunDisc // https://docs.microsoft.com/en-us/windows/win32/api/functiondiscoveryapi/nf-functiondiscoveryapi-ifunctiondiscoverynotification-onevent // HRESULT OnEvent( DWORD dwEventID, FDQUERYCONTEXT fdqcQueryContext, const WCHAR *pszProvider ); [PreserveSig] - HRESULT OnEvent(FD_EVENTID dwEventID, ulong fdqcQueryContext, [MarshalAs(UnmanagedType.LPWStr)] string pszProvider); + HRESULT OnEvent(FD_EVENTID dwEventID, [Optional] ulong fdqcQueryContext, [MarshalAs(UnmanagedType.LPWStr)] string pszProvider); } /// @@ -829,7 +829,7 @@ public static partial class FunDisc /// The interface specified by the parameter. /// If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. [PreserveSig] - HRESULT QueryService(in Guid guidService, in Guid riid, [MarshalAs(UnmanagedType.Interface, IidParameterIndex = 1)] out object ppvObject); + HRESULT QueryService(in Guid guidService, in Guid riid, [MarshalAs(UnmanagedType.Interface, IidParameterIndex = 1)] out object? ppvObject); /// /// @@ -882,7 +882,7 @@ public static partial class FunDisc // https://docs.microsoft.com/en-us/windows/win32/api/functiondiscoveryapi/nf-functiondiscoveryapi-ifunctioninstance-getid // HRESULT GetID( WCHAR **ppszCoMemIdentity ); [PreserveSig] - HRESULT GetID([MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemIdentity); + HRESULT GetID([MarshalAs(UnmanagedType.LPWStr)] out string? ppszCoMemIdentity); /// /// @@ -919,7 +919,7 @@ public static partial class FunDisc // https://docs.microsoft.com/en-us/windows/win32/api/functiondiscoveryapi/nf-functiondiscoveryapi-ifunctioninstance-getproviderinstanceid // HRESULT GetProviderInstanceID( WCHAR **ppszCoMemProviderInstanceIdentity ); [PreserveSig] - HRESULT GetProviderInstanceID([MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemProviderInstanceIdentity); + HRESULT GetProviderInstanceID([MarshalAs(UnmanagedType.LPWStr)] out string? ppszCoMemProviderInstanceIdentity); /// /// @@ -986,7 +986,7 @@ public static partial class FunDisc // https://docs.microsoft.com/en-us/windows/win32/api/functiondiscoveryapi/nf-functiondiscoveryapi-ifunctioninstance-openpropertystore // HRESULT OpenPropertyStore( DWORD dwStgAccess, IPropertyStore **ppIPropertyStore ); [PreserveSig] - HRESULT OpenPropertyStore(STGM dwStgAccess, out IPropertyStore ppIPropertyStore); + HRESULT OpenPropertyStore(STGM dwStgAccess, out IPropertyStore? ppIPropertyStore); /// /// @@ -1023,7 +1023,7 @@ public static partial class FunDisc // https://docs.microsoft.com/en-us/windows/win32/api/functiondiscoveryapi/nf-functiondiscoveryapi-ifunctioninstance-getcategory // HRESULT GetCategory( WCHAR **ppszCoMemCategory, WCHAR **ppszCoMemSubCategory ); [PreserveSig] - HRESULT GetCategory([MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemCategory, [MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemSubCategory); + HRESULT GetCategory([MarshalAs(UnmanagedType.LPWStr)] out string? ppszCoMemCategory, [MarshalAs(UnmanagedType.LPWStr)] out string? ppszCoMemSubCategory); } /// @@ -1116,7 +1116,7 @@ public static partial class FunDisc // https://docs.microsoft.com/en-us/windows/win32/api/functiondiscoveryapi/nf-functiondiscoveryapi-ifunctioninstancecollection-get // HRESULT Get( const WCHAR *pszInstanceIdentity, DWORD *pdwIndex, IFunctionInstance **ppIFunctionInstance ); [PreserveSig] - HRESULT Get([MarshalAs(UnmanagedType.LPWStr)] string pszInstanceIdentity, out uint pdwIndex, out IFunctionInstance ppIFunctionInstance); + HRESULT Get([MarshalAs(UnmanagedType.LPWStr)] string pszInstanceIdentity, out uint pdwIndex, out IFunctionInstance? ppIFunctionInstance); /// /// @@ -1151,7 +1151,7 @@ public static partial class FunDisc // https://docs.microsoft.com/en-us/windows/win32/api/functiondiscoveryapi/nf-functiondiscoveryapi-ifunctioninstancecollection-item // HRESULT Item( DWORD dwIndex, IFunctionInstance **ppIFunctionInstance ); [PreserveSig] - HRESULT Item(uint dwIndex, out IFunctionInstance ppIFunctionInstance); + HRESULT Item(uint dwIndex, out IFunctionInstance? ppIFunctionInstance); /// /// @@ -1222,7 +1222,7 @@ public static partial class FunDisc // https://docs.microsoft.com/en-us/windows/win32/api/functiondiscoveryapi/nf-functiondiscoveryapi-ifunctioninstancecollection-remove // HRESULT Remove( DWORD dwIndex, IFunctionInstance **ppIFunctionInstance ); [PreserveSig] - HRESULT Remove(uint dwIndex, out IFunctionInstance ppIFunctionInstance); + HRESULT Remove(uint dwIndex, out IFunctionInstance? ppIFunctionInstance); /// /// @@ -1651,7 +1651,7 @@ public static partial class FunDisc // https://docs.microsoft.com/en-us/windows/win32/api/functiondiscoveryapi/nf-functiondiscoveryapi-ifunctioninstancequery-execute // HRESULT Execute( IFunctionInstance **ppIFunctionInstance ); [PreserveSig] - HRESULT Execute(out IFunctionInstance ppIFunctionInstance); + HRESULT Execute(out IFunctionInstance? ppIFunctionInstance); } /// CLSID_FunctionDiscovery diff --git a/PInvoke/FunDisc/FunctionDiscoveryCategories.cs b/PInvoke/FunDisc/FunctionDiscoveryCategories.cs index b593dd48..2c29a6d2 100644 --- a/PInvoke/FunDisc/FunctionDiscoveryCategories.cs +++ b/PInvoke/FunDisc/FunctionDiscoveryCategories.cs @@ -2,6 +2,7 @@ public static partial class FunDisc { +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member public const string FD_SUBKEY = "SOFTWARE\\Microsoft\\Function Discovery\\"; public const string FD_SUBKEY_CATEGORIES = FD_SUBKEY + "Categories\\"; @@ -50,4 +51,5 @@ public static partial class FunDisc // Subcategories of Registry public const string FCTN_SUBCAT_REG_PUBLICATION = "Publication"; public const string FCTN_SUBCAT_REG_DIRECTED = "Directed"; +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member } \ No newline at end of file diff --git a/PInvoke/FunDisc/FunctionDiscoveryConstraints.cs b/PInvoke/FunDisc/FunctionDiscoveryConstraints.cs index 12eb38b2..aba20109 100644 --- a/PInvoke/FunDisc/FunctionDiscoveryConstraints.cs +++ b/PInvoke/FunDisc/FunctionDiscoveryConstraints.cs @@ -6,6 +6,7 @@ public static partial class FunDisc // QUERY Constraint defines /////////////////////////////////////////////////////////////////////////////// +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member public const int MAX_FDCONSTRAINTNAME_LENGTH = 100; public const int MAX_FDCONSTRAINTVALUE_LENGTH = 1000; @@ -118,6 +119,7 @@ public static partial class FunDisc public const string PROVIDERDDO_QUERYCONSTRAINT_DEVICEFUNCTIONDISPLAYOBJECTS = "DeviceFunctionDisplayObjects"; public const string PROVIDERDDO_QUERYCONSTRAINT_ONLYCONNECTEDDEVICES = "OnlyConnectedDevices"; public const string PROVIDERDDO_QUERYCONSTRAINT_DEVICEINTERFACES = "DeviceInterfaces"; +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member /// /// diff --git a/PInvoke/FunDisc/FunctionDiscoveryKeys.cs b/PInvoke/FunDisc/FunctionDiscoveryKeys.cs index 12ab64be..a332dbca 100644 --- a/PInvoke/FunDisc/FunctionDiscoveryKeys.cs +++ b/PInvoke/FunDisc/FunctionDiscoveryKeys.cs @@ -4,6 +4,7 @@ namespace Vanara.PInvoke; public static partial class FunDisc { +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member /* 08c0c253-a154-4746-9005-82de5317148b */ public static readonly PROPERTYKEY PKEY_FunctionInstance = new(new Guid(0x08c0c253, 0xa154, 0x4746, 0x90, 0x05, 0x82, 0xde, 0x53, 0x17, 0x14, 0x8b), 0x00000001); // VT_UNKNOWN @@ -338,4 +339,5 @@ public static partial class FunDisc // Type: Unspecified -- VT_NULL // FormatID: 5EAF3EF2-E0CA-4598-BF06-71ED1D9DD953, 4096 public static readonly PROPERTYKEY PKEY_Hardware_Status = new(new Guid(0x5EAF3EF2, 0xE0CA, 0x4598, 0xBF, 0x06, 0x71, 0xED, 0x1D, 0x9D, 0xD9, 0x53), 4096); +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member } \ No newline at end of file diff --git a/PInvoke/FunDisc/FunctionDiscoveryKeys_DevPKEY.cs b/PInvoke/FunDisc/FunctionDiscoveryKeys_DevPKEY.cs index 4455d880..eae8bce8 100644 --- a/PInvoke/FunDisc/FunctionDiscoveryKeys_DevPKEY.cs +++ b/PInvoke/FunDisc/FunctionDiscoveryKeys_DevPKEY.cs @@ -4,6 +4,7 @@ namespace Vanara.PInvoke; public static partial class FunDisc { +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member // // _NAME // @@ -178,4 +179,5 @@ public static partial class FunDisc // Device interface class properties // public static readonly PROPERTYKEY PKEY_DeviceInterfaceClass_DefaultInterface = new(new Guid(0x14c83a99, 0x0b3f, 0x44b7, 0xbe, 0x4c, 0xa1, 0x78, 0xd3, 0x99, 0x05, 0x64), 2); // DEVPROP_TYPE_STRING +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member } \ No newline at end of file