shlwapi.h header

This header is used by The Windows Shell. For more information, see:

shlwapi.h contains the following programming interfaces:

Interfaces

 
IQueryAssociations

Exposes methods that simplify the process of retrieving information stored in the registry in association with defining a file type or protocol and associating it with an application.

Functions

 
AssocCreate

Returns a pointer to an IQueryAssociations object.
AssocGetPerceivedType

Retrieves a file's perceived type based on its extension.
AssocIsDangerous

Determines whether a file type is considered a potential security risk.
AssocQueryKeyA

Searches for and retrieves a key related to a file or protocol association from the registry. (ANSI)
AssocQueryKeyW

Searches for and retrieves a key related to a file or protocol association from the registry. (Unicode)
AssocQueryStringA

Searches for and retrieves a file or protocol association-related string from the registry. (AssocQueryStringA)
AssocQueryStringByKeyA

Searches for and retrieves a file association-related string from the registry starting from a specified key. (ANSI)
AssocQueryStringByKeyW

Searches for and retrieves a file association-related string from the registry starting from a specified key. (Unicode)
AssocQueryStringW

Searches for and retrieves a file or protocol association-related string from the registry. (AssocQueryStringW)
ChrCmpIA

Performs a comparison between two characters. The comparison is not case-sensitive. (ANSI)
ChrCmpIW

Performs a comparison between two characters. The comparison is not case-sensitive. (Unicode)
ColorAdjustLuma

Changes the luminance of a RGB value. Hue and saturation are not affected.
ColorHLSToRGB

Converts colors from hue-luminance-saturation (HLS) to RGB format.
ColorRGBToHLS

Converts colors from RGB to hue-luminance-saturation (HLS) format.
ConnectToConnectionPoint

Establishes or terminates a connection between a client's sink and a connection point container.
DllInstall

Handles installation and setup for a DLL.
GetAcceptLanguagesA

Retrieves a string used with websites when specifying language preferences. (ANSI)
GetAcceptLanguagesW

Retrieves a string used with websites when specifying language preferences. (Unicode)
GetMenuPosFromID

GetMenuPosFromID may be altered or unavailable.
GetProcessReference

Retrieves the process-specific object supplied by SetProcessReference, incrementing the reference count to keep the process alive.
HashData

Hashes an array of data.
IntlStrEqNA

Performs a case-sensitive comparison of a specified number of characters from the beginning of two localized strings. (ANSI)
IntlStrEqNIA

Performs a case-insensitive comparison of a specified number of characters from the beginning of two localized strings. (ANSI)
IntlStrEqNIW

Performs a case-insensitive comparison of a specified number of characters from the beginning of two localized strings. (Unicode)
IntlStrEqNW

Performs a case-sensitive comparison of a specified number of characters from the beginning of two localized strings. (Unicode)
IntlStrEqWorkerA

Compares a specified number of characters from the beginning of two localized strings. (ANSI)
IntlStrEqWorkerW

Compares a specified number of characters from the beginning of two localized strings. (Unicode)
IsCharSpaceA

Determines whether a character represents a space. (ANSI)
IsCharSpaceW

Determines whether a character represents a space. (Unicode)
IsInternetESCEnabled

Determines whether Windows Internet Explorer is in the Enhanced Security Configuration.
IsOS

Checks for specified operating systems and operating system features.
IStream_Copy

Copies a stream to another stream.
IStream_Read

Reads bytes from a specified stream and returns a value that indicates whether all bytes were successfully read.
IStream_ReadPidl

Reads a pointer to an item identifier list (PIDL) from an IStream object into a PIDLIST_RELATIVE object.
IStream_ReadStr

Reads from a stream and writes into a string.
IStream_Reset

Moves the seek position in a specified stream to the beginning of the stream.
IStream_Size

Retrieves the size, in bytes, of a specified stream.
IStream_Write

Writes data of unknown format from a buffer to a specified stream.
IStream_WritePidl

Writes a pointer to an item identifier list (PIDL) from a PCUIDLIST_RELATIVE object into an IStream object.
IStream_WriteStr

Reads from a string and writes into a stream.
IUnknown_AtomicRelease

Releases a Component Object Model (COM) pointer and sets it to NULL.
IUnknown_GetSite

Calls the specified object's IObjectWithSite::GetSite method.
IUnknown_GetWindow

Attempts to retrieve a window handle from a Component Object Model (COM) object by querying for various interfaces that have a GetWindow method.
IUnknown_QueryService

Retrieves an interface for a service from a specified object.
IUnknown_Set

Changes the value of a Component Object Model (COM) interface pointer and releases the previous interface.
IUnknown_SetSite

Sets the specified object's site by calling its IObjectWithSite::SetSite method.
MAKEDLLVERULL

Used to pack DLL version information into a ULONGLONG value.
ParseURLA

Performs rudimentary parsing of a URL. (ANSI)
ParseURLW

Performs rudimentary parsing of a URL. (Unicode)
PathAddBackslashA

Adds a backslash to the end of a string to create the correct syntax for a path. (PathAddBackslashA)
PathAddBackslashW

