Files
xlcore/installedPlugins/heliosphere-plugin/3.0.1.0/heliosphere-plugin.xml
2025-02-17 22:54:50 +01:00

1958 lines
106 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0"?>
<doc>
<assembly>
<name>heliosphere-plugin</name>
</assembly>
<members>
<member name="F:Heliosphere.Configuration.UserId">
<summary>
This is a unique ID only sent to Sentry. It can be accessed and sent via
support channels to make finding error reports easier.
</summary>
</member>
<member name="M:Heliosphere.DownloadCodes.QuoteUnquoteEncrypt(System.Byte[],System.Byte[])">
<summary>
Just XOR with the key. This isn't designed to stop someone dedicated.
</summary>
</member>
<member name="P:Heliosphere.DownloadTask.ExpectedFiles">
<summary>
A list of files expected by the group jsons made by this task. These
paths should be relative to the files directory.
</summary>
</member>
<member name="F:Heliosphere.DownloadTask._oldModName">
This is non-null when a directory exists in the Penumbra directory that
starts with hs- and ends with the variant/package IDs, and it does not
equal the expected mod installation path. Essentially only true for
version updates (not reinstalls).
</member>
<member name="M:Heliosphere.DownloadTask.OpenModInPenumbra">
<summary>
Open the mod in Penumbra if it was successfully installed. Runs on
framework thread, so no need to call this from within
<see cref="M:Dalamud.Plugin.Services.IFramework.RunOnFrameworkThread(System.Action)"/>.
</summary>
</member>
<member name="M:Heliosphere.LimitedStream.ReadToEnd(System.Byte[])">
<summary>
Reads until hitting the read limit. Note that this does not allow valid
reads from the buffer, as it is overwritten with multiple read calls.
</summary>
<param name="buffer">a buffer of bytes</param>
</member>
<member name="M:Heliosphere.ImportTask.Dispose">
<inheritdoc />
</member>
<member name="P:Heliosphere.Model.HeliosphereMeta.Id">
<summary>
The package ID.
</summary>
</member>
<member name="M:Heliosphere.Model.HeliosphereMeta.DownloadUpdates(Heliosphere.Plugin,System.Threading.CancellationToken)">
<summary>
Start a task to download updates for this version.
</summary>
<param name="plugin">An instance of the plugin</param>
<returns>Task that completes when the download finishes</returns>
</member>
<member name="T:Heliosphere.Model.Generated.GetBasicInfoQueryDocument">
<summary>
Represents the operation service of the GetBasicInfo GraphQL operation
<code>
query GetBasicInfo($versionId: UUID!) {
getVersion(id: $versionId) {
__typename
version
variant {
__typename
id
name
package {
__typename
id
name
user {
__typename
username
}
images {
__typename
id
}
}
}
basicGroups {
__typename
name
options {
__typename
name
description
imagePath
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.GetBasicInfoQuery">
<summary>
Represents the operation service of the GetBasicInfo GraphQL operation
<code>
query GetBasicInfo($versionId: UUID!) {
getVersion(id: $versionId) {
__typename
version
variant {
__typename
id
name
package {
__typename
id
name
user {
__typename
username
}
images {
__typename
id
}
}
}
basicGroups {
__typename
name
options {
__typename
name
description
imagePath
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.IGetBasicInfoQuery">
<summary>
Represents the operation service of the GetBasicInfo GraphQL operation
<code>
query GetBasicInfo($versionId: UUID!) {
getVersion(id: $versionId) {
__typename
version
variant {
__typename
id
name
package {
__typename
id
name
user {
__typename
username
}
images {
__typename
id
}
}
}
basicGroups {
__typename
name
options {
__typename
name
description
imagePath
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.DownloadTaskQueryDocument">
<summary>
Represents the operation service of the DownloadTask GraphQL operation
<code>
query DownloadTask($versionId: UUID!, $key: String, $downloadKind: DownloadKind!) {
getVersion(id: $versionId) {
__typename
version
batched
batches
defaultOption {
__typename
fileSwaps
}
variant {
__typename
id
name
package {
__typename
id
name
tagline
description
tags {
__typename
slug
}
user {
__typename
id
username
}
images {
__typename
id
}
}
}
groups {
__typename
standard {
__typename
name
description
priority
defaultSettings
groupType
originalIndex
options {
__typename
hsId
name
description
priority
fileSwaps
manipulations
isDefault
}
}
imc {
__typename
name
description
priority
defaultSettings
groupType
identifier
allVariants
onlyAttributes
defaultEntry
originalIndex
options {
__typename
name
description
isDisableSubMod
attributeMask
}
}
combining {
__typename
name
description
priority
defaultSettings
groupType
originalIndex
options {
__typename
name
description
isDefault
}
containers {
__typename
hsId
name
gamePaths
manipulations
fileSwaps
}
}
}
neededFiles(downloadKey: $key, downloadKind: $downloadKind) {
__typename
baseUri
modHash
files
defaultManipulations
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.DownloadTaskQuery">
<summary>
Represents the operation service of the DownloadTask GraphQL operation
<code>
query DownloadTask($versionId: UUID!, $key: String, $downloadKind: DownloadKind!) {
getVersion(id: $versionId) {
__typename
version
batched
batches
defaultOption {
__typename
fileSwaps
}
variant {
__typename
id
name
package {
__typename
id
name
tagline
description
tags {
__typename
slug
}
user {
__typename
id
username
}
images {
__typename
id
}
}
}
groups {
__typename
standard {
__typename
name
description
priority
defaultSettings
groupType
originalIndex
options {
__typename
hsId
name
description
priority
fileSwaps
manipulations
isDefault
}
}
imc {
__typename
name
description
priority
defaultSettings
groupType
identifier
allVariants
onlyAttributes
defaultEntry
originalIndex
options {
__typename
name
description
isDisableSubMod
attributeMask
}
}
combining {
__typename
name
description
priority
defaultSettings
groupType
originalIndex
options {
__typename
name
description
isDefault
}
containers {
__typename
hsId
name
gamePaths
manipulations
fileSwaps
}
}
}
neededFiles(downloadKey: $key, downloadKind: $downloadKind) {
__typename
baseUri
modHash
files
defaultManipulations
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.IDownloadTaskQuery">
<summary>
Represents the operation service of the DownloadTask GraphQL operation
<code>
query DownloadTask($versionId: UUID!, $key: String, $downloadKind: DownloadKind!) {
getVersion(id: $versionId) {
__typename
version
batched
batches
defaultOption {
__typename
fileSwaps
}
variant {
__typename
id
name
package {
__typename
id
name
tagline
description
tags {
__typename
slug
}
user {
__typename
id
username
}
images {
__typename
id
}
}
}
groups {
__typename
standard {
__typename
name
description
priority
defaultSettings
groupType
originalIndex
options {
__typename
hsId
name
description
priority
fileSwaps
manipulations
isDefault
}
}
imc {
__typename
name
description
priority
defaultSettings
groupType
identifier
allVariants
onlyAttributes
defaultEntry
originalIndex
options {
__typename
name
description
isDisableSubMod
attributeMask
}
}
combining {
__typename
name
description
priority
defaultSettings
groupType
originalIndex
options {
__typename
name
description
isDefault
}
containers {
__typename
hsId
name
gamePaths
manipulations
fileSwaps
}
}
}
neededFiles(downloadKey: $key, downloadKind: $downloadKind) {
__typename
baseUri
modHash
files
defaultManipulations
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.GetNewestVersionInfoMultiQueryDocument">
<summary>
Represents the operation service of the GetNewestVersionInfoMulti GraphQL operation
<code>
query GetNewestVersionInfoMulti($ids: [UUID!]!) {
variants(ids: $ids) {
__typename
id
... VariantInfo
}
}
fragment VariantInfo on Variant {
name
package {
__typename
name
}
versions(limit: 1) {
__typename
id
version
changelog
basicGroups {
__typename
name
options {
__typename
name
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.GetNewestVersionInfoMultiQuery">
<summary>
Represents the operation service of the GetNewestVersionInfoMulti GraphQL operation
<code>
query GetNewestVersionInfoMulti($ids: [UUID!]!) {
variants(ids: $ids) {
__typename
id
... VariantInfo
}
}
fragment VariantInfo on Variant {
name
package {
__typename
name
}
versions(limit: 1) {
__typename
id
version
changelog
basicGroups {
__typename
name
options {
__typename
name
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.IGetNewestVersionInfoMultiQuery">
<summary>
Represents the operation service of the GetNewestVersionInfoMulti GraphQL operation
<code>
query GetNewestVersionInfoMulti($ids: [UUID!]!) {
variants(ids: $ids) {
__typename
id
... VariantInfo
}
}
fragment VariantInfo on Variant {
name
package {
__typename
name
}
versions(limit: 1) {
__typename
id
version
changelog
basicGroups {
__typename
name
options {
__typename
name
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.ConvertVariantIdQueryDocument">
<summary>
Represents the operation service of the ConvertVariantId GraphQL operation
<code>
query ConvertVariantId($oldId: Int!) {
convertVariantId(id: $oldId)
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.ConvertVariantIdQuery">
<summary>
Represents the operation service of the ConvertVariantId GraphQL operation
<code>
query ConvertVariantId($oldId: Int!) {
convertVariantId(id: $oldId)
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.IConvertVariantIdQuery">
<summary>
Represents the operation service of the ConvertVariantId GraphQL operation
<code>
query ConvertVariantId($oldId: Int!) {
convertVariantId(id: $oldId)
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.GetVersionsQueryDocument">
<summary>
Represents the operation service of the GetVersions GraphQL operation
<code>
query GetVersions($packageId: UUID!) {
package(id: $packageId) {
__typename
variants {
__typename
id
name
versions {
__typename
id
version
changelog
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.GetVersionsQuery">
<summary>
Represents the operation service of the GetVersions GraphQL operation
<code>
query GetVersions($packageId: UUID!) {
package(id: $packageId) {
__typename
variants {
__typename
id
name
versions {
__typename
id
version
changelog
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.IGetVersionsQuery">
<summary>
Represents the operation service of the GetVersions GraphQL operation
<code>
query GetVersions($packageId: UUID!) {
package(id: $packageId) {
__typename
variants {
__typename
id
name
versions {
__typename
id
version
changelog
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.MultiVariantInstallQueryDocument">
<summary>
Represents the operation service of the MultiVariantInstall GraphQL operation
<code>
query MultiVariantInstall($packageId: UUID!) {
package(id: $packageId) {
__typename
name
user {
__typename
username
}
images {
__typename
id
}
variants {
__typename
id
name
versions(limit: 1) {
__typename
id
version
basicGroups {
__typename
name
options {
__typename
name
description
imagePath
}
}
installerImages {
__typename
baseUri
images
}
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.MultiVariantInstallQuery">
<summary>
Represents the operation service of the MultiVariantInstall GraphQL operation
<code>
query MultiVariantInstall($packageId: UUID!) {
package(id: $packageId) {
__typename
name
user {
__typename
username
}
images {
__typename
id
}
variants {
__typename
id
name
versions(limit: 1) {
__typename
id
version
basicGroups {
__typename
name
options {
__typename
name
description
imagePath
}
}
installerImages {
__typename
baseUri
images
}
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.IMultiVariantInstallQuery">
<summary>
Represents the operation service of the MultiVariantInstall GraphQL operation
<code>
query MultiVariantInstall($packageId: UUID!) {
package(id: $packageId) {
__typename
name
user {
__typename
username
}
images {
__typename
id
}
variants {
__typename
id
name
versions(limit: 1) {
__typename
id
version
basicGroups {
__typename
name
options {
__typename
name
description
imagePath
}
}
installerImages {
__typename
baseUri
images
}
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.GetVariantQueryDocument">
<summary>
Represents the operation service of the GetVariant GraphQL operation
<code>
query GetVariant($versionId: UUID!) {
getVersion(id: $versionId) {
__typename
variant {
__typename
id
name
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.GetVariantQuery">
<summary>
Represents the operation service of the GetVariant GraphQL operation
<code>
query GetVariant($versionId: UUID!) {
getVersion(id: $versionId) {
__typename
variant {
__typename
id
name
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.IGetVariantQuery">
<summary>
Represents the operation service of the GetVariant GraphQL operation
<code>
query GetVariant($versionId: UUID!) {
getVersion(id: $versionId) {
__typename
variant {
__typename
id
name
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.GetNewestVersionInfoQueryDocument">
<summary>
Represents the operation service of the GetNewestVersionInfo GraphQL operation
<code>
query GetNewestVersionInfo($variantId: UUID!) {
variant(id: $variantId) {
__typename
... VariantInfo
}
}
fragment VariantInfo on Variant {
name
package {
__typename
name
}
versions(limit: 1) {
__typename
id
version
changelog
basicGroups {
__typename
name
options {
__typename
name
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.GetNewestVersionInfoQuery">
<summary>
Represents the operation service of the GetNewestVersionInfo GraphQL operation
<code>
query GetNewestVersionInfo($variantId: UUID!) {
variant(id: $variantId) {
__typename
... VariantInfo
}
}
fragment VariantInfo on Variant {
name
package {
__typename
name
}
versions(limit: 1) {
__typename
id
version
changelog
basicGroups {
__typename
name
options {
__typename
name
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.IGetNewestVersionInfoQuery">
<summary>
Represents the operation service of the GetNewestVersionInfo GraphQL operation
<code>
query GetNewestVersionInfo($variantId: UUID!) {
variant(id: $variantId) {
__typename
... VariantInfo
}
}
fragment VariantInfo on Variant {
name
package {
__typename
name
}
versions(limit: 1) {
__typename
id
version
changelog
basicGroups {
__typename
name
options {
__typename
name
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.GetNewestVersionInfoAllVariantsQueryDocument">
<summary>
Represents the operation service of the GetNewestVersionInfoAllVariants GraphQL operation
<code>
query GetNewestVersionInfoAllVariants($packageId: UUID!) {
package(id: $packageId) {
__typename
variants {
__typename
id
name
versions(limit: 1) {
__typename
id
version
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.GetNewestVersionInfoAllVariantsQuery">
<summary>
Represents the operation service of the GetNewestVersionInfoAllVariants GraphQL operation
<code>
query GetNewestVersionInfoAllVariants($packageId: UUID!) {
package(id: $packageId) {
__typename
variants {
__typename
id
name
versions(limit: 1) {
__typename
id
version
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.IGetNewestVersionInfoAllVariantsQuery">
<summary>
Represents the operation service of the GetNewestVersionInfoAllVariants GraphQL operation
<code>
query GetNewestVersionInfoAllVariants($packageId: UUID!) {
package(id: $packageId) {
__typename
variants {
__typename
id
name
versions(limit: 1) {
__typename
id
version
}
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.ImporterQueryDocument">
<summary>
Represents the operation service of the Importer GraphQL operation
<code>
query Importer($versionId: UUID!, $key: String) {
getVersion(id: $versionId) {
__typename
neededFiles(downloadKey: $key) {
__typename
files
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.ImporterQuery">
<summary>
Represents the operation service of the Importer GraphQL operation
<code>
query Importer($versionId: UUID!, $key: String) {
getVersion(id: $versionId) {
__typename
neededFiles(downloadKey: $key) {
__typename
files
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.IImporterQuery">
<summary>
Represents the operation service of the Importer GraphQL operation
<code>
query Importer($versionId: UUID!, $key: String) {
getVersion(id: $versionId) {
__typename
neededFiles(downloadKey: $key) {
__typename
files
}
}
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.CheckVanityUrlQueryDocument">
<summary>
Represents the operation service of the CheckVanityUrl GraphQL operation
<code>
query CheckVanityUrl($slug: String!) {
checkVanityUrl(kind: MOD, slug: $slug)
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.CheckVanityUrlQuery">
<summary>
Represents the operation service of the CheckVanityUrl GraphQL operation
<code>
query CheckVanityUrl($slug: String!) {
checkVanityUrl(kind: MOD, slug: $slug)
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.ICheckVanityUrlQuery">
<summary>
Represents the operation service of the CheckVanityUrl GraphQL operation
<code>
query CheckVanityUrl($slug: String!) {
checkVanityUrl(kind: MOD, slug: $slug)
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.ConvertVersionIdQueryDocument">
<summary>
Represents the operation service of the ConvertVersionId GraphQL operation
<code>
query ConvertVersionId($oldId: Int!) {
convertVersionId(id: $oldId)
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.ConvertVersionIdQuery">
<summary>
Represents the operation service of the ConvertVersionId GraphQL operation
<code>
query ConvertVersionId($oldId: Int!) {
convertVersionId(id: $oldId)
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.IConvertVersionIdQuery">
<summary>
Represents the operation service of the ConvertVersionId GraphQL operation
<code>
query ConvertVersionId($oldId: Int!) {
convertVersionId(id: $oldId)
}
</code>
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.HeliosphereClient">
<summary>
Represents the HeliosphereClient GraphQL client
</summary>
</member>
<member name="T:Heliosphere.Model.Generated.IHeliosphereClient">
<summary>
Represents the HeliosphereClient GraphQL client
</summary>
</member>
<member name="P:Heliosphere.PackageState.External">
<summary>
<para>
Returns an immutable Dictionary of "external" Heliosphere mods.
</para>
<para>
External mods are mods installed via means other than the plugin.
Specifically, these are mods that are in directories not starting with
<c>"hs-"</c> and that contain a heliosphere.json file.
</para>
</summary>
</member>
<member name="P:Heliosphere.PackageState.ExternalNoBlock">
<summary>
Same as <see cref="P:Heliosphere.PackageState.External"/> but returns an empty Dictionary if
accessing the data would have blocked.
</summary>
</member>
<member name="P:Heliosphere.PenumbraIpc.ApiVersionSubscriber">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.ApiVersion" />
</member>
<member name="P:Heliosphere.PenumbraIpc.GetModDirectorySubscriber">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.GetModDirectory" />
</member>
<member name="P:Heliosphere.PenumbraIpc.AddModSubscriber">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.AddMod" />
</member>
<member name="P:Heliosphere.PenumbraIpc.ReloadModSubscriber">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.ReloadMod" />
</member>
<member name="P:Heliosphere.PenumbraIpc.SetModPathSubscriber">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.SetModPath" />
</member>
<member name="P:Heliosphere.PenumbraIpc.DeleteModSubscriber">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.DeleteMod" />
</member>
<member name="P:Heliosphere.PenumbraIpc.CopyModSettingsSubscriber">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.CopyModSettings" />
</member>
<member name="P:Heliosphere.PenumbraIpc.GetCollectionsSubscriber">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.GetCollections" />
</member>
<member name="P:Heliosphere.PenumbraIpc.TrySetModSubscriber">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.TrySetMod" />
</member>
<member name="P:Heliosphere.PenumbraIpc.GetModPathSubscriber">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.GetModPath" />
</member>
<member name="P:Heliosphere.PenumbraIpc.OpenMainWindowSubscriber">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.OpenMainWindow" />
</member>
<member name="P:Heliosphere.PenumbraIpc.GetCurrentModSettingsSubscriber">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.GetCurrentModSettings" />
</member>
<member name="P:Heliosphere.PenumbraIpc.GetModListSubscriber">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.GetModList" />
</member>
<member name="P:Heliosphere.PenumbraIpc.InitializedEvent">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.Initialized" />
</member>
<member name="P:Heliosphere.PenumbraIpc.ModAddedEvent">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.ModAdded" />
</member>
<member name="P:Heliosphere.PenumbraIpc.ModDeletedEvent">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.ModDeleted" />
</member>
<member name="P:Heliosphere.PenumbraIpc.ModMovedEvent">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.ModMoved" />
</member>
<member name="P:Heliosphere.PenumbraIpc.PostEnabledDrawEvent">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.PostEnabledDraw" />
</member>
<member name="P:Heliosphere.PenumbraIpc.PreSettingsTabBarDrawEvent">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.PreSettingsTabBarDraw" />
</member>
<member name="M:Heliosphere.PenumbraIpc.TryGetModDirectory(System.String@)">
<summary>
Gets the mod directory from Penumbra. Will open a warning popup to users
who have not set Penumbra up correctly.
</summary>
<param name="modDirectory">The mod directory</param>
<returns>true if the mod directory is valid, false if invalid or Penumbra's IPC could not be contacted</returns>
</member>
<member name="M:Heliosphere.PenumbraIpc.CopyModSettings(System.String,System.String)">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.CopyModSettings"/>
</member>
<member name="M:Heliosphere.PenumbraIpc.GetCollections">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.GetCollections"/>
</member>
<member name="M:Heliosphere.PenumbraIpc.TrySetMod(System.Guid,System.String,System.Boolean)">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.TrySetMod"/>
</member>
<member name="M:Heliosphere.PenumbraIpc.GetModPath(System.String)">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.GetModPath"/>
</member>
<member name="M:Heliosphere.PenumbraIpc.GetCurrentModSettings(System.Guid,System.String,System.Boolean)">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.GetCurrentModSettings"/>
</member>
<member name="M:Heliosphere.PenumbraIpc.GetMods">
<inheritdoc cref="T:Penumbra.Api.IpcSubscribers.GetModList"/>
</member>
<member name="P:Heliosphere.CurrentModSettings.EnabledOptions">
<summary>
A dictionary of option group names and lists of enabled option names.
</summary>
</member>
<member name="M:Heliosphere.Plugin.AddDownloadAsync(Heliosphere.DownloadTask,System.Threading.CancellationToken)">
<summary>
Attempt to add a download to the download queue. This can fail (and
therefore return null) if a download for the same version is already in
the queue.
</summary>
<param name="task">download to add</param>
<param name="token">cancellation token</param>
<returns>the running download task or null</returns>
</member>
<member name="M:Heliosphere.Server.ReadJson``1(System.Net.HttpListenerRequest)">
<summary>
Read and deserialise JSON from a HTTP request to a C# type.
</summary>
<param name="req">Request to read from</param>
<typeparam name="T">The type to attempt deserialisation to</typeparam>
<returns>
If the input data was
<list type="bullet">
<item>valid data: the deserialised object/array</item>
<item>"null": null</item>
<item>invalid data: null</item>
</list>
</returns>
</member>
<member name="M:Heliosphere.Ui.Components.Importer.Draw">
<returns>true if import succeeded, false if not started/failed</returns>
</member>
<member name="M:Heliosphere.Ui.IDrawable.Draw">
<summary>
Draw this drawable.
</summary>
<returns>DrawStatus to determine if the drawable is finished</returns>
</member>
<member name="F:Heliosphere.Ui.DrawStatus.Finished">
<summary>
The drawable is finished drawing forever. The <see cref="M:Heliosphere.Ui.IDrawable.Draw"/>
method will never be called again.
</summary>
</member>
<member name="F:Heliosphere.Ui.DrawStatus.Continue">
<summary>
The <see cref="M:Heliosphere.Ui.IDrawable.Draw"/> method should continue to be called for
another frame.
</summary>
</member>
<member name="M:Heliosphere.Util.Clipboard.CopyFiles(System.Collections.Generic.IEnumerable{System.String})">
<summary>
Copy files to the clipboard as if they were copied in Explorer.
</summary>
<param name="paths">Full paths to files to be copied.</param>
<returns>Returns true on success.</returns>
</member>
<member name="M:Heliosphere.Util.FileHelper.OpenSharedReadIfExists(System.String)">
<summary>
Try to open a file for shared reading. If the file doesn't exist,
returns null.
<br/>
Throws the same exceptions as <see cref="M:System.IO.File.OpenRead(System.String)"/> aside from
<see cref="T:System.IO.DirectoryNotFoundException"/> and
<see cref="T:System.IO.FileNotFoundException"/>.
</summary>
<param name="path">path to open</param>
<returns>FileStream if the file exists</returns>
<exception cref="T:Heliosphere.Exceptions.AlreadyInUseException"/>
</member>
<member name="M:Heliosphere.Util.FileHelper.Create(System.String,System.Boolean)">
<summary>
Create a file at the given path. See <see cref="M:System.IO.File.Create(System.String)"/>.
</summary>
<param name="path">path to file to create</param>
<returns>FileStream of created file</returns>
<exception cref="T:Heliosphere.Exceptions.AlreadyInUseException"/>
</member>
<member name="F:Heliosphere.Util.GloballyThrottledStream._bucket">
<summary>
The fill level of the leaky bucket. Number of bytes read multiplied by
<see cref="F:System.Diagnostics.Stopwatch.Frequency"/>.
</summary>
</member>
<member name="M:Heliosphere.Util.Guard`1.Deconstruct">
<summary>
Dispose the internal <see cref="T:System.Threading.SemaphoreSlim"/> and return the data.
This marks the instance as disposed, so <see cref="M:Heliosphere.Util.Guard`1.Dispose"/>
will do nothing.
</summary>
<returns>Previously-guarded data</returns>
<exception cref="T:System.InvalidOperationException">If this instance is already disposed</exception>
</member>
<member name="M:Heliosphere.Util.PathHelper.MakeRelativeSub(System.String,System.String)">
<summary>
Returns the relative path of child to parent provided that parent is
an actual parent of child. If parent is not a parent of child, null is
returned.
</summary>
</member>
<member name="M:Heliosphere.Util.PathHelper.WaitToExist(System.String,System.Nullable{System.TimeSpan},System.Nullable{System.TimeSpan})">
<summary>
Wait until <see cref="M:System.IO.Directory.Exists(System.String)"/> returns true for a path.
</summary>
<param name="path">Path to check</param>
<param name="timeout">Maximum time to wait before returning (default: 5 seconds)</param>
<param name="wait">Time to wait between each check (default: 100 milliseconds)</param>
<returns>Final result of <see cref="M:System.IO.Directory.Exists(System.String)"/></returns>
</member>
<member name="M:Heliosphere.Util.RestartManager.GetLockingProcesses(System.String)">
<summary>
Find out which processes have a lock on the specified file.
</summary>
<param name="path">Path of the file.</param>
<returns>Processes locking the file</returns>
</member>
<member name="M:Heliosphere.Util.SentryTransaction.StartChild(System.String,System.Boolean)">
<summary>
Start a child span as low in the hierarchy as possible.
</summary>
<param name="operation">name of the span operation</param>
<param name="independent">true if this span should not be set as the child of the current lowest span</param>
<returns>a span that must be disposed</returns>
</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="P:Windows.Win32.__char_256.Length">
<summary>The length of the inline array.</summary>
</member>
<member name="P:Windows.Win32.__char_256.Item(System.Int32)">
<summary>
Gets a ref to an individual element of the inline array.
⚠ Important ⚠: When this struct is on the stack, do not let the returned reference outlive the stack frame that defines it.
</summary>
</member>
<member name="M:Windows.Win32.__char_256.AsSpan">
<summary>
Gets this inline array as a span.
</summary>
<remarks>
⚠ Important ⚠: When this struct is on the stack, do not let the returned span outlive the stack frame that defines it.
</remarks>
</member>
<member name="M:Windows.Win32.__char_256.AsReadOnlySpan">
<summary>
Gets this inline array as a span.
</summary>
<remarks>
⚠ Important ⚠: When this struct is on the stack, do not let the returned span outlive the stack frame that defines it.
</remarks>
</member>
<member name="M:Windows.Win32.__char_256.ToString(System.Int32)">
<summary>
Copies the fixed array to a new string up to the specified length regardless of whether there are null terminating characters.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">
Thrown when <paramref name="length"/> is less than <c>0</c> or greater than <see cref="P:Windows.Win32.__char_256.Length"/>.
</exception>
</member>
<member name="M:Windows.Win32.__char_256.ToString">
<summary>
Copies the fixed array to a new string, stopping before the first null terminator character or at the end of the fixed array (whichever is shorter).
</summary>
</member>
<member name="P:Windows.Win32.__char_64.Length">
<summary>The length of the inline array.</summary>
</member>
<member name="P:Windows.Win32.__char_64.Item(System.Int32)">
<summary>
Gets a ref to an individual element of the inline array.
⚠ Important ⚠: When this struct is on the stack, do not let the returned reference outlive the stack frame that defines it.
</summary>
</member>
<member name="M:Windows.Win32.__char_64.AsSpan">
<summary>
Gets this inline array as a span.
</summary>
<remarks>
⚠ Important ⚠: When this struct is on the stack, do not let the returned span outlive the stack frame that defines it.
</remarks>
</member>
<member name="M:Windows.Win32.__char_64.AsReadOnlySpan">
<summary>
Gets this inline array as a span.
</summary>
<remarks>
⚠ Important ⚠: When this struct is on the stack, do not let the returned span outlive the stack frame that defines it.
</remarks>
</member>
<member name="M:Windows.Win32.__char_64.ToString(System.Int32)">
<summary>
Copies the fixed array to a new string up to the specified length regardless of whether there are null terminating characters.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">
Thrown when <paramref name="length"/> is less than <c>0</c> or greater than <see cref="P:Windows.Win32.__char_64.Length"/>.
</exception>
</member>
<member name="M:Windows.Win32.__char_64.ToString">
<summary>
Copies the fixed array to a new string, stopping before the first null terminator character or at the end of the fixed array (whichever is shorter).
</summary>
</member>
<member name="T:Windows.Win32.System.RestartManager.RM_APP_STATUS">
<summary>Describes the current status of an application that is acted upon by the Restart Manager.</summary>
<remarks>The constants of <b>RM_APP_STATUS</b> can be combined with OR operators. The combination describes the history of actions taken by Restart Manager on the application.</remarks>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_STATUS.RmStatusUnknown">
<summary>The application is in a state that is not described by any other enumerated state.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_STATUS.RmStatusRunning">
<summary>The application is currently running.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_STATUS.RmStatusStopped">
<summary>The Restart Manager has stopped the application.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_STATUS.RmStatusStoppedOther">
<summary>An action outside the Restart Manager has stopped the application.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_STATUS.RmStatusRestarted">
<summary>The Restart Manager has restarted the application.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_STATUS.RmStatusErrorOnStop">
<summary>The Restart Manager encountered an error when stopping the application.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_STATUS.RmStatusErrorOnRestart">
<summary>The Restart Manager encountered an error when restarting the application.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_STATUS.RmStatusShutdownMasked">
<summary>Shutdown is masked by a filter.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_STATUS.RmStatusRestartMasked">
<summary>Restart is masked by a filter.</summary>
</member>
<member name="T:Windows.Win32.System.RestartManager.RM_APP_TYPE">
<summary>Specifies the type of application that is described by the RM_PROCESS_INFO structure.</summary>
<remarks>
<para><see href="https://learn.microsoft.com/windows/win32/api/restartmanager/ne-restartmanager-rm_app_type">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_TYPE.RmUnknownApp">
<summary>The application cannot be classified as any other type. An application of this type can only be shut down by a forced shutdown.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_TYPE.RmMainWindow">
<summary>A Windows application run as a stand-alone process that displays a top-level window.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_TYPE.RmOtherWindow">
<summary>A Windows application that does not run as a stand-alone process and does not display a top-level window.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_TYPE.RmService">
<summary>The application is a Windows service.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_TYPE.RmExplorer">
<summary>The application is Windows Explorer.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_TYPE.RmConsole">
<summary>The application is a stand-alone console application.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_APP_TYPE.RmCritical">
<summary>A system restart is required to complete the installation because a process cannot be shut down. The process cannot be shut down because of the following reasons. The process may be a critical process. The current user may not have permission to shut down the process. The process may belong to the primary installer that started the Restart Manager.</summary>
</member>
<member name="T:Windows.Win32.System.RestartManager.RM_PROCESS_INFO">
<summary>Describes an application that is to be registered with the Restart Manager.</summary>
<remarks>
<para><see href="https://learn.microsoft.com/windows/win32/api/restartmanager/ns-restartmanager-rm_process_info">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_PROCESS_INFO.Process">
<summary>Contains an <a href="https://docs.microsoft.com/windows/desktop/api/restartmanager/ns-restartmanager-rm_unique_process">RM_UNIQUE_PROCESS</a> structure that uniquely identifies the application by its PID and the time the process began.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_PROCESS_INFO.strAppName">
<summary>If the process is a service, this parameter returns the long name for the service. If the process is not a service, this parameter returns the user-friendly name for the application. If the process is a critical process, and the installer is run with elevated privileges, this parameter returns the name of the executable file of the critical process. If the process is a critical process, and the installer is run as a service, this parameter returns the long name of the critical process.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_PROCESS_INFO.strServiceShortName">
<summary>If the process is a service, this is the short name for the service. This member is not used if the process is not a service.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_PROCESS_INFO.ApplicationType">
<summary>Contains an <a href="https://docs.microsoft.com/windows/desktop/api/restartmanager/ne-restartmanager-rm_app_type">RM_APP_TYPE</a> enumeration value that specifies the type of application as <b>RmUnknownApp</b>, <b>RmMainWindow</b>, <b>RmOtherWindow</b>, <b>RmService</b>, <b>RmExplorer</b> or <b>RmCritical</b>.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_PROCESS_INFO.TSSessionId">
<summary>
<para>Contains the Terminal Services session ID of the process. If the terminal session of the process cannot be determined, the value of this member is set to <b>RM_INVALID_SESSION</b> (-1). This member is not used if the process is a service or a system critical process.</para>
<para><see href="https://learn.microsoft.com/windows/win32/api/restartmanager/ns-restartmanager-rm_process_info#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_PROCESS_INFO.bRestartable">
<summary>
<para><b>TRUE</b> if the application can be restarted by the Restart Manager; otherwise, <b>FALSE</b>. This member is always <b>TRUE</b> if the process is a service. This member is always <b>FALSE</b> if the process is a critical system process.</para>
<para><see href="https://learn.microsoft.com/windows/win32/api/restartmanager/ns-restartmanager-rm_process_info#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="T:Windows.Win32.System.RestartManager.RM_REBOOT_REASON">
<summary>Describes the reasons a restart of the system is needed.</summary>
<remarks>
<para><see href="https://learn.microsoft.com/windows/win32/api/restartmanager/ne-restartmanager-rm_reboot_reason">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_REBOOT_REASON.RmRebootReasonNone">
<summary>A system restart is not required.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_REBOOT_REASON.RmRebootReasonPermissionDenied">
<summary>
<para>The current user does not have sufficient privileges to shut down one or more processes.</para>
<para><see href="https://learn.microsoft.com/windows/win32/api/restartmanager/ne-restartmanager-rm_reboot_reason#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_REBOOT_REASON.RmRebootReasonSessionMismatch">
<summary>
<para>One or more processes are running in another Terminal Services session.</para>
<para><see href="https://learn.microsoft.com/windows/win32/api/restartmanager/ne-restartmanager-rm_reboot_reason#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_REBOOT_REASON.RmRebootReasonCriticalProcess">
<summary>A system restart is needed because one or more processes to be shut down are critical processes.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_REBOOT_REASON.RmRebootReasonCriticalService">
<summary>A system restart is needed because one or more services to be shut down are critical services.</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_REBOOT_REASON.RmRebootReasonDetectedSelf">
<summary>A system restart is needed because the current process must be shut down.</summary>
</member>
<member name="T:Windows.Win32.System.RestartManager.RM_UNIQUE_PROCESS">
<summary>Uniquely identifies a process by its PID and the time the process began.</summary>
<remarks>The <b>RM_UNIQUE_PROCESS</b> structure can be used to uniquely identify an application in an <a href="https://docs.microsoft.com/windows/desktop/api/restartmanager/ns-restartmanager-rm_process_info">RM_PROCESS_INFO</a> structure or registered with the Restart Manager session by the <a href="https://docs.microsoft.com/windows/desktop/api/restartmanager/nf-restartmanager-rmregisterresources">RmRegisterResources</a> function.</remarks>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_UNIQUE_PROCESS.dwProcessId">
<summary>The product identifier (PID).</summary>
</member>
<member name="F:Windows.Win32.System.RestartManager.RM_UNIQUE_PROCESS.ProcessStartTime">
<summary>The creation time of the process. The time is provided as a <b>FILETIME</b> structure that is returned by the <i>lpCreationTime</i> parameter of the <a href="https://docs.microsoft.com/windows/desktop/api/processthreadsapi/nf-processthreadsapi-getprocesstimes">GetProcessTimes</a> function.</summary>
</member>
<member name="T:Windows.Win32.UI.Shell.DROPFILES">
<summary>Defines the CF_HDROP clipboard format. The data that follows is a double null-terminated list of file names.</summary>
<remarks>
<para><see href="https://learn.microsoft.com/windows/win32/api/shlobj_core/ns-shlobj_core-dropfiles">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.UI.Shell.DROPFILES.pFiles">
<summary>
<para>Type: <b>DWORD</b> The offset of the file list from the beginning of this structure, in bytes.</para>
<para><see href="https://learn.microsoft.com/windows/win32/api/shlobj_core/ns-shlobj_core-dropfiles#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.UI.Shell.DROPFILES.pt">
<summary>
<para>Type: <b><a href="https://docs.microsoft.com/windows/win32/api/windef/ns-windef-point">POINT</a></b> The drop point. The coordinates depend on <b>fNC</b>.</para>
<para><see href="https://learn.microsoft.com/windows/win32/api/shlobj_core/ns-shlobj_core-dropfiles#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.UI.Shell.DROPFILES.fNC">
<summary>
<para>Type: <b>BOOL</b> A nonclient area flag. If this member is <b>TRUE</b>, <b>pt</b> specifies the screen coordinates of a point in a window's nonclient area. If it is <b>FALSE</b>, <b>pt</b> specifies the client coordinates of a point in the client area.</para>
<para><see href="https://learn.microsoft.com/windows/win32/api/shlobj_core/ns-shlobj_core-dropfiles#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.UI.Shell.DROPFILES.fWide">
<summary>
<para>Type: <b>BOOL</b> A value that indicates whether the file contains ANSI or Unicode characters. If the value is zero, the file contains ANSI characters. Otherwise, it contains Unicode characters.</para>
<para><see href="https://learn.microsoft.com/windows/win32/api/shlobj_core/ns-shlobj_core-dropfiles#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 "KERNEL32.dll".
</content>
<content>
Contains extern methods from "rstrtmgr.dll".
</content>
<content>
Contains extern methods from "USER32.dll".
</content>
</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.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.CreateHardLink(System.String,System.String)">
<inheritdoc cref="M:Windows.Win32.PInvoke.CreateHardLink(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Security.SECURITY_ATTRIBUTES*)"/>
</member>
<member name="M:Windows.Win32.PInvoke.CreateHardLink(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Security.SECURITY_ATTRIBUTES*)">
<summary>Establishes a hard link between an existing file and a new file. (Unicode)</summary>
<param name="lpFileName">
<para>The name of the new file.</para>
<para>This parameter may include the path but cannot specify the name of a directory. In the ANSI version of this function, the name is limited to <b>MAX_PATH</b> characters. To extend this limit to 32,767 wide characters, call the Unicode version of the function and prepend "\\\\?\\" to the path. For more information, see <a href="https://docs.microsoft.com/windows/desktop/FileIO/naming-a-file">Naming a File</a>. If you pass a name longer than MAX_PATH characters to the ANSI version of this function or to the Unicode version of this function without prepending "\\\\?\\" to the path, the function returns ERROR_PATH_NOT_FOUND. <div class="alert"><b>Tip</b>  Starting with Windows 10, version 1607, for the unicode version of this function (<b>CreateHardLinkW</b>), you can opt-in to remove the <b>MAX_PATH</b> limitation without prepending "\\?\". See the "Maximum Path Length Limitation" section of <a href="https://docs.microsoft.com/windows/desktop/FileIO/naming-a-file">Naming Files, Paths, and Namespaces</a> for details.</div> <div> </div></para>
<para><see href="https://learn.microsoft.com/windows/win32/api/winbase/nf-winbase-createhardlinkw#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpExistingFileName">
<para>The name of the existing file.</para>
<para>This parameter may include the path cannot specify the name of a directory. In the ANSI version of this function, the name is limited to <b>MAX_PATH</b> characters. To extend this limit to 32,767 wide characters, call the Unicode version of the function and prepend "\\\\?\\" to the path. For more information, see <a href="https://docs.microsoft.com/windows/desktop/FileIO/naming-a-file">Naming a File</a>. If you pass a name longer than MAX_PATH characters to the ANSI version of this function or to the Unicode version of this function without prepending "\\\\?\\" to the path, the function returns ERROR_PATH_NOT_FOUND. <div class="alert"><b>Tip</b>  Starting with Windows 10, version 1607, for the unicode version of this function (<b>CreateHardLinkW</b>), you can opt-in to remove the <b>MAX_PATH</b> limitation without prepending "\\?\". See the "Maximum Path Length Limitation" section of <a href="https://docs.microsoft.com/windows/desktop/FileIO/naming-a-file">Naming Files, Paths, and Namespaces</a> for details.</div> <div> </div></para>
<para><see href="https://learn.microsoft.com/windows/win32/api/winbase/nf-winbase-createhardlinkw#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpSecurityAttributes">Reserved; must be <b>NULL</b>.</param>
<returns>
<para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero (0). To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>. The maximum number of hard links that can be created with this function is 1023 per file. If more than 1023 links are created for a file, an error results. If you pass a name longer than MAX_PATH characters to the *lpFileName* or *lpExistingFileName* parameter of the ANSI version of this function or to the Unicode version of this function without prepending "\\\\?\\" to the path, the function returns ERROR_PATH_NOT_FOUND.</para>
</returns>
<remarks>
<para>Any directory entry for a file that is created with <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-createfilea">CreateFile</a> or <b>CreateHardLink</b> is a hard link to an associated file. An additional hard link that is created with the <b>CreateHardLink</b> function allows you to have multiple directory entries for a file, that is, multiple hard links to the same file, which can be different names in the same directory, or the same or different names in different directories. However, all hard links to a file must be on the same volume. Because hard links are only directory entries for a file, many changes to that file are instantly visible to applications that access it through the hard links that reference it. However, the directory entry size and attribute information is updated only for the link through which the change was made. The security descriptor belongs to the file to which a hard link points. The link itself is only a directory entry, and does not have a security descriptor. Therefore, when you change the security descriptor of a hard link, you a change the security descriptor of the underlying file, and all hard links that point to the file allow the newly specified access. You cannot give a file different security descriptors on a per-hard-link basis. This function does not modify the security descriptor of the file to be linked to, even if security descriptor information is passed in the <i>lpSecurityAttributes</i> parameter. Use <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-deletefilea">DeleteFile</a> to delete hard links. You can delete them in any order regardless of the order in which they are created. Flags, attributes, access, and sharing that are specified in <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-createfilea">CreateFile</a> operate on a per-file basis. That is, if you open a file that does not allow sharing, another application cannot share the file by creating a new hard link to the file. When you create a hard link on the NTFS file system, the file attribute information in the directory entry is refreshed only when the file is opened, or when <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-getfileinformationbyhandle">GetFileInformationByHandle</a> is called with the handle of a specific file. Symbolic link behavior—If the path points to a symbolic link, the function creates a hard link to the symbolic link. In Windows 8 and Windows Server 2012, this function is supported by the following technologies. </para>
<para>This doc was truncated.</para>
<para><see href="https://learn.microsoft.com/windows/win32/api/winbase/nf-winbase-createhardlinkw#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.RmStartSession(System.UInt32@,Windows.Win32.Foundation.PWSTR)">
<inheritdoc cref="M:Windows.Win32.PInvoke.RmStartSession(System.UInt32*,System.UInt32,Windows.Win32.Foundation.PWSTR)"/>
</member>
<member name="M:Windows.Win32.PInvoke.RmStartSession(System.UInt32*,System.UInt32,Windows.Win32.Foundation.PWSTR)">
<summary>Starts a new Restart Manager session.</summary>
<param name="pSessionHandle">A pointer to the handle of a Restart Manager session. The session handle can be passed in subsequent calls to the Restart Manager API.</param>
<param name="dwSessionFlags">Reserved. This parameter should be 0.</param>
<param name="strSessionKey">A <b>null</b>-terminated string that contains the session key to the new session. The string must be allocated before calling the <b>RmStartSession</b> function.</param>
<returns>
<para>This is the most recent error received. The function can return one of the <a href="https://docs.microsoft.com/windows/desktop/Debug/system-error-codes">system error codes</a> that are defined in Winerror.h. </para>
<para>This doc was truncated.</para>
</returns>
<remarks>
<para>The <b>RmStartSession</b> function returns an error if a session with the same session key already exists. The <b>RmStartSession</b> function should be called by the primary installer that controls the user interface or that controls the installation sequence of multiple patches in an update. A secondary installer can join an existing Restart Manager session by calling the <a href="https://docs.microsoft.com/windows/desktop/api/restartmanager/nf-restartmanager-rmjoinsession">RmJoinSession</a> function with the session handle and session key returned from the <b>RmStartSession</b> function call of the primary installer.</para>
<para><see href="https://learn.microsoft.com/windows/win32/api/restartmanager/nf-restartmanager-rmstartsession#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.RmEndSession(System.UInt32)">
<summary>Ends the Restart Manager session.</summary>
<param name="dwSessionHandle">A handle to an existing Restart Manager session.</param>
<returns>
<para>This is the most recent error received. The function can return one of the <a href="https://docs.microsoft.com/windows/desktop/Debug/system-error-codes">system error codes</a> that are defined in Winerror.h. </para>
<para>This doc was truncated.</para>
</returns>
<remarks>
<para><see href="https://learn.microsoft.com/windows/win32/api/restartmanager/nf-restartmanager-rmendsession">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.RmRegisterResources(System.UInt32,System.ReadOnlySpan{Windows.Win32.Foundation.PCWSTR},System.Span{Windows.Win32.System.RestartManager.RM_UNIQUE_PROCESS},System.ReadOnlySpan{Windows.Win32.Foundation.PCWSTR})">
<inheritdoc cref="M:Windows.Win32.PInvoke.RmRegisterResources(System.UInt32,System.UInt32,Windows.Win32.Foundation.PCWSTR*,System.UInt32,Windows.Win32.System.RestartManager.RM_UNIQUE_PROCESS*,System.UInt32,Windows.Win32.Foundation.PCWSTR*)"/>
</member>
<member name="M:Windows.Win32.PInvoke.RmRegisterResources(System.UInt32,System.UInt32,Windows.Win32.Foundation.PCWSTR*,System.UInt32,Windows.Win32.System.RestartManager.RM_UNIQUE_PROCESS*,System.UInt32,Windows.Win32.Foundation.PCWSTR*)">
<summary>Registers resources to a Restart Manager session.</summary>
<param name="dwSessionHandle">A handle to an existing Restart Manager session.</param>
<param name="nFiles">The number of files being registered.</param>
<param name="rgsFileNames">An array of <b>null</b>-terminated strings of full filename paths. This parameter can be <b>NULL</b> if <i>nFiles</i> is 0.</param>
<param name="nApplications">The number of processes being registered.</param>
<param name="rgApplications">An array of <a href="https://docs.microsoft.com/windows/desktop/api/restartmanager/ns-restartmanager-rm_unique_process">RM_UNIQUE_PROCESS</a> structures. This parameter can be <b>NULL</b> if <i>nApplications</i> is 0.</param>
<param name="nServices">The number of services to be registered.</param>
<param name="rgsServiceNames">An array of <b>null</b>-terminated strings of service short names. This parameter can be <b>NULL</b> if <i>nServices</i> is 0.</param>
<returns>
<para>This is the most recent error received. The function can return one of the <a href="https://docs.microsoft.com/windows/desktop/Debug/system-error-codes">system error codes</a> that are defined in Winerror.h. </para>
<para>This doc was truncated.</para>
</returns>
<remarks>Each call to the <b>RmRegisterResources</b> function performs relatively expensive write operations. Do not call this function once per file, instead group related files together into components and register these together.</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.RmGetList(System.UInt32,System.UInt32@,System.UInt32@,Windows.Win32.System.RestartManager.RM_PROCESS_INFO*,System.UInt32@)">
<inheritdoc cref="M:Windows.Win32.PInvoke.RmGetList(System.UInt32,System.UInt32*,System.UInt32*,Windows.Win32.System.RestartManager.RM_PROCESS_INFO*,System.UInt32*)"/>
</member>
<member name="M:Windows.Win32.PInvoke.RmGetList(System.UInt32,System.UInt32*,System.UInt32*,Windows.Win32.System.RestartManager.RM_PROCESS_INFO*,System.UInt32*)">
<summary>Gets a list of all applications and services that are currently using resources that have been registered with the Restart Manager session.</summary>
<param name="dwSessionHandle">A handle to an existing Restart Manager session.</param>
<param name="pnProcInfoNeeded">A pointer to an array size necessary to receive <a href="https://docs.microsoft.com/windows/desktop/api/restartmanager/ns-restartmanager-rm_process_info">RM_PROCESS_INFO</a> structures required to return information for all affected applications and services.</param>
<param name="pnProcInfo">A pointer to the total number of <a href="https://docs.microsoft.com/windows/desktop/api/restartmanager/ns-restartmanager-rm_process_info">RM_PROCESS_INFO</a> structures in an array and number of structures filled.</param>
<param name="rgAffectedApps">An array of <a href="https://docs.microsoft.com/windows/desktop/api/restartmanager/ns-restartmanager-rm_process_info">RM_PROCESS_INFO</a> structures that list the applications and services using resources that have been registered with the session.</param>
<param name="lpdwRebootReasons">Pointer to location that receives a value of the <a href="https://docs.microsoft.com/windows/desktop/api/restartmanager/ne-restartmanager-rm_reboot_reason">RM_REBOOT_REASON</a> enumeration that describes the reason a system restart is needed.</param>
<returns>
<para>This is the most recent error received. The function can return one of the <a href="https://docs.microsoft.com/windows/desktop/Debug/system-error-codes">system error codes</a> that are defined in Winerror.h. </para>
<para>This doc was truncated.</para>
</returns>
<remarks>
<para><see href="https://learn.microsoft.com/windows/win32/api/restartmanager/nf-restartmanager-rmgetlist">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.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.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="T:Windows.Win32.Security.SECURITY_ATTRIBUTES">
<summary>The SECURITY_ATTRIBUTES structure contains the security descriptor for an object and specifies whether the handle retrieved by specifying this structure is inheritable.</summary>
<remarks></remarks>
</member>
<member name="F:Windows.Win32.Security.SECURITY_ATTRIBUTES.nLength">
<summary>The size, in bytes, of this structure. Set this value to the size of the **SECURITY\_ATTRIBUTES** structure.</summary>
</member>
<member name="F:Windows.Win32.Security.SECURITY_ATTRIBUTES.lpSecurityDescriptor">
<summary>
<para>A pointer to a [**SECURITY\_DESCRIPTOR**](../winnt/ns-winnt-security_descriptor.md) structure that controls access to the object. If the value of this member is **NULL**, the object is assigned the default security descriptor associated with the [*access token*](/windows/win32/secauthz/access-tokens) of the calling process. This is not the same as granting access to everyone by assigning a **NULL** [*discretionary access control list*](/windows/win32/secauthz/dacls-and-aces) (DACL). By default, the default DACL in the access token of a process allows access only to the user represented by the access token. For information about creating a security descriptor, see [Creating a Security Descriptor](/windows/win32/secauthz/creating-a-security-descriptor-for-a-new-object-in-c--).</para>
<para><see href="https://learn.microsoft.com/windows/win32/api/wtypesbase/ns-wtypesbase-security_attributes#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.SECURITY_ATTRIBUTES.bInheritHandle">
<summary>A Boolean value that specifies whether the returned handle is inherited when a new process is created. If this member is **TRUE**, the new process inherits the handle.</summary>
</member>
</members>
</doc>