<?xml version="1.0"?>
<doc>
    <assembly>
        <name>YourPhone.ScreenMirroring.Managed</name>
    </assembly>
    <members>
        <member name="M:YourPhone.ScreenMirroring.Managed.Actions.LaunchPhoneNotificationAction.#ctor(YourPhone.Contracts.Notifications.INotificationLaunchProvider,YourPhone.AppCore.WinRT.Devices.IDeviceData,System.String,System.String,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:YourPhone.ScreenMirroring.Managed.Actions.LaunchPhoneNotificationAction"/> class.
            This action launches the Android intent associated with the notification.
            It involves sending a message from PC to phone.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Animations.DragDrop_PCToPhone.FrameCount">
            <summary>
            Gets the number of frames in the animation.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Animations.DragDrop_PCToPhone.Framerate">
            <summary>
            Gets the frame rate of the animation.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Animations.DragDrop_PCToPhone.Duration">
            <summary>
            Gets the duration of the animation.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Animations.DragDrop_PCToPhone.FrameToProgress(System.Double)">
            <summary>
            Converts a zero-based frame number to the corresponding progress value denoting the
            start of the frame.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Animations.DragDrop_PCToPhone.Markers">
            <summary>
            Returns a map from marker names to corresponding progress values.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Animations.DragDrop_PCToPhone.SetColorProperty(System.String,Windows.UI.Color)">
            <summary>
            Sets the color property with the given name, or does nothing if no such property
            exists.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Animations.DragDrop_PCToPhone.SetScalarProperty(System.String,System.Double)">
            <summary>
            Sets the scalar property with the given name, or does nothing if no such property
            exists.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Animations.DragDrop_PhoneToPC.FrameCount">
            <summary>
            Gets the number of frames in the animation.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Animations.DragDrop_PhoneToPC.Framerate">
            <summary>
            Gets the frame rate of the animation.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Animations.DragDrop_PhoneToPC.Duration">
            <summary>
            Gets the duration of the animation.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Animations.DragDrop_PhoneToPC.FrameToProgress(System.Double)">
            <summary>
            Converts a zero-based frame number to the corresponding progress value denoting the
            start of the frame.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Animations.DragDrop_PhoneToPC.Markers">
            <summary>
            Returns a map from marker names to corresponding progress values.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Animations.DragDrop_PhoneToPC.SetColorProperty(System.String,Windows.UI.Color)">
            <summary>
            Sets the color property with the given name, or does nothing if no such property
            exists.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Animations.DragDrop_PhoneToPC.SetScalarProperty(System.String,System.Double)">
            <summary>
            Sets the scalar property with the given name, or does nothing if no such property
            exists.
            </summary>
        </member>
        <member name="T:YourPhone.ScreenMirroring.Managed.Communication.ClipboardPhoneRequest">
            <summary>
            Represents a phone request for clipboard operations, handling transfer of clipboard content
            including MIME types, text values, and image data to the connected phone device.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Communication.ClipboardPhoneRequest.#ctor(System.String,System.String[],System.String[],System.Byte[])">
            <summary>
            Initializes a new instance of the <see cref="T:YourPhone.ScreenMirroring.Managed.Communication.ClipboardPhoneRequest"/> class.
            </summary>
            <param name="correlationId">The correlation identifier for tracking this request.</param>
            <param name="mimeTypes">The MIME types of the clipboard content.</param>
            <param name="textValues">The text values from the clipboard.</param>
            <param name="image">The image data from the clipboard as byte array.</param>
            <exception cref="T:System.ArgumentNullException">Thrown when correlationId is null.</exception>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Communication.ClipboardPhoneRequest.Id">
            <summary>
            Gets the unique identifier for this request.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Communication.ClipboardPhoneRequest.CorrelationId">
            <summary>
            Gets the correlation identifier for this request.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Communication.ClipboardPhoneRequest.BuildRequestMessage">
            <summary>
            Builds the request message as a ValueSet containing all clipboard data.
            </summary>
            <returns>A ValueSet containing the clipboard request data.</returns>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Communication.ClipboardPhoneRequest.GetHeaders">
            <summary>
            Gets the headers for this request.
            </summary>
            <returns>An empty map view as no headers are required for clipboard requests.</returns>
        </member>
        <member name="T:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequest">
            <summary>
            Represents a phone request for phone apps operations, handling requests for app information
            such as favorite apps or currently running apps on the connected phone device.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequest.#ctor(System.String,YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequestType)">
            <summary>
            Initializes a new instance of the <see cref="T:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequest"/> class.
            </summary>
            <param name="correlationId">The correlation identifier for tracking this request.</param>
            <param name="requestType">The type of phone apps request.</param>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequest.#ctor(System.String,YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequestType,System.Collections.Generic.IList{System.String})">
            <summary>
            Initializes a new instance of the <see cref="T:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequest"/> class with phone apps data.
            </summary>
            <param name="correlationId">The correlation identifier for tracking this request.</param>
            <param name="requestType">The type of phone apps request.</param>
            <param name="phoneApps">The list of phone apps to include in the request.</param>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequest.#ctor(System.String,YourPhone.AppCore.WinRT.Devices.IDeviceData)">
            <summary>
            Initializes a new instance of the <see cref="T:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequest"/> class for internal creation.
            </summary>
            <param name="correlationId">The correlation identifier.</param>
            <param name="deviceData">The device data.</param>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequest.Id">
            <summary>
            Gets the unique identifier for this request.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequest.CreatePhoneAppsRequest(YourPhone.AppCore.WinRT.Devices.IDeviceData)">
            <summary>
            Creates a phone apps request with default configuration.
            </summary>
            <param name="deviceData">The device data for the target device.</param>
            <returns>A new <see cref="T:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequest"/> instance.</returns>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequest.BuildRequestMessage">
            <summary>
            Builds the request message as a ValueSet containing all phone apps request data.
            </summary>
            <returns>A ValueSet containing the phone apps request data.</returns>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequest.GetHeaders">
            <summary>
            Gets the headers for this request.
            </summary>
            <returns>An empty map view as no headers are required for phone apps requests.</returns>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequest.AddRemoteFeatureConfig(Windows.Foundation.Collections.ValueSet,System.String,System.Boolean)">
            <summary>
            Adds a remote feature configuration to the ValueSet.
            </summary>
            <param name="valueSet">The ValueSet to add the configuration to.</param>
            <param name="remoteFeature">The name of the remote feature.</param>
            <param name="value">The value of the remote feature.</param>
        </member>
        <member name="T:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequestType">
            <summary>
            Defines the types of phone apps requests that can be made.
            Note: Only add to the end of this enum! Must stay in sync with the Android and iOS versions.
            </summary>
        </member>
        <member name="F:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequestType.Favorites">
            <summary>
            Request for favorite apps.
            </summary>
        </member>
        <member name="F:YourPhone.ScreenMirroring.Managed.Communication.PhoneAppsRequestType.Running">
            <summary>
            Request for currently running apps.
            </summary>
        </member>
        <member name="T:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PCAppDataTable">
            <summary>
            PCAppDataTable manages the pcapp_data table and related queries.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PCAppDataTable.GetAllAppsMetadata">
            <summary>
            Returns all app metadata as a read-only list.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PCAppDataTable.GetAppMetadata(System.String)">
            <summary>
            Returns app metadata for a given package name.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PCAppDataTable.GetAppMetadataByAppId(System.String)">
            <summary>
            Returns app metadata for a given platform app ID.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PCAppDataTable.InsertOrUpdate(System.Collections.Generic.IReadOnlyList{YourPhone.ScreenMirroring.WinRT.DataStore.PCAppDataEntity})">
            <summary>
            Inserts or updates a batch of app data entities in a transaction.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PCAppDataTable.GetEntityFromRow(YourPhone.AppCore.WinRT.DataStore.ISqliteStatement)">
            <summary>
            Maps a row from the database to a PCAppDataEntity.
            </summary>
        </member>
        <member name="T:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable">
            <summary>
            Manages the phone_apps table and related queries.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.GetCount">
            <summary>
            Returns the count of phone apps.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.GetAllPhoneApps">
            <summary>
            Returns all phone apps ordered by name.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.GetAllFavoritePhoneApps">
            <summary>
            Returns all favorite phone apps ordered by favorite rank.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.GetPhoneApps(System.Collections.Generic.IReadOnlyList{System.String})">
            <summary>
            Returns phone apps for the given package names.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.GetPhoneAppsByIds(System.Collections.Generic.IReadOnlyList{System.Int64})">
            <summary>
            Returns phone apps for the given app IDs.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.GetSinglePhoneApp(System.String)">
            <summary>
            Returns a single phone app by package name.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.GetSinglePhoneAppById(System.Int64)">
            <summary>
            Returns a single phone app by app ID.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.InsertOrUpdate(System.Collections.Generic.IReadOnlyList{YourPhone.ScreenMirroring.WinRT.DataStore.PhoneAppEntity})">
            <summary>
            Inserts or updates a batch of phone app entities.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.InsertOrUpdateWithIds(System.Collections.Generic.IReadOnlyList{YourPhone.ScreenMirroring.WinRT.DataStore.PhoneAppEntity})">
            <summary>
            Inserts or updates a batch of phone app entities with IDs.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.InsertOrUpdateWithoutIcons(System.Collections.Generic.IReadOnlyList{YourPhone.ScreenMirroring.WinRT.DataStore.PhoneAppEntity})">
            <summary>
            Inserts or updates a batch of phone app entities without icons.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.DeletePhoneApps(System.Collections.Generic.IReadOnlyList{System.String})">
            <summary>
            Deletes phone apps by package names.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.DeletePhoneAppsByIds(System.Collections.Generic.IReadOnlyList{System.Int64})">
            <summary>
            Deletes phone apps by app IDs.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.DeletePhoneAppWhereNotETag(System.Int64)">
            <summary>
            Deletes phone apps where the ETag does not match.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.UpdateFavoriteRank(System.String,System.Int64)">
            <summary>
            Updates the favorite rank for a phone app.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.UpdateFavoriteRanks(System.Collections.Generic.IReadOnlyList{System.String},System.Collections.Generic.IReadOnlyList{System.Int64})">
            <summary>
            Updates favorite ranks for a batch of phone apps.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.RemoveFavorite(System.String)">
            <summary>
            Removes a favorite for a phone app.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.RemoveAllFavorites">
            <summary>
            Removes all favorites.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.GetEntityFromRow(YourPhone.AppCore.WinRT.DataStore.ISqliteStatement)">
            <summary>
            Maps a row from the database to a PhoneAppEntity.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.PhoneAppsTable.Synchronize(System.Collections.Generic.IReadOnlyList{System.Int64},System.Collections.Generic.IReadOnlyList{System.Int64})">
            <summary>
            Synchronizes the table with the given IDs and checksums.
            </summary>
        </member>
        <member name="T:YourPhone.ScreenMirroring.Managed.DataStore.Tables.RecentAppsTable">
            <summary>
            Manages the recent_apps table and related queries.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.RecentAppsTable.GetAllRecentAppsWithIcons">
            <summary>
            Returns all recent apps with icons, ordered by recent_app_rank.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.RecentAppsTable.GetAllRecentMainAppsWithIcons">
            <summary>
            Returns all recent main apps with icons, ordered by recent_app_rank.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.RecentAppsTable.GetAllRecentApps">
            <summary>
            Returns all recent apps, ordered by recent_app_rank.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.RecentAppsTable.GetRecentAppFromId(System.Int64)">
            <summary>
            Returns a recent app by its app_id.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.RecentAppsTable.InsertOrUpdate(System.Collections.Generic.IReadOnlyList{YourPhone.ScreenMirroring.WinRT.DataStore.RecentAppEntity})">
            <summary>
            Inserts or updates a batch of recent app entities.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.RecentAppsTable.DeleteRecentAppsByPackageNames(System.Collections.Generic.IReadOnlyList{System.String})">
            <summary>
            Deletes recent apps by package names.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.RecentAppsTable.DeleteRecentAppsByIds(System.Collections.Generic.IReadOnlyList{System.Int64})">
            <summary>
            Deletes recent apps by app IDs.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.RecentAppsTable.ClearAllRecentApps">
            <summary>
            Clears all recent apps.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.RecentAppsTable.GetEntityFromRow(YourPhone.AppCore.WinRT.DataStore.ISqliteStatement)">
            <summary>
            Maps a row from the database to a RecentAppEntity.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.DataStore.Tables.RecentAppsTable.Synchronize(System.Collections.Generic.IReadOnlyList{System.Int64},System.Collections.Generic.IReadOnlyList{System.Int64})">
            <summary>
            Synchronizes the table with the given IDs and checksums.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.HostedApps.Helpers.IFullTrustServiceHelpers.RetrieveAllHostedAppIdentitiesForDevice(System.String,System.String)">
            <summary>
            Returns all hosted app identities currently stored for <paramref name="deviceId"/>.
            Used by cleanup paths that need to operate on a device other than the currently selected one.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.HostedApps.IHostedAppsPackageManager.UnregisterAllHostedAppsAsync(System.String,System.String)">
            <summary>
            Unregisters every hosted app package that was registered for <paramref name="deviceId"/>.
            Used by cleanup paths that need to operate on a device other than the currently selected one
            (e.g. a device that has just been removed from the store). Avoids the per-package query
            overhead of calling <see cref="M:YourPhone.ScreenMirroring.Managed.HostedApps.IHostedAppsPackageManager.UnregisterHostedAppAsync(System.String,System.String)"/> in a loop --
            enumerates the installed packages once and unregisters all matches.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Settings.CopyPasteSettingsGroupView.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Settings.CopyPasteSettingsGroupView.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Settings.CopyPasteSettingsGroupView.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Settings.MirrorSettingsGroupView.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Settings.MirrorSettingsGroupView.UnloadObject(Microsoft.UI.Xaml.DependencyObject)">
            <summary>
            UnloadObject(DependencyObject)
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Settings.MirrorSettingsGroupView.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Settings.MirrorSettingsGroupView.DisconnectUnloadedObject(System.Int32)">
            <summary>
            DisconnectUnloadedObject(int connectionId)
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Settings.MirrorSettingsGroupView.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="T:YourPhone.ScreenMirroring.Managed.StartMenu.CompanionAppIconCache">
            <summary>
            Caches the scaled, base64-encoded data URIs of phone-app icons so an icon is only produced once per
            package/size until that app changes. Cards regenerate on every change; without this cache each rebuild
            re-decodes, re-scales, transcodes and base64-encodes every app icon, producing large repeated
            allocations. The cache is shared across every companion-card surface that renders app icons (the app
            grid and grouped-notification activity).
            <para>
            The cache owns its invalidation because it knows when the apps change: it subscribes to the
            phone-apps-manager <see cref="E:YourPhone.Contracts.ScreenMirroring.IPhoneAppsManager.Updated"/> and <see cref="E:YourPhone.Contracts.ScreenMirroring.IPhoneAppsManager.RecentsUpdated"/>
            events, whose args carry the ids of the app rows that changed, and evicts only those packages. A
            package name is stable across icon-content changes, so an app's icon can change without its cache
            key changing; the id-driven eviction (not the key) is what keeps a changed icon from being served
            stale, while leaving every unaffected icon cached. Synthetic apps (those not backed by a phone-apps
            row, e.g. the Link-to-Windows notification stub) report an id of -1; their icons are static, so they
            are cached by package name but not tracked for id-driven eviction.
            </para>
            </summary>
        </member>
        <member name="F:YourPhone.ScreenMirroring.Managed.UserControls.PhoneScreenApp.ViewModelProperty">
            <summary>
            The Dependency property backing the ViewModel property
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.UserControls.PhoneScreenApp.ViewModel">
            <summary>
            Gets or sets the viewmodel the chrome binds to.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.PhoneScreenApp.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.PhoneScreenApp.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.PhoneScreenApp.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="F:YourPhone.ScreenMirroring.Managed.UserControls.PhoneScreenAppsView.ViewModelProperty">
            <summary>
            The Dependency property backing the ViewModel property
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.UserControls.PhoneScreenAppsView.ViewModel">
            <summary>
            Gets or sets the viewmodel the chrome binds to.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.PhoneScreenAppsView.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.PhoneScreenAppsView.UnloadObject(Microsoft.UI.Xaml.DependencyObject)">
            <summary>
            UnloadObject(DependencyObject)
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.PhoneScreenAppsView.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.PhoneScreenAppsView.DisconnectUnloadedObject(System.Int32)">
            <summary>
            DisconnectUnloadedObject(int connectionId)
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.PhoneScreenAppsView.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="F:YourPhone.ScreenMirroring.Managed.UserControls.RecentAppsView.ViewModelProperty">
            <summary>
            The Dependency property backing the ViewModel property
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.UserControls.RecentAppsView.ViewModel">
            <summary>
            Gets or sets the viewmodel the chrome binds to.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.RecentAppsView.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.RecentAppsView.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.RecentAppsView.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="F:YourPhone.ScreenMirroring.Managed.UserControls.RecentAppView.ViewModelProperty">
            <summary>
            The Dependency property backing the ViewModel property
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.UserControls.RecentAppView.ViewModel">
            <summary>
            Gets or sets the viewmodel the chrome binds to.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.RecentAppView.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.RecentAppView.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.RecentAppView.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="F:YourPhone.ScreenMirroring.Managed.UserControls.RemotingNode.ViewModelProperty">
            <summary>
            The Dependency property backing the ViewModel property
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.UserControls.RemotingNode.ViewModel">
            <summary>
            Gets or sets the viewmodel the chrome binds to.
            </summary>
        </member>
        <member name="F:YourPhone.ScreenMirroring.Managed.UserControls.RemotingNode.PadTitleBarProperty">
            <summary>
            The Dependency property backing the PadTitleBar property
            </summary>
        </member>
        <member name="F:YourPhone.ScreenMirroring.Managed.UserControls.RemotingNode.VerticalContentShiftProperty">
            <summary>
            The Dependency property backing the VerticalContentShift property
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.RemotingNode.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.RemotingNode.UnloadObject(Microsoft.UI.Xaml.DependencyObject)">
            <summary>
            UnloadObject(DependencyObject)
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.RemotingNode.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.RemotingNode.DisconnectUnloadedObject(System.Int32)">
            <summary>
            DisconnectUnloadedObject(int connectionId)
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.RemotingNode.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.UpgradeSecondaryTileContentDialog.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.UpgradeSecondaryTileContentDialog.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.UserControls.UpgradeSecondaryTileContentDialog.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Utilities.PlatformMetadataContext.PlatformName">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Utilities.PlatformMetadataContext.PlatformMetadata">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Utilities.PlatformMetadataContext.String">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Utilities.PlatformMetadataContext.Default">
            <summary>
            The default <see cref="T:System.Text.Json.Serialization.JsonSerializerContext"/> associated with a default <see cref="T:System.Text.Json.JsonSerializerOptions"/> instance.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Utilities.PlatformMetadataContext.GeneratedSerializerOptions">
            <summary>
            The source-generated options associated with this context.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Utilities.PlatformMetadataContext.#ctor">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Utilities.PlatformMetadataContext.#ctor(System.Text.Json.JsonSerializerOptions)">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Utilities.PlatformMetadataContext.GetTypeInfo(System.Type)">
            <inheritdoc/>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Utilities.StoreActionPackageContext.Boolean">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Utilities.StoreActionPackageContext.StoreActionPackage">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Utilities.StoreActionPackageContext.Int32">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Utilities.StoreActionPackageContext.String">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Utilities.StoreActionPackageContext.Default">
            <summary>
            The default <see cref="T:System.Text.Json.Serialization.JsonSerializerContext"/> associated with a default <see cref="T:System.Text.Json.JsonSerializerOptions"/> instance.
            </summary>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.Utilities.StoreActionPackageContext.GeneratedSerializerOptions">
            <summary>
            The source-generated options associated with this context.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Utilities.StoreActionPackageContext.#ctor">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Utilities.StoreActionPackageContext.#ctor(System.Text.Json.JsonSerializerOptions)">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Utilities.StoreActionPackageContext.GetTypeInfo(System.Type)">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Views.DragDropTutorialDialog.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Views.DragDropTutorialDialog.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.Views.DragDropTutorialDialog.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="T:YourPhone.ScreenMirroring.Managed.YourPhone_ScreenMirroring_Managed_XamlTypeInfo.XamlMetaDataProvider">
            <summary>
            Main class for providing metadata for the app or library
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.YourPhone_ScreenMirroring_Managed_XamlTypeInfo.XamlMetaDataProvider.GetXamlType(System.Type)">
            <summary>
            GetXamlType(Type)
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.YourPhone_ScreenMirroring_Managed_XamlTypeInfo.XamlMetaDataProvider.GetXamlType(System.String)">
            <summary>
            GetXamlType(String)
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.YourPhone_ScreenMirroring_Managed_XamlTypeInfo.XamlMetaDataProvider.GetXmlnsDefinitions">
            <summary>
            GetXmlnsDefinitions()
            </summary>
        </member>
        <member name="T:YourPhone.AppProxyConnection.Audio.AudioStartOnRemotingService">
            <summary>
            Trigger audio workflow on remoting workflow start instead of inside Orchestrator since
            remoting workflow is the "main" workflow
            </summary>
        </member>
        <member name="T:YourPhone.AppProxyConnection.Audio.Volume.IAudioVolumeManager">
            <summary>
            Manages volume of audio during app remoting Audio Streaming
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Audio.Volume.IAudioVolumeManager.GetVolumeState(System.String)">
            <summary>
            Returns the last saved volume for <paramref name="packageName"/> from the database.
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Audio.Volume.IAudioVolumeManager.SetVolumeState(System.String,YourPhoneAppProxy.Core.Audio.VolumeState)">
            <summary>
            Set volume slider and mute status for all windows under <paramref name="packageName"/>,
            send the new volume to the phone, and save <paramref name="volumeState"/> to the database.
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Audio.Volume.IAudioVolumeManager.SendInitialVolumeToPhone(System.String)">
            <summary>
            Send the last saved volume in the database for <paramref name="packageName"/>, to the phone
            </summary>
        </member>
        <member name="T:YourPhone.AppProxyConnection.ConnectionSvc.ConnectionService">
            <summary>
            ConnectionService owns the fundamental connection setup, initializing workflows, and setting up channels
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.ConnectionSvc.ConnectionService.RequestConnectionHandleAsync(System.String,System.Threading.CancellationToken,System.Boolean,System.String)">
            <summary>
            Public facing method that takes in handle requests, does handle management, and requests a connection
            Only one handle for each workflow can be requested at once. N+1 requests will throw InvalidOperationException
            </summary>
            <param name="workflowName">Name of workflow to start</param>
            <param name="token">token</param>
            <param name="forceNewConnection">Create a new connection even if one already exists and connection handle store is empty.</param>
            <param name="correlationId">The correlation id to track the connection request</param>
            <returns>handle to connection for the workflow</returns>
        </member>
        <member name="M:YourPhone.AppProxyConnection.ConnectionSvc.ConnectionService.EnsureConnectionAsync(System.String,System.Threading.CancellationToken,System.String)">
            <summary>
            This method ensures that only one connection attempt occurs at once
            All other invocations will wait for the main connection attempt to succeed (or fail) and will adopt that result as well
            Exception is thrown (and standardized to ConnectionServiceException) if the connection attempt fails or times out
            </summary>
            <param name="workflowName">Name of workflow to ensure connection</param>
            <param name="token">Token by caller for cancellation (e.g. cancel via Close)</param>
            <param name="correlationId">The correlation id to track the connection request</param>
            <returns>Task to wait for a connection attempt to complete</returns>
        </member>
        <member name="M:YourPhone.AppProxyConnection.ConnectionSvc.ConnectionService.AttemptConnectionAsync(System.String,System.String,System.Threading.CancellationToken)">
            <summary>
            Actual logic to form a connection
            Underyling components throw if the connection attempt fails or times out
            </summary>
            <param name="workflowName">Name of workflow to attempt connection</param>
            <param name="correlationId">Correlation ID to pass around and to Android</param>
            <param name="token">CancellationToken to cancel the operation</param>
            <returns>Task to wait for a connection attempt to complete</returns>
        </member>
        <member name="P:YourPhone.AppProxyConnection.ConnectionSvc.ConnectionServiceException.RejectReason">
            <summary>
            Optional feature-specific rejection reason returned by the remote side
            alongside the generic <see cref="P:YourPhone.AppProxyConnection.ConnectionSvc.ConnectionServiceException.ConnectionError"/> code. Empty when no
            reason was provided.
            </summary>
        </member>
        <member name="T:YourPhone.AppProxyConnection.ConnectionSvc.Connection.ClientAdapter">
             <summary>
             This object adapts the Nano IClient interface to APC's IClientAdapter interface
             This gets a client which is already connected and maintains it.
             It also creates a message channel so communication is possible with the device. The message channel is for the invocation of workflows
            
             The client is the first recipient of any new channels created. It also monitors the connection (instability/close)
             </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.ConnectionSvc.Connection.ClientAdapter.WaitForOpenAsync(System.String,System.Threading.CancellationToken)">
             <summary>
             Waits for the client to finish setting up its internal objects
            
             Exceptions thrown:
             - TaskCanceledException - Close is called and current operations will be canceled
             - OperationCanceledException - Cancellation token passed into WaitForOpenAsync has been canceled
             </summary>
             <param name="workflowName">The name of the workflow that triggers the waiting for open action</param>
             <param name="token">Cancellation token</param>
             <returns>Returns when client has finished setting up internal objects</returns>
        </member>
        <member name="P:YourPhone.AppProxyConnection.ConnectionSvc.Connect.CloudTransportResult.RejectReason">
            <summary>
            Optional feature-specific rejection reason returned by the remote side
            alongside a generic ScenarioResult (e.g. CanceledDisconnected). Empty when
            the remote did not specify a reason.
            </summary>
        </member>
        <member name="T:YourPhone.AppProxyConnection.ConnectionSvc.Connect.ConnectAdapter">
            <summary>
            This object adapts the Nano IConnect interface to APC's IConnectAdapter interface
            This gets the local handshake request in InitializeAsync and uses the remote handshake response in OpenAsync
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.ConnectionSvc.Connect.ConnectAdapter.InitializeAsync(System.String,YourPhone.AppProxyConnection.ConnectionSvc.ConnectionTypes.TransportTypeData,System.String,System.Threading.CancellationToken)">
             <summary>
             Initializes the p2p transport
            
             Exceptions thrown:
             - TaskCanceledException - Close is called and current operations will be canceled
             - OperationCanceledException - Cancellation token passed into InitializeAsync has been canceled
             - InvalidOperationException - Invalid call sequence
             </summary>
             <returns>Returns connection string to be sent to peer for handshake</returns>
        </member>
        <member name="M:YourPhone.AppProxyConnection.ConnectionSvc.Connect.ConnectAdapter.OpenAsync(System.Text.Json.Nodes.JsonObject,System.String)">
             <summary>
             Using the peer's connection string, attempts to open a connection with the peer
            
             Exceptions thrown:
             - TaskCanceledException - Close is called and current operations will be canceled
             - OperationCanceledException - Cancellation token passed into InitializeAsync has been canceled
             - InvalidOperationException - Invalid call sequence
             - ConnectionServiceException - DirectConnectionTimedOut, Error, Canceled, Failed (unexpected), RemoteTransportTooOld, RemoteTransportTooNew
             </summary>
             <param name="connectionInfo">Peer's connection string</param>
             <param name="workflowName">The name of the workflow that triggers the openning action</param>
             <returns>Returns client object with open connection</returns>
        </member>
        <member name="T:YourPhone.AppProxyConnection.ConnectionSvc.Workflow.IWorkflowMessageChannel">
            <summary>
            Encapsulates the workflow-level message channel. The lifetime of this object is the lifetime of the workflow
            </summary>
        </member>
        <member name="P:YourPhone.AppProxyConnection.ConnectionSvc.Workflow.IWorkflowMessageChannel.IsLocalConnection">
            <summary>
            Gets a value indicating whether the current connection is local.
            A local connection typically means that the connected device is on the same local network or within close proximity
            (e.g., via IP or Wi-Fi Direct),
            whereas a non-local connection indicates that the device is accessed over a wider network, such as the internet.
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.ConnectionSvc.Workflow.IWorkflowMessageChannel.InitializeAndOpenAsync">
            <summary>
            Initializes and opens the workflow message channel without cancellation token (legacy solution)
            Throws OperationCanceledException if canceled
            Throws InvalidOperationException if Open is called incorrectly
            </summary>
            <returns>Task completed on Open success</returns>
        </member>
        <member name="M:YourPhone.AppProxyConnection.ConnectionSvc.Workflow.IWorkflowMessageChannel.InitializeAndOpenAsync(System.Threading.CancellationToken)">
            <summary>
            Initializes and opens the workflow message channel with cancellation token (platform solution)
            Throws InvalidOperationException if Open is called incorrectly
            </summary>
            <returns>Task completed on Open success</returns>
        </member>
        <member name="T:YourPhone.AppProxyConnection.ConnectionSvc.Workflow.IWorkflowStarter">
            <summary>
            Encapsulates logic to start a workflow
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.ConnectionSvc.Workflow.IWorkflowStarter.StartAsync(System.String,System.Action{YourPhone.AppProxyConnection.ConnectionSvc.Workflow.IWorkflowMessageChannel},System.Threading.CancellationToken,System.String,System.Boolean,System.String)">
            <summary>
            Starts a workflow asynchronously
            WorkflowException may be fired for unexpected code issues, cancellations, or connection failures
            </summary>
            <param name="workflowName">Name of workflow to start</param>
            <param name="initializeAction">Opportunity to register listeners with the workflow message channel before open</param>
            <param name="cancellationToken">Cancel token to stop the connection while its still starting</param>
            <param name="activityName">Name of activity to start</param>
            <param name="forceNewConnection">Whether to force a new connection</param>
            <param name="messageChannelType">Optional message channel type override.</param>
            <returns>WorkflowMessageChannel to represent the workflow connection</returns>
        </member>
        <member name="M:YourPhone.AppProxyConnection.DatabaseManagement.Table.IHostedAppsIdTable.BackfillLegacyRows">
            <summary>
            Updates all rows with an empty device_id to the currently selected device.
            Called once after database initialization to migrate data from pre-v9 schema.
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.DatabaseManagement.Table.IHostedAppsIdTable.GetAllHostedAppIdsForDevice(System.String)">
            <summary>
            Returns every hosted app identity stored for <paramref name="deviceId"/>.
            Used by cleanup paths that need to operate on a device other than the currently
            selected one (e.g. a device that has just been removed from the store).
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.DatabaseManagement.Util.IHostedAppDatabaseUtil.GetHostedAppIdForPackageId(System.String)">
            <summary>
            Returns the hosted app identity for <paramref name="packageId"/> on the currently selected device,
            inserting a new row if one does not yet exist for that device.
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.DatabaseManagement.Util.IHostedAppDatabaseUtil.GetAllHostedAppIdsForDevice(System.String)">
            <summary>
            Returns every hosted app identity stored for <paramref name="deviceId"/>.
            Used by cleanup paths that need to operate on a device other than the currently selected one.
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.DatabaseManagement.Util.IHostedAppDatabaseUtil.GetLastVolumeLevelForPackageId(System.String)">
            <summary>
            Get last volume level that was saved in the database for <paramref name="packageId"/>
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.DatabaseManagement.Util.IHostedAppDatabaseUtil.SaveLastVolumeLevelForPackageId(System.String,System.Int32)">
            <summary>
            Save <paramref name="volumeLevel"/> in the database as the latest volume level <paramref name="packageId"/>
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.DatabaseManagement.Util.IHostedAppDatabaseUtil.GetLastIsMutedStateForPackageId(System.String)">
            <summary>
            Get last mute state that was saved in the database for <paramref name="packageId"/>
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.DatabaseManagement.Util.IHostedAppDatabaseUtil.SaveLastIsMutedStateForPackageId(System.String,System.Boolean)">
            <summary>
            Save <paramref name="isMuted"/> in the database as the latest mute state <paramref name="packageId"/>
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.DatabaseManagement.Util.IHostedAppDatabaseUtil.GetLastScreenLayout(System.String)">
            <summary>
            Get the last screen layout for the given <paramref name="hostedAppId"/>
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.DatabaseManagement.Util.IHostedAppDatabaseUtil.SaveScreenLayout(System.String,YourPhone.Contracts.AppProxyConnection.ScreenLayout)">
            <summary>
            Save the <paramref name="screenLayout"/> for the given <paramref name="hostedAppId"/>
            </summary>
        </member>
        <member name="T:YourPhone.AppProxyConnection.DragDrop.AppProxyOutputStream">
            <summary>
            Used as a Stream by APC, on write of bytes we send them to AP where they are written into the actual Stream
            </summary>
        </member>
        <member name="T:YourPhone.AppProxyConnection.Platform.EarlyMessagingPlatformChannelProvisioner">
             <summary>
             Provisions a messaging platform channel early on device connection.
            
             If a context handle is already available for the device, channel provisioning is triggered
             immediately. Otherwise, waits for a context handle to be published before triggering.
             Each new call cancels any pending wait from a prior call.
             </summary>
        </member>
        <member name="T:YourPhone.AppProxyConnection.Platform.IDeviceConnectionGate">
            <summary>
            Ensures the device (PL↔LTW) connection for the supplied device is established before
            subsequent operations that depend on it, e.g. platform channel creation. If the connectivity
            state is not Connected, invalidates any cached platform channel for that device, drives a
            reconnect, and re-verifies the state before returning.
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Platform.IDeviceConnectionGate.EnsureConnectedAsync(YourPhone.AppCore.WinRT.Devices.IDeviceData,System.Threading.CancellationToken)">
            <summary>
            Returns successfully if <paramref name="device"/> is already connected. Otherwise
            invalidates the cached platform channel for this device and triggers a reconnect.
            Throws <see cref="T:YourPhone.AppProxyConnection.Session.MessageChannel.WorkflowException"/>
            with reason <c>LostConnection</c> if the reconnect does not bring the state to Connected.
            </summary>
            <remarks>
            Callers are expected to be sequenced (typically via each flow manager's per-instance
            <c>ISingleRun</c>) so concurrent invocations for the same device are rare. The gate does
            not deduplicate concurrent reconnect attempts; if N callers race through the disconnected
            branch, N <c>ConnectAsync</c> requests will be sent. If a future entry point can fan out
            concurrently without outer sequencing, add a per-device in-flight <c>Task</c> cache here.
            </remarks>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Platform.IWorkflowMessagingPlatformChannelStore.EnsureChannelAsync(System.String,System.Threading.CancellationToken)">
            <summary>
            Ensures a messaging platform channel is available for the specified <paramref name="deviceId"/>.
            Callers are expected to snapshot the deviceId once up front and pass it here so the decision
            is made against a stable device identity, not a re-read of the global selected-device state.
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Platform.IWorkflowMessagingPlatformChannelStore.InvalidateChannel(System.String)">
            <summary>
            Invalidates any cached platform channel for <paramref name="deviceId"/> so the next
            <see cref="M:YourPhone.AppProxyConnection.Platform.IWorkflowMessagingPlatformChannelStore.EnsureChannelAsync(System.String,System.Threading.CancellationToken)"/> call recreates it. Used when the underlying PL connection
            has been lost without propagating ChannelClosed (e.g., user-initiated Disconnect in LTW).
            If the cached channel is for a different device, the call is a no-op.
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Platform.PlatformWorkflowMessageChannel.OnReset">
            <summary>
            Retires this workflow channel instance when the factory resets without disposing the
            underlying messaging platform channel, then detaches all event handlers so the reused
            platform channel stays clean for the next session.
            </summary>
        </member>
        <member name="T:YourPhone.AppProxyConnection.Platform.WorkflowMessagingPlatformChannelStore">
             <summary>
             Singleton store for the persistent <see cref="T:YourPhone.YPP.PlatformSdk.Transport.Channel.Messaging.IMessagingPlatformChannel"/> used across
             phone-mirroring workflow sessions.
            
             Lifetime semantics:
               - If channel creation is already in progress, <see cref="M:YourPhone.AppProxyConnection.Platform.WorkflowMessagingPlatformChannelStore.EnsureChannelAsync(System.String,System.Threading.CancellationToken)"/> returns
                 the same in-flight <see cref="T:System.Threading.Tasks.Task`1"/> to every concurrent caller.
               - If a valid channel already exists for the currently selected device (created but not
                 yet opened, or currently open), it is returned immediately without starting a new creation.
               - Otherwise a new creation is started and its task is stored for sharing.
            
             The channel is intentionally persistent and must not be explicitly closed or disposed by
             callers. When the channel is opened and subsequently closed, <see cref="M:YourPhone.AppProxyConnection.Platform.WorkflowMessagingPlatformChannelStore.OnChannelClosed(System.Object,YourPhone.YPP.PlatformSdk.Transport.Channel.ChannelClosedReason)"/>
             clears the stored task and disposes the channel so the next call starts a fresh creation.
             </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Platform.WorkflowMessagingPlatformChannelStore.EnsureChannelAsync(System.String,System.Threading.CancellationToken)">
            <summary>
            Ensures a messaging platform channel is available for the specified <paramref name="deviceId"/>.
            </summary>
            <param name="deviceId">Stable device identifier snapshotted by the caller.</param>
            <param name="cancellationToken">
            Token used only when a new channel creation is initiated; ignored for shared in-flight
            or cached tasks.
            </param>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Platform.WorkflowMessagingPlatformChannelStore.ScheduleAbandonedChannelCleanup(System.Threading.Tasks.Task{YourPhone.YPP.PlatformSdk.Transport.Channel.Messaging.IMessagingPlatformChannel})">
            <summary>
            Schedules disposal of the channel produced by an in-flight creation task whose owner is
            abandoning the reference. Also attaches a faulted-only continuation so the task's
            exception is observed and does not surface as an UnobservedTaskException.
            </summary>
        </member>
        <member name="T:YourPhone.AppProxyConnection.RemotingWorkflow.Services.IRemotingWorkflowLifecycleService">
            <summary>
            Remoting session describes the time while the user is remoting into the phone
            This interface represents lifecycle events of the remoting workflow
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.RemotingWorkflow.Services.IRemotingWorkflowLifecycleService.OnStarting(YourPhone.AppProxyConnection.RemotingWorkflow.Services.IStartParameters)">
            <summary>
            Called when the remoting session is starting and objects are initialized for the session
            </summary>
            <param name="startParameters">Contains objects associated with a new start of the session</param>
        </member>
        <member name="M:YourPhone.AppProxyConnection.RemotingWorkflow.Services.IRemotingWorkflowLifecycleService.OnStarted">
            <summary>
            Called when the remoting session has started
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.RemotingWorkflow.Services.IRemotingWorkflowLifecycleService.OnStopped(YourPhoneAppProxy.Core.Utils.Status.DisconnectionReason)">
            <summary>
            Called when the remoting session has stopped
            </summary>
        </member>
        <member name="T:YourPhone.AppProxyConnection.Services.IApplicationService">
            <summary>
            Service interface for the lifecycle events of AppProxyConnection
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Services.IApplicationService.OnInitialize">
            <summary>
            Called when the remoting session is starting and objects are initialized for the session
            Must be cautious about blocking calls as this is called during initialization of the module
            </summary>
        </member>
        <member name="P:YourPhone.AppProxyConnection.Session.BlobChannel.OutgoingItemInfoContext.DateTime">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.AppProxyConnection.Session.BlobChannel.OutgoingItemInfoContext.OutgoingItemInfo">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.AppProxyConnection.Session.BlobChannel.OutgoingItemInfoContext.Int64">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.AppProxyConnection.Session.BlobChannel.OutgoingItemInfoContext.String">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.AppProxyConnection.Session.BlobChannel.OutgoingItemInfoContext.Default">
            <summary>
            The default <see cref="T:System.Text.Json.Serialization.JsonSerializerContext"/> associated with a default <see cref="T:System.Text.Json.JsonSerializerOptions"/> instance.
            </summary>
        </member>
        <member name="P:YourPhone.AppProxyConnection.Session.BlobChannel.OutgoingItemInfoContext.GeneratedSerializerOptions">
            <summary>
            The source-generated options associated with this context.
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Session.BlobChannel.OutgoingItemInfoContext.#ctor">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Session.BlobChannel.OutgoingItemInfoContext.#ctor(System.Text.Json.JsonSerializerOptions)">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Session.BlobChannel.OutgoingItemInfoContext.GetTypeInfo(System.Type)">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Session.MessageChannel.IPermissionMessageChannelAdapter.CheckPermissionAsync(YourPhoneAppProxy.Core.Permission.PermissionType,System.Threading.CancellationToken)">
            <summary>
            Asks Android to check the permission status
            </summary>
            <param name="permissionType">type of permission to check</param>
            <param name="token">cancellation token</param>
            <returns>Returns PermissionStatus based on current permission status</returns>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Session.MessageChannel.IPermissionMessageChannelAdapter.ShowPermissionAsync(YourPhoneAppProxy.Core.Permission.PermissionType,System.Threading.CancellationToken)">
            <summary>
            Asks Android to show permission so user can provide input
            Its possible that the permission does not show on Android because the permission is disabled
            </summary>
            <param name="permissionType">type of permission to check</param>
            <param name="token">cancellation token</param>
            <returns>Returns user input from permission prompt on Android</returns>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Session.MessageChannel.IPermissionMessageChannelAdapter.LaunchSettingsAsync(YourPhoneAppProxy.Core.Permission.PermissionType,System.Threading.CancellationToken)">
            <summary>
            Asks Android to launch app settings so user can change the permission value
            Returns when the user changes the value, closes the app settings, the request times out, or a new request has been made
            </summary>
            <param name="permissionType">type of permission to check</param>
            <param name="token">cancellation token</param>
            <returns>Returns user input from permission prompt on Android</returns>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Session.MessageChannel.Permission.CombinedAudioPermissionFlowManager.EnsurePermissionFlowCompleteAsync(YourPhone.AppProxyConnection.Session.MessageChannel.Permission.IAudioPermissionManagerInstance,YourPhone.AppProxyConnection.Session.MessageChannel.Permission.IAudioPermissionManagerInstance,System.String,System.Threading.CancellationToken)">
            <summary>
            Triggers the appropriate audio streaming permission flow based on params provided.
            Set <paramref name="virtualDisplayInstance"/> to null if multiple apps is not supported.
            </summary>
        </member>
        <member name="T:YourPhone.AppProxyConnection.Session.StateMachine.IStateMachineWatcher`4">
            <summary>
            IStateMachineWatcher listens for state changes and ensures that the target
            state machine does not get stuck in an unexpected state.
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Session.StateMachine.IStateMachineWatcher`4.Initialize(YourPhone.AppProxyConnection.Session.StateMachine.IStateMachine{`0,`1,`2,`3},`2,`3,System.Int32,`0[])">
            <summary>Initialize the watcher with a target state machine.</summary>
            <param name="stateMachine">Target state machine</param>
            <param name="timeoutCommand">Command to be issued if the state machine spends
            longer than the <paramref name="delayInMs"/> in an invalid state.</param>
            <param name="timeoutDetails">Command details to be sent to the state machine if
            the timeout is reached</param>
            <param name="delayInMs">Maximum time without any transition out of an invalid state. Exceeding
            the delay causes the watcher to timeout and issue the <paramref name="timeoutCommand"/></param>
            <param name="invalidStates">List of states which are not valid long running states.
            Exceeding the <paramref name="delayInMs"/> while in one of theses states will cause a timeout</param>
        </member>
        <member name="P:YourPhone.AppProxyConnection.TransportContracts.TransportContentContext.DragRequestItemMessage">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.AppProxyConnection.TransportContracts.TransportContentContext.String">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.AppProxyConnection.TransportContracts.TransportContentContext.Default">
            <summary>
            The default <see cref="T:System.Text.Json.Serialization.JsonSerializerContext"/> associated with a default <see cref="T:System.Text.Json.JsonSerializerOptions"/> instance.
            </summary>
        </member>
        <member name="P:YourPhone.AppProxyConnection.TransportContracts.TransportContentContext.GeneratedSerializerOptions">
            <summary>
            The source-generated options associated with this context.
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.TransportContracts.TransportContentContext.#ctor">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.AppProxyConnection.TransportContracts.TransportContentContext.#ctor(System.Text.Json.JsonSerializerOptions)">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.AppProxyConnection.TransportContracts.TransportContentContext.GetTypeInfo(System.Type)">
            <inheritdoc/>
        </member>
        <member name="T:YourPhone.AppProxyConnection.Util.AsyncTransactionStore">
            <summary>
            This helps coordinate the request and response of messages where the request is fire and forget
            and a response comes another way. The relationship between the two messages is a transaction id.
            This helps connect the two together so the caller can expose an async method.
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Util.AsyncTransactionStore.StartTransaction``1(System.Nullable{System.Threading.CancellationToken})">
            <summary>
            This starts a transaction and returns a Task that can be waited on for transaction compmletion.
            </summary>
            <returns>AsyncTransaction that allows the caller to wait and get the transaction id</returns>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Util.AsyncTransactionStore.CompleteTransaction``1(System.String,``0)">
            <summary>
            This completes the transaction. The task returned when the transaction was started is completed.
            </summary>
            <param name="transactionId">Unique id that links to the start of the transaction</param>
            <param name="result">Value to return in the transaction</param>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Util.IFeatureUtils.IsAudioSupportedAndEnabled">
            <summary>
            Supported is whether phone supports audio
            Enabled is whether PC has EXP enabled
            </summary>
            <returns>whether audio code can run</returns>
        </member>
        <member name="T:YourPhone.AppProxyConnection.Util.IPeerConnectionTypeProvider">
            <summary>
            Holds the peer connection type for the current live nano connection so it can be attached to
            per-launch telemetry. The value is cached when the nano connection is established and cleared
            when it closes, covering both the platform nano and legacy native nano solutions. The
            establishing connection owner (the platform messaging channel store or the native connection
            service) is the sole writer, so at most one owner mutates the value at a time.
            </summary>
        </member>
        <member name="P:YourPhone.AppProxyConnection.Util.IPeerConnectionTypeProvider.PeerConnectionType">
            <summary>
            Gets the peer connection type for the current connection, or <see langword="null"/> when
            no connection is established or the type is unknown.
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Util.IPeerConnectionTypeProvider.Update(System.Nullable{System.Boolean})">
            <summary>
            Caches the peer connection type derived from the connection's local-connection state. A
            <see langword="null"/> value is treated as unknown and leaves the cached value unchanged.
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Util.IPeerConnectionTypeProvider.Reset">
            <summary>
            Clears the cached peer connection type when the nano connection closes.
            </summary>
        </member>
        <member name="T:YourPhone.AppProxyConnection.Util.ISingleRun">
             <summary>
             This class is used to ensure that a single method will run just once
             However, it may run again if the method throws or the object is Reset
            
             One example of this class's use if there is a method that creates a connection.
             If there are multiple calls to create that connection from different sources, then only one thread should
             actually create the connection, while the other threads wait for that thread's completion before continuing
            
             This class is thread safe
             </summary>
        </member>
        <member name="P:YourPhone.AppProxyConnection.Util.ISingleRun.CurrentRunTask">
            <summary>
            Returns the current run task so callers can check status without invoking a run
            Returns null if there is no current task
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Util.ISingleRun.RunAsync">
            <summary>
            Runs the single method if not yet run, or waits for a previous call to complete and returns on completion
            </summary>
            <returns>Returns a task to wait for completion</returns>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Util.ISingleRun.Reset">
            <summary>
            Resets the object so that runs are canceled and threads are released
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Util.PlatformNanoCapability.RefreshCdehVersionCompatibilityAsync">
            <summary>
            Refreshes the cached CDEH minimum-version compatibility read by <see cref="M:YourPhone.AppProxyConnection.Util.PlatformNanoCapability.UpdatePlatformNanoCapability(YourPhone.AppProxyConnection.Session.ISessionManager)"/>.
            The cached value is optimistic by default, so this refresh only demotes it (to fall back to the legacy
            solution) when an incompatible CDEH is detected. The package enumeration runs on a threadpool thread, so a
            caller awaiting this from the UI thread only schedules the work and is released at the await; the UI thread
            is never blocked by the enumeration. Concurrent calls are coalesced: if a refresh is already in flight, the
            call is skipped since the in-flight run already reads the latest package state.
            </summary>
        </member>
        <member name="T:Windows.Win32.System.Com.BINDPTR">
            <summary>Describes a pointer.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-bindptr">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.BINDPTR.lpfuncdesc">
            <summary>Pointer to a function.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.BINDPTR.lpvardesc">
            <summary>Pointer to a variable, constant, or data member.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.BINDPTR.lptcomp">
            <summary>The <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> that binds the pointer.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.BLOB">
            <summary>The BLOB structure (nspapi.h), which is derived from Binary Large Object, contains information about a block of data.</summary>
            <remarks>
            <para>The structure name <b>BLOB</b> comes from the acronym BLOB, which stands for Binary Large Object. This structure does not describe the nature of the data pointed to by <b>pBlobData</b>. <div class="alert"><b>Note</b>  Windows Sockets defines a similar <b>BLOB</b> structure in Wtypes.h. Using both header files in the same source code file creates redefinition–compile time errors.</div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/nspapi/ns-nspapi-blob#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.BLOB.cbSize">
            <summary>Size of the block of data pointed to by <b>pBlobData</b>, in bytes.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.BLOB.pBlobData">
            <summary>Pointer to a block of data.</summary>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG.Next(System.Span{Windows.Win32.System.Com.STATSTG},System.UInt32*)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG.Next(System.UInt32,Windows.Win32.System.Com.STATSTG*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG.Next(System.UInt32,Windows.Win32.System.Com.STATSTG*,System.UInt32*)">
            <summary>Retrieves a specified number of STATSTG structures, that follow in the enumeration sequence.</summary>
            <param name="celt">The number of <a href="https://docs.microsoft.com/windows/desktop/api/objidl/ns-objidl-statstg">STATSTG</a> structures requested.</param>
            <param name="rgelt">An array of <a href="https://docs.microsoft.com/windows/desktop/api/objidl/ns-objidl-statstg">STATSTG</a> structures returned.</param>
            <param name="pceltFetched">The number of <a href="https://docs.microsoft.com/windows/desktop/api/objidl/ns-objidl-statstg">STATSTG</a> structures  retrieved in the <i>rgelt</i> parameter.</param>
            <returns>
            <para>This method supports the following return values: </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-ienumstatstg-next">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG.Skip(System.UInt32)">
            <summary>Skips a specified number of STATSTG structures in the enumeration sequence.</summary>
            <param name="celt">The number of <a href="https://docs.microsoft.com/windows/desktop/api/objidl/ns-objidl-statstg">STATSTG</a> structures to skip.</param>
            <returns>
            <para>This method supports the following return values: | Return code | Description | |----------------|---------------| | S_OK | The specified number of **STATSTG** structures that were successfully skipped. | | S_FALSE | The number of **STATSTG** structures skipped is less than the *celt* parameter. |</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-ienumstatstg-skip">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG.Reset">
            <summary>Resets the enumeration sequence to the beginning of the STATSTG structure array.</summary>
            <returns>
            <para>This method supports the S_OK return value. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-ienumstatstg-reset">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG.Clone(Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG**)">
            <summary>Creates a new enumerator that contains the same enumeration state as the current STATSTG structure enumerator.</summary>
            <param name="ppenum">
            <para>A pointer to the variable that receives the  <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-ienumstatstg">IEnumSTATSTG</a> interface pointer. If the method is unsuccessful, the value of the <i>ppenum</i> parameter is undefined.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-ienumstatstg-clone#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method supports the following return values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-ienumstatstg-clone">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{0000000d-0000-0000-c000-000000000046}</value>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.CreateStream(System.String,Windows.Win32.System.Com.STGM,System.UInt32,System.UInt32,Windows.Win32.System.Com.IStream**)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.CreateStream(Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Com.STGM,System.UInt32,System.UInt32,Windows.Win32.System.Com.IStream**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.CreateStream(Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Com.STGM,System.UInt32,System.UInt32,Windows.Win32.System.Com.IStream**)">
            <summary>Creates and opens a stream object with the specified name contained in this storage object.</summary>
            <param name="pwcsName">A pointer to a wide character null-terminated Unicode string that contains the name of the newly created stream. The name can be used later to open or reopen the stream. The name must not exceed 31 characters in length, not including the string terminator. The 000 through 01f characters, serving as the first character of the stream/storage name, are reserved for use by OLE. This is a compound file restriction, not a structured storage restriction.</param>
            <param name="grfMode">Specifies the access mode to use when opening the newly created stream. For more information and descriptions of the possible values, see <a href="https://docs.microsoft.com/windows/desktop/Stg/stgm-constants">STGM Constants</a>.</param>
            <param name="reserved1">Reserved for future use; must be zero.</param>
            <param name="reserved2">Reserved for future use; must be zero.</param>
            <param name="ppstm">
            <para>On return, pointer to the location of the new <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-istream">IStream</a> interface pointer. This is only valid if the operation is successful. When an error occurs, this parameter is set to <b>NULL</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-createstream#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The new stream was successfully created.| |E_PENDING | Asynchronous Storage only: Part or all of the necessary data is currently unavailable. | |STG_E_ACCESSDENIED | Not enough permissions to create stream.| |STG_E_FILEALREADYEXISTS | The name specified for the stream already exists in the storage object and the *grfMode* parameter includes the value STGM_FAILIFTHERE.| |STG_E_INSUFFICIENTMEMORY | The stream was not created due to a lack of memory.| |STG_E_INVALIDFLAG | The value specified for the *grfMode* parameter is not a valid **STGM** constants value.| |STG_E_INVALIDFUNCTION | The specified combination of flags in the *grfMode* parameter is not supported; for example, when this method is called without the STGM_SHARE_EXCLUSIVE flag.| |STG_E_INVALIDNAME | Invalid value for *pwcsName*.| |STG_E_INVALIDPOINTER | The pointer specified for the stream object was invalid.| |STG_E_INVALIDPARAMETER | One of the parameters was invalid.| |STG_E_REVERTED | The storage object has been invalidated by a revert operation above it in the transaction tree.| |STG_E_TOOMANYOPENFILES | The stream was not created because there are too many open files.|</para>
            </returns>
            <remarks>
            <para>If a stream with the name specified in the <i>pwcsName</i> parameter already exists and the <i>grfMode</i> parameter includes the STGM_CREATE flag, the existing stream is replaced by a newly created one. Both the destruction of the old stream and the creation of the new stream object are subject to the transaction mode on the parent storage object. The COM-provided compound file implementation of the <b>IStorage::CreateStream</b> method does not support the following behaviors: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-createstream#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.OpenStream(System.String,Windows.Win32.System.Com.STGM,System.UInt32,Windows.Win32.System.Com.IStream**)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.OpenStream(Windows.Win32.Foundation.PCWSTR,System.Void*,Windows.Win32.System.Com.STGM,System.UInt32,Windows.Win32.System.Com.IStream**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.OpenStream(Windows.Win32.Foundation.PCWSTR,System.Void*,Windows.Win32.System.Com.STGM,System.UInt32,Windows.Win32.System.Com.IStream**)">
            <summary>Opens an existing stream object within this storage object in the specified access mode.</summary>
            <param name="pwcsName">A pointer to a wide character null-terminated Unicode string that contains the name of the stream to open. The 000 through 01f characters, serving as the first character of the stream/storage name, are reserved for use by OLE. This is a compound file restriction, not a structured storage restriction.</param>
            <param name="reserved1">Reserved for future use; must be <b>NULL</b>.</param>
            <param name="grfMode">Specifies the access mode to be assigned to the open stream. For more information and descriptions of possible values, see <a href="https://docs.microsoft.com/windows/desktop/Stg/stgm-constants">STGM Constants</a>.  Other modes you choose must at least specify STGM_SHARE_EXCLUSIVE when calling this method in the compound file implementation.</param>
            <param name="reserved2">Reserved for future use; must be zero.</param>
            <param name="ppstm">
            <para>A pointer to <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-istream">IStream</a> pointer variable that receives the interface pointer to the newly opened stream object. If an error occurs, *<i>ppstm</i> must be set to <b>NULL</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-openstream#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The stream was successfully opened.| |E_PENDING | Asynchronous Storage only: Part or all of the stream data is currently unavailable. | |STG_E_ACCESSDENIED | Not enough permissions to open stream.| |STG_E_FILENOTFOUND | The stream with specified name does not exist.| |STG_E_INSUFFICIENTMEMORY | The stream was not opened due to a lack of memory.| |STG_E_INVALIDFLAG | The value specified for the *grfMode* parameter is not a valid **STGM** constants value.| |STG_E_INVALIDFUNCTION | The specified combination of flags in the *grfMode* parameter is not supported; for example, when this method is called without the STGM_SHARE_EXCLUSIVE flag.| |STG_E_INVALIDNAME | Invalid value for *pwcsName*.| |STG_E_INVALIDPOINTER | The pointer specified for the stream object was not valid.| |STG_E_INVALIDPARAMETER | One of the parameters was not valid.| |STG_E_REVERTED | The storage object has been invalidated by a revert operation above it in the transaction tree.| |STG_E_TOOMANYOPENFILES | The stream was not opened because there are too many open files.|</para>
            </returns>
            <remarks><b>IStorage::OpenStream</b> opens an existing stream object within this storage object in the access mode specified in <i>grfMode</i>. There are restrictions on the permissions that can be given in <i>grfMode</i>. For example, the permissions on this storage object restrict the permissions on its streams. In general, access restrictions on streams need to be stricter than those on their parent storages. Compound-file streams must be opened with STGM_SHARE_EXCLUSIVE.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.CreateStorage(System.String,Windows.Win32.System.Com.STGM,System.UInt32,System.UInt32,Windows.Win32.System.Com.StructuredStorage.IStorage**)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.CreateStorage(Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Com.STGM,System.UInt32,System.UInt32,Windows.Win32.System.Com.StructuredStorage.IStorage**)"/>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Windows.Win32.System.Com.StructuredStorage.IStorage.CreateStorage(Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Com.STGM,System.UInt32,System.UInt32,Windows.Win32.System.Com.StructuredStorage.IStorage**)" -->
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.OpenStorage(System.String,Windows.Win32.System.Com.StructuredStorage.IStorage*,Windows.Win32.System.Com.STGM,System.UInt16*@,System.UInt32,Windows.Win32.System.Com.StructuredStorage.IStorage**)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.OpenStorage(Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Com.StructuredStorage.IStorage*,Windows.Win32.System.Com.STGM,System.UInt16**,System.UInt32,Windows.Win32.System.Com.StructuredStorage.IStorage**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.OpenStorage(Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Com.StructuredStorage.IStorage*,Windows.Win32.System.Com.STGM,System.UInt16**,System.UInt32,Windows.Win32.System.Com.StructuredStorage.IStorage**)">
            <summary>Opens an existing storage object with the specified name in the specified access mode.</summary>
            <param name="pwcsName">A pointer to a wide character null-terminated Unicode string that contains the name of the storage object to open. The 000 through 01f characters, serving as the first character of the stream/storage name, are reserved for use by OLE. This is a compound file restriction, not a structured storage restriction. It is ignored if <i>pstgPriority</i> is non-<b>NULL</b>.</param>
            <param name="pstgPriority">Must be <b>NULL</b>. A non-<b>NULL</b> value will return STG_E_INVALIDPARAMETER.</param>
            <param name="grfMode">Specifies the access mode to use when opening the storage object. For descriptions of the possible values, see <a href="https://docs.microsoft.com/windows/desktop/Stg/stgm-constants">STGM Constants</a>. Other modes you choose must at least specify STGM_SHARE_EXCLUSIVE when calling this method.</param>
            <param name="snbExclude">Must be <b>NULL</b>. A non-<b>NULL</b> value will return STG_E_INVALIDPARAMETER.</param>
            <param name="reserved">Reserved for future use; must be zero.</param>
            <param name="ppstg">
            <para>When successful, pointer to the location of an <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-istorage">IStorage</a> pointer to the opened storage object. This parameter is set to <b>NULL</b> if an error occurs.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-openstorage#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The storage object was opened successfully.| |E_PENDING | Asynchronous Storage only: Part or all of the storage's data is currently unavailable. | |STG_E_ACCESSDENIED | Not enough permissions to open storage object.| |STG_E_FILENOTFOUND | The storage object with the specified name does not exist.| |STG_E_INSUFFICIENTMEMORY | The storage object was not opened due to a lack of memory.| |STG_E_INVALIDFLAG | The value specified for the *grfMode* parameter is not a valid **STGM** constants value.| |STG_E_INVALIDFUNCTION | The specified combination of flags in the *grfMode* parameter is not supported.| |STG_E_INVALIDNAME | Not a valid value for *pwcsName*.| |STG_E_INVALIDPOINTER | The pointer specified for the storage object was not valid.| |STG_E_INVALIDPARAMETER | One of the parameters was not valid.| |STG_E_REVERTED | The storage object has been invalidated by a revert operation above it in the transaction tree.| |STG_E_TOOMANYOPENFILES | The storage object was not created because there are too many open files.| |STG_S_CONVERTED | The existing stream with the specified name was replaced with a new storage object containing a single stream called CONTENTS. In direct mode, the new storage is immediately written to disk. In transacted mode, the new storage is written to a temporary storage in memory and later written to disk when it is committed.|</para>
            </returns>
            <remarks>
            <para>If the <i>pstgPriority</i> parameter is <b>NULL</b>, it is ignored. If the <i>pstgPriority</i> parameter is not <b>NULL</b>, it is an <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-istorage">IStorage</a> pointer to a previous opening of an element of the storage object, usually one that was opened in priority mode. The storage object should be closed and reopened according to <i>grfMode</i>. When the <b>IStorage::OpenStorage</b> method returns, <i>pstgPriority</i> is no longer valid. Use the value supplied in the <i>ppstg</i> parameter. Storage objects can be opened with STGM_DELETEONRELEASE, in which case the object is destroyed when it receives its final release. This is useful for creating temporary storage objects.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-openstorage#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.CopyTo(System.ReadOnlySpan{System.Guid},System.UInt16**,Windows.Win32.System.Com.StructuredStorage.IStorage*)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.CopyTo(System.UInt32,System.Guid*,System.UInt16**,Windows.Win32.System.Com.StructuredStorage.IStorage*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.CopyTo(System.UInt32,System.Guid*,System.UInt16**,Windows.Win32.System.Com.StructuredStorage.IStorage*)">
            <summary>Copies the entire contents of an open storage object to another storage object.</summary>
            <param name="ciidExclude">The number of elements in the array pointed to by <i>rgiidExclude</i>. If <i>rgiidExclude</i> is <b>NULL</b>, then <i>ciidExclude</i> is ignored.</param>
            <param name="rgiidExclude">
            <para>An array of interface identifiers (IIDs) that either the caller knows about and does not want copied or that the storage object does not support, but whose state the caller will later explicitly copy. The array can include <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-istorage">IStorage</a>, indicating that only stream objects are to be copied, and <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-istream">IStream</a>, indicating that only storage objects are to be copied. An array length of zero indicates that only the state exposed by the <b>IStorage</b> object is to be copied; all other interfaces on the object are to be ignored. Passing <b>NULL</b> indicates that all interfaces on the object are to be copied.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-copyto#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="snbExclude">
            <para>A string name block (refer to <a href="https://docs.microsoft.com/windows/desktop/Stg/snb">SNB</a>) that specifies a block of storage or stream objects that are not to be copied to the destination. These elements are not created at the destination. If <b>IID_IStorage</b> is in the <i>rgiidExclude</i> array, this parameter is ignored. This parameter may be <b>NULL</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-copyto#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="pstgDest">
            <para>A pointer to the open storage object into which this storage object is to be copied. The destination storage object can be a different implementation of the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-istorage">IStorage</a> interface from the source storage object. Thus, <b>IStorage::CopyTo</b> can use only publicly available methods of the destination storage object. If <i>pstgDest</i> is open in transacted mode, it can be reverted by calling its <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istorage-revert">IStorage::Revert</a> method.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-copyto#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The storage object was successfully copied.| |E_PENDING | Asynchronous Storage only: Part or all of the data to be copied is currently unavailable. | |STG_E_ACCESSDENIED | The destination storage object is a child of the source storage object.| |STG_E_INSUFFICIENTMEMORY | The copy was not completed due to a lack of memory.| |STG_E_INVALIDPOINTER | The pointer specified for the storage object was not valid.| |STG_E_INVALIDPARAMETER | One of the parameters was not valid.| |STG_E_TOOMANYOPENFILES | The copy was not completed because there are too many open files.| |STG_E_REVERTED | The storage object has been invalidated by a revert operation above it in the transaction tree.| |STG_E_MEDIUMFULL | The copy was not completed because the storage medium is full.|</para>
            </returns>
            <remarks>
            <para>This method merges elements contained in the source storage object with those already present in the destination. The layout of the destination storage object may differ from the source storage object. The copy process is recursive, invoking <b>IStorage::CopyTo</b> and <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istream-copyto">IStream::CopyTo</a> on the elements nested inside the source. When copying a stream on top of an existing stream with the same name, the existing stream is first removed and then replaced with the source stream. When copying a storage on top of an existing storage with the same name, the existing storage is not removed. As a result, after the copy operation, the destination <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-istorage">IStorage</a> contains older elements, unless they were replaced by newer ones with the same names. A storage object may expose interfaces other than <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-istorage">IStorage</a>, including <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-irootstorage">IRootStorage</a>, <a href="https://docs.microsoft.com/windows/desktop/api/propidl/nn-propidl-ipropertystorage">IPropertyStorage</a>, or <a href="https://docs.microsoft.com/windows/desktop/api/propidl/nn-propidl-ipropertysetstorage">IPropertySetStorage</a>. The <i>rgiidExclude</i> parameter permits the exclusion of any or all of these additional interfaces from the copy operation. A caller with a newer or more efficient copy of an existing substorage or stream object may want to exclude the current versions of these objects from the copy operation. The <i>snbExclude</i> and <i>rgiidExclude</i> parameters provide two ways of excluding a storage objects existing storages or streams. <h3><a id="Note_to_Callers"></a><a id="note_to_callers"></a><a id="NOTE_TO_CALLERS"></a>Note to Callers</h3> The most common way to use the <b>IStorage::CopyTo</b> method is to copy everything from the source to the destination, as in most full-save and save-as operations. The following  example code shows how to copy everything  from the source storage object to the destination storage object.</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-copyto#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.MoveElementTo(System.String,Windows.Win32.System.Com.StructuredStorage.IStorage*,System.String,System.UInt32)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.MoveElementTo(Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Com.StructuredStorage.IStorage*,Windows.Win32.Foundation.PCWSTR,System.UInt32)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.MoveElementTo(Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Com.StructuredStorage.IStorage*,Windows.Win32.Foundation.PCWSTR,System.UInt32)">
            <summary>The MoveElementTo method copies or moves a substorage or stream from this storage object to another storage object.</summary>
            <param name="pwcsName">Pointer to a wide character null-terminated Unicode string that contains the name of the element in this storage object to be moved or copied.</param>
            <param name="pstgDest"><a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-istorage">IStorage</a> pointer to the destination storage object.</param>
            <param name="pwcsNewName">Pointer to a wide character null-terminated unicode string that contains the new name for the element in its new storage object.</param>
            <param name="grfFlags">
            <para>Specifies whether the operation should be a move (STGMOVE_MOVE) or a copy (STGMOVE_COPY). See the <a href="https://docs.microsoft.com/windows/desktop/api/wtypes/ne-wtypes-stgmove">STGMOVE</a> enumeration.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-moveelementto#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The storage object was successfully copied or moved.| |E_PENDING | Asynchronous Storage only: Part or all of the element's data is currently unavailable. | |STG_E_ACCESSDENIED | The destination storage object is a child of the source storage object. Or, the destination object and element name are the same as the source object and element name. In other words, you cannot move an element to itself.| |STG_E_FILENOTFOUND | The element with the specified name does not exist.| |STG_E_FILEALREADYEXISTS | The specified file already exists.| |STG_E_INSUFFICIENTMEMORY | The copy or move was not completed due to a lack of memory.| |STG_E_INVALIDFLAG | The value for the *grfFlags* parameter is not valid.| |STG_E_INVALIDNAME | Not a valid value for *pwcsName*.| |STG_E_INVALIDPOINTER | The pointer specified for the storage object was not valid.| |STG_E_INVALIDPARAMETER | One of the parameters was not valid.| |STG_E_REVERTED | The storage object has been invalidated by a revert operation above it in the transaction tree.| |STG_E_TOOMANYOPENFILES | The copy or move was not completed because there are too many open files.|</para>
            </returns>
            <remarks>
            <para>The <b>IStorage::MoveElementTo</b> method is typically the same as invoking the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istorage-copyto">IStorage::CopyTo</a> method on the indicated element and then removing the source element. In this case, the <b>MoveElementTo</b> method uses only the publicly available functions of the destination storage object to carry out the move. If the source and destination storage objects have special knowledge about each other's implementation (they could, for example, be different instances of the same implementation), this method can be implemented more efficiently. Before calling this method, the element to be moved must be closed, and the destination storage must be open. Also, the destination object and element cannot be the same storage object/element name as the source of the move. That is, you cannot move an element to itself.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-moveelementto#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Commit(System.UInt32)">
            <summary>The Commit method ensures that any changes made to a storage object open in transacted mode are reflected in the parent storage.</summary>
            <param name="grfCommitFlags">
            <para>Controls how the changes are committed to the storage object. See the <a href="https://docs.microsoft.com/windows/desktop/api/wtypes/ne-wtypes-stgc">STGC</a> enumeration for a definition of these values.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-commit#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | Changes to the storage object were successfully committed to the parent level. If STGC_CONSOLIDATE was specified, the storage was successfully consolidated, or the storage was already too compact to consolidate further.| |STG_S_MULTIPLEOPENS | The commit operation succeeded, but the storage could not be consolidated because it had been opened multiple times using the STGM_NOSNAPSHOT flag.| |STG_S_CANNOTCONSOLIDATE | The commit operation succeeded, but the storage could not be consolidated due to an incorrect storage mode. For compound files, the storage may have been opened using the STGM_NOSCRATCH flag, or the storage may not be the outermost transacted level.| |STG_S_CONSOLIDATIONFAILED | The commit operation succeeded, but the storage could not be consolidated due to an internal error (for example, a memory allocation failure).| |E_PENDING | Asynchronous storage only: Part or all of the data to be committed is currently unavailable.| |STG_E_INVALIDFLAG | The value for the *grfCommitFlags* parameter is not valid.| |STG_E_INVALIDPARAMETER | One of the parameters was not valid.| |STG_E_NOTCURRENT | Another open instance of the storage object has committed changes. As a result, the current commit operation may overwrite previous changes.| |STG_E_MEDIUMFULL | No space left on device to commit.| |STG_E_TOOMANYOPENFILES | The commit operation could not be completed because there are too many open files.| |STG_E_REVERTED | The storage object has been invalidated by a revert operation above it in the transaction tree.|</para>
            </returns>
            <remarks>
            <para><b>IStorage::Commit</b> makes permanent changes to a storage object that is in transacted mode, in which changes are accumulated in a buffer, and not reflected in the storage object until there is a call to this method. The alternative is to open an object in direct mode, in which changes are immediately reflected in the storage object. An object opened in the direct mode does not require calling <b>IStorage::Commit</b> to make permanent changes in the storage object. Calling the <b>IStorage::Commit</b> method on a nonroot storage opened in direct mode has no effect. Opening a root storage object in direct mode ensures that changes in memory buffers are written to the underlying storage device. The commit operation publishes the current changes in this storage object and its children to the next level up in the storage hierarchy. To undo current changes before committing them, call <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istorage-revert">IStorage::Revert</a> to roll back to the last-committed version. Calling <b>IStorage::Commit</b> has no effect on currently opened nested elements of this storage object. They remain valid and can be used. However, the <b>IStorage::Commit</b> method does not automatically commit changes to these nested elements. The commit operation publishes only known changes to the next higher level in the storage hierarchy. Thus, transactions to nested levels must be committed to this storage object before they can be committed to higher levels. In commit operations, you need to take steps to ensure that data is protected during the commit process: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-commit#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Revert">
            <summary>The Revert method discards all changes that have been made to the storage object since the last commit operation.</summary>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The revert operation was successful.| |E_PENDING | Asynchronous Storage only: Part or all of the storage's data is currently unavailable. | |STG_E_INSUFFICIENTMEMORY | The revert operation could not be completed due to a lack of memory.| |STG_E_TOOMANYOPENFILES | The revert operation could not be completed because there are too many open files.| |STG_E_REVERTED | The storage object has been invalidated by a revert operation above it in the transaction tree.|</para>
            </returns>
            <remarks>
            <para>For storage objects opened in transacted mode, the <b>IStorage::Revert</b> method discards any uncommitted changes to this storage object or changes that have been committed to this storage object from nested elements. After this method returns, any existing elements (substorages or streams) that were opened from the reverted storage object are invalid and can no longer be used. Specifying these reverted elements in any call except <a href="https://docs.microsoft.com/windows/desktop/api/unknwn/nf-unknwn-iunknown-release">IUnknown::Release</a> returns the error STG_E_REVERTED This method has no effect on storage objects opened in direct mode.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-revert#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.EnumElements(Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG**)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.EnumElements(System.UInt32,System.Void*,System.UInt32,Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.EnumElements(System.UInt32,System.Void*,System.UInt32,Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG**)">
            <summary>The EnumElements method retrieves a pointer to an enumerator object that can be used to enumerate the storage and stream objects contained within this storage object.</summary>
            <param name="reserved1">Reserved for future use; must be zero.</param>
            <param name="reserved2">Reserved for future use; must be <b>NULL</b>.</param>
            <param name="reserved3">Reserved for future use; must be zero.</param>
            <param name="ppenum">
            <para>Pointer to <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-ienumstatstg">IEnumSTATSTG</a>* pointer variable that receives the interface pointer to the new enumerator object.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-enumelements#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The enumerator object was successfully returned.| |E_PENDING | Asynchronous Storage only: Part or all of the element's data is currently unavailable.| |STG_E_INSUFFICIENTMEMORY | The enumerator object could not be created due to lack of memory.| |STG_E_INVALIDPARAMETER | One of the parameters was not valid.| |STG_E_REVERTED | The storage object has been invalidated by a revert operation above it in the transaction tree.|</para>
            </returns>
            <remarks>
            <para>The enumerator object returned by this method implements the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-ienumstatstg">IEnumSTATSTG</a> interface, one of the standard enumerator interfaces that contain the <b>Next</b>, <b>Reset</b>, <b>Clone</b>, and <b>Skip</b> methods. <b>IEnumSTATSTG</b> enumerates the data stored in an array of <a href="https://docs.microsoft.com/windows/desktop/api/objidl/ns-objidl-statstg">STATSTG</a> structures. The storage object must be open in read mode to allow the enumeration of its elements. The enumerator object is permitted to enumerate the elements in any order. The enumerator object is also permitted to treat the enumeration as a snapshot or to have the enumeration reflect the current state of the storage object.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-enumelements#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.DestroyElement(System.String)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.DestroyElement(Windows.Win32.Foundation.PCWSTR)"/>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Windows.Win32.System.Com.StructuredStorage.IStorage.DestroyElement(Windows.Win32.Foundation.PCWSTR)" -->
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.RenameElement(System.String,System.String)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.RenameElement(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.RenameElement(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR)">
            <summary>The RenameElement method renames the specified substorage or stream in this storage object.</summary>
            <param name="pwcsOldName">
            <para>Pointer to a wide character null-terminated Unicode string that contains the name of the substorage or stream to be changed. <div class="alert"><b>Note</b>  The <i>pwcsName</i>, created in <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istorage-createstorage">CreateStorage</a> or <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istorage-createstream">CreateStream</a> must not exceed 31 characters in length, not including the string terminator.</div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-renameelement#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="pwcsNewName">
            <para>Pointer to a wide character null-terminated unicode string that contains the new name for the specified substorage or stream. <div class="alert"><b>Note</b>  The <i>pwcsName</i>, created in <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istorage-createstorage">CreateStorage</a> or <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istorage-createstream">CreateStream</a> must not exceed 31 characters in length, not including the string terminator.</div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-renameelement#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The element was successfully renamed.| |E_PENDING | Asynchronous Storage only: Part or all of the element's data is currently unavailable.| |STG_E_ACCESSDENIED | The caller does not have enough permissions for renaming the element.| |STG_E_FILENOTFOUND | The element with the specified old name does not exist.| |STG_E_FILEALREADYEXISTS | The element specified by the new name already exists.| |STG_E_INSUFFICIENTMEMORY | The element was not renamed due to a lack of memory.| |STG_E_INVALIDNAME | Invalid value for one of the names.| |STG_E_INVALIDPOINTER | The pointer specified for the element was not valid.| |STG_E_INVALIDPARAMETER | One of the parameters was not valid.| |STG_E_REVERTED | The storage object has been invalidated by a revert operation above it in the transaction tree.| |STG_E_TOOMANYOPENFILES | The element was not renamed because there are too many open files.|</para>
            </returns>
            <remarks>
            <para><b>IStorage::RenameElement</b> renames the specified substorage or stream in this storage object. An element in a storage object cannot be renamed while it is open. The rename operation is subject to committing the changes if the storage is open in transacted mode. The <b>IStorage::RenameElement</b> method is not guaranteed to work in low memory with storage objects open in transacted mode. It may work in direct mode.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-renameelement#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.SetElementTimes(System.String,System.Runtime.InteropServices.ComTypes.FILETIME@,System.Runtime.InteropServices.ComTypes.FILETIME@,System.Runtime.InteropServices.ComTypes.FILETIME@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.SetElementTimes(Windows.Win32.Foundation.PCWSTR,System.Runtime.InteropServices.ComTypes.FILETIME*,System.Runtime.InteropServices.ComTypes.FILETIME*,System.Runtime.InteropServices.ComTypes.FILETIME*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.SetElementTimes(Windows.Win32.Foundation.PCWSTR,System.Runtime.InteropServices.ComTypes.FILETIME*,System.Runtime.InteropServices.ComTypes.FILETIME*,System.Runtime.InteropServices.ComTypes.FILETIME*)">
            <summary>The SetElementTimes method sets the modification, access, and creation times of the specified storage element, if the underlying file system supports this method.</summary>
            <param name="pwcsName">The name of the storage object element whose times are to be modified. If <b>NULL</b>, the time is set on the root storage rather than one of its elements.</param>
            <param name="pctime">Either the new creation time for the element or <b>NULL</b> if the creation time is not to be modified.</param>
            <param name="patime">Either the new access time for the element or <b>NULL</b> if the access time is not to be modified.</param>
            <param name="pmtime">Either the new modification time for the element or <b>NULL</b> if the modification time is not to be modified.</param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The time values were successfully set.| |E_PENDING | Asynchronous Storage only: Part or all of the element's data is currently unavailable.| |STG_E_ACCESSDENIED | The caller does not have enough permissions for changing the element.| |STG_E_FILENOTFOUND | The element with the specified name does not exist.| |STG_E_INSUFFICIENTMEMORY | The element was not changed due to a lack of memory.| |STG_E_INVALIDNAME | Not a valid value for the element name.| |STG_E_INVALIDPOINTER | The pointer specified for the element was not valid.| |STG_E_INVALIDPARAMETER | One of the parameters was not valid.| |STG_E_TOOMANYOPENFILES | The element was not changed because there are too many open files.| |STG_E_REVERTED | The storage object has been invalidated by a revert operation above it in the transaction tree.|</para>
            </returns>
            <remarks>
            <para><b>SetElementTimes</b>  sets time statistics for the specified storage element within this storage object. Not all file systems support all the time values. This method sets those times that are supported and ignores the rest. Each time-value parameter can be <b>NULL</b>; indicating that no modification should occur. Call the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istorage-stat">IStorage::Stat</a> method to retrieve these time values.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-setelementtimes#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.SetClass(System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.SetClass(System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.SetClass(System.Guid*)">
            <summary>The SetClass method assigns the specified class identifier (CLSID) to this storage object.</summary>
            <param name="clsid">The CLSID that is to be associated with the storage object.</param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The CLSID was successfully assigned.| |E_PENDING | Asynchronous Storage only: Part or all of the storage's data is currently unavailable.| |STG_E_ACCESSDENIED | The caller does not have enough permissions for assigning a CLSID to the storage object.| |STG_E_MEDIUMFULL | Not enough space was left on device to complete the operation.| |STG_E_REVERTED | The storage object has been invalidated by a revert operation above it in the transaction tree.|</para>
            </returns>
            <remarks>
            <para>When first created, a storage object has an associated CLSID of CLSID_NULL. Call <b>SetClass</b> to assign a CLSID to the storage object. Call the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istorage-stat">IStorage::Stat</a> method to retrieve the current CLSID of a storage object.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-setclass#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.SetStateBits(System.UInt32,System.UInt32)">
            <summary>The SetStateBits method stores up to 32 bits of state information in this storage object.</summary>
            <param name="grfStateBits">Specifies the new values of the bits to set. No legal values are defined for these bits; they are all reserved for future use and must not be used by applications.</param>
            <param name="grfMask">A binary mask indicating which bits in <i>grfStateBits</i> are significant in this call.</param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The state information was successfully set.| |E_PENDING | Asynchronous Storage only: Part or all of the storage's data is currently unavailable. | |STG_E_ACCESSDENIED | The caller does not have enough permissions for changing this storage object.| |STG_E_INVALIDFLAG | The value for the grfStateBits or *grfMask* parameter is not valid.| |STG_E_INVALIDPARAMETER | One of the parameters was not valid.|</para>
            </returns>
            <remarks>The values for the state bits are not currently defined.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Stat(Windows.Win32.System.Com.STATSTG@,System.UInt32)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Stat(Windows.Win32.System.Com.STATSTG*,System.UInt32)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Stat(Windows.Win32.System.Com.STATSTG*,System.UInt32)">
            <summary>The Stat method retrieves the STATSTG structure for this open storage object.</summary>
            <param name="pstatstg">
            <para>On return, pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/objidl/ns-objidl-statstg">STATSTG</a> structure where this method places information about the open storage object. This parameter is <b>NULL</b> if an error occurs.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-stat#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="grfStatFlag">
            <para>Specifies that some of the members in the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/ns-objidl-statstg">STATSTG</a> structure are not returned, thus saving a memory allocation operation. Values are taken from the <a href="https://docs.microsoft.com/windows/desktop/api/wtypes/ne-wtypes-statflag">STATFLAG</a> enumeration.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-stat#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The STATSTG structure was successfully returned at the specified location.| |E_PENDING | Asynchronous Storage only: Part or all of the storage's data is currently unavailable.| |STG_E_ACCESSDENIED | The caller does not have enough permissions for accessing statistics for this storage object.| |STG_E_INSUFFICIENTMEMORY | The STATSTG structure was not returned due to a lack of memory.| |STG_E_INVALIDFLAG | The value for the *grfStateFlag* parameter is not valid.| |STG_E_INVALIDPARAMETER | One of the parameters was not valid.|</para>
            </returns>
            <remarks>
            <para><b>IStorage::Stat</b> retrieves the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/ns-objidl-statstg">STATSTG</a> structure for the current storage object. The <b>STATSTG</b> structure contains statistical information about the storage object. <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istorage-enumelements">IStorage::EnumElements</a> returns a pointer to an enumerator object. The enumerator object returned by this method implements the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-ienumstatstg">IEnumSTATSTG</a> interface, through which the data stored in the array of the <b>STATSTG</b> structures is enumerated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istorage-stat#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.StructuredStorage.IStorage.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{0000000b-0000-0000-c000-000000000046}</value>
        </member>
        <member name="T:Windows.Win32.System.Com.StructuredStorage.PROPVARIANT">
            <summary>The PROPVARIANT structure is used in the ReadMultiple and WriteMultiple methods of IPropertyStorage to define the type tag and the value of a property in a property set.</summary>
            <remarks>
            <para>The <b>PROPVARIANT</b> structure can also hold a value of <b>VT_DECIMAL</b>:</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/propidlbase/ns-propidlbase-propvariant#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="T:Windows.Win32.System.Com.CALLCONV">
            <summary>Identifies the calling convention used by a member function described in the METHODDATA structure.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-callconv">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_FASTCALL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_CDECL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_MSCPASCAL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_PASCAL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_MACPASCAL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_STDCALL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_FPFASTCALL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_SYSCALL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_MPWCDECL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_MPWPASCAL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_MAX">
            <summary></summary>
        </member>
        <member name="T:Windows.Win32.System.Com.CY">
            <summary>The CY structure is useful for calculations involving money, or for any fixed-point calculation where accuracy is particularly important.</summary>
            <remarks></remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.CY.int64">
            <summary></summary>
        </member>
        <member name="T:Windows.Win32.System.Com.DESCKIND">
            <summary>Identifies the type description being bound to.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-desckind">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.DESCKIND.DESCKIND_NONE">
            <summary>No match was found.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DESCKIND.DESCKIND_FUNCDESC">
            <summary>A <a href="https://docs.microsoft.com/windows/desktop/api/oaidl/ns-oaidl-funcdesc">FUNCDESC</a> was returned.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DESCKIND.DESCKIND_VARDESC">
            <summary>A <a href="https://docs.microsoft.com/windows/desktop/api/oaidl/ns-oaidl-vardesc">VARDESC</a> was returned.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DESCKIND.DESCKIND_TYPECOMP">
            <summary>A TYPECOMP was returned.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DESCKIND.DESCKIND_IMPLICITAPPOBJ">
            <summary>An IMPLICITAPPOBJ was returned.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DESCKIND.DESCKIND_MAX">
            <summary>The end of the enum.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.DISPPARAMS">
            <summary>Contains the arguments passed to a method or property.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-dispparams">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.DISPPARAMS.rgvarg">
            <summary>
            <para>An array of arguments. **Note**: these arguments appear in reverse order</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-dispparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DISPPARAMS.rgdispidNamedArgs">
            <summary>The dispatch IDs of the named arguments.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DISPPARAMS.cArgs">
            <summary>The number of arguments.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DISPPARAMS.cNamedArgs">
            <summary>The number of named arguments.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.ELEMDESC">
            <summary>The ELEMDESC structure contains the type description and process-transfer information for a variable, a function, or a function parameter. (ELEMDESC)</summary>
            <remarks></remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.ELEMDESC.tdesc">
            <summary>The type of the element.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.EXCEPINFO">
            <summary>Describes an exception that occurred during IDispatch::Invoke.</summary>
            <remarks>
            <para>Use the <b>pfnDeferredFillIn</b> field to enable an object to defer filling in the <b>bstrDescription</b>, <b>bstrHelpFile</b>, and <b>dwHelpContext</b> fields until they are needed. This field might be used, for example, if loading the string for the error is a time-consuming operation. To use deferred fill-in, the object puts a function pointer in this slot and does not fill any of the other fields except <b>wCode</b>, which is required. To get additional information, the caller passes the <b>EXCEPINFO</b> structure back to the <b>pexcepinfo</b> callback function, which fills in the additional information. When the ActiveX object and the ActiveX client are in different processes, the ActiveX object calls <b>pfnDeferredFillIn</b> before returning to the controller.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-excepinfo#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.wCode">
            <summary>The error code. Error codes should be greater than 1000. Either this field or the scode field must be filled in; the other must be set to 0.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.wReserved">
            <summary>Reserved. Should be 0.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.bstrSource">
            <summary>The name of the exception source. Typically, this is an application name. This field should be filled in by the implementer of <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a>.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.bstrDescription">
            <summary>The exception description to display. If no description is available, use null.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.bstrHelpFile">
            <summary>The fully qualified help file path. If no Help is available, use null.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.dwHelpContext">
            <summary>The help context ID.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.pvReserved">
            <summary>Reserved. Must be null.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.pfnDeferredFillIn">
            <summary>Provides deferred fill-in. If deferred fill-in is not desired, this field should be set to null.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.scode">
            <summary>A return value that describes the error. Either this field or wCode (but not both) must be filled in; the other must be set to 0. (16-bit Windows versions only.)</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.FUNCDESC">
            <summary>Describes a function. (FUNCDESC)</summary>
            <remarks>
            <para>The <b>cParams</b> field specifies the total number of required and optional parameters.</para>
            <para>The <b>cParamsOpt</b> field specifies the form of optional parameters accepted by the function, as follows: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-funcdesc#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.memid">
            <summary>The function member ID.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.lprgscode">
            <summary>The status code.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.lprgelemdescParam">
            <summary>Description of the element.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.funckind">
            <summary>Indicates the type of function (virtual, static, or dispatch-only).</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.invkind">
            <summary>The invocation type. Indicates whether this is a property function, and if so, which type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.callconv">
            <summary>The calling convention.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.cParams">
            <summary>The total number of parameters.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.cParamsOpt">
            <summary>The number of optional parameters.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.oVft">
            <summary>For FUNC_VIRTUAL, specifies the offset in the VTBL.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.cScodes">
            <summary>The number of possible return values.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.elemdescFunc">
            <summary>The function return type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.wFuncFlags">
            <summary>The function flags. See <a href="https://docs.microsoft.com/windows/desktop/api/oaidl/ne-oaidl-funcflags">FUNCFLAGS</a>.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.FUNCFLAGS">
            <summary>Specifies function flags.</summary>
            <remarks>
            <para>FUNCFLAG_FHIDDEN means that the property should never be shown in object browsers, property browsers, and so on. This function is useful for removing items from an object model. Code can bind to the member, but the user will never know that the member exists. FUNCFLAG_FNONBROWSABLE means that the property should not be displayed in a properties browser. It is used in circumstances in which an error would occur if the property were shown in a properties browser. FUNCFLAG_FRESRICTED means that macro-oriented programmers should not be allowed to access this member. These members are usually treated as _FHIDDEN by tools such as Visual Basic, with the main difference being that code cannot bind to those members.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-funcflags#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FRESTRICTED">
            <summary>The function should not be accessible from macro languages. This flag is intended for system-level functions or functions that type browsers should not display.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FSOURCE">
            <summary>The function returns an object that is a source of events.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FBINDABLE">
            <summary>The function that supports data binding.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FREQUESTEDIT">
            <summary>When set, any call to a method that sets the property results first in a call to <b>IPropertyNotifySink::OnRequestEdit</b>. The implementation of <b>OnRequestEdit</b> determines if the call is allowed to set the property.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FDISPLAYBIND">
            <summary>The function that is displayed to the user as bindable. FUNC_FBINDABLE must also be set.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FDEFAULTBIND">
            <summary>The function that best represents the object. Only one function in a type information can have this attribute.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FHIDDEN">
            <summary>The function should not be displayed to the user, although it exists and is bindable.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FUSESGETLASTERROR">
            <summary>The function supports <b>GetLastError</b>. If an error occurs during the function, the caller can call <b>GetLastError</b> to retrieve the error code.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FDEFAULTCOLLELEM">
            <summary>Permits an optimization in which the compiler looks for a member named xyz on the type of abc. If such a member is found and is flagged as an accessor function for an element of the default collection, then a call is generated to that member function. Permitted on members in dispinterfaces and interfaces; not permitted on modules. For more information, refer to defaultcollelem in Type Libraries and the Object Description Language.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FUIDEFAULT">
            <summary>The type information member is the default member for display in the user interface.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FNONBROWSABLE">
            <summary>The property appears in an object browser, but not in a properties browser.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FREPLACEABLE">
            <summary>Tags the interface as having default behaviors.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FIMMEDIATEBIND">
            <summary>Mapped as individual bindable properties.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.FUNCKIND">
            <summary>Specifies the function type.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-funckind">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCKIND.FUNC_VIRTUAL">
            <summary>The function is accessed the same as PUREVIRTUAL, except the function has an implementation.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCKIND.FUNC_PUREVIRTUAL">
            <summary>The function is accessed through the virtual function table (VTBL), and takes an implicit this pointer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCKIND.FUNC_NONVIRTUAL">
            <summary>The function is accessed by static address and takes an implicit this pointer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCKIND.FUNC_STATIC">
            <summary>The function is accessed by static address and does not take an implicit this pointer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCKIND.FUNC_DISPATCH">
            <summary>The function can be accessed only through <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a>.</summary>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.IDispatch.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.GetTypeInfoCount(System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.IDispatch.GetTypeInfoCount(System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.GetTypeInfoCount(System.UInt32*)">
            <summary>Retrieves the number of type information interfaces that an object provides (either 0 or 1).</summary>
            <param name="pctinfo">The number of type information interfaces provided by the object. If the object provides type information, this number is 1; otherwise the number is 0.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>The method may return zero, which indicates that the object does not provide any type information. In this case, the object may still be programmable through <b>IDispatch</b> or a VTBL, but does not provide run-time type information for browsers, compilers, or other programming tools that access type information. This can be useful for hiding an object from browsers.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.GetTypeInfo(System.UInt32,System.UInt32,Windows.Win32.System.Com.ITypeInfo**)">
            <summary>Retrieves the type information for an object, which can then be used to get the type information for an interface.</summary>
            <param name="iTInfo">The type information to return. Pass 0 to retrieve type information for the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a> implementation.</param>
            <param name="lcid">The locale identifier for the type information. An object may be able to return different type information for different languages. This is important for classes that support localized member names. For classes that do not support localized member names, this parameter can be ignored.</param>
            <param name="ppTInfo">The requested type information object.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-idispatch-gettypeinfo">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.GetIDsOfNames(System.Guid@,System.ReadOnlySpan{Windows.Win32.Foundation.PWSTR},System.UInt32,System.Span{System.Int32})">
            <inheritdoc cref="M:Windows.Win32.System.Com.IDispatch.GetIDsOfNames(System.Guid*,Windows.Win32.Foundation.PWSTR*,System.UInt32,System.UInt32,System.Int32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.GetIDsOfNames(System.Guid*,Windows.Win32.Foundation.PWSTR*,System.UInt32,System.UInt32,System.Int32*)">
            <summary>Maps a single member and an optional set of argument names to a corresponding set of integer DISPIDs, which can be used on subsequent calls to Invoke.</summary>
            <param name="riid">Reserved for future use. Must be IID_NULL.</param>
            <param name="rgszNames">The array of names to be mapped.</param>
            <param name="cNames">The count of the names to be mapped.</param>
            <param name="lcid">The locale context in which to interpret the names.</param>
            <param name="rgDispId">Caller-allocated array, each element of which contains an identifier (ID) corresponding to one of the names passed in the rgszNames array. The first element represents the member name. The subsequent elements represent each of the member's parameters.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>An <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a> implementation can associate any positive integer ID value with a given name. Zero is reserved for the default, or <b>Value</b> property; –1 is reserved to indicate an unknown name; and other negative values are defined for other purposes. For example, if <b>GetIDsOfNames</b> is called, and the implementation does not recognize one or more of the names, it returns DISP_E_UNKNOWNNAME, and the <i>rgDispId</i> array contains DISPID_UNKNOWN for the entries that correspond to the unknown names. The member and parameter DISPIDs must remain constant for the lifetime of the object. This allows a client to obtain the DISPIDs once, and cache them for later use. When <b>GetIDsOfNames</b> is called with more than one name, the first name (<i>rgszNames</i>[0]) corresponds to the member name, and subsequent names correspond to the names of the member's parameters. The same name may map to different DISPIDs, depending on context. For example, a name may have a DISPID when it is used as a member name with a particular interface, a different ID as a member of a different interface, and different mapping for each time it appears as a parameter. <b>GetIDsOfNames</b> is used when an <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a> client binds to names at run time. To bind at compile time instead, an <b>IDispatch</b> client can map names to DISPIDs by using the type information interfaces described in <a href="https://docs.microsoft.com/previous-versions/windows/desktop/automat/type-description-interfaces">Type Description Interfaces</a>. This allows a client to bind to members at compile time and avoid calling <b>GetIDsOfNames</b> at run time. For a description of binding at compile time, see Type Description Interfaces. The implementation of <b>GetIDsOfNames</b> is case insensitive. Users that need case-sensitive name mapping should use type information interfaces to map names to DISPIDs, rather than call <b>GetIDsOfNames</b>. <div class="alert"><b>Caution</b>  You cannot use this method to access values that have been added dynamically, such as values added through JavaScript. Instead, use the GetDispID of the IDispatchEx interface. For more information, see the <a href="https://docs.microsoft.com/previous-versions/windows/internet-explorer/ie-developer/windows-scripting/reference/idispatchex-interface">IDispatchEx interface</a>.</div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-idispatch-getidsofnames#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.Invoke(System.Int32,System.Guid@,System.UInt32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS@,Windows.Win32.System.Variant.VARIANT*,Windows.Win32.System.Com.EXCEPINFO*,System.UInt32*)">
            <inheritdoc cref="M:Windows.Win32.System.Com.IDispatch.Invoke(System.Int32,System.Guid*,System.UInt32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS*,Windows.Win32.System.Variant.VARIANT*,Windows.Win32.System.Com.EXCEPINFO*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.Invoke(System.Int32,System.Guid*,System.UInt32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS*,Windows.Win32.System.Variant.VARIANT*,Windows.Win32.System.Com.EXCEPINFO*,System.UInt32*)">
            <summary>Provides access to properties and methods exposed by an object.</summary>
            <param name="dispIdMember">Identifies the member. Use <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-getidsofnames">GetIDsOfNames</a> or the object's documentation to obtain the dispatch identifier.</param>
            <param name="riid">Reserved for future use. Must be IID_NULL.</param>
            <param name="lcid">
            <para>The locale context in which to interpret arguments. The <i>lcid</i> is used by the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-getidsofnames">GetIDsOfNames</a> function, and is also passed to <b>Invoke</b> to allow the object to interpret its arguments specific to a locale. Applications that do not support multiple national languages can ignore this parameter. For more information, refer to <a href="https://docs.microsoft.com/previous-versions/windows/desktop/automat/supporting-multiple-national-languages">Supporting Multiple National Languages</a> and <a href="https://docs.microsoft.com/previous-versions/windows/desktop/automat/exposing-activex-objects">Exposing ActiveX Objects</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-idispatch-invoke#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="wFlags">
            <para>Flags describing the context of the <b>Invoke</b> call. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-idispatch-invoke#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="pDispParams">Pointer to a DISPPARAMS structure containing an array of arguments, an array of argument DISPIDs for named arguments, and counts for the number of elements in the arrays.</param>
            <param name="pVarResult">Pointer to the location where the result is to be stored, or NULL if the caller expects no result. This argument is ignored if DISPATCH_PROPERTYPUT or DISPATCH_PROPERTYPUTREF is specified.</param>
            <param name="pExcepInfo">Pointer to a structure that contains exception information. This structure should be filled in if DISP_E_EXCEPTION is returned. Can be NULL.</param>
            <param name="puArgErr">The index within rgvarg of the first argument that has an error. Arguments are stored in pDispParams-&gt;rgvarg in reverse order, so the first argument is the one with the highest index in the array. This parameter is returned only when the resulting return value is DISP_E_TYPEMISMATCH or DISP_E_PARAMNOTFOUND. This argument can be set to null. For details, see <a href="https://docs.microsoft.com/previous-versions/windows/desktop/automat/returning-errors">Returning Errors</a>.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>Generally, you should not implement <b>Invoke</b> directly. Instead, use the dispatch interface to create functions <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-createstddispatch">CreateStdDispatch</a> and <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-dispinvoke">DispInvoke</a>. For details, refer to <b>CreateStdDispatch</b>, <b>DispInvoke</b>, <a href="https://docs.microsoft.com/previous-versions/windows/desktop/automat/creating-the-idispatch-interface">Creating the IDispatch Interface</a> and <a href="https://docs.microsoft.com/previous-versions/windows/desktop/automat/exposing-activex-objects">Exposing ActiveX Objects</a>. If some application-specific processing needs to be performed before calling a member, the code should perform the necessary actions, and then call <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-invoke">ITypeInfo::Invoke</a> to invoke the member. <b>ITypeInfo::Invoke</b> acts exactly like <b>Invoke</b>. The standard implementations of <b>Invoke</b> created by <b>CreateStdDispatch</b> and <b>DispInvoke</b> defer to <b>ITypeInfo::Invoke</b>. In an ActiveX client, <b>Invoke</b> should be used to get and set the values of properties, or to call a method of an ActiveX object. The <i>dispIdMember</i> argument identifies the member to invoke. The DISPIDs that identify members are defined by the implementer of the object and can be determined by using the object's documentation, the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-getidsofnames">IDispatch::GetIDsOfNames</a> function, or the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a> interface. When you use <b>IDispatch::Invoke()</b> with DISPATCH_PROPERTYPUT or DISPATCH_PROPERTYPUTREF, you have to specially initialize the <b>cNamedArgs</b> and <b>rgdispidNamedArgs</b> elements of your DISPPARAMS structure with the following:</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-idispatch-invoke#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.IDispatch.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{00020400-0000-0000-c000-000000000046}</value>
        </member>
        <member name="T:Windows.Win32.System.Com.INVOKEKIND">
            <summary>Specifies the way a function is invoked.</summary>
            <remarks>In C, value assignment is written as *pobj1 = *pobj2, while reference assignment is written as pobj1 = pobj2. Other languages have other syntactic conventions. A property or data member can support only a value assignment, a reference assignment, or both. The INVOKEKIND enumeration constants are the same constants that are passed to <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-invoke">IDispatch::Invoke</a> to specify the way in which a function is invoked.</remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.INVOKEKIND.INVOKE_FUNC">
            <summary>The member is called using a normal function invocation syntax.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.INVOKEKIND.INVOKE_PROPERTYGET">
            <summary>The function is invoked using a normal property-access syntax.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.INVOKEKIND.INVOKE_PROPERTYPUT">
            <summary>The function is invoked using a property value assignment syntax. Syntactically, a typical programming language might represent changing a property in the same way as assignment. For example: object.property : = value.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.INVOKEKIND.INVOKE_PROPERTYPUTREF">
            <summary>The function is invoked using a property reference assignment syntax.</summary>
        </member>
        <member name="M:Windows.Win32.System.Com.ISequentialStream.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ISequentialStream.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ISequentialStream.Read(System.Void*,System.UInt32,System.UInt32*)">
            <summary>Reads a specified number of bytes from the stream object into memory, starting at the current seek pointer.</summary>
            <param name="pv">A pointer to the buffer which the stream data is read into.</param>
            <param name="cb">The number of bytes of data to read from the stream object.</param>
            <param name="pcbRead">
            <para>A pointer to a <b>ULONG</b> variable that receives the actual number of bytes read from the stream object. <div class="alert"><b>Note</b>  The number of bytes read may be zero.</div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-isequentialstream-read#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | All of the requested data was successfully read from the stream object; the number of bytes requested in *cb* is the same as the number of bytes returned in *pcbRead*.| |S_FALSE | The value returned in *pcbRead* is less than the number of bytes requested in *cb*. This indicates the end of the stream has been reached. The number of bytes read indicates how much of the *pv* buffer has been filled.| |E_PENDING | Asynchronous storage only: Part or all of the data to be read is currently unavailable. | |STG_E_ACCESSDENIED | The caller does not have permissions required to read this stream object.| |STG_E_INVALIDPOINTER | One of the pointer values is invalid.| |STG_E_REVERTED | The object has been invalidated by a revert operation above it in the transaction tree.|</para>
            </returns>
            <remarks>
            <para>This method reads bytes from this stream object into memory. The stream object must be opened in <b>STGM_READ</b> mode. This method adjusts the seek pointer by the actual number of bytes read. The number of bytes actually read is also returned in the <i>pcbRead</i> parameter. <h3><a id="Notes_to_Callers"></a><a id="notes_to_callers"></a><a id="NOTES_TO_CALLERS"></a>Notes to Callers</h3> The actual number of bytes read can be less than the number of bytes requested if an error occurs or if the end of the stream is reached during the read operation.  The number of bytes returned should always  be compared to the number of bytes requested.  If the number of bytes returned is less than the number of bytes requested, it usually means the <b>Read</b> method attempted to read  past the end of the stream. The application should handle both a returned error  and <b>S_OK</b> return values on end-of-stream read operations.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-isequentialstream-read#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ISequentialStream.Write(System.Void*,System.UInt32,System.UInt32*)">
            <summary>Writes a specified number of bytes into the stream object starting at the current seek pointer.</summary>
            <param name="pv">A pointer to the buffer that contains the data that is to be written to the stream. A valid pointer must be provided for this parameter even when <i>cb</i> is zero.</param>
            <param name="cb">The number of bytes of data to attempt to write into the stream. This value can be zero.</param>
            <param name="pcbWritten">A pointer to a <b>ULONG</b> variable where this method writes the actual number of bytes written to the stream object. The caller can set this pointer to <b>NULL</b>, in which case this method does not provide the actual number of bytes written.</param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The data was successfully written to the stream object.| |E_PENDING | Asynchronous Storage only: Part or all of the data to be written is currently unavailable.| |STG_E_MEDIUMFULL | The write operation failed because there is no space left on the storage device.| |STG_E_ACCESSDENIED | The caller does not have the required  permissions for writing to this stream object.| |STG_E_CANTSAVE | Data cannot be written for reasons other than improper access or insufficient space.| |STG_E_INVALIDPOINTER | One of the pointer values is not valid. The *pv* parameter must contain a valid pointer even if *cb* is zero.| |STG_E_REVERTED | The object has been invalidated by a revert operation above it in the transaction tree.| |STG_E_WRITEFAULT | The write operation failed due to a disk error. This value is also returned when this method attempts to write to a stream that was opened in simple mode (using the STGM_SIMPLE flag).|</para>
            </returns>
            <remarks>
            <para><b>ISequentialStream::Write</b> writes the specified data to a stream object. The seek pointer is adjusted for the number of bytes actually written. The number of bytes actually written is returned in the <i>pcbWritten</i> parameter. If the byte count is zero bytes, the write operation has no effect. If the seek pointer is currently past the end of the stream and the byte count is nonzero, this method increases the size of the stream to the seek pointer and writes the specified bytes starting at the seek pointer. The fill bytes written to the stream are not initialized to any particular value. This is the same as the end-of-file behavior in the MS-DOS FAT file system. With a zero byte count and a seek pointer past the end of the stream, this method does not create the fill bytes to increase the stream to the seek pointer. In this case, you must call the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istream-setsize">IStream::SetSize</a> method to increase the size of the stream and write the fill bytes. The <i>pcbWritten</i> parameter can have a value even if an error occurs. In the COM-provided implementation, stream objects are not sparse. Any fill bytes are eventually allocated on the disk and assigned to the stream.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-isequentialstream-write#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.ISequentialStream.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{0c733a30-2a1c-11ce-ade5-00aa0044773d}</value>
        </member>
        <member name="M:Windows.Win32.System.Com.IStream.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.IStream.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.IStream.Seek(System.Int64,System.IO.SeekOrigin,System.UInt64*)">
            <summary>Changes the seek pointer to a new location. The new location is relative to either the beginning of the stream, the end of the stream, or the current seek pointer.</summary>
            <param name="dlibMove">The displacement to be added to the location indicated by the <i>dwOrigin</i> parameter. If <i>dwOrigin</i> is <b>STREAM_SEEK_SET</b>, this is interpreted as an unsigned value rather than a signed value.</param>
            <param name="dwOrigin">The origin for the displacement specified in <i>dlibMove</i>. The origin can be the beginning of the file (<b>STREAM_SEEK_SET</b>), the current seek pointer (<b>STREAM_SEEK_CUR</b>), or the end of the file (<b>STREAM_SEEK_END</b>). For more information about values, see the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/ne-objidl-stream_seek">STREAM_SEEK</a> enumeration.</param>
            <param name="plibNewPosition">
            <para>A pointer to the location where this method writes the value of the new seek pointer from the beginning of the stream. You can set this pointer to <b>NULL</b>. In this case, this method does not provide the new seek pointer.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istream-seek#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The seek pointer was successfully adjusted.| |E_PENDING | Asynchronous Storage only: Part or all of the stream data is currently unavailable. | |STG_E_INVALIDPOINTER | Indicates that *plibNewPosition* points to invalid memory, because *plibNewPosition* is not read.| |STG_E_INVALIDFUNCTION | The *dwOrigin* parameter contains an invalid value, or the *dlibMove* parameter contains a bad offset value. For example, the result of the seek pointer is a negative offset value.| |STG_E_REVERTED | The object has been invalidated by a revert operation above it in the transaction tree.|</para>
            </returns>
            <remarks>
            <para><b>IStream::Seek</b> changes the seek pointer so that subsequent read and write operations can be performed at a different location in the stream object. It is an error to seek before the beginning of the stream. It is not, however, an error to seek past the end of the stream. Seeking past the end of the stream is useful for subsequent write operations, as the stream byte range will be extended to the new seek position immediately before the write is complete. You can also use this method to obtain the current value of the seek pointer by calling this method with the <i>dwOrigin</i> parameter set to <b>STREAM_SEEK_CUR</b> and the <i>dlibMove</i> parameter set to 0 so that the seek pointer is not changed. The current seek pointer is returned in the <i>plibNewPosition</i> parameter.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istream-seek#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IStream.SetSize(System.UInt64)">
            <summary>Changes the size of the stream object.</summary>
            <param name="libNewSize">Specifies the new size, in bytes, of the stream.</param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The size of the stream object was successfully changed.| |E_PENDING | Asynchronous Storage only: Part or all of the stream's data is currently unavailable.| |STG_E_MEDIUMFULL | The stream size is not changed because there is no space left on the storage device.| |STG_E_INVALIDFUNCTION | The value of the *libNewSize* parameter is not supported by the implementation. Not all streams support greater than 232 bytes. If a stream does not support more than 232 bytes, the high DWORD data type of *libNewSize* must be zero. If it is nonzero, the implementation may return STG_E_INVALIDFUNCTION. In general, COM-based implementations of the IStream interface do not support streams larger than 232 bytes.| |STG_E_REVERTED | The object has been invalidated by a revert operation above it in the transaction tree.|</para>
            </returns>
            <remarks>
            <para><b>IStream::SetSize</b> changes the size of the stream object. Call this method to preallocate space for the stream. If the <i>libNewSize</i> parameter is larger than the current stream size, the stream is extended to the indicated size by filling the intervening space with bytes of undefined value. This operation is similar to the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-isequentialstream-write">ISequentialStream::Write</a> method if the seek pointer is past the current end of the stream. If the <i>libNewSize</i> parameter is smaller than the current stream, the stream is truncated to the indicated size. The seek pointer is not affected by the change in stream size. Calling <b>IStream::SetSize</b> can be an effective way to obtain a large chunk of contiguous space.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istream-setsize#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IStream.CopyTo(Windows.Win32.System.Com.IStream*,System.UInt64,System.UInt64*,System.UInt64*)">
            <summary>Copies a specified number of bytes from the current seek pointer in the stream to the current seek pointer in another stream.</summary>
            <param name="pstm">A pointer to the destination stream. The stream pointed to by <i>pstm</i> can be a new stream or a clone of the source stream.</param>
            <param name="cb">The number of bytes to copy from the source stream.</param>
            <param name="pcbRead">A pointer to the location where this method writes the actual number of bytes read from the source. You can set this pointer to <b>NULL</b>. In this case, this method does not provide the actual number of bytes read.</param>
            <param name="pcbWritten">A pointer to the location where this method writes the actual number of bytes written to the destination. You can set this pointer to <b>NULL</b>. In this case, this method does not provide the actual number of bytes written.</param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The stream object was successfully copied.| |E_PENDING | Asynchronous Storage only: Part or all of the data to be copied is currently unavailable. | |STG_E_INVALIDPOINTER | The value of one of the pointer parameters is invalid.| |STG_E_MEDIUMFULL | The stream is not copied because there is no space left on the storage device.| |STG_E_REVERTED | The object has been invalidated by a revert operation above it in the transaction tree.|</para>
            </returns>
            <remarks>
            <para>The <b>CopyTo</b> method copies the specified bytes from one stream to another. It can also be used to copy a stream to itself. The seek pointer in each stream instance is adjusted for the number of bytes read or written. This method is equivalent to reading <i>cb</i> bytes into memory using <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-isequentialstream-read">ISequentialStream::Read</a> and then immediately writing them to the destination stream using <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-isequentialstream-write">ISequentialStream::Write</a>, although <b>IStream::CopyTo</b> will be more efficient. The destination stream can be a clone of the source stream created by calling the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istream-clone">IStream::Clone</a> method. If <b>IStream::CopyTo</b> returns an error, you cannot assume that the seek pointers are valid for either the source or destination. Additionally, the values of <i>pcbRead</i> and <i>pcbWritten</i> are not meaningful even though they are returned. If <b>IStream::CopyTo</b> returns successfully, the actual number of bytes read and written are the same. To copy the remainder of the source from the current seek pointer, specify the maximum large integer value for the <i>cb</i> parameter. If the seek pointer is the beginning of the stream, this operation copies the entire stream.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istream-copyto#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IStream.Commit(System.UInt32)">
            <summary>The Commit method ensures that any changes made to a stream object open in transacted mode are reflected in the parent storage.</summary>
            <param name="grfCommitFlags">
            <para>Controls how the changes for the stream object are committed. See the <a href="https://docs.microsoft.com/windows/desktop/api/wtypes/ne-wtypes-stgc">STGC</a> enumeration for a definition of these values.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istream-commit#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | Changes to the stream object were successfully committed to the parent level.| |E_PENDING | Asynchronous Storage only: Part or all of the stream's data is currently unavailable. | |STG_E_MEDIUMFULL | The commit operation failed due to lack of space on the storage device.| |STG_E_REVERTED | The object has been invalidated by a revert operation above it in the transaction tree.|</para>
            </returns>
            <remarks>
            <para>The <b>Commit</b>  method ensures that changes to a stream object opened in transacted mode are reflected in the parent storage. Changes that have been made to the stream since it was opened or last committed are reflected to the parent storage object. If the parent is opened in transacted mode, the parent may revert at a later time, rolling back the changes to this stream object. The compound file implementation does not support the opening of streams in transacted mode, so this method has very little effect other than to flush memory buffers. For more information, see <a href="https://docs.microsoft.com/windows/desktop/Stg/istream-compound-file-implementation">IStream - Compound File Implementation</a>. If the stream is open in direct mode, this method ensures that any memory buffers have been flushed out to the underlying storage object. This is much like a flush in traditional file systems. The <b>IStream::Commit</b> method is useful on a direct mode stream when the implementation of the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-istream">IStream</a> interface is a wrapper for underlying file system APIs. In this case, <b>IStream::Commit</b> would be connected to the file system's flush call.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istream-commit#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IStream.Revert">
            <summary>The Revert method discards all changes that have been made to a transacted stream since the last IStream::Commit call. On streams open in direct mode and streams using the COM compound file implementation of IStream::Revert, this method has no effect.</summary>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The stream was successfully reverted to its previous version.| |E_PENDING | Asynchronous Storage only: Part or all of the stream's data is currently unavailable. |</para>
            </returns>
            <remarks>The <b>Revert</b> method discards changes made to a transacted stream since the last commit operation.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IStream.LockRegion(System.UInt64,System.UInt64,System.UInt32)">
            <summary>The LockRegion method restricts access to a specified range of bytes in the stream.</summary>
            <param name="libOffset">Integer that specifies the byte offset for the beginning of the range.</param>
            <param name="cb">Integer that specifies the length of the range, in bytes, to be restricted.</param>
            <param name="dwLockType">Specifies the restrictions being requested on accessing the range.</param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The specified range of bytes was locked.| |E_PENDING | Asynchronous Storage only: Part or all of the stream's data is currently unavailable. | |STG_E_INVALIDFUNCTION | Locking is not supported at all or the specific type of lock requested is not supported.| |STG_E_LOCKVIOLATION | Requested lock is supported, but cannot be granted because of an existing lock.| |STG_E_REVERTED | The object has been invalidated by a revert operation above it in the transaction tree.|</para>
            </returns>
            <remarks>
            <para>The byte range of the stream can be extended.  Locking an extended range for the stream is useful as a method of communication between different instances of the stream without changing data that is actually part of the stream. Three types of locking can be supported: locking to exclude other writers, locking to exclude other readers or writers, and locking that allows only one requester to obtain a lock on the given range, which is usually an alias for one of the other two lock types. A given stream instance might support either of the first two types, or both. The lock type is specified by <i>dwLockType</i>, using a value from the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/ne-objidl-locktype">LOCKTYPE</a> enumeration. Any region locked with <b>IStream::LockRegion</b> must later be explicitly unlocked by calling <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istream-unlockregion">IStream::UnlockRegion</a> with exactly the same values for the <i>libOffset</i>, <i>cb</i>, and <i>dwLockType</i> parameters. The region must be unlocked before the stream is released. Two adjacent regions cannot be locked separately and then unlocked with a single unlock call. <h3><a id="Notes_to_Callers"></a><a id="notes_to_callers"></a><a id="NOTES_TO_CALLERS"></a>Notes to Callers</h3> Since the type of locking supported is optional and can vary in different implementations of <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-istream">IStream</a>, you must provide code to deal with the STG_E_INVALIDFUNCTION error. The <b>LockRegion</b> method has no effect in the compound file implementation, because the implementation does not support range locking. <h3><a id="Notes_to_Implementers"></a><a id="notes_to_implementers"></a><a id="NOTES_TO_IMPLEMENTERS"></a>Notes to Implementers</h3> Support for this method is optional for implementations of stream objects since it may not be supported by the underlying file system. The type of locking supported is also optional. The STG_E_INVALIDFUNCTION error is returned if the requested type of locking is not supported.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istream-lockregion#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IStream.UnlockRegion(System.UInt64,System.UInt64,System.UInt32)">
            <summary>The UnlockRegion method removes the access restriction on a range of bytes previously restricted with IStream::LockRegion.</summary>
            <param name="libOffset">Specifies the byte offset for the beginning of the range.</param>
            <param name="cb">Specifies, in bytes, the length of the range to be restricted.</param>
            <param name="dwLockType">Specifies the access restrictions previously placed on the range.</param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The byte range was unlocked.| |E_PENDING | Asynchronous Storage only: Part or all of the stream's data is currently unavailable.| |STG_E_INVALIDFUNCTION | Locking is not supported at all or the specific type of lock requested is not supported.| |STG_E_LOCKVIOLATION | The requested unlock operation cannot be granted.| |STG_E_REVERTED | The object has been invalidated by a revert operation above it in the transaction tree.|</para>
            </returns>
            <remarks>
            <para><b>IStream::UnlockRegion</b> unlocks a region previously locked with the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istream-lockregion">IStream::LockRegion</a> method. Locked regions must later be explicitly unlocked by calling <b>IStream::UnlockRegion</b> with exactly the same values for the <i>libOffset</i>, <i>cb</i>, and <i>dwLockType</i> parameters. The region must be unlocked before the stream is released. Two adjacent regions cannot be locked separately and then unlocked with a single unlock call.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istream-unlockregion#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IStream.Stat(Windows.Win32.System.Com.STATSTG@,System.UInt32)">
            <inheritdoc cref="M:Windows.Win32.System.Com.IStream.Stat(Windows.Win32.System.Com.STATSTG*,System.UInt32)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.IStream.Stat(Windows.Win32.System.Com.STATSTG*,System.UInt32)">
            <summary>The Stat method retrieves the STATSTG structure for this stream.</summary>
            <param name="pstatstg">
            <para>Pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/objidl/ns-objidl-statstg">STATSTG</a> structure where this method places information about this stream object.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istream-stat#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="grfStatFlag">
            <para>Specifies that this method does not return some of the members in the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/ns-objidl-statstg">STATSTG</a> structure, thus saving a memory allocation operation. Values are taken from the <a href="https://docs.microsoft.com/windows/desktop/api/wtypes/ne-wtypes-statflag">STATFLAG</a> enumeration.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istream-stat#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The STATSTG structure was successfully returned at the specified location.| |E_PENDING | Asynchronous Storage only: Part or all of the stream's data is currently unavailable. | |STG_E_ACCESSDENIED | The caller does not have enough permissions for accessing statistics for this storage object.| |STG_E_INSUFFICIENTMEMORY | The STATSTG structure was not returned due to a lack of memory.| |STG_E_INVALIDFLAG | The value for the *grfStateFlag* parameter is not valid.| |STG_E_INVALIDPOINTER | The *pStatStg* pointer is not valid.| |STG_E_REVERTED | The object has been invalidated by a revert operation above it in the transaction tree.|</para>
            </returns>
            <remarks>
            <para><b>IStream::Stat</b> retrieves a pointer to the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/ns-objidl-statstg">STATSTG</a> structure that contains information about this open stream. When this stream is within a structured storage and <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istorage-enumelements">IStorage::EnumElements</a> is called, it creates an enumerator object with the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-ienumstatstg">IEnumSTATSTG</a> interface on it, which can be called to enumerate the storages and streams through the <b>STATSTG</b> structures associated with each of them.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istream-stat#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IStream.Clone(Windows.Win32.System.Com.IStream**)">
            <summary>The Clone method creates a new stream object with its own seek pointer that references the same bytes as the original stream.</summary>
            <param name="ppstm">
            <para>When successful, pointer to the location of an <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-istream">IStream</a> pointer to the new stream object. If an error occurs, this parameter is <b>NULL</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istream-clone#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. | Return code | Description | |----------------|---------------| |S_OK | The stream was successfully cloned.| |E_PENDING | Asynchronous Storage only: Part or all of the stream's data is currently unavailable. | |STG_E_INSUFFICIENTMEMORY | The stream was not cloned due to a lack of memory.| |STG_E_INVALIDPOINTER | The ppStm pointer is not valid.| |STG_E_REVERTED | The object has been invalidated by a revert operation above it in the transaction tree.|</para>
            </returns>
            <remarks>
            <para>The <b>Clone</b> method creates a new stream object for accessing the same bytes but using a separate seek pointer. The new stream object sees the same data as the source-stream object. Changes written to one object are immediately visible in the other. Range locking is shared between the stream objects. The initial setting of the seek pointer in the cloned stream instance is the same as the current setting of the seek pointer in the original stream at the time of the clone operation.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/nf-objidl-istream-clone#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.IStream.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{0000000c-0000-0000-c000-000000000046}</value>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeComp.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeComp.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeComp.Bind(Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt16,Windows.Win32.System.Com.ITypeInfo**,Windows.Win32.System.Com.DESCKIND@,Windows.Win32.System.Com.BINDPTR@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeComp.Bind(Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt16,Windows.Win32.System.Com.ITypeInfo**,Windows.Win32.System.Com.DESCKIND*,Windows.Win32.System.Com.BINDPTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeComp.Bind(Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt16,Windows.Win32.System.Com.ITypeInfo**,Windows.Win32.System.Com.DESCKIND*,Windows.Win32.System.Com.BINDPTR*)">
            <summary>Maps a name to a member of a type, or binds global variables and functions contained in a type library.</summary>
            <param name="szName">The name to be bound.</param>
            <param name="lHashVal">The hash value for the name computed by <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-lhashvalofnamesys">LHashValOfNameSys</a>.</param>
            <param name="wFlags">One or more of the flags defined in the INVOKEKIND enumeration. Specifies whether the name was referenced as a method or a property. When binding to a variable, specify the flag INVOKE_PROPERTYGET. Specify zero to bind to any type of member.</param>
            <param name="ppTInfo">If a FUNCDESC or VARDESC was returned, then <i>ppTInfo</i> points to a pointer to the type description that contains the item to which it is bound.</param>
            <param name="pDescKind">Indicates whether the name bound to is a VARDESC, FUNCDESC, or TYPECOMP. If there was no match, DESCKIND_NONE.</param>
            <param name="pBindPtr">The bound-to VARDESC, FUNCDESC, or <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> interface.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>Use <b>Bind</b> for binding to the variables and methods of a type, or for binding to the global variables and methods in a type library. The returned DESCKIND pointer <i>pDescKind</i> indicates whether the name was bound to a VARDESC, a FUNCDESC, or to an <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> instance. The returned <i>pBindPtr</i> points to the VARDESC, FUNCDESC, or <b>ITypeComp</b>. If a data member or method is bound to, then ppTInfopoints to the type description that contains the method or data member.</para>
            <para>If <b>Bind</b> binds the name to a nested binding context, it returns a pointer to an <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> instance in <i>pBindPtr</i> and a null type description pointer in <i>ppTInfo</i>. For example, if the name of a type description is passed for a module (TKIND_MODULE), enumeration (TKIND_ENUM), or coclass (TKIND_COCLASS), Bind returns the <b>ITypeComp</b> instance of the type description for the module, enumeration, or coclass. This feature supports languages such as Visual Basic that allow references to members of a type description to be qualified by the name of the type description. For example, a function in a module can be referenced by <i>modulename</i>.<i>functionname.</i> The members of TKIND_ENUM, TKIND_MODULE, and TKIND_COCLASS types marked as Application objects can be bound to directly from <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a>, without specifying the name of the module. The <b>ITypeComp</b> of a coclass defers to the <b>ITypeComp</b> of its default interface.</para>
            <para>As with other methods of <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a>, <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a>, and <b>ITypeInfo</b>, the calling code is responsible for releasing the returned object instances or structures. If a VARDESC or FUNCDESC is returned, the caller is responsible for deleting it with the returned type description and releasing the type description instance itself. Otherwise, if an <b>ITypeComp</b> instance is returned, the caller must release it.</para>
            <para>Special rules apply if you call a type library's <b>Bind</b> method, passing it the name of a member of an Application object class (a class that has the TYPEFLAG_FAPPOBJECT flag set). In this case, Bind returns DESCKIND_IMPLICITAPPOBJ in <i>pDescKind</i>, a VARDESC that describes the Application object in <i>pBindPtr</i>, and the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a> of the Application object class in <i>ppTInfo</i>. To bind to the object, <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-gettypecomp">ITypeInfo::GetTypeComp</a> must make a call to get the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> of the Application object class, and then reinvoke its <b>Bind</b> method with the name initially passed to the type library's <b>ITypeComp</b>.</para>
            <para>The caller should use the returned <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a> pointer (<i>ppTInfo</i>) to get the address of the member.</para>
            <para><div class="alert"><b>Note</b>  The <i>wflags</i> parameter is the same as the <i>wflags</i> parameter in <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-invoke">IDispatch::Invoke</a>. </div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypecomp-bind#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeComp.BindType(Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.System.Com.ITypeInfo**,Windows.Win32.System.Com.ITypeComp**)">
            <summary>Binds to the type descriptions contained within a type library.</summary>
            <param name="szName">The name to be bound.</param>
            <param name="lHashVal">The hash value for the name computed by <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-lhashvalofname">LHashValOfName</a>.</param>
            <param name="ppTInfo">An <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a> of the type to which the name was bound.</param>
            <param name="ppTComp">Passes a valid pointer, such as the address of an <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> variable.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>Use the function <b>BindType</b> for binding a type name to the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a> that describes the type. This function is invoked on the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> that is returned by <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypelib-gettypecomp">ITypeLib::GetTypeComp</a> to bind to types defined within that library. It can also be used in the future for binding to nested types.</remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.ITypeComp.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{00020403-0000-0000-c000-000000000046}</value>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetTypeAttr(Windows.Win32.System.Com.TYPEATTR*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetTypeAttr(Windows.Win32.System.Com.TYPEATTR**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetTypeAttr(Windows.Win32.System.Com.TYPEATTR**)">
            <summary>Retrieves a TYPEATTR structure that contains the attributes of the type description.</summary>
            <param name="ppTypeAttr">The attributes of this type description.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>To free the TYPEATTR structure, use <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-releasetypeattr">ITypeInfo::ReleaseTypeAttr</a>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetTypeComp(Windows.Win32.System.Com.ITypeComp**)">
            <summary>Retrieves the ITypeComp interface for the type description, which enables a client compiler to bind to the type description's members.</summary>
            <param name="ppTComp">The <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> of the containing type library.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>A client compiler can use the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> interface to bind to members of the type.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetFuncDesc(System.UInt32,Windows.Win32.System.Com.FUNCDESC*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetFuncDesc(System.UInt32,Windows.Win32.System.Com.FUNCDESC**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetFuncDesc(System.UInt32,Windows.Win32.System.Com.FUNCDESC**)">
            <summary>Retrieves the FUNCDESC structure that contains information about a specified function.</summary>
            <param name="index">The index of the function whose description is to be returned. The <i>index</i> should be in the range of 0 to 1 less than the number of functions in this type.</param>
            <param name="ppFuncDesc">A FUNCDESC structure that describes the specified function.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>The function <b>ITypeInfo::GetFuncDesc</b> provides access to a FUNCDESC structure that describes the function with the specified <i>index</i>. The FUNCDESC structure should be freed with <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-releasefuncdesc">ITypeInfo::ReleaseFuncDesc</a>. The number of functions in the type is one of the attributes contained in the TYPEATTR structure.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetVarDesc(System.UInt32,Windows.Win32.System.Com.VARDESC*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetVarDesc(System.UInt32,Windows.Win32.System.Com.VARDESC**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetVarDesc(System.UInt32,Windows.Win32.System.Com.VARDESC**)">
            <summary>Retrieves a VARDESC structure that describes the specified variable.</summary>
            <param name="index">The index of the variable whose description is to be returned. The index should be in the range of 0 to 1 less than the number of variables in this type.</param>
            <param name="ppVarDesc">A VARDESC that describes the specified variable.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>To free the VARDESC structure, use <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-releasevardesc">ReleaseVarDesc</a>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetNames(System.Int32,Windows.Win32.SysFreeStringSafeHandle@,System.UInt32,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetNames(System.Int32,Windows.Win32.Foundation.BSTR*,System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetNames(System.Int32,Windows.Win32.Foundation.BSTR*,System.UInt32,System.UInt32*)">
            <summary>Retrieves the variable with the specified member ID or the name of the property or method and the parameters that correspond to the specified function ID.</summary>
            <param name="memid">The ID of the member whose name (or names) is to be returned.</param>
            <param name="rgBstrNames">The caller-allocated array. On return, each of the elements contains the name (or names) associated with the member.</param>
            <param name="cMaxNames">The length of the passed-in <i>rgBstrNames</i> array.</param>
            <param name="pcNames">The number of names in the <i>rgBstrNames</i> array.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The caller must release the returned BSTR array.</para>
            <para>If the member ID identifies a property that is implemented with property functions, the property name is returned. For property get functions, the names of the function and its parameters are always returned.</para>
            <para>For property put and put reference functions, the right side of the assignment is unnamed. If <i>cMaxNames</i> is less than is required to return all of the names of the parameters of a function, then only the names of the first <i>cMaxNames</i> - 1 parameters are returned. The names of the parameters are returned in the array in the same order that they appear elsewhere in the interface (for example, the same order in the parameter array associated with the FUNCDESC enumeration).</para>
            <para>If the type description inherits from another type description, this function is recursive to the base type description, if necessary, to find the item with the requested member ID.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-getnames#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetRefTypeOfImplType(System.UInt32,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetRefTypeOfImplType(System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetRefTypeOfImplType(System.UInt32,System.UInt32*)">
            <summary>If a type description describes a COM class, it retrieves the type description of the implemented interface types.</summary>
            <param name="index">The index of the implemented type whose handle is returned. The valid range is 0 to the <b>cImplTypes</b> field in the TYPEATTR structure.</param>
            <param name="pRefType">A handle for the implemented interface (if any). This handle can be passed to <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-getreftypeinfo">ITypeInfo::GetRefTypeInfo</a> to get the type description.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>If the TKIND_DISPATCH type description is for a dual interface, the TKIND_INTERFACE type description can be obtained by calling <b>GetRefTypeOfImplType</b> with an <i>index</i> of –1, and by passing the returned <i>pRefTypehandle</i> to <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-getreftypeinfo">GetRefTypeInfo</a> to retrieve the type information.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetImplTypeFlags(System.UInt32,Windows.Win32.System.Com.IMPLTYPEFLAGS@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetImplTypeFlags(System.UInt32,Windows.Win32.System.Com.IMPLTYPEFLAGS*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetImplTypeFlags(System.UInt32,Windows.Win32.System.Com.IMPLTYPEFLAGS*)">
            <summary>Retrieves the IMPLTYPEFLAGS enumeration for one implemented interface or base interface in a type description.</summary>
            <param name="index">The index of the implemented interface or base interface for which to get the flags.</param>
            <param name="pImplTypeFlags">The IMPLTYPEFLAGS enumeration value.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>The flags are associated with the act of inheritance, and not with the inherited interface.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetIDsOfNames(System.ReadOnlySpan{Windows.Win32.Foundation.PWSTR},System.Span{System.Int32})">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetIDsOfNames(Windows.Win32.Foundation.PWSTR*,System.UInt32,System.Int32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetIDsOfNames(Windows.Win32.Foundation.PWSTR*,System.UInt32,System.Int32*)">
            <summary>Maps between member names and member IDs, and parameter names and parameter IDs.</summary>
            <param name="rgszNames">An array of names to be mapped.</param>
            <param name="cNames">The count of the names to be mapped.</param>
            <param name="pMemId">Caller-allocated array in which name mappings are placed.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The function <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-getidsofnames">GetIDsOfNames</a> maps the name of a member (<b>rgszNames</b>[0]) and its parameters (<b>rgszNames</b>[1] ...<b>rgszNames</b>[<b>cNames</b>- 1]) to the ID of the member (<b>pMemId</b>[0]), and to the IDs of the specified parameters (<b>pMemId</b>[1] ... <b>pMemId</b>[<b>cNames</b>- 1]). The IDs of parameters are 0 for the first parameter in the member function's argument list, 1 for the second, and so on.</para>
            <para>If the type description inherits from another type description, this function is recursive to the base type description, if necessary, to find the item with the requested member ID.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-getidsofnames#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.Invoke(System.Void*,System.Int32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS@,Windows.Win32.System.Variant.VARIANT@,Windows.Win32.System.Com.EXCEPINFO@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Invoke(System.Void*,System.Int32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS*,Windows.Win32.System.Variant.VARIANT*,Windows.Win32.System.Com.EXCEPINFO*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.Invoke(System.Void*,System.Int32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS*,Windows.Win32.System.Variant.VARIANT*,Windows.Win32.System.Com.EXCEPINFO*,System.UInt32*)">
            <summary>Invokes a method, or accesses a property of an object, that implements the interface described by the type description.</summary>
            <param name="pvInstance">An instance of the interface described by this type description.</param>
            <param name="memid">The interface member.</param>
            <param name="wFlags">
            <para>Flags describing the context of the invoke call. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-invoke#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="pDispParams">An array of arguments, an array of DISPIDs for named arguments, and counts of the number of elements in each array.</param>
            <param name="pVarResult">The result. Should be null if the caller does not expect any result. If <i>wFlags</i> specifies DISPATCH_PROPERTYPUT or DISPATCH_PROPERTYPUTREF, <i>pVarResultis</i> is ignored.</param>
            <param name="pExcepInfo">An exception information structure, which is filled in only if DISP_E_EXCEPTION is returned. If <i>pExcepInfo</i> is null on input, only an HRESULT error will be returned.</param>
            <param name="puArgErr">If Invoke returns DISP_E_TYPEMISMATCH, <i>puArgErr</i> indicates the index (within <i>rgvarg</i>) of the argument with incorrect type. If more than one argument returns an error, <i>puArgErr</i> indicates only the first argument with an error. Arguments in pDispParams-&gt;rgvarg appear in reverse order, so the first argument is the one having the highest index in the array. This parameter cannot be null.</param>
            <returns>
            <para></para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>Use the function <b>ITypeInfo::Invoke</b> to access a member of an object or invoke a method that implements the interface described by this type description. For objects that support the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a> interface, you can use <b>Invoke</b> to implement <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-invoke">IDispatch::Invoke</a>.</para>
            <para><b>ITypeInfo::Invoke</b> takes a pointer to an instance of the class. Otherwise, its parameters are the same as <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-invoke">IDispatch::Invoke</a>, except that <b>ITypeInfo::Invoke</b> omits the <i>refiid</i> and <i>lcid</i> parameters. When called, <b>ITypeInfo::Invoke</b> performs the actions described by the <b>IDispatch::Invoke</b> parameters on the specified instance.</para>
            <para>For VTBL interface members, <b>ITypeInfo::Invoke</b> passes the LCID of the type information into parameters tagged with the lcid attribute, and the returned value into the retval attribute.</para>
            <para>If the type description inherits from another type description, this function recurses on the base type description to find the item with the requested member ID.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-invoke#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetDocumentation(System.Int32,Windows.Win32.SysFreeStringSafeHandle@,Windows.Win32.SysFreeStringSafeHandle@,System.UInt32@,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetDocumentation(System.Int32,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt32*,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetDocumentation(System.Int32,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt32*,Windows.Win32.Foundation.BSTR*)">
            <summary>Retrieves the documentation string, the complete Help file name and path, and the context ID for the Help topic for a specified type description.</summary>
            <param name="memid">The ID of the member whose documentation is to be returned.</param>
            <param name="pBstrName">The name of the specified item. If the caller does not need the item name, <i>pBstrName</i> can be null.</param>
            <param name="pBstrDocString">The documentation string for the specified item. If the caller does not need the documentation string, <i>pBstrDocString</i> can be null.</param>
            <param name="pdwHelpContext">The Help localization context. If the caller does not need the Help context, it can be null.</param>
            <param name="pBstrHelpFile">The fully qualified name of the file containing the DLL used for Help file. If the caller does not need the file name, it can be null.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The function <b>GetDocumentation</b> provides access to the documentation for the member specified by the <i>memid</i> parameter. If the passed-in <i>memid</i> is MEMBERID_NIL, then the documentation for the type description is returned.</para>
            <para>If the type description inherits from another type description, this function is recursive to the base type description, if necessary, to find the item with the requested member ID.</para>
            <para>The caller should use <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-sysfreestring">SysFreeString</a> to free the BSTRs referenced by <i>pBstrName</i>, <i>pBstrDocString</i>, and <i>pBstrHelpFile</i>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-getdocumentation#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetDllEntry(System.Int32,Windows.Win32.System.Com.INVOKEKIND,Windows.Win32.SysFreeStringSafeHandle@,Windows.Win32.SysFreeStringSafeHandle@,System.UInt16@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetDllEntry(System.Int32,Windows.Win32.System.Com.INVOKEKIND,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt16*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetDllEntry(System.Int32,Windows.Win32.System.Com.INVOKEKIND,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt16*)">
            <summary>Retrieves a description or specification of an entry point for a function in a DLL.</summary>
            <param name="memid">The ID of the member function whose DLL entry description is to be returned.</param>
            <param name="invKind">The kind of member identified by <i>memid</i>. This is important for properties, because one <i>memid</i> can identify up to three separate functions.</param>
            <param name="pBstrDllName">If not null, the function sets <i>pBstrDllName</i> to the name of the DLL.</param>
            <param name="pBstrName">If not null, the function sets <i>pBstrName</i> to the name of the entry point. If the entry point is specified by an ordinal, this argument is null.</param>
            <param name="pwOrdinal">If not null, and if the function is defined by an ordinal, the function sets <i>pwOrdinal</i> to the ordinal.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The caller passes in a member ID, which represents the member function whose entry description is desired. If the function has a DLL entry point, the name of the DLL that contains the function, as well as its name or ordinal identifier, are placed in the passed-in pointers allocated by the caller. If there is no DLL entry point for the function, an error is returned.</para>
            <para>If the type description inherits from another type description, this function is recursive to the base type description, if necessary, to find the item with the requested member ID.</para>
            <para>The caller should use <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-sysfreestring">SysFreeString</a> to free the BSTRs referenced by <i>pBstrName</i> and <i>pBstrDllName</i>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-getdllentry#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetRefTypeInfo(System.UInt32,Windows.Win32.System.Com.ITypeInfo**)">
            <summary>If a type description references other type descriptions, it retrieves the referenced type descriptions.</summary>
            <param name="hRefType">A handle to the referenced type description to return.</param>
            <param name="ppTInfo">The referenced type description.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>On return, the second parameter contains a pointer to a pointer to a type description that is referenced by this type description. A type description must have a reference to each type description that occurs as the type of any of its variables, function parameters, or function return types. For example, if the type of a data member is a record type, the type description for that data member contains the <i>hRefType</i> of a referenced type description. To get a pointer to the type description, the reference is passed to <b>GetRefTypeInfo</b>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.AddressOfMember(System.Int32,Windows.Win32.System.Com.INVOKEKIND,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.AddressOfMember(System.Int32,Windows.Win32.System.Com.INVOKEKIND,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.AddressOfMember(System.Int32,Windows.Win32.System.Com.INVOKEKIND,System.Void**)">
            <summary>Retrieves the addresses of static functions or variables, such as those defined in a DLL.</summary>
            <param name="memid">The member ID of the static member whose address is to be retrieved. The member ID is defined by the DISPID.</param>
            <param name="invKind">Indicates whether the member is a property, and if so, what kind.</param>
            <param name="ppv">The static member.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The addresses are valid until the caller releases its reference to the type description. The <i>invKind</i> parameter can be ignored unless the address of a property function is being requested. If the type description inherits from another type description, this function is recursive to the base type description, if necessary, to find the item with the requested member ID.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-addressofmember#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.CreateInstance(Windows.Win32.System.Com.IUnknown*,System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.CreateInstance(Windows.Win32.System.Com.IUnknown*,System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.CreateInstance(Windows.Win32.System.Com.IUnknown*,System.Guid*,System.Void**)">
            <summary>Creates a new instance of a type that describes a component object class (coclass).</summary>
            <param name="pUnkOuter">The controlling <b>IUnknown</b>. If Null, then a stand-alone instance is created. If valid, then an aggregate object is created.</param>
            <param name="riid">An ID for the interface that the caller will use to communicate with the resulting object.</param>
            <param name="ppvObj">An instance of the created object.</param>
            <returns>
            <para></para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>For types that describe a component object class (coclass), <b>CreateInstance</b> creates a new instance of the class. Normally, <b>CreateInstance</b> calls <b>CoCreateInstance</b> with the type description's GUID. For an Application object, it first calls <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-getactiveobject">GetActiveObject</a>. If the application is active, <b>GetActiveObject</b> returns the active object; otherwise, if <b>GetActiveObject</b> fails, <b>CreateInstance</b> calls <b>CoCreateInstance</b>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetMops(System.Int32,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetMops(System.Int32,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetMops(System.Int32,Windows.Win32.Foundation.BSTR*)">
            <summary>Retrieves marshaling information.</summary>
            <param name="memid">The member ID that indicates which marshaling information is needed.</param>
            <param name="pBstrMops">The opcode string used in marshaling the fields of the structure described by the referenced type description, or null if there is no information to return.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>If the passed-in member ID is MEMBERID_NIL, the function returns the opcode string for marshaling the fields of the structure described by the type description. Otherwise, it returns the opcode string for marshaling the function specified by the index.</para>
            <para>If the type description inherits from another type description, this function recurses on the base type description, if necessary, to find the item with the requested member ID.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-getmops#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetContainingTypeLib(Windows.Win32.System.Com.ITypeLib**,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetContainingTypeLib(Windows.Win32.System.Com.ITypeLib**,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetContainingTypeLib(Windows.Win32.System.Com.ITypeLib**,System.UInt32*)">
            <summary>Retrieves the containing type library and the index of the type description within that type library.</summary>
            <param name="ppTLib">The containing type library.</param>
            <param name="pIndex">The index of the type description within the containing type library.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-getcontainingtypelib">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.ReleaseTypeAttr(Windows.Win32.System.Com.TYPEATTR@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.ReleaseTypeAttr(Windows.Win32.System.Com.TYPEATTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.ReleaseTypeAttr(Windows.Win32.System.Com.TYPEATTR*)">
            <summary>Releases a TYPEATTR previously returned by ITypeInfo::GetTypeAttr.</summary>
            <param name="pTypeAttr">The TYPEATTR to be freed.</param>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-releasetypeattr">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.ReleaseFuncDesc(Windows.Win32.System.Com.FUNCDESC@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.ReleaseFuncDesc(Windows.Win32.System.Com.FUNCDESC*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.ReleaseFuncDesc(Windows.Win32.System.Com.FUNCDESC*)">
            <summary>Releases a FUNCDESC previously returned by ITypeInfo::GetFuncDesc.</summary>
            <param name="pFuncDesc">The FUNCDESC to be freed.</param>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-releasefuncdesc">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.ReleaseVarDesc(Windows.Win32.System.Com.VARDESC@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.ReleaseVarDesc(Windows.Win32.System.Com.VARDESC*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.ReleaseVarDesc(Windows.Win32.System.Com.VARDESC*)">
            <summary>Releases a VARDESC previously returned by ITypeInfo::GetVarDesc.</summary>
            <param name="pVarDesc">The VARDESC to be freed.</param>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-releasevardesc">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.ITypeInfo.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{00020401-0000-0000-c000-000000000046}</value>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfoCount">
            <summary>Provides the number of type descriptions that are in a type library.</summary>
            <returns>The number of type descriptions in the type library.</returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypelib-gettypeinfocount">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfo(System.UInt32,Windows.Win32.System.Com.ITypeInfo**)">
            <summary>Retrieves the specified type description in the library.</summary>
            <param name="index">The index of the interface to be returned.</param>
            <param name="ppTInfo">If successful, returns a pointer to the pointer to the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a> interface.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>For dual interfaces, <b>GetTypeInfo</b> returns only the TKIND_DISPATCH type information. To get the TKIND_INTERFACE type information, <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-getreftypeofimpltype">GetRefTypeOfImplType</a> can be called on the TKIND_DISPATCH type information, passing an index of –1. Then, the returned type information handle can be passed to <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-getreftypeinfo">GetRefTypeInfo</a>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfoType(System.UInt32,Windows.Win32.System.Com.TYPEKIND@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfoType(System.UInt32,Windows.Win32.System.Com.TYPEKIND*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfoType(System.UInt32,Windows.Win32.System.Com.TYPEKIND*)">
            <summary>Retrieves the type of a type description.</summary>
            <param name="index">The index of the type description within the type library.</param>
            <param name="pTKind">The <a href="https://docs.microsoft.com/windows/desktop/api/oaidl/ne-oaidl-typekind">TYPEKIND</a> enumeration value for the type description.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypelib-gettypeinfotype">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfoOfGuid(System.Guid@,Windows.Win32.System.Com.ITypeInfo**)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfoOfGuid(System.Guid*,Windows.Win32.System.Com.ITypeInfo**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfoOfGuid(System.Guid*,Windows.Win32.System.Com.ITypeInfo**)">
            <summary>Retrieves the type description that corresponds to the specified GUID.</summary>
            <param name="guid">The GUID of the type description.</param>
            <param name="ppTinfo">The <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a> interface.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypelib-gettypeinfoofguid">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetLibAttr(Windows.Win32.System.Com.TLIBATTR*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.GetLibAttr(Windows.Win32.System.Com.TLIBATTR**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetLibAttr(Windows.Win32.System.Com.TLIBATTR**)">
            <summary>Retrieves the structure that contains the library's attributes.</summary>
            <param name="ppTLibAttr">The library's attributes.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>Use <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypelib-releasetlibattr">ITypeLib::ReleaseTLibAttr</a> to free the memory occupied by the TLIBATTR structure.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetTypeComp(Windows.Win32.System.Com.ITypeComp**)">
            <summary>Enables a client compiler to bind to the types, variables, constants, and global functions for a library.</summary>
            <param name="ppTComp">The <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> instance for this <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypelib">ITypeLib</a>. A client compiler uses the methods in the <b>ITypeComp</b> interface to bind to types in <b>ITypeLib</b>, as well as to the global functions, variables, and constants defined in <b>ITypeLib</b></param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The <a href="https://docs.microsoft.com/windows/desktop/api/oaidl/nf-oaidl-itypecomp-bind">Bind</a> function of the returned <b>TypeComp</b> binds to global functions, variables, constants, enumerated values, and coclass members. The <b>Bind</b> function also binds the names of the TYPEKIND enumerations of TKIND_MODULE, TKIND_ENUM, and TKIND_COCLASS. These names shadow any global names defined within the type information. The members of TKIND_ENUM, TKIND_MODULE, and TKIND_COCLASS types marked as Application objects can be directly bound to from <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> without specifying the name of the module.</para>
            <para><a href="https://docs.microsoft.com/windows/desktop/api/oaidl/nf-oaidl-itypecomp-bind">ITypeComp::Bind</a> and <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypecomp-bindtype">ITypeComp::BindType</a> accept only unqualified names. <b>ITypeLib::GetTypeComp</b> returns a pointer to the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> interface, which is then used to bind to global elements in the library. The names of some types (TKIND_ENUM, TKIND_MODULE, and TKIND_COCLASS) share the name space with variables, functions, constants, and enumerators. If a member requires qualification to differentiate it from other items in the name space, <b>GetTypeComp</b> can be called successively for each qualifier in order to bind to the desired member. This allows programming language compilers to access members of modules, enumerations, and coclasses, even though the member can't be bound to with a qualified name.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypelib-gettypecomp#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetDocumentation(System.Int32,Windows.Win32.SysFreeStringSafeHandle@,Windows.Win32.SysFreeStringSafeHandle@,System.UInt32@,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.GetDocumentation(System.Int32,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt32*,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetDocumentation(System.Int32,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt32*,Windows.Win32.Foundation.BSTR*)">
            <summary>Retrieves the documentation string for the library, the complete Help file name and path, and the context identifier for the library Help topic in the Help file.</summary>
            <param name="index">The index of the type description whose documentation is to be returned. If <i>index</i> is -1, then the documentation for the library itself is returned.</param>
            <param name="pBstrName">The name of the specified item. If the caller does not need the item name, then <i>pBstrName</i> can be null.</param>
            <param name="pBstrDocString">The documentation string for the specified item. If the caller does not need the documentation string, then <i>pBstrDocString</i> can be null..</param>
            <param name="pdwHelpContext">The Help context identifier (ID) associated with the specified item. If the caller does not need the Help context ID, then <i>pdwHelpContext</i> can be null.</param>
            <param name="pBstrHelpFile">The fully qualified name of the Help file. If the caller does not need the Help file name, then <i>pBstrHelpFile</i> can be null.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>The caller should free the parameters <i>pBstrName</i>, <i>pBstrDocString</i>, and <i>pBstrHelpFile</i>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.IsName(System.Span{System.Char}@,System.UInt32,Windows.Win32.Foundation.BOOL@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.IsName(Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.Foundation.BOOL*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.IsName(Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.Foundation.BOOL*)">
            <summary>Indicates whether a passed-in string contains the name of a type or member described in the library.</summary>
            <param name="szNameBuf">The string to test. If this method is successful, <i>szNameBuf</i> is modified to match the case (capitalization) found in the type library.</param>
            <param name="lHashVal">The hash value of <i>szNameBuf</i>.</param>
            <param name="pfName">True if <i>szNameBuf</i> was found in the type library; otherwise false.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypelib-isname">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.FindName(System.Span{System.Char}@,System.UInt32,Windows.Win32.System.Com.ITypeInfo**,System.Int32*,System.UInt16@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.FindName(Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.System.Com.ITypeInfo**,System.Int32*,System.UInt16*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.FindName(Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.System.Com.ITypeInfo**,System.Int32*,System.UInt16*)">
            <summary>Finds occurrences of a type description in a type library. This may be used to quickly verify that a name exists in a type library.</summary>
            <param name="szNameBuf">The name to search for.</param>
            <param name="lHashVal">A hash value to speed up the search, computed by the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-lhashvalofnamesys">LHashValOfNameSys</a> function. If <i>lHashVal</i> = 0, a value is computed.</param>
            <param name="ppTInfo">An array of pointers to the type descriptions that contain the name specified in <i>szNameBuf</i>. This parameter cannot be null.</param>
            <param name="rgMemId">An array of the found items; <i>rgMemId</i>[<i>i</i>] is the MEMBERID that indexes into the type description specified by <i>ppTInfo</i>[<i>i</i>]. This parameter cannot be null.</param>
            <param name="pcFound">
            <para>On entry, indicates how many instances to look for. For example, *<i>pcFound</i> = 1 can be called to find the first occurrence. The search stops when one is found. On exit, indicates the number of instances that were found. If the in and out values of *<i>pcFound</i> are identical, there may be more type descriptions that contain the name.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypelib-findname#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>Passing *<i>pcFound</i> = <i>n</i> indicates that there is enough room in the <i>ppTInfo</i> and <i>rgMemId</i> arrays for <i>n</i> (<i>ptinfo</i>, <i>memid</i>) pairs. The function returns MEMBERID_NIL in <i>rgMemId</i>[<i>i</i>], if the name in <i>szNameBuf</i> is the name of the type information in <i>ppTInfo</i>[<i>i</i>].</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.ReleaseTLibAttr(Windows.Win32.System.Com.TLIBATTR@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.ReleaseTLibAttr(Windows.Win32.System.Com.TLIBATTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.ReleaseTLibAttr(Windows.Win32.System.Com.TLIBATTR*)">
            <summary>Releases the TLIBATTR originally obtained from GetLibAttr.</summary>
            <param name="pTLibAttr">The TLIBATTR to be freed.</param>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypelib-releasetlibattr">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.ITypeLib.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{00020402-0000-0000-c000-000000000046}</value>
        </member>
        <member name="M:Windows.Win32.System.Com.IUnknown.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.IUnknown.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Windows.Win32.System.Com.IUnknown.QueryInterface(System.Guid*,System.Void**)" -->
        <member name="M:Windows.Win32.System.Com.IUnknown.AddRef">
            <summary>Increments the reference count for an interface pointer to a COM object. You should call this method whenever you make a copy of an interface pointer.</summary>
            <returns>The method returns the new reference count. This value is intended to be used only for test purposes.</returns>
            <remarks>
            <para>A COM object uses a per-interface reference-counting mechanism to ensure that the object doesn't outlive references to it. You use **AddRef** to stabilize a copy of an interface pointer. It can also be called when the life of a cloned pointer must extend beyond the lifetime of the original pointer. The cloned pointer must be released by calling [IUnknown::Release](/windows/desktop/api/unknwn/nf-unknwn-iunknown-queryinterface(refiid_void)) on it. The internal reference counter that **AddRef** maintains should be a 32-bit unsigned integer.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/unknwn/nf-unknwn-iunknown-addref#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IUnknown.Release">
            <summary>Decrements the reference count for an interface on a COM object.</summary>
            <returns>The method returns the new reference count. This value is intended to be used only for test purposes.</returns>
            <remarks>
            <para>When the reference count on an object reaches zero, **Release** must cause the interface pointer to free itself. When the released pointer is the only (formerly) outstanding reference to an object (whether the object supports single or multiple interfaces), the implementation must free the object. Note that aggregation of objects restricts the ability to recover interface pointers.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/unknwn/nf-unknwn-iunknown-release#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.IUnknown.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{00000000-0000-0000-c000-000000000046}</value>
        </member>
        <member name="T:Windows.Win32.System.Com.LOCKTYPE">
            <summary>The LOCKTYPE enumeration values indicate the type of locking requested for the specified range of bytes. The values are used in the ILockBytes::LockRegion and IStream::LockRegion methods.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/ne-objidl-locktype">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.LOCKTYPE.LOCK_WRITE">
            <summary>If this lock is granted, the specified range of bytes can be opened and read any number of times, but writing to the locked range is prohibited except for the owner that was granted this lock.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.LOCKTYPE.LOCK_EXCLUSIVE">
            <summary>If this lock is granted, writing to the specified range of bytes is prohibited except by the owner that was granted this lock.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.LOCKTYPE.LOCK_ONLYONCE">
            <summary>If this lock is granted, no other <b>LOCK_ONLYONCE</b> lock can be obtained on the range. Usually this lock type is an alias for some other lock type. Thus, specific implementations can have additional behavior associated with this lock type.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.SAFEARRAY">
            <summary>Represents a safe array.</summary>
            <remarks>
            <para>The array <b>rgsabound</b> is stored with the left-most dimension in rgsabound[0] and the right-most dimension in <c>rgsabound[cDims - 1]</c>. If an array was specified in a C-like syntax as a [2][5], it would have two elements in the <b>rgsabound</b> vector. Element 0 has an <b>lLbound</b> of 0 and a <b>cElements</b> of 2. Element 1 has an <b>lLbound</b> of 0 and a <b>cElements</b> of 5.</para>
            <para>The <b>fFeatures</b> flags describe attributes of an array that can affect how the array is released. The <b>fFeatures</b> field describes what type of data is stored in the <b>SAFEARRAY</b> and how the array is allocated. This allows freeing the array without referencing its containing variant.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-safearray#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAY.cDims">
            <summary>The number of dimensions.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAY.fFeatures">
            <summary>
            <para>Flags. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-safearray#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAY.cbElements">
            <summary>The size of an array element.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAY.cLocks">
            <summary>The number of times the array has been locked without a corresponding unlock.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAY.pvData">
            <summary>The data.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAY.rgsabound">
            <summary>One bound for each dimension.</summary>
        </member>
        <member name="M:Windows.Win32.System.Com.SAFEARRAY.SizeOf(System.Int32)">
            <summary>Computes the amount of memory that must be allocated to store this struct, including the specified number of elements in the variable length inline array at the end.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.SAFEARRAYBOUND">
            <summary>Represents the bounds of one dimension of the array.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-safearraybound">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAYBOUND.cElements">
            <summary>The number of elements in the dimension.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAYBOUND.lLbound">
            <summary>The lower bound of the dimension.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.STATSTG">
            <summary>Contains statistical data about an open storage, stream, or byte-array object.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/ns-objidl-statstg">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.STATSTG.pwcsName">
            <summary>
            <para>A pointer to a <b>NULL</b>-terminated Unicode string that contains the name. Space for this string is allocated by the method called and freed by the caller (for more information, see <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-cotaskmemfree">CoTaskMemFree</a>). To  not return this member, specify the STATFLAG_NONAME value when you call a method that returns a <b>STATSTG</b> structure, except for calls to <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nn-objidl-ienumstatstg">IEnumSTATSTG::Next</a>, which provides no way to specify this value.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/ns-objidl-statstg#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.STATSTG.type">
            <summary>
            <para>Indicates the type of storage object. This is one of the values from the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/ne-objidl-stgty">STGTY</a> enumeration.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/ns-objidl-statstg#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.STATSTG.cbSize">
            <summary>Specifies the size, in bytes, of the stream or byte array.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.STATSTG.mtime">
            <summary>Indicates the last modification time for this storage, stream, or byte array.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.STATSTG.ctime">
            <summary>Indicates the creation time for this storage, stream, or byte array.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.STATSTG.atime">
            <summary>Indicates the last access time for this storage, stream, or byte array.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.STATSTG.grfMode">
            <summary>
            <para>Indicates the access mode specified when the object was opened. This member is only valid in calls to <b>Stat</b> methods.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/ns-objidl-statstg#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.STATSTG.clsid">
            <summary>Indicates the class identifier for the storage object; set to CLSID_NULL for new storage objects. This member is not used for streams or byte arrays.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.STATSTG.grfStateBits">
            <summary>
            <para>Indicates the current state bits of the storage object; that is, the value most recently set by the <a href="https://docs.microsoft.com/windows/desktop/api/objidl/nf-objidl-istorage-setstatebits">IStorage::SetStateBits</a> method. This member is not valid for streams or byte arrays.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/objidl/ns-objidl-statstg#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.STATSTG.reserved">
            <summary>Reserved for future use.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.STGM">
            <summary>Flags that indicate conditions for creating and deleting the object and access modes for the object.</summary>
            <remarks>You can combine these flags, but you can only choose one flag from each group of related flags. Typically one flag from each of the access and sharing groups must be specified for all functions and methods which use these constants. Flags from other groups are optional.</remarks>
        </member>
        <member name="T:Windows.Win32.System.Com.SYSKIND">
            <summary>Identifies the target operating system platform.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-syskind">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.SYSKIND.SYS_WIN16">
            <summary>The target operating system for the type library is 16-bit Windows. By default, data members are packed.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SYSKIND.SYS_WIN32">
            <summary>The target operating system for the type library is 32-bit Windows. By default, data members are naturally aligned (for example, 2-byte integers are aligned on even-byte boundaries; 4-byte integers are aligned on quad-word boundaries, and so on).</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SYSKIND.SYS_MAC">
            <summary>The target operating system for the type library is Apple Macintosh. By default, all data members are aligned on even-byte boundaries.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SYSKIND.SYS_WIN64">
            <summary>The target operating system for the type library is 64-bit Windows.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.TLIBATTR">
            <summary>Contains information about a type library. Information from this structure is used to identify the type library and to provide national language support for member names.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-tlibattr">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.TLIBATTR.guid">
            <summary>The globally unique identifier.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TLIBATTR.lcid">
            <summary>The locale identifier.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TLIBATTR.syskind">
            <summary>The target hardware platform.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TLIBATTR.wMajorVerNum">
            <summary>The major version number.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TLIBATTR.wMinorVerNum">
            <summary>The minor version number.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TLIBATTR.wLibFlags">
            <summary>The library flags.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.TYPEATTR">
            <summary>Contains attributes of a type.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-typeattr">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.guid">
            <summary>The GUID of the type information.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.lcid">
            <summary>The locale of member names and documentation strings.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.dwReserved">
            <summary>Reserved.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.memidConstructor">
            <summary>The constructor ID, or MEMBERID_NIL if none.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.memidDestructor">
            <summary>The destructor ID, or MEMBERID_NIL if none.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.lpstrSchema">
            <summary>Reserved.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.cbSizeInstance">
            <summary>The size of an instance of this type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.typekind">
            <summary>The kind of type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.cFuncs">
            <summary>The number of functions.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.cVars">
            <summary>The number of variables or data members.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.cImplTypes">
            <summary>The number of implemented interfaces.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.cbSizeVft">
            <summary>The size of this type's VTBL.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.cbAlignment">
            <summary>The byte alignment for an instance of this type. A value of 0 indicates alignment on the 64K boundary; 1 indicates no special alignment. For other values, <i>n</i> indicates aligned on byte <i>n</i>.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.wTypeFlags">
            <summary>The type flags. See <a href="https://docs.microsoft.com/windows/desktop/api/oaidl/ne-oaidl-typeflags">TYPEFLAGS</a>.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.wMajorVerNum">
            <summary>The major version number.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.wMinorVerNum">
            <summary>The minor version number.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.tdescAlias">
            <summary>If <b>typekind</b> is TKIND_ALIAS, specifies the type for which this type is an alias.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.idldescType">
            <summary>The IDL attributes of the described type.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.TYPEDESC">
            <summary>Describes the type of a variable, the return type of a function, or the type of a function parameter.</summary>
            <remarks>If the variable is VT_SAFEARRAY or VT_PTR, the union portion of the TYPEDESC contains a pointer to a TYPEDESC that specifies the element type.</remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEDESC.vt">
            <summary>The variant type.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.TYPEKIND">
            <summary>Specifies a type.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-typekind">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_ENUM">
            <summary>A set of enumerators.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_RECORD">
            <summary>A structure with no methods.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_MODULE">
            <summary>A module that can only have static functions and data (for example, a DLL).</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_INTERFACE">
            <summary>A type that has virtual and pure functions.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_DISPATCH">
            <summary>A set of methods and properties that are accessible through <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-invoke">IDispatch::Invoke</a>. By default, dual interfaces return TKIND_DISPATCH.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_COCLASS">
            <summary>A set of implemented component object interfaces.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_ALIAS">
            <summary>A type that is an alias for another type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_UNION">
            <summary>A union, all of whose members have an offset of zero.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_MAX">
            <summary>End of enum marker.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.VARDESC">
            <summary>Describes a variable, constant, or data member.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-vardesc">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.VARDESC.memid">
            <summary>The member ID.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARDESC.lpstrSchema">
            <summary>Reserved.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARDESC.elemdescVar">
            <summary>The variable type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARDESC.wVarFlags">
            <summary>The variable flags. See <a href="https://docs.microsoft.com/windows/desktop/api/oaidl/ne-oaidl-varflags">VARFLAGS</a>.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARDESC.varkind">
            <summary>The variable type.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.VARFLAGS">
            <summary>Specifies variable flags.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-varflags">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FREADONLY">
            <summary>Assignment to the variable should not be allowed.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FSOURCE">
            <summary>The variable returns an object that is a source of events.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FBINDABLE">
            <summary>The variable supports data binding.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FREQUESTEDIT">
            <summary>When set, any attempt to directly change the property results in a call to <b>IPropertyNotifySink::OnRequestEdit</b>. The implementation of <b>OnRequestEdit</b> determines if the change is accepted.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FDISPLAYBIND">
            <summary>The variable is displayed to the user as bindable. VARFLAG_FBINDABLE must also be set.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FDEFAULTBIND">
            <summary>The variable is the single property that best represents the object. Only one variable in type information can have this attribute.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FHIDDEN">
            <summary>The variable should not be displayed to the user in a browser, although it exists and is bindable.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FRESTRICTED">
            <summary>The variable should not be accessible from macro languages. This flag is intended for system-level variables or variables that you do not want type browsers to display.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FDEFAULTCOLLELEM">
            <summary>Permits an optimization in which the compiler looks for a member named "xyz" on the type of abc. If such a member is found and is flagged as an accessor function for an element of the default collection, then a call is generated to that member function. Permitted on members in dispinterfaces and interfaces; not permitted on modules.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FUIDEFAULT">
            <summary>The variable is the default display in the user interface.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FNONBROWSABLE">
            <summary>The variable appears in an object browser, but not in a properties browser.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FREPLACEABLE">
            <summary>Tags the interface as having default behaviors.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FIMMEDIATEBIND">
            <summary>The variable is mapped as individual bindable properties.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.VARKIND">
            <summary>Specifies the variable type.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-varkind">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.VARKIND.VAR_PERINSTANCE">
            <summary>The variable is a field or member of the type. It exists at a fixed offset within each instance of the type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARKIND.VAR_STATIC">
            <summary>There is only one instance of the variable.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARKIND.VAR_CONST">
            <summary>The VARDESC describes a symbolic constant. There is no memory associated with it.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARKIND.VAR_DISPATCH">
            <summary>The variable can only be accessed through <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-invoke">IDispatch::Invoke</a>.</summary>
        </member>
        <member name="T:Windows.Win32.System.Ole.ARRAYDESC">
            <summary>Describes an array, its element type, and its dimension.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-arraydesc">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Ole.ARRAYDESC.tdescElem">
            <summary>The element type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Ole.ARRAYDESC.cDims">
            <summary>The dimension count.</summary>
        </member>
        <member name="F:Windows.Win32.System.Ole.ARRAYDESC.rgbounds">
            <summary>A variable-length array containing one element for each dimension.</summary>
        </member>
        <member name="M:Windows.Win32.System.Ole.ARRAYDESC.SizeOf(System.Int32)">
            <summary>Computes the amount of memory that must be allocated to store this struct, including the specified number of elements in the variable length inline array at the end.</summary>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.RecordInit(System.Void*)">
            <summary>Initializes a new instance of a record.</summary>
            <param name="pvNew">An instance of a record.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The caller must allocate the memory of the record by its appropriate size using the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-getsize">GetSize</a> method. <b>RecordInit</b> sets all contents of the record to 0 and the record should hold no resources.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-recordinit#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.RecordClear(System.Void*)">
            <summary>Releases object references and other values of a record without deallocating the record.</summary>
            <param name="pvExisting">The record to be cleared.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks><b>RecordClear</b> releases memory blocks held by VT_PTR or VT_SAFEARRAY instance fields. The caller needs to free the instance fields memory, <b>RecordClear</b> will do nothing if there are no resources held.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.RecordCopy(System.Void*,System.Void*)">
            <summary>Copies an existing record into the passed in buffer.</summary>
            <param name="pvExisting">The current record instance.</param>
            <param name="pvNew">The destination where the record will be copied.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks><b>RecordCopy</b> will release the resources in the destination first. The caller is responsible for allocating sufficient memory in the destination by calling <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-getsize">GetSize</a> or  <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-recordcreate">RecordCreate</a>. If <b>RecordCopy</b> fails to copy any of the fields then all fields will be cleared, as though <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-recordclear">RecordClear</a> had been called.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetGuid(System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.GetGuid(System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetGuid(System.Guid*)">
            <summary>Gets the GUID of the record type.</summary>
            <param name="pguid">The class GUID of the TypeInfo that describes the UDT.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-getguid">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetName(Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.GetName(Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetName(Windows.Win32.Foundation.BSTR*)">
            <summary>Gets the name of the record type.</summary>
            <param name="pbstrName">The name.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>The caller must free the BSTR by calling <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-sysfreestring">SysFreeString</a>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetSize(System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.GetSize(System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetSize(System.UInt32*)">
            <summary>Gets the number of bytes of memory necessary to hold the record instance.</summary>
            <param name="pcbSize">The size of a record instance, in bytes.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-getsize">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetTypeInfo(Windows.Win32.System.Com.ITypeInfo**)">
            <summary>Retrieves the type information that describes a UDT or safearray of UDTs.</summary>
            <param name="ppTypeInfo">The information type of the record.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks><b>AddRef</b> is called on the pointer <i>ppTypeInfo</i>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetField(System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.GetField(System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetField(System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)">
            <summary>Returns a pointer to the VARIANT containing the value of a given field name.</summary>
            <param name="pvData">The instance of a record.</param>
            <param name="szFieldName">The field name.</param>
            <param name="pvarField">The VARIANT that you want to hold the value of the field name, <i>szFieldName</i>. On return, places a copy of the field's value in the variant.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The VARIANT that you pass in contains a copy of the field's value upon return. If you modify the VARIANT then the underlying record field does not change. The caller allocates memory of the VARIANT. The method <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-variantclear">VariantClear</a> is called for <i>pvarField</i> before copying.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-getfield#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetFieldNoCopy(System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.GetFieldNoCopy(System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetFieldNoCopy(System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*,System.Void**)">
            <summary>Returns a pointer to the value of a given field name without copying the value and allocating resources.</summary>
            <param name="pvData">The instance of a record.</param>
            <param name="szFieldName">The name of the field.</param>
            <param name="pvarField">The VARIANT that will contain the UDT upon return.</param>
            <param name="ppvDataCArray">Receives the value of the field upon return.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>Upon return, the VARIANT you pass contains a direct pointer to the record's field, <i>ppvDataCArray</i>. If you modify the VARIANT, then the underlying record field will change. The caller allocates memory of the VARIANT, but does not own the memory so cannot free <i>pvarField</i>. This method calls <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-variantclear">VariantClear</a> for <i>pvarField</i> before filling in the requested field.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-getfieldnocopy#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.PutField(System.UInt32,System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.PutField(System.UInt32,System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.PutField(System.UInt32,System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)">
            <summary>Puts a variant into a field.</summary>
            <param name="wFlags">
            <para>The only legal values for the wFlags parameter is INVOKE_PROPERTYPUT or INVOKE_PROPERTYPUTREF. If INVOKE_PROPERTYPUTREF is passed in then <b>PutField</b> just assigns the value of the variant that is passed in to the field using normal coercion rules. If INVOKE_PROPERTYPUT is passed in then specific rules apply. If the field is declared as a class that derives from <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a> and the field's value is NULL then an error will be returned. If the field's value is not NULL then the variant will be passed to the default property supported by the object referenced by the field. If the field is not declared as a class derived from <b>IDispatch</b> then an error will be returned. If the field is declared as a variant of type VT_Dispatch then the default value of the object is assigned to the field. Otherwise, the variant's value is assigned to the field.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-putfield#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="pvData">The pointer to an instance of the record.</param>
            <param name="szFieldName">The name of the field of the record.</param>
            <param name="pvarField">The pointer to the variant.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-putfield">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.PutFieldNoCopy(System.UInt32,System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.PutFieldNoCopy(System.UInt32,System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.PutFieldNoCopy(System.UInt32,System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)">
            <summary>Passes ownership of the data to the assigned field by placing the actual data into the field.</summary>
            <param name="wFlags">The only legal values for the wFlags parameter is INVOKE_PROPERTYPUT or INVOKE_PROPERTYPUTREF.</param>
            <param name="pvData">An instance of the record described by <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-irecordinfo">IRecordInfo</a>.</param>
            <param name="szFieldName">The name of the field of the record.</param>
            <param name="pvarField">The variant to be put into the field.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-putfieldnocopy">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetFieldNames(System.UInt32@,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.GetFieldNames(System.UInt32*,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetFieldNames(System.UInt32*,Windows.Win32.Foundation.BSTR*)">
            <summary>Gets the names of the fields of the record.</summary>
            <param name="pcNames">The number of names to return.</param>
            <param name="rgBstrNames">
            <para>The name of the array of type BSTR. If the <i>rgBstrNames</i> parameter is NULL, then <i>pcNames</i> is returned with the number of field names. It the <i>rgBstrNames</i> parameter is not NULL, then the string names contained in <i>rgBstrNames</i> are returned. If the number of names in <i>pcNames</i> and <i>rgBstrNames</i> are not equal then the lesser number of the two is the number of returned field names. The caller needs to free the BSTRs inside the array returned in <i>rgBstrNames</i>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-getfieldnames#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The caller should allocate memory for the array of BSTRs. If the array is larger than needed, set the unused portion to 0. On return, the caller will need to free each contained BSTR using <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-sysfreestring">SysFreeString</a>. In case of out of memory, <i>pcNames</i> points to error code.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-getfieldnames#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.IsMatchingType(Windows.Win32.System.Ole.IRecordInfo*)">
            <summary>Determines whether the record that is passed in matches that of the current record information.</summary>
            <param name="pRecordInfo">The information of the record.</param>
            <returns>
            <para></para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-ismatchingtype">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.RecordCreate">
            <summary>Allocates memory for a new record, initializes the instance and returns a pointer to the record.</summary>
            <returns>This method returns a pointer to the created record.</returns>
            <remarks>
            <para>The memory is set to zeros before it is returned. The records created must be freed by calling <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-recorddestroy">RecordDestroy</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-recordcreate#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.RecordCreateCopy(System.Void*,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.RecordCreateCopy(System.Void*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.RecordCreateCopy(System.Void*,System.Void**)">
            <summary>Creates a copy of an instance of a record to the specified location.</summary>
            <param name="pvSource">An instance of the record to be copied.</param>
            <param name="ppvDest">The new record with data copied from <i>pvSource</i>.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>The records created must be freed by calling <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-recorddestroy">RecordDestroy</a>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.RecordDestroy(System.Void*)">
            <summary>Releases the resources and deallocates the memory of the record.</summary>
            <param name="pvRecord">An instance of the record to be destroyed.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-recordclear">RecordClear</a> is called to release the resources held by the instance of a record without deallocating memory. <div class="alert"><b>Note</b>  This method can only be called on records allocated through <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-recordcreate">RecordCreate</a> and <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-recordcreatecopy">RecordCreateCopy</a>. If you allocate the record yourself, you cannot call this method.</div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-recorddestroy#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Ole.IRecordInfo.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{0000002f-0000-0000-c000-000000000046}</value>
        </member>
        <member name="T:Windows.Win32.System.Ole.PARAMDESC">
            <summary>Contains information needed for transferring a structure element, parameter, or function return value between processes.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-paramdesc">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Ole.PARAMDESC.pparamdescex">
            <summary>The default value for the parameter, if PARAMFLAG_FHASDEFAULT is specified in <b>wParamFlags</b>.</summary>
        </member>
        <member name="F:Windows.Win32.System.Ole.PARAMDESC.wParamFlags">
            <summary>The parameter flags. See <a href="https://docs.microsoft.com/previous-versions/windows/desktop/automat/paramflags">PARAMFLAG Constants</a>.</summary>
        </member>
        <member name="T:Windows.Win32.System.Ole.PARAMDESCEX">
            <summary>Contains information about the default value of a parameter.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-paramdescex">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Ole.PARAMDESCEX.cBytes">
            <summary>The size of the structure.</summary>
        </member>
        <member name="F:Windows.Win32.System.Ole.PARAMDESCEX.varDefaultValue">
            <summary>The default value of the parameter.</summary>
        </member>
        <member name="T:Windows.Win32.System.Variant.VARENUM">
            <summary>Specifies the variant types.</summary>
            <remarks>
            <para>The following table shows where these values can be used. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/wtypes/ne-wtypes-varenum#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_EMPTY">
            <summary>Not specified.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_NULL">
            <summary>Null.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_I2">
            <summary>A 2-byte integer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_I4">
            <summary>A 4-byte integer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_R4">
            <summary>A 4-byte real.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_R8">
            <summary>An 8-byte real.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_CY">
            <summary>Currency.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_DATE">
            <summary>A date.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_BSTR">
            <summary>A string.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_DISPATCH">
            <summary>An <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a> pointer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_ERROR">
            <summary>An SCODE value.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_BOOL">
            <summary>A Boolean value. True is -1 and false is 0.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_VARIANT">
            <summary>A variant pointer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_UNKNOWN">
            <summary>An <a href="https://docs.microsoft.com/windows/desktop/api/unknwn/nn-unknwn-iunknown">IUnknown</a> pointer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_DECIMAL">
            <summary>A 16-byte fixed-pointer value.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_I1">
            <summary>A character.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_UI1">
            <summary>An unsigned character.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_UI2">
            <summary>An unsigned short.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_UI4">
            <summary>An unsigned long.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_I8">
            <summary>A 64-bit integer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_UI8">
            <summary>A 64-bit unsigned integer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_INT">
            <summary>An integer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_UINT">
            <summary>An unsigned integer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_VOID">
            <summary>A C-style void.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_HRESULT">
            <summary>An HRESULT value.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_PTR">
            <summary>A pointer type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_SAFEARRAY">
            <summary>A safe array. Use VT_ARRAY in VARIANT.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_CARRAY">
            <summary>A C-style array.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_USERDEFINED">
            <summary>A user-defined type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_LPSTR">
            <summary>A null-terminated string.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_LPWSTR">
            <summary>A wide null-terminated string.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_RECORD">
            <summary>A user-defined type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_INT_PTR">
            <summary>A signed machine register size width.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_UINT_PTR">
            <summary>An unsigned machine register size width.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_FILETIME">
            <summary>A <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-filetime">FILETIME</a> value.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_BLOB">
            <summary>Length-prefixed bytes.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_STREAM">
            <summary>The name of the stream follows.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_STORAGE">
            <summary>The name of the storage follows.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_STREAMED_OBJECT">
            <summary>The stream contains an object.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_STORED_OBJECT">
            <summary>The storage contains an object.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_BLOB_OBJECT">
            <summary>The blob contains an object.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_CF">
            <summary>A clipboard format.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_CLSID">
            <summary>A class ID.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_VERSIONED_STREAM">
            <summary>A stream with a GUID version.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_BSTR_BLOB">
            <summary>Reserved.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_VECTOR">
            <summary>A simple counted array.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_ARRAY">
            <summary>A SAFEARRAY pointer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_BYREF">
            <summary>A void pointer for local use.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_RESERVED">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_ILLEGAL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_ILLEGALMASKED">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_TYPEMASK">
            <summary></summary>
        </member>
        <member name="T:Windows.Win32.System.Variant.VARIANT">
            <summary>VARIANTARG describes arguments passed within DISPPARAMS, and VARIANT to specify variant data that cannot be passed by reference.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-variant">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="T:Windows.Win32.UI.Shell.APPBARDATA">
            <summary>Contains information about a system appbar message.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/shellapi/ns-shellapi-appbardata">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.UI.Shell.APPBARDATA.cbSize">
            <summary>
            <para>Type: <b>DWORD</b> The size of the structure, in bytes.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/shellapi/ns-shellapi-appbardata#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Shell.APPBARDATA.hWnd">
            <summary>
            <para>Type: <b>HWND</b> The handle to the appbar window. Not all messages use this member. See the individual message page to see if you need to provide an <b>hWind</b> value.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/shellapi/ns-shellapi-appbardata#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Shell.APPBARDATA.uCallbackMessage">
            <summary>
            <para>Type: <b>UINT</b> An application-defined message identifier. The application uses the specified identifier for notification messages that it sends to the appbar identified by the <b>hWnd</b> member. This member is used when sending the <a href="https://docs.microsoft.com/windows/desktop/shell/abm-new">ABM_NEW</a> message.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/shellapi/ns-shellapi-appbardata#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Shell.APPBARDATA.uEdge">
            <summary>
            <para>Type: <b>UINT</b> A value that specifies an edge of the screen. This member is used when sending one of these messages: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/shellapi/ns-shellapi-appbardata#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Shell.APPBARDATA.rc">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rect">RECT</a></b> A <a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rect">RECT</a> structure whose use varies depending on the message:</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/shellapi/ns-shellapi-appbardata#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Shell.APPBARDATA.lParam">
            <summary>
            <para>Type: <b>LPARAM</b> A message-dependent value. This member is used with these messages: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/shellapi/ns-shellapi-appbardata#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="T:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW">
            <summary>Defines the initialization parameters passed to the window procedure of an application. These members are identical to the parameters of the CreateWindowEx function. (Unicode)</summary>
            <remarks>
            <para>Because the <b>lpszClass</b> member can contain a pointer to a local (and thus inaccessible) atom, do not obtain the class name by using this member. Use the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getclassname">GetClassName</a> function instead. You should access the data represented by the <b>lpCreateParams</b> member using a pointer that has been declared using the <b>UNALIGNED</b> type, because the pointer may not be <b>DWORD</b> aligned. This is demonstrated in the following example:</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.lpCreateParams">
            <summary>
            <para>Type: <b>LPVOID</b> Contains additional data which may be used to create the window. If the window is being created as a result of a call to the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createwindowa">CreateWindow</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createwindowexa">CreateWindowEx</a> function, this member contains the value of the <i>lpParam</i> parameter specified in the function call. If the window being created is a MDI client window, this member contains a pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-clientcreatestruct">CLIENTCREATESTRUCT</a> structure. If the window being created is a MDI child window, this member contains a pointer to an <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-mdicreatestructa">MDICREATESTRUCT</a> structure. If the window is being created from a dialog template, this member is the address of a <b>SHORT</b> value that specifies the size, in bytes, of the window creation data. The value is immediately followed by the creation data. For more information, see the following Remarks section.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.hInstance">
            <summary>
            <para>Type: <b>HINSTANCE</b> A handle to the module that owns the new window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.hMenu">
            <summary>
            <para>Type: <b>HMENU</b> A handle to the menu to be used by the new window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.hwndParent">
            <summary>
            <para>Type: <b>HWND</b> A handle to the parent window, if the window is a child window. If the window is owned, this member identifies the owner window. If the window is not a child or owned window, this member is <b>NULL</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.cy">
            <summary>
            <para>Type: <b>int</b> The height of the new window, in pixels.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.cx">
            <summary>
            <para>Type: <b>int</b> The width of the new window, in pixels.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.y">
            <summary>
            <para>Type: <b>int</b> The y-coordinate of the upper left corner of the new window. If the new window is a child window, coordinates are relative to the parent window. Otherwise, the coordinates are relative to the screen origin.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.x">
            <summary>
            <para>Type: <b>int</b> The x-coordinate of the upper left corner of the new window. If the new window is a child window, coordinates are relative to the parent window. Otherwise, the coordinates are relative to the screen origin.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.lpszName">
            <summary>
            <para>Type: <b>LPCTSTR</b> The name of the new window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.lpszClass">
            <summary>
            <para>Type: <b>LPCTSTR</b> A pointer to a null-terminated string or an atom that specifies the class name of the new window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.dwExStyle">
            <summary>
            <para>Type: <b>DWORD</b> The extended window style for the new window. For a list of possible values, see  <a href="https://docs.microsoft.com/windows/desktop/winmsg/extended-window-styles">Extended Window Styles</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="T:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW">
            <summary>Contains window class information. (Unicode)</summary>
            <remarks>
            <para>> [!NOTE] > The winuser.h header defines WNDCLASSEX as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see [Conventions for Function Prototypes](/windows/win32/intl/conventions-for-function-prototypes).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.cbSize">
            <summary>
            <para>Type: <b>UINT</b> The size, in bytes, of this structure. Set this member to <c>sizeof(WNDCLASSEX)</c>. Be sure to set this member before calling the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getclassinfoexa">GetClassInfoEx</a> function.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.style">
            <summary>
            <para>Type: <b>UINT</b> The class style(s). This member can be any combination of the <a href="https://docs.microsoft.com/windows/win32/winmsg/window-class-styles">Class Styles</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.lpfnWndProc">
            <summary>
            <para>Type: <b>WNDPROC</b> A pointer to the window procedure. You must use the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-callwindowproca">CallWindowProc</a> function to call the window procedure. For more information, see <a href="https://docs.microsoft.com/previous-versions/windows/desktop/legacy/ms633573(v=vs.85)">WindowProc</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.cbClsExtra">
            <summary>
            <para>Type: <b>int</b> The number of extra bytes to allocate following the window-class structure. The system initializes the bytes to zero.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.cbWndExtra">
            <summary>
            <para>Type: <b>int</b> The number of extra bytes to allocate following the window instance. The system initializes the bytes to zero. If an application uses <b>WNDCLASSEX</b> to register a dialog box created by using the <b>CLASS</b> directive in the resource file, it must set this member to <b>DLGWINDOWEXTRA</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.hInstance">
            <summary>
            <para>Type: <b>HINSTANCE</b> A handle to the instance that contains the window procedure for the class.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.hIcon">
            <summary>
            <para>Type: <b>HICON</b> A handle to the class icon. This member must be a handle to an icon resource. If this member is <b>NULL</b>, the system provides a default icon.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.hCursor">
            <summary>
            <para>Type: <b>HCURSOR</b> A handle to the class cursor. This member must be a handle to a cursor resource. If this member is <b>NULL</b>, an application must explicitly set the cursor shape whenever the mouse moves into the application's window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.hbrBackground">
            <summary>
            <para>Type: <b>HBRUSH</b> A handle to the class background brush. This member can be a handle to the brush to be used for painting the background, or it can be a color value. A color value must be one of the following standard system colors (the value 1 must be added to the chosen color). If a color value is given, you must convert it to one of the following <b>HBRUSH</b> types: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.lpszMenuName">
            <summary>
            <para>Type: <b>LPCTSTR</b> Pointer to a null-terminated character string that specifies the resource name of the class menu, as the name appears in the resource file. If you use an integer to identify the menu, use the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-makeintresourcea">MAKEINTRESOURCE</a> macro. If this member is <b>NULL</b>, windows belonging to this class have no default menu.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.lpszClassName">
            <summary>
            <para>Type: <b>LPCTSTR</b> A pointer to a null-terminated string or is an atom. If this parameter is an atom, it must be a class atom created by a previous call to the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassa">RegisterClass</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassexa">RegisterClassEx</a> function. The atom must be in the low-order word of <b>lpszClassName</b>; the high-order word must be zero.</para>
            <para>If <b>lpszClassName</b> is a string, it specifies the window class name. The class name can be any name registered with <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassa">RegisterClass</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassexa">RegisterClassEx</a>, or any of the predefined control-class names. The maximum length for <b>lpszClassName</b> is 256. If <b>lpszClassName</b> is greater than the maximum length, the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassexa">RegisterClassEx</a> function will fail.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.hIconSm">
            <summary>
            <para>Type: <b>HICON</b> A handle to a small icon that is associated with the window class. If this member is <b>NULL</b>, the system searches the icon resource specified by the <b>hIcon</b> member for an icon of the appropriate size to use as the small icon.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="T:Windows.Win32.UI.HiDpi.MONITOR_DPI_TYPE">
            <summary>Identifies the dots per inch (dpi) setting for a monitor.</summary>
            <remarks>All of these settings are affected by the <a href="https://docs.microsoft.com/windows/desktop/api/shellscalingapi/ne-shellscalingapi-process_dpi_awareness">PROCESS_DPI_AWARENESS</a> of your application</remarks>
        </member>
        <member name="F:Windows.Win32.UI.HiDpi.MONITOR_DPI_TYPE.MDT_EFFECTIVE_DPI">
            <summary>The effective DPI. This value should be used when determining the correct scale factor for scaling UI elements. This incorporates the scale factor set by the user for this specific display.</summary>
        </member>
        <member name="F:Windows.Win32.UI.HiDpi.MONITOR_DPI_TYPE.MDT_ANGULAR_DPI">
            <summary>The angular DPI. This DPI ensures rendering at a compliant angular resolution on the screen. This does not include the scale factor set by the user for this specific display.</summary>
        </member>
        <member name="F:Windows.Win32.UI.HiDpi.MONITOR_DPI_TYPE.MDT_RAW_DPI">
            <summary>The raw DPI. This value is the linear DPI of the screen as measured on the screen itself. Use this value when you want to read the pixel density and not the recommended scaling setting. This does not include the scale factor set by the user for this specific display and is not guaranteed to be a supported DPI value.</summary>
        </member>
        <member name="F:Windows.Win32.UI.HiDpi.MONITOR_DPI_TYPE.MDT_DEFAULT">
            <summary>The default DPI setting for a monitor is MDT_EFFECTIVE_DPI.</summary>
        </member>
        <member name="P:Windows.Win32.Foundation.BSTR.Length">
            <summary>
            Gets the length of the BSTR in characters.
            </summary>
        </member>
        <member name="T:Windows.Win32.Foundation.DECIMAL">
            <summary>The DECIMAL structure represents a decimal data type that provides a sign and scale for a number.</summary>
            <remarks></remarks>
        </member>
        <member name="F:Windows.Win32.Foundation.DECIMAL.wReserved">
            <summary>Reserved.</summary>
        </member>
        <member name="F:Windows.Win32.Foundation.DECIMAL.Hi32">
            <summary>The high 32 bits of the number.</summary>
        </member>
        <member name="T:Windows.Win32.Foundation.HRESULT">
            <remarks>
            <para>The **HRESULT** data type is the same as the [SCODE](scode.md) data type. An **HRESULT** value consists of the following fields: - A 1-bit code indicating severity, where zero represents success and 1 represents failure. - A 4-bit reserved value. - An 11-bit code indicating responsibility for the error or warning, also known as a facility code. - A 16-bit code describing the error or warning. Most MAPI interface methods and functions return **HRESULT** values to provide detailed cause formation. **HRESULT** values are also used widely in OLE interface methods. OLE provides several macros for converting between **HRESULT** values and **SCODE** values, another common data type for error handling. > [!NOTE] > In 64-bit MAPI, **HRESULT** is still a 32-bit value. For information about the OLE use of **HRESULT** values, see the  *OLE Programmer's Reference*. For more information about the use of these values in MAPI, see [Error Handling](error-handling-in-mapi.md) and any of the following interface methods: [IABLogon::GetLastError](iablogon-getlasterror.md) [IMAPISupport::GetLastError](imapisupport-getlasterror.md) [IMAPIControl::GetLastError](imapicontrol-getlasterror.md) [IMAPITable::GetLastError](imapitable-getlasterror.md) [IMAPIProp::GetLastError](imapiprop-getlasterror.md) [IMAPIViewAdviseSink::OnPrint](imapiviewadvisesink-onprint.md)</para>
            <para><see href="https://learn.microsoft.com/office/client-developer/outlook/mapi/hresult#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Foundation.HRESULT.ThrowOnFailure(System.IntPtr)">
            <inheritdoc cref="M:System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(System.Int32,System.IntPtr)" />
            <param name="errorInfo">
            A pointer to the IErrorInfo interface that provides more information about the
            error. You can specify <see cref="F:System.IntPtr.Zero"/> to use the current IErrorInfo interface, or
            <c>new IntPtr(-1)</c> to ignore the current IErrorInfo interface and construct the exception
            just from the error code.
            </param>
            <returns><see langword="this"/> <see cref="T:Windows.Win32.Foundation.HRESULT"/>, if it does not reflect an error.</returns>
            <seealso cref="M:System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(System.Int32,System.IntPtr)"/>
        </member>
        <member name="T:Windows.Win32.Foundation.PCSTR">
            <summary>
            A pointer to a null-terminated, constant, ANSI character string.
            </summary>
        </member>
        <member name="F:Windows.Win32.Foundation.PCSTR.Value">
            <summary>
            A pointer to the first character in the string. The content should be considered readonly, as it was typed as constant in the SDK.
            </summary>
        </member>
        <member name="P:Windows.Win32.Foundation.PCSTR.Length">
            <summary>
            Gets the number of characters up to the first null character (exclusive).
            </summary>
        </member>
        <member name="M:Windows.Win32.Foundation.PCSTR.ToString">
            <summary>
            Returns a <see langword="string"/> with a copy of this character array, decoding as UTF-8.
            </summary>
            <returns>A <see langword="string"/>, or <see langword="null"/> if <see cref="F:Windows.Win32.Foundation.PCSTR.Value"/> is <see langword="null"/>.</returns>
        </member>
        <member name="M:Windows.Win32.Foundation.PCSTR.AsSpan">
            <summary>
            Returns a span of the characters in this string, up to the first null character (exclusive).
            </summary>
        </member>
        <member name="T:Windows.Win32.Foundation.PCWSTR">
            <summary>
            A pointer to a null-terminated, constant character string.
            </summary>
        </member>
        <member name="F:Windows.Win32.Foundation.PCWSTR.Value">
            <summary>
            A pointer to the first character in the string. The content should be considered readonly, as it was typed as constant in the SDK.
            </summary>
        </member>
        <member name="P:Windows.Win32.Foundation.PCWSTR.Length">
            <summary>
            Gets the number of characters up to the first null character (exclusive).
            </summary>
        </member>
        <member name="M:Windows.Win32.Foundation.PCWSTR.ToString">
            <summary>
            Returns a <see langword="string"/> with a copy of this character array, up to the first null character (exclusive).
            </summary>
            <returns>A <see langword="string"/>, or <see langword="null"/> if <see cref="F:Windows.Win32.Foundation.PCWSTR.Value"/> is <see langword="null"/>.</returns>
        </member>
        <member name="M:Windows.Win32.Foundation.PCWSTR.AsSpan">
            <summary>
            Returns a span of the characters in this string, up to the first null character (exclusive).
            </summary>
        </member>
        <member name="M:Windows.Win32.Foundation.PSTR.ToString">
            <inheritdoc cref="M:Windows.Win32.Foundation.PCSTR.ToString"/>
        </member>
        <member name="P:Windows.Win32.Foundation.PSTR.Length">
            <inheritdoc cref="P:Windows.Win32.Foundation.PCSTR.Length"/>
        </member>
        <member name="M:Windows.Win32.Foundation.PSTR.AsSpan">
            <summary>
            Returns a span of the characters in this string, up to the first null character (exclusive).
            </summary>
        </member>
        <member name="M:Windows.Win32.Foundation.PWSTR.ToString">
            <inheritdoc cref="M:Windows.Win32.Foundation.PCWSTR.ToString"/>
        </member>
        <member name="P:Windows.Win32.Foundation.PWSTR.Length">
            <inheritdoc cref="P:Windows.Win32.Foundation.PCWSTR.Length"/>
        </member>
        <member name="M:Windows.Win32.Foundation.PWSTR.AsSpan">
            <summary>
            Returns a span of the characters in this string, up to the first null character (exclusive).
            </summary>
        </member>
        <member name="T:Windows.Win32.Foundation.RECT">
            <summary>The RECT structure defines a rectangle by the coordinates of its upper-left and lower-right corners.</summary>
            <remarks>The RECT structure is identical to the <a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rectl">RECTL</a> structure.</remarks>
        </member>
        <member name="F:Windows.Win32.Foundation.RECT.left">
            <summary>Specifies the <i>x</i>-coordinate of the upper-left corner of the rectangle.</summary>
        </member>
        <member name="F:Windows.Win32.Foundation.RECT.top">
            <summary>Specifies the <i>y</i>-coordinate of the upper-left corner of the rectangle.</summary>
        </member>
        <member name="F:Windows.Win32.Foundation.RECT.right">
            <summary>Specifies the <i>x</i>-coordinate of the lower-right corner of the rectangle.</summary>
        </member>
        <member name="F:Windows.Win32.Foundation.RECT.bottom">
            <summary>Specifies the <i>y</i>-coordinate of the lower-right corner of the rectangle.</summary>
        </member>
        <member name="T:Windows.Win32.FreeLibrarySafeHandle">
            <summary>
            Represents a Win32 handle that can be closed with <see cref="M:Windows.Win32.PInvoke.FreeLibrary(Windows.Win32.Foundation.HMODULE)"/>.
            </summary>
        </member>
        <member name="T:Windows.Win32.Graphics.Gdi.MONITORINFO">
            <summary>The MONITORINFO structure contains information about a display monitor.The GetMonitorInfo function stores information in a MONITORINFO structure or a MONITORINFOEX structure.The MONITORINFO structure is a subset of the MONITORINFOEX structure.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-monitorinfo">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.Graphics.Gdi.MONITORINFO.cbSize">
            <summary>
            <para>The size of the structure, in bytes. Set this member to <c>sizeof ( MONITORINFO )</c> before calling the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getmonitorinfoa">GetMonitorInfo</a> function. Doing so lets the function determine the type of structure you are passing to it.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-monitorinfo#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.Graphics.Gdi.MONITORINFO.rcMonitor">
            <summary>A <a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rect">RECT</a> structure that specifies the display monitor rectangle, expressed in virtual-screen coordinates. Note that if the monitor is not the primary display monitor, some of the rectangle's coordinates may be negative values.</summary>
        </member>
        <member name="F:Windows.Win32.Graphics.Gdi.MONITORINFO.rcWork">
            <summary>A <a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rect">RECT</a> structure that specifies the work area rectangle of the display monitor, expressed in virtual-screen coordinates. Note that if the monitor is not the primary display monitor, some of the rectangle's coordinates may be negative values.</summary>
        </member>
        <member name="F:Windows.Win32.Graphics.Gdi.MONITORINFO.dwFlags">
            <summary>
            <para>A set of flags that represent attributes of the display monitor. The following flag is defined. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-monitorinfo#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="T:Windows.Win32.GlobalFreeSafeHandle">
            <summary>
            Represents a Win32 handle that can be closed with <see cref="M:Windows.Win32.PInvoke.GlobalFree(Windows.Win32.Foundation.HGLOBAL)"/>.
            </summary>
        </member>
        <member name="P:Windows.Win32.IComIID.Guid">
            <summary>The IID guid for this interface.</summary>
            <remarks>The <see cref="P:Windows.Win32.IComIID.Guid" /> reference that is returned comes from a permanent memory address, and is therefore safe to convert to a pointer and pass around or hold long-term.</remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetItem(System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetItem(System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetItemType(System.Guid@,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetItemType(System.Guid*,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.CompareItem(System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT@,Windows.Win32.Foundation.BOOL@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.CompareItem(System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*,Windows.Win32.Foundation.BOOL*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Compare(Windows.Win32.Media.MediaFoundation.IMFAttributes*,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTES_MATCH_TYPE,Windows.Win32.Foundation.BOOL@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Compare(Windows.Win32.Media.MediaFoundation.IMFAttributes*,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTES_MATCH_TYPE,Windows.Win32.Foundation.BOOL*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetUINT32(System.Guid@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetUINT32(System.Guid*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetUINT64(System.Guid@,System.UInt64@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetUINT64(System.Guid*,System.UInt64*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetDouble(System.Guid@,System.Double@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetDouble(System.Guid*,System.Double*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetDouble(System.Guid*,System.Double*)">
            <summary>Retrieves a double value associated with a key.</summary>
            <param name="guidKey">GUID that identifies which value to retrieve. The attribute type must be <b>MF_ATTRIBUTE_DOUBLE</b>.</param>
            <param name="pfValue">Receives a <b>double</b> value. If the key is found and the data type is <b>double</b>, the method copies the value into this parameter. Otherwise, the original value of this parameter is not changed.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getdouble#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetGUID(System.Guid@,System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetGUID(System.Guid*,System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetStringLength(System.Guid@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetStringLength(System.Guid*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetString(System.Guid@,System.Span{System.Char},System.UInt32*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetString(System.Guid*,Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetAllocatedString(System.Guid@,Windows.Win32.Foundation.PWSTR@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetAllocatedString(System.Guid*,Windows.Win32.Foundation.PWSTR*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetBlobSize(System.Guid@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetBlobSize(System.Guid*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetBlob(System.Guid@,System.Span{System.Byte},System.UInt32*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetBlob(System.Guid*,System.Byte*,System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetAllocatedBlob(System.Guid@,System.Byte**,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetAllocatedBlob(System.Guid*,System.Byte**,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetUnknown(System.Guid@,System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetUnknown(System.Guid*,System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetItem(System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetItem(System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.DeleteItem(System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.DeleteItem(System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetUINT32(System.Guid@,System.UInt32)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetUINT32(System.Guid*,System.UInt32)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetUINT64(System.Guid@,System.UInt64)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetUINT64(System.Guid*,System.UInt64)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetDouble(System.Guid@,System.Double)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetDouble(System.Guid*,System.Double)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetGUID(System.Guid@,System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetGUID(System.Guid*,System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetString(System.Guid@,System.String)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetString(System.Guid*,Windows.Win32.Foundation.PCWSTR)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetBlob(System.Guid@,System.ReadOnlySpan{System.Byte})">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetBlob(System.Guid*,System.Byte*,System.UInt32)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetUnknown(System.Guid@,Windows.Win32.System.Com.IUnknown*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.SetUnknown(System.Guid*,Windows.Win32.System.Com.IUnknown*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetCount(System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetCount(System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetItemByIndex(System.UInt32,System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.GetItemByIndex(System.UInt32,System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.ActivateObject(System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.ActivateObject(System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.ActivateObject(System.Guid*)">
            <summary>Creates the object associated with this activation object.</summary>
            <param name="riid">Interface identifier (IID) of the requested interface.</param>
            <returns>If this method succeeds, it returns <b>S_OK</b>. Otherwise, it returns an <b>HRESULT</b> error code.</returns>
            <remarks>
            <para>Some Microsoft Media Foundation objects must be shut down before being released. If so, the caller is responsible for shutting down the object that is returned in <i>ppv</i>. To shut down the object, do one of the following: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfactivate-activateobject#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.ShutdownObject">
            <summary>Shuts down the created object.</summary>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>If you create an object by calling <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfactivate-activateobject">IMFActivate::ActivateObject</a>, call <b>ShutdownObject</b> when you are done using the object. The component that calls <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfactivate-activateobject">ActivateObject</a>—not the component that creates the activation object—is responsible for calling <b>ShutdownObject</b>. For example, in a typical playback application, the application creates activation objects for the media sinks, but the Media Session calls <b>ActivateObject</b>. Therefore the Media Session, not the application, calls <b>ShutdownObject</b>. After <b>ShutdownObject</b> is called, the activation object releases all of its internal references to the created object. If you call <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfactivate-activateobject">ActivateObject</a> again, the activation object will create a new instance of the other object.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfactivate-shutdownobject#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFActivate.DetachObject">
            <summary>Detaches the created object from the activation object.</summary>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The activation object releases all of its internal references to the created object. If you call <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfactivate-activateobject">ActivateObject</a> again, the activation object will create a new instance of the other object. The <b>DetachObject</b> method does not shut down the created object. If the <b>DetachObject</b> method succeeds, the client must shut down the created object. This rule applies only to objects that have a shutdown method or that support the <a href="https://docs.microsoft.com/windows/desktop/api/mfidl/nn-mfidl-imfshutdown">IMFShutdown</a> interface. See the remarks for <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfactivate-activateobject">IMFActivate::ActivateObject</a>. Implementation of this method is optional. If the activation object does not support this method, the method returns E_NOTIMPL.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfactivate-detachobject#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.Media.MediaFoundation.IMFActivate.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{7fee9e9a-4a89-47a6-899c-b6a53a70fb67}</value>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetItem(System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetItem(System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetItem(System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)">
            <summary>Retrieves the value associated with a key.</summary>
            <param name="guidKey">A GUID that identifies which value to retrieve.</param>
            <param name="pValue">A pointer to a <b>PROPVARIANT</b> that receives the value. The method fills the <b>PROPVARIANT</b> with a copy of the stored value, if the value is found. Call <b>PropVariantClear</b> to free the memory allocated by this method. This parameter can be <b>NULL</b>. If this parameter is <b>NULL</b>, the method searches for the key and returns S_OK if the key is found, but does not copy the value.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getitem#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetItemType(System.Guid@,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetItemType(System.Guid*,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetItemType(System.Guid*,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE*)">
            <summary>Retrieves the data type of the value associated with a key.</summary>
            <param name="guidKey">GUID that identifies which value to query.</param>
            <param name="pType">Receives a member of the <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/ne-mfobjects-mf_attribute_type">MF_ATTRIBUTE_TYPE</a> enumeration.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getitemtype#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.CompareItem(System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT@,Windows.Win32.Foundation.BOOL@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.CompareItem(System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*,Windows.Win32.Foundation.BOOL*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.CompareItem(System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*,Windows.Win32.Foundation.BOOL*)">
            <summary>Queries whether a stored attribute value equals to a specified PROPVARIANT.</summary>
            <param name="guidKey">GUID that identifies which value to query.</param>
            <param name="Value"><b>PROPVARIANT</b> that contains the value to compare.</param>
            <param name="pbResult">Receives a Boolean value indicating whether the attribute matches the value given in <i>Value</i>. See Remarks. This parameter must not be <b>NULL</b>. If this parameter is <b>NULL</b>, an access violation occurs.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The method sets <i>pbResult</i> to <b>FALSE</b> for any of the following reasons: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-compareitem#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Compare(Windows.Win32.Media.MediaFoundation.IMFAttributes*,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTES_MATCH_TYPE,Windows.Win32.Foundation.BOOL@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Compare(Windows.Win32.Media.MediaFoundation.IMFAttributes*,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTES_MATCH_TYPE,Windows.Win32.Foundation.BOOL*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Compare(Windows.Win32.Media.MediaFoundation.IMFAttributes*,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTES_MATCH_TYPE,Windows.Win32.Foundation.BOOL*)">
            <summary>Compares the attributes on this object with the attributes on another object.</summary>
            <param name="pTheirs">Pointer to the <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nn-mfobjects-imfattributes">IMFAttributes</a> interface of the object to compare with this object.</param>
            <param name="MatchType">Member of the <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/ne-mfobjects-mf_attributes_match_type">MF_ATTRIBUTES_MATCH_TYPE</a> enumeration, specifying the type of comparison to make.</param>
            <param name="pbResult">Receives a Boolean value. The value is <b>TRUE</b> if the two sets of attributes match in the way specified by the <i>MatchType</i> parameter. Otherwise, the value is <b>FALSE</b>.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>If <i>pThis</i> is the object whose <b>Compare</b> method is called, and <i>pTheirs</i> is the object passed in as the <i>pTheirs</i> parameter, the following comparisons are defined by <i>MatchType</i>. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-compare#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetUINT32(System.Guid@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetUINT32(System.Guid*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetUINT32(System.Guid*,System.UInt32*)">
            <summary>Retrieves a UINT32 value associated with a key.</summary>
            <param name="guidKey">GUID that identifies which value to retrieve. The attribute type must be <b>MF_ATTRIBUTE_UINT32</b>.</param>
            <param name="punValue">Receives a <b>UINT32</b> value. If the key is found and the data type is <b>UINT32</b>, the method copies the value into this parameter. Otherwise, the original value of this parameter is not changed.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getuint32#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetUINT64(System.Guid@,System.UInt64@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetUINT64(System.Guid*,System.UInt64*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetUINT64(System.Guid*,System.UInt64*)">
            <summary>Retrieves a UINT64 value associated with a key.</summary>
            <param name="guidKey">GUID that identifies which value to retrieve. The attribute type must be <b>MF_ATTRIBUTE_UINT64</b>.</param>
            <param name="punValue">Receives a <b>UINT64</b> value. If the key is found and the data type is <b>UINT64</b>, the method copies the value into this parameter. Otherwise, the original value of this parameter is not changed.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getuint64#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetDouble(System.Guid@,System.Double@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetDouble(System.Guid*,System.Double*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetDouble(System.Guid*,System.Double*)">
            <summary>Retrieves a double value associated with a key.</summary>
            <param name="guidKey">GUID that identifies which value to retrieve. The attribute type must be <b>MF_ATTRIBUTE_DOUBLE</b>.</param>
            <param name="pfValue">Receives a <b>double</b> value. If the key is found and the data type is <b>double</b>, the method copies the value into this parameter. Otherwise, the original value of this parameter is not changed.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getdouble#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetGUID(System.Guid@,System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetGUID(System.Guid*,System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetGUID(System.Guid*,System.Guid*)">
            <summary>Retrieves a GUID value associated with a key.</summary>
            <param name="guidKey">GUID that identifies which value to retrieve. The attribute type must be <b>MF_ATTRIBUTE_GUID</b>.</param>
            <param name="pguidValue">Receives a GUID value. If the key is found and the data type is GUID, the method copies the value into this parameter. Otherwise, the original value of this parameter is not changed.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getguid#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetStringLength(System.Guid@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetStringLength(System.Guid*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetStringLength(System.Guid*,System.UInt32*)">
            <summary>Retrieves the length of a string value associated with a key.</summary>
            <param name="guidKey">GUID that identifies which value to retrieve. The attribute type must be <b>MF_ATTRIBUTE_STRING</b>.</param>
            <param name="pcchLength">If the key is found and the value is a string type, this parameter receives the number of characters in the string, not including the terminating <b>NULL</b> character. To get the string value, call <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getstring">IMFAttributes::GetString</a>.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getstringlength#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetString(System.Guid@,System.Span{System.Char},System.UInt32*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetString(System.Guid*,Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetString(System.Guid*,Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt32*)">
            <summary>Retrieves a wide-character string associated with a key.</summary>
            <param name="guidKey">GUID that identifies which value to retrieve. The attribute type must be <b>MF_ATTRIBUTE_STRING</b>.</param>
            <param name="pwszValue">Pointer to a wide-character array allocated by the caller. The array must be large enough to hold the string, including the terminating <b>NULL</b> character. If the key is found and the value is a string type, the method copies the string into this buffer. To find the length of the string, call <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getstringlength">IMFAttributes::GetStringLength</a>.</param>
            <param name="cchBufSize">The size of the <i>pwszValue</i> array, in characters. This value includes the terminating NULL character.</param>
            <param name="pcchLength">Receives the number of characters in the string, excluding the terminating <b>NULL</b> character. This parameter can be <b>NULL</b>.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>You can also use the <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getallocatedstring">IMFAttributes::GetAllocatedString</a> method, which allocates the buffer to hold the string. This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getstring#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetAllocatedString(System.Guid@,Windows.Win32.Foundation.PWSTR@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetAllocatedString(System.Guid*,Windows.Win32.Foundation.PWSTR*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetAllocatedString(System.Guid*,Windows.Win32.Foundation.PWSTR*,System.UInt32*)">
            <summary>Gets a wide-character string associated with a key. This method allocates the memory for the string.</summary>
            <param name="guidKey">A GUID that identifies which value to retrieve. The attribute type must be <b>MF_ATTRIBUTE_STRING</b>.</param>
            <param name="ppwszValue">If the key is found and the value is a string type, this parameter receives a copy of the string. The caller must free the memory for the string by calling <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-cotaskmemfree">CoTaskMemFree</a>.</param>
            <param name="pcchLength">Receives the number of characters in the string, excluding the terminating <b>NULL</b> character. This parameter must not be <b>NULL</b>.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table.</para>
            <para></para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>To copy a string value into a caller-allocated buffer, use the <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getstring">IMFAttributes::GetString</a> method. This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getallocatedstring#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetBlobSize(System.Guid@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetBlobSize(System.Guid*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetBlobSize(System.Guid*,System.UInt32*)">
            <summary>Retrieves the length of a byte array associated with a key.</summary>
            <param name="guidKey">GUID that identifies which value to retrieve. The attribute type must be <b>MF_ATTRIBUTE_BLOB</b>.</param>
            <param name="pcbBlobSize">If the key is found and the value is a byte array, this parameter receives the size of the array, in bytes.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>To get the byte array, call <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getblob">IMFAttributes::GetBlob</a>. This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getblobsize#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetBlob(System.Guid@,System.Span{System.Byte},System.UInt32*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetBlob(System.Guid*,System.Byte*,System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetBlob(System.Guid*,System.Byte*,System.UInt32,System.UInt32*)">
            <summary>Retrieves a byte array associated with a key. This method copies the array into a caller-allocated buffer.</summary>
            <param name="guidKey">GUID that identifies which value to retrieve. The attribute type must be <b>MF_ATTRIBUTE_BLOB</b>.</param>
            <param name="pBuf">Pointer to a buffer allocated by the caller. If the key is found and the value is a byte array, the method copies the array into this buffer. To find the required size of the buffer, call <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getblobsize">IMFAttributes::GetBlobSize</a>.</param>
            <param name="cbBufSize">The size of the <i>pBuf</i> buffer, in bytes.</param>
            <param name="pcbBlobSize">Receives the size of the byte array. This parameter can be <b>NULL</b>.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>You can also use the <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getallocatedblob">IMFAttributes::GetAllocatedBlob</a> method, which allocates the buffer to hold the byte array. This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getblob#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetAllocatedBlob(System.Guid@,System.Byte**,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetAllocatedBlob(System.Guid*,System.Byte**,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetAllocatedBlob(System.Guid*,System.Byte**,System.UInt32*)">
            <summary>Retrieves a byte array associated with a key. This method allocates the memory for the array.</summary>
            <param name="guidKey">GUID that identifies which value to retrieve. The attribute type must be <b>MF_ATTRIBUTE_BLOB</b>.</param>
            <param name="ppBuf">If the key is found and the value is a byte array, this parameter receives a copy of the array. The caller must free the memory for the array by calling <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-cotaskmemfree">CoTaskMemFree</a>.</param>
            <param name="pcbSize">Receives the size of the array, in bytes.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>To copy a byte array value into a caller-allocated buffer, use the <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getblob">IMFAttributes::GetBlob</a> method. This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getallocatedblob#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetUnknown(System.Guid@,System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetUnknown(System.Guid*,System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetUnknown(System.Guid*,System.Guid*,System.Void**)">
            <summary>Retrieves an interface pointer associated with a key.</summary>
            <param name="guidKey">GUID that identifies which value to retrieve. The attribute type must be <b>MF_ATTRIBUTE_IUNKNOWN</b>.</param>
            <param name="riid">Interface identifier (IID) of the interface to retrieve.</param>
            <param name="ppv">Receives a pointer to the requested interface. The caller must release the interface.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getunknown#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetItem(System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetItem(System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetItem(System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)">
            <summary>Adds an attribute value with a specified key.</summary>
            <param name="guidKey">A GUID that identifies the value to set. If this key already exists, the method overwrites the old value.</param>
            <param name="Value">A <b>PROPVARIANT</b> that contains the attribute value. The method copies the value. The <b>PROPVARIANT</b> type must be one of the types listed in the <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/ne-mfobjects-mf_attribute_type">MF_ATTRIBUTE_TYPE</a> enumeration.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table.</para>
            <para></para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>This method checks whether the <b>PROPVARIANT</b> type is one of the attribute types defined in <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/ne-mfobjects-mf_attribute_type">MF_ATTRIBUTE_TYPE</a>, and fails if an unsupported type is used. However, this method does not check whether the <b>PROPVARIANT</b> is the correct type for the specified attribute GUID. (There is no programmatic way to associate attribute GUIDs with property types.) For a list of Media Foundation attributes and their data types, see <a href="https://docs.microsoft.com/windows/desktop/medfound/media-foundation-attributes">Media Foundation Attributes</a>.</para>
            <para>This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-setitem#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.DeleteItem(System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.DeleteItem(System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.DeleteItem(System.Guid*)">
            <summary>Removes a key/value pair from the object's attribute list.</summary>
            <param name="guidKey">GUID that identifies the value to delete.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>If the specified key does not exist, the method returns <b>S_OK</b>. This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-deleteitem#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.DeleteAllItems">
            <summary>Removes all key/value pairs from the object's attribute list.</summary>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-deleteallitems#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetUINT32(System.Guid@,System.UInt32)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetUINT32(System.Guid*,System.UInt32)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetUINT32(System.Guid*,System.UInt32)">
            <summary>Associates a UINT32 value with a key.</summary>
            <param name="guidKey">GUID that identifies the value to set. If this key already exists, the method overwrites the old value.</param>
            <param name="unValue">New value for this key.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>To retrieve the <b>UINT32</b> value, call <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getuint32">IMFAttributes::GetUINT32</a>. This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-setuint32#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetUINT64(System.Guid@,System.UInt64)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetUINT64(System.Guid*,System.UInt64)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetUINT64(System.Guid*,System.UInt64)">
            <summary>Associates a UINT64 value with a key.</summary>
            <param name="guidKey">GUID that identifies the value to set. If this key already exists, the method overwrites the old value.</param>
            <param name="unValue">New value for this key.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>To retrieve the <b>UINT64</b> value, call <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getuint64">IMFAttributes::GetUINT64</a>. This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-setuint64#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetDouble(System.Guid@,System.Double)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetDouble(System.Guid*,System.Double)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetDouble(System.Guid*,System.Double)">
            <summary>Associates a double value with a key.</summary>
            <param name="guidKey">GUID that identifies the value to set. If this key already exists, the method overwrites the old value.</param>
            <param name="fValue">New value for this key.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>To retrieve the double value, call <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getdouble">IMFAttributes::GetDouble</a>. This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-setdouble#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetGUID(System.Guid@,System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetGUID(System.Guid*,System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetGUID(System.Guid*,System.Guid*)">
            <summary>Associates a GUID value with a key.</summary>
            <param name="guidKey">GUID that identifies the value to set. If this key already exists, the method overwrites the old value.</param>
            <param name="guidValue">New value for this key.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>To retrieve the GUID value, call <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getguid">IMFAttributes::GetGUID</a>. This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-setguid#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetString(System.Guid@,System.String)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetString(System.Guid*,Windows.Win32.Foundation.PCWSTR)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetString(System.Guid*,Windows.Win32.Foundation.PCWSTR)">
            <summary>Associates a wide-character string with a key.</summary>
            <param name="guidKey">GUID that identifies the value to set. If this key already exists, the method overwrites the old value.</param>
            <param name="wszValue">Null-terminated wide-character string to associate with this key. The method stores a copy of the string.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>To retrieve the string, call <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getstring">IMFAttributes::GetString</a> or <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getallocatedstring">IMFAttributes::GetAllocatedString</a>. This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-setstring#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetBlob(System.Guid@,System.ReadOnlySpan{System.Byte})">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetBlob(System.Guid*,System.Byte*,System.UInt32)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetBlob(System.Guid*,System.Byte*,System.UInt32)">
            <summary>Associates a byte array with a key.</summary>
            <param name="guidKey">GUID that identifies the value to set. If this key already exists, the method overwrites the old value.</param>
            <param name="pBuf">Pointer to a byte array to associate with this key. The method stores a copy of the array.</param>
            <param name="cbBufSize">Size of the array, in bytes.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>To retrieve the byte array, call <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getblob">IMFAttributes::GetBlob</a> or <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getallocatedblob">IMFAttributes::GetAllocatedBlob</a>. This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-setblob#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetUnknown(System.Guid@,Windows.Win32.System.Com.IUnknown*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetUnknown(System.Guid*,Windows.Win32.System.Com.IUnknown*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.SetUnknown(System.Guid*,Windows.Win32.System.Com.IUnknown*)">
            <summary>Associates an IUnknown pointer with a key.</summary>
            <param name="guidKey">GUID that identifies the value to set. If this key already exists, the method overwrites the old value.</param>
            <param name="pUnknown"><b>IUnknown</b> pointer to be associated with this key.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>To retrieve the <b>IUnknown</b> pointer, call <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getunknown">IMFAttributes::GetUnknown</a>. It is not an error to call <b>SetUnknown</b> with <i>pUnknown</i> equal to <b>NULL</b>. However, <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getunknown">GetUnknown</a> will return <b>MF_E_INVALIDTYPE</b>. This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-setunknown#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.LockStore">
            <summary>Locks the attribute store so that no other thread can access it.</summary>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>This method can cause a deadlock if a thread that calls <b>LockStore</b> waits on a thread that calls any other <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nn-mfobjects-imfattributes">IMFAttributes</a> methods on the same object. This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-lockstore#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.UnlockStore">
            <summary>Unlocks the attribute store after a call to the IMFAttributes::LockStore method. While the object is unlocked, multiple threads can access the object's attributes.</summary>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-unlockstore#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetCount(System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetCount(System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetCount(System.UInt32*)">
            <summary>Retrieves the number of attributes that are set on this object.</summary>
            <param name="pcItems">Receives the number of attributes. This parameter must not be <b>NULL</b>. If this parameter is <b>NULL</b>, an access violation occurs.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>To enumerate all of the attributes, call <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getitembyindex">IMFAttributes::GetItemByIndex</a> for each index value. This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getcount#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetItemByIndex(System.UInt32,System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetItemByIndex(System.UInt32,System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.GetItemByIndex(System.UInt32,System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)">
            <summary>Retrieves an attribute at the specified index.</summary>
            <param name="unIndex">Index of the attribute to retrieve. To get the number of attributes, call <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-getcount">IMFAttributes::GetCount</a>.</param>
            <param name="pguidKey">Receives the GUID that identifies this attribute.</param>
            <param name="pValue">Pointer to a <b>PROPVARIANT</b> that receives the value. This parameter can be <b>NULL</b>. If it is not <b>NULL</b>, the method fills the <b>PROPVARIANT</b> with a copy of the attribute value. Call <b>PropVariantClear</b> to free the memory allocated by this method.</param>
            <returns>
            <para>The method returns an <b>HRESULT</b>. Possible values include, but are not limited to, those in the following table. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>To enumerate all of an object's attributes in a thread-safe way, do the following: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/nf-mfobjects-imfattributes-getitembyindex#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Windows.Win32.Media.MediaFoundation.IMFAttributes.CopyAllItems(Windows.Win32.Media.MediaFoundation.IMFAttributes*)" -->
        <member name="F:Windows.Win32.Media.MediaFoundation.IMFAttributes.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{2cd2d921-c447-44a7-a13c-4adabfc247e3}</value>
        </member>
        <member name="T:Windows.Win32.Media.MediaFoundation.MFT_REGISTER_TYPE_INFO">
            <summary>Contains media type information for registering a Media Foundation transform (MFT).</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/ns-mfobjects-mft_register_type_info">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.Media.MediaFoundation.MFT_REGISTER_TYPE_INFO.guidMajorType">
            <summary>The major media type. For a list of possible values, see <a href="https://docs.microsoft.com/windows/desktop/medfound/media-type-guids">Major Media Types</a>.</summary>
        </member>
        <member name="F:Windows.Win32.Media.MediaFoundation.MFT_REGISTER_TYPE_INFO.guidSubtype">
            <summary>
            <para>The media subtype. For a list of possible values, see the following topics: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/ns-mfobjects-mft_register_type_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="T:Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTES_MATCH_TYPE">
            <summary>Specifies how to compare the attributes on two objects.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/ne-mfobjects-mf_attributes_match_type">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTES_MATCH_TYPE.MF_ATTRIBUTES_MATCH_OUR_ITEMS">
            <summary>Check whether all the attributes in <i>pThis</i> exist in <i>pTheirs</i> and have the same data, where <i>pThis</i> is the object whose <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-compare">Compare</a> method is being called and <i>pTheirs</i> is the object given in the <i>pTheirs</i> parameter.</summary>
        </member>
        <member name="F:Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTES_MATCH_TYPE.MF_ATTRIBUTES_MATCH_THEIR_ITEMS">
            <summary>Check whether all the attributes in <i>pTheirs</i> exist in <i>pThis</i> and have the same data, where <i>pThis</i> is the object whose <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nf-mfobjects-imfattributes-compare">Compare</a> method is being called and <i>pTheirs</i> is the object given in the <i>pTheirs</i> parameter.</summary>
        </member>
        <member name="F:Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTES_MATCH_TYPE.MF_ATTRIBUTES_MATCH_ALL_ITEMS">
            <summary>Check whether both objects have identical attributes with the same data.</summary>
        </member>
        <member name="F:Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTES_MATCH_TYPE.MF_ATTRIBUTES_MATCH_INTERSECTION">
            <summary>Check whether the attributes that exist in both objects have the same data.</summary>
        </member>
        <member name="F:Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTES_MATCH_TYPE.MF_ATTRIBUTES_MATCH_SMALLER">
            <summary>Find the object with the fewest number of attributes, and check if those attributes exist in the other object and have the same data.</summary>
        </member>
        <member name="T:Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE">
            <summary>Defines the data type for a key/value pair.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfobjects/ne-mfobjects-mf_attribute_type">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE.MF_ATTRIBUTE_UINT32">
            <summary>Unsigned 32-bit integer.</summary>
        </member>
        <member name="F:Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE.MF_ATTRIBUTE_UINT64">
            <summary>Unsigned 64-bit integer.</summary>
        </member>
        <member name="F:Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE.MF_ATTRIBUTE_DOUBLE">
            <summary>Floating-point number.</summary>
        </member>
        <member name="F:Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE.MF_ATTRIBUTE_GUID">
            <summary><b>GUID</b> value.</summary>
        </member>
        <member name="F:Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE.MF_ATTRIBUTE_STRING">
            <summary>NULL-terminated wide-character string.</summary>
        </member>
        <member name="F:Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE.MF_ATTRIBUTE_BLOB">
            <summary>Byte array.</summary>
        </member>
        <member name="F:Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE.MF_ATTRIBUTE_IUNKNOWN">
            <summary><b>IUnknown</b> pointer.</summary>
        </member>
        <member name="T:Windows.Win32.IVTable">
            <summary>
            Non generic interface that allows constraining against a COM wrapper type directly. COM structs should
            implement <see cref="T:Windows.Win32.IVTable`2"/>.
            </summary>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.GetItem(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.GetItem(System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.GetItemType(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.GetItemType(System.Guid*,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.CompareItem(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT@,Windows.Win32.Foundation.BOOL@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.CompareItem(System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*,Windows.Win32.Foundation.BOOL*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.Compare(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,Windows.Win32.Media.MediaFoundation.IMFAttributes*,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTES_MATCH_TYPE,Windows.Win32.Foundation.BOOL@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.Compare(Windows.Win32.Media.MediaFoundation.IMFAttributes*,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTES_MATCH_TYPE,Windows.Win32.Foundation.BOOL*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.GetUINT32(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.GetUINT32(System.Guid*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.GetUINT64(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.UInt64@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.GetUINT64(System.Guid*,System.UInt64*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.GetDouble(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.Double@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.GetDouble(System.Guid*,System.Double*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.GetGUID(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.GetGUID(System.Guid*,System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.GetStringLength(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.GetStringLength(System.Guid*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.GetString(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.Span{System.Char},System.UInt32*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.GetString(System.Guid*,Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.GetAllocatedString(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,Windows.Win32.Foundation.PWSTR@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.GetAllocatedString(System.Guid*,Windows.Win32.Foundation.PWSTR*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.GetBlobSize(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.GetBlobSize(System.Guid*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.GetBlob(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.Span{System.Byte},System.UInt32*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.GetBlob(System.Guid*,System.Byte*,System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.GetAllocatedBlob(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.Byte**,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.GetAllocatedBlob(System.Guid*,System.Byte**,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.GetUnknown(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.GetUnknown(System.Guid*,System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.SetItem(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.SetItem(System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.DeleteItem(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.DeleteItem(System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.SetUINT32(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.UInt32)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.SetUINT32(System.Guid*,System.UInt32)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.SetUINT64(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.UInt64)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.SetUINT64(System.Guid*,System.UInt64)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.SetDouble(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.Double)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.SetDouble(System.Guid*,System.Double)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.SetGUID(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.SetGUID(System.Guid*,System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.SetString(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.String)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.SetString(System.Guid*,Windows.Win32.Foundation.PCWSTR)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.SetBlob(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.ReadOnlySpan{System.Byte})">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.SetBlob(System.Guid*,System.Byte*,System.UInt32)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.SetUnknown(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,Windows.Win32.System.Com.IUnknown*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.SetUnknown(System.Guid*,Windows.Win32.System.Com.IUnknown*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.GetCount(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.GetCount(System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.GetItemByIndex(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.UInt32,System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.GetItemByIndex(System.UInt32,System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFActivate_Extensions.ActivateObject(Windows.Win32.Media.MediaFoundation.IMFActivate.Interface,System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFActivate.Interface.ActivateObject(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.GetItem(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.GetItem(System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.GetItemType(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.GetItemType(System.Guid*,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTE_TYPE*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.CompareItem(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT@,Windows.Win32.Foundation.BOOL@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.CompareItem(System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*,Windows.Win32.Foundation.BOOL*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.Compare(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,Windows.Win32.Media.MediaFoundation.IMFAttributes*,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTES_MATCH_TYPE,Windows.Win32.Foundation.BOOL@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.Compare(Windows.Win32.Media.MediaFoundation.IMFAttributes*,Windows.Win32.Media.MediaFoundation.MF_ATTRIBUTES_MATCH_TYPE,Windows.Win32.Foundation.BOOL*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.GetUINT32(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.GetUINT32(System.Guid*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.GetUINT64(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.UInt64@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.GetUINT64(System.Guid*,System.UInt64*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.GetDouble(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.Double@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.GetDouble(System.Guid*,System.Double*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.GetGUID(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.GetGUID(System.Guid*,System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.GetStringLength(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.GetStringLength(System.Guid*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.GetString(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.Span{System.Char},System.UInt32*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.GetString(System.Guid*,Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.GetAllocatedString(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,Windows.Win32.Foundation.PWSTR@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.GetAllocatedString(System.Guid*,Windows.Win32.Foundation.PWSTR*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.GetBlobSize(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.GetBlobSize(System.Guid*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.GetBlob(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.Span{System.Byte},System.UInt32*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.GetBlob(System.Guid*,System.Byte*,System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.GetAllocatedBlob(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.Byte**,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.GetAllocatedBlob(System.Guid*,System.Byte**,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.GetUnknown(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.GetUnknown(System.Guid*,System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.SetItem(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.SetItem(System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.DeleteItem(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.DeleteItem(System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.SetUINT32(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.UInt32)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.SetUINT32(System.Guid*,System.UInt32)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.SetUINT64(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.UInt64)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.SetUINT64(System.Guid*,System.UInt64)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.SetDouble(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.Double)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.SetDouble(System.Guid*,System.Double)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.SetGUID(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.SetGUID(System.Guid*,System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.SetString(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.String)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.SetString(System.Guid*,Windows.Win32.Foundation.PCWSTR)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.SetBlob(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,System.ReadOnlySpan{System.Byte})">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.SetBlob(System.Guid*,System.Byte*,System.UInt32)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.SetUnknown(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.Guid@,Windows.Win32.System.Com.IUnknown*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.SetUnknown(System.Guid*,Windows.Win32.System.Com.IUnknown*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.GetCount(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.GetCount(System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.Media_MediaFoundation_IMFAttributes_Extensions.GetItemByIndex(Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface,System.UInt32,System.Guid@,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)">
            <inheritdoc cref="M:Windows.Win32.Media.MediaFoundation.IMFAttributes.Interface.GetItemByIndex(System.UInt32,System.Guid*,Windows.Win32.System.Com.StructuredStorage.PROPVARIANT*)"/>
        </member>
        <member name="T:Windows.Win32.PInvoke">
            <content>
            Contains extern methods from "api-ms-win-shcore-scaling-l1-1-1.dll".
            </content>
            <content>
            Contains extern methods from "GDI32.dll".
            </content>
            <content>
            Contains extern methods from "KERNEL32.dll".
            </content>
            <content>
            Contains extern methods from "MFPlat.dll".
            </content>
            <content>
            Contains extern methods from "OLEAUT32.dll".
            </content>
            <content>
            Contains extern methods from "SHELL32.dll".
            </content>
            <content>
            Contains extern methods from "USER32.dll".
            </content>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetDpiForMonitor(Windows.Win32.Graphics.Gdi.HMONITOR,Windows.Win32.UI.HiDpi.MONITOR_DPI_TYPE,System.UInt32@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GetDpiForMonitor(Windows.Win32.Graphics.Gdi.HMONITOR,Windows.Win32.UI.HiDpi.MONITOR_DPI_TYPE,System.UInt32*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetDpiForMonitor(Windows.Win32.Graphics.Gdi.HMONITOR,Windows.Win32.UI.HiDpi.MONITOR_DPI_TYPE,System.UInt32*,System.UInt32*)">
            <summary>Queries the dots per inch (dpi) of a display.</summary>
            <param name="hmonitor">Handle of the monitor being queried.</param>
            <param name="dpiType">The type of DPI being queried. Possible values are from the <a href="https://docs.microsoft.com/windows/desktop/api/shellscalingapi/ne-shellscalingapi-monitor_dpi_type">MONITOR_DPI_TYPE</a> enumeration.</param>
            <param name="dpiX">The value of the DPI along the X axis. This value always refers to the horizontal edge, even when the screen is rotated.</param>
            <param name="dpiY">The value of the DPI along the Y axis. This value always refers to the vertical edge, even when the screen is rotated.</param>
            <returns>
            <para>This function returns one of the following values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>This API is not DPI aware and should not be used if the calling thread is per-monitor DPI aware. For the DPI-aware version of this API, see <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getdpiforwindow">GetDpiForWindow</a>. When you call <b>GetDpiForMonitor</b>, you will receive different DPI values depending on the DPI awareness of the calling application. DPI awareness is an application-level property usually defined in the application manifest. For more information about DPI awareness values, see <a href="https://docs.microsoft.com/windows/desktop/api/shellscalingapi/ne-shellscalingapi-process_dpi_awareness">PROCESS_DPI_AWARENESS</a>. The following table indicates how the results will differ based on the <b>PROCESS_DPI_AWARENESS</b> value of your application. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/shellscalingapi/nf-shellscalingapi-getdpiformonitor#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_NCCREATE">
            <summary>Sent prior to the WM\_CREATE message when a window is first created.</summary>
            <returns>
            <para>Type: **LRESULT** If an application processes this message, it should return **TRUE** to continue creation of the window. If the application returns **FALSE**, the [**CreateWindow**](/windows/win32/api/winuser/nf-winuser-createwindowa) or [**CreateWindowEx**](/windows/win32/api/winuser/nf-winuser-createwindowexa) function will return a **NULL** handle.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/winmsg/wm-nccreate">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_NCDESTROY">
            <summary>Notifies a window that its nonclient area is being destroyed. The DestroyWindow function sends the WM\_NCDESTROY message to the window following the WM\_DESTROY message.</summary>
            <returns>
            <para>Type: **LRESULT** If an application processes this message, it should return zero.</para>
            </returns>
            <remarks>This message frees any memory internally allocated for the window.</remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_CLIPBOARDUPDATE">
            <summary>Sent when the contents of the clipboard have changed.</summary>
            <returns>If an application processes this message, it should return zero.</returns>
            <remarks>To register a window to receive this message, use the [**AddClipboardFormatListener**](/windows/desktop/api/Winuser/nf-winuser-addclipboardformatlistener) function.</remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_DESTROY">
            <summary>Sent when a window is being destroyed. It is sent to the window procedure of the window being destroyed after the window is removed from the screen.</summary>
            <returns>
            <para>Type: **LRESULT** If an application processes this message, it should return zero.</para>
            </returns>
            <remarks>If the window being destroyed is part of the clipboard viewer chain (set by calling the [**SetClipboardViewer**](/windows/win32/api/winuser/nf-winuser-setclipboardviewer) function), the window must remove itself from the chain by processing the [**ChangeClipboardChain**](/windows/win32/api/winuser/nf-winuser-changeclipboardchain) function before returning from the **WM\_DESTROY** message.</remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_CLOSE">
            <summary>Sent as a signal that a window or an application should terminate.</summary>
            <returns>
            <para>Type: **LRESULT** If an application processes this message, it should return zero.</para>
            </returns>
            <remarks>
            <para>An application can prompt the user for confirmation, prior to destroying a window, by processing the **WM\_CLOSE** message and calling the [**DestroyWindow**](/windows/win32/api/winuser/nf-winuser-destroywindow) function only if the user confirms the choice. By default, the [**DefWindowProc**](/windows/desktop/api/winuser/nf-winuser-defwindowproca) function calls the [**DestroyWindow**](/windows/win32/api/winuser/nf-winuser-destroywindow) function to destroy the window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/winmsg/wm-close#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.ABM_GETTASKBARPOS">
            <summary>Retrieves the bounding rectangle of the Windows taskbar.</summary>
            <returns>Returns **TRUE** if successful; otherwise, **FALSE**.</returns>
            <remarks>Note that this applies only to the system taskbar. Other objects, particularly toolbars supplied with third-party software, also can be present. As a result, some of the screen area not covered by the Windows taskbar might not be visible to the user. To retrieve the area of the screen not covered by both the taskbar and other app bars the working area available to your application , use the [**GetMonitorInfo**](/windows/desktop/api/winuser/nf-winuser-getmonitorinfoa) function.</remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.DeleteObject(Windows.Win32.Graphics.Gdi.HGDIOBJ)">
            <summary>The DeleteObject function deletes a logical pen, brush, font, bitmap, region, or palette, freeing all system resources associated with the object. After the object is deleted, the specified handle is no longer valid.</summary>
            <param name="ho">A handle to a logical pen, brush, font, bitmap, region, or palette.</param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. If the specified handle is not valid or is currently selected into a DC, the return value is zero.</para>
            </returns>
            <remarks>
            <para>Do not delete a drawing object (pen or brush) while it is still selected into a DC. When a pattern brush is deleted, the bitmap associated with the brush is not deleted. The bitmap must be deleted independently.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/wingdi/nf-wingdi-deleteobject#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetDeviceCaps(Windows.Win32.Graphics.Gdi.HDC,Windows.Win32.Graphics.Gdi.GET_DEVICE_CAPS_INDEX)">
            <summary>The GetDeviceCaps function retrieves device-specific information for the specified device.</summary>
            <param name="hdc">A handle to the DC.</param>
            <param name="index"></param>
            <returns>
            <para>The return value specifies the value of the desired item. When <i>nIndex</i> is BITSPIXEL and the device has 15bpp or 16bpp, the return value is 16.</para>
            </returns>
            <remarks>
            <para>When <i>nIndex</i> is SHADEBLENDCAPS: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/wingdi/nf-wingdi-getdevicecaps#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.CloseHandle(Windows.Win32.Foundation.HANDLE)">
            <summary>Closes an open object handle.</summary>
            <param name="hObject">A valid handle to an open object.</param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>. If the application is running under a debugger,  the function will throw an exception if it receives either a  handle value that is not valid  or a pseudo-handle value. This can happen if you close a handle twice, or if you  call <b>CloseHandle</b> on a handle returned by the <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-findfirstfilea">FindFirstFile</a> function instead of calling the <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-findclose">FindClose</a> function.</para>
            </returns>
            <remarks>
            <para>The <b>CloseHandle</b> function closes handles to the following objects: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/handleapi/nf-handleapi-closehandle#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.FreeLibrary(Windows.Win32.Foundation.HMODULE)">
            <summary>Frees the loaded dynamic-link library (DLL) module and, if necessary, decrements its reference count.</summary>
            <param name="hLibModule">
            <para>A handle to the loaded library module. The <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibrarya">LoadLibrary</a>, <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibraryexa">LoadLibraryEx</a>, <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandlea">GetModuleHandle</a>, or <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandleexa">GetModuleHandleEx</a> function returns this handle.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/libloaderapi/nf-libloaderapi-freelibrary#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call the <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> function.</para>
            </returns>
            <remarks>
            <para>The system maintains a per-process reference count for each loaded module. A  module that was loaded at process initialization due to load-time dynamic linking has a reference count of one. The reference count for a module is incremented each time the  module is loaded by a call to <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibrarya">LoadLibrary</a>. The reference count is also incremented by a call to <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibraryexa">LoadLibraryEx</a> unless the  module  is being loaded for the first time and is being loaded as   a data or image file. The reference count is decremented each time the <b>FreeLibrary</b> or <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-freelibraryandexitthread">FreeLibraryAndExitThread</a> function is called for the module. When a  module's reference count reaches zero or the process terminates, the system unloads the module from the address space of the  process. Before unloading a library module, the system enables the module to detach from the process by calling the module's <a href="https://docs.microsoft.com/windows/desktop/Dlls/dllmain">DllMain</a> function, if it has one, with the DLL_PROCESS_DETACH value. Doing so gives the library module an opportunity to clean up resources allocated on behalf of the current process. After the entry-point function returns, the library module is removed from the address space of the current process. It is not safe to call <b>FreeLibrary</b> from <a href="https://docs.microsoft.com/windows/desktop/Dlls/dllmain">DllMain</a>. For more information, see the Remarks section in <a href="https://docs.microsoft.com/windows/desktop/Dlls/dllmain">DllMain</a>. Calling <b>FreeLibrary</b> does not affect other processes that are using the same module. Use caution when calling <b>FreeLibrary</b> with a handle returned by <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandlea">GetModuleHandle</a>. The <b>GetModuleHandle</b> function does not increment a module's reference count, so passing this handle to <b>FreeLibrary</b> can cause a module to be unloaded prematurely. A thread that must unload the DLL in which it is executing and then terminate itself should call <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-freelibraryandexitthread">FreeLibraryAndExitThread</a> instead of calling <b>FreeLibrary</b> and <b>ExitThread</b> separately. Otherwise, a race condition can occur. For details, see the Remarks section of <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-freelibraryandexitthread">FreeLibraryAndExitThread</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/libloaderapi/nf-libloaderapi-freelibrary#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetModuleHandle(System.String)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GetModuleHandle(Windows.Win32.Foundation.PCWSTR)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetModuleHandle(Windows.Win32.Foundation.PCWSTR)">
            <summary>Retrieves a module handle for the specified module. The module must have been loaded by the calling process. (Unicode)</summary>
            <param name="lpModuleName">
            <para>The name of the loaded module (either a .dll or .exe file). If the file name extension is omitted, the default library extension .dll is appended. The file name string can include a trailing point character (.) to indicate that the module name has no extension. The string does not have to specify a path. When specifying a path, be sure to use backslashes (\\), not forward slashes (/). The name is compared (case independently) to the names of modules currently mapped into the address space of the calling process.</para>
            <para>If this parameter is NULL, <b>GetModuleHandle</b> returns a handle to the file used to create the calling process (.exe file). The <b>GetModuleHandle</b> function does not retrieve handles for modules that were loaded using the <b>LOAD_LIBRARY_AS_DATAFILE</b> flag. For more information, see <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibraryexa">LoadLibraryEx</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/libloaderapi/nf-libloaderapi-getmodulehandlew#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>If the function succeeds, the return value is a handle to the specified module. If the function fails, the return value is NULL. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>The returned handle is not global or inheritable. It cannot be duplicated or used by another process. If <i>lpModuleName</i> does not include a path and there is more than one loaded module with the same base name and extension, you cannot predict which module handle will be returned. To work around this problem, you could specify a path, use <a href="https://docs.microsoft.com/windows/desktop/Msi/side-by-side-assemblies">side-by-side assemblies</a>, or use <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandleexa">GetModuleHandleEx</a> to specify a memory location rather than a DLL name. The <b>GetModuleHandle</b> function returns a handle to a mapped module without incrementing its reference count. However, if this handle is passed to the <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-freelibrary">FreeLibrary</a> function, the reference count of the mapped module will be decremented. Therefore, do not pass a handle returned by <b>GetModuleHandle</b> to the <b>FreeLibrary</b> function. Doing so can cause a DLL module to be unmapped prematurely. This function must be used carefully in a multithreaded application. There is no guarantee that the module handle remains valid between the time this function returns the handle and the time it is used. For example, suppose that a thread retrieves a module handle, but before it uses the handle, a second thread frees the module. If the system loads another module, it could reuse the module handle that was recently freed. Therefore, the first thread would have a handle to a different module  than the one intended.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/libloaderapi/nf-libloaderapi-getmodulehandlew#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GlobalFree_SafeHandle(Windows.Win32.Foundation.HGLOBAL)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GlobalFree(Windows.Win32.Foundation.HGLOBAL)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GlobalFree(Windows.Win32.Foundation.HGLOBAL)">
            <summary>Frees the specified global memory object and invalidates its handle.</summary>
            <param name="hMem">
            <para>A handle to the global memory object. This handle is returned by either the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-globalalloc">GlobalAlloc</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-globalrealloc">GlobalReAlloc</a> function. It is not safe to free memory allocated with <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-localalloc">LocalAlloc</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winbase/nf-winbase-globalfree#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>If the function succeeds, the return value is <b>NULL</b>. If the function fails, the return value is equal to a handle to the global memory object. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>If the process examines or modifies the memory after it has been freed, heap corruption may occur or an access violation exception (EXCEPTION_ACCESS_VIOLATION) may be generated. The <b>GlobalFree</b> function will free a locked memory object. A locked memory object has a lock count greater than zero. The <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-globallock">GlobalLock</a> function locks a global memory object and increments the lock count by one. The <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-globalunlock">GlobalUnlock</a> function unlocks it and decrements the lock count by one. To get the lock count of a global memory object, use the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-globalflags">GlobalFlags</a> function. If an application is running under a debug version of the system, <b>GlobalFree</b> will issue a message that tells you that a locked object is being freed. If you are debugging the application, <b>GlobalFree</b> will enter a breakpoint just before freeing a locked object. This allows you to verify the intended behavior, then continue execution.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winbase/nf-winbase-globalfree#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GlobalAlloc_SafeHandle(Windows.Win32.System.Memory.GLOBAL_ALLOC_FLAGS,System.UIntPtr)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GlobalAlloc(Windows.Win32.System.Memory.GLOBAL_ALLOC_FLAGS,System.UIntPtr)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GlobalAlloc(Windows.Win32.System.Memory.GLOBAL_ALLOC_FLAGS,System.UIntPtr)">
            <summary>Allocates the specified number of bytes from the heap. (GlobalAlloc)</summary>
            <param name="uFlags"></param>
            <param name="dwBytes">The number of bytes to allocate. If this parameter is zero and the <i>uFlags</i> parameter specifies <b>GMEM_MOVEABLE</b>, the function returns a handle to a memory object that is marked as discarded.</param>
            <returns>
            <para>If the function succeeds, the return value is a handle to the newly allocated memory object. If the function fails, the return value is <b>NULL</b>. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>Windows memory management does not provide a separate local heap and global heap. Therefore, the <b>GlobalAlloc</b> and <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-localalloc">LocalAlloc</a> functions are essentially the same. The movable-memory flags <b>GHND</b> and <b>GMEM_MOVABLE</b> add unnecessary overhead and require locking to be used safely. They should be avoided unless documentation specifically states that they should be used. New applications should use the <a href="https://docs.microsoft.com/windows/desktop/Memory/heap-functions">heap functions</a> to allocate and manage memory unless the documentation specifically states that a global function should be used. For example, the global functions are still used with Dynamic Data Exchange (DDE), the clipboard functions, and OLE data objects. If the <b>GlobalAlloc</b> function succeeds, it allocates at least the amount of memory requested. If the actual amount allocated is greater than the amount requested, the process can use the entire amount. To determine the actual number of bytes allocated, use the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-globalsize">GlobalSize</a> function. If the heap does not contain sufficient free space to satisfy the request, <b>GlobalAlloc</b> returns <b>NULL</b>. Because <b>NULL</b> is used to indicate an error, virtual address zero is never allocated. It is, therefore, easy to detect the use of a <b>NULL</b> pointer. Memory allocated with this function is guaranteed to be aligned on an 8-byte boundary. To execute dynamically generated code, use the <a href="https://docs.microsoft.com/windows/desktop/api/memoryapi/nf-memoryapi-virtualalloc">VirtualAlloc</a> function to allocate memory and the <a href="https://docs.microsoft.com/windows/desktop/api/memoryapi/nf-memoryapi-virtualprotect">VirtualProtect</a> function to grant  <b>PAGE_EXECUTE</b> access. To free the memory, use the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-globalfree">GlobalFree</a> function. It is not safe to free memory allocated with <b>GlobalAlloc</b> using <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-localfree">LocalFree</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winbase/nf-winbase-globalalloc#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GlobalLock(System.Runtime.InteropServices.SafeHandle)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GlobalLock(Windows.Win32.Foundation.HGLOBAL)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GlobalLock(Windows.Win32.Foundation.HGLOBAL)">
            <summary>Locks a global memory object and returns a pointer to the first byte of the object's memory block.</summary>
            <param name="hMem">
            <para>A handle to the global memory object. This handle is returned by either the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-globalalloc">GlobalAlloc</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-globalrealloc">GlobalReAlloc</a> function.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winbase/nf-winbase-globallock#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>If the function succeeds, the return value is a pointer to the first byte of the memory block. If the function fails, the return value is <b>NULL</b>. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>The internal data structures for each memory object include a lock count that is initially zero. For movable memory objects, <b>GlobalLock</b> increments the count by one, and the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-globalunlock">GlobalUnlock</a> function decrements the count by one. Each successful call that a process makes to <b>GlobalLock</b> for an object must be matched by a corresponding call to <b>GlobalUnlock</b>. Locked memory will not be moved or discarded, unless the memory object is reallocated by using the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-globalrealloc">GlobalReAlloc</a> function. The memory block of a locked memory object remains locked until its lock count is decremented to zero, at which time it can be moved or discarded. Memory objects allocated with <b>GMEM_FIXED</b> always have a lock count of zero. For these objects, the value of the returned pointer is equal to the value of the specified handle. If the specified memory block has been discarded or if the memory block has a zero-byte size, this function returns <b>NULL</b>. Discarded objects always have a lock count of zero.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winbase/nf-winbase-globallock#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GlobalUnlock(System.Runtime.InteropServices.SafeHandle)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GlobalUnlock(Windows.Win32.Foundation.HGLOBAL)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GlobalUnlock(Windows.Win32.Foundation.HGLOBAL)">
            <summary>Decrements the lock count associated with a memory object that was allocated with GMEM_MOVEABLE.</summary>
            <param name="hMem">
            <para>A handle to the global memory object. This handle is returned by either the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-globalalloc">GlobalAlloc</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-globalrealloc">GlobalReAlloc</a> function.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winbase/nf-winbase-globalunlock#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>If the memory object is still locked after decrementing the lock count, the return value is a nonzero value. If the memory object is unlocked after decrementing the lock count, the function returns zero and <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> returns <b>NO_ERROR</b>. If the function fails, the return value is zero and <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> returns a value other than <b>NO_ERROR</b>.</para>
            </returns>
            <remarks>
            <para>The internal data structures for each memory object include a lock count that is initially zero. For movable memory objects, the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-globallock">GlobalLock</a> function increments the count by one, and <b>GlobalUnlock</b> decrements the count by one. For each call that a process makes to <b>GlobalLock</b> for an object, it must eventually call <b>GlobalUnlock</b>. Locked memory will not be moved or discarded, unless the memory object is reallocated by using the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-globalrealloc">GlobalReAlloc</a> function. The memory block of a locked memory object remains locked until its lock count is decremented to zero, at which time it can be moved or discarded. Memory objects allocated with <b>GMEM_FIXED</b> always have a lock count of zero. If the specified memory block is fixed memory, this function returns <b>TRUE</b>. If the memory object is already unlocked, <b>GlobalUnlock</b> returns <b>FALSE</b> and <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> reports <b>ERROR_NOT_LOCKED</b>. A process should not rely on the return value to determine the number of times it must subsequently call <b>GlobalUnlock</b> for a memory object.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winbase/nf-winbase-globalunlock#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.MFTEnumEx(System.Guid,Windows.Win32.Media.MediaFoundation.MFT_ENUM_FLAG,System.Nullable{Windows.Win32.Media.MediaFoundation.MFT_REGISTER_TYPE_INFO},System.Nullable{Windows.Win32.Media.MediaFoundation.MFT_REGISTER_TYPE_INFO},Windows.Win32.Media.MediaFoundation.IMFActivate**@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.MFTEnumEx(System.Guid,Windows.Win32.Media.MediaFoundation.MFT_ENUM_FLAG,Windows.Win32.Media.MediaFoundation.MFT_REGISTER_TYPE_INFO*,Windows.Win32.Media.MediaFoundation.MFT_REGISTER_TYPE_INFO*,Windows.Win32.Media.MediaFoundation.IMFActivate***,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.MFTEnumEx(System.Guid,Windows.Win32.Media.MediaFoundation.MFT_ENUM_FLAG,Windows.Win32.Media.MediaFoundation.MFT_REGISTER_TYPE_INFO*,Windows.Win32.Media.MediaFoundation.MFT_REGISTER_TYPE_INFO*,Windows.Win32.Media.MediaFoundation.IMFActivate***,System.UInt32*)">
            <summary>Gets a list of Microsoft Media Foundation transforms (MFTs) that match specified search criteria. This function extends the MFTEnum function.</summary>
            <param name="guidCategory">A GUID that specifies the category of MFTs to enumerate. For a list of MFT categories, see <a href="https://docs.microsoft.com/windows/desktop/medfound/mft-category">MFT_CATEGORY</a>.</param>
            <param name="Flags">The bitwise <b>OR</b> of zero or more flags from the <a href="https://docs.microsoft.com/windows/win32/api/mfapi/ne-mfapi-_mft_enum_flag">_MFT_ENUM_FLAG</a> enumeration.</param>
            <param name="pInputType">
            <para>A pointer to an <a href="https://docs.microsoft.com/windows/win32/api/mfobjects/ns-mfobjects-mft_register_type_info">MFT_REGISTER_TYPE_INFO</a> structure that specifies an input media type to match. This parameter can be <b>NULL</b>. If <b>NULL</b>, all input types are matched.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfapi/nf-mfapi-mftenumex#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="pOutputType">
            <para>A pointer to an <a href="https://docs.microsoft.com/windows/win32/api/mfobjects/ns-mfobjects-mft_register_type_info">MFT_REGISTER_TYPE_INFO</a> structure that specifies an output media type to match. This parameter can be <b>NULL</b>. If <b>NULL</b>, all output types are matched.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfapi/nf-mfapi-mftenumex#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="pppMFTActivate">Receives an array of <a href="https://docs.microsoft.com/windows/desktop/api/mfobjects/nn-mfobjects-imfactivate">IMFActivate</a> interface pointers. Each pointer represents an activation object for an MFT that matches the search criteria. The function allocates the memory for the array. The caller must release the pointers and call the <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-cotaskmemfree">CoTaskMemFree</a> function to free the memory for the array.</param>
            <param name="pnumMFTActivate">Receives the number of elements in the <i>pppMFTActivate</i> array. If no MFTs match the search criteria, this parameter receives the value zero.</param>
            <returns>If this function succeeds, it returns <b>S_OK</b>. Otherwise, it returns an <b>HRESULT</b> error code.</returns>
            <remarks>
            <para>The <i>Flags</i> parameter controls which MFTs are enumerated, and the order in which they are returned. The flags for this parameter fall into several groups.</para>
            <para>The first set of flags specifies how an MFT processes data.</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/mfapi/nf-mfapi-mftenumex#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.SysFreeString(Windows.Win32.Foundation.BSTR)">
            <summary>Deallocates a string allocated previously by SysAllocString, SysAllocStringByteLen, SysReAllocString, SysAllocStringLen, or SysReAllocStringLen.</summary>
            <param name="bstrString">The previously allocated string. If this parameter is <b>NULL</b>, the function simply returns.</param>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oleauto/nf-oleauto-sysfreestring">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.SHAppBarMessage(System.UInt32,Windows.Win32.UI.Shell.APPBARDATA@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.SHAppBarMessage(System.UInt32,Windows.Win32.UI.Shell.APPBARDATA*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.SHAppBarMessage(System.UInt32,Windows.Win32.UI.Shell.APPBARDATA*)">
            <summary>Sends an appbar message to the system.</summary>
            <param name="dwMessage">Type: <b>DWORD</b></param>
            <param name="pData">
            <para>Type: <b>PAPPBARDATA</b> A pointer to an <a href="https://docs.microsoft.com/windows/desktop/api/shellapi/ns-shellapi-appbardata">APPBARDATA</a> structure. The content of the structure on entry and on exit depends on the value set in the <i>dwMessage</i> parameter. See the individual message pages for specifics.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/shellapi/nf-shellapi-shappbarmessage#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>UINT_PTR</b> This function returns a message-dependent value. For more information, see the Windows SDK documentation for the specific appbar message sent. Links to those documents are given in the See Also section.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/shellapi/nf-shellapi-shappbarmessage">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.OpenClipboard(Windows.Win32.Foundation.HWND)">
            <summary>Opens the clipboard for examination and prevents other applications from modifying the clipboard content.</summary>
            <param name="hWndNewOwner">
            <para>Type: <b>HWND</b> A handle to the window to be associated with the open clipboard. If this parameter is <b>NULL</b>, the open clipboard is associated with the current task.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-openclipboard#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para><b>OpenClipboard</b> fails if another window has the clipboard open. An application should call the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-closeclipboard">CloseClipboard</a> function after every successful call to <b>OpenClipboard</b>. The window identified by the <i>hWndNewOwner</i> parameter does not become the clipboard owner unless the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-emptyclipboard">EmptyClipboard</a> function is called. If an application calls <b>OpenClipboard</b> with hwnd set to <b>NULL</b>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-emptyclipboard">EmptyClipboard</a> sets the clipboard owner to <b>NULL</b>; this causes <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-setclipboarddata">SetClipboardData</a> to fail.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-openclipboard#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.CloseClipboard">
            <summary>Closes the clipboard.</summary>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>When the window has finished examining or changing the clipboard, close the clipboard by calling <b>CloseClipboard</b>. This enables other windows to access the clipboard. Do not place an object on the clipboard after calling <b>CloseClipboard</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-closeclipboard#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.EmptyClipboard">
            <summary>Empties the clipboard and frees handles to data in the clipboard. The function then assigns ownership of the clipboard to the window that currently has the clipboard open.</summary>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>Before calling <b>EmptyClipboard</b>, an application must open the clipboard by using the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-openclipboard">OpenClipboard</a> function. If the application specifies a <b>NULL</b> window handle when opening the clipboard, <b>EmptyClipboard</b> succeeds but sets the clipboard owner to <b>NULL</b>. Note that this causes <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-setclipboarddata">SetClipboardData</a> to fail.</remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.FindWindowEx(Windows.Win32.Foundation.HWND,Windows.Win32.Foundation.HWND,System.String,System.String)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.FindWindowEx(Windows.Win32.Foundation.HWND,Windows.Win32.Foundation.HWND,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.FindWindowEx(Windows.Win32.Foundation.HWND,Windows.Win32.Foundation.HWND,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR)">
            <summary>Retrieves a handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the specified child window. This function does not perform a case-sensitive search. (Unicode)</summary>
            <param name="hWndParent">
            <para>Type: <b>HWND</b> A handle to the parent window whose child windows are to be searched. If <i>hwndParent</i> is <b>NULL</b>, the function uses the desktop window as the parent window. The function searches among windows that are child windows of the desktop. If <i>hwndParent</i> is <b>HWND_MESSAGE</b>, the function searches all <a href="https://docs.microsoft.com/windows/desktop/winmsg/window-features">message-only windows</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-findwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="hWndChildAfter">
            <para>Type: <b>HWND</b> A handle to a child window. The search begins with the next child window in the Z order. The child window must be a direct child window of <i>hwndParent</i>, not just a descendant window. If <i>hwndChildAfter</i> is <b>NULL</b>, the search begins with the first child window of <i>hwndParent</i>. Note that if both <i>hwndParent</i> and <i>hwndChildAfter</i> are <b>NULL</b>, the function searches all top-level and message-only windows.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-findwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lpszClass">
            <para>Type: <b>LPCTSTR</b> The class name or a class atom created by a previous call to the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassa">RegisterClass</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassexa">RegisterClassEx</a> function. The atom must be placed in the low-order word of <i>lpszClass</i>; the high-order word must be zero. If <i>lpszClass</i> is a string, it specifies the window class name. The class name can be any name registered with <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassa">RegisterClass</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassexa">RegisterClassEx</a>, or any of the predefined control-class names, or it can be <c>MAKEINTATOM(0x8000)</c>. In this latter case, 0x8000 is the atom for a menu class. For more information, see the Remarks section of this topic.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-findwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lpszWindow">
            <para>Type: <b>LPCTSTR</b> The window name (the window's title). If this parameter is <b>NULL</b>, all window names match.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-findwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>HWND</b> If the function succeeds, the return value is a handle to the window that has the specified class and window names. If the function fails, the return value is <b>NULL</b>. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>The FindWindowEx function searches only direct child windows. It does not search other descendants. If the <i>lpszWindow</i> parameter is not <b>NULL</b>, <b>FindWindowEx</b> calls the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getwindowtexta">GetWindowText</a> function to retrieve the window name for comparison. For a description of a potential problem that can arise, see the Remarks section of <b>GetWindowText</b>. An application can call this function in the following way. <c>FindWindowEx( NULL, NULL, MAKEINTATOM(0x8000), NULL );</c> Note that 0x8000 is the atom for a menu class. When an application calls this function, the function checks whether a context menu is being displayed that the application created.</para>
            <para>> [!NOTE] > The winuser.h header defines FindWindowEx as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see [Conventions for Function Prototypes](/windows/win32/intl/conventions-for-function-prototypes).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-findwindowexw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.DestroyMenu(Windows.Win32.UI.WindowsAndMessaging.HMENU)">
            <summary>Destroys the specified menu and frees any memory that the menu occupies.</summary>
            <param name="hMenu">
            <para>Type: <b>HMENU</b> A handle to the menu to be destroyed.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroymenu#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>Before closing, an application must use the <b>DestroyMenu</b> function to destroy a menu not assigned to a window. A menu that is assigned to a window is automatically destroyed when the application closes. <b>DestroyMenu</b> is recursive, that is, it will destroy the menu and all its submenus.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroymenu#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.CreateWindowEx(Windows.Win32.UI.WindowsAndMessaging.WINDOW_EX_STYLE,System.String,System.String,Windows.Win32.UI.WindowsAndMessaging.WINDOW_STYLE,System.Int32,System.Int32,System.Int32,System.Int32,Windows.Win32.Foundation.HWND,System.Runtime.InteropServices.SafeHandle,System.Runtime.InteropServices.SafeHandle,System.Void*)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.CreateWindowEx(Windows.Win32.UI.WindowsAndMessaging.WINDOW_EX_STYLE,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.UI.WindowsAndMessaging.WINDOW_STYLE,System.Int32,System.Int32,System.Int32,System.Int32,Windows.Win32.Foundation.HWND,Windows.Win32.UI.WindowsAndMessaging.HMENU,Windows.Win32.Foundation.HINSTANCE,System.Void*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.CreateWindowEx(Windows.Win32.UI.WindowsAndMessaging.WINDOW_EX_STYLE,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.UI.WindowsAndMessaging.WINDOW_STYLE,System.Int32,System.Int32,System.Int32,System.Int32,Windows.Win32.Foundation.HWND,Windows.Win32.UI.WindowsAndMessaging.HMENU,Windows.Win32.Foundation.HINSTANCE,System.Void*)">
            <summary>Creates an overlapped, pop-up, or child window with an extended window style; otherwise, this function is identical to the CreateWindow function. (Unicode)</summary>
            <param name="dwExStyle">
            <para>Type: <b>DWORD</b> The extended window style of the window being created. For a list of possible values, see  <a href="https://docs.microsoft.com/windows/desktop/winmsg/extended-window-styles">Extended Window Styles</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lpClassName">
            <para>Type: <b>LPCTSTR</b> A <b>null</b>-terminated string or a class atom created by a previous call to the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassa">RegisterClass</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassexa">RegisterClassEx</a> function. The atom must be in the low-order word of <i>lpClassName</i>; the high-order word must be zero. If <i>lpClassName</i> is a string, it specifies the window class name. The class name can be any name registered with <b>RegisterClass</b> or <b>RegisterClassEx</b>, provided that the module that registers the class is also the module that creates the window. The class name can also be any of the predefined <a href="https://docs.microsoft.com/windows/desktop/winmsg/about-window-classes">system class</a> names.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lpWindowName">
            <para>Type: <b>LPCTSTR</b> The window name. If the window style specifies a title bar, the window title pointed to by <i>lpWindowName</i> is displayed in the title bar. When using <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createwindowa">CreateWindow</a> to create controls, such as buttons, check boxes, and static controls, use <i>lpWindowName</i> to specify the text of the control. When creating a static control with the <b>SS_ICON</b> style, use <i>lpWindowName</i> to specify the icon name or identifier. To specify an identifier, use the syntax "#<i>num</i>".</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="dwStyle">
            <para>Type: <b>DWORD</b> The style of the window being created. This parameter can be a combination of the <a href="https://docs.microsoft.com/windows/desktop/winmsg/window-styles">window style values</a>, plus the control styles indicated in the Remarks section.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="X">
            <para>Type: <b>int</b> The initial horizontal position of the window. For an overlapped or pop-up window, the <i>x</i> parameter is the initial x-coordinate of the window's upper-left corner, in screen coordinates. For a child window, <i>x</i> is the x-coordinate of the upper-left corner of the window relative to the upper-left corner of the parent window's client area. If <i>x</i> is set to <b>CW_USEDEFAULT</b>, the system selects the default position for the window's upper-left corner and ignores the <i>y</i> parameter. <b>CW_USEDEFAULT</b> is valid only for overlapped windows; if it is specified for a pop-up or child window, the <i>x</i> and <i>y</i> parameters are set to zero.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="Y">
            <para>Type: <b>int</b> The initial vertical position of the window. For an overlapped or pop-up window, the <i>y</i> parameter is the initial y-coordinate of the window's upper-left corner, in screen coordinates. For a child window, <i>y</i> is the initial y-coordinate of the upper-left corner of the child window relative to the upper-left corner of the parent window's client area. For a list box <i>y</i> is the initial y-coordinate of the upper-left corner of the list box's client area relative to the upper-left corner of the parent window's client area.</para>
            <para>If an overlapped window is created with the <b>WS_VISIBLE</b> style bit set and the <i>x</i> parameter is set to <b>CW_USEDEFAULT</b>, then the <i>y</i> parameter determines how the window is shown. If the <i>y</i> parameter is <b>CW_USEDEFAULT</b>, then the window manager calls <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-showwindow">ShowWindow</a> with the <b>SW_SHOW</b> flag after the window has been created. If the <i>y</i> parameter is some other value, then the window manager calls <b>ShowWindow</b> with that value as the <i>nCmdShow</i> parameter.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="nWidth">
            <para>Type: <b>int</b> The width, in device units, of the window. For overlapped windows, <i>nWidth</i> is the window's width, in screen coordinates, or <b>CW_USEDEFAULT</b>. If <i>nWidth</i> is <b>CW_USEDEFAULT</b>, the system selects a default width and height for the window; the default width extends from the initial x-coordinates to the right edge of the screen; the default height extends from the initial y-coordinate to the top of the icon area. <b>CW_USEDEFAULT</b> is valid only for overlapped windows; if <b>CW_USEDEFAULT</b> is specified for a pop-up or child window, the <i>nWidth</i> and <i>nHeight</i> parameter are set to zero.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="nHeight">
            <para>Type: <b>int</b> The height, in device units, of the window. For overlapped windows, <i>nHeight</i> is the window's height, in screen coordinates. If the <i>nWidth</i> parameter is set to <b>CW_USEDEFAULT</b>, the system ignores <i>nHeight</i>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="hWndParent">
            <para>Type: <b>HWND</b> A handle to the parent or owner window of the window being created. To create a child window or an owned window, supply a valid window handle. This parameter is optional for pop-up windows. To create a <a href="https://docs.microsoft.com/windows/desktop/winmsg/window-features">message-only window</a>, supply <b>HWND_MESSAGE</b> or a handle to an existing message-only window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="hMenu">
            <para>Type: <b>HMENU</b> A handle to a menu, or specifies a child-window identifier, depending on the window style. For an overlapped or pop-up window, <i>hMenu</i> identifies the menu to be used with the window; it can be <b>NULL</b> if the class menu is to be used. For a child window, <i>hMenu</i> specifies the child-window identifier, an integer value used by a dialog box control to notify its parent about events. The application determines the child-window identifier; it must be unique for all child windows with the same parent window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="hInstance">
            <para>Type: <b>HINSTANCE</b> A handle to the instance of the module to be associated with the window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lpParam">
            <para>Type: <b>LPVOID</b> Pointer to a value to be passed to the window through the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-createstructa">CREATESTRUCT</a> structure (<b>lpCreateParams</b> member) pointed to by the <i>lParam</i> param of the <b>WM_CREATE</b> message.  This message is sent to the created window by this function before it returns. If an application calls <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createwindowa">CreateWindow</a> to create a MDI client window, <i>lpParam</i> should point to a <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-clientcreatestruct">CLIENTCREATESTRUCT</a> structure. If an MDI client window calls <b>CreateWindow</b> to create an MDI child window, <i>lpParam</i> should point to a <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-mdicreatestructa">MDICREATESTRUCT</a> structure. <i>lpParam</i> may be <b>NULL</b> if no additional data is needed.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>HWND</b> If the function succeeds, the return value is a handle to the new window. If the function fails, the return value is <b>NULL</b>. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>. This function typically fails for one of the following reasons: </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The <b>CreateWindowEx</b> function sends <a href="https://docs.microsoft.com/windows/desktop/winmsg/wm-nccreate">WM_NCCREATE</a>, <a href="https://docs.microsoft.com/windows/desktop/winmsg/wm-nccalcsize">WM_NCCALCSIZE</a>, and <a href="https://docs.microsoft.com/windows/desktop/winmsg/wm-create">WM_CREATE</a> messages to the window being created. If the created window is a child window, its default position is at the bottom of the Z-order. If the created window is a top-level window, its default position is at the top of the Z-order (but beneath all topmost windows unless the created window is itself topmost). For information on controlling whether the Taskbar displays a button for the created window, see <a href="https://docs.microsoft.com/windows/desktop/shell/taskbar">Managing Taskbar Buttons</a>. For information on removing a window, see the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-destroywindow">DestroyWindow</a> function. The following predefined control classes can be specified in the <i>lpClassName</i> parameter. Note the corresponding control styles you can use in the <i>dwStyle</i> parameter. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.DestroyWindow(Windows.Win32.Foundation.HWND)">
            <summary>Destroys the specified window.</summary>
            <param name="hWnd">
            <para>Type: <b>HWND</b> A handle to the window to be destroyed.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroywindow#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>A thread cannot use <b>DestroyWindow</b> to destroy a window created by a different thread. If the window being destroyed is a child window that does not have the <b>WS_EX_NOPARENTNOTIFY</b> style, a <a href="https://docs.microsoft.com/windows/win32/inputmsg/wm-parentnotify">WM_PARENTNOTIFY</a> message is sent to the parent.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroywindow#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.DestroyIcon(Windows.Win32.UI.WindowsAndMessaging.HICON)">
            <summary>Destroys an icon and frees any memory the icon occupied.</summary>
            <param name="hIcon">
            <para>Type: <b>HICON</b> A handle to the icon to be destroyed. The icon must not be in use.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroyicon#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>It is only necessary to call <b>DestroyIcon</b> for icons and cursors created with the following functions: <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createiconfromresourceex">CreateIconFromResourceEx</a> (if called without the <b>LR_SHARED</b> flag), <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createiconindirect">CreateIconIndirect</a>, and <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-copyicon">CopyIcon</a>. Do not use this function to destroy a shared icon. A shared icon is valid as long as the module from which it was loaded remains in memory. The following functions obtain a shared icon. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroyicon#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.DestroyCursor(Windows.Win32.UI.WindowsAndMessaging.HCURSOR)">
            <summary>Destroys a cursor and frees any memory the cursor occupied. Do not use this function to destroy a shared cursor.</summary>
            <param name="hCursor">
            <para>Type: <b>HCURSOR</b> A handle to the cursor to be destroyed. The cursor must not be in use.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroycursor#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>The <b>DestroyCursor</b> function destroys a nonshared cursor. Do not use this function to destroy a shared cursor. A shared cursor is valid as long as the module from which it was loaded remains in memory. The following functions obtain a shared cursor: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroycursor#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.RegisterClassEx(Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.RegisterClassEx(Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.RegisterClassEx(Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW*)">
            <summary>Registers a window class for subsequent use in calls to the CreateWindow or CreateWindowEx function. (RegisterClassExW)</summary>
            <returns>
            <para>Type: <b>ATOM</b> If the function succeeds, the return value is a class atom that uniquely identifies the class being registered. This atom can only be used by the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createwindowa">CreateWindow</a>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createwindowexa">CreateWindowEx</a>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getclassinfoa">GetClassInfo</a>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getclassinfoexa">GetClassInfoEx</a>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-findwindowa">FindWindow</a>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-findwindowexa">FindWindowEx</a>, and <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-unregisterclassa">UnregisterClass</a> functions and the <b>IActiveIMMap::FilterClientWindows</b> method. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>If you register the window class by using <b>RegisterClassExA</b>, the application tells the system that the windows of the created class expect messages with text or character parameters to use the ANSI character set; if you register it by using <b>RegisterClassExW</b>, the application requests that the system pass text parameters of messages as Unicode. The <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-iswindowunicode">IsWindowUnicode</a> function enables applications to query the nature of each window. For more information on ANSI and Unicode functions, see <a href="https://docs.microsoft.com/windows/desktop/Intl/conventions-for-function-prototypes">Conventions for Function Prototypes</a>. All window classes that an application registers are unregistered when it terminates. No window classes registered by a DLL are unregistered when the DLL is unloaded. A DLL must explicitly unregister its classes when it is unloaded.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-registerclassexw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.UnregisterClass(System.String,System.Runtime.InteropServices.SafeHandle)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.UnregisterClass(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.HINSTANCE)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.UnregisterClass(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.HINSTANCE)">
            <summary>Unregisters a window class, freeing the memory required for the class. (Unicode)</summary>
            <param name="lpClassName">
            <para>Type: <b>LPCTSTR</b> A null-terminated string or a class atom. If <i>lpClassName</i> is a string, it specifies the window class name. This class name must have been registered by a previous call to the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassa">RegisterClass</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassexa">RegisterClassEx</a> function. System classes, such as dialog box controls, cannot be unregistered. If this parameter is an atom, it must be a class atom created by a previous call to the <b>RegisterClass</b> or <b>RegisterClassEx</b> function. The atom must be in the low-order word of <i>lpClassName</i>; the high-order word must be zero.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-unregisterclassw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="hInstance">
            <para>Type: <b>HINSTANCE</b> A handle to the instance of the module that created the class.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-unregisterclassw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the class could not be found or if a window still exists that was created with the class, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>Before calling this function, an application must destroy all windows created with the specified class. All window classes that an application registers are unregistered when it terminates. Class atoms are special atoms returned only by <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassa">RegisterClass</a> and <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassexa">RegisterClassEx</a>. No window classes registered by a DLL are unregistered when the .dll is unloaded.</para>
            <para>> [!NOTE] > The winuser.h header defines UnregisterClass as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see [Conventions for Function Prototypes](/windows/win32/intl/conventions-for-function-prototypes).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-unregisterclassw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.PostMessage(Windows.Win32.Foundation.HWND,System.UInt32,Windows.Win32.Foundation.WPARAM,Windows.Win32.Foundation.LPARAM)">
            <summary>Places (posts) a message in the message queue associated with the thread that created the specified window and returns without waiting for the thread to process the message. (Unicode)</summary>
            <param name="hWnd">
            <para>Type: <b>HWND</b> A handle to the window whose window procedure is to receive the message. The following values have special meanings. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-postmessagew#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="Msg">
            <para>Type: <b>UINT</b> The message to be posted. For lists of the system-provided messages, see <a href="https://docs.microsoft.com/windows/desktop/winmsg/about-messages-and-message-queues">System-Defined Messages</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-postmessagew#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="wParam">
            <para>Type: <b>WPARAM</b> Additional message-specific information.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-postmessagew#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lParam">
            <para>Type: <b>LPARAM</b> Additional message-specific information.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-postmessagew#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>When a message is blocked by UIPI the last error, retrieved with <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>, is set to 5 (access denied). Messages in a message queue are retrieved by calls to the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getmessage">GetMessage</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-peekmessagea">PeekMessage</a> function. Applications that need to communicate using <b>HWND_BROADCAST</b> should use the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerwindowmessagea">RegisterWindowMessage</a> function to obtain a unique message for inter-application communication. The system only does marshalling for system messages (those in the range 0 to (<a href="https://docs.microsoft.com/windows/desktop/winmsg/wm-user">WM_USER</a>-1)). To send other messages (those &gt;= <b>WM_USER</b>) to another process, you must do custom marshalling. If you send a message in the range below <a href="https://docs.microsoft.com/windows/desktop/winmsg/wm-user">WM_USER</a> to the asynchronous message functions (<b>PostMessage</b>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-sendnotifymessagea">SendNotifyMessage</a>, and <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-sendmessagecallbacka">SendMessageCallback</a>), its message parameters cannot include pointers. Otherwise, the operation will fail. The functions will return before the receiving thread has had a chance to process the message and the sender will free the memory before it is used. Do not post the <a href="https://docs.microsoft.com/windows/desktop/winmsg/wm-quit">WM_QUIT</a> message using <b>PostMessage</b>; use the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-postquitmessage">PostQuitMessage</a> function. An accessibility application can use <b>PostMessage</b> to post <a href="https://docs.microsoft.com/windows/desktop/inputdev/wm-appcommand">WM_APPCOMMAND</a> messages  to the shell to launch applications. This  functionality is not guaranteed to work for other types of applications. There is a limit of 10,000 posted messages per message queue. This limit should be sufficiently large.  If your application exceeds the limit, it should be redesigned to avoid consuming so many system resources. To adjust this limit, modify the following registry key. <pre><b>HKEY_LOCAL_MACHINE</b> <b>SOFTWARE</b> <b>Microsoft</b> <b>Windows NT</b> <b>CurrentVersion</b> <b>Windows</b> <b>USERPostMessageLimit</b></pre> If the function fails, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> to get extended error information. <b>GetLastError</b> returns <b>ERROR_NOT_ENOUGH_QUOTA</b> when the limit is hit. The minimum acceptable value is 4000.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-postmessagew#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.DefWindowProc(Windows.Win32.Foundation.HWND,System.UInt32,Windows.Win32.Foundation.WPARAM,Windows.Win32.Foundation.LPARAM)">
            <summary>Calls the default window procedure to provide default processing for any window messages that an application does not process. (Unicode)</summary>
            <param name="hWnd">
            <para>Type: <b>HWND</b> A handle to the window procedure that received the message.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-defwindowprocw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="Msg">
            <para>Type: <b>UINT</b> The message.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-defwindowprocw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="wParam">
            <para>Type: <b>WPARAM</b> Additional message information. The content of this parameter depends on the value of the <i>Msg</i> parameter.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-defwindowprocw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lParam">
            <para>Type: <b>LPARAM</b> Additional message information. The content of this parameter depends on the value of the <i>Msg</i> parameter.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-defwindowprocw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>LRESULT</b> The return value is the result of the message processing and depends on the message.</para>
            </returns>
            <remarks>
            <para>> [!NOTE] > The winuser.h header defines DefWindowProc as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see [Conventions for Function Prototypes](/windows/win32/intl/conventions-for-function-prototypes).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-defwindowprocw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.SetClipboardData(System.UInt32,System.Runtime.InteropServices.SafeHandle)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.SetClipboardData(System.UInt32,Windows.Win32.Foundation.HANDLE)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.SetClipboardData(System.UInt32,Windows.Win32.Foundation.HANDLE)">
            <summary>Places data on the clipboard in a specified clipboard format.</summary>
            <param name="uFormat">
            <para>Type: <b>UINT</b> The clipboard format. This parameter can be a registered format or any of the standard clipboard formats. For more information, see <a href="https://docs.microsoft.com/windows/desktop/dataxchg/standard-clipboard-formats">Standard Clipboard Formats</a> and <a href="https://docs.microsoft.com/windows/desktop/dataxchg/clipboard-formats">Registered Clipboard Formats</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setclipboarddata#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="hMem">
            <para>Type: <b>HANDLE</b> A handle to the data in the specified format. This parameter can be <b>NULL</b>, indicating that the window provides data in the specified clipboard format (renders the format) upon request; this is known as [delayed rendering](/windows/win32/dataxchg/clipboard-operations#delayed-rendering). If a window delays rendering, it must process the [WM_RENDERFORMAT](/windows/win32/dataxchg/wm-renderformat) and [WM_RENDERALLFORMATS](/windows/win32/dataxchg/wm-renderallformats) messages. If <b>SetClipboardData</b> succeeds, the system owns the object identified by the <i>hMem</i> parameter. The application may not write to or free the data once ownership has been transferred to the system, but it can lock and read from the data until the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-closeclipboard">CloseClipboard</a> function is called. (The memory must be unlocked before the Clipboard is closed.) If the <i>hMem</i> parameter identifies a memory object, the object must have been allocated using the function with the <b>GMEM_MOVEABLE</b> flag.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setclipboarddata#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>HANDLE</b> If the function succeeds, the return value is the handle to the data. If the function fails, the return value is <b>NULL</b>. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para><b>Windows 8:</b> Bitmaps to be shared with Windows Store app apps must be in the <b>CF_BITMAP</b> format (device-dependent bitmap). If an application calls <b>SetClipboardData</b> in response to <a href="https://docs.microsoft.com/windows/desktop/dataxchg/wm-renderformat">WM_RENDERFORMAT</a> or <a href="https://docs.microsoft.com/windows/desktop/dataxchg/wm-renderallformats">WM_RENDERALLFORMATS</a>, the application should not use the handle after <b>SetClipboardData</b> has been called. If an application calls <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-openclipboard">OpenClipboard</a> with hwnd set to <b>NULL</b>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-emptyclipboard">EmptyClipboard</a> sets the clipboard owner to <b>NULL</b>; this causes <b>SetClipboardData</b> to fail. The system performs implicit data format conversions between certain clipboard formats when an application calls the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getclipboarddata">GetClipboardData</a> function. For example, if the <b>CF_OEMTEXT</b> format is on the clipboard, a window can retrieve data in the <b>CF_TEXT</b> format. The format on the clipboard is converted to the requested format on demand. For more information, see <a href="https://docs.microsoft.com/windows/desktop/dataxchg/clipboard-formats">Synthesized Clipboard Formats</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setclipboarddata#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.CopyImage(System.Runtime.InteropServices.SafeHandle,Windows.Win32.UI.WindowsAndMessaging.GDI_IMAGE_TYPE,System.Int32,System.Int32,Windows.Win32.UI.WindowsAndMessaging.IMAGE_FLAGS)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.CopyImage(Windows.Win32.Foundation.HANDLE,Windows.Win32.UI.WindowsAndMessaging.GDI_IMAGE_TYPE,System.Int32,System.Int32,Windows.Win32.UI.WindowsAndMessaging.IMAGE_FLAGS)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.CopyImage(Windows.Win32.Foundation.HANDLE,Windows.Win32.UI.WindowsAndMessaging.GDI_IMAGE_TYPE,System.Int32,System.Int32,Windows.Win32.UI.WindowsAndMessaging.IMAGE_FLAGS)">
            <summary>Creates a new image (icon, cursor, or bitmap) and copies the attributes of the specified image to the new one. If necessary, the function stretches the bits to fit the desired size of the new image.</summary>
            <param name="h">
            <para>Type: <b>HANDLE</b> A handle to the image to be copied.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-copyimage#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="type">Type: <b>UINT</b></param>
            <param name="cx">
            <para>Type: <b>int</b> The desired width, in pixels, of the image. If this is zero, then the returned image will have the same width as the original <i>hImage</i>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-copyimage#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="cy">
            <para>Type: <b>int</b> The desired height, in pixels, of the image. If this is zero, then the returned image will have the same height as the original <i>hImage</i>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-copyimage#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="flags">Type: <b>UINT</b></param>
            <returns>
            <para>Type: <b>HANDLE</b> If the function succeeds, the return value is the handle to the newly created image. If the function fails, the return value is <b>NULL</b>. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>When you are finished using the resource, you can release its associated memory by calling one of the functions in the following table. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-copyimage#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.EnumClipboardFormats(System.UInt32)">
            <summary>Enumerates the data formats currently available on the clipboard.</summary>
            <param name="format">
            <para>Type: <b>UINT</b> A clipboard format that is known to be available. To start an enumeration of clipboard formats, set <i>format</i> to zero. When <i>format</i> is zero, the function retrieves the first available clipboard format. For subsequent calls during an enumeration, set <i>format</i> to the result of the previous <b>EnumClipboardFormats</b> call.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-enumclipboardformats#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>UINT</b> If the function succeeds, the return value is the clipboard format that follows the specified format, namely the next available clipboard format. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>. If the clipboard is not open, the function fails. If there are no more clipboard formats to enumerate, the return value is zero. In this case, the <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> function returns the value <b>ERROR_SUCCESS</b>. This lets you distinguish between function failure and the end of enumeration.</para>
            </returns>
            <remarks>
            <para>You must open the clipboard before enumerating its formats. Use the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-openclipboard">OpenClipboard</a> function to open the clipboard. The <b>EnumClipboardFormats</b> function fails if the clipboard is not open. The <b>EnumClipboardFormats</b> function enumerates formats in the order that they were placed on the clipboard. If you are copying information to the clipboard, add clipboard objects in order from the most descriptive clipboard format to the least descriptive clipboard format. If you are pasting information from the clipboard, retrieve the first clipboard format that you can handle. That will be the most descriptive clipboard format that you can handle. The system provides automatic type conversions for certain clipboard formats. In the case of such a format, this function enumerates the specified format, then enumerates the formats to which it can be converted. For more information, see <a href="https://docs.microsoft.com/windows/desktop/dataxchg/clipboard-formats">Standard Clipboard Formats</a>  and <a href="https://docs.microsoft.com/windows/desktop/dataxchg/clipboard-formats">Synthesized Clipboard Formats</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-enumclipboardformats#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetClipboardFormatName(System.UInt32,System.Span{System.Char})">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GetClipboardFormatName(System.UInt32,Windows.Win32.Foundation.PWSTR,System.Int32)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetClipboardFormatName(System.UInt32,Windows.Win32.Foundation.PWSTR,System.Int32)">
            <summary>Retrieves from the clipboard the name of the specified registered format. The function copies the name to the specified buffer. (Unicode)</summary>
            <param name="format">
            <para>Type: <b>UINT</b> The type of format to be retrieved. This parameter must not specify any of the predefined clipboard formats.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getclipboardformatnamew#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lpszFormatName">
            <para>Type: <b>LPTSTR</b> The buffer that is to receive the format name.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getclipboardformatnamew#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="cchMaxCount">
            <para>Type: <b>int</b> The maximum length, in characters, of the string to be copied to the buffer. If the name exceeds this limit, it is truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getclipboardformatnamew#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>int</b> If the function succeeds, the return value is the length, in characters, of the string copied to the buffer. If the function fails, the return value is zero, indicating that the requested format does not exist or is predefined. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para><h3><a id="Security_Considerations"></a><a id="security_considerations"></a><a id="SECURITY_CONSIDERATIONS"></a>Security Considerations</h3> Using this function incorrectly might compromise the security of your program. For example, miscalculating the proper size of the <i>lpszFormatName</i> buffer, especially when the application is used in both ANSI and Unicode versions, can cause a buffer overflow. Also, note that the string is truncated if it is longer than the <i>cchMaxCount</i> parameter, which can lead to loss of information.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getclipboardformatnamew#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.RegisterClipboardFormat(System.String)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.RegisterClipboardFormat(Windows.Win32.Foundation.PCWSTR)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.RegisterClipboardFormat(Windows.Win32.Foundation.PCWSTR)">
            <summary>Registers a new clipboard format. This format can then be used as a valid clipboard format. (Unicode)</summary>
            <param name="lpszFormat">
            <para>Type: <b>LPCTSTR</b> The name of the new format.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-registerclipboardformatw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>UINT</b> If the function succeeds, the return value identifies the registered clipboard format. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>If a registered format with the specified name already exists, a new format is not registered and the return value identifies the existing format. This enables more than one application to copy and paste data using the same registered clipboard format. Note that the format name comparison is case-insensitive. Registered clipboard formats are identified by values in the range 0xC000 through 0xFFFF. When registered clipboard formats are placed on or retrieved from the clipboard, they must be in the form of an <b>HGLOBAL</b> value.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-registerclipboardformatw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetClipboardOwner">
            <summary>Retrieves the window handle of the current owner of the clipboard.</summary>
            <returns>
            <para>Type: <b>HWND</b> If the function succeeds, the return value is the handle to the window that owns the clipboard. If the clipboard is not owned, the return value is <b>NULL</b>. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>The clipboard can still contain data even if the clipboard is not currently owned. In general, the clipboard owner is the window that last placed data in clipboard. The <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-emptyclipboard">EmptyClipboard</a> function assigns clipboard ownership.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getclipboardowner#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.IsClipboardFormatAvailable(System.UInt32)">
            <summary>Determines whether the clipboard contains data in the specified format.</summary>
            <param name="format">
            <para>Type: <b>UINT</b> A standard or registered clipboard format. For a description of the standard clipboard formats, see <a href="https://docs.microsoft.com/windows/desktop/dataxchg/standard-clipboard-formats">Standard Clipboard Formats</a> .</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-isclipboardformatavailable#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the clipboard format is available, the return value is nonzero. If the clipboard format is not available, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>Typically, an application that recognizes only one clipboard format would call this function when processing the <a href="https://docs.microsoft.com/windows/desktop/menurc/wm-initmenu">WM_INITMENU</a> or <a href="https://docs.microsoft.com/windows/desktop/menurc/wm-initmenupopup">WM_INITMENUPOPUP</a> message. The application would then enable or disable the Paste menu item, depending on the return value. Applications that recognize more than one clipboard format should use the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getpriorityclipboardformat">GetPriorityClipboardFormat</a> function for this purpose.</remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetClipboardData_SafeHandle(System.UInt32)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GetClipboardData(System.UInt32)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetClipboardData(System.UInt32)">
            <summary>Retrieves data from the clipboard in a specified format. The clipboard must have been opened previously.</summary>
            <param name="uFormat">
            <para>Type: <b>UINT</b> A clipboard format. For a description of the standard clipboard formats, see <a href="https://docs.microsoft.com/windows/desktop/dataxchg/clipboard-formats">Standard Clipboard Formats</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getclipboarddata#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>HANDLE</b> If the function succeeds, the return value is the handle to a clipboard object in the specified format. If the function fails, the return value is <b>NULL</b>. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para><div class="alert"><b>Caution</b>  Clipboard data is not trusted. Parse the data carefully before using it in your application.</div> <div> </div> An application can enumerate the available formats in advance by using the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-enumclipboardformats">EnumClipboardFormats</a> function. The clipboard controls the handle that the <b>GetClipboardData</b> function returns, not the application. The application should copy the data immediately. The application must not free the handle nor leave it locked. The application must not use the handle after the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-emptyclipboard">EmptyClipboard</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-closeclipboard">CloseClipboard</a> function is called, or after the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-setclipboarddata">SetClipboardData</a> function is called with the same clipboard format. The system performs implicit data format conversions between certain clipboard formats when an application calls the <b>GetClipboardData</b> function. For example, if the <a href="https://docs.microsoft.com/windows/desktop/dataxchg/standard-clipboard-formats">CF_OEMTEXT</a> format is on the clipboard, a window can retrieve data in the <a href="https://docs.microsoft.com/windows/desktop/dataxchg/standard-clipboard-formats">CF_TEXT</a> format. The format on the clipboard is converted to the requested format on demand. For more information, see <a href="https://docs.microsoft.com/windows/desktop/dataxchg/clipboard-formats">Synthesized Clipboard Formats</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getclipboarddata#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.AddClipboardFormatListener(Windows.Win32.Foundation.HWND)">
            <summary>Places the given window in the system-maintained clipboard format listener list.</summary>
            <param name="hwnd">
            <para>Type: <b>HWND</b> A handle to the window to be placed in the clipboard format listener list.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-addclipboardformatlistener#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> Returns <b>TRUE</b> if successful, <b>FALSE</b> otherwise. Call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> for additional details.</para>
            </returns>
            <remarks>When a window has been added to the clipboard format listener list, it is posted a <a href="https://docs.microsoft.com/windows/desktop/dataxchg/wm-clipboardupdate">WM_CLIPBOARDUPDATE</a> message whenever the contents of the clipboard have changed.</remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.RemoveClipboardFormatListener(Windows.Win32.Foundation.HWND)">
            <summary>Removes the given window from the system-maintained clipboard format listener list.</summary>
            <param name="hwnd">
            <para>Type: <b>HWND</b> A handle to the window to remove from the clipboard format listener list.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-removeclipboardformatlistener#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> Returns <b>TRUE</b> if successful, <b>FALSE</b> otherwise. Call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> for additional details.</para>
            </returns>
            <remarks>When a window has been removed from the clipboard format listener list, it will no longer receive <a href="https://docs.microsoft.com/windows/desktop/dataxchg/wm-clipboardupdate">WM_CLIPBOARDUPDATE</a> messages.</remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.AllowSetForegroundWindow(System.UInt32)">
            <summary>Enables the specified process to set the foreground window using the SetForegroundWindow function. The calling process must already be able to set the foreground window. For more information, see Remarks later in this topic.</summary>
            <param name="dwProcessId">
            <para>Type: <b>DWORD</b> The identifier of the process that will be enabled to set the foreground window. If this parameter is <b>ASFW_ANY</b>, all processes will be enabled to set the foreground window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-allowsetforegroundwindow#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. The function will fail if the calling process cannot set the foreground window. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>The system restricts which processes can set the foreground window. Normally, a process can set the foreground window by calling the [**SetForegroundWindow**](nf-winuser-setforegroundwindow.md) function only if: - All of the following conditions are true: - The calling process belongs to a desktop application, not a UWP app or a Windows Store app designed for Windows 8 or 8.1. - The foreground process has not disabled calls to **SetForegroundWindow** by a previous call to the [**LockSetForegroundWindow**](nf-winuser-locksetforegroundwindow.md) function. - The foreground lock time-out has expired (see [**SPI_GETFOREGROUNDLOCKTIMEOUT** in **SystemParametersInfo**](nf-winuser-systemparametersinfoa.md#SPI_GETFOREGROUNDLOCKTIMEOUT)). - No menus are active. - Additionally, at least one of the following conditions is true: - The calling process is the foreground process. - The calling process was started by the foreground process. - There is currently no foreground window, and thus no foreground process. - The calling process received the last input event. - Either the foreground process or the calling process is being debugged. A process that can set the foreground window can enable another process to set the foreground window by calling **AllowSetForegroundWindow**. The process specified by the *dwProcessId* parameter loses the ability to set the foreground window the next time that either the user generates input, unless the input is directed at that process, or the next time a process calls **AllowSetForegroundWindow**, unless the same process is specified as in the previous call to **AllowSetForegroundWindow**.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-allowsetforegroundwindow#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.MonitorFromPoint(System.Drawing.Point,Windows.Win32.Graphics.Gdi.MONITOR_FROM_FLAGS)">
            <summary>The MonitorFromPoint function retrieves a handle to the display monitor that contains a specified point.</summary>
            <param name="pt">A <a href="https://docs.microsoft.com/windows/win32/api/windef/ns-windef-point">POINT</a> structure that specifies the point of interest in virtual-screen coordinates.</param>
            <param name="dwFlags">Determines the function's return value if the point is not contained within any display monitor.</param>
            <returns>
            <para>If the point is contained by a display monitor, the return value is an <b>HMONITOR</b> handle to that display monitor. If the point is not contained by a display monitor, the return value depends on the value of <i>dwFlags</i>.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-monitorfrompoint">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetMonitorInfo(Windows.Win32.Graphics.Gdi.HMONITOR,Windows.Win32.Graphics.Gdi.MONITORINFO@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GetMonitorInfo(Windows.Win32.Graphics.Gdi.HMONITOR,Windows.Win32.Graphics.Gdi.MONITORINFO*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetMonitorInfo(Windows.Win32.Graphics.Gdi.HMONITOR,Windows.Win32.Graphics.Gdi.MONITORINFO*)">
            <summary>The GetMonitorInfo function retrieves information about a display monitor. (Unicode)</summary>
            <param name="hMonitor">A handle to the display monitor of interest.</param>
            <param name="lpmi">
            <para>A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-monitorinfo">MONITORINFO</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-monitorinfoexa">MONITORINFOEX</a> structure that receives information about the specified display monitor. You must set the <b>cbSize</b> member of the structure to sizeof(MONITORINFO) or sizeof(MONITORINFOEX) before calling the <b>GetMonitorInfo</b> function. Doing so lets the function determine the type of structure you are passing to it. The <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-monitorinfoexa">MONITORINFOEX</a> structure is a superset of the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-monitorinfo">MONITORINFO</a> structure. It has one additional member: a string that contains a name for the display monitor. Most applications have no use for a display monitor name, and so can save some bytes by using a <b>MONITORINFO</b> structure.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getmonitorinfow#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero.</para>
            </returns>
            <remarks>
            <para>> [!NOTE] > The winuser.h header defines GetMonitorInfo as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see [Conventions for Function Prototypes](/windows/win32/intl/conventions-for-function-prototypes).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getmonitorinfow#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetSystemMetrics(Windows.Win32.UI.WindowsAndMessaging.SYSTEM_METRICS_INDEX)">
            <summary>Retrieves the specified system metric or system configuration setting.</summary>
            <param name="nIndex">Type: <b>int</b></param>
            <returns>
            <para>Type: <b>int</b> If the function succeeds, the return value is the requested system metric or configuration setting. If the function fails, the return value is 0. <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> does not provide extended error information.</para>
            </returns>
            <remarks>
            <para>System metrics can vary from display to display. <b>GetSystemMetrics</b>(SM_CMONITORS) counts only visible display monitors. This is different from <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-enumdisplaymonitors">EnumDisplayMonitors</a>, which enumerates both visible display monitors and invisible  pseudo-monitors that are associated with mirroring drivers. An invisible pseudo-monitor is associated with a pseudo-device used to mirror application drawing for remoting or other purposes. The SM_ARRANGE setting specifies how the system arranges minimized windows, and consists of a starting position and a direction. The starting position can be one of the following values.</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getsystemmetrics#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetSystemMetricsForDpi(Windows.Win32.UI.WindowsAndMessaging.SYSTEM_METRICS_INDEX,System.UInt32)">
            <summary>Retrieves the specified system metric or system configuration setting taking into account a provided DPI.</summary>
            <param name="nIndex">The system metric or configuration setting to be retrieved. See <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getsystemmetrics">GetSystemMetrics</a> for the possible values.</param>
            <param name="dpi">The DPI to use for scaling the metric.</param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>This function returns the same result as <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getsystemmetrics">GetSystemMetrics</a> but scales it according to an arbitrary DPI you provide if appropriate.</remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetDC(Windows.Win32.Foundation.HWND)">
            <summary>The GetDC function retrieves a handle to a device context (DC) for the client area of a specified window or for the entire screen.</summary>
            <param name="hWnd">A handle to the window whose DC is to be retrieved. If this value is <b>NULL</b>, <b>GetDC</b> retrieves the DC for the entire screen.</param>
            <returns>
            <para>If the function succeeds, the return value is a handle to the DC for the specified window's client area. If the function fails, the return value is <b>NULL</b>.</para>
            </returns>
            <remarks>
            <para>The <b>GetDC</b> function retrieves a common, class, or private DC depending on the class style of the specified window. For class and private DCs, <b>GetDC</b> leaves the previously assigned attributes unchanged. However, for common DCs, <b>GetDC</b> assigns default attributes to the DC each time it is retrieved. For example, the default font is System, which is a bitmap font. Because of this, the handle to a common DC returned by <b>GetDC</b> does not tell you what font, color, or brush was used when the window was drawn. To determine the font, call <a href="https://docs.microsoft.com/windows/desktop/api/wingdi/nf-wingdi-gettextfacea">GetTextFace</a>. Note that the handle to the DC can only be used by a single thread at any one time. After painting with a common DC, the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-releasedc">ReleaseDC</a> function must be called to release the DC. Class and private DCs do not have to be released. <b>ReleaseDC</b> must be called from the same thread that called <b>GetDC</b>. The number of DCs is limited only by available memory.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getdc#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.ReleaseDC(Windows.Win32.Foundation.HWND,Windows.Win32.Graphics.Gdi.HDC)">
            <summary>The ReleaseDC function releases a device context (DC), freeing it for use by other applications. The effect of the ReleaseDC function depends on the type of DC. It frees only common and window DCs. It has no effect on class or private DCs.</summary>
            <param name="hWnd">A handle to the window whose DC is to be released.</param>
            <param name="hDC">A handle to the DC to be released.</param>
            <returns>
            <para>The return value indicates whether the DC was released. If the DC was released, the return value is 1. If the DC was not released, the return value is zero.</para>
            </returns>
            <remarks>
            <para>The application must call the <b>ReleaseDC</b> function for each call to the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getwindowdc">GetWindowDC</a> function and for each call to the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getdc">GetDC</a> function that retrieves a common DC. An application cannot use the <b>ReleaseDC</b> function to release a DC that was created by calling the <a href="https://docs.microsoft.com/windows/desktop/api/wingdi/nf-wingdi-createdca">CreateDC</a> function; instead, it must use the <a href="https://docs.microsoft.com/windows/desktop/api/wingdi/nf-wingdi-deletedc">DeleteDC</a> function. <b>ReleaseDC</b> must be called from the same thread that called <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getdc">GetDC</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-releasedc#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="T:Windows.Win32.SysFreeStringSafeHandle">
            <summary>
            Represents a Win32 handle that can be closed with <see cref="M:Windows.Win32.PInvoke.SysFreeString(Windows.Win32.Foundation.BSTR)"/>.
            </summary>
        </member>
        <member name="M:Windows.Win32.System_Com_IStream_Extensions.Stat(Windows.Win32.System.Com.IStream.Interface,Windows.Win32.System.Com.STATSTG@,System.UInt32)">
            <inheritdoc cref="M:Windows.Win32.System.Com.IStream.Interface.Stat(Windows.Win32.System.Com.STATSTG*,System.UInt32)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeComp_Extensions.Bind(Windows.Win32.System.Com.ITypeComp.Interface,Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt16,Windows.Win32.System.Com.ITypeInfo**,Windows.Win32.System.Com.DESCKIND@,Windows.Win32.System.Com.BINDPTR@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeComp.Interface.Bind(Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt16,Windows.Win32.System.Com.ITypeInfo**,Windows.Win32.System.Com.DESCKIND*,Windows.Win32.System.Com.BINDPTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetTypeAttr(Windows.Win32.System.Com.ITypeInfo.Interface,Windows.Win32.System.Com.TYPEATTR*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetTypeAttr(Windows.Win32.System.Com.TYPEATTR**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetFuncDesc(Windows.Win32.System.Com.ITypeInfo.Interface,System.UInt32,Windows.Win32.System.Com.FUNCDESC*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetFuncDesc(System.UInt32,Windows.Win32.System.Com.FUNCDESC**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetVarDesc(Windows.Win32.System.Com.ITypeInfo.Interface,System.UInt32,Windows.Win32.System.Com.VARDESC*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetVarDesc(System.UInt32,Windows.Win32.System.Com.VARDESC**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetNames(Windows.Win32.System.Com.ITypeInfo.Interface,System.Int32,Windows.Win32.SysFreeStringSafeHandle@,System.UInt32,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetNames(System.Int32,Windows.Win32.Foundation.BSTR*,System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetRefTypeOfImplType(Windows.Win32.System.Com.ITypeInfo.Interface,System.UInt32,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetRefTypeOfImplType(System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetImplTypeFlags(Windows.Win32.System.Com.ITypeInfo.Interface,System.UInt32,Windows.Win32.System.Com.IMPLTYPEFLAGS@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetImplTypeFlags(System.UInt32,Windows.Win32.System.Com.IMPLTYPEFLAGS*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetIDsOfNames(Windows.Win32.System.Com.ITypeInfo.Interface,System.ReadOnlySpan{Windows.Win32.Foundation.PWSTR},System.Span{System.Int32})">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetIDsOfNames(Windows.Win32.Foundation.PWSTR*,System.UInt32,System.Int32*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.Invoke(Windows.Win32.System.Com.ITypeInfo.Interface,System.Void*,System.Int32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS@,Windows.Win32.System.Variant.VARIANT@,Windows.Win32.System.Com.EXCEPINFO@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.Invoke(System.Void*,System.Int32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS*,Windows.Win32.System.Variant.VARIANT*,Windows.Win32.System.Com.EXCEPINFO*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetDocumentation(Windows.Win32.System.Com.ITypeInfo.Interface,System.Int32,Windows.Win32.SysFreeStringSafeHandle@,Windows.Win32.SysFreeStringSafeHandle@,System.UInt32@,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetDocumentation(System.Int32,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt32*,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetDllEntry(Windows.Win32.System.Com.ITypeInfo.Interface,System.Int32,Windows.Win32.System.Com.INVOKEKIND,Windows.Win32.SysFreeStringSafeHandle@,Windows.Win32.SysFreeStringSafeHandle@,System.UInt16@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetDllEntry(System.Int32,Windows.Win32.System.Com.INVOKEKIND,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt16*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.AddressOfMember(Windows.Win32.System.Com.ITypeInfo.Interface,System.Int32,Windows.Win32.System.Com.INVOKEKIND,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.AddressOfMember(System.Int32,Windows.Win32.System.Com.INVOKEKIND,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.CreateInstance(Windows.Win32.System.Com.ITypeInfo.Interface,Windows.Win32.System.Com.IUnknown*,System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.CreateInstance(Windows.Win32.System.Com.IUnknown*,System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetMops(Windows.Win32.System.Com.ITypeInfo.Interface,System.Int32,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetMops(System.Int32,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetContainingTypeLib(Windows.Win32.System.Com.ITypeInfo.Interface,Windows.Win32.System.Com.ITypeLib**,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetContainingTypeLib(Windows.Win32.System.Com.ITypeLib**,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.ReleaseTypeAttr(Windows.Win32.System.Com.ITypeInfo.Interface,Windows.Win32.System.Com.TYPEATTR@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.ReleaseTypeAttr(Windows.Win32.System.Com.TYPEATTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.ReleaseFuncDesc(Windows.Win32.System.Com.ITypeInfo.Interface,Windows.Win32.System.Com.FUNCDESC@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.ReleaseFuncDesc(Windows.Win32.System.Com.FUNCDESC*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.ReleaseVarDesc(Windows.Win32.System.Com.ITypeInfo.Interface,Windows.Win32.System.Com.VARDESC@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.ReleaseVarDesc(Windows.Win32.System.Com.VARDESC*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeLib_Extensions.GetTypeInfoType(Windows.Win32.System.Com.ITypeLib.Interface,System.UInt32,Windows.Win32.System.Com.TYPEKIND@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.Interface.GetTypeInfoType(System.UInt32,Windows.Win32.System.Com.TYPEKIND*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeLib_Extensions.GetTypeInfoOfGuid(Windows.Win32.System.Com.ITypeLib.Interface,System.Guid@,Windows.Win32.System.Com.ITypeInfo**)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.Interface.GetTypeInfoOfGuid(System.Guid*,Windows.Win32.System.Com.ITypeInfo**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeLib_Extensions.GetLibAttr(Windows.Win32.System.Com.ITypeLib.Interface,Windows.Win32.System.Com.TLIBATTR*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.Interface.GetLibAttr(Windows.Win32.System.Com.TLIBATTR**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeLib_Extensions.GetDocumentation(Windows.Win32.System.Com.ITypeLib.Interface,System.Int32,Windows.Win32.SysFreeStringSafeHandle@,Windows.Win32.SysFreeStringSafeHandle@,System.UInt32@,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.Interface.GetDocumentation(System.Int32,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt32*,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeLib_Extensions.IsName(Windows.Win32.System.Com.ITypeLib.Interface,System.Span{System.Char}@,System.UInt32,Windows.Win32.Foundation.BOOL@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.Interface.IsName(Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.Foundation.BOOL*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeLib_Extensions.FindName(Windows.Win32.System.Com.ITypeLib.Interface,System.Span{System.Char}@,System.UInt32,Windows.Win32.System.Com.ITypeInfo**,System.Int32*,System.UInt16@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.Interface.FindName(Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.System.Com.ITypeInfo**,System.Int32*,System.UInt16*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeLib_Extensions.ReleaseTLibAttr(Windows.Win32.System.Com.ITypeLib.Interface,Windows.Win32.System.Com.TLIBATTR@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.Interface.ReleaseTLibAttr(Windows.Win32.System.Com.TLIBATTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_StructuredStorage_IEnumSTATSTG_Extensions.Next(Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG.Interface,System.Span{Windows.Win32.System.Com.STATSTG},System.UInt32*)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG.Interface.Next(System.UInt32,Windows.Win32.System.Com.STATSTG*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_StructuredStorage_IStorage_Extensions.CreateStream(Windows.Win32.System.Com.StructuredStorage.IStorage.Interface,System.String,Windows.Win32.System.Com.STGM,System.UInt32,System.UInt32,Windows.Win32.System.Com.IStream**)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Interface.CreateStream(Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Com.STGM,System.UInt32,System.UInt32,Windows.Win32.System.Com.IStream**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_StructuredStorage_IStorage_Extensions.OpenStream(Windows.Win32.System.Com.StructuredStorage.IStorage.Interface,System.String,Windows.Win32.System.Com.STGM,System.UInt32,Windows.Win32.System.Com.IStream**)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Interface.OpenStream(Windows.Win32.Foundation.PCWSTR,System.Void*,Windows.Win32.System.Com.STGM,System.UInt32,Windows.Win32.System.Com.IStream**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_StructuredStorage_IStorage_Extensions.CreateStorage(Windows.Win32.System.Com.StructuredStorage.IStorage.Interface,System.String,Windows.Win32.System.Com.STGM,System.UInt32,System.UInt32,Windows.Win32.System.Com.StructuredStorage.IStorage**)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Interface.CreateStorage(Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Com.STGM,System.UInt32,System.UInt32,Windows.Win32.System.Com.StructuredStorage.IStorage**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_StructuredStorage_IStorage_Extensions.OpenStorage(Windows.Win32.System.Com.StructuredStorage.IStorage.Interface,System.String,Windows.Win32.System.Com.StructuredStorage.IStorage*,Windows.Win32.System.Com.STGM,System.UInt16*@,System.UInt32,Windows.Win32.System.Com.StructuredStorage.IStorage**)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Interface.OpenStorage(Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Com.StructuredStorage.IStorage*,Windows.Win32.System.Com.STGM,System.UInt16**,System.UInt32,Windows.Win32.System.Com.StructuredStorage.IStorage**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_StructuredStorage_IStorage_Extensions.CopyTo(Windows.Win32.System.Com.StructuredStorage.IStorage.Interface,System.ReadOnlySpan{System.Guid},System.UInt16**,Windows.Win32.System.Com.StructuredStorage.IStorage*)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Interface.CopyTo(System.UInt32,System.Guid*,System.UInt16**,Windows.Win32.System.Com.StructuredStorage.IStorage*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_StructuredStorage_IStorage_Extensions.MoveElementTo(Windows.Win32.System.Com.StructuredStorage.IStorage.Interface,System.String,Windows.Win32.System.Com.StructuredStorage.IStorage*,System.String,System.UInt32)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Interface.MoveElementTo(Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Com.StructuredStorage.IStorage*,Windows.Win32.Foundation.PCWSTR,System.UInt32)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_StructuredStorage_IStorage_Extensions.EnumElements(Windows.Win32.System.Com.StructuredStorage.IStorage.Interface,Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG**)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Interface.EnumElements(System.UInt32,System.Void*,System.UInt32,Windows.Win32.System.Com.StructuredStorage.IEnumSTATSTG**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_StructuredStorage_IStorage_Extensions.DestroyElement(Windows.Win32.System.Com.StructuredStorage.IStorage.Interface,System.String)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Interface.DestroyElement(Windows.Win32.Foundation.PCWSTR)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_StructuredStorage_IStorage_Extensions.RenameElement(Windows.Win32.System.Com.StructuredStorage.IStorage.Interface,System.String,System.String)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Interface.RenameElement(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_StructuredStorage_IStorage_Extensions.SetElementTimes(Windows.Win32.System.Com.StructuredStorage.IStorage.Interface,System.String,System.Runtime.InteropServices.ComTypes.FILETIME@,System.Runtime.InteropServices.ComTypes.FILETIME@,System.Runtime.InteropServices.ComTypes.FILETIME@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Interface.SetElementTimes(Windows.Win32.Foundation.PCWSTR,System.Runtime.InteropServices.ComTypes.FILETIME*,System.Runtime.InteropServices.ComTypes.FILETIME*,System.Runtime.InteropServices.ComTypes.FILETIME*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_StructuredStorage_IStorage_Extensions.SetClass(Windows.Win32.System.Com.StructuredStorage.IStorage.Interface,System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Interface.SetClass(System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_StructuredStorage_IStorage_Extensions.Stat(Windows.Win32.System.Com.StructuredStorage.IStorage.Interface,Windows.Win32.System.Com.STATSTG@,System.UInt32)">
            <inheritdoc cref="M:Windows.Win32.System.Com.StructuredStorage.IStorage.Interface.Stat(Windows.Win32.System.Com.STATSTG*,System.UInt32)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.GetGuid(Windows.Win32.System.Ole.IRecordInfo.Interface,System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.GetGuid(System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.GetName(Windows.Win32.System.Ole.IRecordInfo.Interface,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.GetName(Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.GetSize(Windows.Win32.System.Ole.IRecordInfo.Interface,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.GetSize(System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.GetField(Windows.Win32.System.Ole.IRecordInfo.Interface,System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.GetField(System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.GetFieldNoCopy(Windows.Win32.System.Ole.IRecordInfo.Interface,System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.GetFieldNoCopy(System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.PutField(Windows.Win32.System.Ole.IRecordInfo.Interface,System.UInt32,System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.PutField(System.UInt32,System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.PutFieldNoCopy(Windows.Win32.System.Ole.IRecordInfo.Interface,System.UInt32,System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.PutFieldNoCopy(System.UInt32,System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.GetFieldNames(Windows.Win32.System.Ole.IRecordInfo.Interface,System.UInt32@,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.GetFieldNames(System.UInt32*,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.RecordCreateCopy(Windows.Win32.System.Ole.IRecordInfo.Interface,System.Void*,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.RecordCreateCopy(System.Void*,System.Void**)"/>
        </member>
    </members>
</doc>