Adds a backslash to the end of a string to create the correct syntax for a path. (PathAddBackslashW)
PathAddExtensionA

Adds a file name extension to a path string. (ANSI)
PathAddExtensionW

Adds a file name extension to a path string. (Unicode)
PathAppendA

Appends one path to the end of another. (ANSI)
PathAppendW

Appends one path to the end of another. (Unicode)
PathBuildRootA

Creates a root path from a given drive number. (ANSI)
PathBuildRootW

Creates a root path from a given drive number. (Unicode)
PathCanonicalizeA

Simplifies a path by removing navigation elements such as "." and ".." to produce a direct, well-formed path. (ANSI)
PathCanonicalizeW

Simplifies a path by removing navigation elements such as "." and ".." to produce a direct, well-formed path. (Unicode)
PathCombineA

Concatenates two strings that represent properly formed paths into one path; also concatenates any relative path elements. (ANSI)
PathCombineW

Concatenates two strings that represent properly formed paths into one path; also concatenates any relative path elements. (Unicode)
PathCommonPrefixA

Compares two paths to determine if they share a common prefix. A prefix is one of these types:_"C:\", ".", "..", "..\". (ANSI)
PathCommonPrefixW

Compares two paths to determine if they share a common prefix. A prefix is one of these types:_"C:\", ".", "..", "..\". (Unicode)
PathCompactPathA

Truncates a file path to fit within a given pixel width by replacing path components with ellipses. (ANSI)
PathCompactPathExA

Truncates a path to fit within a certain number of characters by replacing path components with ellipses. (ANSI)
PathCompactPathExW

Truncates a path to fit within a certain number of characters by replacing path components with ellipses. (Unicode)
PathCompactPathW

Truncates a file path to fit within a given pixel width by replacing path components with ellipses. (Unicode)
PathCreateFromUrlA

Converts a file URL to a Microsoft MS-DOS path. (ANSI)
PathCreateFromUrlAlloc

Creates a path from a file URL.
PathCreateFromUrlW

Converts a file URL to a Microsoft MS-DOS path. (Unicode)
PathFileExistsA

Determines whether a path to a file system object such as a file or folder is valid. (ANSI)
PathFileExistsW

Determines whether a path to a file system object such as a file or folder is valid. (Unicode)
PathFindExtensionA

Searches a path for an extension. (ANSI)
PathFindExtensionW

Searches a path for an extension. (Unicode)
PathFindFileNameA

Searches a path for a file name. (ANSI)
PathFindFileNameW

Searches a path for a file name. (Unicode)
PathFindNextComponentA

Parses a path and returns the portion of that path that follows the first backslash. (ANSI)
PathFindNextComponentW

Parses a path and returns the portion of that path that follows the first backslash. (Unicode)
PathFindOnPathA

Searches for a file. (ANSI)
PathFindOnPathW

Searches for a file. (Unicode)
PathFindSuffixArrayA

Determines whether a given file name has one of a list of suffixes. (ANSI)
PathFindSuffixArrayW

Determines whether a given file name has one of a list of suffixes. (Unicode)
PathGetArgsA

Finds the command line arguments within a given path. (ANSI)
PathGetArgsW

Finds the command line arguments within a given path. (Unicode)
PathGetCharTypeA

Determines the type of character in relation to a path. (ANSI)
PathGetCharTypeW

Determines the type of character in relation to a path. (Unicode)
PathGetDriveNumberA

Searches a path for a drive letter within the range of 'A' to 'Z' and returns the corresponding drive number. (ANSI)
PathGetDriveNumberW

Searches a path for a drive letter within the range of 'A' to 'Z' and returns the corresponding drive number. (Unicode)
PathIsContentTypeA

Determines if a file's registered content type matches the specified content type. This function obtains the content type for the specified file type and compares that string with the pszContentType. The comparison is not case-sensitive. (ANSI)
PathIsContentTypeW

Determines if a file's registered content type matches the specified content type. This function obtains the content type for the specified file type and compares that string with the pszContentType. The comparison is not case-sensitive. (Unicode)
PathIsDirectoryA

Verifies that a path is a valid directory. (ANSI)
PathIsDirectoryEmptyA

Determines whether a specified path is an empty directory. (ANSI)
PathIsDirectoryEmptyW

Determines whether a specified path is an empty directory. (Unicode)
PathIsDirectoryW

Verifies that a path is a valid directory. (Unicode)
PathIsFileSpecA

Searches a path for any path-delimiting characters (for example, ':' or '' ). If there are no path-delimiting characters present, the path is considered to be a File Spec path.
PathIsFileSpecW

