Compare commits

...

3 Commits

Author SHA1 Message Date
David Hall c5ecf5e0b4 More nullability work, mostly Shell32 2023-11-19 20:05:15 -07:00
David Hall 7a463b80cd Updated readme 2023-11-19 15:49:21 -07:00
David Hall 31577fd398 Added missing functions and updated project files 2023-11-19 15:41:27 -07:00
39 changed files with 743 additions and 79 deletions

View File

@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<Version>4.0.0</Version>
<Version>4.0.0-beta</Version>
<TargetFrameworks>net45;net48;net6.0;net7.0;netstandard2.0;netcoreapp3.1</TargetFrameworks>
<Configurations>Debug;Release</Configurations>
<Platforms>AnyCPU;x64;x86</Platforms>
@ -9,6 +9,7 @@
<Authors>David Hall</Authors>
<Company>GitHub Community</Company>
<Copyright>Copyright © 2017-2023</Copyright>
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>

View File

@ -16,7 +16,7 @@ Functions
DnsAcquireContextHandle_ DnsCancelQuery DnsCancelQueryRaw DnsExtractRecordsFromMessage_W DnsFree DnsFreeCustomServers DnsFreeProxyName DnsGetApplicationSettings DnsGetCacheDataTable DnsGetProxyInformation DnsModifyRecordsInSet_ DnsNameCompare_ DnsQueryConfig DnsQueryEx DnsQueryRaw DnsQueryRawResultFree DnsQuery_ DnsRecordCompare DnsRecordCopyEx DnsRecordSetCompare DnsRecordSetCopyEx DnsRecordSetDetach DnsReleaseContextHandle DnsReplaceRecordSet DnsServiceBrowse DnsServiceBrowseCancel DnsServiceConstructInstance DnsServiceCopyInstance DnsServiceDeRegister DnsServiceFreeInstance DnsServiceRegister DnsServiceRegisterCancel DnsServiceResolve DnsServiceResolveCancel DnsSetApplicationSettings DnsStartMulticastQuery DnsStopMulticastQuery DnsValidateName_ DnsValidateServerStatus DnsWriteQuestionToBuffer_W
Structures
DNS_AAAA_DATA DNS_ADDR DNS_ADDR_ARRAY DNS_APPLICATION_SETTINGS DNS_ATMA_DATA DNS_A_DATA DNS_CACHE_ENTRY DNS_CUSTOM_SERVER DNS_DHCID_DATA DNS_DS_DATA DNS_HEADER DNS_KEY_DATA DNS_LOC_DATA DNS_MESSAGE_BUFFER DNS_MINFO_DATA DNS_MX_DATA DNS_NAPTR_DATA DNS_NSEC3PARAM_DATA DNS_NSEC3_DATA DNS_NSEC_DATA DNS_NULL_DATA DNS_NXT_DATA DNS_OPT_DATA DNS_PROXY_INFORMATION DNS_PTR_DATA DNS_QUERY_CANCEL DNS_QUERY_REQUEST DNS_QUERY_REQUEST3 DNS_QUERY_RESULT DNS_RECORD DNS_RECORD_FLAGS DNS_RRSET DNS_SERVICE_BROWSE_REQUEST DNS_SERVICE_BROWSE_REQUEST_CALLBACK DNS_SERVICE_CANCEL DNS_SERVICE_INSTANCE DNS_SERVICE_REGISTER_REQUEST DNS_SERVICE_RESOLVE_REQUEST DNS_SIG_DATA DNS_SOA_DATA DNS_SRV_DATA DNS_TKEY_DATA DNS_TLSA_DATA DNS_TSIG_DATA DNS_TXT_DATA DNS_UNKNOWN_DATA DNS_WINSR_DATA DNS_WINS_DATA DNS_WIRE_QUESTION DNS_WIRE_RECORD DNS_WKS_DATA HDNSCONTEXT IP4_ARRAY MDNS_QUERY_HANDLE MDNS_QUERY_REQUEST
DNS_AAAA_DATA DNS_ADDR DNS_ADDR_ARRAY DNS_APPLICATION_SETTINGS DNS_ATMA_DATA DNS_A_DATA DNS_CACHE_ENTRY DNS_CUSTOM_SERVER DNS_DHCID_DATA DNS_DS_DATA DNS_HEADER DNS_KEY_DATA DNS_LOC_DATA DNS_MESSAGE_BUFFER DNS_MINFO_DATA DNS_MX_DATA DNS_NAPTR_DATA DNS_NSEC3PARAM_DATA DNS_NSEC3_DATA DNS_NSEC_DATA DNS_NULL_DATA DNS_NXT_DATA DNS_OPT_DATA DNS_PROXY_INFORMATION DNS_PTR_DATA DNS_QUERY_CANCEL DNS_QUERY_RAW_CANCEL DNS_QUERY_RAW_REQUEST DNS_QUERY_RAW_RESULT DNS_QUERY_REQUEST DNS_QUERY_REQUEST3 DNS_QUERY_RESULT DNS_RECORD DNS_RECORD_FLAGS DNS_RRSET DNS_SERVICE_BROWSE_REQUEST DNS_SERVICE_BROWSE_REQUEST_CALLBACK DNS_SERVICE_CANCEL DNS_SERVICE_INSTANCE DNS_SERVICE_REGISTER_REQUEST DNS_SERVICE_RESOLVE_REQUEST DNS_SIG_DATA DNS_SOA_DATA DNS_SRV_DATA DNS_TKEY_DATA DNS_TLSA_DATA DNS_TSIG_DATA DNS_TXT_DATA DNS_UNKNOWN_DATA DNS_WINSR_DATA DNS_WINS_DATA DNS_WIRE_QUESTION DNS_WIRE_RECORD DNS_WKS_DATA HDNSCONTEXT IP4_ARRAY MDNS_QUERY_HANDLE MDNS_QUERY_REQUEST
</PackageReleaseNotes>
<PackageReadmeFile>pkgreadme.md</PackageReadmeFile>

View File

@ -20,6 +20,39 @@ public static partial class DnsApi
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
public delegate void DNS_QUERY_COMPLETION_ROUTINE([In] IntPtr pQueryContext, ref DNS_QUERY_RESULT pQueryResults);
/// <summary>
/// <note type="important">Some information relates to a prerelease product which may be substantially modified before it's commercially
/// released. Microsoft makes no warranties, express or implied, with respect to the information provided here.</note>
/// <para>
/// DNS_QUERY_RAW_COMPLETION_ROUTINE is the function signature of an asynchronous callback function that you implement. The system calls
/// your implementation with the results of a query that you initiated by calling DnsQueryRaw. The results contain both the parsed
/// records and the raw result packet, to be passed on to later systems as desired. The result provides information about the server that
/// provided the results.
/// </para>
/// <para>
/// The system calls this callback on query completion if DnsQueryRaw returns DNS_REQUEST_PENDING; and it will indicate the results of
/// the query if successful, or any failures or cancellations.
/// </para>
/// </summary>
/// <param name="queryContext">
/// <para>Type: _In_ <c>VOID*</c></para>
/// <para>A pointer to the query context that was passed into DnsQueryRaw through the queryContext field of DNS_QUERY_RAW_REQUEST.</para>
/// </param>
/// <param name="queryResults">
/// <para>Type: _Inout_ <c>DNS_QUERY_RAW_RESULT*</c></para>
/// <para>
/// A pointer to the results of the query. If this callback is made because of a query cancellation through DnsCancelQueryRaw, then the
/// queryStatus field in queryResults will be set to <c>ERROR_CANCELLED</c>.
/// </para>
/// <para>If it's not NULL, then you must free the queryResults pointer by using DnsQueryRawResultFree.</para>
/// </param>
/// <returns>None</returns>
// https://learn.microsoft.com/en-us/windows/win32/api/windns/nc-windns-dns_query_raw_completion_routine
// DNS_QUERY_RAW_COMPLETION_ROUTINE DnsQueryRawCompletionRoutine; void DnsQueryRawCompletionRoutine( VOID *queryContext, DNS_QUERY_RAW_RESULT *queryResults ) {...}
[PInvokeData("windns.h", MSDNShortId = "NC:windns.DNS_QUERY_RAW_COMPLETION_ROUTINE")]
[UnmanagedFunctionPointer(CallingConvention.Winapi, SetLastError = false)]
public delegate void DNS_QUERY_RAW_COMPLETION_ROUTINE([In] IntPtr queryContext, [In, Out] IntPtr /*DNS_QUERY_RAW_RESULT*/ queryResults);
/// <summary>Used to asynchronously return the results of a DNS-SD query.</summary>
/// <param name="Status">A value that contains the status associated with this particular set of results.</param>
/// <param name="pQueryContext">A pointer to the user context that was passed to DnsServiceBrowse.</param>
@ -148,6 +181,26 @@ public static partial class DnsApi
[PInvokeData("windns.h", MSDNShortId = "E5F422AA-D4E6-4F9F-A57C-608CE9317658")]
public static extern DNS_STATUS DnsCancelQuery(ref DNS_QUERY_CANCEL pCancelHandle);
/// <summary>
/// <note type="important"> Some information relates to a prerelease product which may be substantially modified before it's commercially
/// released. Microsoft makes no warranties, express or implied, with respect to the information provided here.</note>
/// <para>Cancels a query that was initiated by calling DnsQueryRaw.</para>
/// <para>
/// If the query completion callback (see DNS_QUERY_RAW_COMPLETION_ROUTINE) hasn't been called by the time DnsCancelQueryRaw returns,
/// then the query completion callback will lead to the callback being made with a queryStatus of ERROR_CANCELLED in the queryResults parameter.
/// </para>
/// </summary>
/// <param name="cancelHandle">
/// <para>Type: _In_ <c>DNS_QUERY_RAW_CANCEL*</c></para>
/// <para>The cancel handle that you obtained by calling DnsQueryRaw.</para>
/// </param>
/// <returns>A <c>DNS_STATUS</c> value indicating success or failure.</returns>
// https://learn.microsoft.com/en-us/windows/win32/api/windns/nf-windns-dnscancelqueryraw
// DNS_STATUS DnsCancelQueryRaw( DNS_QUERY_RAW_CANCEL *cancelHandle );
[PInvokeData("windns.h", MSDNShortId = "NF:windns.DnsCancelQueryRaw")]
[DllImport(Lib.Dnsapi, SetLastError = false, ExactSpelling = true)]
public static extern DNS_STATUS DnsCancelQueryRaw(in DNS_QUERY_RAW_CANCEL cancelHandle);
/// <summary>
/// The <c>DnsExtractRecordsFromMessage</c> function type extracts resource records (RR) from a DNS message, and stores those
/// records in a DNS_RECORD structure. Like many DNS functions, the <c>DnsExtractRecordsFromMessage</c> function type is implemented
@ -877,6 +930,66 @@ public static partial class DnsApi
public static extern DNS_STATUS DnsQueryEx(in DNS_QUERY_REQUEST3 pQueryRequest, ref DNS_QUERY_RESULT pQueryResults,
ref DNS_QUERY_CANCEL pCancelHandle);
/// <summary>
/// <note type="important">Some information relates to a prerelease product which may be substantially modified before it's commercially
/// released. Microsoft makes no warranties, express or implied, with respect to the information provided here.</note>
/// <para>
/// Enables you to perform a DNS query that accepts either a raw packet containing a DNS query, or a query name and type. You can augment
/// the query with settings and configuration from the host system.
/// </para>
/// <list type="bullet">
/// <item>You can apply new query options and custom servers to an already-formatted raw DNS query packet.</item>
/// <item>
/// Or you can instead provide a query name and type, and receive both the parsed records and raw result packet (allowing clients to
/// interact with all information received from the server).
/// </item>
/// </list>
/// <para>
/// Queries are performed asynchronously; and results are passed to a DNS_QUERY_RAW_COMPLETION_ROUTINE asynchronous callback function
/// that you implement. To cancel a query, call DnsCancelQueryRaw.
/// </para>
/// </summary>
/// <param name="queryRequest">
/// <para>Type: _In_ <c>DNS_QUERY_RAW_REQUEST*</c></para>
/// <para>The query request.</para>
/// </param>
/// <param name="cancelHandle">
/// <para>Type: _Inout_ <c>DNS_QUERY_RAW_CANCEL*</c></para>
/// <para>Used to obtain a cancel handle, which you can pass to DnsCancelQueryRaw should you need to cancel the query.</para>
/// </param>
/// <returns>
/// A <c>DNS_STATUS</c> value indicating success or failure. If <c>DNS_REQUEST_PENDING</c> is returned, then when the query completes,
/// the system calls the DNS_QUERY_RAW_COMPLETION_ROUTINE implementation that you passed in the queryCompletionCallback member of
/// queryRequest. That callback will received the results of the query if successful, or any failures or cancellations.
/// </returns>
/// <remarks>
/// The structure of a raw packet is the wire representation of the DNS query and response as documented by RFC 1035. A 12-byte DNS
/// header is followed by either a question section for the query, or by a variable number (can be 0) of records for the response. If TCP
/// is used, then the raw packet must be prefixed with a 2-byte length field. You can use this API to apply host NRPT rules, or to
/// perform encrypted DNS queries, among other things.
/// </remarks>
// https://learn.microsoft.com/en-us/windows/win32/api/windns/nf-windns-dnsqueryraw DNS_STATUS DnsQueryRaw( DNS_QUERY_RAW_REQUEST
// *queryRequest, DNS_QUERY_RAW_CANCEL *cancelHandle );
[PInvokeData("windns.h", MSDNShortId = "NF:windns.DnsQueryRaw")]
[DllImport(Lib.Dnsapi, SetLastError = true, ExactSpelling = true)]
public static extern DNS_STATUS DnsQueryRaw(in DNS_QUERY_RAW_REQUEST queryRequest, ref DNS_QUERY_RAW_CANCEL cancelHandle);
/// <summary>
/// <note type="important">Some information relates to a prerelease product which may be substantially modified before it's commercially
/// released. Microsoft makes no warranties, express or implied, with respect to the information provided here.</note>
/// <para>Frees the memory allocated to a DNS_QUERY_RAW_RESULT structure object. Also see DNS_QUERY_RAW_COMPLETION_ROUTINE.</para>
/// </summary>
/// <param name="queryResults">
/// <para>Type: _In_ <c>DNS_QUERY_RAW_RESULT*</c></para>
/// <para>The object whose memory should be freed.</para>
/// </param>
/// <returns>None</returns>
// https://learn.microsoft.com/en-us/windows/win32/api/windns/nf-windns-dnsqueryrawresultfree
// void DnsQueryRawResultFree( _Frees_ptr_opt_ DNS_QUERY_RAW_RESULT *queryResults );
[PInvokeData("windns.h", MSDNShortId = "NF:windns.DnsQueryRawResultFree")]
[DllImport(Lib.Dnsapi, SetLastError = false, ExactSpelling = true)]
public static extern void DnsQueryRawResultFree([In, Out] IntPtr queryResults);
/// <summary>The <c>DnsRecordCompare</c> function compares two DNS resource records (RR).</summary>
/// <param name="pRecord1">A pointer to a DNS_RECORD structure that contains the first DNS RR of the comparison pair.</param>
/// <param name="pRecord2">A pointer to a DNS_RECORD structure that contains the second DNS RR of the comparison pair.</param>

