<?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.AppProxy.AppProxyConnectionEventShoulderTapProcessor">
            <summary>
            Processes AppProxy connection events as part of the shoulder tap mechanism.
            Handles various operations like fetching device state, creating app icons, and managing connections.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.AppProxy.AppProxyConnectionEventShoulderTapProcessor.#ctor(YourPhone.Contracts.Connectivity.IRemoteAppClientProvider,YourPhone.AppCore.WinRT.Devices.IDeviceDataStore,System.Lazy{YourPhone.Contracts.AppProxyConnection.IOrchestratorToYourPhone},YourPhone.Contracts.Connectivity.IEstablishConnectionSenderProvider,YourPhone.Contracts.Notifications.INotificationCountProviderFactory,YourPhone.Contracts.Devices.IDeviceConnectivityManagerProvider,YourPhone.Contracts.Shell.IThemeManager,YourPhone.ScreenMirroring.WinRT.HostedApps.IHostedAppsPackageManagerProvider,YourPhone.ScreenMirroring.WinRT.Utilities.IRemotingDeviceDataFactory,YourPhone.Contracts.Node.WinRT.IKeepAliveManager)">
            <summary>
            Initializes a new instance of the <see cref="T:YourPhone.ScreenMirroring.Managed.AppProxy.AppProxyConnectionEventShoulderTapProcessor"/> class.
            </summary>
            <param name="remoteAppClientProvider">Provider for remote app client instances.</param>
            <param name="deviceDataStore">Store for device data management.</param>
            <param name="orchestratorToYourPhone">Lazy-loaded orchestrator to YourPhone proxy service.</param>
            <param name="establishConnectionSenderProvider">Provider for connection establishment senders.</param>
            <param name="notificationCountProviderFactory">Factory for notification count providers.</param>
            <param name="deviceConnectivityManagerProvider">Provider for device connectivity managers.</param>
            <param name="themeManager">Manager for theme-related operations.</param>
            <param name="hostedAppsPackageManagerProvider">Provider for hosted apps package managers.</param>
            <param name="remotingDeviceDataFactory">Factory for remoting device data.</param>
            <param name="keepAliveManager">Manager for keep-alive operations.</param>
            <exception cref="T:System.ArgumentNullException">Thrown when any required parameter is null.</exception>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.AppProxy.AppProxyConnectionEventShoulderTapProcessor.Notify(System.String,Windows.Foundation.Collections.ValueSet)">
            <summary>
            Processes shoulder tap notifications based on the operation type specified in the property bag.
            </summary>
            <param name="correlationId">Correlation identifier for tracking the operation.</param>
            <param name="propertyBag">Collection of properties containing operation details.</param>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.AppProxy.AppProxyConnectionEventShoulderTapProcessor.Dispose">
            <summary>
            Disposes the processor and releases all resources.
            </summary>
        </member>
        <member name="T:YourPhone.ScreenMirroring.Managed.AppProxy.AppProxyConnectionEventShoulderTapProcessorFactory">
            <summary>
            Factory class for creating AppProxy connection event shoulder tap processors.
            Implements the IShoulderTapProcessorFactory interface to create processors that handle
            AppProxy connection events in the background.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.AppProxy.AppProxyConnectionEventShoulderTapProcessorFactory.#ctor(YourPhone.Contracts.Connectivity.IRemoteAppClientProvider,YourPhone.AppCore.WinRT.Devices.IDeviceDataStore,System.Lazy{YourPhone.Contracts.AppProxyConnection.IOrchestratorToYourPhone},YourPhone.Contracts.Connectivity.IEstablishConnectionSenderProvider,YourPhone.Contracts.Notifications.INotificationCountProviderFactory,YourPhone.Contracts.Devices.IDeviceConnectivityManagerProvider,YourPhone.Contracts.Shell.IThemeManager,YourPhone.ScreenMirroring.WinRT.HostedApps.IHostedAppsPackageManagerProvider,YourPhone.ScreenMirroring.WinRT.Utilities.IRemotingDeviceDataFactory,YourPhone.Contracts.Node.WinRT.IKeepAliveManager)">
            <summary>
            Initializes a new instance of the <see cref="T:YourPhone.ScreenMirroring.Managed.AppProxy.AppProxyConnectionEventShoulderTapProcessorFactory"/> class.
            </summary>
            <param name="remoteAppClientProvider">Provider for remote app client instances.</param>
            <param name="deviceDataStore">Store for device data management.</param>
            <param name="orchestratorToYourPhone">Lazy-loaded orchestrator to YourPhone proxy service.</param>
            <param name="establishConnectionSenderProvider">Provider for connection establishment senders.</param>
            <param name="notificationCountProviderFactory">Factory for notification count providers.</param>
            <param name="deviceConnectivityManagerProvider">Provider for device connectivity managers.</param>
            <param name="themeManager">Manager for theme-related operations.</param>
            <param name="hostedAppsPackageManagerProvider">Provider for hosted apps package managers.</param>
            <param name="remotingDeviceDataFactory">Factory for remoting device data.</param>
            <param name="keepAliveManager">Manager for keep-alive operations.</param>
            <exception cref="T:System.ArgumentNullException">Thrown when any required parameter is null.</exception>
        </member>
        <member name="P:YourPhone.ScreenMirroring.Managed.AppProxy.AppProxyConnectionEventShoulderTapProcessorFactory.Type">
            <summary>
            Gets the type of shoulder tap processor this factory creates.
            </summary>
        </member>
        <member name="M:YourPhone.ScreenMirroring.Managed.AppProxy.AppProxyConnectionEventShoulderTapProcessorFactory.Create">
            <summary>
            Creates a new instance of the AppProxy connection event shoulder tap processor.
            </summary>
            <returns>A new <see cref="T:YourPhone.Contracts.Background.IShoulderTapProcessor"/> instance configured for AppProxy connection events.</returns>
        </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.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="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="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="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.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="M:YourPhone.AppProxyConnection.Session.AppProperties.AppPropertyCoordinator.OnDeviceChanged">
            <summary>
            Clear caches on device change
            </summary>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Session.AppProperties.AppPropertyCoordinator.DeviceStateQueryAsync``1(System.Threading.Tasks.TaskCompletionSource{``0}@,System.Object)">
            <summary>
            Retrieves the cached value or starts a request to fetch the value.
            When starting a new request, create a new cache
            </summary>
            <param name="tcs">Cache location</param>
            <param name="tcsLock">tcsLock</param>
            <returns>Returns cached result if successful, otherwise TaskCanceledException is thrown</returns>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Session.AppProperties.AppPropertyCoordinator.DeviceStateRequestAsync``1(System.Threading.Tasks.TaskCompletionSource{``0})">
            <summary>
            Shoulder taps then returns cached result
            Possible exceptions:
            - TaskCanceledException if shouldertap fails
            - TimeoutException if shouldertap times out
            </summary>
            <param name="tcs">Cache</param>
            <returns>Returns cached result if successful, otherwise exception is thrown</returns>
        </member>
        <member name="M:YourPhone.AppProxyConnection.Session.AppProperties.AppPropertyCoordinator.DeviceStateShoulderTapAsync">
            <summary>
            Shoulder taps for all device state
            Task completes on success otherwise throws
            Possible exceptions:
            - TaskCanceledException if shouldertap fails
            - TimeoutException if shouldertap times out
            </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.IsAudioSupportedAndEnabledAsync">
            <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.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="T:WinRT.ProjectionInitializer">
            <summary>
            Contains a module initializer for generated CsWinRT projections.
            </summary>
        </member>
        <member name="M:WinRT.ProjectionInitializer.InitializeProjection">
            <summary>
            The module initializer registering the current assembly via <see cref="M:WinRT.ComWrappersSupport.RegisterProjectionAssembly(System.Reflection.Assembly)"/>.
            </summary>
        </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="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.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.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="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 "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.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>
    </members>
</doc>