Searches a path for any path-delimiting characters (for example, ':' or '\' ). If there are no path-delimiting characters present, the path is considered to be a File Spec path.
PathIsHTMLFileA

Determines if a file is an HTML file. The determination is made based on the content type that is registered for the file's extension. (ANSI)
PathIsHTMLFileW

Determines if a file is an HTML file. The determination is made based on the content type that is registered for the file's extension. (Unicode)
PathIsLFNFileSpecA

Determines whether a file name is in long format. (ANSI)
PathIsLFNFileSpecW

Determines whether a file name is in long format. (Unicode)
PathIsNetworkPathA

Determines whether a path string represents a network resource. (ANSI)
PathIsNetworkPathW

Determines whether a path string represents a network resource. (Unicode)
PathIsPrefixA

Examines a path to determine if it starts with a prefix value passed by pszPrefix. (ANSI)
PathIsPrefixW

Examines a path to determine if it starts with a prefix value passed by pszPrefix. (Unicode)
PathIsRelativeA

Searches a path and determines if it is relative. (ANSI)
PathIsRelativeW

Searches a path and determines if it is relative. (Unicode)
PathIsRootA

Determines whether a path string refers to the root of a volume. (ANSI)
PathIsRootW

Determines whether a path string refers to the root of a volume. (Unicode)
PathIsSameRootA

Compares two paths to determine if they have a common root component. (ANSI)
PathIsSameRootW

Compares two paths to determine if they have a common root component. (Unicode)
PathIsSystemFolderA

Determines if an existing folder contains the attributes that make it a system folder. Alternately, this function indicates if certain attributes qualify a folder to be a system folder. (ANSI)
PathIsSystemFolderW

Determines if an existing folder contains the attributes that make it a system folder. Alternately, this function indicates if certain attributes qualify a folder to be a system folder. (Unicode)
PathIsUNCA

Determines if a path string is a valid Universal Naming Convention (UNC) path, as opposed to a path based on a drive letter. (ANSI)
PathIsUNCServerA

Determines if a string is a valid Universal Naming Convention (UNC) for a server path only. (ANSI)
PathIsUNCServerShareA

Determines if a string is a valid Universal Naming Convention (UNC) share path, \server\share. (ANSI)
PathIsUNCServerShareW

Determines if a string is a valid Universal Naming Convention (UNC) share path, \server\share. (Unicode)
PathIsUNCServerW

Determines if a string is a valid Universal Naming Convention (UNC) for a server path only. (Unicode)
PathIsUNCW

Determines if a path string is a valid Universal Naming Convention (UNC) path, as opposed to a path based on a drive letter. (Unicode)
PathIsURLA

Tests a given string to determine if it conforms to a valid URL format. (ANSI)
PathIsURLW

Tests a given string to determine if it conforms to a valid URL format. (Unicode)
PathMakePrettyA

Converts an all-uppercase path to all lowercase characters to give the path a consistent appearance. (ANSI)
PathMakePrettyW

Converts an all-uppercase path to all lowercase characters to give the path a consistent appearance. (Unicode)
PathMakeSystemFolderA

Gives an existing folder the proper attributes to become a system folder. (ANSI)
PathMakeSystemFolderW

Gives an existing folder the proper attributes to become a system folder. (Unicode)
PathMatchSpecA

Searches a string using a Microsoft MS-DOS wildcard match type. (ANSI)
PathMatchSpecExA

Matches a file name from a path against one or more file name patterns. (ANSI)
PathMatchSpecExW

Matches a file name from a path against one or more file name patterns. (Unicode)
PathMatchSpecW

Searches a string using a Microsoft MS-DOS wildcard match type. (Unicode)
PathParseIconLocationA

Parses a file location string that contains a file location and icon index, and returns separate values. (ANSI)
PathParseIconLocationW

Parses a file location string that contains a file location and icon index, and returns separate values. (Unicode)
PathQuoteSpacesA

Searches a path for spaces. If spaces are found, the entire path is enclosed in quotation marks. (ANSI)
PathQuoteSpacesW

Searches a path for spaces. If spaces are found, the entire path is enclosed in quotation marks. (Unicode)
PathRelativePathToA

Creates a relative path from one file or folder to another. (ANSI)
PathRelativePathToW

Creates a relative path from one file or folder to another. (Unicode)
PathRemoveArgsA

Removes any arguments from a given path. (ANSI)
PathRemoveArgsW

Removes any arguments from a given path. (Unicode)
PathRemoveBackslashA

Removes the trailing backslash from a given path. (ANSI)
PathRemoveBackslashW

Removes the trailing backslash from a given path. (Unicode)
PathRemoveBlanksA

Removes all leading and trailing spaces from a string. (ANSI)
PathRemoveBlanksW

Removes all leading and trailing spaces from a string. (Unicode)
PathRemoveExtensionA

Removes the file name extension from a path, if one is present. (ANSI)
PathRemoveExtensionW

Removes the file name extension from a path, if one is present. (Unicode)
PathRemoveFileSpecA

Removes the trailing file name and backslash from a path, if they are present. (ANSI)
PathRemoveFileSpecW

Removes the trailing file name and backslash from a path, if they are present. (Unicode)
PathRenameExtensionA

Replaces the extension of a file name with a new extension. If the file name does not contain an extension, the extension will be attached to the end of the string. (ANSI)
PathRenameExtensionW

Replaces the extension of a file name with a new extension. If the file name does not contain an extension, the extension will be attached to the end of the string. (Unicode)
PathSearchAndQualifyA

Determines if a given path is correctly formatted and fully qualified. (ANSI)
PathSearchAndQualifyW

Determines if a given path is correctly formatted and fully qualified. (Unicode)
PathSetDlgItemPathA

Sets the text of a child control in a window or dialog box, using PathCompactPath to ensure the path fits in the control. (ANSI)
PathSetDlgItemPathW

Sets the text of a child control in a window or dialog box, using PathCompactPath to ensure the path fits in the control. (Unicode)
PathSkipRootA

Retrieves a pointer to the first character in a path following the drive letter or Universal Naming Convention (UNC) server/share path elements. (ANSI)
PathSkipRootW

Retrieves a pointer to the first character in a path following the drive letter or Universal Naming Convention (UNC) server/share path elements. (Unicode)
PathStripPathA

Removes the path portion of a fully qualified path and file. (ANSI)
PathStripPathW

Removes the path portion of a fully qualified path and file. (Unicode)
PathStripToRootA

Removes all file and directory elements in a path except for the root information. (ANSI)
PathStripToRootW

Removes all file and directory elements in a path except for the root information. (Unicode)
PathUndecorateA

Removes the decoration from a path string. (ANSI)
PathUndecorateW

Removes the decoration from a path string. (Unicode)
PathUnExpandEnvStringsA

Replaces certain folder names in a fully qualified path with their associated environment string. (ANSI)
PathUnExpandEnvStringsW

Replaces certain folder names in a fully qualified path with their associated environment string. (Unicode)
PathUnmakeSystemFolderA

Removes the attributes from a folder that make it a system folder. This folder must actually exist in the file system. (ANSI)
PathUnmakeSystemFolderW

Removes the attributes from a folder that make it a system folder. This folder must actually exist in the file system. (Unicode)
PathUnquoteSpacesA

Removes quotes from the beginning and end of a path. (ANSI)
PathUnquoteSpacesW

Removes quotes from the beginning and end of a path. (Unicode)
QISearch

A table-driven implementation of the IUnknown::QueryInterface method.
SetProcessReference

Provides a Component Object Model (COM) object that allows hosted Shell extensions and other components to prevent their host process from closing prematurely.
SHAllocShared

SHAllocShared may be altered or unavailable.
SHAnsiToAnsi

Copies an ANSI string.
SHAnsiToUnicode

Converts a string from the ANSI code page to the Unicode code page.
SHAutoComplete

Instructs system edit controls to use AutoComplete to help complete URLs or file system paths.
SHCopyKeyA

Recursively copies the subkeys and values of the source subkey to the destination key. SHCopyKey does not copy the security attributes of the keys. (ANSI)
SHCopyKeyW

Recursively copies the subkeys and values of the source subkey to the destination key. SHCopyKey does not copy the security attributes of the keys. (Unicode)
SHCreateMemStream

Creates a memory stream using a similar process to CreateStreamOnHGlobal.
SHCreateShellPalette

Creates a halftone palette for the specified device context.
SHCreateStreamOnFileA

SHCreateStreamOnFile may be altered or unavailable. Instead, use SHCreateStreamOnFileEx. (ANSI)
SHCreateStreamOnFileEx

Opens or creates a file and retrieves a stream to read or write to that file.
SHCreateStreamOnFileW

SHCreateStreamOnFile may be altered or unavailable. Instead, use SHCreateStreamOnFileEx. (Unicode)
SHCreateThread

Creates a thread.
SHCreateThreadRef

Creates a per-thread reference to a Component Object Model (COM) object.
SHCreateThreadWithHandle

Creates a new thread and retrieves its handle.
SHDeleteEmptyKeyA

Deletes an empty key. (ANSI)
SHDeleteEmptyKeyW

Deletes an empty key. (Unicode)
SHDeleteKeyA

Deletes a subkey and all its descendants. This function removes the key and all the key's values from the registry. (ANSI)
SHDeleteKeyW

Deletes a subkey and all its descendants. This function removes the key and all the key's values from the registry. (Unicode)
SHDeleteValueA

Deletes a named value from the specified registry key. (ANSI)
SHDeleteValueW

Deletes a named value from the specified registry key. (Unicode)
SHEnumKeyExA

Enumerates the subkeys of the specified open registry key. (SHEnumKeyExA)
SHEnumKeyExW

Enumerates the subkeys of the specified open registry key. (SHEnumKeyExW)
SHEnumValueA

Enumerates the values of the specified open registry key. (ANSI)
SHEnumValueW

Enumerates the values of the specified open registry key. (Unicode)
SHFormatDateTimeA

SHFormatDateTime may be altered or unavailable. (ANSI)
SHFormatDateTimeW

SHFormatDateTime may be altered or unavailable. (Unicode)
SHFreeShared

SHFreeShared may be altered or unavailable.
SHGetAssocKeys

Retrieves an array of class subkeys associated with an IQueryAssociations object.
SHGetInverseCMAP

Retrieves the inverse color table mapping for the halftone palette.
SHGetThreadRef

Retrieves the per-thread object reference set by SHSetThreadRef.
SHGetValueA

Retrieves a registry value. (SHGetValueA)
SHGetValueW

Retrieves a registry value. (SHGetValueW)
SHGetViewStatePropertyBag

SHGetViewStatePropertyBag may be altered or unavailable.
SHGlobalCounterDecrement

Decrements a global counter.
SHGlobalCounterGetValue

Gets the current value of a global counter.
SHGlobalCounterIncrement

Increments a global counter.
SHIsLowMemoryMachine

Not supported. (SHIsLowMemoryMachine)
SHLoadIndirectString

Extracts a specified text resource when given that resource in the form of an indirect string (a string that begins with the '@' symbol).
SHLocalStrDupA

Makes a copy of a string in newly allocated memory. (SHLocalStrDupA)
SHLocalStrDupW

Makes a copy of a string in newly allocated memory. (SHLocalStrDupW)
SHLockShared

SHLockShared may be altered or unavailable.
SHMessageBoxCheckA

SHMessageBoxCheck may be altered or unavailable. (ANSI)
SHMessageBoxCheckW

SHMessageBoxCheck may be altered or unavailable. (Unicode)
SHOpenRegStream2A

Opens a registry value and supplies a stream that can be used to read from or write to the value. This function supersedes SHOpenRegStream. (ANSI)
SHOpenRegStream2W

Opens a registry value and supplies a stream that can be used to read from or write to the value. This function supersedes SHOpenRegStream. (Unicode)
SHOpenRegStreamA

Deprecated. (SHOpenRegStreamA)
SHOpenRegStreamW

Deprecated. (SHOpenRegStreamW)
SHQueryInfoKeyA

Retrieves information about a specified registry key. (ANSI)
SHQueryInfoKeyW

Retrieves information about a specified registry key. (Unicode)
SHQueryValueExA

Opens a registry key and queries it for a specific value. (ANSI)
SHQueryValueExW

Opens a registry key and queries it for a specific value. (Unicode)
SHRegCloseUSKey

Closes a handle to a user-specific registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE).
SHRegCreateUSKeyA