View File

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using static Vanara.PInvoke.Ws2_32;
@ -24,6 +25,14 @@ public static partial class DnsApi
/// <summary/>
public const int DNS_MAX_NAME_BUFFER_LENGTH = 256;
/// <summary>
/// Specifies that the raw query should be parsed in a best-effort fashion. That means that DnsQueryRaw won't fail in case of an input
/// raw query that is formatted differently from expected (such as including new record types or header bits that the implementation
/// isn't aware of) if it can extract out the necessary information including the query name and type. This will cause the query sent to
/// the server to effectively be a subset of the caller's query with respect to the configuration.
/// </summary>
public const ulong DNS_QUERY_RAW_OPTION_BEST_EFFORT_PARSE = 0x1;
/// <summary/>
public const uint DNS_QUERY_REQUEST_VERSION1 = 0x1;
@ -308,6 +317,29 @@ public static partial class DnsApi
DNS_OPCODE_UPDATE = 5,
}
/// <summary>The DNS protocol used for the source query in dnsQueryRaw, and what the caller expects the response to be in.</summary>
[PInvokeData("windns.h")]
public enum DNS_PROTOCOL
{
/// <summary>The query completed without receiving a response; such as in a cancellation.</summary>
DNS_PROTOCOL_UNSPECIFIED = 0,
/// <summary>The DNS protocol UDP</summary>
DNS_PROTOCOL_UDP,
/// <summary>The DNS protocol TCP</summary>
DNS_PROTOCOL_TCP,
/// <summary>The DNS protocol DOH</summary>
DNS_PROTOCOL_DOH,
/// <summary>The DNS protocol DOT</summary>
DNS_PROTOCOL_DOT,
/// <summary>The query completed inline; such as with records from the cache.</summary>
DNS_PROTOCOL_NO_WIRE
}
/// <summary>
/// The <c>DNS_PROXY_INFORMATION_TYPE</c> enumeration defines the proxy information type in the DNS_PROXY_INFORMATION structure.
/// </summary>
@ -871,7 +903,6 @@ public static partial class DnsApi
/// <summary>An unknown error occurred.</summary>
DNS_VALSVR_ERROR_UNKNOWN = 0xFF,
}
/// <summary>The <c>DNS_A_DATA</c> structure represents a DNS address (A) record as specified in section 3.4.1 of RFC 1035.</summary>
/// <remarks>
/// The <c>DNS_A_DATA</c> structure is used in conjunction with the DNS_RECORD structure to programmatically manage DNS entries.
@ -1903,7 +1934,327 @@ public static partial class DnsApi
{
/// <summary>Contains a handle to the asynchronous query to cancel. Applications must not modify this value.</summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
public byte[] Reserved;
public readonly byte[] Reserved;
}
/// <summary>
/// <note type="important">Some information relates to a prerelease product which may be substantially modified before it's commercially
/// released. Microsoft makes no warranties, express or implied, with respect to the information provided here.</note>
/// <para>Represents a DNS raw query cancel handle (see DnsQueryRaw and DnsCancelQueryRaw).</para>
/// <para>
/// This structure must persist until the query completion callback is made(see DNS_QUERY_RAW_COMPLETION_ROUTINE), and it can't be copied
/// elsewhere after it's been passed into DnsQueryRaw.If the query completion callback hasn't been called by the time DnsCancelQueryRaw
/// returns, then the query completion callback will lead to the callback being made with a queryStatus of ERROR_CANCELLED in the
/// queryResults parameter. No special cleanup is required for this structure once the query is complete. Similar to the cancel structure
/// used for DnsQueryEx; for more details, see DNS_QUERY_CANCEL.
/// </para>
/// </summary>
// https://learn.microsoft.com/en-us/windows/win32/api/windns/ns-windns-dns_query_raw_cancel typedef struct _DNS_QUERY_RAW_CANCEL { CHAR
// reserved[32]; } DNS_QUERY_RAW_CANCEL;
[PInvokeData("windns.h", MSDNShortId = "NS:windns._DNS_QUERY_RAW_CANCEL")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Size = 32)]
public struct DNS_QUERY_RAW_CANCEL
{
/// <summary>Opaque handle structure used for cancel.</summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
public readonly byte[] Reserved;
}
/// <summary>
/// <note type="important">Some information relates to a prerelease product which may be substantially modified before it's commercially
/// released. Microsoft makes no warranties, express or implied, with respect to the information provided here.</note>
/// <para>Represents a DNS raw query request (see DnsQueryRaw).</para>
/// </summary>
// https://learn.microsoft.com/en-us/windows/win32/api/windns/ns-windns-dns_query_raw_request typedef struct _DNS_QUERY_RAW_REQUEST {
// ULONG version; ULONG resultsVersion; ULONG dnsQueryRawSize; BYTE *dnsQueryRaw; PWSTR dnsQueryName; USHORT dnsQueryType; ULONG64
// queryOptions; ULONG interfaceIndex; DNS_QUERY_RAW_COMPLETION_ROUTINE queryCompletionCallback; VOID *queryContext; ULONG64
// queryRawOptions; ULONG customServersSize; DNS_CUSTOM_SERVER *customServers; ULONG protocol; union { SOCKADDR_INET sourceAddr; CHAR
// maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]; }; } DNS_QUERY_RAW_REQUEST;
[PInvokeData("windns.h", MSDNShortId = "NS:windns._DNS_QUERY_RAW_REQUEST")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DNS_QUERY_RAW_REQUEST
{
/// <summary>
/// <para>Type: <c>ULONG</c></para>
/// <para>The version of this structure. Currently only <c>DNS_QUERY_RAW_REQUEST_VERSION1</c> (0x1) exists.</para>
/// </summary>
public uint version;
/// <summary>
/// <para>Type: <c>ULONG</c></para>
/// <para>
/// The requested version of the <c>DNS_QUERY_RAW_RESULT</c> structure returned in the completion callback. Currently only
/// <c>DNS_QUERY_RAW_RESULT_VERSION1</c> (0x1) exists.
/// </para>
/// </summary>
public uint resultsVersion;
/// <summary>
/// <para>Type: <c>ULONG</c></para>
/// <para>Size of the DNS raw query buffer, in bytes, pointed to by dnsQueryRaw.</para>
/// </summary>
public uint dnsQueryRawSize;
/// <summary>
/// <para>Type: <c>BYTE*</c></para>
/// <para>
/// Pointer to the buffer containing the DNS raw query. This buffer contains the wire representation of a DNS query—a 12-byte
/// header followed by the question section. This buffer is owned by the caller, and needs to persist only until DnsQueryRaw returns.
/// </para>
/// </summary>
public IntPtr dnsQueryRaw;
/// <summary>
/// <para>Type: <c>PWSTR</c></para>
/// <para>
/// Pointer to a string that represents the DNS name to query, used in conjunction with dnsQueryType. If this value is present, then
/// it will be used instead of dnsQueryRaw.
/// </para>
/// </summary>
[MarshalAs(UnmanagedType.LPWStr)]
public string? dnsQueryName;
/// <summary>
/// <para>Type: <c>USHORT</c></para>
/// <para>
/// Value that represents the DNS record type of the query, used in conjunction with dnsQueryName. These values are documented in DNS
/// record types.
/// </para>
/// </summary>
public DNS_TYPE dnsQueryType;
/// <summary>
/// <para>Type: <c>ULONG64</c></para>
/// <para>Query options to be used. Makes use of the same query options from DnsQueryEx, as documented in <see cref="DNS_QUERY_OPTIONS"/>.</para>
/// </summary>
public ulong queryOptions;
/// <summary>
/// <para>Type: <c>ULONG</c></para>
/// <para>The interface index to send the query over. If 0, then all interfaces will be used.</para>
/// </summary>
public uint interfaceIndex;
/// <summary>
/// <para>Type: <c>DNS_QUERY_RAW_COMPLETION_ROUTINE</c></para>
/// <para>Pointer to a callback function that will be called when the query finishes. This field is required.</para>
/// </summary>
[MarshalAs(UnmanagedType.FunctionPtr)]
public DNS_QUERY_RAW_COMPLETION_ROUTINE queryCompletionCallback;
/// <summary>
/// <para>Type: <c>VOID*</c></para>
/// <para>Pointer to a user context. This will be provided as a parameter in the queryCompletionCallback call. This field is required.</para>
/// </summary>
public IntPtr queryContext;
/// <summary>
/// <para>Type: <c>ULONG64</c></para>
/// <para>Additional options to modify the raw query.</para>
/// <para>
/// <c>DNS_QUERY_RAW_OPTION_BEST_EFFORT_PARSE</c> (0x1). Specifies that the raw query should be parsed in a best-effort fashion. That
/// means that DnsQueryRaw won't fail in case of an input raw query that is formatted differently from expected (such as including
/// new record types or header bits that the implementation isn't aware of) if it can extract out the necessary information including
/// the query name and type. This will cause the query sent to the server to effectively be a subset of the caller's query with
/// respect to the configuration.
/// </para>
/// </summary>
public ulong queryRawOptions;
/// <summary>
/// <para>Type: <c>ULONG</c></para>
/// <para>The number of custom servers pointed to by customServers.</para>
/// </summary>
public uint customServersSize;
/// <summary>
/// <para>Type: <c>DNS_CUSTOM_SERVER*</c></para>
/// <para>
/// Pointer to an array of custom servers of size customServersSize. This pointer can be NULL, in which case customServersSize must
/// be 0. If not NULL, then this pointer must persist until the DnsQueryRaw call returns.
/// </para>
/// </summary>
public IntPtr /*DNS_CUSTOM_SERVER*/ customServers;
/// <summary>
/// <para>Type: <c>ULONG</c></para>
/// <para>
/// The DNS protocol used for the source query in dnsQueryRaw, and what the caller expects the response to be in. You can use this to
/// change a DNS query response to match the original query, regardless of what protocol is used by the DNS system underneath. For
/// example, if the caller specifies UDP, and the DNS systems decides to use DNS over HTTPS (DoH), and gets a response larger than
/// UDP allows, then the API will truncate the packet as appropriate to match the behavior of what a UDP server responds with if the
/// result is too large. If TCP is requested by the caller, then the packet must be prefixed with the 2-byte length, as specified in
/// section 4.2.2 of RFC 1035.
/// </para>
/// <para>The allowed values are <c>DNS_PROTOCOL_UDP</c> (0x1) and <c>DNS_PROTOCOL_TCP</c> (0x2).</para>
/// </summary>
public DNS_PROTOCOL protocol;
/// <summary>
/// <para>Type: <c>SOCKADDR_INET</c></para>
/// <para>The address of the source of the DNS raw query.</para>
/// </summary>
public SOCKADDR_INET sourceAddr;
}
/// <summary>
/// <note type="important">Some information relates to a prerelease product which may be substantially modified before it's commercially
/// released. Microsoft makes no warranties, express or implied, with respect to the information provided here.</note>
/// <para>Represents a DNS raw query result (see DNS_QUERY_RAW_COMPLETION_ROUTINE).</para>
/// </summary>
// https://learn.microsoft.com/en-us/windows/win32/api/windns/ns-windns-dns_query_raw_result typedef struct _DNS_QUERY_RAW_RESULT { ULONG
// version; DNS_STATUS queryStatus; ULONG64 queryOptions; ULONG64 queryRawOptions; ULONG64 responseFlags; ULONG queryRawResponseSize;
// BYTE *queryRawResponse; PDNS_RECORD queryRecords; ULONG protocol; union { SOCKADDR_INET sourceAddr; CHAR
// maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]; }; } DNS_QUERY_RAW_RESULT;
[PInvokeData("windns.h", MSDNShortId = "NS:windns._DNS_QUERY_RAW_RESULT")]
public struct DNS_QUERY_RAW_RESULT : IVanaraMarshaler
{
/// <summary>
/// <para>Type: <c>ULONG</c></para>
/// <para>
/// The version of this structure. This matches what was set in DNS_QUERY_RAW_REQUEST::resultsVersion. Currently only
/// <c>DNS_QUERY_RAW_RESULT_VERSION1</c> (0x1) exists.
/// </para>
/// </summary>
public uint version { get; private set; }
/// <summary>
/// <para>Type: <c>DNS_STATUS</c></para>
/// <para>The status of the query.</para>
/// </summary>
public DNS_STATUS queryStatus { get; private set; }
/// <summary>
/// <para>Type: <c>ULONG64</c></para>
/// <para>
/// Query options that were used in this query. Due to system configuration, these might be different from the query options that you
/// provided in the request. The current options are defined in <see cref="DNS_QUERY_OPTIONS"/>.
/// </para>
/// </summary>
public DNS_QUERY_OPTIONS queryOptions { get; private set; }
/// <summary>
/// <para>Type: <c>ULONG64</c></para>
/// <para>Additional options that were applied to the raw query. Also see DNS_QUERY_RAW_REQUEST::queryRawOptions.</para>
/// </summary>
public ulong queryRawOptions { get; private set; }
/// <summary>
/// <para>Type: <c>ULONG64</c></para>
/// <para>Additional flags about the query response. Currently none are specified.</para>
/// </summary>
public ulong responseFlags { get; private set; }
/// <summary>
/// <para>Type: <c>ULONG</c></para>
/// <para>Count of bytes in the DNS raw response buffer pointed to by queryRawResponse.</para>
/// </summary>
public uint queryRawResponseSize { get; private set; }
/// <summary>
/// <para>Type: <c>BYTE*</c></para>
/// <para>
/// Pointer to a buffer containing the wire representation of the DNS query response—a 12-byte header followed by a variable number
/// of records. This buffer is of size queryRawResponseSize bytes.
/// </para>
/// <para>
/// The pointer might or might not be valid depending on queryStatus. Internal DNS errors would produce an error status and a
/// pointer, but negative responses from the server could produce error status and a valid pointer. If the queryStatus is
/// <c>ERROR_SUCCESS</c>, then the pointer is valid.
/// </para>
/// </summary>
public byte[] queryRawResponse { get; private set; }
/// <summary>
/// <para>Type: <c>PDNS_RECORD</c></para>
/// <para>
/// Pointer to a DNS_RECORD structure. This contains the same records as in queryRawResponse, but parsed out into a structure format.
/// </para>
/// <para>This pointer is valid in the same ways as queryRawResponse, where it's dependent on the queryStatus value.</para>
/// <para>
/// queryRecords contains the same records as in queryRawResponse, but parsed out into a structure format. However, if there's a new
/// type of DNS record in the response that's not known by the implementation, then that won't be present in queryRecords; but it
/// will be present in queryRawResponse.
/// </para>
/// </summary>
public DNS_RECORD queryRecords { get; private set; }
/// <summary>
/// <para>Type: <c>ULONG</c></para>
/// <para>
/// The DNS protocol used for the query response. This doesn't necessarily match the protocol in DNS_QUERY_RAW_REQUEST because the
/// DNS system might have changed the outgoing query protocol based on configuration. The query response will be modified, if needed,
/// to match the protocol in the request so that the behavior seen by the caller is seamless. A value of <c>DNS_PROTOCOL_NO_WIRE</c>
/// indicates that the result records and data were produced internally and the DNS system didn't send a query on the wire.
/// </para>
/// <para>Possible values include:</para>
/// <list type="bullet">
/// <item>
/// <description><c>DNS_PROTOCOL_UNSPECIFIED</c> (0x0). The query completed without receiving a response; such as in a cancellation.</description>
/// </item>
/// <item>
/// <description><c>DNS_PROTOCOL_UDP</c> (0x1).</description>
/// </item>
/// <item>
/// <description><c>DNS_PROTOCOL_TCP</c> (0x2).</description>
/// </item>
/// <item>
/// <description><c>DNS_PROTOCOL_DOH</c> (0x3).</description>
/// </item>
/// <item>
/// <description><c>DNS_PROTOCOL_DOT</c> (0x4).</description>
/// </item>
/// <item>
/// <description><c>DNS_PROTOCOL_NO_WIRE</c> (0x5). The query completed inline; such as with records from the cache.</description>
/// </item>
/// </list>
/// </summary>
public DNS_PROTOCOL protocol { get; private set; }
/// <summary>
/// <para>Type: <c>SOCKADDR_INET</c></para>
/// <para>The address of the source of the DNS raw response.</para>
/// </summary>
public SOCKADDR_INET sourceAddr { get; private set; }
SizeT IVanaraMarshaler.GetNativeSize() => Marshal.SizeOf(typeof(_DNS_QUERY_RAW_RESULT));
SafeAllocatedMemoryHandle IVanaraMarshaler.MarshalManagedToNative(object? managedObject) => throw new NotImplementedException();
object? IVanaraMarshaler.MarshalNativeToManaged(IntPtr pNativeData, SizeT allocatedBytes)
{
if (pNativeData == IntPtr.Zero || allocatedBytes == 0)
return null;
var r = (_DNS_QUERY_RAW_RESULT)Marshal.PtrToStructure(pNativeData, typeof(_DNS_QUERY_RAW_RESULT))!;
return new DNS_QUERY_RAW_RESULT
{
version = r.version,
queryStatus = r.queryStatus,
queryOptions = (DNS_QUERY_OPTIONS)r.queryOptions,
queryRawOptions = r.queryRawOptions,
responseFlags = r.responseFlags,
queryRawResponseSize = r.queryRawResponseSize,
queryRawResponse = r.queryRawResponse.ToArray<byte>((int)r.queryRawResponseSize) ?? new byte[0],
queryRecords = r.queryRecords.ToStructure<DNS_RECORD>(),
protocol = r.protocol,
sourceAddr = r.sourceAddr,
};
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
struct _DNS_QUERY_RAW_RESULT
{
public uint version;
public DNS_STATUS queryStatus;
public ulong queryOptions;
public ulong queryRawOptions;
public ulong responseFlags;
public uint queryRawResponseSize;
public IntPtr queryRawResponse;
public IntPtr queryRecords;
public DNS_PROTOCOL protocol;
public SOCKADDR_INET sourceAddr;
}
}
/// <summary>The <c>DNS_QUERY_REQUEST</c> structure contains the DNS query parameters used in a call to DnsQueryEx.</summary>

View File

@ -18,4 +18,4 @@ If you're still running into problems, file an [issue](https://github.com/dahall
Functions | Enumerations | Structures
--- | --- | ---
DnsAcquireContextHandle_ DnsCancelQuery DnsCancelQueryRaw DnsExtractRecordsFromMessage_W DnsFree DnsFreeCustomServers DnsFreeProxyName DnsGetApplicationSettings DnsGetCacheDataTable DnsGetProxyInformation DnsModifyRecordsInSet_ DnsNameCompare_ DnsQuery_ DnsQueryConfig DnsQueryEx DnsQueryRaw DnsQueryRawResultFree DnsRecordCompare DnsRecordCopyEx DnsRecordSetCompare DnsRecordSetCopyEx DnsRecordSetDetach DnsReleaseContextHandle DnsReplaceRecordSet DnsServiceBrowse DnsServiceBrowseCancel DnsServiceConstructInstance DnsServiceCopyInstance DnsServiceDeRegister DnsServiceFreeInstance DnsServiceRegister DnsServiceRegisterCancel DnsServiceResolve DnsServiceResolveCancel DnsSetApplicationSettings DnsStartMulticastQuery DnsStopMulticastQuery DnsValidateName_ DnsValidateServerStatus DnsWriteQuestionToBuffer_W | ATMA DNS_APP_SETTINGSF DNS_CHARSET DNS_CLASS DNS_CONFIG_FLAG DNS_CONFIG_TYPE DNS_CUSTOM_SERVER_FLAGS DNS_CUSTOM_SERVER_TYPE DNS_FREE_TYPE DNS_NAME_FORMAT DNS_OPCODE DNS_PROXY_INFORMATION_TYPE DNS_QUERY_OPTIONS DNS_RCODE DNS_SECTION DNS_TKEY_MODE DNS_TYPE DNS_UPDATE DNS_WINS_FLAG DnsServerStatus | DNS_A_DATA DNS_AAAA_DATA DNS_ADDR DNS_ADDR_ARRAY DNS_APPLICATION_SETTINGS DNS_ATMA_DATA DNS_CACHE_ENTRY DNS_CUSTOM_SERVER DNS_DHCID_DATA DNS_DS_DATA DNS_HEADER DNS_KEY_DATA DNS_LOC_DATA DNS_MESSAGE_BUFFER DNS_MINFO_DATA DNS_MX_DATA DNS_NAPTR_DATA DNS_NSEC_DATA DNS_NSEC3_DATA DNS_NSEC3PARAM_DATA DNS_NULL_DATA DNS_NXT_DATA DNS_OPT_DATA DNS_PROXY_INFORMATION DNS_PTR_DATA DNS_QUERY_CANCEL DNS_QUERY_REQUEST DNS_QUERY_REQUEST3 DNS_QUERY_RESULT DNS_RECORD DNS_RECORD_FLAGS DNS_RRSET DNS_SERVICE_BROWSE_REQUEST DNS_SERVICE_CANCEL DNS_SERVICE_INSTANCE DNS_SERVICE_REGISTER_REQUEST DNS_SERVICE_RESOLVE_REQUEST DNS_SIG_DATA DNS_SOA_DATA DNS_SRV_DATA DNS_TKEY_DATA DNS_TLSA_DATA DNS_TSIG_DATA DNS_TXT_DATA DNS_UNKNOWN_DATA DNS_WINS_DATA DNS_WINSR_DATA DNS_WIRE_QUESTION DNS_WIRE_RECORD DNS_WKS_DATA IP4_ARRAY MDNS_QUERY_HANDLE MDNS_QUERY_REQUEST HDNSCONTEXT DNS_SERVICE_BROWSE_REQUEST_CALLBACK
DnsAcquireContextHandle_ DnsCancelQuery DnsCancelQueryRaw DnsExtractRecordsFromMessage_W DnsFree DnsFreeCustomServers DnsFreeProxyName DnsGetApplicationSettings DnsGetCacheDataTable DnsGetProxyInformation DnsModifyRecordsInSet_ DnsNameCompare_ DnsQuery_ DnsQueryConfig DnsQueryEx DnsQueryRaw DnsQueryRawResultFree DnsRecordCompare DnsRecordCopyEx DnsRecordSetCompare DnsRecordSetCopyEx DnsRecordSetDetach DnsReleaseContextHandle DnsReplaceRecordSet DnsServiceBrowse DnsServiceBrowseCancel DnsServiceConstructInstance DnsServiceCopyInstance DnsServiceDeRegister DnsServiceFreeInstance DnsServiceRegister DnsServiceRegisterCancel DnsServiceResolve DnsServiceResolveCancel DnsSetApplicationSettings DnsStartMulticastQuery DnsStopMulticastQuery DnsValidateName_ DnsValidateServerStatus DnsWriteQuestionToBuffer_W | ATMA DNS_APP_SETTINGSF DNS_CHARSET DNS_CLASS DNS_CONFIG_FLAG DNS_CONFIG_TYPE DNS_CUSTOM_SERVER_FLAGS DNS_CUSTOM_SERVER_TYPE DNS_FREE_TYPE DNS_NAME_FORMAT DNS_OPCODE DNS_PROTOCOL DNS_PROXY_INFORMATION_TYPE DNS_QUERY_OPTIONS DNS_RCODE DNS_SECTION DNS_TKEY_MODE DNS_TYPE DNS_UPDATE DNS_WINS_FLAG DnsServerStatus | DNS_A_DATA DNS_AAAA_DATA DNS_ADDR DNS_ADDR_ARRAY DNS_APPLICATION_SETTINGS DNS_ATMA_DATA DNS_CACHE_ENTRY DNS_CUSTOM_SERVER DNS_DHCID_DATA DNS_DS_DATA DNS_HEADER DNS_KEY_DATA DNS_LOC_DATA DNS_MESSAGE_BUFFER DNS_MINFO_DATA DNS_MX_DATA DNS_NAPTR_DATA DNS_NSEC_DATA DNS_NSEC3_DATA DNS_NSEC3PARAM_DATA DNS_NULL_DATA DNS_NXT_DATA DNS_OPT_DATA DNS_PROXY_INFORMATION DNS_PTR_DATA DNS_QUERY_CANCEL DNS_QUERY_RAW_CANCEL DNS_QUERY_RAW_REQUEST DNS_QUERY_RAW_RESULT DNS_QUERY_REQUEST DNS_QUERY_REQUEST3 DNS_QUERY_RESULT DNS_RECORD DNS_RECORD_FLAGS DNS_RRSET DNS_SERVICE_BROWSE_REQUEST DNS_SERVICE_CANCEL DNS_SERVICE_INSTANCE DNS_SERVICE_REGISTER_REQUEST DNS_SERVICE_RESOLVE_REQUEST DNS_SIG_DATA DNS_SOA_DATA DNS_SRV_DATA DNS_TKEY_DATA DNS_TLSA_DATA DNS_TSIG_DATA DNS_TXT_DATA DNS_UNKNOWN_DATA DNS_WINS_DATA DNS_WINSR_DATA DNS_WIRE_QUESTION DNS_WIRE_RECORD DNS_WKS_DATA IP4_ARRAY MDNS_QUERY_HANDLE MDNS_QUERY_REQUEST HDNSCONTEXT DNS_SERVICE_BROWSE_REQUEST_CALLBACK

View File

@ -3,12 +3,12 @@ PInvoke API (methods, structures and constants imported from Windows DnsApi.dll.
- Includes methods from dnsapi.dll
- Current NuGet release: [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.DnsApi?logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.DnsApi?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.DnsApi)
### Methods - 92% API coverage (37 of 40 functions)
### Methods - 100% API coverage (40 of 40 functions)
Native Method | Header | Managed Method
--- | --- | ---
[DnsAcquireContextHandle_](https://www.google.com/search?num=5&q=DnsAcquireContextHandle_A+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DnsAcquireContextHandle](https://github.com/dahall/Vanara/search?l=C%23&q=DnsAcquireContextHandle)
[DnsCancelQuery](https://www.google.com/search?num=5&q=DnsCancelQuery+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DnsCancelQuery](https://github.com/dahall/Vanara/search?l=C%23&q=DnsCancelQuery)
[DnsCancelQueryRaw](https://www.google.com/search?num=5&q=DnsCancelQueryRaw+site%3Alearn.microsoft.com) | |
[DnsCancelQueryRaw](https://www.google.com/search?num=5&q=DnsCancelQueryRaw+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DnsCancelQueryRaw](https://github.com/dahall/Vanara/search?l=C%23&q=DnsCancelQueryRaw)
[DnsExtractRecordsFromMessage_W](https://www.google.com/search?num=5&q=DnsExtractRecordsFromMessage_W+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DnsExtractRecordsFromMessage](https://github.com/dahall/Vanara/search?l=C%23&q=DnsExtractRecordsFromMessage)
[DnsFree](https://www.google.com/search?num=5&q=DnsFree+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DnsFree](https://github.com/dahall/Vanara/search?l=C%23&q=DnsFree)
[DnsFreeCustomServers](https://www.google.com/search?num=5&q=DnsFreeCustomServers+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DnsFreeCustomServers](https://github.com/dahall/Vanara/search?l=C%23&q=DnsFreeCustomServers)
@ -21,8 +21,8 @@ Native Method | Header | Managed Method
[DnsQuery_](https://www.google.com/search?num=5&q=DnsQuery_A+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DnsQuery](https://github.com/dahall/Vanara/search?l=C%23&q=DnsQuery)
[DnsQueryConfig](https://www.google.com/search?num=5&q=DnsQueryConfig+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DnsQueryConfig](https://github.com/dahall/Vanara/search?l=C%23&q=DnsQueryConfig)
[DnsQueryEx](https://www.google.com/search?num=5&q=DnsQueryEx+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DnsQueryEx](https://github.com/dahall/Vanara/search?l=C%23&q=DnsQueryEx)
[DnsQueryRaw](https://www.google.com/search?num=5&q=DnsQueryRaw+site%3Alearn.microsoft.com) | |
[DnsQueryRawResultFree](https://www.google.com/search?num=5&q=DnsQueryRawResultFree+site%3Alearn.microsoft.com) | |
[DnsQueryRaw](https://www.google.com/search?num=5&q=DnsQueryRaw+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DnsQueryRaw](https://github.com/dahall/Vanara/search?l=C%23&q=DnsQueryRaw)
[DnsQueryRawResultFree](https://www.google.com/search?num=5&q=DnsQueryRawResultFree+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DnsQueryRawResultFree](https://github.com/dahall/Vanara/search?l=C%23&q=DnsQueryRawResultFree)
[DnsRecordCompare](https://www.google.com/search?num=5&q=DnsRecordCompare+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DnsRecordCompare](https://github.com/dahall/Vanara/search?l=C%23&q=DnsRecordCompare)
[DnsRecordCopyEx](https://www.google.com/search?num=5&q=DnsRecordCopyEx+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DnsRecordCopyEx](https://github.com/dahall/Vanara/search?l=C%23&q=DnsRecordCopyEx)
[DnsRecordSetCompare](https://www.google.com/search?num=5&q=DnsRecordSetCompare+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DnsRecordSetCompare](https://github.com/dahall/Vanara/search?l=C%23&q=DnsRecordSetCompare)
@ -60,6 +60,7 @@ Native Enum | Header | Managed Enum
[DNS_FREE_TYPE](https://www.google.com/search?num=5&q=DNS_FREE_TYPE+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_FREE_TYPE](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_FREE_TYPE)
[DNS_NAME_FORMAT](https://www.google.com/search?num=5&q=DNS_NAME_FORMAT+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_NAME_FORMAT](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_NAME_FORMAT)
[DNS_OPCODE](https://www.google.com/search?num=5&q=DNS_OPCODE+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_OPCODE](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_OPCODE)
[DNS_PROTOCOL](https://www.google.com/search?num=5&q=DNS_PROTOCOL+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_PROTOCOL](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_PROTOCOL)
[DNS_PROXY_INFORMATION_TYPE](https://www.google.com/search?num=5&q=DNS_PROXY_INFORMATION_TYPE+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_PROXY_INFORMATION_TYPE](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_PROXY_INFORMATION_TYPE)
[DNS_QUERY_OPTIONS](https://www.google.com/search?num=5&q=DNS_QUERY_OPTIONS+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_QUERY_OPTIONS](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_QUERY_OPTIONS)
[DNS_RCODE](https://www.google.com/search?num=5&q=DNS_RCODE+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_RCODE](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_RCODE)
@ -98,6 +99,9 @@ Native Structure | Header | Managed Structure
[DNS_PROXY_INFORMATION](https://www.google.com/search?num=5&q=DNS_PROXY_INFORMATION+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_PROXY_INFORMATION](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_PROXY_INFORMATION)
[DNS_PTR_DATA](https://www.google.com/search?num=5&q=DNS_PTR_DATA+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_PTR_DATA](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_PTR_DATA)
[DNS_QUERY_CANCEL](https://www.google.com/search?num=5&q=DNS_QUERY_CANCEL+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_QUERY_CANCEL](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_QUERY_CANCEL)
[DNS_QUERY_RAW_CANCEL](https://www.google.com/search?num=5&q=DNS_QUERY_RAW_CANCEL+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_QUERY_RAW_CANCEL](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_QUERY_RAW_CANCEL)
[DNS_QUERY_RAW_REQUEST](https://www.google.com/search?num=5&q=DNS_QUERY_RAW_REQUEST+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_QUERY_RAW_REQUEST](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_QUERY_RAW_REQUEST)
[DNS_QUERY_RAW_RESULT](https://www.google.com/search?num=5&q=DNS_QUERY_RAW_RESULT+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_QUERY_RAW_RESULT](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_QUERY_RAW_RESULT)
[DNS_QUERY_REQUEST](https://www.google.com/search?num=5&q=DNS_QUERY_REQUEST+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_QUERY_REQUEST](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_QUERY_REQUEST)
[DNS_QUERY_REQUEST3](https://www.google.com/search?num=5&q=DNS_QUERY_REQUEST3+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_QUERY_REQUEST3](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_QUERY_REQUEST3)
[DNS_QUERY_RESULT](https://www.google.com/search?num=5&q=DNS_QUERY_RESULT+site%3Alearn.microsoft.com) | windns.h | [Vanara.PInvoke.DnsApi.DNS_QUERY_RESULT](https://github.com/dahall/Vanara/search?l=C%23&q=DNS_QUERY_RESULT)

View File

@ -62,6 +62,30 @@ public static partial class Kernel32
ComputerNameMax,
}
/// <summary>An enum of possible values for the developer drive enablement state.</summary>
// https://learn.microsoft.com/en-us/windows/win32/api/sysinfoapi/ne-sysinfoapi-developer_drive_enablement_state typedef enum
// DEVELOPER_DRIVE_ENABLEMENT_STATE { DeveloperDriveEnablementStateError, DeveloperDriveEnabled, DeveloperDriveDisabledBySystemPolicy,
// DeveloperDriveDisabledByGroupPolicy } ;
[PInvokeData("sysinfoapi.h", MSDNShortId = "NE:sysinfoapi.DEVELOPER_DRIVE_ENABLEMENT_STATE")]
public enum DEVELOPER_DRIVE_ENABLEMENT_STATE
{
/// <summary>
/// <para>Indicates that there was an error determining the developer drive enablement state. After this is returned, call</para>
/// <para>GetLastError</para>
/// <para>to get the error value.</para>
/// </summary>
DeveloperDriveEnablementStateError,
/// <summary>Indicates that the developer drive is enabled.</summary>
DeveloperDriveEnabled,
/// <summary>Indicates that the developer drive is disabled by system policy.</summary>
DeveloperDriveDisabledBySystemPolicy,
/// <summary>Indicates that the developer drive is disabled by group policy.</summary>
DeveloperDriveDisabledByGroupPolicy,
}
/// <summary>Identifier of a firmware table provider for calls to <c>EnumSystemFirmwareTables</c>.</summary>
public enum FirmwareTableProviderId : uint
{
@ -1013,6 +1037,26 @@ public static partial class Kernel32
/// </returns>
public static bool GetComputerNameEx(COMPUTER_NAME_FORMAT NameType, out string? name) => CallMethodWithStrBuf((StringBuilder? sb, ref uint sz) => GetComputerNameEx(NameType, sb, ref sz), out name);
/// <summary>Gets a value indicating whether the developer drive is enabled.</summary>
/// <returns>Returns a DEVELOPER_DRIVE_ENABLEMENT_STATE value indicating the developer drive enablement state.</returns>
/// <remarks>
/// <para>
/// <c>GetDeveloperDriveEnablementState</c> returns information indicating whether the developer drive feature is enabled. If the
/// developer drive feature is disabled, the <c>DEVELOPER_DRIVE_ENABLEMENT_STATE</c> returned indicates whether developer drive is
/// disabled via group policy or via local policy.
/// </para>
/// <para>If <c>GetDeveloperDriveEnablementState</c> fails, it returns <c>DeveloperDriveEnablementStateError</c> and sets the last error.</para>
/// <para>Examples</para>
/// <para>
/// The following example shows how to use <c>GetDeveloperDriveEnablementState</c> to determine whether the developer drive is enabled.
/// </para>
/// </remarks>
// https://learn.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getdeveloperdriveenablementstate
// DEVELOPER_DRIVE_ENABLEMENT_STATE GetDeveloperDriveEnablementState();
[PInvokeData("sysinfoapi.h", MSDNShortId = "NF:sysinfoapi.GetDeveloperDriveEnablementState")]
[DllImport(Lib.Kernel32, SetLastError = true, ExactSpelling = true)]
public static extern DEVELOPER_DRIVE_ENABLEMENT_STATE GetDeveloperDriveEnablementState();
/// <summary>Retrieves the value of the specified firmware environment variable.</summary>
/// <param name="lpName">The name of the firmware environment variable. The pointer must not be <c>NULL</c>.</param>
/// <param name="lpGuid">

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@ PInvoke API (methods, structures and constants) imported from Windows Kernel32.d
- Includes methods from kernel32.dll, kernelbase.dll, normaliz.dll, vertdll.dll
- Current NuGet release: [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.Kernel32?logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.Kernel32?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Kernel32)
### Methods - 99% API coverage (1151 of 1152 functions)
### Methods - 100% API coverage (1152 of 1152 functions)
Native Method | Native DLL | Header | Managed Method
--- | --- | --- | ---
[AcquireSRWLockExclusive](https://www.google.com/search?num=5&q=AcquireSRWLockExclusive+site%3Alearn.microsoft.com) | kernel32.dll | WinBase.h | [Vanara.PInvoke.Kernel32.AcquireSRWLockExclusive](https://github.com/dahall/Vanara/search?l=C%23&q=AcquireSRWLockExclusive)
@ -369,7 +369,7 @@ Native Method | Native DLL | Header | Managed Method
[GetDateFormat](https://www.google.com/search?num=5&q=GetDateFormatA+site%3Alearn.microsoft.com) | kernel32.dll | datetimeapi.h | [Vanara.PInvoke.Kernel32.GetDateFormat](https://github.com/dahall/Vanara/search?l=C%23&q=GetDateFormat)
[GetDateFormatEx](https://www.google.com/search?num=5&q=GetDateFormatEx+site%3Alearn.microsoft.com) | kernel32.dll | datetimeapi.h | [Vanara.PInvoke.Kernel32.GetDateFormatEx](https://github.com/dahall/Vanara/search?l=C%23&q=GetDateFormatEx)
[GetDefaultCommConfig](https://www.google.com/search?num=5&q=GetDefaultCommConfigA+site%3Alearn.microsoft.com) | kernel32.dll | Winbase.h | [Vanara.PInvoke.Kernel32.GetDefaultCommConfig](https://github.com/dahall/Vanara/search?l=C%23&q=GetDefaultCommConfig)
[GetDeveloperDriveEnablementState](https://www.google.com/search?num=5&q=GetDeveloperDriveEnablementState+site%3Alearn.microsoft.com) | kernelbase.dll | |
[GetDeveloperDriveEnablementState](https://www.google.com/search?num=5&q=GetDeveloperDriveEnablementState+site%3Alearn.microsoft.com) | kernelbase.dll | sysinfoapi.h | [Vanara.PInvoke.Kernel32.GetDeveloperDriveEnablementState](https://github.com/dahall/Vanara/search?l=C%23&q=GetDeveloperDriveEnablementState)
[GetDeviceDriverBaseName](https://www.google.com/search?num=5&q=GetDeviceDriverBaseNameA+site%3Alearn.microsoft.com) | kernelbase.dll | psapi.h | [Vanara.PInvoke.Kernel32.GetDeviceDriverBaseName](https://github.com/dahall/Vanara/search?l=C%23&q=GetDeviceDriverBaseName)
[GetDeviceDriverFileName](https://www.google.com/search?num=5&q=GetDeviceDriverFileNameA+site%3Alearn.microsoft.com) | kernelbase.dll | psapi.h | [Vanara.PInvoke.Kernel32.GetDeviceDriverFileName](https://github.com/dahall/Vanara/search?l=C%23&q=GetDeviceDriverFileName)
[GetDevicePowerState](https://www.google.com/search?num=5&q=GetDevicePowerState+site%3Alearn.microsoft.com) | kernel32.dll | Winbase.h | [Vanara.PInvoke.Kernel32.GetDevicePowerState](https://github.com/dahall/Vanara/search?l=C%23&q=GetDevicePowerState)
@ -1236,6 +1236,7 @@ Native Enum | Header | Managed Enum
[DEBUG_EVENT_CODE](https://www.google.com/search?num=5&q=DEBUG_EVENT_CODE+site%3Alearn.microsoft.com) | | [Vanara.PInvoke.Kernel32.DEBUG_EVENT_CODE](https://github.com/dahall/Vanara/search?l=C%23&q=DEBUG_EVENT_CODE)
[DEP_SYSTEM_POLICY_TYPE](https://www.google.com/search?num=5&q=DEP_SYSTEM_POLICY_TYPE+site%3Alearn.microsoft.com) | winbase.h | [Vanara.PInvoke.Kernel32.DEP_SYSTEM_POLICY_TYPE](https://github.com/dahall/Vanara/search?l=C%23&q=DEP_SYSTEM_POLICY_TYPE)
[DETECTION_TYPE](https://www.google.com/search?num=5&q=DETECTION_TYPE+site%3Alearn.microsoft.com) | winioctl.h | [Vanara.PInvoke.Kernel32.DETECTION_TYPE](https://github.com/dahall/Vanara/search?l=C%23&q=DETECTION_TYPE)
[DEVELOPER_DRIVE_ENABLEMENT_STATE](https://www.google.com/search?num=5&q=DEVELOPER_DRIVE_ENABLEMENT_STATE+site%3Alearn.microsoft.com) | sysinfoapi.h | [Vanara.PInvoke.Kernel32.DEVELOPER_DRIVE_ENABLEMENT_STATE](https://github.com/dahall/Vanara/search?l=C%23&q=DEVELOPER_DRIVE_ENABLEMENT_STATE)
[DEVICE_DSM_ACTION](https://www.google.com/search?num=5&q=DEVICE_DSM_ACTION+site%3Alearn.microsoft.com) | winioctl.h | [Vanara.PInvoke.Kernel32.DEVICE_DSM_ACTION](https://github.com/dahall/Vanara/search?l=C%23&q=DEVICE_DSM_ACTION)
[DEVICE_DSM_FLAG](https://www.google.com/search?num=5&q=DEVICE_DSM_FLAG+site%3Alearn.microsoft.com) | winioctl.h | [Vanara.PInvoke.Kernel32.DEVICE_DSM_FLAG](https://github.com/dahall/Vanara/search?l=C%23&q=DEVICE_DSM_FLAG)
[DEVICE_DSM_NOTIFY_FLAG](https://www.google.com/search?num=5&q=DEVICE_DSM_NOTIFY_FLAG+site%3Alearn.microsoft.com) | winioctl.h | [Vanara.PInvoke.Kernel32.DEVICE_DSM_NOTIFY_FLAG](https://github.com/dahall/Vanara/search?l=C%23&q=DEVICE_DSM_NOTIFY_FLAG)

View File

@ -4,6 +4,9 @@ namespace Vanara.PInvoke;
public static partial class Ole32
{
/// <summary>Linked object will be disabled during conversion.</summary>
public const uint OLESTREAM_CONVERSION_DISABLEOLELINK = 0x00000001;
/// <summary>Specify the role and creation context for the embedding helper.</summary>
[PInvokeData("ole2.h", MSDNShortId = "5c67b513-0692-4e0a-beab-8b514089699c")]
[Flags]
@ -37,6 +40,31 @@ public static partial class Ole32
OLECREATE_LEAVERUNNING = 1
}
/// <summary>
/// Points to a function that queries the application if the linked object in OLESTREAM should be disabled or not while converting
/// OLESTREAM to IStorage.
/// </summary>
/// <param name="pClsid">
/// The CLSID for the linked object. If the ProgID(specified in szClass) is "OLE2Link", it's CLSID_StdOleLink; Otherwise it's the CLSID
/// mapped to the ProgID in the registry.
/// </param>
/// <param name="szClass">The ProgID of the linked object.</param>
/// <param name="szTopicName">Path name of the linked file. May be NULL.</param>
/// <param name="szItemName">The name of item within the linked file to which is being linked. May be NULL.</param>
/// <param name="szUNCName">The network path name of the linked file in UNC format. May be NULL.</param>
/// <param name="linkUpdatingOption">Implementation-specific hint supplied by the application or higher-level protocol.</param>
/// <param name="pvContext">The context of the user passed to this callback function. May be NULL.</param>
/// <returns>
/// If the return value is S_OK, the linked object will be converted. If the return value is other than S_OK, the linked object will be disabled.
/// </returns>
// https://learn.microsoft.com/en-us/windows/win32/controls/olestreamqueryconvertolelinkcallback
// typedef HRESULT(STDAPICALLTYPE* OLESTREAMQUERYCONVERTOLELINKCALLBACK) (_In_ LPCLSID pClsid, _In_ LPOLESTR szClass, _In_opt_ LPOLESTR szTopicName, _In_opt_ LPOLESTR szItemName, _In_opt_ LPOLESTR szUNCName, _In_opt_ ULONG linkUpdatingOption, _In_opt_ PVOID pvContext);
[PInvokeData("ole2.h")]
[UnmanagedFunctionPointer(CallingConvention.Winapi, SetLastError = false)]
public delegate HRESULT OLESTREAMQUERYCONVERTOLELINKCALLBACK(in Guid pClsid, [In, MarshalAs(UnmanagedType.LPWStr)] string szClass,
[In, Optional,MarshalAs(UnmanagedType.LPWStr)] string? szTopicName, [In, Optional, MarshalAs(UnmanagedType.LPWStr)] string? szItemName,
[In, Optional, MarshalAs(UnmanagedType.LPWStr)] string? szUNCName, [In, Optional] uint linkUpdatingOption, [In, Optional] IntPtr pvContext);
/// <summary>Retrieves a pointer to the OLE implementation of IDataAdviseHolder on the data advise holder object.</summary>
/// <param name="ppDAHolder">
/// Address of an IDataAdviseHolder pointer variable that receives the interface pointer to the new advise holder object.
@ -342,7 +370,61 @@ public static partial class Ole32
// OleConvertOLESTREAMToIStorage( IN LPOLESTREAM lpolestream, OUT LPSTORAGE pstg, IN const DVTARGETDEVICE *ptd );
[DllImport(Lib.Ole32, SetLastError = false, ExactSpelling = true)]
[PInvokeData("ole2.h", MSDNShortId = "8fed879c-5f97-4450-8259-da9643dd828c")]
public static extern HRESULT OleConvertOLESTREAMToIStorage(in OLESTREAM lpolestream, out IStorage pstg, [In] DVTARGETDEVICE ptd);
public static extern HRESULT OleConvertOLESTREAMToIStorage(in OLESTREAM lpolestream, [Out] IStorage pstg, [In, Optional] DVTARGETDEVICE? ptd);
/// <summary>
/// <para>
/// Converts the specified object from the OLE 1 storage model to an OLE 2 structured storage object without specifying presentation data.
/// </para>
/// <note title="note">This is one of several compatibility functions.</note>
/// </summary>
/// <param name="lpolestream">A pointer to a stream that contains the persistent representation of the object in the OLE 1 storage format.</param>
/// <param name="pstg">A pointer to the IStorage interface on the OLE 2 structured storage object.</param>
/// <param name="ptd">A pointer to the DVTARGETDEVICE structure that specifies the target device for which the OLE 1 object is rendered.</param>
/// <param name="opt">
/// This value can be 0 or OLESTREAM_CONVERSION_DISABLEOLELINK(0x00000001). If the value is OLESTREAM_CONVERSION_DISABLEOLELINK, linked
/// object will be disabled during conversion.
/// </param>
/// <param name="pvCallbackContext">
/// The context of the user to be passed to the callback function pQueryConvertOLELinkCallback. May be NULL.
/// </param>
/// <param name="pQueryConvertOLELinkCallback">The p query convert OLE link callback.</param>
/// <returns>
/// <list type="table">
/// <listheader>
/// <description>Value</description>
/// <description>Description</description>
/// </listheader>
/// <item>
/// <description>S_OK</description>
/// <description>Success.</description>
/// </item>
/// <item>
/// <description>E_INVALIDARG</description>
/// <description>Invalid argument.</description>
/// </item>
/// </list>
/// </returns>
/// <remarks>
/// <para>
/// This function converts an OLE 1 object to an OLE 2 structured storage object. Use this function to update OLE 1 objects to OLE 2
/// objects when a new version of the object application supports OLE 2. This function differs from the OleConvertOLESTREAMToIStorage
/// function in that the application can pass in an optional value to disable linked object during conversion or a callback function that
/// queries the application if linked object should be converted or not.
/// </para>
/// <para>
/// This function has no associated import library or header file; you must call it using the <c>LoadLibrary</c> and
/// <c>GetProcAddress</c> functions. The API is exported from Ole32.dll.
/// </para>
/// </remarks>
// https://learn.microsoft.com/en-us/windows/win32/stg/oleconvertolestreamtoistorage2 HRESULT OleConvertOLESTREAMToIStorage2( [in]
// LPOLESTREAM lpolestream, [out] LPSTORAGE pstg, [in] const DVTARGETDEVICE *ptd, [in] DWORD opt, [in] PVOID pvCallbackContext, [in]
// OLESTREAMQUERYCONVERTOLELINKCALLBACK pQueryConvertOLELinkCallback );
[PInvokeData("ole2.h")]
[DllImport(Lib.Ole32, SetLastError = false, ExactSpelling = true)]
public static extern HRESULT OleConvertOLESTREAMToIStorage2(in OLESTREAM lpolestream, [Out] IStorage pstg,
[In, Optional] DVTARGETDEVICE? ptd, [Optional] uint opt, [In, Optional] IntPtr pvCallbackContext,
[In, Optional] OLESTREAMQUERYCONVERTOLELINKCALLBACK? pQueryConvertOLELinkCallback);
/// <summary>
/// The <c>OleConvertOLESTREAMToIStorageEx</c> function converts the specified object from the OLE 1 storage model to an OLE 2
@ -384,9 +466,71 @@ public static partial class Ole32
// LONG *plHeight, OUT DWORD *pdwSize, OUT LPSTGMEDIUM pmedium );
[DllImport(Lib.Ole32, SetLastError = false, ExactSpelling = true)]
[PInvokeData("ole2.h", MSDNShortId = "2e77fa0e-1d98-4c59-8d3c-65bd7235ec8f")]
public static extern HRESULT OleConvertOLESTREAMToIStorageEx(in OLESTREAM polestm, out IStorage pstg, out CLIPFORMAT pcfFormat,
public static extern HRESULT OleConvertOLESTREAMToIStorageEx(in OLESTREAM polestm, [Out] IStorage pstg, out CLIPFORMAT pcfFormat,
out int plwWidth, out int plHeight, out uint pdwSize, out STGMEDIUM pmedium);
/// <summary>
/// <para>Converts the specified object from the OLE 1 storage model to an OLE 2 structured storage object including presentation data.</para>
/// <note title="note">This is one of several compatibility functions.</note>
/// </summary>
/// <param name="polestm">A pointer to a stream that contains the persistent representation of the object in the OLE 1 storage format.</param>
/// <param name="pstg">Pointer to the OLE 2 structured storage object.</param>
/// <param name="pcfFormat">
/// Pointer to where the format of the presentation data is returned. May be NULL, indicating the absence of presentation data.
/// </param>
/// <param name="plwWidth">Pointer to where the width value, in HIMETRIC, of the presentation data is returned.</param>
/// <param name="plHeight">Pointer to where the height value, in HIMETRIC, of the presentation data is returned.</param>
/// <param name="pdwSize">Pointer to where the size in bytes of the converted data is returned.</param>
/// <param name="pmedium">Pointer to where the STGMEDIUM structure for the converted serialized data is returned.</param>
/// <param name="opt">
/// This value can be 0 or OLESTREAM_CONVERSION_DISABLEOLELINK(0x00000001). If the value is OLESTREAM_CONVERSION_DISABLEOLELINK, linked
/// object will be disabled during conversion.
/// </param>
/// <param name="pvCallbackContext">
/// The context of the user to be passed to the callback function pQueryConvertOLELinkCallback. May be NULL.
/// </param>
/// <param name="pQueryConvertOLELinkCallback">
/// A pointer to an OLESTREAMQUERYCONVERTOLELINKCALLBACK callback function that queries the application if linked object should be
/// converted or not. May be NULL.
/// </param>
/// <returns>
/// <list type="table">
/// <listheader>
/// <description>Value</description>
/// <description>Description</description>
/// </listheader>
/// <item>
/// <description>S_OK</description>
/// <description>Success.</description>
/// </item>
/// <item>
/// <description>E_INVALIDARG</description>
/// <description>Invalid argument.</description>
/// </item>
/// </list>
/// </returns>
/// <remarks>
/// <para>
/// This function converts an OLE 1 object to an OLE 2 structured storage object. You can use this function to update OLE 1 objects to
/// OLE 2 objects when a new version of the object application supports OLE 2. This function differs from the
/// OleConvertOLESTREAMToIStorageEx function in that the application can pass in an optional value to disable linked object during
/// conversion or a callback function that queries the application if linked object should be converted or not.
/// </para>
/// <para>
/// This function has no associated import library or header file; you must call it using the <c>LoadLibrary</c> and
/// <c>GetProcAddress</c> functions. The API is exported from Ole32.dll.
/// </para>
/// </remarks>
// https://learn.microsoft.com/en-us/windows/win32/stg/oleconvertolestreamtoistorageex2 HRESULT OleConvertOLESTREAMToIStorageEx2( [in]
// LPOLESTREAM polestm, [out] LPSTORAGE pstg, [out] CLIPFORMAT *pcfFormat, [out] LONG *plwWidth, [out] LONG *plHeight, [out] DWORD
// *pdwSize, [out] LPSTGMEDIUM pmedium, [in] DWORD opt, [in] PVOID pvCallbackContext, [in] OLESTREAMQUERYCONVERTOLELINKCALLBACK
// pQueryConvertOLELinkCallback );
[PInvokeData("ole2.h")]
[DllImport(Lib.Ole32, SetLastError = false, ExactSpelling = true)]
public static extern HRESULT OleConvertOLESTREAMToIStorageEx2([In] in OLESTREAM polestm, [Out] IStorage pstg,
out CLIPFORMAT pcfFormat, out int plwWidth, out int plHeight, out uint pdwSize, out STGMEDIUM pmedium, [Optional] uint opt,
[In, Optional] IntPtr pvCallbackContext, [In, Optional] OLESTREAMQUERYCONVERTOLELINKCALLBACK? pQueryConvertOLELinkCallback);
/// <summary>
/// Creates an embedded object identified by a CLSID. You use it typically to implement the menu item that allows the end user to
/// insert a new object.

View File

@ -3,7 +3,7 @@ PInvoke API (methods, structures and constants) imported from Windows Ole32.dll,
- Includes methods from ole32.dll, oleaut32.dll, propsys.dll
- Current NuGet release: [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.Ole?logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.Ole?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Ole)
### Methods - 99% API coverage (834 of 836 functions)
### Methods - 100% API coverage (836 of 836 functions)
Native Method | Native DLL | Header | Managed Method
--- | --- | --- | ---
[BindMoniker](https://www.google.com/search?num=5&q=BindMoniker+site%3Alearn.microsoft.com) | ole32.dll | objbase.h | [Vanara.PInvoke.Ole32.BindMoniker](https://github.com/dahall/Vanara/search?l=C%23&q=BindMoniker)
@ -213,9 +213,9 @@ Native Method | Native DLL | Header | Managed Method
[OleConvertIStorageToOLESTREAM](https://www.google.com/search?num=5&q=OleConvertIStorageToOLESTREAM+site%3Alearn.microsoft.com) | ole32.dll | ole2.h | [Vanara.PInvoke.Ole32.OleConvertIStorageToOLESTREAM](https://github.com/dahall/Vanara/search?l=C%23&q=OleConvertIStorageToOLESTREAM)
[OleConvertIStorageToOLESTREAMEx](https://www.google.com/search?num=5&q=OleConvertIStorageToOLESTREAMEx+site%3Alearn.microsoft.com) | ole32.dll | ole2.h | [Vanara.PInvoke.Ole32.OleConvertIStorageToOLESTREAMEx](https://github.com/dahall/Vanara/search?l=C%23&q=OleConvertIStorageToOLESTREAMEx)
[OleConvertOLESTREAMToIStorage](https://www.google.com/search?num=5&q=OleConvertOLESTREAMToIStorage+site%3Alearn.microsoft.com) | ole32.dll | ole2.h | [Vanara.PInvoke.Ole32.OleConvertOLESTREAMToIStorage](https://github.com/dahall/Vanara/search?l=C%23&q=OleConvertOLESTREAMToIStorage)
[OleConvertOLESTREAMToIStorage2](https://www.google.com/search?num=5&q=OleConvertOLESTREAMToIStorage2+site%3Alearn.microsoft.com) | ole32.dll | |
[OleConvertOLESTREAMToIStorage2](https://www.google.com/search?num=5&q=OleConvertOLESTREAMToIStorage2+site%3Alearn.microsoft.com) | ole32.dll | ole2.h | [Vanara.PInvoke.Ole32.OleConvertOLESTREAMToIStorage2](https://github.com/dahall/Vanara/search?l=C%23&q=OleConvertOLESTREAMToIStorage2)
[OleConvertOLESTREAMToIStorageEx](https://www.google.com/search?num=5&q=OleConvertOLESTREAMToIStorageEx+site%3Alearn.microsoft.com) | ole32.dll | ole2.h | [Vanara.PInvoke.Ole32.OleConvertOLESTREAMToIStorageEx](https://github.com/dahall/Vanara/search?l=C%23&q=OleConvertOLESTREAMToIStorageEx)
[OleConvertOLESTREAMToIStorageEx2](https://www.google.com/search?num=5&q=OleConvertOLESTREAMToIStorageEx2+site%3Alearn.microsoft.com) | ole32.dll | |
[OleConvertOLESTREAMToIStorageEx2](https://www.google.com/search?num=5&q=OleConvertOLESTREAMToIStorageEx2+site%3Alearn.microsoft.com) | ole32.dll | ole2.h | [Vanara.PInvoke.Ole32.OleConvertOLESTREAMToIStorageEx2](https://github.com/dahall/Vanara/search?l=C%23&q=OleConvertOLESTREAMToIStorageEx2)
[OleCreate](https://www.google.com/search?num=5&q=OleCreate+site%3Alearn.microsoft.com) | ole32.dll | ole2.h | [Vanara.PInvoke.Ole32.OleCreate](https://github.com/dahall/Vanara/search?l=C%23&q=OleCreate)
[OleCreateDefaultHandler](https://www.google.com/search?num=5&q=OleCreateDefaultHandler+site%3Alearn.microsoft.com) | ole32.dll | ole2.h | [Vanara.PInvoke.Ole32.OleCreateDefaultHandler](https://github.com/dahall/Vanara/search?l=C%23&q=OleCreateDefaultHandler)
[OleCreateEmbeddingHelper](https://www.google.com/search?num=5&q=OleCreateEmbeddingHelper+site%3Alearn.microsoft.com) | ole32.dll | ole2.h | [Vanara.PInvoke.Ole32.OleCreateEmbeddingHelper](https://github.com/dahall/Vanara/search?l=C%23&q=OleCreateEmbeddingHelper)

View File

@ -895,7 +895,7 @@ public static partial class SearchApi
// origPos, REFIID riid, void **ppunk );
[PInvokeData("filter.h")]
[PreserveSig]
HRESULT BindRegion([In] FILTERREGION origPos, [In] in Guid riid, [MarshalAs(UnmanagedType.IUnknown, IidParameterIndex = 1)] out object ppunk);
HRESULT BindRegion([In] FILTERREGION origPos, [In] in Guid riid, [MarshalAs(UnmanagedType.IUnknown, IidParameterIndex = 1)] out object? ppunk);
}
/// <summary>
@ -944,7 +944,7 @@ public static partial class SearchApi
[PInvokeData("filtereg.h", MSDNShortId = "920c976e-4dde-4e53-85b7-7547291736a0")]
[PreserveSig]
HRESULT LoadIFilter([In, Optional, MarshalAs(UnmanagedType.LPWStr)] string? pwcsPath, in FILTERED_DATA_SOURCES pFilteredSources, [In, MarshalAs(UnmanagedType.IUnknown)] object? pUnkOuter,
[In, MarshalAs(UnmanagedType.Bool)] bool fUseDefault, out Guid pFilterClsid, [Optional] IntPtr SearchDecSize, [Optional] IntPtr pwcsSearchDesc, out IFilter ppIFilt);
[In, MarshalAs(UnmanagedType.Bool)] bool fUseDefault, out Guid pFilterClsid, [Optional] IntPtr SearchDecSize, [Optional] IntPtr pwcsSearchDesc, out IFilter? ppIFilt);
/// <summary>
/// <para>Not implemented.</para>
@ -965,7 +965,7 @@ public static partial class SearchApi
[PInvokeData("filtereg.h", MSDNShortId = "b4eff132-9022-4091-a2a3-1d8e11a35b39")]
[Obsolete, PreserveSig]
HRESULT LoadIFilterFromStorage([In] IStorage pStg, [In, MarshalAs(UnmanagedType.IUnknown)] object? pUnkOuter, [In, MarshalAs(UnmanagedType.LPWStr)] string pwcsOverride,
[In, MarshalAs(UnmanagedType.Bool)] bool fUseDefault, out Guid pFilterClsid, [Optional] IntPtr SearchDecSize, [Optional] IntPtr pwcsSearchDesc, out IFilter ppIFilt);
[In, MarshalAs(UnmanagedType.Bool)] bool fUseDefault, out Guid pFilterClsid, [Optional] IntPtr SearchDecSize, [Optional] IntPtr pwcsSearchDesc, out IFilter? ppIFilt);
/// <summary>
/// <para>Not implemented.</para>
@ -986,7 +986,7 @@ public static partial class SearchApi
[PInvokeData("filtereg.h", MSDNShortId = "6a577306-d5ff-43c1-ab9f-3a7437661d2a")]
[Obsolete, PreserveSig]
HRESULT LoadIFilterFromStream([In] IStream pStm, in FILTERED_DATA_SOURCES pFilteredSources, [In, MarshalAs(UnmanagedType.IUnknown)] object? pUnkOuter,
[In, MarshalAs(UnmanagedType.Bool)] bool fUseDefault, out Guid pFilterClsid, [Optional] IntPtr SearchDecSize, [Optional] IntPtr pwcsSearchDesc, out IFilter ppIFilt);
[In, MarshalAs(UnmanagedType.Bool)] bool fUseDefault, out Guid pFilterClsid, [Optional] IntPtr SearchDecSize, [Optional] IntPtr pwcsSearchDesc, out IFilter? ppIFilt);
}
/// <summary>

View File

@ -6015,6 +6015,20 @@ public static partial class Secur32
out string ppszCredmanTargetName, out string ppszCredmanUserName,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 6)] out byte[] ppCredentialBlob, out uint pCredentialBlobSize);
/// <summary>
/// The <c>SspiSetChannelBindingFlags</c> function is exposed in both kernel and user mode drivers of SspiCli. This helps the server side
/// to fetch the channel bindings from query attributes and convert it to the <c>ChannelBindingsEX</c> buffer format and set the Audit
/// flags before passing it to the <c>SSPCommon</c> for validation during the ASC Call. Thus, EPA Audit can be enabled/disabled.
/// </summary>
/// <param name="pBindings">The channel bindings to be set.</param>
/// <param name="flags">The flags to be set, indicating your desired configuration.</param>
/// <returns>Returns <c>SEC_E_OK</c> if the function succeeds; otherwise, returns a nonzero error code.</returns>
// https://learn.microsoft.com/en-us/windows/win32/secauthn/sspi-sspisetchannelbindingflags
// SECURITY_STATUS SEC_ENTRY SspiSetChannelBindingFlags( Inout_ SecPkgContext_Bindings *pBindings, unsigned long flags );
[PInvokeData("Sspi.h")]
[DllImport("sspicli.dll", SetLastError = false, ExactSpelling = true)]
public static extern HRESULT SspiSetChannelBindingFlags([In, Out] ref SecPkgContext_Bindings pBindings, uint flags);
/// <summary>
/// <para>Deserializes the specified array of byte values into an identity structure.</para>
/// </summary>

View File

@ -3,7 +3,7 @@ PInvoke API (methods, structures and constants) imported from Windows AdvApi32.d
- Includes methods from advapi32.dll, secur32.dll, authz.dll, sspicli.dll, schannel.dll, tdh.dll
- Current NuGet release: [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.Security?logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.Security?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Security)
### Methods - 99% API coverage (585 of 586 functions)
### Methods - 100% API coverage (586 of 586 functions)
Native Method | Native DLL | Header | Managed Method
--- | --- | --- | ---
[AbortSystemShutdown](https://www.google.com/search?num=5&q=AbortSystemShutdownA+site%3Alearn.microsoft.com) | advapi32.dll | winreg.h | [Vanara.PInvoke.AdvApi32.AbortSystemShutdown](https://github.com/dahall/Vanara/search?l=C%23&q=AbortSystemShutdown)
@ -542,7 +542,7 @@ Native Method | Native DLL | Header | Managed Method
[SspiMarshalAuthIdentity](https://www.google.com/search?num=5&q=SspiMarshalAuthIdentity+site%3Alearn.microsoft.com) | secur32.dll | sspi.h | [Vanara.PInvoke.Secur32.SspiMarshalAuthIdentity](https://github.com/dahall/Vanara/search?l=C%23&q=SspiMarshalAuthIdentity)
[SspiPrepareForCredRead](https://www.google.com/search?num=5&q=SspiPrepareForCredRead+site%3Alearn.microsoft.com) | secur32.dll | sspi.h | [Vanara.PInvoke.Secur32.SspiPrepareForCredRead](https://github.com/dahall/Vanara/search?l=C%23&q=SspiPrepareForCredRead)
[SspiPrepareForCredWrite](https://www.google.com/search?num=5&q=SspiPrepareForCredWrite+site%3Alearn.microsoft.com) | secur32.dll | sspi.h | [Vanara.PInvoke.Secur32.SspiPrepareForCredWrite](https://github.com/dahall/Vanara/search?l=C%23&q=SspiPrepareForCredWrite)
[SspiSetChannelBindingFlags](https://www.google.com/search?num=5&q=SspiSetChannelBindingFlags+site%3Alearn.microsoft.com) | sspicli.dll | |
[SspiSetChannelBindingFlags](https://www.google.com/search?num=5&q=SspiSetChannelBindingFlags+site%3Alearn.microsoft.com) | sspicli.dll | Sspi.h | [Vanara.PInvoke.Secur32.SspiSetChannelBindingFlags](https://github.com/dahall/Vanara/search?l=C%23&q=SspiSetChannelBindingFlags)
[SspiUnmarshalAuthIdentity](https://www.google.com/search?num=5&q=SspiUnmarshalAuthIdentity+site%3Alearn.microsoft.com) | secur32.dll | sspi.h | [Vanara.PInvoke.Secur32.SspiUnmarshalAuthIdentity](https://github.com/dahall/Vanara/search?l=C%23&q=SspiUnmarshalAuthIdentity)
[SspiValidateAuthIdentity](https://www.google.com/search?num=5&q=SspiValidateAuthIdentity+site%3Alearn.microsoft.com) | secur32.dll | sspi.h | [Vanara.PInvoke.Secur32.SspiValidateAuthIdentity](https://github.com/dahall/Vanara/search?l=C%23&q=SspiValidateAuthIdentity)
[SspiZeroAuthIdentity](https://www.google.com/search?num=5&q=SspiZeroAuthIdentity+site%3Alearn.microsoft.com) | secur32.dll | sspi.h | [Vanara.PInvoke.Secur32.SspiZeroAuthIdentity](https://github.com/dahall/Vanara/search?l=C%23&q=SspiZeroAuthIdentity)

View File

@ -244,7 +244,7 @@ public static partial class Shell32
/// </param>
/// <param name="dwFlags">One of the EXPLORER_BROWSER_FILL_FLAGS values.</param>
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void FillFromObject([In, MarshalAs(UnmanagedType.IUnknown)] object punk, [In] EXPLORER_BROWSER_FILL_FLAGS dwFlags);
void FillFromObject([In, MarshalAs(UnmanagedType.IUnknown)] object? punk, [In] EXPLORER_BROWSER_FILL_FLAGS dwFlags);
/// <summary>Removes all items from the results folder.</summary>
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]

View File

@ -167,7 +167,7 @@ public static partial class Shell32
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-iexplorercommand-gettitle HRESULT GetTitle(
// IShellItemArray *psiItemArray, LPWSTR *ppszName );
[PreserveSig]
HRESULT GetTitle(IShellItemArray psiItemArray, [MarshalAs(UnmanagedType.LPWStr)] out string ppszName);
HRESULT GetTitle(IShellItemArray psiItemArray, [MarshalAs(UnmanagedType.LPWStr)] out string? ppszName);
/// <summary>Gets an icon resource string of the icon associated with the specified Windows Explorer command item.</summary>
/// <param name="psiItemArray">
@ -188,7 +188,7 @@ public static partial class Shell32
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-iexplorercommand-geticon HRESULT GetIcon(
// IShellItemArray *psiItemArray, LPWSTR *ppszIcon );
[PreserveSig]
HRESULT GetIcon(IShellItemArray psiItemArray, [MarshalAs(UnmanagedType.LPWStr)] out string ppszIcon);
HRESULT GetIcon(IShellItemArray psiItemArray, [MarshalAs(UnmanagedType.LPWStr)] out string? ppszIcon);
/// <summary>Gets the tooltip string associated with a specified Windows Explorer command item.</summary>
/// <param name="psiItemArray">
@ -206,7 +206,7 @@ public static partial class Shell32
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-iexplorercommand-gettooltip HRESULT
// GetToolTip( IShellItemArray *psiItemArray, LPWSTR *ppszInfotip );
[PreserveSig]
HRESULT GetToolTip(IShellItemArray psiItemArray, [MarshalAs(UnmanagedType.LPWStr)] out string ppszInfotip);
HRESULT GetToolTip(IShellItemArray psiItemArray, [MarshalAs(UnmanagedType.LPWStr)] out string? ppszInfotip);
/// <summary>Gets the GUID of an Windows Explorer command.</summary>
/// <param name="pguidCommandName">
@ -340,7 +340,7 @@ public static partial class Shell32
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-iexplorercommand-enumsubcommands HRESULT
// EnumSubCommands( IEnumExplorerCommand **ppEnum );
[PreserveSig]
HRESULT EnumSubCommands(out IEnumExplorerCommand ppEnum);
HRESULT EnumSubCommands(out IEnumExplorerCommand? ppEnum);
}
/// <summary>Exposes methods to create Explorer commands and command enumerators.</summary>
@ -378,7 +378,7 @@ public static partial class Shell32
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-iexplorercommandprovider-getcommands
// HRESULT GetCommands( IUnknown *punkSite, REFIID riid, void **ppv );
[PreserveSig]
HRESULT GetCommands([MarshalAs(UnmanagedType.IUnknown)] object punkSite, in Guid riid, [MarshalAs(UnmanagedType.IUnknown)] out object ppv);
HRESULT GetCommands([MarshalAs(UnmanagedType.IUnknown)] object punkSite, in Guid riid, [MarshalAs(UnmanagedType.IUnknown)] out object? ppv);
// IExplorerCommand
/// <summary>Gets a specified Explorer command instance.</summary>
@ -401,7 +401,7 @@ public static partial class Shell32
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-iexplorercommandprovider-getcommand HRESULT
// GetCommand( REFGUID rguidCommandId, REFIID riid, void **ppv );
[PreserveSig]
HRESULT GetCommand(in Guid rguidCommandId, in Guid riid, [MarshalAs(UnmanagedType.IUnknown)] out object ppv);
HRESULT GetCommand(in Guid rguidCommandId, in Guid riid, [MarshalAs(UnmanagedType.IUnknown)] out object? ppv);
}
/// <summary>Exposes a single method that allows retrieval of the command state.</summary>

View File

@ -322,7 +322,7 @@ public static partial class Shell32
// https://docs.microsoft.com/en-us/windows/desktop/api/shobjidl_core/nf-shobjidl_core-inamespacewalkcb-initializeprogressdialog
// HRESULT InitializeProgressDialog( LPWSTR *ppszTitle, LPWSTR *ppszCancel );
[PreserveSig]
HRESULT InitializeProgressDialog([Out, MarshalAs(UnmanagedType.LPWStr)] out string ppszTitle, [Out, MarshalAs(UnmanagedType.LPWStr)] out string ppszCancel);
HRESULT InitializeProgressDialog([Out, MarshalAs(UnmanagedType.LPWStr)] out string? ppszTitle, [Out, MarshalAs(UnmanagedType.LPWStr)] out string? ppszCancel);
}
/// <summary>
@ -421,7 +421,7 @@ public static partial class Shell32
// https://docs.microsoft.com/en-us/windows/desktop/api/shobjidl_core/nf-shobjidl_core-inamespacewalkcb-initializeprogressdialog
// HRESULT InitializeProgressDialog( LPWSTR *ppszTitle, LPWSTR *ppszCancel );
[PreserveSig]
new HRESULT InitializeProgressDialog([Out, MarshalAs(UnmanagedType.LPWStr)] out string ppszTitle, [Out, MarshalAs(UnmanagedType.LPWStr)] out string ppszCancel);
new HRESULT InitializeProgressDialog([Out, MarshalAs(UnmanagedType.LPWStr)] out string? ppszTitle, [Out, MarshalAs(UnmanagedType.LPWStr)] out string? ppszCancel);
/// <summary>Removes data collected during a namespace walk.</summary>
/// <param name="hr">

View File

@ -472,7 +472,7 @@ public static partial class Shell32
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-icategoryprovider-createcategory HRESULT
// CreateCategory( const GUID *pguid, REFIID riid, void **ppv );
[PreserveSig]
HRESULT CreateCategory(in Guid pguid, in Guid riid, [MarshalAs(UnmanagedType.IUnknown, IidParameterIndex = 1)] out object ppv);
HRESULT CreateCategory(in Guid pguid, in Guid riid, [MarshalAs(UnmanagedType.IUnknown, IidParameterIndex = 1)] out object? ppv);
}
/// <summary>Creates a category object.</summary>
@ -1093,7 +1093,7 @@ public static partial class Shell32
// GetUIObjectOf( HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *rgfReserved, void **ppv );
[PreserveSig]
HRESULT GetUIObjectOf(HWND hwndOwner, uint cidl, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] IntPtr[] apidl, in Guid riid,
[In, Out, Optional] IntPtr rgfReserved, [MarshalAs(UnmanagedType.Interface, IidParameterIndex = 3)] out object ppv);
[In, Out, Optional] IntPtr rgfReserved, [MarshalAs(UnmanagedType.Interface, IidParameterIndex = 3)] out object? ppv);
/// <summary>Retrieves the display name for the specified file object or subfolder.</summary>
/// <param name="pidl">
@ -1604,7 +1604,7 @@ public static partial class Shell32
/// </remarks>
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishellfolder-createviewobject
[PreserveSig]
new HRESULT CreateViewObject(HWND hwndOwner, in Guid riid, [MarshalAs(UnmanagedType.Interface, IidParameterIndex = 1)] out object ppv);
new HRESULT CreateViewObject(HWND hwndOwner, in Guid riid, [MarshalAs(UnmanagedType.Interface, IidParameterIndex = 1)] out object? ppv);
/// <summary>Gets the attributes of one or more file or folder objects contained in the object represented by IShellFolder.</summary>
/// <param name="cidl">
@ -1744,7 +1744,7 @@ public static partial class Shell32
// GetUIObjectOf( HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *rgfReserved, void **ppv );
[PreserveSig]
new HRESULT GetUIObjectOf(HWND hwndOwner, uint cidl, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] IntPtr[] apidl, in Guid riid,
[In, Out, Optional] IntPtr rgfReserved, [MarshalAs(UnmanagedType.Interface, IidParameterIndex = 3)] out object ppv);
[In, Out, Optional] IntPtr rgfReserved, [MarshalAs(UnmanagedType.Interface, IidParameterIndex = 3)] out object? ppv);
/// <summary>Retrieves the display name for the specified file object or subfolder.</summary>
/// <param name="pidl">
@ -1889,7 +1889,7 @@ public static partial class Shell32
/// </returns>
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishellfolder2-enumsearches
[PreserveSig]
HRESULT EnumSearches(out IEnumExtraSearch ppenum);
HRESULT EnumSearches(out IEnumExtraSearch? ppenum);
/// <summary>Gets the default sorting and display columns.</summary>
/// <param name="dwRes">
@ -2012,7 +2012,7 @@ public static partial class Shell32
/// </remarks>
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishellfolder2-getdetailsex
[PreserveSig]
HRESULT GetDetailsEx([In] PIDL pidl, in PROPERTYKEY pscid, [MarshalAs(UnmanagedType.Struct)] out object pv);
HRESULT GetDetailsEx([In] PIDL pidl, in PROPERTYKEY pscid, [MarshalAs(UnmanagedType.Struct)] out object? pv);
/// <summary>Gets detailed information, identified by a column index, on an item in a Shell folder.</summary>
/// <param name="pidl">

View File

@ -1221,7 +1221,7 @@ public static partial class Shell32
// https://docs.microsoft.com/en-us/windows/desktop/api/shobjidl_core/nf-shobjidl_core-ifileisinuse-getappname HRESULT
// GetAppName( LPWSTR *ppszName );
[PreserveSig]
HRESULT GetAppName([MarshalAs(UnmanagedType.LPWStr)] out string ppszName);
HRESULT GetAppName([MarshalAs(UnmanagedType.LPWStr)] out string? ppszName);
/// <summary>Gets a value that indicates how the file in use is being used.</summary>
/// <param name="pfut">

View File

@ -1,6 +1,7 @@
#pragma warning disable IL2050 // Correctness of COM interop cannot be guaranteed after trimming. Interfaces and interface members might be removed.
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
using System.Security;
using static Vanara.Extensions.BitHelper;
@ -5268,7 +5269,7 @@ public static partial class Shell32
// PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psfParent, PCUITEMID_CHILD pidl, IShellItem **ppsi );
[DllImport(Lib.Shell32, SetLastError = false, ExactSpelling = true)]
[PInvokeData("shlobj_core.h", MSDNShortId = "d4371cdf-a8f4-4a39-ba66-97fd40ed46ae")]
public static extern HRESULT SHCreateShellItem(PIDL pidlParent, IShellFolder? psfParent, PIDL pidl, out IShellItem ppsi);
public static extern HRESULT SHCreateShellItem([Optional] PIDL pidlParent, [Optional] IShellFolder? psfParent, PIDL pidl, out IShellItem? ppsi);
/// <summary>
/// <para>

View File

@ -12,7 +12,7 @@
<PackageReleaseNotes>Currently implements:
Functions
DoMsCtfMonitor EnumEnabledLayoutOrTip EnumLayoutOrTipForSetup GetHandwritingStrokeIdForPointer InitLocalMsCtfMonitor InstallLayoutOrTip InstallLayoutOrTipUserReg MsimtfIsWindowFiltered QueryLayoutOrTipString QueryLayoutOrTipStringUserReg RegisterHandwritingInputRoutingCallback SaveDefaultUserInputSettings SaveSystemAcctInputSettings SetDefaultLayoutOrTip SetDefaultLayoutOrTipUserReg SetInputScope SetInputScopes SetInputScopes2 SetInputScopeXML TF_CreateCategoryMgr TF_CreateDisplayAttributeMgr TF_CreateInputProcessorProfiles TF_CreateLangBarItemMgr TF_CreateLangBarMgr TF_CreateThreadMgr TF_GetThreadMgr TF_InvalidAssemblyListCacheIfExist UninitLocalMsCtfMonitor
DoMsCtfMonitor EnumEnabledLayoutOrTip EnumLayoutOrTipForSetup InitLocalMsCtfMonitor InstallLayoutOrTip InstallLayoutOrTipUserReg MsimtfIsWindowFiltered QueryLayoutOrTipString QueryLayoutOrTipStringUserReg SaveDefaultUserInputSettings SaveSystemAcctInputSettings SetDefaultLayoutOrTip SetDefaultLayoutOrTipUserReg SetInputScope SetInputScopes SetInputScopes2 SetInputScopeXML TF_CreateCategoryMgr TF_CreateDisplayAttributeMgr TF_CreateInputProcessorProfiles TF_CreateLangBarItemMgr TF_CreateLangBarMgr TF_CreateThreadMgr TF_GetThreadMgr TF_InvalidAssemblyListCacheIfExist UninitLocalMsCtfMonitor
Structures
LAYOUTORTIP LAYOUTORTIPPROFILE TF_DA_COLOR TF_DISPLAYATTRIBUTE TF_HALTCOND TF_INPUTPROCESSORPROFILE TF_LANGBARITEMINFO TF_LANGUAGEPROFILE TF_LBBALLOONINFO TF_LMLATTELEMENT TF_PERSISTENT_PROPERTY_HEADER_ACP TF_PRESERVEDKEY TF_PROPERTYVAL TF_SELECTION TF_SELECTIONSTYLE TS_ATTRVAL TS_RUNINFO TS_SELECTIONSTYLE TS_SELECTION_ACP TS_SELECTION_ANCHOR TS_STATUS TS_TEXTCHANGE

File diff suppressed because one or more lines are too long

View File

@ -3,20 +3,18 @@ PInvoke API (methods, structures and constants) imported from Windows Text Servi
- Includes methods from msctf.dll, input.dll, msimtf.dll
- Current NuGet release: [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.TextServicesFramework?logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.TextServicesFramework?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.TextServicesFramework)
### Methods - 92% API coverage (26 of 28 functions)
### Methods - 100% API coverage (26 of 26 functions)
Native Method | Native DLL | Header | Managed Method
--- | --- | --- | ---
[DoMsCtfMonitor](https://www.google.com/search?num=5&q=DoMsCtfMonitor+site%3Alearn.microsoft.com) | msctf.dll | msctfmonitorapi.h | [Vanara.PInvoke.MSCTF.DoMsCtfMonitor](https://github.com/dahall/Vanara/search?l=C%23&q=DoMsCtfMonitor)
[EnumEnabledLayoutOrTip](https://www.google.com/search?num=5&q=EnumEnabledLayoutOrTip+site%3Alearn.microsoft.com) | input.dll | | [Vanara.PInvoke.MSCTF.EnumEnabledLayoutOrTip](https://github.com/dahall/Vanara/search?l=C%23&q=EnumEnabledLayoutOrTip)
[EnumLayoutOrTipForSetup](https://www.google.com/search?num=5&q=EnumLayoutOrTipForSetup+site%3Alearn.microsoft.com) | input.dll | | [Vanara.PInvoke.MSCTF.EnumLayoutOrTipForSetup](https://github.com/dahall/Vanara/search?l=C%23&q=EnumLayoutOrTipForSetup)
[GetHandwritingStrokeIdForPointer](https://www.google.com/search?num=5&q=GetHandwritingStrokeIdForPointer+site%3Alearn.microsoft.com) | msctf.dll | |
[InitLocalMsCtfMonitor](https://www.google.com/search?num=5&q=InitLocalMsCtfMonitor+site%3Alearn.microsoft.com) | msctf.dll | msctfmonitorapi.h | [Vanara.PInvoke.MSCTF.InitLocalMsCtfMonitor](https://github.com/dahall/Vanara/search?l=C%23&q=InitLocalMsCtfMonitor)
[InstallLayoutOrTip](https://www.google.com/search?num=5&q=InstallLayoutOrTip+site%3Alearn.microsoft.com) | input.dll | | [Vanara.PInvoke.MSCTF.InstallLayoutOrTip](https://github.com/dahall/Vanara/search?l=C%23&q=InstallLayoutOrTip)
[InstallLayoutOrTipUserReg](https://www.google.com/search?num=5&q=InstallLayoutOrTipUserReg+site%3Alearn.microsoft.com) | input.dll | | [Vanara.PInvoke.MSCTF.InstallLayoutOrTipUserReg](https://github.com/dahall/Vanara/search?l=C%23&q=InstallLayoutOrTipUserReg)
[MsimtfIsWindowFiltered](https://www.google.com/search?num=5&q=MsimtfIsWindowFiltered+site%3Alearn.microsoft.com) | msimtf.dll | | [Vanara.PInvoke.MSCTF.MsimtfIsWindowFiltered](https://github.com/dahall/Vanara/search?l=C%23&q=MsimtfIsWindowFiltered)
[QueryLayoutOrTipString](https://www.google.com/search?num=5&q=QueryLayoutOrTipString+site%3Alearn.microsoft.com) | input.dll | | [Vanara.PInvoke.MSCTF.QueryLayoutOrTipString](https://github.com/dahall/Vanara/search?l=C%23&q=QueryLayoutOrTipString)
[QueryLayoutOrTipStringUserReg](https://www.google.com/search?num=5&q=QueryLayoutOrTipStringUserReg+site%3Alearn.microsoft.com) | input.dll | | [Vanara.PInvoke.MSCTF.QueryLayoutOrTipStringUserReg](https://github.com/dahall/Vanara/search?l=C%23&q=QueryLayoutOrTipStringUserReg)
[RegisterHandwritingInputRoutingCallback](https://www.google.com/search?num=5&q=RegisterHandwritingInputRoutingCallback+site%3Alearn.microsoft.com) | msctf.dll | |
[SaveDefaultUserInputSettings](https://www.google.com/search?num=5&q=SaveDefaultUserInputSettings+site%3Alearn.microsoft.com) | input.dll | | [Vanara.PInvoke.MSCTF.SaveDefaultUserInputSettings](https://github.com/dahall/Vanara/search?l=C%23&q=SaveDefaultUserInputSettings)
[SaveSystemAcctInputSettings](https://www.google.com/search?num=5&q=SaveSystemAcctInputSettings+site%3Alearn.microsoft.com) | input.dll | | [Vanara.PInvoke.MSCTF.SaveSystemAcctInputSettings](https://github.com/dahall/Vanara/search?l=C%23&q=SaveSystemAcctInputSettings)
[SetDefaultLayoutOrTip](https://www.google.com/search?num=5&q=SetDefaultLayoutOrTip+site%3Alearn.microsoft.com) | input.dll | | [Vanara.PInvoke.MSCTF.SetDefaultLayoutOrTip](https://github.com/dahall/Vanara/search?l=C%23&q=SetDefaultLayoutOrTip)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@ PInvoke API (methods, structures and constants) imported from Windows User32.dll
- Includes methods from user32.dll
- Current NuGet release: [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.User32?logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.User32?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.User32)
### Methods - 99% API coverage (568 of 571 functions)
### Methods - 100% API coverage (568 of 568 functions)
Native Method | Header | Managed Method
--- | --- | ---
[ActivateKeyboardLayout](https://www.google.com/search?num=5&q=ActivateKeyboardLayout+site%3Alearn.microsoft.com) | winuser.h | [Vanara.PInvoke.User32.ActivateKeyboardLayout](https://github.com/dahall/Vanara/search?l=C%23&q=ActivateKeyboardLayout)
@ -518,9 +518,6 @@ Native Method | Header | Managed Method
[SetWindowsHookExW](https://www.google.com/search?num=5&q=SetWindowsHookExW+site%3Alearn.microsoft.com) | winuser.h | [Vanara.PInvoke.User32.SetWindowsHookEx](https://github.com/dahall/Vanara/search?l=C%23&q=SetWindowsHookEx)
[SetWindowText](https://www.google.com/search?num=5&q=SetWindowTextA+site%3Alearn.microsoft.com) | winuser.h | [Vanara.PInvoke.User32.SetWindowText](https://github.com/dahall/Vanara/search?l=C%23&q=SetWindowText)
[SetWinEventHook](https://www.google.com/search?num=5&q=SetWinEventHook+site%3Alearn.microsoft.com) | winuser.h | [Vanara.PInvoke.User32.SetWinEventHook](https://github.com/dahall/Vanara/search?l=C%23&q=SetWinEventHook)
[ShellHandwritingDelegateInput](https://www.google.com/search?num=5&q=ShellHandwritingDelegateInput+site%3Alearn.microsoft.com) | |
[ShellHandwritingHandleDelegatedInput](https://www.google.com/search?num=5&q=ShellHandwritingHandleDelegatedInput+site%3Alearn.microsoft.com) | |
[ShellHandwritingUndelegateInput](https://www.google.com/search?num=5&q=ShellHandwritingUndelegateInput+site%3Alearn.microsoft.com) | |
[ShowCaret](https://www.google.com/search?num=5&q=ShowCaret+site%3Alearn.microsoft.com) | winuser.h | [Vanara.PInvoke.User32.ShowCaret](https://github.com/dahall/Vanara/search?l=C%23&q=ShowCaret)
[ShowCursor](https://www.google.com/search?num=5&q=ShowCursor+site%3Alearn.microsoft.com) | winuser.h | [Vanara.PInvoke.User32.ShowCursor](https://github.com/dahall/Vanara/search?l=C%23&q=ShowCursor)
[ShowOwnedPopups](https://www.google.com/search?num=5&q=ShowOwnedPopups+site%3Alearn.microsoft.com) | winuser.h | [Vanara.PInvoke.User32.ShowOwnedPopups](https://github.com/dahall/Vanara/search?l=C%23&q=ShowOwnedPopups)

View File

@ -13,7 +13,7 @@
<PackageReleaseNotes>Currently implements:
Functions
IsVolumeSnapshotted IsVolumeSnapshottedInternal ShouldBlockRevert ShouldBlockRevertInternal
IsVolumeSnapshotted ShouldBlockRevert
Structures
VDS_INTERCONNECT VDS_LUN_INFORMATION VDS_STORAGE_DEVICE_ID_DESCRIPTOR VDS_STORAGE_IDENTIFIER VssDifferencedFile VssDirectedTarget VssPartialFile VssRestoreSubcomponent VssWriterStatus VSS_COMPONENTINFO VSS_DIFF_AREA_PROP VSS_DIFF_VOLUME_PROP VSS_MGMT_OBJECT_PROP VSS_MGMT_OBJECT_UNION VSS_OBJECT_PROP VSS_OBJECT_UNION VSS_PROVIDER_PROP VSS_SNAPSHOT_PROP VSS_VOLUME_PROP VSS_VOLUME_PROTECTION_INFO

View File

@ -3,13 +3,11 @@ PInvoke API (methods, structures and constants) imported from Windows Volume Sha
- Includes methods from vssapi.dll
- Current NuGet release: [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.VssApiMgd?logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.VssApiMgd?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.VssApiMgd)
### Methods - 50% API coverage (2 of 4 functions)
### Methods - 100% API coverage (2 of 2 functions)
Native Method | Header | Managed Method
--- | --- | ---
[IsVolumeSnapshotted](https://www.google.com/search?num=5&q=IsVolumeSnapshotted+site%3Alearn.microsoft.com) | |
[IsVolumeSnapshottedInternal](https://www.google.com/search?num=5&q=IsVolumeSnapshottedInternal+site%3Alearn.microsoft.com) | vsbackup.h | [Vanara.PInvoke.VssApi.VssInfo.IsVolumeSnapshotted](https://github.com/dahall/Vanara/search?l=C%23&q=IsVolumeSnapshotted)
[ShouldBlockRevert](https://www.google.com/search?num=5&q=ShouldBlockRevert+site%3Alearn.microsoft.com) | |
[ShouldBlockRevertInternal](https://www.google.com/search?num=5&q=ShouldBlockRevertInternal+site%3Alearn.microsoft.com) | vsbackup.h | [Vanara.PInvoke.VssApi.VssInfo.ShouldBlockRevert](https://github.com/dahall/Vanara/search?l=C%23&q=ShouldBlockRevert)
[IsVolumeSnapshotted](https://www.google.com/search?num=5&q=IsVolumeSnapshottedInternal+site%3Alearn.microsoft.com) | vsbackup.h | [Vanara.PInvoke.VssApi.VssInfo.IsVolumeSnapshotted](https://github.com/dahall/Vanara/search?l=C%23&q=IsVolumeSnapshotted)
[ShouldBlockRevert](https://www.google.com/search?num=5&q=ShouldBlockRevertInternal+site%3Alearn.microsoft.com) | vsbackup.h | [Vanara.PInvoke.VssApi.VssInfo.ShouldBlockRevert](https://github.com/dahall/Vanara/search?l=C%23&q=ShouldBlockRevert)
### Enumerations
Native Enum | Header | Managed Enum
--- | --- | ---

View File

@ -13,7 +13,7 @@
<PackageReleaseNotes>Currently implements:
Functions
WinBioAcquireFocus WinBioAsyncEnumBiometricUnits WinBioAsyncEnumDatabases WinBioAsyncEnumServiceProviders WinBioAsyncMonitorFrameworkChanges WinBioAsyncOpenFramework WinBioAsyncOpenSession WinBioCancel WinBioCaptureSample WinBioCaptureSampleWithCallback WinBioCloseFramework WinBioCloseSession WinBioConsumeFactorDeletedByService WinBioControlUnit WinBioControlUnitPrivileged WinBioDeleteTemplate WinBioEnrollBegin WinBioEnrollCapture WinBioEnrollCaptureWithCallback WinBioEnrollCommit WinBioEnrollDiscard WinBioEnrollSelect WinBioEnumBiometricUnits WinBioEnumDatabases WinBioEnumEnrollments WinBioEnumServiceProviders WinBioFree WinBioGetCredentialState WinBioGetDomainLogonSetting WinBioGetEnabledSetting WinBioGetEnrolledFactors WinBioGetFactorsDeletedByService WinBioGetLogonSetting WinBioGetProperty WinBioIdentify WinBioIdentifyWithCallback WinBioLocateSensor WinBioLocateSensorWithCallback WinBioLockUnit WinBioLogonIdentifiedUser WinBioMonitorPresence WinBioOpenSession WinBioRegisterEventMonitor WinBioReleaseFocus WinBioRemoveAllCredentials WinBioRemoveAllDomainCredentials WinBioRemoveCredential WinBioSendTelemetry WinBioSetCredential WinBioSetProperty WinBioUnlockUnit WinBioUnregisterEventMonitor WinBioVerify WinBioVerifyWithCallback WinBioWait
WinBioAcquireFocus WinBioAsyncEnumBiometricUnits WinBioAsyncEnumDatabases WinBioAsyncEnumServiceProviders WinBioAsyncMonitorFrameworkChanges WinBioAsyncOpenFramework WinBioAsyncOpenSession WinBioCancel WinBioCaptureSample WinBioCaptureSampleWithCallback WinBioCloseFramework WinBioCloseSession WinBioControlUnit WinBioControlUnitPrivileged WinBioDeleteTemplate WinBioEnrollBegin WinBioEnrollCapture WinBioEnrollCaptureWithCallback WinBioEnrollCommit WinBioEnrollDiscard WinBioEnrollSelect WinBioEnumBiometricUnits WinBioEnumDatabases WinBioEnumEnrollments WinBioEnumServiceProviders WinBioFree WinBioGetCredentialState WinBioGetDomainLogonSetting WinBioGetEnabledSetting WinBioGetEnrolledFactors WinBioGetLogonSetting WinBioGetProperty WinBioIdentify WinBioIdentifyWithCallback WinBioLocateSensor WinBioLocateSensorWithCallback WinBioLockUnit WinBioLogonIdentifiedUser WinBioMonitorPresence WinBioOpenSession WinBioRegisterEventMonitor WinBioReleaseFocus WinBioRemoveAllCredentials WinBioRemoveAllDomainCredentials WinBioRemoveCredential WinBioSetCredential WinBioSetProperty WinBioUnlockUnit WinBioUnregisterEventMonitor WinBioVerify WinBioVerifyWithCallback WinBioWait
Structures
ACCOUNTSID AUTHORIZATION CAPTURESAMPLE CONTROLUNIT DELETETEMPLATE ENROLLBEGIN ENROLLCAPTURE ENROLLCOMMIT ENROLLMENTREQUIREMENTS ENROLLMENTREQUIREMENTS ENROLLMENTREQUIREMENTS ENROLLMENTREQUIREMENTS ENROLLSELECT ENUMBIOMETRICUNITS ENUMDATABASES ENUMENROLLMENTS ENUMSERVICEPROVIDERS ERROR FACIALFEATURES FACIALFEATURES FACIALFEATURES FACIALFEATURES FACIALFEATURES FINGERPRINT FINGERPRINT FINGERPRINT FINGERPRINT GETEVENT GETPROPERTY GETPROTECTIONPOLICY HARDWAREINFO IDENTIFY IDENTIFYANDRELEASETICKET IRIS IRIS IRIS IRIS IRIS MONITORPRESENCE NOTIFYUNITSTATUSCHANGE OPAQUEENGINEDATA OPAQUEENGINEDATA PARAMETERS PARAMETERS POINT3D SETPROPERTY SPECIFIC SPECIFIC SPECIFIC SPECIFIC UNCLAIMED UNCLAIMEDIDENTIFY VALIDITYPERIOD VALUE VERIFY VERIFYANDRELEASETICKET VOICE VOICE VOICE VOICE WINBIO_ANTI_SPOOF_POLICY WINBIO_ASYNC_RESULT WINBIO_BDB_ANSI_381_HEADER WINBIO_BDB_ANSI_381_RECORD WINBIO_BIR WINBIO_BIR_DATA WINBIO_BIR_HEADER WINBIO_BSP_SCHEMA WINBIO_EVENT WINBIO_EXTENDED_ENGINE_INFO WINBIO_EXTENDED_ENROLLMENT_STATUS WINBIO_EXTENDED_SENSOR_INFO WINBIO_EXTENDED_STORAGE_INFO WINBIO_EXTENDED_UNIT_STATUS WINBIO_FRAMEWORK_HANDLE WINBIO_IDENTITY WINBIO_PRESENCE WINBIO_PRESENCE_PROPERTIES WINBIO_PROTECTION_POLICY WINBIO_REGISTERED_FORMAT WINBIO_SESSION_HANDLE WINBIO_STORAGE_SCHEMA WINBIO_UNIT_SCHEMA WINBIO_VERSION

View File

@ -18,4 +18,4 @@ If you're still running into problems, file an [issue](https://github.com/dahall
Functions | Enumerations | Structures
--- | --- | ---
WinBioAcquireFocus WinBioAsyncEnumBiometricUnits WinBioAsyncEnumDatabases WinBioAsyncEnumServiceProviders WinBioAsyncMonitorFrameworkChanges WinBioAsyncOpenFramework WinBioAsyncOpenSession WinBioCancel WinBioCaptureSample WinBioCaptureSampleWithCallback WinBioCloseFramework WinBioCloseSession WinBioConsumeFactorDeletedByService WinBioControlUnit WinBioControlUnitPrivileged WinBioDeleteTemplate WinBioEnrollBegin WinBioEnrollCapture WinBioEnrollCaptureWithCallback WinBioEnrollCommit WinBioEnrollDiscard WinBioEnrollSelect WinBioEnumBiometricUnits WinBioEnumDatabases WinBioEnumEnrollments WinBioEnumServiceProviders WinBioFree WinBioGetCredentialState WinBioGetDomainLogonSetting WinBioGetEnabledSetting WinBioGetEnrolledFactors WinBioGetFactorsDeletedByService WinBioGetLogonSetting WinBioGetProperty WinBioIdentify WinBioIdentifyWithCallback WinBioLocateSensor WinBioLocateSensorWithCallback WinBioLockUnit WinBioLogonIdentifiedUser WinBioMonitorPresence WinBioOpenSession WinBioRegisterEventMonitor WinBioReleaseFocus WinBioRemoveAllCredentials WinBioRemoveAllDomainCredentials WinBioRemoveCredential WinBioSendTelemetry WinBioSetCredential WinBioSetProperty WinBioUnlockUnit WinBioUnregisterEventMonitor WinBioVerify WinBioVerifyWithCallback WinBioWait | WINBIO_ASYNC_NOTIFICATION_METHOD BIO_UNIT WINBIO_ANSI_381_FORMAT WINBIO_ANSI_381_IMG WINBIO_ANSI_381_IMG_ACQ WINBIO_ANSI_381_IMP_TYPE WINBIO_ANSI_381_PIXELS WINBIO_ANSI_381_POS_FINGER WINBIO_ANSI_381_POS_PALM WINBIO_ANSI_385_FACE WINBIO_ANTI_SPOOF_POLICY_ACTION WINBIO_BIOMETRIC_SENSOR_SUBTYPE WINBIO_BIOMETRIC_SUBTYPE WINBIO_BIOMETRIC_TYPE WINBIO_BIR_DATA_FLAGS WINBIO_BIR_FIELD WINBIO_BIR_PURPOSE WINBIO_BIR_QUALITY WINBIO_BIR_VERSION WINBIO_CAPABILITIES WINBIO_COMPONENT WINBIO_CREDENTIAL_FORMAT WINBIO_CREDENTIAL_STATE WINBIO_CREDENTIAL_TYPE WINBIO_DATABASE WINBIO_ENG_CAP WINBIO_EVENT_TYPE WINBIO_FRAMEWORK_CHANGE_TYPE WINBIO_IDENTITY_TYPE WINBIO_INDICATOR_STATUS WINBIO_OPERATION_TYPE WINBIO_ORIENTATION WINBIO_POLICY_SOURCE WINBIO_POOL_TYPE WINBIO_PRESENCE_CHANGE WINBIO_PROPERTY_ID WINBIO_PROPERTY_TYPE WINBIO_REJECT_DETAIL WINBIO_SENSOR_MODE WINBIO_SENSOR_STATUS WINBIO_SESSION_FLAGS WINBIO_SETTING_SOURCE_TYPE | WINBIO_ASYNC_RESULT WINBIO_FRAMEWORK_HANDLE WINBIO_SESSION_HANDLE WINBIO_ANTI_SPOOF_POLICY WINBIO_BDB_ANSI_381_HEADER WINBIO_BDB_ANSI_381_RECORD WINBIO_BIR WINBIO_BIR_DATA WINBIO_BIR_HEADER WINBIO_BSP_SCHEMA WINBIO_EVENT WINBIO_EXTENDED_ENGINE_INFO WINBIO_EXTENDED_ENROLLMENT_STATUS WINBIO_EXTENDED_SENSOR_INFO WINBIO_EXTENDED_STORAGE_INFO WINBIO_EXTENDED_UNIT_STATUS WINBIO_IDENTITY WINBIO_PRESENCE WINBIO_PRESENCE_PROPERTIES WINBIO_PROTECTION_POLICY WINBIO_REGISTERED_FORMAT WINBIO_STORAGE_SCHEMA WINBIO_UNIT_SCHEMA WINBIO_VERSION PARAMETERS VALIDITYPERIOD PARAMETERS SPECIFIC SPECIFIC SPECIFIC SPECIFIC VALUE AUTHORIZATION FACIALFEATURES IRIS VERIFY IDENTIFY ENROLLBEGIN ENROLLCAPTURE ENROLLCOMMIT ENUMENROLLMENTS CAPTURESAMPLE DELETETEMPLATE GETPROPERTY SETPROPERTY GETEVENT CONTROLUNIT ENUMSERVICEPROVIDERS ENUMBIOMETRICUNITS ENUMDATABASES VERIFYANDRELEASETICKET IDENTIFYANDRELEASETICKET ENROLLSELECT MONITORPRESENCE GETPROTECTIONPOLICY NOTIFYUNITSTATUSCHANGE UNCLAIMED UNCLAIMEDIDENTIFY ERROR FACIALFEATURES FINGERPRINT IRIS VOICE FACIALFEATURES FINGERPRINT IRIS VOICE FACIALFEATURES FINGERPRINT IRIS VOICE FACIALFEATURES FINGERPRINT IRIS VOICE ACCOUNTSID OPAQUEENGINEDATA ENROLLMENTREQUIREMENTS ENROLLMENTREQUIREMENTS ENROLLMENTREQUIREMENTS ENROLLMENTREQUIREMENTS OPAQUEENGINEDATA POINT3D HARDWAREINFO
WinBioAcquireFocus WinBioAsyncEnumBiometricUnits WinBioAsyncEnumDatabases WinBioAsyncEnumServiceProviders WinBioAsyncMonitorFrameworkChanges WinBioAsyncOpenFramework WinBioAsyncOpenSession WinBioCancel WinBioCaptureSample WinBioCaptureSampleWithCallback WinBioCloseFramework WinBioCloseSession WinBioControlUnit WinBioControlUnitPrivileged WinBioDeleteTemplate WinBioEnrollBegin WinBioEnrollCapture WinBioEnrollCaptureWithCallback WinBioEnrollCommit WinBioEnrollDiscard WinBioEnrollSelect WinBioEnumBiometricUnits WinBioEnumDatabases WinBioEnumEnrollments WinBioEnumServiceProviders WinBioFree WinBioGetCredentialState WinBioGetDomainLogonSetting WinBioGetEnabledSetting WinBioGetEnrolledFactors WinBioGetLogonSetting WinBioGetProperty WinBioIdentify WinBioIdentifyWithCallback WinBioLocateSensor WinBioLocateSensorWithCallback WinBioLockUnit WinBioLogonIdentifiedUser WinBioMonitorPresence WinBioOpenSession WinBioRegisterEventMonitor WinBioReleaseFocus WinBioRemoveAllCredentials WinBioRemoveAllDomainCredentials WinBioRemoveCredential WinBioSetCredential WinBioSetProperty WinBioUnlockUnit WinBioUnregisterEventMonitor WinBioVerify WinBioVerifyWithCallback WinBioWait | WINBIO_ASYNC_NOTIFICATION_METHOD BIO_UNIT WINBIO_ANSI_381_FORMAT WINBIO_ANSI_381_IMG WINBIO_ANSI_381_IMG_ACQ WINBIO_ANSI_381_IMP_TYPE WINBIO_ANSI_381_PIXELS WINBIO_ANSI_381_POS_FINGER WINBIO_ANSI_381_POS_PALM WINBIO_ANSI_385_FACE WINBIO_ANTI_SPOOF_POLICY_ACTION WINBIO_BIOMETRIC_SENSOR_SUBTYPE WINBIO_BIOMETRIC_SUBTYPE WINBIO_BIOMETRIC_TYPE WINBIO_BIR_DATA_FLAGS WINBIO_BIR_FIELD WINBIO_BIR_PURPOSE WINBIO_BIR_QUALITY WINBIO_BIR_VERSION WINBIO_CAPABILITIES WINBIO_COMPONENT WINBIO_CREDENTIAL_FORMAT WINBIO_CREDENTIAL_STATE WINBIO_CREDENTIAL_TYPE WINBIO_DATABASE WINBIO_ENG_CAP WINBIO_EVENT_TYPE WINBIO_FRAMEWORK_CHANGE_TYPE WINBIO_IDENTITY_TYPE WINBIO_INDICATOR_STATUS WINBIO_OPERATION_TYPE WINBIO_ORIENTATION WINBIO_POLICY_SOURCE WINBIO_POOL_TYPE WINBIO_PRESENCE_CHANGE WINBIO_PROPERTY_ID WINBIO_PROPERTY_TYPE WINBIO_REJECT_DETAIL WINBIO_SENSOR_MODE WINBIO_SENSOR_STATUS WINBIO_SESSION_FLAGS WINBIO_SETTING_SOURCE_TYPE | WINBIO_ASYNC_RESULT WINBIO_FRAMEWORK_HANDLE WINBIO_SESSION_HANDLE WINBIO_ANTI_SPOOF_POLICY WINBIO_BDB_ANSI_381_HEADER WINBIO_BDB_ANSI_381_RECORD WINBIO_BIR WINBIO_BIR_DATA WINBIO_BIR_HEADER WINBIO_BSP_SCHEMA WINBIO_EVENT WINBIO_EXTENDED_ENGINE_INFO WINBIO_EXTENDED_ENROLLMENT_STATUS WINBIO_EXTENDED_SENSOR_INFO WINBIO_EXTENDED_STORAGE_INFO WINBIO_EXTENDED_UNIT_STATUS WINBIO_IDENTITY WINBIO_PRESENCE WINBIO_PRESENCE_PROPERTIES WINBIO_PROTECTION_POLICY WINBIO_REGISTERED_FORMAT WINBIO_STORAGE_SCHEMA WINBIO_UNIT_SCHEMA WINBIO_VERSION PARAMETERS VALIDITYPERIOD PARAMETERS SPECIFIC SPECIFIC SPECIFIC SPECIFIC VALUE AUTHORIZATION FACIALFEATURES IRIS VERIFY IDENTIFY ENROLLBEGIN ENROLLCAPTURE ENROLLCOMMIT ENUMENROLLMENTS CAPTURESAMPLE DELETETEMPLATE GETPROPERTY SETPROPERTY GETEVENT CONTROLUNIT ENUMSERVICEPROVIDERS ENUMBIOMETRICUNITS ENUMDATABASES VERIFYANDRELEASETICKET IDENTIFYANDRELEASETICKET ENROLLSELECT MONITORPRESENCE GETPROTECTIONPOLICY NOTIFYUNITSTATUSCHANGE UNCLAIMED UNCLAIMEDIDENTIFY ERROR FACIALFEATURES FINGERPRINT IRIS VOICE FACIALFEATURES FINGERPRINT IRIS VOICE FACIALFEATURES FINGERPRINT IRIS VOICE FACIALFEATURES FINGERPRINT IRIS VOICE ACCOUNTSID OPAQUEENGINEDATA ENROLLMENTREQUIREMENTS ENROLLMENTREQUIREMENTS ENROLLMENTREQUIREMENTS ENROLLMENTREQUIREMENTS OPAQUEENGINEDATA POINT3D HARDWAREINFO

View File

@ -3,7 +3,7 @@ PInvoke API (methods, structures and constants) imported from Windows WinBio.dll
- Includes methods from winbio.dll
- Current NuGet release: [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.WinBio?logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.WinBio?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.WinBio)
### Methods - 94% API coverage (52 of 55 functions)
### Methods - 100% API coverage (52 of 52 functions)
Native Method | Header | Managed Method
--- | --- | ---
[WinBioAcquireFocus](https://www.google.com/search?num=5&q=WinBioAcquireFocus+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioAcquireFocus](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioAcquireFocus)
@ -18,7 +18,6 @@ Native Method | Header | Managed Method
[WinBioCaptureSampleWithCallback](https://www.google.com/search?num=5&q=WinBioCaptureSampleWithCallback+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioCaptureSampleWithCallback](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioCaptureSampleWithCallback)
[WinBioCloseFramework](https://www.google.com/search?num=5&q=WinBioCloseFramework+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioCloseFramework](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioCloseFramework)
[WinBioCloseSession](https://www.google.com/search?num=5&q=WinBioCloseSession+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioCloseSession](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioCloseSession)
[WinBioConsumeFactorDeletedByService](https://www.google.com/search?num=5&q=WinBioConsumeFactorDeletedByService+site%3Alearn.microsoft.com) | |
[WinBioControlUnit](https://www.google.com/search?num=5&q=WinBioControlUnit+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioControlUnit](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioControlUnit)
[WinBioControlUnitPrivileged](https://www.google.com/search?num=5&q=WinBioControlUnitPrivileged+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioControlUnitPrivileged](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioControlUnitPrivileged)
[WinBioDeleteTemplate](https://www.google.com/search?num=5&q=WinBioDeleteTemplate+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioDeleteTemplate](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioDeleteTemplate)
@ -37,7 +36,6 @@ Native Method | Header | Managed Method
[WinBioGetDomainLogonSetting](https://www.google.com/search?num=5&q=WinBioGetDomainLogonSetting+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioGetDomainLogonSetting](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioGetDomainLogonSetting)
[WinBioGetEnabledSetting](https://www.google.com/search?num=5&q=WinBioGetEnabledSetting+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioGetEnabledSetting](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioGetEnabledSetting)
[WinBioGetEnrolledFactors](https://www.google.com/search?num=5&q=WinBioGetEnrolledFactors+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioGetEnrolledFactors](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioGetEnrolledFactors)
[WinBioGetFactorsDeletedByService](https://www.google.com/search?num=5&q=WinBioGetFactorsDeletedByService+site%3Alearn.microsoft.com) | |
[WinBioGetLogonSetting](https://www.google.com/search?num=5&q=WinBioGetLogonSetting+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioGetLogonSetting](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioGetLogonSetting)
[WinBioGetProperty](https://www.google.com/search?num=5&q=WinBioGetProperty+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioGetProperty](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioGetProperty)
[WinBioIdentify](https://www.google.com/search?num=5&q=WinBioIdentify+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioIdentify](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioIdentify)
@ -53,7 +51,6 @@ Native Method | Header | Managed Method
[WinBioRemoveAllCredentials](https://www.google.com/search?num=5&q=WinBioRemoveAllCredentials+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioRemoveAllCredentials](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioRemoveAllCredentials)
[WinBioRemoveAllDomainCredentials](https://www.google.com/search?num=5&q=WinBioRemoveAllDomainCredentials+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioRemoveAllDomainCredentials](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioRemoveAllDomainCredentials)
[WinBioRemoveCredential](https://www.google.com/search?num=5&q=WinBioRemoveCredential+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioRemoveCredential](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioRemoveCredential)
[WinBioSendTelemetry](https://www.google.com/search?num=5&q=WinBioSendTelemetry+site%3Alearn.microsoft.com) | |
[WinBioSetCredential](https://www.google.com/search?num=5&q=WinBioSetCredential+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioSetCredential](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioSetCredential)
[WinBioSetProperty](https://www.google.com/search?num=5&q=WinBioSetProperty+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioSetProperty](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioSetProperty)
[WinBioUnlockUnit](https://www.google.com/search?num=5&q=WinBioUnlockUnit+site%3Alearn.microsoft.com) | winbio.h | [Vanara.PInvoke.WinBio.WinBioUnlockUnit](https://github.com/dahall/Vanara/search?l=C%23&q=WinBioUnlockUnit)

View File

@ -13,7 +13,7 @@
<PackageReleaseNotes>Currently implements:
Functions
CryptCATAdminAcquireContext CryptCATAdminAcquireContext2 CryptCATAdminAddCatalog CryptCATAdminCalcHashFromFileHandle CryptCATAdminCalcHashFromFileHandle2 CryptCATAdminEnumCatalogFromHash CryptCATAdminReleaseCatalogContext CryptCATAdminReleaseContext CryptCATAdminRemoveCatalog CryptCATAdminResolveCatalogPath CryptCATCatalogInfoFromContext CryptCATCDFClose CryptCATCDFEnumCatAttributes CryptCATCDFOpen CryptCATClose CryptCATEnumerateAttr CryptCATEnumerateCatAttr CryptCATEnumerateMember CryptCATGetAttrInfo CryptCATGetMemberInfo CryptCATHandleFromStore CryptCATOpen CryptCATPersistStore CryptCATPutAttrInfo CryptCATPutCatAttrInfo CryptCATPutMemberInfo CryptCATStoreFromHandle CryptSIPCreateIndirectData CryptSIPGetCaps CryptSIPGetSignedDataMsg CryptSIPPutSignedDataMsg CryptSIPRemoveSignedDataMsg CryptSIPVerifyIndirectData IsCatalogFile OpenPersonalTrustDBDialog OpenPersonalTrustDBDialogEx WintrustAddActionID WintrustAddDefaultForUsage WintrustGetDefaultForUsage WintrustGetRegPolicyFlags WintrustLoadFunctionPointers WintrustRemoveActionID WintrustSetDefaultIncludePEPageHashes WintrustSetRegPolicyFlags WinVerifyTrust WinVerifyTrustEx WTHelperCertCheckValidSignature WTHelperCertFindIssuerCertificate WTHelperCertIsSelfSigned WTHelperGetFileHash WTHelperGetProvCertFromChain WTHelperGetProvPrivateDataFromChain WTHelperGetProvSignerFromChain WTHelperProvDataFromStateData
CryptCATAdminAcquireContext CryptCATAdminAcquireContext2 CryptCATAdminAddCatalog CryptCATAdminCalcHashFromFileHandle CryptCATAdminCalcHashFromFileHandle2 CryptCATAdminEnumCatalogFromHash CryptCATAdminReleaseCatalogContext CryptCATAdminReleaseContext CryptCATAdminRemoveCatalog CryptCATAdminResolveCatalogPath CryptCATCatalogInfoFromContext CryptCATCDFClose CryptCATCDFEnumCatAttributes CryptCATCDFOpen CryptCATClose CryptCATEnumerateAttr CryptCATEnumerateCatAttr CryptCATEnumerateMember CryptCATGetAttrInfo CryptCATGetMemberInfo CryptCATHandleFromStore CryptCATOpen CryptCATPersistStore CryptCATPutAttrInfo CryptCATPutCatAttrInfo CryptCATPutMemberInfo CryptCATStoreFromHandle IsCatalogFile OpenPersonalTrustDBDialog OpenPersonalTrustDBDialogEx WintrustAddActionID WintrustAddDefaultForUsage WintrustGetDefaultForUsage WintrustGetRegPolicyFlags WintrustLoadFunctionPointers WintrustRemoveActionID WintrustSetDefaultIncludePEPageHashes WintrustSetRegPolicyFlags WinVerifyTrust WinVerifyTrustEx WTHelperCertCheckValidSignature WTHelperCertFindIssuerCertificate WTHelperCertIsSelfSigned WTHelperGetFileHash WTHelperGetProvCertFromChain WTHelperGetProvPrivateDataFromChain WTHelperGetProvSignerFromChain WTHelperProvDataFromStateData
Structures
CATALOG_INFO CONFIG_CI_PROV_INFO CONFIG_CI_PROV_INFO_RESULT CRYPTCATATTRIBUTE CRYPTCATCDF CRYPTCATMEMBER CRYPTCATSTORE CRYPT_PROVIDER_CERT CRYPT_PROVIDER_DATA CRYPT_PROVIDER_DEFUSAGE CRYPT_PROVIDER_FUNCTIONS CRYPT_PROVIDER_PRIVDATA CRYPT_PROVIDER_REGDEFUSAGE CRYPT_PROVIDER_SGNR CRYPT_PROVIDER_SIGSTATE CRYPT_PROVUI_DATA CRYPT_PROVUI_FUNCS CRYPT_REGISTER_ACTIONID CRYPT_TRUST_REG_ENTRY DRIVER_VER_INFO DRIVER_VER_MAJORMINOR HCATADMIN HCATALOG HCATINFO HCRYPTMSG SPC_INDIRECT_DATA_CONTENT WINTRUST_BLOB_INFO WINTRUST_CATALOG_INFO WINTRUST_CERT_INFO WINTRUST_DATA WINTRUST_FILE_INFO WINTRUST_SGNR_INFO WINTRUST_SIGNATURE_SETTINGS WIN_CERTIFICATE WTD_GENERIC_CHAIN_POLICY_CREATE_INFO WTD_GENERIC_CHAIN_POLICY_DATA WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO

View File

@ -18,4 +18,4 @@ If you're still running into problems, file an [issue](https://github.com/dahall
Functions | Enumerations | Structures
--- | --- | ---
CryptCATAdminAcquireContext CryptCATAdminAcquireContext2 CryptCATAdminAddCatalog CryptCATAdminCalcHashFromFileHandle CryptCATAdminCalcHashFromFileHandle2 CryptCATAdminEnumCatalogFromHash CryptCATAdminReleaseCatalogContext CryptCATAdminReleaseContext CryptCATAdminRemoveCatalog CryptCATAdminResolveCatalogPath CryptCATCatalogInfoFromContext CryptCATCDFClose CryptCATCDFEnumCatAttributes CryptCATCDFOpen CryptCATClose CryptCATEnumerateAttr CryptCATEnumerateCatAttr CryptCATEnumerateMember CryptCATGetAttrInfo CryptCATGetMemberInfo CryptCATHandleFromStore CryptCATOpen CryptCATPersistStore CryptCATPutAttrInfo CryptCATPutCatAttrInfo CryptCATPutMemberInfo CryptCATStoreFromHandle CryptSIPCreateIndirectData CryptSIPGetCaps CryptSIPGetSignedDataMsg CryptSIPPutSignedDataMsg CryptSIPRemoveSignedDataMsg CryptSIPVerifyIndirectData IsCatalogFile OpenPersonalTrustDBDialog OpenPersonalTrustDBDialogEx WintrustAddActionID WintrustAddDefaultForUsage WintrustGetDefaultForUsage WintrustGetRegPolicyFlags WintrustLoadFunctionPointers WintrustRemoveActionID WintrustSetDefaultIncludePEPageHashes WintrustSetRegPolicyFlags WinVerifyTrust WinVerifyTrustEx WTHelperCertCheckValidSignature WTHelperCertFindIssuerCertificate WTHelperCertIsSelfSigned WTHelperGetFileHash WTHelperGetProvCertFromChain WTHelperGetProvPrivateDataFromChain WTHelperGetProvSignerFromChain WTHelperProvDataFromStateData | CRYPTCAT_ATTR CRYPTCAT_E CRYPTCAT_OPEN CRYPTCAT_VERSION CCPI CertConfidence DWACTION WIN_CERT_TYPE WSS WSS_SUPPORT WT_TRUSTDBDIALOG WTD_CHOICE WTD_REVOKE WTD_STATEACTION WTD_TRUST WTD_UI WTD_UICONTEXT WTPF | CATALOG_INFO CRYPTCATATTRIBUTE CRYPTCATCDF CRYPTCATMEMBER CRYPTCATSTORE HCATALOG HCATINFO CONFIG_CI_PROV_INFO CONFIG_CI_PROV_INFO_RESULT DRIVER_VER_INFO DRIVER_VER_MAJORMINOR WTD_GENERIC_CHAIN_POLICY_CREATE_INFO WTD_GENERIC_CHAIN_POLICY_DATA WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO CRYPT_PROVIDER_CERT CRYPT_PROVIDER_DATA CRYPT_PROVIDER_DEFUSAGE CRYPT_PROVIDER_FUNCTIONS CRYPT_PROVIDER_PRIVDATA CRYPT_PROVIDER_REGDEFUSAGE CRYPT_PROVIDER_SGNR CRYPT_PROVIDER_SIGSTATE CRYPT_PROVUI_DATA CRYPT_PROVUI_FUNCS CRYPT_REGISTER_ACTIONID CRYPT_TRUST_REG_ENTRY HCATADMIN HCRYPTMSG SPC_INDIRECT_DATA_CONTENT WIN_CERTIFICATE WINTRUST_BLOB_INFO WINTRUST_CATALOG_INFO WINTRUST_CERT_INFO WINTRUST_FILE_INFO WINTRUST_SGNR_INFO WINTRUST_SIGNATURE_SETTINGS WINTRUST_DATA
CryptCATAdminAcquireContext CryptCATAdminAcquireContext2 CryptCATAdminAddCatalog CryptCATAdminCalcHashFromFileHandle CryptCATAdminCalcHashFromFileHandle2 CryptCATAdminEnumCatalogFromHash CryptCATAdminReleaseCatalogContext CryptCATAdminReleaseContext CryptCATAdminRemoveCatalog CryptCATAdminResolveCatalogPath CryptCATCatalogInfoFromContext CryptCATCDFClose CryptCATCDFEnumCatAttributes CryptCATCDFOpen CryptCATClose CryptCATEnumerateAttr CryptCATEnumerateCatAttr CryptCATEnumerateMember CryptCATGetAttrInfo CryptCATGetMemberInfo CryptCATHandleFromStore CryptCATOpen CryptCATPersistStore CryptCATPutAttrInfo CryptCATPutCatAttrInfo CryptCATPutMemberInfo CryptCATStoreFromHandle IsCatalogFile OpenPersonalTrustDBDialog OpenPersonalTrustDBDialogEx WintrustAddActionID WintrustAddDefaultForUsage WintrustGetDefaultForUsage WintrustGetRegPolicyFlags WintrustLoadFunctionPointers WintrustRemoveActionID WintrustSetDefaultIncludePEPageHashes WintrustSetRegPolicyFlags WinVerifyTrust WinVerifyTrustEx WTHelperCertCheckValidSignature WTHelperCertFindIssuerCertificate WTHelperCertIsSelfSigned WTHelperGetFileHash WTHelperGetProvCertFromChain WTHelperGetProvPrivateDataFromChain WTHelperGetProvSignerFromChain WTHelperProvDataFromStateData | CRYPTCAT_ATTR CRYPTCAT_E CRYPTCAT_OPEN CRYPTCAT_VERSION CCPI CertConfidence DWACTION WIN_CERT_TYPE WSS WSS_SUPPORT WT_TRUSTDBDIALOG WTD_CHOICE WTD_REVOKE WTD_STATEACTION WTD_TRUST WTD_UI WTD_UICONTEXT WTPF | CATALOG_INFO CRYPTCATATTRIBUTE CRYPTCATCDF CRYPTCATMEMBER CRYPTCATSTORE HCATALOG HCATINFO CONFIG_CI_PROV_INFO CONFIG_CI_PROV_INFO_RESULT DRIVER_VER_INFO DRIVER_VER_MAJORMINOR WTD_GENERIC_CHAIN_POLICY_CREATE_INFO WTD_GENERIC_CHAIN_POLICY_DATA WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO CRYPT_PROVIDER_CERT CRYPT_PROVIDER_DATA CRYPT_PROVIDER_DEFUSAGE CRYPT_PROVIDER_FUNCTIONS CRYPT_PROVIDER_PRIVDATA CRYPT_PROVIDER_REGDEFUSAGE CRYPT_PROVIDER_SGNR CRYPT_PROVIDER_SIGSTATE CRYPT_PROVUI_DATA CRYPT_PROVUI_FUNCS CRYPT_REGISTER_ACTIONID CRYPT_TRUST_REG_ENTRY HCATADMIN HCRYPTMSG SPC_INDIRECT_DATA_CONTENT WIN_CERTIFICATE WINTRUST_BLOB_INFO WINTRUST_CATALOG_INFO WINTRUST_CERT_INFO WINTRUST_FILE_INFO WINTRUST_SGNR_INFO WINTRUST_SIGNATURE_SETTINGS WINTRUST_DATA

View File

@ -3,7 +3,7 @@ PInvoke API (methods, structures and constants) imported from Windows WinTrust.d
- Includes methods from wintrust.dll
- Current NuGet release: [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.WinTrust?logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.WinTrust?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.WinTrust)
### Methods - 88% API coverage (48 of 54 functions)
### Methods - 100% API coverage (48 of 48 functions)
Native Method | Header | Managed Method
--- | --- | ---
[CryptCATAdminAcquireContext](https://www.google.com/search?num=5&q=CryptCATAdminAcquireContext+site%3Alearn.microsoft.com) | mscat.h | [Vanara.PInvoke.WinTrust.CryptCATAdminAcquireContext](https://github.com/dahall/Vanara/search?l=C%23&q=CryptCATAdminAcquireContext)
@ -33,12 +33,6 @@ Native Method | Header | Managed Method
[CryptCATPutCatAttrInfo](https://www.google.com/search?num=5&q=CryptCATPutCatAttrInfo+site%3Alearn.microsoft.com) | mscat.h | [Vanara.PInvoke.WinTrust.CryptCATPutCatAttrInfo](https://github.com/dahall/Vanara/search?l=C%23&q=CryptCATPutCatAttrInfo)
[CryptCATPutMemberInfo](https://www.google.com/search?num=5&q=CryptCATPutMemberInfo+site%3Alearn.microsoft.com) | mscat.h | [Vanara.PInvoke.WinTrust.CryptCATPutMemberInfo](https://github.com/dahall/Vanara/search?l=C%23&q=CryptCATPutMemberInfo)
[CryptCATStoreFromHandle](https://www.google.com/search?num=5&q=CryptCATStoreFromHandle+site%3Alearn.microsoft.com) | mscat.h | [Vanara.PInvoke.WinTrust.CryptCATStoreFromHandle](https://github.com/dahall/Vanara/search?l=C%23&q=CryptCATStoreFromHandle)
[CryptSIPCreateIndirectData](https://www.google.com/search?num=5&q=CryptSIPCreateIndirectData+site%3Alearn.microsoft.com) | |
[CryptSIPGetCaps](https://www.google.com/search?num=5&q=CryptSIPGetCaps+site%3Alearn.microsoft.com) | |
[CryptSIPGetSignedDataMsg](https://www.google.com/search?num=5&q=CryptSIPGetSignedDataMsg+site%3Alearn.microsoft.com) | |
[CryptSIPPutSignedDataMsg](https://www.google.com/search?num=5&q=CryptSIPPutSignedDataMsg+site%3Alearn.microsoft.com) | |
[CryptSIPRemoveSignedDataMsg](https://www.google.com/search?num=5&q=CryptSIPRemoveSignedDataMsg+site%3Alearn.microsoft.com) | |
[CryptSIPVerifyIndirectData](https://www.google.com/search?num=5&q=CryptSIPVerifyIndirectData+site%3Alearn.microsoft.com) | |
[IsCatalogFile](https://www.google.com/search?num=5&q=IsCatalogFile+site%3Alearn.microsoft.com) | mscat.h | [Vanara.PInvoke.WinTrust.IsCatalogFile](https://github.com/dahall/Vanara/search?l=C%23&q=IsCatalogFile)
[OpenPersonalTrustDBDialog](https://www.google.com/search?num=5&q=OpenPersonalTrustDBDialog+site%3Alearn.microsoft.com) | wintrust.h | [Vanara.PInvoke.WinTrust.OpenPersonalTrustDBDialog](https://github.com/dahall/Vanara/search?l=C%23&q=OpenPersonalTrustDBDialog)
[OpenPersonalTrustDBDialogEx](https://www.google.com/search?num=5&q=OpenPersonalTrustDBDialogEx+site%3Alearn.microsoft.com) | wintrust.h | [Vanara.PInvoke.WinTrust.OpenPersonalTrustDBDialogEx](https://github.com/dahall/Vanara/search?l=C%23&q=OpenPersonalTrustDBDialogEx)

View File

@ -13,7 +13,7 @@
<PackageReleaseNotes>Currently implements:
Functions
WFDCancelOpenSession WFDCloseHandle WFDOpenHandle WFDOpenLegacySession WFDStartOpenSession WFDUpdateDeviceVisibility WlanAllocateMemory WlanCloseHandle WlanConnect WlanDeleteProfile WlanDeviceServiceCommand WlanDisconnect WlanEnumInterfaces WlanExtractPsdIEDataList WlanFreeMemory WlanGetAvailableNetworkList WlanGetFilterList WlanGetInterfaceCapability WlanGetNetworkBssList WlanGetProfile WlanGetProfileCustomUserData WlanGetProfileList WlanGetSecuritySettings WlanGetSupportedDeviceServices WlanHostedNetworkForceStart WlanHostedNetworkForceStop WlanHostedNetworkInitSettings WlanHostedNetworkQueryProperty WlanHostedNetworkQuerySecondaryKey WlanHostedNetworkQueryStatus WlanHostedNetworkRefreshSecuritySettings WlanHostedNetworkSetProperty WlanHostedNetworkSetSecondaryKey WlanHostedNetworkStartUsing WlanHostedNetworkStopUsing WlanIhvControl WlanOpenHandle WlanPrivateGetAnqpVenueUrl WlanQueryAutoConfigParameter WlanQueryInterface WlanReasonCodeToString WlanRegisterDeviceServiceNotification WlanRegisterNotification WlanRegisterVirtualStationNotification WlanRenameProfile WlanSaveTemporaryProfile WlanScan WlanSetAutoConfigParameter WlanSetFilterList WlanSetInterface WlanSetProfile WlanSetProfileCustomUserData WlanSetProfileEapUserData WlanSetProfileEapXmlUserData WlanSetProfileList WlanSetProfilePosition WlanSetPsdIEDataList WlanSetSecuritySettings WlanUIEditProfile
WFDCancelOpenSession WFDCloseHandle WFDOpenHandle WFDOpenLegacySession WFDStartOpenSession WFDUpdateDeviceVisibility WlanAllocateMemory WlanCloseHandle WlanConnect WlanDeleteProfile WlanDeviceServiceCommand WlanDisconnect WlanEnumInterfaces WlanExtractPsdIEDataList WlanFreeMemory WlanGetAvailableNetworkList WlanGetFilterList WlanGetInterfaceCapability WlanGetNetworkBssList WlanGetProfile WlanGetProfileCustomUserData WlanGetProfileList WlanGetSecuritySettings WlanGetSupportedDeviceServices WlanHostedNetworkForceStart WlanHostedNetworkForceStop WlanHostedNetworkInitSettings WlanHostedNetworkQueryProperty WlanHostedNetworkQuerySecondaryKey WlanHostedNetworkQueryStatus WlanHostedNetworkRefreshSecuritySettings WlanHostedNetworkSetProperty WlanHostedNetworkSetSecondaryKey WlanHostedNetworkStartUsing WlanHostedNetworkStopUsing WlanIhvControl WlanOpenHandle WlanQueryAutoConfigParameter WlanQueryInterface WlanReasonCodeToString WlanRegisterDeviceServiceNotification WlanRegisterNotification WlanRegisterVirtualStationNotification WlanRenameProfile WlanSaveTemporaryProfile WlanScan WlanSetAutoConfigParameter WlanSetFilterList WlanSetInterface WlanSetProfile WlanSetProfileCustomUserData WlanSetProfileEapUserData WlanSetProfileEapXmlUserData WlanSetProfileList WlanSetProfilePosition WlanSetPsdIEDataList WlanSetSecuritySettings WlanUIEditProfile
Structures
DOT11_AUTH_CIPHER_PAIR DOT11_BSSID_LIST DOT11_COUNTRY_OR_REGION_STRING DOT11_MAC_ADDRESS DOT11_NETWORK DOT11_NETWORK_LIST DOT11_SSID EAP_METHOD_TYPE EAP_TYPE HWFDSERVICE HWFDSESSION HWLANSESSION NDIS_OBJECT_HEADER ONEX_AUTH_PARAMS ONEX_CONNECTION_PROFILE ONEX_EAP_ERROR ONEX_RESULT_UPDATE_DATA ONEX_STATUS ONEX_USER_INFO ONEX_VARIABLE_BLOB WLAN_ASSOCIATION_ATTRIBUTES WLAN_AUTH_CIPHER_PAIR_LIST WLAN_AVAILABLE_NETWORK WLAN_AVAILABLE_NETWORK_LIST WLAN_BSS_ENTRY WLAN_BSS_LIST WLAN_CONNECTION_ATTRIBUTES WLAN_CONNECTION_NOTIFICATION_DATA WLAN_CONNECTION_PARAMETERS WLAN_COUNTRY_OR_REGION_STRING_LIST WLAN_DEVICE_SERVICE_GUID_LIST WLAN_DEVICE_SERVICE_NOTIFICATION_DATA WLAN_HOSTED_NETWORK_CONNECTION_SETTINGS WLAN_HOSTED_NETWORK_DATA_PEER_STATE_CHANGE WLAN_HOSTED_NETWORK_PEER_STATE WLAN_HOSTED_NETWORK_RADIO_STATE WLAN_HOSTED_NETWORK_SECURITY_SETTINGS WLAN_HOSTED_NETWORK_STATE_CHANGE WLAN_HOSTED_NETWORK_STATUS WLAN_INTERFACE_CAPABILITY WLAN_INTERFACE_INFO WLAN_INTERFACE_INFO_LIST WLAN_MAC_FRAME_STATISTICS WLAN_MSM_NOTIFICATION_DATA WLAN_NOTIFICATION_DATA WLAN_PHY_FRAME_STATISTICS WLAN_PHY_RADIO_STATE WLAN_PROFILE_INFO WLAN_PROFILE_INFO_LIST WLAN_RADIO_STATE WLAN_RATE_SET WLAN_RAW_DATA WLAN_RAW_DATA_INFO WLAN_RAW_DATA_LIST WLAN_SECURITY_ATTRIBUTES WLAN_STATISTICS

View File

@ -18,4 +18,4 @@ If you're still running into problems, file an [issue](https://github.com/dahall
Functions | Enumerations | Structures | Interfaces
--- | --- | --- | ---
WFDCancelOpenSession WFDCloseHandle WFDOpenHandle WFDOpenLegacySession WFDStartOpenSession WFDUpdateDeviceVisibility WlanAllocateMemory WlanCloseHandle WlanConnect WlanDeleteProfile WlanDeviceServiceCommand WlanDisconnect WlanEnumInterfaces WlanExtractPsdIEDataList WlanFreeMemory WlanGetAvailableNetworkList WlanGetFilterList WlanGetInterfaceCapability WlanGetNetworkBssList WlanGetProfile WlanGetProfileCustomUserData WlanGetProfileList WlanGetSecuritySettings WlanGetSupportedDeviceServices WlanHostedNetworkForceStart WlanHostedNetworkForceStop WlanHostedNetworkInitSettings WlanHostedNetworkQueryProperty WlanHostedNetworkQuerySecondaryKey WlanHostedNetworkQueryStatus WlanHostedNetworkRefreshSecuritySettings WlanHostedNetworkSetProperty WlanHostedNetworkSetSecondaryKey WlanHostedNetworkStartUsing WlanHostedNetworkStopUsing WlanIhvControl WlanOpenHandle WlanPrivateGetAnqpVenueUrl WlanQueryAutoConfigParameter WlanQueryInterface WlanReasonCodeToString WlanRegisterDeviceServiceNotification WlanRegisterNotification WlanRegisterVirtualStationNotification WlanRenameProfile WlanSaveTemporaryProfile WlanScan WlanSetAutoConfigParameter WlanSetFilterList WlanSetInterface WlanSetProfile WlanSetProfileCustomUserData WlanSetProfileEapUserData WlanSetProfileEapXmlUserData WlanSetProfileList WlanSetProfilePosition WlanSetPsdIEDataList WlanSetSecuritySettings WlanUIEditProfile | DOT11_ADHOC_AUTH_ALGORITHM DOT11_ADHOC_CIPHER_ALGORITHM DOT11_ADHOC_CONNECT_FAIL_REASON DOT11_ADHOC_NETWORK_CONNECTION_STATUS ONEX_AUTH_IDENTITY ONEX_AUTH_MODE ONEX_AUTH_RESTART_REASON ONEX_AUTH_STATUS ONEX_EAP_METHOD_BACKEND_SUPPORT ONEX_NOTIFICATION_TYPE ONEX_REASON_CODE ONEX_SUPPLICANT_MODE DOT11_AUTH_ALGORITHM DOT11_BSS_TYPE DOT11_CIPHER_ALGORITHM DOT11_OPERATION_MODE DOT11_PHY_TYPE DOT11_RADIO_STATE WL_DISPLAY_PAGES WLAN_ACCCESS WLAN_ADHOC_NETWORK_STATE WLAN_AUTOCONF_OPCODE WLAN_AVAILABLE_NETWORK_FLAGS WLAN_CONNECTION_FLAGS WLAN_CONNECTION_MODE WLAN_CONNECTION_NOTIFICATION WLAN_FILTER_LIST_TYPE WLAN_HOSTED_NETWORK_NOTIFICATION_CODE WLAN_HOSTED_NETWORK_OPCODE WLAN_HOSTED_NETWORK_PEER_AUTH_STATE WLAN_HOSTED_NETWORK_REASON WLAN_HOSTED_NETWORK_STATE WLAN_IHV_CONTROL_TYPE WLAN_INTERFACE_STATE WLAN_INTERFACE_TYPE WLAN_INTF_OPCODE WLAN_NOTIFICATION_ACM WLAN_NOTIFICATION_MSM WLAN_NOTIFICATION_SOURCE WLAN_OPCODE_VALUE_TYPE WLAN_POWER_SETTING WLAN_PROFILE_FLAGS WLAN_REASON_CODE WLAN_SECURABLE_OBJECT WLAN_SET_EAPHOST | ONEX_AUTH_PARAMS ONEX_CONNECTION_PROFILE ONEX_EAP_ERROR ONEX_RESULT_UPDATE_DATA ONEX_STATUS ONEX_USER_INFO ONEX_VARIABLE_BLOB HWFDSERVICE HWFDSESSION HWLANSESSION DOT11_AUTH_CIPHER_PAIR DOT11_BSSID_LIST DOT11_COUNTRY_OR_REGION_STRING DOT11_MAC_ADDRESS DOT11_NETWORK DOT11_SSID EAP_METHOD_TYPE EAP_TYPE NDIS_OBJECT_HEADER WLAN_ASSOCIATION_ATTRIBUTES WLAN_AUTH_CIPHER_PAIR_LIST WLAN_AVAILABLE_NETWORK WLAN_BSS_ENTRY WLAN_CONNECTION_ATTRIBUTES WLAN_CONNECTION_NOTIFICATION_DATA WLAN_CONNECTION_PARAMETERS WLAN_COUNTRY_OR_REGION_STRING_LIST WLAN_DEVICE_SERVICE_NOTIFICATION_DATA WLAN_HOSTED_NETWORK_CONNECTION_SETTINGS WLAN_HOSTED_NETWORK_DATA_PEER_STATE_CHANGE WLAN_HOSTED_NETWORK_PEER_STATE WLAN_HOSTED_NETWORK_RADIO_STATE WLAN_HOSTED_NETWORK_SECURITY_SETTINGS WLAN_HOSTED_NETWORK_STATE_CHANGE WLAN_INTERFACE_INFO WLAN_MAC_FRAME_STATISTICS WLAN_MSM_NOTIFICATION_DATA WLAN_NOTIFICATION_DATA WLAN_PHY_FRAME_STATISTICS WLAN_PHY_RADIO_STATE WLAN_PROFILE_INFO WLAN_RADIO_STATE WLAN_RATE_SET WLAN_RAW_DATA WLAN_RAW_DATA_LIST WLAN_SECURITY_ATTRIBUTES WLAN_STATISTICS DOT11_NETWORK_LIST WLAN_AVAILABLE_NETWORK_LIST WLAN_BSS_LIST WLAN_DEVICE_SERVICE_GUID_LIST WLAN_HOSTED_NETWORK_STATUS WLAN_INTERFACE_CAPABILITY WLAN_INTERFACE_INFO_LIST WLAN_PROFILE_INFO_LIST WLAN_RAW_DATA_INFO | IDot11AdHocInterface IDot11AdHocInterfaceNotificationSink IDot11AdHocManager IDot11AdHocManagerNotificationSink IDot11AdHocNetwork IDot11AdHocNetworkNotificationSink IDot11AdHocSecuritySettings IEnumDot11AdHocInterfaces IEnumDot11AdHocNetworks IEnumDot11AdHocSecuritySettings
WFDCancelOpenSession WFDCloseHandle WFDOpenHandle WFDOpenLegacySession WFDStartOpenSession WFDUpdateDeviceVisibility WlanAllocateMemory WlanCloseHandle WlanConnect WlanDeleteProfile WlanDeviceServiceCommand WlanDisconnect WlanEnumInterfaces WlanExtractPsdIEDataList WlanFreeMemory WlanGetAvailableNetworkList WlanGetFilterList WlanGetInterfaceCapability WlanGetNetworkBssList WlanGetProfile WlanGetProfileCustomUserData WlanGetProfileList WlanGetSecuritySettings WlanGetSupportedDeviceServices WlanHostedNetworkForceStart WlanHostedNetworkForceStop WlanHostedNetworkInitSettings WlanHostedNetworkQueryProperty WlanHostedNetworkQuerySecondaryKey WlanHostedNetworkQueryStatus WlanHostedNetworkRefreshSecuritySettings WlanHostedNetworkSetProperty WlanHostedNetworkSetSecondaryKey WlanHostedNetworkStartUsing WlanHostedNetworkStopUsing WlanIhvControl WlanOpenHandle WlanQueryAutoConfigParameter WlanQueryInterface WlanReasonCodeToString WlanRegisterDeviceServiceNotification WlanRegisterNotification WlanRegisterVirtualStationNotification WlanRenameProfile WlanSaveTemporaryProfile WlanScan WlanSetAutoConfigParameter WlanSetFilterList WlanSetInterface WlanSetProfile WlanSetProfileCustomUserData WlanSetProfileEapUserData WlanSetProfileEapXmlUserData WlanSetProfileList WlanSetProfilePosition WlanSetPsdIEDataList WlanSetSecuritySettings WlanUIEditProfile | DOT11_ADHOC_AUTH_ALGORITHM DOT11_ADHOC_CIPHER_ALGORITHM DOT11_ADHOC_CONNECT_FAIL_REASON DOT11_ADHOC_NETWORK_CONNECTION_STATUS ONEX_AUTH_IDENTITY ONEX_AUTH_MODE ONEX_AUTH_RESTART_REASON ONEX_AUTH_STATUS ONEX_EAP_METHOD_BACKEND_SUPPORT ONEX_NOTIFICATION_TYPE ONEX_REASON_CODE ONEX_SUPPLICANT_MODE DOT11_AUTH_ALGORITHM DOT11_BSS_TYPE DOT11_CIPHER_ALGORITHM DOT11_OPERATION_MODE DOT11_PHY_TYPE DOT11_RADIO_STATE WL_DISPLAY_PAGES WLAN_ACCCESS WLAN_ADHOC_NETWORK_STATE WLAN_AUTOCONF_OPCODE WLAN_AVAILABLE_NETWORK_FLAGS WLAN_CONNECTION_FLAGS WLAN_CONNECTION_MODE WLAN_CONNECTION_NOTIFICATION WLAN_FILTER_LIST_TYPE WLAN_HOSTED_NETWORK_NOTIFICATION_CODE WLAN_HOSTED_NETWORK_OPCODE WLAN_HOSTED_NETWORK_PEER_AUTH_STATE WLAN_HOSTED_NETWORK_REASON WLAN_HOSTED_NETWORK_STATE WLAN_IHV_CONTROL_TYPE WLAN_INTERFACE_STATE WLAN_INTERFACE_TYPE WLAN_INTF_OPCODE WLAN_NOTIFICATION_ACM WLAN_NOTIFICATION_MSM WLAN_NOTIFICATION_SOURCE WLAN_OPCODE_VALUE_TYPE WLAN_POWER_SETTING WLAN_PROFILE_FLAGS WLAN_REASON_CODE WLAN_SECURABLE_OBJECT WLAN_SET_EAPHOST | ONEX_AUTH_PARAMS ONEX_CONNECTION_PROFILE ONEX_EAP_ERROR ONEX_RESULT_UPDATE_DATA ONEX_STATUS ONEX_USER_INFO ONEX_VARIABLE_BLOB HWFDSERVICE HWFDSESSION HWLANSESSION DOT11_AUTH_CIPHER_PAIR DOT11_BSSID_LIST DOT11_COUNTRY_OR_REGION_STRING DOT11_MAC_ADDRESS DOT11_NETWORK DOT11_SSID EAP_METHOD_TYPE EAP_TYPE NDIS_OBJECT_HEADER WLAN_ASSOCIATION_ATTRIBUTES WLAN_AUTH_CIPHER_PAIR_LIST WLAN_AVAILABLE_NETWORK WLAN_BSS_ENTRY WLAN_CONNECTION_ATTRIBUTES WLAN_CONNECTION_NOTIFICATION_DATA WLAN_CONNECTION_PARAMETERS WLAN_COUNTRY_OR_REGION_STRING_LIST WLAN_DEVICE_SERVICE_NOTIFICATION_DATA WLAN_HOSTED_NETWORK_CONNECTION_SETTINGS WLAN_HOSTED_NETWORK_DATA_PEER_STATE_CHANGE WLAN_HOSTED_NETWORK_PEER_STATE WLAN_HOSTED_NETWORK_RADIO_STATE WLAN_HOSTED_NETWORK_SECURITY_SETTINGS WLAN_HOSTED_NETWORK_STATE_CHANGE WLAN_INTERFACE_INFO WLAN_MAC_FRAME_STATISTICS WLAN_MSM_NOTIFICATION_DATA WLAN_NOTIFICATION_DATA WLAN_PHY_FRAME_STATISTICS WLAN_PHY_RADIO_STATE WLAN_PROFILE_INFO WLAN_RADIO_STATE WLAN_RATE_SET WLAN_RAW_DATA WLAN_RAW_DATA_LIST WLAN_SECURITY_ATTRIBUTES WLAN_STATISTICS DOT11_NETWORK_LIST WLAN_AVAILABLE_NETWORK_LIST WLAN_BSS_LIST WLAN_DEVICE_SERVICE_GUID_LIST WLAN_HOSTED_NETWORK_STATUS WLAN_INTERFACE_CAPABILITY WLAN_INTERFACE_INFO_LIST WLAN_PROFILE_INFO_LIST WLAN_RAW_DATA_INFO | IDot11AdHocInterface IDot11AdHocInterfaceNotificationSink IDot11AdHocManager IDot11AdHocManagerNotificationSink IDot11AdHocNetwork IDot11AdHocNetworkNotificationSink IDot11AdHocSecuritySettings IEnumDot11AdHocInterfaces IEnumDot11AdHocNetworks IEnumDot11AdHocSecuritySettings

View File

@ -3,7 +3,7 @@ PInvoke API (methods, structures and constants imported from Windows WlanApi.dll
- Includes methods from wlanapi.dll, wlanui.dll
- Current NuGet release: [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.WlanApi?logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.WlanApi?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.WlanApi)
### Methods - 98% API coverage (58 of 59 functions)
### Methods - 100% API coverage (58 of 58 functions)
Native Method | Native DLL | Header | Managed Method
--- | --- | --- | ---
[WFDCancelOpenSession](https://www.google.com/search?num=5&q=WFDCancelOpenSession+site%3Alearn.microsoft.com) | wlanapi.dll | wlanapi.h | [Vanara.PInvoke.WlanApi.WFDCancelOpenSession](https://github.com/dahall/Vanara/search?l=C%23&q=WFDCancelOpenSession)
@ -43,7 +43,6 @@ Native Method | Native DLL | Header | Managed Method
[WlanHostedNetworkStopUsing](https://www.google.com/search?num=5&q=WlanHostedNetworkStopUsing+site%3Alearn.microsoft.com) | wlanapi.dll | wlanapi.h | [Vanara.PInvoke.WlanApi.WlanHostedNetworkStopUsing](https://github.com/dahall/Vanara/search?l=C%23&q=WlanHostedNetworkStopUsing)
[WlanIhvControl](https://www.google.com/search?num=5&q=WlanIhvControl+site%3Alearn.microsoft.com) | wlanapi.dll | wlanapi.h | [Vanara.PInvoke.WlanApi.WlanIhvControl](https://github.com/dahall/Vanara/search?l=C%23&q=WlanIhvControl)
[WlanOpenHandle](https://www.google.com/search?num=5&q=WlanOpenHandle+site%3Alearn.microsoft.com) | wlanapi.dll | wlanapi.h | [Vanara.PInvoke.WlanApi.WlanOpenHandle](https://github.com/dahall/Vanara/search?l=C%23&q=WlanOpenHandle)
[WlanPrivateGetAnqpVenueUrl](https://www.google.com/search?num=5&q=WlanPrivateGetAnqpVenueUrl+site%3Alearn.microsoft.com) | wlanapi.dll | |
[WlanQueryAutoConfigParameter](https://www.google.com/search?num=5&q=WlanQueryAutoConfigParameter+site%3Alearn.microsoft.com) | wlanapi.dll | wlanapi.h | [Vanara.PInvoke.WlanApi.WlanQueryAutoConfigParameter](https://github.com/dahall/Vanara/search?l=C%23&q=WlanQueryAutoConfigParameter)
[WlanQueryInterface](https://www.google.com/search?num=5&q=WlanQueryInterface+site%3Alearn.microsoft.com) | wlanapi.dll | wlanapi.h | [Vanara.PInvoke.WlanApi.WlanQueryInterface](https://github.com/dahall/Vanara/search?l=C%23&q=WlanQueryInterface)
[WlanReasonCodeToString](https://www.google.com/search?num=5&q=WlanReasonCodeToString+site%3Alearn.microsoft.com) | wlanapi.dll | wlanapi.h | [Vanara.PInvoke.WlanApi.WlanReasonCodeToString](https://github.com/dahall/Vanara/search?l=C%23&q=WlanReasonCodeToString)

View File

@ -2511,6 +2511,11 @@ public static partial class Ws2_32
/// <returns>The result of the conversion.</returns>
public static implicit operator SOCKET(SafeSOCKET h) => h.handle;
/// <summary>Performs an implicit conversion from <see cref="SafeSOCKET"/> to <see cref="SOCKET"/>.</summary>
/// <param name="h">The safe handle instance.</param>
/// <returns>The result of the conversion.</returns>
public static implicit operator SOCKET?(SafeSOCKET? h) => h?.handle;
/// <inheritdoc/>
protected override bool InternalReleaseHandle() => closesocket(this) == 0;
}

View File

@ -69,7 +69,7 @@ drt.dll, drtprov.dll, drttransport.dll | [Vanara.PInvoke.Drt](https://github.com
dwmapi.dll | [Vanara.PInvoke.DwmApi](https://github.com/dahall/Vanara/blob/master/PInvoke/DwmApi/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.DwmApi?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.DwmApi?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.DwmApi)
ehstorapi.dll | [Vanara.PInvoke.EnhancedStorage](https://github.com/dahall/Vanara/blob/master/PInvoke/EnhancedStorage/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.EnhancedStorage?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.EnhancedStorage?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.EnhancedStorage)
fhsvcctl.dll | [Vanara.PInvoke.FhSvcCtl](https://github.com/dahall/Vanara/blob/master/PInvoke/FhSvcCtl/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.FhSvcCtl?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.FhSvcCtl?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.FhSvcCtl)
FirewallApi.dll | [Vanara.PInvoke.FirewallApi](https://github.com/dahall/Vanara/blob/master/PInvoke/FirewallApi/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.FirewallApi?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.FirewallApi?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.FirewallApi)
FirewallApi.dll | [Vanara.PInvoke.FirewallApi](https://github.com/dahall/Vanara/blob/master/PInvoke/FirewallApi/readme.md) | ![Coverage](https://img.shields.io/badge/50%25-yellow.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.FirewallApi?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.FirewallApi?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.FirewallApi)
FunDisc.dll | [Vanara.PInvoke.FunDisc](https://github.com/dahall/Vanara/blob/master/PInvoke/FunDisc/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.FunDisc?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.FunDisc?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.FunDisc)
fwpuclnt.dll | [Vanara.PInvoke.FwpUClnt](https://github.com/dahall/Vanara/blob/master/PInvoke/FwpUClnt/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.FwpUClnt?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.FwpUClnt?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.FwpUClnt)
gdi32.dll | [Vanara.PInvoke.Gdi32](https://github.com/dahall/Vanara/blob/master/PInvoke/Gdi32/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.Gdi32?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.Gdi32?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Gdi32)
@ -85,13 +85,14 @@ magnification.dll | [Vanara.PInvoke.Magnification](https://github.com/dahall/Van
mmdevapi.dll | [Vanara.PInvoke.CoreAudio](https://github.com/dahall/Vanara/blob/master/PInvoke/CoreAudio/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.CoreAudio?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.CoreAudio?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.CoreAudio)
mpr.dll | [Vanara.PInvoke.Mpr](https://github.com/dahall/Vanara/blob/master/PInvoke/Mpr/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.Mpr?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.Mpr?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Mpr)
msctf.dll, input.dll, msimtf.dll | [Vanara.PInvoke.TextServicesFramework](https://github.com/dahall/Vanara/blob/master/PInvoke/TextServicesFramework/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.TextServicesFramework?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.TextServicesFramework?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.TextServicesFramework)
msftedit.dll,riched20.dll | [Vanara.PInvoke.MsftEdit](https://github.com/dahall/Vanara/blob/master/PInvoke/MsftEdit/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.MsftEdit?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.MsftEdit?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.MsftEdit)
Msi.dll | [Vanara.PInvoke.Msi](https://github.com/dahall/Vanara/blob/master/PInvoke/Msi/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.Msi?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.Msi?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Msi)
MsRdc.dll | [Vanara.PInvoke.MsRdc](https://github.com/dahall/Vanara/blob/master/PInvoke/MsRdc/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.MsRdc?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.MsRdc?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.MsRdc)
ndfapi.dll | [Vanara.PInvoke.NdfApi](https://github.com/dahall/Vanara/blob/master/PInvoke/NdfApi/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.NdfApi?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.NdfApi?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.NdfApi)
netapi32.dll | [Vanara.PInvoke.NetApi32](https://github.com/dahall/Vanara/blob/master/PInvoke/NetApi32/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.NetApi32?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.NetApi32?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.NetApi32)
netprofm.dll | [Vanara.PInvoke.NetListMgr](https://github.com/dahall/Vanara/blob/master/PInvoke/NetListMgr/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.NetListMgr?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.NetListMgr?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.NetListMgr)
NewDev.dll | [Vanara.PInvoke.NewDev](https://github.com/dahall/Vanara/blob/master/PInvoke/NewDev/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.NewDev?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.NewDev?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.NewDev)
ntdll.dll | [Vanara.PInvoke.NtDll](https://github.com/dahall/Vanara/blob/master/PInvoke/NtDll/readme.md) | ![Coverage](https://img.shields.io/badge/5%25-red.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.NtDll?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.NtDll?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.NtDll)
ntdll.dll | [Vanara.PInvoke.NtDll](https://github.com/dahall/Vanara/blob/master/PInvoke/NtDll/readme.md) | ![Coverage](https://img.shields.io/badge/6%25-red.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.NtDll?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.NtDll?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.NtDll)
ntdsapi.dll | [Vanara.PInvoke.NTDSApi](https://github.com/dahall/Vanara/blob/master/PInvoke/NTDSApi/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.NTDSApi?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.NTDSApi?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.NTDSApi)
ole32.dll, oleaut32.dll, propsys.dll | [Vanara.PInvoke.Ole](https://github.com/dahall/Vanara/blob/master/PInvoke/Ole/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.Ole?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.Ole?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Ole)
oleacc.dll | [Vanara.PInvoke.Accessibility](https://github.com/dahall/Vanara/blob/master/PInvoke/Accessibility/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.Accessibility?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.Accessibility?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Accessibility)
@ -100,6 +101,7 @@ opcservices.dll | [Vanara.PInvoke.Opc](https://github.com/dahall/Vanara/blob/mas
P2P.dll | [Vanara.PInvoke.P2P](https://github.com/dahall/Vanara/blob/master/PInvoke/P2P/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.P2P?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.P2P?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.P2P)
pdh.dll | [Vanara.PInvoke.Pdh](https://github.com/dahall/Vanara/blob/master/PInvoke/Pdh/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.Pdh?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.Pdh?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Pdh)
PeerDist.dll | [Vanara.PInvoke.PeerDist](https://github.com/dahall/Vanara/blob/master/PInvoke/PeerDist/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.PeerDist?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.PeerDist?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.PeerDist)
photoacq.dll | [Vanara.PInvoke.PhotoAcquire](https://github.com/dahall/Vanara/blob/master/PInvoke/PhotoAcquire/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.PhotoAcquire?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.PhotoAcquire?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.PhotoAcquire)
portabledeviceapi.dll, portabledeviceconnectapi.dll, portabledevicetypes.dll | [Vanara.PInvoke.PortableDeviceApi](https://github.com/dahall/Vanara/blob/master/PInvoke/PortableDeviceApi/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.PortableDeviceApi?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.PortableDeviceApi?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.PortableDeviceApi)
powrprof.dll | [Vanara.PInvoke.PowrProf](https://github.com/dahall/Vanara/blob/master/PInvoke/PowrProf/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.PowrProf?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.PowrProf?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.PowrProf)
ProjectedFSLib.dll | [Vanara.PInvoke.ProjectedFSLib](https://github.com/dahall/Vanara/blob/master/PInvoke/ProjectedFSLib/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.ProjectedFSLib?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.ProjectedFSLib?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.ProjectedFSLib)
@ -114,6 +116,7 @@ SHCore.dll | [Vanara.PInvoke.SHCore](https://github.com/dahall/Vanara/blob/maste
shell32.dll, url.dll | [Vanara.PInvoke.Shell32](https://github.com/dahall/Vanara/blob/master/PInvoke/Shell32/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.Shell32?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.Shell32?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Shell32)
shlwapi.dll | [Vanara.PInvoke.ShlwApi](https://github.com/dahall/Vanara/blob/master/PInvoke/ShlwApi/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.ShlwApi?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.ShlwApi?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.ShlwApi)
taskschd.dll, mstask.dll | [Vanara.PInvoke.TaskSchd](https://github.com/dahall/Vanara/blob/master/PInvoke/TaskSchd/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.TaskSchd?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.TaskSchd?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.TaskSchd)
uiautomationcore.dll | [Vanara.PInvoke.UIAutomation](https://github.com/dahall/Vanara/blob/master/PInvoke/UIAutomation/readme.md) | ![Coverage](https://img.shields.io/badge/0%25-red.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.UIAutomation?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.UIAutomation?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.UIAutomation)
UrlMon.dll | [Vanara.PInvoke.UrlMon](https://github.com/dahall/Vanara/blob/master/PInvoke/UrlMon/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.UrlMon?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.UrlMon?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.UrlMon)
user32.dll | [Vanara.PInvoke.User32](https://github.com/dahall/Vanara/blob/master/PInvoke/User32/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.User32?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.User32?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.User32)
UserEnv.dll | [Vanara.PInvoke.UserEnv](https://github.com/dahall/Vanara/blob/master/PInvoke/UserEnv/readme.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.UserEnv?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.UserEnv?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.UserEnv)