Creates or opens a registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (ANSI)
SHRegCreateUSKeyW

Creates or opens a registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (Unicode)
SHRegDeleteEmptyUSKeyA

Deletes an empty registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (ANSI)
SHRegDeleteEmptyUSKeyW

Deletes an empty registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (Unicode)
SHRegDeleteUSValueA

Deletes a registry subkey value in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (ANSI)
SHRegDeleteUSValueW

Deletes a registry subkey value in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (Unicode)
SHRegDuplicateHKey

Duplicates a registry key's HKEY handle.
SHRegEnumUSKeyA

Enumerates the subkeys of a registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (ANSI)
SHRegEnumUSKeyW

Enumerates the subkeys of a registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (Unicode)
SHRegEnumUSValueA

Enumerates the values of the specified registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (ANSI)
SHRegEnumUSValueW

Enumerates the values of the specified registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (Unicode)
SHRegGetBoolUSValueA

Retrieves a Boolean value from a registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (ANSI)
SHRegGetBoolUSValueW

Retrieves a Boolean value from a registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (Unicode)
SHRegGetBoolValueFromHKCUHKLM

Evaluates a registry key value and returns a boolean value that reflects whether the value exists and the expected state matches the actual state.
SHRegGetIntW

Reads a numeric string value from the registry and converts it to an integer.
SHRegGetPathA

Retrieves a file path from the registry, expanding environment variables as needed. (ANSI)
SHRegGetPathW

Retrieves a file path from the registry, expanding environment variables as needed. (Unicode)
SHRegGetUSValueA

Retrieves a value from a registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (ANSI)
SHRegGetUSValueW

Retrieves a value from a registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (Unicode)
SHRegGetValueA

Retrieves a registry value. (SHRegGetValueA)
SHRegGetValueFromHKCUHKLM

Obtains specified information from the registry.
SHRegGetValueW

Retrieves a registry value. (SHRegGetValueW)
SHRegOpenUSKeyA

Opens a registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (ANSI)
SHRegOpenUSKeyW

Opens a registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (Unicode)
SHRegQueryInfoUSKeyA

Retrieves information about a specified registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (ANSI)
SHRegQueryInfoUSKeyW

Retrieves information about a specified registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (Unicode)
SHRegQueryUSValueA

Retrieves the type and data for a specified name associated with an open registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (ANSI)
SHRegQueryUSValueW

Retrieves the type and data for a specified name associated with an open registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (Unicode)
SHRegSetPathA

Takes a file path, replaces folder names with environment strings, and places the resulting string in the registry. (ANSI)
SHRegSetPathW

Takes a file path, replaces folder names with environment strings, and places the resulting string in the registry. (Unicode)
SHRegSetUSValueA

Sets a registry subkey value in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (ANSI)
SHRegSetUSValueW

Sets a registry subkey value in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (Unicode)
SHRegSetValue

Not supported. (SHRegSetValue)
SHRegWriteUSValueA

Writes a value to a registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (ANSI)
SHRegWriteUSValueW

Writes a value to a registry subkey in a user-specific subtree (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE). (Unicode)
SHReleaseThreadRef

Releases a thread reference before the thread procedure returns.
SHSendMessageBroadcastA

Sends a message to all top-level windows in the system. (ANSI)
SHSendMessageBroadcastW

Sends a message to all top-level windows in the system. (Unicode)
SHSetThreadRef

Stores a per-thread reference to a Component Object Model (COM) object. This allows the caller to control the thread's lifetime so that it can ensure that Windows won't shut down the thread before the caller is ready.
SHSetValueA

Sets the value of a registry key. (ANSI)
SHSetValueW

Sets the value of a registry key. (Unicode)
SHSkipJunction

Checks a bind context to see if it is safe to bind to a particular component object.
SHStrDupA

Makes a copy of a string in newly allocated memory. (SHStrDupA)
SHStrDupW

Makes a copy of a string in newly allocated memory. (SHStrDupW)
SHStripMneumonicA

Removes the mnemonic marker from a string. (ANSI)
SHStripMneumonicW

Removes the mnemonic marker from a string. (Unicode)
SHUnicodeToAnsi

Converts a string from the Unicode code page to the ANSI code page.
SHUnicodeToUnicode

Copies a Unicode string.
SHUnlockShared

SHUnlockShared may be altered or unavailable.
StopWatchFlush

StopWatchFlush may be altered or unavailable.
StopWatchMode

StopWatchMode may be altered or unavailable.
StrCatBuffA

Copies and appends characters from one string to the end of another. (ANSI)
StrCatBuffW

Copies and appends characters from one string to the end of another. (Unicode)
StrCatChainW

Concatenates two Unicode strings. Used when repeated concatenations to the same buffer are required.
StrCatW

Appends one string to another.
StrChrA

Searches a string for the first occurrence of a character that matches the specified character. The comparison is case-sensitive. (ANSI)
StrChrIA

Searches a string for the first occurrence of a character that matches the specified character. The comparison is not case-sensitive. (ANSI)
StrChrIW

Searches a string for the first occurrence of a character that matches the specified character. The comparison is not case-sensitive. (Unicode)
StrChrNIW

Searches a string for the first occurrence of a specified character. The comparison is not case-sensitive.
StrChrNW

Searches a string for the first occurrence of a specified character. The comparison is case-sensitive.
StrChrW

Searches a string for the first occurrence of a character that matches the specified character. The comparison is case-sensitive. (Unicode)
StrCmpCA

Compares strings using C run-time (ASCII) collation rules. The comparison is case-sensitive. (ANSI)
StrCmpCW

Compares strings using C run-time (ASCII) collation rules. The comparison is case-sensitive. (Unicode)
StrCmpICA

Compares two strings using C run-time (ASCII) collation rules. The comparison is not case-sensitive. (ANSI)
StrCmpICW

Compares two strings using C run-time (ASCII) collation rules. The comparison is not case-sensitive. (Unicode)
StrCmpIW

Compares two strings to determine if they are the same. The comparison is not case-sensitive.
StrCmpLogicalW

Compares two Unicode strings. Digits in the strings are considered as numerical content rather than text. This test is not case-sensitive.
StrCmpNA

Compares a specified number of characters from the beginning of two strings to determine if they are the same. The comparison is case-sensitive. The StrNCmp macro differs from this function in name only. (ANSI)
StrCmpNCA

Compares a specified number of characters from the beginning of two strings using C run-time (ASCII) collation rules. The comparison is case-sensitive. (ANSI)
StrCmpNCW

Compares a specified number of characters from the beginning of two strings using C run-time (ASCII) collation rules. The comparison is case-sensitive. (Unicode)
StrCmpNIA

Compares a specified number of characters from the beginning of two strings to determine if they are the same. The comparison is not case-sensitive. The StrNCmpI macro differs from this function in name only. (ANSI)
StrCmpNICA

Compares a specified number of characters from the beginning of two strings using C run-time (ASCII) collation rules. The comparison is not case-sensitive. (ANSI)
StrCmpNICW

Compares a specified number of characters from the beginning of two strings using C run-time (ASCII) collation rules. The comparison is not case-sensitive. (Unicode)
StrCmpNIW

Compares a specified number of characters from the beginning of two strings to determine if they are the same. The comparison is not case-sensitive. The StrNCmpI macro differs from this function in name only. (Unicode)
StrCmpNW

Compares a specified number of characters from the beginning of two strings to determine if they are the same. The comparison is case-sensitive. The StrNCmp macro differs from this function in name only. (Unicode)
StrCmpW

Compares two strings to determine if they are the same. The comparison is case-sensitive.
StrCpyNW

Copies a specified number of characters from the beginning of one string to another.Note  Do not use this function or the StrNCpy macro.
StrCpyW

Copies one string to another. (StrCpyW)
StrCSpnA

Searches a string for the first occurrence of any of a group of characters. The search method is case-sensitive, and the terminating NULL character is included within the search pattern match. (ANSI)
StrCSpnIA

Searches a string for the first occurrence of any of a group of characters. The search method is not case-sensitive, and the terminating NULL character is included within the search pattern match. (ANSI)
StrCSpnIW

Searches a string for the first occurrence of any of a group of characters. The search method is not case-sensitive, and the terminating NULL character is included within the search pattern match. (Unicode)
StrCSpnW

Searches a string for the first occurrence of any of a group of characters. The search method is case-sensitive, and the terminating NULL character is included within the search pattern match. (Unicode)
StrDupA

Duplicates a string. (ANSI)
StrDupW

Duplicates a string. (Unicode)
StrFormatByteSize64A

Converts a numeric value into a string that represents the number expressed as a size value in bytes, kilobytes, megabytes, or gigabytes, depending on the size.
StrFormatByteSizeA

Converts a numeric value into a string that represents the number expressed as a size value in bytes, kilobytes, megabytes, or gigabytes, depending on the size. Differs from StrFormatByteSizeW in one parameter type.
StrFormatByteSizeEx

Converts a numeric value into a string that represents the number in bytes, kilobytes, megabytes, or gigabytes, depending on the size.
StrFormatByteSizeW

Converts a numeric value into a string that represents the number expressed as a size value in bytes, kilobytes, megabytes, or gigabytes, depending on the size. Differs from StrFormatByteSizeA in one parameter type.
StrFormatKBSizeA

Converts a numeric value into a string that represents the number expressed as a size value in kilobytes. (ANSI)
StrFormatKBSizeW

Converts a numeric value into a string that represents the number expressed as a size value in kilobytes. (Unicode)
StrFromTimeIntervalA

Converts a time interval, specified in milliseconds, to a string. (ANSI)
StrFromTimeIntervalW

Converts a time interval, specified in milliseconds, to a string. (Unicode)
StrIsIntlEqualA

Compares a specified number of characters from the beginning of two strings to determine if they are equal. (ANSI)
StrIsIntlEqualW

Compares a specified number of characters from the beginning of two strings to determine if they are equal. (Unicode)
StrNCatA

Appends a specified number of characters from the beginning of one string to the end of another. (ANSI)
StrNCatW

Appends a specified number of characters from the beginning of one string to the end of another. (Unicode)
StrPBrkA

Searches a string for the first occurrence of a character contained in a specified buffer. This search does not include the terminating null character. (ANSI)
StrPBrkW

Searches a string for the first occurrence of a character contained in a specified buffer. This search does not include the terminating null character. (Unicode)
StrRChrA

Searches a string for the last occurrence of a specified character. The comparison is case-sensitive. (ANSI)
StrRChrIA

Searches a string for the last occurrence of a specified character. The comparison is not case-sensitive. (ANSI)
StrRChrIW

Searches a string for the last occurrence of a specified character. The comparison is not case-sensitive. (Unicode)
StrRChrW

Searches a string for the last occurrence of a specified character. The comparison is case-sensitive. (Unicode)
StrRetToBSTR

Accepts a STRRET structure returned by IShellFolder::GetDisplayNameOf that contains or points to a string, and returns that string as a BSTR.
StrRetToBufA

Converts an STRRET structure returned by IShellFolder::GetDisplayNameOf to a string, and places the result in a buffer. (ANSI)
StrRetToBufW

Converts an STRRET structure returned by IShellFolder::GetDisplayNameOf to a string, and places the result in a buffer. (Unicode)
StrRetToStrA

Takes an STRRET structure returned by IShellFolder::GetDisplayNameOf and returns a pointer to an allocated string containing the display name. (ANSI)
StrRetToStrW

Takes an STRRET structure returned by IShellFolder::GetDisplayNameOf and returns a pointer to an allocated string containing the display name. (Unicode)
StrRStrIA

Searches for the last occurrence of a specified substring within a string. The comparison is not case-sensitive. (ANSI)
StrRStrIW

Searches for the last occurrence of a specified substring within a string. The comparison is not case-sensitive. (Unicode)
StrSpnA

Obtains the length of a substring within a string that consists entirely of characters contained in a specified buffer. (ANSI)
StrSpnW

Obtains the length of a substring within a string that consists entirely of characters contained in a specified buffer. (Unicode)
StrStrA

Finds the first occurrence of a substring within a string. The comparison is case-sensitive. (StrStrA)
StrStrIA

Finds the first occurrence of a substring within a string. The comparison is not case-sensitive. (ANSI)
StrStrIW

Finds the first occurrence of a substring within a string. The comparison is not case-sensitive. (Unicode)
StrStrNIW

Finds the first occurrence of a substring within a string. The comparison is case-insensitive.
StrStrNW

Finds the first occurrence of a substring within a string. The comparison is case-sensitive. (StrStrNW)
StrStrW

Finds the first occurrence of a substring within a string. The comparison is case-sensitive. (StrStrW)
StrToInt64ExA

Converts a string representing a decimal or hexadecimal value to a 64-bit integer. (ANSI)
StrToInt64ExW

Converts a string representing a decimal or hexadecimal value to a 64-bit integer. (Unicode)
StrToIntA

Converts a string that represents a decimal value to an integer. The StrToLong macro is identical to this function. (ANSI)
StrToIntExA

Converts a string representing a decimal or hexadecimal number to an integer. (ANSI)
StrToIntExW

Converts a string representing a decimal or hexadecimal number to an integer. (Unicode)
StrToIntW

Converts a string that represents a decimal value to an integer. The StrToLong macro is identical to this function. (Unicode)
StrTrimA

Removes specified leading and trailing characters from a string. (ANSI)
StrTrimW

Removes specified leading and trailing characters from a string. (Unicode)
UrlApplySchemeA

Determines a scheme for a specified URL string, and returns a string with an appropriate prefix. (ANSI)
UrlApplySchemeW

Determines a scheme for a specified URL string, and returns a string with an appropriate prefix. (Unicode)
UrlCanonicalizeA

Converts a URL string into canonical form. (ANSI)
UrlCanonicalizeW

Converts a URL string into canonical form. (Unicode)
UrlCombineA

When provided with a relative URL and its base, returns a URL in canonical form. (ANSI)
UrlCombineW

When provided with a relative URL and its base, returns a URL in canonical form. (Unicode)
UrlCompareA

Makes a case-sensitive comparison of two URL strings. (ANSI)
UrlCompareW

Makes a case-sensitive comparison of two URL strings. (Unicode)
UrlCreateFromPathA

Converts a Microsoft MS-DOS path to a canonicalized URL. (ANSI)
UrlCreateFromPathW

Converts a Microsoft MS-DOS path to a canonicalized URL. (Unicode)
UrlEscapeA

Converts characters or surrogate pairs in a URL that might be altered during transport across the Internet ("unsafe" characters) into their corresponding escape sequences. (ANSI)
UrlEscapeSpaces

A macro that converts space characters into their corresponding escape sequence.
UrlEscapeW

Converts characters or surrogate pairs in a URL that might be altered during transport across the Internet ("unsafe" characters) into their corresponding escape sequences. (Unicode)
UrlFixupW

UrlFixupW may be altered or unavailable.
UrlGetLocationA

Retrieves the location from a URL. (ANSI)
UrlGetLocationW

Retrieves the location from a URL. (Unicode)
UrlGetPartA

Accepts a URL string and returns a specified part of that URL. (ANSI)
UrlGetPartW

Accepts a URL string and returns a specified part of that URL. (Unicode)
UrlHashA

Hashes a URL string. (ANSI)
UrlHashW

Hashes a URL string. (Unicode)
UrlIsA

Tests whether a URL is a specified type. (ANSI)
UrlIsFileUrlA

Tests a URL to determine if it is a file URL. (ANSI)
UrlIsFileUrlW

Tests a URL to determine if it is a file URL. (Unicode)
UrlIsNoHistoryA

Returns whether a URL is a URL that browsers typically do not include in navigation history. (ANSI)
UrlIsNoHistoryW

Returns whether a URL is a URL that browsers typically do not include in navigation history. (Unicode)
UrlIsOpaqueA

Returns whether a URL is opaque. (ANSI)
UrlIsOpaqueW

Returns whether a URL is opaque. (Unicode)
UrlIsW

Tests whether a URL is a specified type. (Unicode)
UrlUnescapeA

Converts escape sequences back into ordinary characters. (ANSI)
UrlUnescapeInPlace

Converts escape sequences back into ordinary characters and overwrites the original string.
UrlUnescapeW

Converts escape sequences back into ordinary characters. (Unicode)
WhichPlatform

WhichPlatform may be altered or unavailable.
wnsprintfA

Takes a variable-length argument list and returns the values of the arguments as a printf-style formatted string. (ANSI)
wnsprintfW

Takes a variable-length argument list and returns the values of the arguments as a printf-style formatted string. (Unicode)
wvnsprintfA

Takes a list of arguments and returns the values of the arguments as a printf-style formatted string. (ANSI)
wvnsprintfW

Takes a list of arguments and returns the values of the arguments as a printf-style formatted string. (Unicode)

Callback functions

 
DLLGETVERSIONPROC

Implemented by many of the Windows Shell DLLs to allow applications to obtain DLL-specific version information.

Structures

 
DLLVERSIONINFO

Receives DLL-specific version information.
DLLVERSIONINFO2

Receives DLL-specific version information. It is used with the DllGetVersion function.
PARSEDURLA

Used by the ParseURL function to return the parsed URL. (ANSI)
PARSEDURLW

Used by the ParseURL function to return the parsed URL. (Unicode)
QITAB

Used by the QISearch function to describe a single interface.

Enumerations

 
ASSOCDATA

Used by IQueryAssociations::GetData to define the type of data that is to be returned.
ASSOCKEY

Specifies the type of key to be returned by IQueryAssociations::GetKey.
ASSOCSTR

Used by IQueryAssociations::GetString to define the type of string that is to be returned.
FILETYPEATTRIBUTEFLAGS

Indicates FILETYPEATTRIBUTEFLAGS constants that are used in the EditFlags value of a file association PROGID registry key.
SHGLOBALCOUNTER

Identifiers for various global counters, or shared variables. Each global counter can be incremented or decremented using SHGlobalCounterIncrement and SHGlobalCounterDecrement.
SHREGDEL_FLAGS

Provides a set of values that indicate from which base key an item will be deleted.
SHREGENUM_FLAGS

Provides a set of values that indicate the base key that will be used for an enumeration.
tagSFBS_FLAGS

Specifies how the StrFormatByteSizeEx function should handle rounding of undisplayed digits.
URL_SCHEME

Used to specify URL schemes.