ReactOS 0.4.17-dev-357-ga8f14ff
shlwapi.h File Reference
#include <objbase.h>
#include <shtypes.h>
#include <pshpack8.h>
#include <poppack.h>
Include dependency graph for shlwapi.h:

Go to the source code of this file.

Classes

struct  tagPARSEDURLA
 
struct  tagPARSEDURLW
 
struct  _DllVersionInfo
 
struct  _DLLVERSIONINFO2
 
struct  QITAB
 

Macros

#define WINSHLWAPI   DECLSPEC_IMPORT
 
#define GetAcceptLanguages   WINELIB_NAME_AW(GetAcceptLanguages)
 
#define SHDeleteEmptyKey   WINELIB_NAME_AW(SHDeleteEmptyKey)
 
#define SHDeleteKey   WINELIB_NAME_AW(SHDeleteKey)
 
#define SHDeleteValue   WINELIB_NAME_AW(SHDeleteValue)
 
#define SHGetValue   WINELIB_NAME_AW(SHGetValue)
 
#define SHSetValue   WINELIB_NAME_AW(SHSetValue)
 
#define SHQueryValueEx   WINELIB_NAME_AW(SHQueryValueEx)
 
#define SHEnumKeyEx   WINELIB_NAME_AW(SHEnumKeyEx)
 
#define SHEnumValue   WINELIB_NAME_AW(SHEnumValue)
 
#define SHQueryInfoKey   WINELIB_NAME_AW(SHQueryInfoKey)
 
#define SHRegGetPath   WINELIB_NAME_AW(SHRegGetPath)
 
#define SHRegSetPath   WINELIB_NAME_AW(SHRegSetPath)
 
#define SHCopyKey   WINELIB_NAME_AW(SHCopyKey)
 
#define SRRF_RT_REG_NONE   0x1
 
#define SRRF_RT_REG_SZ   0x2
 
#define SRRF_RT_REG_EXPAND_SZ   0x4
 
#define SRRF_RT_REG_BINARY   0x8
 
#define SRRF_RT_REG_DWORD   0x10
 
#define SRRF_RT_REG_MULTI_SZ   0x20
 
#define SRRF_RT_REG_QWORD   0x40
 
#define SRRF_RT_DWORD   (SRRF_RT_REG_BINARY|SRRF_RT_REG_DWORD)
 
#define SRRF_RT_QWORD   (SRRF_RT_REG_BINARY|SRRF_RT_REG_QWORD)
 
#define SRRF_RT_ANY   0xffff
 
#define SRRF_RM_ANY   0
 
#define SRRF_RM_NORMAL   0x10000
 
#define SRRF_RM_SAFE   0x20000
 
#define SRRF_RM_SAFENETWORK   0x40000
 
#define SRRF_NOEXPAND   0x10000000
 
#define SRRF_ZEROONFAILURE   0x20000000
 
#define SRRF_NOVIRT   0x40000000
 
#define SHRegGetValue   WINELIB_NAME_AW(SHRegGetValue)
 
#define SHDeleteOrphanKey   WINELIB_NAME_AW(SHDeleteOrphanKey)
 
#define SHREGSET_HKCU   0x1 /* Apply to HKCU if empty */
 
#define SHREGSET_FORCE_HKCU   0x2 /* Always apply to HKCU */
 
#define SHREGSET_HKLM   0x4 /* Apply to HKLM if empty */
 
#define SHREGSET_FORCE_HKLM   0x8 /* Always apply to HKLM */
 
#define SHREGSET_DEFAULT   (SHREGSET_FORCE_HKCU | SHREGSET_HKLM)
 
#define SHRegCreateUSKey   WINELIB_NAME_AW(SHRegCreateUSKey)
 
#define SHRegOpenUSKey   WINELIB_NAME_AW(SHRegOpenUSKey)
 
#define SHRegQueryUSValue   WINELIB_NAME_AW(SHRegQueryUSValue)
 
#define SHRegWriteUSValue   WINELIB_NAME_AW(SHRegWriteUSValue)
 
#define SHRegDeleteUSValue   WINELIB_NAME_AW(SHRegDeleteUSValue)
 
#define SHRegDeleteEmptyUSKey   WINELIB_NAME_AW(SHRegDeleteEmptyUSKey)
 
#define SHRegEnumUSKey   WINELIB_NAME_AW(SHRegEnumUSKey)
 
#define SHRegEnumUSValue   WINELIB_NAME_AW(SHRegEnumUSValue)
 
#define SHRegQueryInfoUSKey   WINELIB_NAME_AW(SHRegQueryInfoUSKey)
 
#define SHRegGetUSValue   WINELIB_NAME_AW(SHRegGetUSValue)
 
#define SHRegSetUSValue   WINELIB_NAME_AW(SHRegSetUSValue)
 
#define SHRegGetBoolUSValue   WINELIB_NAME_AW(SHRegGetBoolUSValue)
 
#define INTERFACE   IQueryAssociations
 
#define IQueryAssociations_QueryInterface(p, a, b)   (p)->lpVtbl->QueryInterface(p,a,b)
 
#define IQueryAssociations_AddRef(p)   (p)->lpVtbl->AddRef(p)
 
#define IQueryAssociations_Release(p)   (p)->lpVtbl->Release(p)
 
#define IQueryAssociations_Init(p, a, b, c, d)   (p)->lpVtbl->Init(p,a,b,c,d)
 
#define IQueryAssociations_GetString(p, a, b, c, d, e)   (p)->lpVtbl->GetString(p,a,b,c,d,e)
 
#define IQueryAssociations_GetKey(p, a, b, c, d)   (p)->lpVtbl->GetKey(p,a,b,c,d)
 
#define IQueryAssociations_GetData(p, a, b, c, d, e)   (p)->lpVtbl->GetData(p,a,b,c,d,e)
 
#define IQueryAssociations_GetEnum(p, a, b, c, d, e)   (p)->lpVtbl->GetEnum(p,a,b,c,d,e)
 
#define AssocQueryString   WINELIB_NAME_AW(AssocQueryString)
 
#define AssocQueryStringByKey   WINELIB_NAME_AW(AssocQueryStringByKey)
 
#define AssocQueryKey   WINELIB_NAME_AW(AssocQueryKey)
 
#define GCT_INVALID   0x0
 
#define GCT_LFNCHAR   0x1
 
#define GCT_SHORTCHAR   0x2
 
#define GCT_WILD   0x4
 
#define GCT_SEPARATOR   0x8
 
#define PathAddBackslash   WINELIB_NAME_AW(PathAddBackslash)
 
#define PathAddExtension   WINELIB_NAME_AW(PathAddExtension)
 
#define PathAppend   WINELIB_NAME_AW(PathAppend)
 
#define PathBuildRoot   WINELIB_NAME_AW(PathBuiltRoot)
 
#define PathCanonicalize   WINELIB_NAME_AW(PathCanonicalize)
 
#define PathCombine   WINELIB_NAME_AW(PathCombine)
 
#define PathCompactPath   WINELIB_NAME_AW(PathCompactPath)
 
#define PathCompactPathEx   WINELIB_NAME_AW(PathCompactPathEx)
 
#define PathCommonPrefix   WINELIB_NAME_AW(PathCommonPrefix)
 
#define PathCreateFromUrl   WINELIB_NAME_AW(PathCreateFromUrl)
 
#define PathFileExists   WINELIB_NAME_AW(PathFileExists)
 
#define PathFileExistsAndAttributes   WINELIB_NAME_AW(PathFileExistsAndAttributes)
 
#define PathFindExtension   WINELIB_NAME_AW(PathFindExtension)
 
#define PathFindFileName   WINELIB_NAME_AW(PathFindFileName)
 
#define PathFindNextComponent   WINELIB_NAME_AW(PathFindNextComponent)
 
#define PathFindOnPath   WINELIB_NAME_AW(PathFindOnPath)
 
#define PathGetArgs   WINELIB_NAME_AW(PathGetArgs)
 
#define PathGetCharType   WINELIB_NAME_AW(PathGetCharType)
 
#define PathGetDriveNumber   WINELIB_NAME_AW(PathGetDriveNumber)
 
#define PathIsDirectory   WINELIB_NAME_AW(PathIsDirectory)
 
#define PathIsDirectoryEmpty   WINELIB_NAME_AW(PathIsDirectoryEmpty)
 
#define PathIsFileSpec   WINELIB_NAME_AW(PathIsFileSpec)
 
#define PathIsPrefix   WINELIB_NAME_AW(PathIsPrefix)
 
#define PathIsRelative   WINELIB_NAME_AW(PathIsRelative)
 
#define PathIsRoot   WINELIB_NAME_AW(PathIsRoot)
 
#define PathIsSameRoot   WINELIB_NAME_AW(PathIsSameRoot)
 
#define PathIsUNC   WINELIB_NAME_AW(PathIsUNC)
 
#define PathIsUNCServer   WINELIB_NAME_AW(PathIsUNCServer)
 
#define PathIsUNCServerShare   WINELIB_NAME_AW(PathIsUNCServerShare)
 
#define PathIsContentType   WINELIB_NAME_AW(PathIsContentType)
 
#define PathIsURL   WINELIB_NAME_AW(PathIsURL)
 
#define PathMakePretty   WINELIB_NAME_AW(PathMakePretty)
 
#define PathMatchSpec   WINELIB_NAME_AW(PathMatchSpec)
 
#define PMSF_NORMAL   0x00000000
 
#define PMSF_MULTIPLE   0x00000001
 
#define PMSF_DONT_STRIP_SPACES   0x00010000
 
#define PathMatchSpecEx   WINELIB_NAME_AW(PathMatchSpecEx)
 
#define PathParseIconLocation   WINELIB_NAME_AW(PathParseIconLocation)
 
#define PathQuoteSpaces   WINELIB_NAME_AW(PathQuoteSpaces)
 
#define PathRelativePathTo   WINELIB_NAME_AW(PathRelativePathTo)
 
#define PathRemoveArgs   WINELIB_NAME_AW(PathRemoveArgs)
 
#define PathRemoveBackslash   WINELIB_NAME_AW(PathRemoveBackslash)
 
#define PathRemoveBlanks   WINELIB_NAME_AW(PathRemoveBlanks)
 
#define PathRemoveExtension   WINELIB_NAME_AW(PathRemoveExtension)
 
#define PathRemoveFileSpec   WINELIB_NAME_AW(PathRemoveFileSpec)
 
#define PathRenameExtension   WINELIB_NAME_AW(PathRenameExtension)
 
#define PathSearchAndQualify   WINELIB_NAME_AW(PathSearchAndQualify)
 
#define PathSetDlgItemPath   WINELIB_NAME_AW(PathSetDlgItemPath)
 
#define PathSkipRoot   WINELIB_NAME_AW(PathSkipRoot)
 
#define PathStripPath   WINELIB_NAME_AW(PathStripPath)
 
#define PathStripToRoot   WINELIB_NAME_AW(PathStripToRoot)
 
#define PathUnquoteSpaces   WINELIB_NAME_AW(PathUnquoteSpaces)
 
#define PathMakeSystemFolder   WINELIB_NAME_AW(PathMakeSystemFolder)
 
#define PathUnmakeSystemFolder   WINELIB_NAME_AW(PathUnmakeSystemFolder)
 
#define PathIsSystemFolder   WINELIB_NAME_AW(PathIsSystemFolder)
 
#define PathIsNetworkPath   WINELIB_NAME_AW(PathIsNetworkPath)
 
#define PathIsLFNFileSpec   WINELIB_NAME_AW(PathIsLFNFileSpec)
 
#define PathFindSuffixArray   WINELIB_NAME_AW(PathFindSuffixArray)
 
#define PathUndecorate   WINELIB_NAME_AW(PathUndecorate)
 
#define PathUnExpandEnvStrings   WINELIB_NAME_AW(PathUnExpandEnvStrings)
 
#define URL_PARTFLAG_KEEPSCHEME   0x00000001
 
#define URL_APPLY_FORCEAPPLY   0x00000008
 
#define URL_APPLY_GUESSFILE   0x00000004
 
#define URL_APPLY_GUESSSCHEME   0x00000002
 
#define URL_APPLY_DEFAULT   0x00000001
 
#define URL_WININET_COMPATIBILITY   0x80000000
 
#define URL_PLUGGABLE_PROTOCOL   0x40000000
 
#define URL_ESCAPE_UNSAFE   0x20000000
 
#define URL_UNESCAPE   0x10000000
 
#define URL_DONT_SIMPLIFY   0x08000000
 
#define URL_ESCAPE_SPACES_ONLY   0x04000000
 
#define URL_DONT_ESCAPE_EXTRA_INFO   0x02000000
 
#define URL_INTERNAL_PATH   0x00800000
 
#define URL_UNESCAPE_HIGH_ANSI_ONLY   0x00400000
 
#define URL_CONVERT_IF_DOSPATH   0x00200000
 
#define URL_UNESCAPE_INPLACE   0x00100000
 
#define URL_ESCAPE_ASCII_URI_COMPONENT   0x00080000
 
#define URL_ESCAPE_AS_UTF8   0x00040000
 
#define URL_DONT_UNESCAPE   0x00020000
 
#define URL_FILE_USE_PATHURL   0x00010000
 
#define URL_ESCAPE_SEGMENT_ONLY   0x00002000
 
#define URL_ESCAPE_PERCENT   0x00001000
 
#define URL_BROWSER_MODE   URL_DONT_ESCAPE_EXTRA_INFO
 
#define URL_DONT_UNESCAPE_EXTRA_INFO   URL_DONT_ESCAPE_EXTRA_INFO
 
#define URL_ESCAPE_URI_COMPONENT   (URL_ESCAPE_ASCII_URI_COMPONENT | URL_ESCAPE_AS_UTF8)
 
#define URL_NO_META   URL_DONT_SIMPLIFY
 
#define URL_UNESCAPE_AS_UTF8   URL_ESCAPE_AS_UTF8
 
#define URL_UNESCAPE_URI_COMPONENT   URL_UNESCAPE_AS_UTF8
 
#define UrlApplyScheme   WINELIB_NAME_AW(UrlApplyScheme)
 
#define UrlCanonicalize   WINELIB_NAME_AW(UrlCanonicalize)
 
#define UrlCombine   WINELIB_NAME_AW(UrlCombine)
 
#define UrlCompare   WINELIB_NAME_AW(UrlCompare)
 
#define UrlEscape   WINELIB_NAME_AW(UrlEscape)
 
#define UrlEscapeSpacesA(x, y, z)
 
#define UrlEscapeSpacesW(x, y, z)
 
#define UrlEscapeSpaces   WINELIB_NAME_AW(UrlEscapeSpaces)
 
#define UrlGetLocation   WINELIB_NAME_AW(UrlGetLocation)
 
#define UrlGetPart   WINELIB_NAME_AW(UrlGetPart)
 
#define UrlHash   WINELIB_NAME_AW(UrlHash)
 
#define UrlIs   WINELIB_NAME_AW(UrlIs)
 
#define UrlIsNoHistory   WINELIB_NAME_AW(UrlIsNoHistory)
 
#define UrlIsOpaque   WINELIB_NAME_AW(UrlIsOpaque)
 
#define UrlIsFileUrlA(x)   UrlIsA(x, URLIS_FILEURL)
 
#define UrlIsFileUrlW(x)   UrlIsW(x, URLIS_FILEURL)
 
#define UrlIsFileUrl   WINELIB_NAME_AW(UrlIsFileUrl)
 
#define UrlUnescape   WINELIB_NAME_AW(UrlUnescape)
 
#define UrlUnescapeInPlaceA(x, y)
 
#define UrlUnescapeInPlaceW(x, y)
 
#define UrlUnescapeInPlace   WINELIB_NAME_AW(UrlUnescapeInPlace)
 
#define UrlCreateFromPath   WINELIB_NAME_AW(UrlCreateFromPath)
 
#define ParseURL   WINELIB_NAME_AW(ParseUrl)
 
#define STIF_DEFAULT   __MSABI_LONG(0x0)
 
#define STIF_SUPPORT_HEX   __MSABI_LONG(0x1)
 
#define ChrCmpI   WINELIB_NAME_AW(ChrCmpI)
 
#define StrCSpn   WINELIB_NAME_AW(StrCSpn)
 
#define StrCSpnI   WINELIB_NAME_AW(StrCSpnI)
 
#define StrCatA   lstrcatA
 
#define StrCat   WINELIB_NAME_AW(StrCat)
 
#define StrCatBuff   WINELIB_NAME_AW(StrCatBuff)
 
#define StrChr   WINELIB_NAME_AW(StrChr)
 
#define StrChrI   WINELIB_NAME_AW(StrChrI)
 
#define StrCmpA   lstrcmpA
 
#define StrCmp   WINELIB_NAME_AW(StrCmp)
 
#define StrCmpIA   lstrcmpiA
 
#define StrCmpI   WINELIB_NAME_AW(StrCmpI)
 
#define StrCpyA   lstrcpyA
 
#define StrCpy   WINELIB_NAME_AW(StrCpy)
 
#define StrCpyNA   lstrcpynA
 
#define StrCpyN   WINELIB_NAME_AW(StrCpyN)
 
#define StrNCpy   WINELIB_NAME_AW(StrCpyN)
 
#define StrCmpN   WINELIB_NAME_AW(StrCmpN)
 
#define StrNCmp   WINELIB_NAME_AW(StrCmpN)
 
#define StrCmpNI   WINELIB_NAME_AW(StrCmpNI)
 
#define StrNCmpI   WINELIB_NAME_AW(StrCmpNI)
 
#define StrDup   WINELIB_NAME_AW(StrDup)
 
#define SHStrDup   WINELIB_NAME_AW(SHStrDup)
 
#define StrFormatByteSize   StrFormatByteSize64A
 
#define StrFormatKBSize   WINELIB_NAME_AW(StrFormatKBSize)
 
#define StrFromTimeInterval   WINELIB_NAME_AW(StrFromTimeInterval)
 
#define StrIsIntlEqual   WINELIB_NAME_AW(StrIsIntlEqual)
 
#define StrIntlEqNA(a, b, c)   StrIsIntlEqualA(TRUE,a,b,c)
 
#define StrIntlEqNW(a, b, c)   StrIsIntlEqualW(TRUE,a,b,c)
 
#define StrIntlEqNIA(a, b, c)   StrIsIntlEqualA(FALSE,a,b,c)
 
#define StrIntlEqNIW(a, b, c)   StrIsIntlEqualW(FALSE,a,b,c)
 
#define StrNCat   WINELIB_NAME_AW(StrNCat)
 
#define StrCatN   WINELIB_NAME_AW(StrNCat)
 
#define StrPBrk   WINELIB_NAME_AW(StrPBrk)
 
#define StrRChr   WINELIB_NAME_AW(StrRChr)
 
#define StrRChrI   WINELIB_NAME_AW(StrRChrI)
 
#define StrRStrI   WINELIB_NAME_AW(StrRStrI)
 
#define StrSpn   WINELIB_NAME_AW(StrSpn)
 
#define StrStr   WINELIB_NAME_AW(StrStr)
 
#define StrStrI   WINELIB_NAME_AW(StrStrI)
 
#define StrToInt   WINELIB_NAME_AW(StrToInt)
 
#define StrToLong   WINELIB_NAME_AW(StrToInt)
 
#define StrToIntEx   WINELIB_NAME_AW(StrToIntEx)
 
#define StrToIntEx64   WINELIB_NAME_AW(StrToIntEx64)
 
#define StrTrim   WINELIB_NAME_AW(StrTrim)
 
#define wnsprintf   WINELIB_NAME_AW(wnsprintf)
 
#define IntlStrEqWorker   WINELIB_NAME_AW(IntlStrEqWorker)
 
#define IntlStrEqNA(s1, s2, n)   IntlStrEqWorkerA(TRUE,s1,s2,n)
 
#define IntlStrEqNW(s1, s2, n)   IntlStrEqWorkerW(TRUE,s1,s2,n)
 
#define IntlStrEqN   WINELIB_NAME_AW(IntlStrEqN)
 
#define IntlStrEqNIA(s1, s2, n)   IntlStrEqWorkerA(FALSE,s1,s2,n)
 
#define IntlStrEqNIW(s1, s2, n)   IntlStrEqWorkerW(FALSE,s1,s2,n)
 
#define IntlStrEqNI   WINELIB_NAME_AW(IntlStrEqNI)
 
#define StrRetToStr   WINELIB_NAME_AW(StrRetToStr)
 
#define StrRetToBuf   WINELIB_NAME_AW(StrRetToBuf)
 
#define IsCharSpace   WINELIB_NAME_AW(IsCharSpace)
 
#define SHOpenRegStream   WINELIB_NAME_AW(SHOpenRegStream2) /* Uses version 2 */
 
#define SHOpenRegStream2   WINELIB_NAME_AW(SHOpenRegStream2)
 
#define SHCreateStreamOnFile   WINELIB_NAME_AW(SHCreateStreamOnFile)
 
#define SHACF_DEFAULT   0x00000000
 
#define SHACF_FILESYSTEM   0x00000001
 
#define SHACF_URLHISTORY   0x00000002
 
#define SHACF_URLMRU   0x00000004
 
#define SHACF_URLALL   (SHACF_URLHISTORY|SHACF_URLMRU)
 
#define SHACF_USETAB   0x00000008
 
#define SHACF_FILESYS_ONLY   0x00000010
 
#define SHACF_FILESYS_DIRS   0x00000020
 
#define SHACF_AUTOSUGGEST_FORCE_ON   0x10000000
 
#define SHACF_AUTOSUGGEST_FORCE_OFF   0x20000000
 
#define SHACF_AUTOAPPEND_FORCE_ON   0x40000000
 
#define SHACF_AUTOAPPEND_FORCE_OFF   0x80000000
 
#define DLLVER_PLATFORM_WINDOWS   0x01 /* Win9x */
 
#define DLLVER_PLATFORM_NT   0x02 /* WinNT */
 
#define DLLVER_MAJOR_MASK   0xFFFF000000000000
 
#define DLLVER_MINOR_MASK   0x0000FFFF00000000
 
#define DLLVER_BUILD_MASK   0x00000000FFFF0000
 
#define DLLVER_QFE_MASK   0x000000000000FFFF
 
#define MAKEDLLVERULL(mjr, mnr, bld, qfe)
 
#define OS_WIN32SORGREATER   0x00
 
#define OS_NT   0x01
 
#define OS_WIN95ORGREATER   0x02
 
#define OS_NT4ORGREATER   0x03
 
#define OS_WIN2000ORGREATER_ALT   0x04
 
#define OS_WIN98ORGREATER   0x05
 
#define OS_WIN98_GOLD   0x06
 
#define OS_WIN2000ORGREATER   0x07
 
#define OS_WIN2000PRO   0x08
 
#define OS_WIN2000SERVER   0x09
 
#define OS_WIN2000ADVSERVER   0x0A
 
#define OS_WIN2000DATACENTER   0x0B
 
#define OS_WIN2000TERMINAL   0x0C
 
#define OS_EMBEDDED   0x0D
 
#define OS_TERMINALCLIENT   0x0E
 
#define OS_TERMINALREMOTEADMIN   0x0F
 
#define OS_WIN95_GOLD   0x10
 
#define OS_MEORGREATER   0x11
 
#define OS_XPORGREATER   0x12
 
#define OS_HOME   0x13
 
#define OS_PROFESSIONAL   0x14
 
#define OS_DATACENTER   0x15
 
#define OS_ADVSERVER   0x16
 
#define OS_SERVER   0x17
 
#define OS_TERMINALSERVER   0x18
 
#define OS_PERSONALTERMINALSERVER   0x19
 
#define OS_FASTUSERSWITCHING   0x1A
 
#define OS_WELCOMELOGONUI   0x1B
 
#define OS_DOMAINMEMBER   0x1C
 
#define OS_ANYSERVER   0x1D
 
#define OS_WOW6432   0x1E
 
#define OS_WEBSERVER   0x1F
 
#define OS_SMALLBUSINESSSERVER   0x20
 
#define OS_TABLETPC   0x21
 
#define OS_SERVERADMINUI   0x22
 
#define OS_MEDIACENTER   0x23
 
#define OS_APPLIANCE   0x24
 
#define TPS_EXECUTEIO   0x00000001
 
#define TPS_LONGEXECTIME   0x00000008
 
#define FDTF_SHORTTIME   0x00000001
 
#define FDTF_SHORTDATE   0x00000002
 
#define FDTF_DEFAULT   (FDTF_SHORTDATE | FDTF_SHORTTIME)
 
#define FDTF_LONGDATE   0x00000004
 
#define FDTF_LONGTIME   0x00000008
 
#define FDTF_RELATIVE   0x00000010
 
#define FDTF_LTRDATE   0x00000100
 
#define FDTF_RTLDATE   0x00000200
 
#define FDTF_NOAUTOREADINGORDER   0x00000400
 
#define PLATFORM_UNKNOWN   0
 
#define PLATFORM_IE3   1
 
#define PLATFORM_BROWSERONLY   1
 
#define PLATFORM_INTEGRATED   2
 
#define SHGVSPB_PERUSER   0x00000001
 
#define SHGVSPB_ALLUSERS   0x00000002
 
#define SHGVSPB_PERFOLDER   0x00000004
 
#define SHGVSPB_ALLFOLDERS   0x00000008
 
#define SHGVSPB_INHERIT   0x00000010
 
#define SHGVSPB_ROAM   0x00000020
 
#define SHGVSPB_NOAUTODEFAULTS   0x80000000
 
#define SHGVSPB_FOLDER   (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER)
 
#define SHGVSPB_FOLDERNODEFAULTS   (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER | SHGVSPB_NOAUTODEFAULTS)
 
#define SHGVSPB_USERDEFAULTS   (SHGVSPB_PERUSER | SHGVSPB_ALLFOLDERS)
 
#define SHGVSPB_GLOBALDEFAULTS   (SHGVSPB_ALLUSERS | SHGVSPB_ALLFOLDERS)
 
#define ILMM_IE4   0
 

Typedefs

typedef INT SRRF
 
typedef HANDLE HUSKEY
 
typedef HUSKEYPHUSKEY
 
typedef DWORD ASSOCF
 
typedef struct IQueryAssociations * LPQUERYASSOCIATIONS
 
typedef struct tagPARSEDURLA PARSEDURLA
 
typedef struct tagPARSEDURLAPPARSEDURLA
 
typedef struct tagPARSEDURLW PARSEDURLW
 
typedef struct tagPARSEDURLWPPARSEDURLW
 
typedef struct _DllVersionInfo DLLVERSIONINFO
 
typedef HRESULT(CALLBACKDLLGETVERSIONPROC) (DLLVERSIONINFO *)
 
typedef struct _DLLVERSIONINFO2 DLLVERSIONINFO2
 
typedef struct QITABLPQITAB
 

Enumerations

enum  SHREGDEL_FLAGS {
  SHREGDEL_DEFAULT = 0 , SHREGDEL_HKCU = 0x1 , SHREGDEL_HKLM = 0x10 , SHREGDEL_BOTH = SHREGDEL_HKLM | SHREGDEL_HKCU ,
  SHREGDEL_DEFAULT = 0 , SHREGDEL_HKCU = 0x1 , SHREGDEL_HKLM = 0x10 , SHREGDEL_BOTH = SHREGDEL_HKLM | SHREGDEL_HKCU
}
 
enum  SHREGENUM_FLAGS {
  SHREGENUM_DEFAULT = 0 , SHREGENUM_HKCU = 0x1 , SHREGENUM_HKLM = 0x10 , SHREGENUM_BOTH = SHREGENUM_HKLM | SHREGENUM_HKCU ,
  SHREGENUM_DEFAULT = 0 , SHREGENUM_HKCU = 0x1 , SHREGENUM_HKLM = 0x10 , SHREGENUM_BOTH = SHREGENUM_HKLM | SHREGENUM_HKCU
}
 
enum  {
  ASSOCF_NONE = 0x0000 , ASSOCF_INIT_NOREMAPCLSID = 0x0001 , ASSOCF_INIT_BYEXENAME = 0x0002 , ASSOCF_OPEN_BYEXENAME = 0x0002 ,
  ASSOCF_INIT_DEFAULTTOSTAR = 0x0004 , ASSOCF_INIT_DEFAULTTOFOLDER = 0x0008 , ASSOCF_NOUSERSETTINGS = 0x0010 , ASSOCF_NOTRUNCATE = 0x0020 ,
  ASSOCF_VERIFY = 0x0040 , ASSOCF_REMAPRUNDLL = 0x0080 , ASSOCF_NOFIXUPS = 0x0100 , ASSOCF_IGNOREBASECLASS = 0x0200 ,
  ASSOCF_INIT_IGNOREUNKNOWN = 0x0400 , ASSOCF_INIT_FIXED_PROGID = 0x0800 , ASSOCF_IS_PROTOCOL = 0x1000 , ASSOCF_INIT_FOR_FILE = 0x2000
}
 
enum  ASSOCSTR {
  ASSOCSTR_COMMAND = 1 , ASSOCSTR_EXECUTABLE , ASSOCSTR_FRIENDLYDOCNAME , ASSOCSTR_FRIENDLYAPPNAME ,
  ASSOCSTR_NOOPEN , ASSOCSTR_SHELLNEWVALUE , ASSOCSTR_DDECOMMAND , ASSOCSTR_DDEIFEXEC ,
  ASSOCSTR_DDEAPPLICATION , ASSOCSTR_DDETOPIC , ASSOCSTR_INFOTIP , ASSOCSTR_QUICKTIP ,
  ASSOCSTR_TILEINFO , ASSOCSTR_CONTENTTYPE , ASSOCSTR_DEFAULTICON , ASSOCSTR_SHELLEXTENSION ,
  ASSOCSTR_DROPTARGET , ASSOCSTR_DELEGATEEXECUTE , ASSOCSTR_SUPPORTED_URI_PROTOCOLS , ASSOCSTR_PROGID ,
  ASSOCSTR_APPID , ASSOCSTR_APPPUBLISHER , ASSOCSTR_APPICONREFERENCE , ASSOCSTR_MAX ,
  ASSOCSTR_COMMAND = 1 , ASSOCSTR_EXECUTABLE , ASSOCSTR_FRIENDLYDOCNAME , ASSOCSTR_FRIENDLYAPPNAME ,
  ASSOCSTR_NOOPEN , ASSOCSTR_SHELLNEWVALUE , ASSOCSTR_DDECOMMAND , ASSOCSTR_DDEIFEXEC ,
  ASSOCSTR_DDEAPPLICATION , ASSOCSTR_DDETOPIC , ASSOCSTR_INFOTIP , ASSOCSTR_QUICKTIP ,
  ASSOCSTR_TILEINFO , ASSOCSTR_CONTENTTYPE , ASSOCSTR_DEFAULTICON , ASSOCSTR_SHELLEXTENSION ,
  ASSOCSTR_MAX
}
 
enum  ASSOCKEY {
  ASSOCKEY_SHELLEXECCLASS = 1 , ASSOCKEY_APP , ASSOCKEY_CLASS , ASSOCKEY_BASECLASS ,
  ASSOCKEY_MAX , ASSOCKEY_SHELLEXECCLASS = 1 , ASSOCKEY_APP , ASSOCKEY_CLASS ,
  ASSOCKEY_BASECLASS , ASSOCKEY_MAX
}
 
enum  ASSOCDATA {
  ASSOCDATA_MSIDESCRIPTOR = 1 , ASSOCDATA_NOACTIVATEHANDLER , ASSOCDATA_QUERYCLASSSTORE , ASSOCDATA_HASPERUSERASSOC ,
  ASSOCDATA_EDITFLAGS , ASSOCDATA_VALUE , ASSOCDATA_MAX , ASSOCDATA_MSIDESCRIPTOR = 1 ,
  ASSOCDATA_NOACTIVATEHANDLER , ASSOCDATA_QUERYCLASSSTORE , ASSOCDATA_HASPERUSERASSOC , ASSOCDATA_EDITFLAGS ,
  ASSOCDATA_VALUE , ASSOCDATA_MAX
}
 
enum  ASSOCENUM { ASSOCENUM_NONE , ASSOCENUM_NONE }
 
enum  URL_SCHEME {
  URL_SCHEME_INVALID = -1 , URL_SCHEME_UNKNOWN = 0 , URL_SCHEME_FTP , URL_SCHEME_HTTP ,
  URL_SCHEME_GOPHER , URL_SCHEME_MAILTO , URL_SCHEME_NEWS , URL_SCHEME_NNTP ,
  URL_SCHEME_TELNET , URL_SCHEME_WAIS , URL_SCHEME_FILE , URL_SCHEME_MK ,
  URL_SCHEME_HTTPS , URL_SCHEME_SHELL , URL_SCHEME_SNEWS , URL_SCHEME_LOCAL ,
  URL_SCHEME_JAVASCRIPT , URL_SCHEME_VBSCRIPT , URL_SCHEME_ABOUT , URL_SCHEME_RES ,
  URL_SCHEME_MSSHELLROOTED , URL_SCHEME_MSSHELLIDLIST , URL_SCHEME_MSHELP , URL_SCHEME_MSSHELLDEVICE ,
  URL_SCHEME_WILDCARD , URL_SCHEME_SEARCH_MS , URL_SCHEME_SEARCH , URL_SCHEME_KNOWNFOLDER ,
  URL_SCHEME_MAXVALUE , URL_SCHEME_INVALID = -1 , URL_SCHEME_UNKNOWN = 0 , URL_SCHEME_FTP ,
  URL_SCHEME_HTTP , URL_SCHEME_GOPHER , URL_SCHEME_MAILTO , URL_SCHEME_NEWS ,
  URL_SCHEME_NNTP , URL_SCHEME_TELNET , URL_SCHEME_WAIS , URL_SCHEME_FILE ,
  URL_SCHEME_MK , URL_SCHEME_HTTPS , URL_SCHEME_SHELL , URL_SCHEME_SNEWS ,
  URL_SCHEME_LOCAL , URL_SCHEME_JAVASCRIPT , URL_SCHEME_VBSCRIPT , URL_SCHEME_ABOUT ,
  URL_SCHEME_RES , URL_SCHEME_MSSHELLROOTED , URL_SCHEME_MSSHELLIDLIST , URL_SCHEME_MSHELP ,
  URL_SCHEME_MSSHELLDEVICE , URL_SCHEME_WILDCARD , URL_SCHEME_SEARCH_MS , URL_SCHEME_SEARCH ,
  URL_SCHEME_KNOWNFOLDER , URL_SCHEME_MAXVALUE
}
 
enum  URL_PART {
  URL_PART_NONE = 0 , URL_PART_SCHEME = 1 , URL_PART_HOSTNAME , URL_PART_USERNAME ,
  URL_PART_PASSWORD , URL_PART_PORT , URL_PART_QUERY , URL_PART_NONE = 0 ,
  URL_PART_SCHEME = 1 , URL_PART_HOSTNAME , URL_PART_USERNAME , URL_PART_PASSWORD ,
  URL_PART_PORT , URL_PART_QUERY
}
 
enum  URLIS {
  URLIS_URL , URLIS_OPAQUE , URLIS_NOHISTORY , URLIS_FILEURL ,
  URLIS_APPLIABLE , URLIS_DIRECTORY , URLIS_HASQUERY , URLIS_URL ,
  URLIS_OPAQUE , URLIS_NOHISTORY , URLIS_FILEURL , URLIS_APPLIABLE ,
  URLIS_DIRECTORY , URLIS_HASQUERY
}
 
enum  SFBS_FLAGS { SFBS_FLAGS_ROUND_TO_NEAREST_DISPLAYED_DIGIT = 0x1 , SFBS_FLAGS_TRUNCATE_UNDISPLAYED_DECIMAL_DIGITS = 0x2 }
 
enum  {
  CTF_INSIST = 0x00000001 , CTF_THREAD_REF = 0x00000002 , CTF_PROCESS_REF = 0x00000004 , CTF_COINIT_STA = 0x00000008 ,
  CTF_COINIT = 0x00000008 , CTF_FREELIBANDEXIT = 0x00000010 , CTF_REF_COUNTED = 0x00000020 , CTF_WAIT_ALLOWCOM = 0x00000040 ,
  CTF_UNUSED = 0x00000080 , CTF_INHERITWOW64 = 0x00000100 , CTF_WAIT_NO_REENTRACY = 0x00000200 , CTF_KEYBOARD_LOCALE = 0x00000400 ,
  CTF_OLEINITIALIZE = 0x00000800 , CTF_COINIT_MTA = 0x00001000 , CTF_NOADDREFLIB = 0x00002000
}
 

Functions

WINSHLWAPI HRESULT WINAPI GetAcceptLanguagesA (char *buffer, DWORD *buff_len)
 
WINSHLWAPI HRESULT WINAPI GetAcceptLanguagesW (WCHAR *buffer, DWORD *buff_len)
 
WINSHLWAPI DWORD WINAPI SHDeleteEmptyKeyA (HKEY, LPCSTR)
 
WINSHLWAPI DWORD WINAPI SHDeleteEmptyKeyW (HKEY, LPCWSTR)
 
WINSHLWAPI DWORD WINAPI SHDeleteKeyA (HKEY, LPCSTR)
 
WINSHLWAPI DWORD WINAPI SHDeleteKeyW (HKEY, LPCWSTR)
 
WINSHLWAPI DWORD WINAPI SHDeleteValueA (HKEY, LPCSTR, LPCSTR)
 
WINSHLWAPI DWORD WINAPI SHDeleteValueW (HKEY, LPCWSTR, LPCWSTR)
 
WINSHLWAPI DWORD WINAPI SHGetValueA (HKEY, LPCSTR, LPCSTR, LPDWORD, LPVOID, LPDWORD)
 
WINSHLWAPI DWORD WINAPI SHGetValueW (HKEY, LPCWSTR, LPCWSTR, LPDWORD, LPVOID, LPDWORD)
 
WINSHLWAPI DWORD WINAPI SHSetValueA (HKEY, LPCSTR, LPCSTR, DWORD, LPCVOID, DWORD)
 
WINSHLWAPI DWORD WINAPI SHSetValueW (HKEY, LPCWSTR, LPCWSTR, DWORD, LPCVOID, DWORD)
 
WINSHLWAPI DWORD WINAPI SHQueryValueExA (HKEY, LPCSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD)
 
WINSHLWAPI DWORD WINAPI SHQueryValueExW (HKEY, LPCWSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD)
 
WINSHLWAPI LONG WINAPI SHEnumKeyExA (HKEY, DWORD, LPSTR, LPDWORD)
 
WINSHLWAPI LONG WINAPI SHEnumKeyExW (HKEY, DWORD, LPWSTR, LPDWORD)
 
WINSHLWAPI LONG WINAPI SHEnumValueA (HKEY, DWORD, LPSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD)
 
WINSHLWAPI LONG WINAPI SHEnumValueW (HKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD)
 
WINSHLWAPI LONG WINAPI SHQueryInfoKeyA (HKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD)
 
WINSHLWAPI LONG WINAPI SHQueryInfoKeyW (HKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD)
 
WINSHLWAPI DWORD WINAPI SHRegGetPathA (HKEY, LPCSTR, LPCSTR, LPSTR, DWORD)
 
WINSHLWAPI DWORD WINAPI SHRegGetPathW (HKEY, LPCWSTR, LPCWSTR, LPWSTR, DWORD)
 
WINSHLWAPI DWORD WINAPI SHRegSetPathA (HKEY, LPCSTR, LPCSTR, LPCSTR, DWORD)
 
WINSHLWAPI DWORD WINAPI SHRegSetPathW (HKEY, LPCWSTR, LPCWSTR, LPCWSTR, DWORD)
 
WINSHLWAPI DWORD WINAPI SHCopyKeyA (HKEY, LPCSTR, HKEY, DWORD)
 
WINSHLWAPI DWORD WINAPI SHCopyKeyW (HKEY, LPCWSTR, HKEY, DWORD)
 
WINSHLWAPI HKEY WINAPI SHRegDuplicateHKey (HKEY)
 
WINSHLWAPI LSTATUS WINAPI SHRegGetValueA (HKEY, LPCSTR, LPCSTR, SRRF, LPDWORD, LPVOID, LPDWORD)
 
WINSHLWAPI LSTATUS WINAPI SHRegGetValueW (HKEY, LPCWSTR, LPCWSTR, SRRF, LPDWORD, LPVOID, LPDWORD)
 
WINSHLWAPI DWORD WINAPI SHDeleteOrphanKeyA (HKEY, LPCSTR)
 
WINSHLWAPI DWORD WINAPI SHDeleteOrphanKeyW (HKEY, LPCWSTR)
 
WINSHLWAPI LONG WINAPI SHRegCreateUSKeyA (LPCSTR, REGSAM, HUSKEY, PHUSKEY, DWORD)
 
WINSHLWAPI LONG WINAPI SHRegCreateUSKeyW (LPCWSTR, REGSAM, HUSKEY, PHUSKEY, DWORD)
 
WINSHLWAPI LONG WINAPI SHRegOpenUSKeyA (LPCSTR, REGSAM, HUSKEY, PHUSKEY, BOOL)
 
WINSHLWAPI LONG WINAPI SHRegOpenUSKeyW (LPCWSTR, REGSAM, HUSKEY, PHUSKEY, BOOL)
 
WINSHLWAPI LONG WINAPI SHRegQueryUSValueA (HUSKEY, LPCSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD)
 
WINSHLWAPI LONG WINAPI SHRegQueryUSValueW (HUSKEY, LPCWSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD)
 
WINSHLWAPI LONG WINAPI SHRegWriteUSValueA (HUSKEY, LPCSTR, DWORD, LPVOID, DWORD, DWORD)
 
WINSHLWAPI LONG WINAPI SHRegWriteUSValueW (HUSKEY, LPCWSTR, DWORD, LPVOID, DWORD, DWORD)
 
WINSHLWAPI LONG WINAPI SHRegDeleteUSValueA (HUSKEY, LPCSTR, SHREGDEL_FLAGS)
 
WINSHLWAPI LONG WINAPI SHRegDeleteUSValueW (HUSKEY, LPCWSTR, SHREGDEL_FLAGS)
 
WINSHLWAPI LONG WINAPI SHRegDeleteEmptyUSKeyA (HUSKEY, LPCSTR, SHREGDEL_FLAGS)
 
WINSHLWAPI LONG WINAPI SHRegDeleteEmptyUSKeyW (HUSKEY, LPCWSTR, SHREGDEL_FLAGS)
 
WINSHLWAPI LONG WINAPI SHRegEnumUSKeyA (HUSKEY, DWORD, LPSTR, LPDWORD, SHREGENUM_FLAGS)
 
WINSHLWAPI LONG WINAPI SHRegEnumUSKeyW (HUSKEY, DWORD, LPWSTR, LPDWORD, SHREGENUM_FLAGS)
 
WINSHLWAPI LONG WINAPI SHRegEnumUSValueA (HUSKEY, DWORD, LPSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD, SHREGENUM_FLAGS)
 
WINSHLWAPI LONG WINAPI SHRegEnumUSValueW (HUSKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD, SHREGENUM_FLAGS)
 
WINSHLWAPI LONG WINAPI SHRegQueryInfoUSKeyA (HUSKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD, SHREGENUM_FLAGS)
 
WINSHLWAPI LONG WINAPI SHRegQueryInfoUSKeyW (HUSKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD, SHREGENUM_FLAGS)
 
WINSHLWAPI LONG WINAPI SHRegCloseUSKey (HUSKEY)
 
WINSHLWAPI LONG WINAPI SHRegGetUSValueA (LPCSTR, LPCSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD)
 
WINSHLWAPI LONG WINAPI SHRegGetUSValueW (LPCWSTR, LPCWSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD)
 
WINSHLWAPI LONG WINAPI SHRegSetUSValueA (LPCSTR, LPCSTR, DWORD, LPVOID, DWORD, DWORD)
 
WINSHLWAPI LONG WINAPI SHRegSetUSValueW (LPCWSTR, LPCWSTR, DWORD, LPVOID, DWORD, DWORD)
 
WINSHLWAPI BOOL WINAPI SHRegGetBoolUSValueA (LPCSTR, LPCSTR, BOOL, BOOL)
 
WINSHLWAPI BOOL WINAPI SHRegGetBoolUSValueW (LPCWSTR, LPCWSTR, BOOL, BOOL)
 
WINSHLWAPI int WINAPI SHRegGetIntW (HKEY, LPCWSTR, int)
 
 DECLARE_INTERFACE_ (IQueryAssociations, IUnknown)
 
WINSHLWAPI HRESULT WINAPI AssocCreate (CLSID, REFIID, LPVOID *)
 
WINSHLWAPI HRESULT WINAPI AssocQueryStringA (ASSOCF, ASSOCSTR, LPCSTR, LPCSTR, LPSTR, LPDWORD)
 
WINSHLWAPI HRESULT WINAPI AssocQueryStringW (ASSOCF, ASSOCSTR, LPCWSTR, LPCWSTR, LPWSTR, LPDWORD)
 
WINSHLWAPI HRESULT WINAPI AssocQueryStringByKeyA (ASSOCF, ASSOCSTR, HKEY, LPCSTR, LPSTR, LPDWORD)
 
WINSHLWAPI HRESULT WINAPI AssocQueryStringByKeyW (ASSOCF, ASSOCSTR, HKEY, LPCWSTR, LPWSTR, LPDWORD)
 
WINSHLWAPI HRESULT WINAPI AssocQueryKeyA (ASSOCF, ASSOCKEY, LPCSTR, LPCSTR, PHKEY)
 
WINSHLWAPI HRESULT WINAPI AssocQueryKeyW (ASSOCF, ASSOCKEY, LPCWSTR, LPCWSTR, PHKEY)
 
WINSHLWAPI BOOL WINAPI AssocIsDangerous (LPCWSTR)
 
WINSHLWAPI void WINAPI IUnknown_Set (IUnknown **ppunk, IUnknown *punk)
 
WINSHLWAPI void WINAPI IUnknown_AtomicRelease (IUnknown **punk)
 
WINSHLWAPI HRESULT WINAPI IUnknown_GetWindow (IUnknown *punk, HWND *phwnd)
 
WINSHLWAPI HRESULT WINAPI IUnknown_SetSite (IUnknown *punk, IUnknown *punkSite)
 
WINSHLWAPI HRESULT WINAPI IUnknown_GetSite (IUnknown *punk, REFIID riid, void **ppv)
 
WINSHLWAPI HRESULT WINAPI IUnknown_QueryService (IUnknown *punk, REFGUID guidService, REFIID riid, void **ppvOut)
 
WINSHLWAPI LPSTR WINAPI PathAddBackslashA (LPSTR)
 
WINSHLWAPI LPWSTR WINAPI PathAddBackslashW (LPWSTR)
 
WINSHLWAPI BOOL WINAPI PathAddExtensionA (LPSTR, LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathAddExtensionW (LPWSTR, LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathAppendA (LPSTR, LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathAppendW (LPWSTR, LPCWSTR)
 
WINSHLWAPI LPSTR WINAPI PathBuildRootA (LPSTR, int)
 
WINSHLWAPI LPWSTR WINAPI PathBuildRootW (LPWSTR, int)
 
WINSHLWAPI BOOL WINAPI PathCanonicalizeA (LPSTR, LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathCanonicalizeW (LPWSTR, LPCWSTR)
 
WINSHLWAPI LPSTR WINAPI PathCombineA (LPSTR, LPCSTR, LPCSTR)
 
WINSHLWAPI LPWSTR WINAPI PathCombineW (LPWSTR, LPCWSTR, LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathCompactPathA (HDC, LPSTR, UINT)
 
WINSHLWAPI BOOL WINAPI PathCompactPathW (HDC, LPWSTR, UINT)
 
WINSHLWAPI BOOL WINAPI PathCompactPathExA (LPSTR, LPCSTR, UINT, DWORD)
 
WINSHLWAPI BOOL WINAPI PathCompactPathExW (LPWSTR, LPCWSTR, UINT, DWORD)
 
WINSHLWAPI int WINAPI PathCommonPrefixA (LPCSTR, LPCSTR, LPSTR)
 
WINSHLWAPI int WINAPI PathCommonPrefixW (LPCWSTR, LPCWSTR, LPWSTR)
 
WINSHLWAPI HRESULT WINAPI PathCreateFromUrlA (LPCSTR, LPSTR, LPDWORD, DWORD)
 
WINSHLWAPI HRESULT WINAPI PathCreateFromUrlW (LPCWSTR, LPWSTR, LPDWORD, DWORD)
 
WINSHLWAPI HRESULT WINAPI PathCreateFromUrlAlloc (LPCWSTR, LPWSTR *, DWORD)
 
WINSHLWAPI BOOL WINAPI PathFileExistsA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathFileExistsW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathFileExistsAndAttributesA (LPCSTR, DWORD *)
 
WINSHLWAPI BOOL WINAPI PathFileExistsAndAttributesW (LPCWSTR, DWORD *)
 
WINSHLWAPI LPSTR WINAPI PathFindExtensionA (LPCSTR)
 
WINSHLWAPI LPWSTR WINAPI PathFindExtensionW (LPCWSTR)
 
WINSHLWAPI LPSTR WINAPI PathFindFileNameA (LPCSTR)
 
WINSHLWAPI LPWSTR WINAPI PathFindFileNameW (LPCWSTR)
 
WINSHLWAPI LPSTR WINAPI PathFindNextComponentA (LPCSTR)
 
WINSHLWAPI LPWSTR WINAPI PathFindNextComponentW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathFindOnPathA (LPSTR, LPCSTR *)
 
WINSHLWAPI BOOL WINAPI PathFindOnPathW (LPWSTR, LPCWSTR *)
 
WINSHLWAPI LPSTR WINAPI PathGetArgsA (LPCSTR)
 
WINSHLWAPI LPWSTR WINAPI PathGetArgsW (LPCWSTR)
 
WINSHLWAPI UINT WINAPI PathGetCharTypeA (UCHAR)
 
WINSHLWAPI UINT WINAPI PathGetCharTypeW (WCHAR)
 
WINSHLWAPI int WINAPI PathGetDriveNumberA (LPCSTR)
 
WINSHLWAPI int WINAPI PathGetDriveNumberW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathIsDirectoryA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathIsDirectoryW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathIsDirectoryEmptyA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathIsDirectoryEmptyW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathIsFileSpecA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathIsFileSpecW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathIsPrefixA (LPCSTR, LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathIsPrefixW (LPCWSTR, LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathIsRelativeA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathIsRelativeW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathIsRootA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathIsRootW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathIsSameRootA (LPCSTR, LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathIsSameRootW (LPCWSTR, LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathIsUNCA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathIsUNCW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathIsUNCServerA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathIsUNCServerW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathIsUNCServerShareA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathIsUNCServerShareW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathIsContentTypeA (LPCSTR, LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathIsContentTypeW (LPCWSTR, LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathIsURLA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathIsURLW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathMakePrettyA (LPSTR)
 
WINSHLWAPI BOOL WINAPI PathMakePrettyW (LPWSTR)
 
WINSHLWAPI BOOL WINAPI PathMatchSpecA (LPCSTR, LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathMatchSpecW (LPCWSTR, LPCWSTR)
 
WINSHLWAPI HRESULT WINAPI PathMatchSpecExA (LPCSTR, LPCSTR, DWORD)
 
WINSHLWAPI HRESULT WINAPI PathMatchSpecExW (LPCWSTR, LPCWSTR, DWORD)
 
WINSHLWAPI int WINAPI PathParseIconLocationA (LPSTR)
 
WINSHLWAPI int WINAPI PathParseIconLocationW (LPWSTR)
 
WINSHLWAPI VOID WINAPI PathQuoteSpacesA (LPSTR)
 
WINSHLWAPI VOID WINAPI PathQuoteSpacesW (LPWSTR)
 
WINSHLWAPI BOOL WINAPI PathRelativePathToA (LPSTR, LPCSTR, DWORD, LPCSTR, DWORD)
 
WINSHLWAPI BOOL WINAPI PathRelativePathToW (LPWSTR, LPCWSTR, DWORD, LPCWSTR, DWORD)
 
WINSHLWAPI VOID WINAPI PathRemoveArgsA (LPSTR)
 
WINSHLWAPI VOID WINAPI PathRemoveArgsW (LPWSTR)
 
WINSHLWAPI LPSTR WINAPI PathRemoveBackslashA (LPSTR)
 
WINSHLWAPI LPWSTR WINAPI PathRemoveBackslashW (LPWSTR)
 
WINSHLWAPI VOID WINAPI PathRemoveBlanksA (LPSTR)
 
WINSHLWAPI VOID WINAPI PathRemoveBlanksW (LPWSTR)
 
WINSHLWAPI VOID WINAPI PathRemoveExtensionA (LPSTR)
 
WINSHLWAPI VOID WINAPI PathRemoveExtensionW (LPWSTR)
 
WINSHLWAPI BOOL WINAPI PathRemoveFileSpecA (LPSTR)
 
WINSHLWAPI BOOL WINAPI PathRemoveFileSpecW (LPWSTR)
 
WINSHLWAPI BOOL WINAPI PathRenameExtensionA (LPSTR, LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathRenameExtensionW (LPWSTR, LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathSearchAndQualifyA (LPCSTR, LPSTR, UINT)
 
WINSHLWAPI BOOL WINAPI PathSearchAndQualifyW (LPCWSTR, LPWSTR, UINT)
 
WINSHLWAPI VOID WINAPI PathSetDlgItemPathA (HWND, int, LPCSTR)
 
WINSHLWAPI VOID WINAPI PathSetDlgItemPathW (HWND, int, LPCWSTR)
 
WINSHLWAPI LPSTR WINAPI PathSkipRootA (LPCSTR)
 
WINSHLWAPI LPWSTR WINAPI PathSkipRootW (LPCWSTR)
 
WINSHLWAPI VOID WINAPI PathStripPathA (LPSTR)
 
WINSHLWAPI VOID WINAPI PathStripPathW (LPWSTR)
 
WINSHLWAPI BOOL WINAPI PathStripToRootA (LPSTR)
 
WINSHLWAPI BOOL WINAPI PathStripToRootW (LPWSTR)
 
WINSHLWAPI VOID WINAPI PathUnquoteSpacesA (LPSTR)
 
WINSHLWAPI VOID WINAPI PathUnquoteSpacesW (LPWSTR)
 
WINSHLWAPI BOOL WINAPI PathMakeSystemFolderA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathMakeSystemFolderW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathUnmakeSystemFolderA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathUnmakeSystemFolderW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathIsSystemFolderA (LPCSTR, DWORD)
 
WINSHLWAPI BOOL WINAPI PathIsSystemFolderW (LPCWSTR, DWORD)
 
WINSHLWAPI BOOL WINAPI PathIsNetworkPathA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathIsNetworkPathW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI PathIsLFNFileSpecA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI PathIsLFNFileSpecW (LPCWSTR)
 
WINSHLWAPI LPCSTR WINAPI PathFindSuffixArrayA (LPCSTR, LPCSTR *, int)
 
WINSHLWAPI LPCWSTR WINAPI PathFindSuffixArrayW (LPCWSTR, LPCWSTR *, int)
 
WINSHLWAPI VOID WINAPI PathUndecorateA (LPSTR)
 
WINSHLWAPI VOID WINAPI PathUndecorateW (LPWSTR)
 
WINSHLWAPI BOOL WINAPI PathUnExpandEnvStringsA (LPCSTR, LPSTR, UINT)
 
WINSHLWAPI BOOL WINAPI PathUnExpandEnvStringsW (LPCWSTR, LPWSTR, UINT)
 
WINSHLWAPI HRESULT WINAPI UrlApplySchemeA (LPCSTR, LPSTR, LPDWORD, DWORD)
 
WINSHLWAPI HRESULT WINAPI UrlApplySchemeW (LPCWSTR, LPWSTR, LPDWORD, DWORD)
 
WINSHLWAPI HRESULT WINAPI UrlCanonicalizeA (LPCSTR, LPSTR, LPDWORD, DWORD)
 
WINSHLWAPI HRESULT WINAPI UrlCanonicalizeW (LPCWSTR, LPWSTR, LPDWORD, DWORD)
 
WINSHLWAPI HRESULT WINAPI UrlCombineA (LPCSTR, LPCSTR, LPSTR, LPDWORD, DWORD)
 
WINSHLWAPI HRESULT WINAPI UrlCombineW (LPCWSTR, LPCWSTR, LPWSTR, LPDWORD, DWORD)
 
WINSHLWAPI INT WINAPI UrlCompareA (LPCSTR, LPCSTR, BOOL)
 
WINSHLWAPI INT WINAPI UrlCompareW (LPCWSTR, LPCWSTR, BOOL)
 
WINSHLWAPI HRESULT WINAPI UrlEscapeA (LPCSTR, LPSTR, LPDWORD, DWORD)
 
WINSHLWAPI HRESULT WINAPI UrlEscapeW (LPCWSTR, LPWSTR, LPDWORD, DWORD)
 
WINSHLWAPI LPCSTR WINAPI UrlGetLocationA (LPCSTR)
 
WINSHLWAPI LPCWSTR WINAPI UrlGetLocationW (LPCWSTR)
 
WINSHLWAPI HRESULT WINAPI UrlGetPartA (LPCSTR, LPSTR, LPDWORD, DWORD, DWORD)
 
WINSHLWAPI HRESULT WINAPI UrlGetPartW (LPCWSTR, LPWSTR, LPDWORD, DWORD, DWORD)
 
WINSHLWAPI HRESULT WINAPI HashData (const unsigned char *, DWORD, unsigned char *lpDest, DWORD)
 
WINSHLWAPI HRESULT WINAPI UrlHashA (LPCSTR, unsigned char *, DWORD)
 
WINSHLWAPI HRESULT WINAPI UrlHashW (LPCWSTR, unsigned char *, DWORD)
 
WINSHLWAPI BOOL WINAPI UrlIsA (LPCSTR, URLIS)
 
WINSHLWAPI BOOL WINAPI UrlIsW (LPCWSTR, URLIS)
 
WINSHLWAPI BOOL WINAPI UrlIsNoHistoryA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI UrlIsNoHistoryW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI UrlIsOpaqueA (LPCSTR)
 
WINSHLWAPI BOOL WINAPI UrlIsOpaqueW (LPCWSTR)
 
WINSHLWAPI HRESULT WINAPI UrlUnescapeA (LPSTR, LPSTR, LPDWORD, DWORD)
 
WINSHLWAPI HRESULT WINAPI UrlUnescapeW (LPWSTR, LPWSTR, LPDWORD, DWORD)
 
WINSHLWAPI HRESULT WINAPI UrlCreateFromPathA (LPCSTR, LPSTR, LPDWORD, DWORD)
 
WINSHLWAPI HRESULT WINAPI UrlCreateFromPathW (LPCWSTR, LPWSTR, LPDWORD, DWORD)
 
WINSHLWAPI HRESULT WINAPI ParseURLA (LPCSTR pszUrl, PARSEDURLA *ppu)
 
WINSHLWAPI HRESULT WINAPI ParseURLW (LPCWSTR pszUrl, PARSEDURLW *ppu)
 
WINSHLWAPI BOOL WINAPI ChrCmpIA (WORD, WORD)
 
WINSHLWAPI BOOL WINAPI ChrCmpIW (WCHAR, WCHAR)
 
WINSHLWAPI INT WINAPI StrCSpnA (LPCSTR, LPCSTR)
 
WINSHLWAPI INT WINAPI StrCSpnW (LPCWSTR, LPCWSTR)
 
WINSHLWAPI INT WINAPI StrCSpnIA (LPCSTR, LPCSTR)
 
WINSHLWAPI INT WINAPI StrCSpnIW (LPCWSTR, LPCWSTR)
 
WINSHLWAPI LPWSTR WINAPI StrCatW (LPWSTR, LPCWSTR)
 
WINSHLWAPI LPSTR WINAPI StrCatBuffA (LPSTR, LPCSTR, INT)
 
WINSHLWAPI LPWSTR WINAPI StrCatBuffW (LPWSTR, LPCWSTR, INT)
 
WINSHLWAPI DWORD WINAPI StrCatChainW (LPWSTR, DWORD, DWORD, LPCWSTR)
 
WINSHLWAPI LPSTR WINAPI StrChrA (LPCSTR, WORD)
 
WINSHLWAPI LPWSTR WINAPI StrChrW (LPCWSTR, WCHAR)
 
WINSHLWAPI LPSTR WINAPI StrChrIA (LPCSTR, WORD)
 
WINSHLWAPI LPWSTR WINAPI StrChrIW (LPCWSTR, WCHAR)
 
WINSHLWAPI int WINAPI StrCmpW (LPCWSTR, LPCWSTR)
 
WINSHLWAPI int WINAPI StrCmpIW (LPCWSTR, LPCWSTR)
 
WINSHLWAPI LPWSTR WINAPI StrCpyW (LPWSTR, LPCWSTR)
 
WINSHLWAPI LPWSTR WINAPI StrCpyNW (LPWSTR, LPCWSTR, int)
 
WINSHLWAPI INT WINAPI StrCmpLogicalW (LPCWSTR, LPCWSTR)
 
WINSHLWAPI INT WINAPI StrCmpNA (LPCSTR, LPCSTR, INT)
 
WINSHLWAPI INT WINAPI StrCmpNW (LPCWSTR, LPCWSTR, INT)
 
WINSHLWAPI INT WINAPI StrCmpNIA (LPCSTR, LPCSTR, INT)
 
WINSHLWAPI INT WINAPI StrCmpNIW (LPCWSTR, LPCWSTR, INT)
 
WINSHLWAPI char *WINAPI StrDupA (const char *) __WINE_DEALLOC(LocalFree) __WINE_MALLOC
 
WINSHLWAPI WCHAR *WINAPI StrDupW (const WCHAR *) __WINE_DEALLOC(LocalFree) __WINE_MALLOC
 
WINSHLWAPI HRESULT WINAPI SHStrDupA (LPCSTR, WCHAR **)
 
WINSHLWAPI HRESULT WINAPI SHStrDupW (LPCWSTR, WCHAR **)
 
WINSHLWAPI LPSTR WINAPI StrFormatByteSizeA (DWORD, LPSTR, UINT)
 
WINSHLWAPI HRESULT WINAPI StrFormatByteSizeEx (LONGLONG, SFBS_FLAGS, LPWSTR, UINT)
 
WINSHLWAPI LPSTR WINAPI StrFormatByteSize64A (LONGLONG, LPSTR, UINT)
 
WINSHLWAPI LPWSTR WINAPI StrFormatByteSizeW (LONGLONG, LPWSTR, UINT)
 
WINSHLWAPI LPSTR WINAPI StrFormatKBSizeA (LONGLONG, LPSTR, UINT)
 
WINSHLWAPI LPWSTR WINAPI StrFormatKBSizeW (LONGLONG, LPWSTR, UINT)
 
WINSHLWAPI int WINAPI StrFromTimeIntervalA (LPSTR, UINT, DWORD, int)
 
WINSHLWAPI int WINAPI StrFromTimeIntervalW (LPWSTR, UINT, DWORD, int)
 
WINSHLWAPI BOOL WINAPI StrIsIntlEqualA (BOOL, LPCSTR, LPCSTR, int)
 
WINSHLWAPI BOOL WINAPI StrIsIntlEqualW (BOOL, LPCWSTR, LPCWSTR, int)
 
WINSHLWAPI LPSTR WINAPI StrNCatA (LPSTR, LPCSTR, int)
 
WINSHLWAPI LPWSTR WINAPI StrNCatW (LPWSTR, LPCWSTR, int)
 
WINSHLWAPI LPSTR WINAPI StrPBrkA (LPCSTR, LPCSTR)
 
WINSHLWAPI LPWSTR WINAPI StrPBrkW (LPCWSTR, LPCWSTR)
 
WINSHLWAPI LPSTR WINAPI StrRChrA (LPCSTR, LPCSTR, WORD)
 
WINSHLWAPI LPWSTR WINAPI StrRChrW (LPCWSTR, LPCWSTR, WORD)
 
WINSHLWAPI LPSTR WINAPI StrRChrIA (LPCSTR, LPCSTR, WORD)
 
WINSHLWAPI LPWSTR WINAPI StrRChrIW (LPCWSTR, LPCWSTR, WORD)
 
WINSHLWAPI LPSTR WINAPI StrRStrIA (LPCSTR, LPCSTR, LPCSTR)
 
WINSHLWAPI LPWSTR WINAPI StrRStrIW (LPCWSTR, LPCWSTR, LPCWSTR)
 
WINSHLWAPI int WINAPI StrSpnA (LPCSTR, LPCSTR)
 
WINSHLWAPI int WINAPI StrSpnW (LPCWSTR, LPCWSTR)
 
WINSHLWAPI LPSTR WINAPI StrStrA (LPCSTR, LPCSTR)
 
WINSHLWAPI LPWSTR WINAPI StrStrW (LPCWSTR, LPCWSTR)
 
WINSHLWAPI LPSTR WINAPI StrStrIA (LPCSTR, LPCSTR)
 
WINSHLWAPI LPWSTR WINAPI StrStrIW (LPCWSTR, LPCWSTR)
 
WINSHLWAPI LPWSTR WINAPI StrStrNW (LPCWSTR, LPCWSTR, UINT)
 
WINSHLWAPI LPWSTR WINAPI StrStrNIW (LPCWSTR, LPCWSTR, UINT)
 
WINSHLWAPI int WINAPI StrToIntA (LPCSTR)
 
WINSHLWAPI int WINAPI StrToIntW (LPCWSTR)
 
WINSHLWAPI BOOL WINAPI StrToIntExA (LPCSTR, DWORD, int *)
 
WINSHLWAPI BOOL WINAPI StrToIntExW (LPCWSTR, DWORD, int *)
 
WINSHLWAPI BOOL WINAPI StrToInt64ExA (LPCSTR, DWORD, LONGLONG *)
 
WINSHLWAPI BOOL WINAPI StrToInt64ExW (LPCWSTR, DWORD, LONGLONG *)
 
WINSHLWAPI BOOL WINAPI StrTrimA (LPSTR, LPCSTR)
 
WINSHLWAPI BOOL WINAPI StrTrimW (LPWSTR, LPCWSTR)
 
WINSHLWAPI INT WINAPIV wnsprintfA (LPSTR, INT, LPCSTR,...)
 
WINSHLWAPI INT WINAPIV wnsprintfW (LPWSTR, INT, LPCWSTR,...)
 
WINSHLWAPI HRESULT WINAPI SHLoadIndirectString (LPCWSTR, LPWSTR, UINT, PVOID *)
 
WINSHLWAPI BOOL WINAPI IntlStrEqWorkerA (BOOL, LPCSTR, LPCSTR, int)
 
WINSHLWAPI BOOL WINAPI IntlStrEqWorkerW (BOOL, LPCWSTR, LPCWSTR, int)
 
WINSHLWAPI HRESULT WINAPI StrRetToStrA (STRRET *, LPCITEMIDLIST, LPSTR *)
 
WINSHLWAPI HRESULT WINAPI StrRetToStrW (STRRET *, LPCITEMIDLIST, LPWSTR *)
 
WINSHLWAPI HRESULT WINAPI StrRetToBufA (STRRET *, LPCITEMIDLIST, LPSTR, UINT)
 
WINSHLWAPI HRESULT WINAPI StrRetToBufW (STRRET *, LPCITEMIDLIST, LPWSTR, UINT)
 
WINSHLWAPI HRESULT WINAPI StrRetToBSTR (STRRET *, LPCITEMIDLIST, BSTR *)
 
WINSHLWAPI BOOL WINAPI IsCharSpaceA (CHAR)
 
WINSHLWAPI BOOL WINAPI IsCharSpaceW (WCHAR)
 
WINSHLWAPI HPALETTE WINAPI SHCreateShellPalette (HDC)
 
WINSHLWAPI COLORREF WINAPI ColorHLSToRGB (WORD, WORD, WORD)
 
WINSHLWAPI COLORREF WINAPI ColorAdjustLuma (COLORREF, int, BOOL)
 
WINSHLWAPI VOID WINAPI ColorRGBToHLS (COLORREF, LPWORD, LPWORD, LPWORD)
 
WINSHLWAPI BOOL WINAPI IsInternetESCEnabled (void)
 
WINSHLWAPI struct IStream *WINAPI SHOpenRegStreamA (HKEY, LPCSTR, LPCSTR, DWORD)
 
WINSHLWAPI struct IStream *WINAPI SHOpenRegStreamW (HKEY, LPCWSTR, LPCWSTR, DWORD)
 
WINSHLWAPI struct IStream *WINAPI SHOpenRegStream2A (HKEY, LPCSTR, LPCSTR, DWORD)
 
WINSHLWAPI struct IStream *WINAPI SHOpenRegStream2W (HKEY, LPCWSTR, LPCWSTR, DWORD)
 
WINSHLWAPI HRESULT WINAPI SHCreateStreamOnFileA (LPCSTR, DWORD, struct IStream **)
 
WINSHLWAPI HRESULT WINAPI SHCreateStreamOnFileW (LPCWSTR, DWORD, struct IStream **)
 
WINSHLWAPI struct IStream *WINAPI SHCreateMemStream (const BYTE *, UINT)
 
WINSHLWAPI HRESULT WINAPI SHCreateStreamOnFileEx (LPCWSTR, DWORD, DWORD, BOOL, struct IStream *, struct IStream **)
 
WINSHLWAPI HRESULT WINAPI SHCreateStreamWrapper (LPBYTE, DWORD, DWORD, struct IStream **)
 
WINSHLWAPI HRESULT WINAPI IStream_Reset (IStream *)
 
WINSHLWAPI HRESULT WINAPI IStream_Size (IStream *, ULARGE_INTEGER *)
 
WINSHLWAPI HRESULT WINAPI SHAutoComplete (HWND, DWORD)
 
WINSHLWAPI HRESULT WINAPI SHCreateThreadRef (LONG *, IUnknown **)
 
WINSHLWAPI HRESULT WINAPI SHGetThreadRef (IUnknown **)
 
WINSHLWAPI HRESULT WINAPI SHSetThreadRef (IUnknown *)
 
WINSHLWAPI HRESULT WINAPI SHReleaseThreadRef (void)
 
WINSHLWAPI BOOL WINAPI SHCreateThread (LPTHREAD_START_ROUTINE, void *, DWORD, LPTHREAD_START_ROUTINE)
 
WINSHLWAPI BOOL WINAPI SHSkipJunction (struct IBindCtx *, const CLSID *)
 
HRESULT WINAPI DllInstall (BOOL, LPCWSTR)
 
WINSHLWAPI BOOL WINAPI IsOS (DWORD)
 
WINSHLWAPI int WINAPI SHFormatDateTimeA (const FILETIME *filetime, DWORD *flags, LPSTR buffer, UINT size)
 
WINSHLWAPI int WINAPI SHFormatDateTimeW (const FILETIME *filetime, DWORD *flags, LPWSTR buffer, UINT size)
 
WINSHLWAPI HRESULT WINAPI QISearch (void *base, const QITAB *pqit, REFIID riid, void **ppv)
 
WINSHLWAPI UINT WINAPI WhichPlatform (void)
 
WINSHLWAPI HRESULT WINAPI SHGetViewStatePropertyBag (PCIDLIST_ABSOLUTE pidl, PCWSTR bagname, DWORD flags, REFIID riid, void **ppv)
 
WINSHLWAPI BOOL WINAPI SHIsLowMemoryMachine (DWORD type)
 
WINSHLWAPI HANDLE WINAPI SHAllocShared (const void *data, DWORD size, DWORD pid)
 
WINSHLWAPI BOOL WINAPI SHFreeShared (HANDLE handle, DWORD pid)
 
WINSHLWAPI void *WINAPI SHLockShared (HANDLE handle, DWORD pid)
 
WINSHLWAPI BOOL WINAPI SHUnlockShared (void *data)
 

Macro Definition Documentation

◆ AssocQueryKey

#define AssocQueryKey   WINELIB_NAME_AW(AssocQueryKey)

Definition at line 346 of file shlwapi.h.

◆ AssocQueryString

#define AssocQueryString   WINELIB_NAME_AW(AssocQueryString)

Definition at line 338 of file shlwapi.h.

◆ AssocQueryStringByKey

#define AssocQueryStringByKey   WINELIB_NAME_AW(AssocQueryStringByKey)

Definition at line 342 of file shlwapi.h.

◆ ChrCmpI

#define ChrCmpI   WINELIB_NAME_AW(ChrCmpI)

Definition at line 802 of file shlwapi.h.

◆ DLLVER_BUILD_MASK

#define DLLVER_BUILD_MASK   0x00000000FFFF0000

Definition at line 1113 of file shlwapi.h.

◆ DLLVER_MAJOR_MASK

#define DLLVER_MAJOR_MASK   0xFFFF000000000000

Definition at line 1111 of file shlwapi.h.

◆ DLLVER_MINOR_MASK

#define DLLVER_MINOR_MASK   0x0000FFFF00000000

Definition at line 1112 of file shlwapi.h.

◆ DLLVER_PLATFORM_NT

#define DLLVER_PLATFORM_NT   0x02 /* WinNT */

Definition at line 1096 of file shlwapi.h.

◆ DLLVER_PLATFORM_WINDOWS

#define DLLVER_PLATFORM_WINDOWS   0x01 /* Win9x */

Definition at line 1095 of file shlwapi.h.

◆ DLLVER_QFE_MASK

#define DLLVER_QFE_MASK   0x000000000000FFFF

Definition at line 1114 of file shlwapi.h.

◆ FDTF_DEFAULT

#define FDTF_DEFAULT   (FDTF_SHORTDATE | FDTF_SHORTTIME)

Definition at line 1171 of file shlwapi.h.

◆ FDTF_LONGDATE

#define FDTF_LONGDATE   0x00000004

Definition at line 1172 of file shlwapi.h.

◆ FDTF_LONGTIME

#define FDTF_LONGTIME   0x00000008

Definition at line 1173 of file shlwapi.h.

◆ FDTF_LTRDATE

#define FDTF_LTRDATE   0x00000100

Definition at line 1175 of file shlwapi.h.

◆ FDTF_NOAUTOREADINGORDER

#define FDTF_NOAUTOREADINGORDER   0x00000400

Definition at line 1177 of file shlwapi.h.

◆ FDTF_RELATIVE

#define FDTF_RELATIVE   0x00000010

Definition at line 1174 of file shlwapi.h.

◆ FDTF_RTLDATE

#define FDTF_RTLDATE   0x00000200

Definition at line 1176 of file shlwapi.h.

◆ FDTF_SHORTDATE

#define FDTF_SHORTDATE   0x00000002

Definition at line 1170 of file shlwapi.h.

◆ FDTF_SHORTTIME

#define FDTF_SHORTTIME   0x00000001

Definition at line 1169 of file shlwapi.h.

◆ GCT_INVALID

#define GCT_INVALID   0x0

Definition at line 363 of file shlwapi.h.

◆ GCT_LFNCHAR

#define GCT_LFNCHAR   0x1

Definition at line 364 of file shlwapi.h.

◆ GCT_SEPARATOR

#define GCT_SEPARATOR   0x8

Definition at line 367 of file shlwapi.h.

◆ GCT_SHORTCHAR

#define GCT_SHORTCHAR   0x2

Definition at line 365 of file shlwapi.h.

◆ GCT_WILD

#define GCT_WILD   0x4

Definition at line 366 of file shlwapi.h.

◆ GetAcceptLanguages

#define GetAcceptLanguages   WINELIB_NAME_AW(GetAcceptLanguages)

Definition at line 56 of file shlwapi.h.

◆ ILMM_IE4

#define ILMM_IE4   0

Definition at line 1211 of file shlwapi.h.

◆ INTERFACE

#define INTERFACE   IQueryAssociations

Definition at line 307 of file shlwapi.h.

◆ IntlStrEqN

#define IntlStrEqN   WINELIB_NAME_AW(IntlStrEqN)

Definition at line 976 of file shlwapi.h.

◆ IntlStrEqNA

#define IntlStrEqNA (   s1,
  s2,
  n 
)    IntlStrEqWorkerA(TRUE,s1,s2,n)

Definition at line 974 of file shlwapi.h.

◆ IntlStrEqNI

#define IntlStrEqNI   WINELIB_NAME_AW(IntlStrEqNI)

Definition at line 980 of file shlwapi.h.

◆ IntlStrEqNIA

#define IntlStrEqNIA (   s1,
  s2,
  n 
)    IntlStrEqWorkerA(FALSE,s1,s2,n)

Definition at line 978 of file shlwapi.h.

◆ IntlStrEqNIW

#define IntlStrEqNIW (   s1,
  s2,
  n 
)    IntlStrEqWorkerW(FALSE,s1,s2,n)

Definition at line 979 of file shlwapi.h.

◆ IntlStrEqNW

#define IntlStrEqNW (   s1,
  s2,
  n 
)    IntlStrEqWorkerW(TRUE,s1,s2,n)

Definition at line 975 of file shlwapi.h.

◆ IntlStrEqWorker

#define IntlStrEqWorker   WINELIB_NAME_AW(IntlStrEqWorker)

Definition at line 972 of file shlwapi.h.

◆ IQueryAssociations_AddRef

#define IQueryAssociations_AddRef (   p)    (p)->lpVtbl->AddRef(p)

Definition at line 325 of file shlwapi.h.

◆ IQueryAssociations_GetData

#define IQueryAssociations_GetData (   p,
  a,
  b,
  c,
  d,
  e 
)    (p)->lpVtbl->GetData(p,a,b,c,d,e)

Definition at line 330 of file shlwapi.h.

◆ IQueryAssociations_GetEnum

#define IQueryAssociations_GetEnum (   p,
  a,
  b,
  c,
  d,
  e 
)    (p)->lpVtbl->GetEnum(p,a,b,c,d,e)

Definition at line 331 of file shlwapi.h.

◆ IQueryAssociations_GetKey

#define IQueryAssociations_GetKey (   p,
  a,
  b,
  c,
  d 
)    (p)->lpVtbl->GetKey(p,a,b,c,d)

Definition at line 329 of file shlwapi.h.

◆ IQueryAssociations_GetString

#define IQueryAssociations_GetString (   p,
  a,
  b,
  c,
  d,
  e 
)    (p)->lpVtbl->GetString(p,a,b,c,d,e)

Definition at line 328 of file shlwapi.h.

◆ IQueryAssociations_Init

#define IQueryAssociations_Init (   p,
  a,
  b,
  c,
  d 
)    (p)->lpVtbl->Init(p,a,b,c,d)

Definition at line 327 of file shlwapi.h.

◆ IQueryAssociations_QueryInterface

#define IQueryAssociations_QueryInterface (   p,
  a,
  b 
)    (p)->lpVtbl->QueryInterface(p,a,b)

Definition at line 324 of file shlwapi.h.

◆ IQueryAssociations_Release

#define IQueryAssociations_Release (   p)    (p)->lpVtbl->Release(p)

Definition at line 326 of file shlwapi.h.

◆ IsCharSpace

#define IsCharSpace   WINELIB_NAME_AW(IsCharSpace)

Definition at line 994 of file shlwapi.h.

◆ MAKEDLLVERULL

#define MAKEDLLVERULL (   mjr,
  mnr,
  bld,
  qfe 
)
Value:
(((ULONGLONG)(mjr)<< 48)| \
((ULONGLONG)(mnr)<< 32) | ((ULONGLONG)(bld)<< 16) | (ULONGLONG)(qfe))
uint64_t ULONGLONG
Definition: typedefs.h:67

Definition at line 1116 of file shlwapi.h.

◆ OS_ADVSERVER

#define OS_ADVSERVER   0x16

Definition at line 1146 of file shlwapi.h.

◆ OS_ANYSERVER

#define OS_ANYSERVER   0x1D

Definition at line 1153 of file shlwapi.h.

◆ OS_APPLIANCE

#define OS_APPLIANCE   0x24

Definition at line 1160 of file shlwapi.h.

◆ OS_DATACENTER

#define OS_DATACENTER   0x15

Definition at line 1145 of file shlwapi.h.

◆ OS_DOMAINMEMBER

#define OS_DOMAINMEMBER   0x1C

Definition at line 1152 of file shlwapi.h.

◆ OS_EMBEDDED

#define OS_EMBEDDED   0x0D

Definition at line 1137 of file shlwapi.h.

◆ OS_FASTUSERSWITCHING

#define OS_FASTUSERSWITCHING   0x1A

Definition at line 1150 of file shlwapi.h.

◆ OS_HOME

#define OS_HOME   0x13

Definition at line 1143 of file shlwapi.h.

◆ OS_MEDIACENTER

#define OS_MEDIACENTER   0x23

Definition at line 1159 of file shlwapi.h.

◆ OS_MEORGREATER

#define OS_MEORGREATER   0x11

Definition at line 1141 of file shlwapi.h.

◆ OS_NT

#define OS_NT   0x01

Definition at line 1125 of file shlwapi.h.

◆ OS_NT4ORGREATER

#define OS_NT4ORGREATER   0x03

Definition at line 1127 of file shlwapi.h.

◆ OS_PERSONALTERMINALSERVER

#define OS_PERSONALTERMINALSERVER   0x19

Definition at line 1149 of file shlwapi.h.

◆ OS_PROFESSIONAL

#define OS_PROFESSIONAL   0x14

Definition at line 1144 of file shlwapi.h.

◆ OS_SERVER

#define OS_SERVER   0x17

Definition at line 1147 of file shlwapi.h.

◆ OS_SERVERADMINUI

#define OS_SERVERADMINUI   0x22

Definition at line 1158 of file shlwapi.h.

◆ OS_SMALLBUSINESSSERVER

#define OS_SMALLBUSINESSSERVER   0x20

Definition at line 1156 of file shlwapi.h.

◆ OS_TABLETPC

#define OS_TABLETPC   0x21

Definition at line 1157 of file shlwapi.h.

◆ OS_TERMINALCLIENT

#define OS_TERMINALCLIENT   0x0E

Definition at line 1138 of file shlwapi.h.

◆ OS_TERMINALREMOTEADMIN

#define OS_TERMINALREMOTEADMIN   0x0F

Definition at line 1139 of file shlwapi.h.

◆ OS_TERMINALSERVER

#define OS_TERMINALSERVER   0x18

Definition at line 1148 of file shlwapi.h.

◆ OS_WEBSERVER

#define OS_WEBSERVER   0x1F

Definition at line 1155 of file shlwapi.h.

◆ OS_WELCOMELOGONUI

#define OS_WELCOMELOGONUI   0x1B

Definition at line 1151 of file shlwapi.h.

◆ OS_WIN2000ADVSERVER

#define OS_WIN2000ADVSERVER   0x0A

Definition at line 1134 of file shlwapi.h.

◆ OS_WIN2000DATACENTER

#define OS_WIN2000DATACENTER   0x0B

Definition at line 1135 of file shlwapi.h.

◆ OS_WIN2000ORGREATER

#define OS_WIN2000ORGREATER   0x07

Definition at line 1131 of file shlwapi.h.

◆ OS_WIN2000ORGREATER_ALT

#define OS_WIN2000ORGREATER_ALT   0x04

Definition at line 1128 of file shlwapi.h.

◆ OS_WIN2000PRO

#define OS_WIN2000PRO   0x08

Definition at line 1132 of file shlwapi.h.

◆ OS_WIN2000SERVER

#define OS_WIN2000SERVER   0x09

Definition at line 1133 of file shlwapi.h.

◆ OS_WIN2000TERMINAL

#define OS_WIN2000TERMINAL   0x0C

Definition at line 1136 of file shlwapi.h.

◆ OS_WIN32SORGREATER

#define OS_WIN32SORGREATER   0x00

Definition at line 1124 of file shlwapi.h.

◆ OS_WIN95_GOLD

#define OS_WIN95_GOLD   0x10

Definition at line 1140 of file shlwapi.h.

◆ OS_WIN95ORGREATER

#define OS_WIN95ORGREATER   0x02

Definition at line 1126 of file shlwapi.h.

◆ OS_WIN98_GOLD

#define OS_WIN98_GOLD   0x06

Definition at line 1130 of file shlwapi.h.

◆ OS_WIN98ORGREATER

#define OS_WIN98ORGREATER   0x05

Definition at line 1129 of file shlwapi.h.

◆ OS_WOW6432

#define OS_WOW6432   0x1E

Definition at line 1154 of file shlwapi.h.

◆ OS_XPORGREATER

#define OS_XPORGREATER   0x12

Definition at line 1142 of file shlwapi.h.

◆ ParseURL

#define ParseURL   WINELIB_NAME_AW(ParseUrl)

Definition at line 788 of file shlwapi.h.

◆ PathAddBackslash

#define PathAddBackslash   WINELIB_NAME_AW(PathAddBackslash)

Definition at line 371 of file shlwapi.h.

◆ PathAddExtension

#define PathAddExtension   WINELIB_NAME_AW(PathAddExtension)

Definition at line 375 of file shlwapi.h.

◆ PathAppend

#define PathAppend   WINELIB_NAME_AW(PathAppend)

Definition at line 379 of file shlwapi.h.

◆ PathBuildRoot

#define PathBuildRoot   WINELIB_NAME_AW(PathBuiltRoot)

Definition at line 383 of file shlwapi.h.

◆ PathCanonicalize

#define PathCanonicalize   WINELIB_NAME_AW(PathCanonicalize)

Definition at line 387 of file shlwapi.h.

◆ PathCombine

#define PathCombine   WINELIB_NAME_AW(PathCombine)

Definition at line 391 of file shlwapi.h.

◆ PathCommonPrefix

#define PathCommonPrefix   WINELIB_NAME_AW(PathCommonPrefix)

Definition at line 403 of file shlwapi.h.

◆ PathCompactPath

#define PathCompactPath   WINELIB_NAME_AW(PathCompactPath)

Definition at line 395 of file shlwapi.h.

◆ PathCompactPathEx

#define PathCompactPathEx   WINELIB_NAME_AW(PathCompactPathEx)

Definition at line 399 of file shlwapi.h.

◆ PathCreateFromUrl

#define PathCreateFromUrl   WINELIB_NAME_AW(PathCreateFromUrl)

Definition at line 407 of file shlwapi.h.

◆ PathFileExists

#define PathFileExists   WINELIB_NAME_AW(PathFileExists)

Definition at line 413 of file shlwapi.h.

◆ PathFileExistsAndAttributes

#define PathFileExistsAndAttributes   WINELIB_NAME_AW(PathFileExistsAndAttributes)

Definition at line 417 of file shlwapi.h.

◆ PathFindExtension

#define PathFindExtension   WINELIB_NAME_AW(PathFindExtension)

Definition at line 421 of file shlwapi.h.

◆ PathFindFileName

#define PathFindFileName   WINELIB_NAME_AW(PathFindFileName)

Definition at line 425 of file shlwapi.h.

◆ PathFindNextComponent

#define PathFindNextComponent   WINELIB_NAME_AW(PathFindNextComponent)

Definition at line 429 of file shlwapi.h.

◆ PathFindOnPath

#define PathFindOnPath   WINELIB_NAME_AW(PathFindOnPath)

Definition at line 433 of file shlwapi.h.

◆ PathFindSuffixArray

#define PathFindSuffixArray   WINELIB_NAME_AW(PathFindSuffixArray)

Definition at line 593 of file shlwapi.h.

◆ PathGetArgs

#define PathGetArgs   WINELIB_NAME_AW(PathGetArgs)

Definition at line 437 of file shlwapi.h.

◆ PathGetCharType

#define PathGetCharType   WINELIB_NAME_AW(PathGetCharType)

Definition at line 441 of file shlwapi.h.

◆ PathGetDriveNumber

#define PathGetDriveNumber   WINELIB_NAME_AW(PathGetDriveNumber)

Definition at line 445 of file shlwapi.h.

◆ PathIsContentType

#define PathIsContentType   WINELIB_NAME_AW(PathIsContentType)

Definition at line 489 of file shlwapi.h.

◆ PathIsDirectory

#define PathIsDirectory   WINELIB_NAME_AW(PathIsDirectory)

Definition at line 449 of file shlwapi.h.

◆ PathIsDirectoryEmpty

#define PathIsDirectoryEmpty   WINELIB_NAME_AW(PathIsDirectoryEmpty)

Definition at line 453 of file shlwapi.h.

◆ PathIsFileSpec

#define PathIsFileSpec   WINELIB_NAME_AW(PathIsFileSpec)

Definition at line 457 of file shlwapi.h.

◆ PathIsLFNFileSpec

#define PathIsLFNFileSpec   WINELIB_NAME_AW(PathIsLFNFileSpec)

Definition at line 589 of file shlwapi.h.

◆ PathIsNetworkPath

#define PathIsNetworkPath   WINELIB_NAME_AW(PathIsNetworkPath)

Definition at line 585 of file shlwapi.h.

◆ PathIsPrefix

#define PathIsPrefix   WINELIB_NAME_AW(PathIsPrefix)

Definition at line 461 of file shlwapi.h.

◆ PathIsRelative

#define PathIsRelative   WINELIB_NAME_AW(PathIsRelative)

Definition at line 465 of file shlwapi.h.

◆ PathIsRoot

#define PathIsRoot   WINELIB_NAME_AW(PathIsRoot)

Definition at line 469 of file shlwapi.h.

◆ PathIsSameRoot

#define PathIsSameRoot   WINELIB_NAME_AW(PathIsSameRoot)

Definition at line 473 of file shlwapi.h.

◆ PathIsSystemFolder

#define PathIsSystemFolder   WINELIB_NAME_AW(PathIsSystemFolder)

Definition at line 581 of file shlwapi.h.

◆ PathIsUNC

#define PathIsUNC   WINELIB_NAME_AW(PathIsUNC)

Definition at line 477 of file shlwapi.h.

◆ PathIsUNCServer

#define PathIsUNCServer   WINELIB_NAME_AW(PathIsUNCServer)

Definition at line 481 of file shlwapi.h.

◆ PathIsUNCServerShare

#define PathIsUNCServerShare   WINELIB_NAME_AW(PathIsUNCServerShare)

Definition at line 485 of file shlwapi.h.

◆ PathIsURL

#define PathIsURL   WINELIB_NAME_AW(PathIsURL)

Definition at line 493 of file shlwapi.h.

◆ PathMakePretty

#define PathMakePretty   WINELIB_NAME_AW(PathMakePretty)

Definition at line 497 of file shlwapi.h.

◆ PathMakeSystemFolder

#define PathMakeSystemFolder   WINELIB_NAME_AW(PathMakeSystemFolder)

Definition at line 573 of file shlwapi.h.

◆ PathMatchSpec

#define PathMatchSpec   WINELIB_NAME_AW(PathMatchSpec)

Definition at line 501 of file shlwapi.h.

◆ PathMatchSpecEx

#define PathMatchSpecEx   WINELIB_NAME_AW(PathMatchSpecEx)

Definition at line 509 of file shlwapi.h.

◆ PathParseIconLocation

#define PathParseIconLocation   WINELIB_NAME_AW(PathParseIconLocation)

Definition at line 513 of file shlwapi.h.

◆ PathQuoteSpaces

#define PathQuoteSpaces   WINELIB_NAME_AW(PathQuoteSpaces)

Definition at line 517 of file shlwapi.h.

◆ PathRelativePathTo

#define PathRelativePathTo   WINELIB_NAME_AW(PathRelativePathTo)

Definition at line 521 of file shlwapi.h.

◆ PathRemoveArgs

#define PathRemoveArgs   WINELIB_NAME_AW(PathRemoveArgs)

Definition at line 525 of file shlwapi.h.

◆ PathRemoveBackslash

#define PathRemoveBackslash   WINELIB_NAME_AW(PathRemoveBackslash)

Definition at line 529 of file shlwapi.h.

◆ PathRemoveBlanks

#define PathRemoveBlanks   WINELIB_NAME_AW(PathRemoveBlanks)

Definition at line 533 of file shlwapi.h.

◆ PathRemoveExtension

#define PathRemoveExtension   WINELIB_NAME_AW(PathRemoveExtension)

Definition at line 537 of file shlwapi.h.

◆ PathRemoveFileSpec

#define PathRemoveFileSpec   WINELIB_NAME_AW(PathRemoveFileSpec)

Definition at line 541 of file shlwapi.h.

◆ PathRenameExtension

#define PathRenameExtension   WINELIB_NAME_AW(PathRenameExtension)

Definition at line 545 of file shlwapi.h.

◆ PathSearchAndQualify

#define PathSearchAndQualify   WINELIB_NAME_AW(PathSearchAndQualify)

Definition at line 549 of file shlwapi.h.

◆ PathSetDlgItemPath

#define PathSetDlgItemPath   WINELIB_NAME_AW(PathSetDlgItemPath)

Definition at line 553 of file shlwapi.h.

◆ PathSkipRoot

#define PathSkipRoot   WINELIB_NAME_AW(PathSkipRoot)

Definition at line 557 of file shlwapi.h.

◆ PathStripPath

#define PathStripPath   WINELIB_NAME_AW(PathStripPath)

Definition at line 561 of file shlwapi.h.

◆ PathStripToRoot

#define PathStripToRoot   WINELIB_NAME_AW(PathStripToRoot)

Definition at line 565 of file shlwapi.h.

◆ PathUndecorate

#define PathUndecorate   WINELIB_NAME_AW(PathUndecorate)

Definition at line 597 of file shlwapi.h.

◆ PathUnExpandEnvStrings

#define PathUnExpandEnvStrings   WINELIB_NAME_AW(PathUnExpandEnvStrings)

Definition at line 601 of file shlwapi.h.

◆ PathUnmakeSystemFolder

#define PathUnmakeSystemFolder   WINELIB_NAME_AW(PathUnmakeSystemFolder)

Definition at line 577 of file shlwapi.h.

◆ PathUnquoteSpaces

#define PathUnquoteSpaces   WINELIB_NAME_AW(PathUnquoteSpaces)

Definition at line 569 of file shlwapi.h.

◆ PLATFORM_BROWSERONLY

#define PLATFORM_BROWSERONLY   1

Definition at line 1192 of file shlwapi.h.

◆ PLATFORM_IE3

#define PLATFORM_IE3   1

Definition at line 1191 of file shlwapi.h.

◆ PLATFORM_INTEGRATED

#define PLATFORM_INTEGRATED   2

Definition at line 1193 of file shlwapi.h.

◆ PLATFORM_UNKNOWN

#define PLATFORM_UNKNOWN   0

Definition at line 1190 of file shlwapi.h.

◆ PMSF_DONT_STRIP_SPACES

#define PMSF_DONT_STRIP_SPACES   0x00010000

Definition at line 505 of file shlwapi.h.

◆ PMSF_MULTIPLE

#define PMSF_MULTIPLE   0x00000001

Definition at line 504 of file shlwapi.h.

◆ PMSF_NORMAL

#define PMSF_NORMAL   0x00000000

Definition at line 503 of file shlwapi.h.

◆ SHACF_AUTOAPPEND_FORCE_OFF

#define SHACF_AUTOAPPEND_FORCE_OFF   0x80000000

Definition at line 1051 of file shlwapi.h.

◆ SHACF_AUTOAPPEND_FORCE_ON

#define SHACF_AUTOAPPEND_FORCE_ON   0x40000000

Definition at line 1050 of file shlwapi.h.

◆ SHACF_AUTOSUGGEST_FORCE_OFF

#define SHACF_AUTOSUGGEST_FORCE_OFF   0x20000000

Definition at line 1049 of file shlwapi.h.

◆ SHACF_AUTOSUGGEST_FORCE_ON

#define SHACF_AUTOSUGGEST_FORCE_ON   0x10000000

Definition at line 1048 of file shlwapi.h.

◆ SHACF_DEFAULT

#define SHACF_DEFAULT   0x00000000

Definition at line 1040 of file shlwapi.h.

◆ SHACF_FILESYS_DIRS

#define SHACF_FILESYS_DIRS   0x00000020

Definition at line 1047 of file shlwapi.h.

◆ SHACF_FILESYS_ONLY

#define SHACF_FILESYS_ONLY   0x00000010

Definition at line 1046 of file shlwapi.h.

◆ SHACF_FILESYSTEM

#define SHACF_FILESYSTEM   0x00000001

Definition at line 1041 of file shlwapi.h.

◆ SHACF_URLALL

#define SHACF_URLALL   (SHACF_URLHISTORY|SHACF_URLMRU)

Definition at line 1044 of file shlwapi.h.

◆ SHACF_URLHISTORY

#define SHACF_URLHISTORY   0x00000002

Definition at line 1042 of file shlwapi.h.

◆ SHACF_URLMRU

#define SHACF_URLMRU   0x00000004

Definition at line 1043 of file shlwapi.h.

◆ SHACF_USETAB

#define SHACF_USETAB   0x00000008

Definition at line 1045 of file shlwapi.h.

◆ SHCopyKey

#define SHCopyKey   WINELIB_NAME_AW(SHCopyKey)

Definition at line 110 of file shlwapi.h.

◆ SHCreateStreamOnFile

#define SHCreateStreamOnFile   WINELIB_NAME_AW(SHCreateStreamOnFile)

Definition at line 1028 of file shlwapi.h.

◆ SHDeleteEmptyKey

#define SHDeleteEmptyKey   WINELIB_NAME_AW(SHDeleteEmptyKey)

Definition at line 66 of file shlwapi.h.

◆ SHDeleteKey

#define SHDeleteKey   WINELIB_NAME_AW(SHDeleteKey)

Definition at line 70 of file shlwapi.h.

◆ SHDeleteOrphanKey

#define SHDeleteOrphanKey   WINELIB_NAME_AW(SHDeleteOrphanKey)

Definition at line 146 of file shlwapi.h.

◆ SHDeleteValue

#define SHDeleteValue   WINELIB_NAME_AW(SHDeleteValue)

Definition at line 74 of file shlwapi.h.

◆ SHEnumKeyEx

#define SHEnumKeyEx   WINELIB_NAME_AW(SHEnumKeyEx)

Definition at line 90 of file shlwapi.h.

◆ SHEnumValue

#define SHEnumValue   WINELIB_NAME_AW(SHEnumValue)

Definition at line 94 of file shlwapi.h.

◆ SHGetValue

#define SHGetValue   WINELIB_NAME_AW(SHGetValue)

Definition at line 78 of file shlwapi.h.

◆ SHGVSPB_ALLFOLDERS

#define SHGVSPB_ALLFOLDERS   0x00000008

Definition at line 1200 of file shlwapi.h.

◆ SHGVSPB_ALLUSERS

#define SHGVSPB_ALLUSERS   0x00000002

Definition at line 1198 of file shlwapi.h.

◆ SHGVSPB_FOLDER

#define SHGVSPB_FOLDER   (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER)

Definition at line 1204 of file shlwapi.h.

◆ SHGVSPB_FOLDERNODEFAULTS

#define SHGVSPB_FOLDERNODEFAULTS   (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER | SHGVSPB_NOAUTODEFAULTS)

Definition at line 1205 of file shlwapi.h.

◆ SHGVSPB_GLOBALDEFAULTS

#define SHGVSPB_GLOBALDEFAULTS   (SHGVSPB_ALLUSERS | SHGVSPB_ALLFOLDERS)

Definition at line 1207 of file shlwapi.h.

◆ SHGVSPB_INHERIT

#define SHGVSPB_INHERIT   0x00000010

Definition at line 1201 of file shlwapi.h.

◆ SHGVSPB_NOAUTODEFAULTS

#define SHGVSPB_NOAUTODEFAULTS   0x80000000

Definition at line 1203 of file shlwapi.h.

◆ SHGVSPB_PERFOLDER

#define SHGVSPB_PERFOLDER   0x00000004

Definition at line 1199 of file shlwapi.h.

◆ SHGVSPB_PERUSER

#define SHGVSPB_PERUSER   0x00000001

Definition at line 1197 of file shlwapi.h.

◆ SHGVSPB_ROAM

#define SHGVSPB_ROAM   0x00000020

Definition at line 1202 of file shlwapi.h.

◆ SHGVSPB_USERDEFAULTS

#define SHGVSPB_USERDEFAULTS   (SHGVSPB_PERUSER | SHGVSPB_ALLFOLDERS)

Definition at line 1206 of file shlwapi.h.

◆ SHOpenRegStream

#define SHOpenRegStream   WINELIB_NAME_AW(SHOpenRegStream2) /* Uses version 2 */

Definition at line 1020 of file shlwapi.h.

◆ SHOpenRegStream2

#define SHOpenRegStream2   WINELIB_NAME_AW(SHOpenRegStream2)

Definition at line 1024 of file shlwapi.h.

◆ SHQueryInfoKey

#define SHQueryInfoKey   WINELIB_NAME_AW(SHQueryInfoKey)

Definition at line 98 of file shlwapi.h.

◆ SHQueryValueEx

#define SHQueryValueEx   WINELIB_NAME_AW(SHQueryValueEx)

Definition at line 86 of file shlwapi.h.

◆ SHRegCreateUSKey

#define SHRegCreateUSKey   WINELIB_NAME_AW(SHRegCreateUSKey)

Definition at line 178 of file shlwapi.h.

◆ SHRegDeleteEmptyUSKey

#define SHRegDeleteEmptyUSKey   WINELIB_NAME_AW(SHRegDeleteEmptyUSKey)

Definition at line 200 of file shlwapi.h.

◆ SHRegDeleteUSValue

#define SHRegDeleteUSValue   WINELIB_NAME_AW(SHRegDeleteUSValue)

Definition at line 196 of file shlwapi.h.

◆ SHRegEnumUSKey

#define SHRegEnumUSKey   WINELIB_NAME_AW(SHRegEnumUSKey)

Definition at line 204 of file shlwapi.h.

◆ SHRegEnumUSValue

#define SHRegEnumUSValue   WINELIB_NAME_AW(SHRegEnumUSValue)

Definition at line 210 of file shlwapi.h.

◆ SHRegGetBoolUSValue

#define SHRegGetBoolUSValue   WINELIB_NAME_AW(SHRegGetBoolUSValue)

Definition at line 232 of file shlwapi.h.

◆ SHRegGetPath

#define SHRegGetPath   WINELIB_NAME_AW(SHRegGetPath)

Definition at line 102 of file shlwapi.h.

◆ SHRegGetUSValue

#define SHRegGetUSValue   WINELIB_NAME_AW(SHRegGetUSValue)

Definition at line 224 of file shlwapi.h.

◆ SHRegGetValue

#define SHRegGetValue   WINELIB_NAME_AW(SHRegGetValue)

Definition at line 140 of file shlwapi.h.

◆ SHRegOpenUSKey

#define SHRegOpenUSKey   WINELIB_NAME_AW(SHRegOpenUSKey)

Definition at line 182 of file shlwapi.h.

◆ SHRegQueryInfoUSKey

#define SHRegQueryInfoUSKey   WINELIB_NAME_AW(SHRegQueryInfoUSKey)

Definition at line 216 of file shlwapi.h.

◆ SHRegQueryUSValue

#define SHRegQueryUSValue   WINELIB_NAME_AW(SHRegQueryUSValue)

Definition at line 188 of file shlwapi.h.

◆ SHREGSET_DEFAULT

#define SHREGSET_DEFAULT   (SHREGSET_FORCE_HKCU | SHREGSET_HKLM)

Definition at line 171 of file shlwapi.h.

◆ SHREGSET_FORCE_HKCU

#define SHREGSET_FORCE_HKCU   0x2 /* Always apply to HKCU */

Definition at line 168 of file shlwapi.h.

◆ SHREGSET_FORCE_HKLM

#define SHREGSET_FORCE_HKLM   0x8 /* Always apply to HKLM */

Definition at line 170 of file shlwapi.h.

◆ SHREGSET_HKCU

#define SHREGSET_HKCU   0x1 /* Apply to HKCU if empty */

Definition at line 167 of file shlwapi.h.

◆ SHREGSET_HKLM

#define SHREGSET_HKLM   0x4 /* Apply to HKLM if empty */

Definition at line 169 of file shlwapi.h.

◆ SHRegSetPath

#define SHRegSetPath   WINELIB_NAME_AW(SHRegSetPath)

Definition at line 106 of file shlwapi.h.

◆ SHRegSetUSValue

#define SHRegSetUSValue   WINELIB_NAME_AW(SHRegSetUSValue)

Definition at line 228 of file shlwapi.h.

◆ SHRegWriteUSValue

#define SHRegWriteUSValue   WINELIB_NAME_AW(SHRegWriteUSValue)

Definition at line 192 of file shlwapi.h.

◆ SHSetValue

#define SHSetValue   WINELIB_NAME_AW(SHSetValue)

Definition at line 82 of file shlwapi.h.

◆ SHStrDup

#define SHStrDup   WINELIB_NAME_AW(SHStrDup)

Definition at line 865 of file shlwapi.h.

◆ SRRF_NOEXPAND

#define SRRF_NOEXPAND   0x10000000

Definition at line 134 of file shlwapi.h.

◆ SRRF_NOVIRT

#define SRRF_NOVIRT   0x40000000

Definition at line 136 of file shlwapi.h.

◆ SRRF_RM_ANY

#define SRRF_RM_ANY   0

Definition at line 129 of file shlwapi.h.

◆ SRRF_RM_NORMAL

#define SRRF_RM_NORMAL   0x10000

Definition at line 130 of file shlwapi.h.

◆ SRRF_RM_SAFE

#define SRRF_RM_SAFE   0x20000

Definition at line 131 of file shlwapi.h.

◆ SRRF_RM_SAFENETWORK

#define SRRF_RM_SAFENETWORK   0x40000

Definition at line 132 of file shlwapi.h.

◆ SRRF_RT_ANY

#define SRRF_RT_ANY   0xffff

Definition at line 127 of file shlwapi.h.

◆ SRRF_RT_DWORD

Definition at line 125 of file shlwapi.h.

◆ SRRF_RT_QWORD

Definition at line 126 of file shlwapi.h.

◆ SRRF_RT_REG_BINARY

#define SRRF_RT_REG_BINARY   0x8

Definition at line 120 of file shlwapi.h.

◆ SRRF_RT_REG_DWORD

#define SRRF_RT_REG_DWORD   0x10

Definition at line 121 of file shlwapi.h.

◆ SRRF_RT_REG_EXPAND_SZ

#define SRRF_RT_REG_EXPAND_SZ   0x4

Definition at line 119 of file shlwapi.h.

◆ SRRF_RT_REG_MULTI_SZ

#define SRRF_RT_REG_MULTI_SZ   0x20

Definition at line 122 of file shlwapi.h.

◆ SRRF_RT_REG_NONE

#define SRRF_RT_REG_NONE   0x1

Definition at line 117 of file shlwapi.h.

◆ SRRF_RT_REG_QWORD

#define SRRF_RT_REG_QWORD   0x40

Definition at line 123 of file shlwapi.h.

◆ SRRF_RT_REG_SZ

#define SRRF_RT_REG_SZ   0x2

Definition at line 118 of file shlwapi.h.

◆ SRRF_ZEROONFAILURE

#define SRRF_ZEROONFAILURE   0x20000000

Definition at line 135 of file shlwapi.h.

◆ STIF_DEFAULT

#define STIF_DEFAULT   __MSABI_LONG(0x0)

Definition at line 797 of file shlwapi.h.

◆ STIF_SUPPORT_HEX

#define STIF_SUPPORT_HEX   __MSABI_LONG(0x1)

Definition at line 798 of file shlwapi.h.

◆ StrCat

#define StrCat   WINELIB_NAME_AW(StrCat)

Definition at line 814 of file shlwapi.h.

◆ StrCatA

#define StrCatA   lstrcatA

Definition at line 812 of file shlwapi.h.

◆ StrCatBuff

#define StrCatBuff   WINELIB_NAME_AW(StrCatBuff)

Definition at line 818 of file shlwapi.h.

◆ StrCatN

#define StrCatN   WINELIB_NAME_AW(StrNCat)

Definition at line 908 of file shlwapi.h.

◆ StrChr

#define StrChr   WINELIB_NAME_AW(StrChr)

Definition at line 824 of file shlwapi.h.

◆ StrChrI

#define StrChrI   WINELIB_NAME_AW(StrChrI)

Definition at line 828 of file shlwapi.h.

◆ StrCmp

#define StrCmp   WINELIB_NAME_AW(StrCmp)

Definition at line 832 of file shlwapi.h.

◆ StrCmpA

#define StrCmpA   lstrcmpA

Definition at line 830 of file shlwapi.h.

◆ StrCmpI

#define StrCmpI   WINELIB_NAME_AW(StrCmpI)

Definition at line 836 of file shlwapi.h.

◆ StrCmpIA

#define StrCmpIA   lstrcmpiA

Definition at line 834 of file shlwapi.h.

◆ StrCmpN

#define StrCmpN   WINELIB_NAME_AW(StrCmpN)

Definition at line 851 of file shlwapi.h.

◆ StrCmpNI

#define StrCmpNI   WINELIB_NAME_AW(StrCmpNI)

Definition at line 856 of file shlwapi.h.

◆ StrCpy

#define StrCpy   WINELIB_NAME_AW(StrCpy)

Definition at line 840 of file shlwapi.h.

◆ StrCpyA

#define StrCpyA   lstrcpyA

Definition at line 838 of file shlwapi.h.

◆ StrCpyN

#define StrCpyN   WINELIB_NAME_AW(StrCpyN)

Definition at line 844 of file shlwapi.h.

◆ StrCpyNA

#define StrCpyNA   lstrcpynA

Definition at line 842 of file shlwapi.h.

◆ StrCSpn

#define StrCSpn   WINELIB_NAME_AW(StrCSpn)

Definition at line 806 of file shlwapi.h.

◆ StrCSpnI

#define StrCSpnI   WINELIB_NAME_AW(StrCSpnI)

Definition at line 810 of file shlwapi.h.

◆ StrDup

#define StrDup   WINELIB_NAME_AW(StrDup)

Definition at line 861 of file shlwapi.h.

◆ StrFormatByteSize

#define StrFormatByteSize   StrFormatByteSize64A

Definition at line 883 of file shlwapi.h.

◆ StrFormatKBSize

#define StrFormatKBSize   WINELIB_NAME_AW(StrFormatKBSize)

Definition at line 889 of file shlwapi.h.

◆ StrFromTimeInterval

#define StrFromTimeInterval   WINELIB_NAME_AW(StrFromTimeInterval)

Definition at line 893 of file shlwapi.h.

◆ StrIntlEqNA

#define StrIntlEqNA (   a,
  b,
  c 
)    StrIsIntlEqualA(TRUE,a,b,c)

Definition at line 899 of file shlwapi.h.

◆ StrIntlEqNIA

#define StrIntlEqNIA (   a,
  b,
  c 
)    StrIsIntlEqualA(FALSE,a,b,c)

Definition at line 902 of file shlwapi.h.

◆ StrIntlEqNIW

#define StrIntlEqNIW (   a,
  b,
  c 
)    StrIsIntlEqualW(FALSE,a,b,c)

Definition at line 903 of file shlwapi.h.

◆ StrIntlEqNW

#define StrIntlEqNW (   a,
  b,
  c 
)    StrIsIntlEqualW(TRUE,a,b,c)

Definition at line 900 of file shlwapi.h.

◆ StrIsIntlEqual

#define StrIsIntlEqual   WINELIB_NAME_AW(StrIsIntlEqual)

Definition at line 897 of file shlwapi.h.

◆ StrNCat

#define StrNCat   WINELIB_NAME_AW(StrNCat)

Definition at line 907 of file shlwapi.h.

◆ StrNCmp

#define StrNCmp   WINELIB_NAME_AW(StrCmpN)

Definition at line 852 of file shlwapi.h.

◆ StrNCmpI

#define StrNCmpI   WINELIB_NAME_AW(StrCmpNI)

Definition at line 857 of file shlwapi.h.

◆ StrNCpy

#define StrNCpy   WINELIB_NAME_AW(StrCpyN)

Definition at line 845 of file shlwapi.h.

◆ StrPBrk

#define StrPBrk   WINELIB_NAME_AW(StrPBrk)

Definition at line 912 of file shlwapi.h.

◆ StrRChr

#define StrRChr   WINELIB_NAME_AW(StrRChr)

Definition at line 916 of file shlwapi.h.

◆ StrRChrI

#define StrRChrI   WINELIB_NAME_AW(StrRChrI)

Definition at line 920 of file shlwapi.h.

◆ StrRetToBuf

#define StrRetToBuf   WINELIB_NAME_AW(StrRetToBuf)

Definition at line 988 of file shlwapi.h.

◆ StrRetToStr

#define StrRetToStr   WINELIB_NAME_AW(StrRetToStr)

Definition at line 984 of file shlwapi.h.

◆ StrRStrI

#define StrRStrI   WINELIB_NAME_AW(StrRStrI)

Definition at line 924 of file shlwapi.h.

◆ StrSpn

#define StrSpn   WINELIB_NAME_AW(StrSpn)

Definition at line 928 of file shlwapi.h.

◆ StrStr

#define StrStr   WINELIB_NAME_AW(StrStr)

Definition at line 932 of file shlwapi.h.

◆ StrStrI

#define StrStrI   WINELIB_NAME_AW(StrStrI)

Definition at line 936 of file shlwapi.h.

◆ StrToInt

#define StrToInt   WINELIB_NAME_AW(StrToInt)

Definition at line 943 of file shlwapi.h.

◆ StrToIntEx

#define StrToIntEx   WINELIB_NAME_AW(StrToIntEx)

Definition at line 948 of file shlwapi.h.

◆ StrToIntEx64

#define StrToIntEx64   WINELIB_NAME_AW(StrToIntEx64)

Definition at line 952 of file shlwapi.h.

◆ StrToLong

#define StrToLong   WINELIB_NAME_AW(StrToInt)

Definition at line 944 of file shlwapi.h.

◆ StrTrim

#define StrTrim   WINELIB_NAME_AW(StrTrim)

Definition at line 956 of file shlwapi.h.

◆ TPS_EXECUTEIO

#define TPS_EXECUTEIO   0x00000001

Definition at line 1165 of file shlwapi.h.

◆ TPS_LONGEXECTIME

#define TPS_LONGEXECTIME   0x00000008

Definition at line 1166 of file shlwapi.h.

◆ URL_APPLY_DEFAULT

#define URL_APPLY_DEFAULT   0x00000001

Definition at line 664 of file shlwapi.h.

◆ URL_APPLY_FORCEAPPLY

#define URL_APPLY_FORCEAPPLY   0x00000008

Definition at line 661 of file shlwapi.h.

◆ URL_APPLY_GUESSFILE

#define URL_APPLY_GUESSFILE   0x00000004

Definition at line 662 of file shlwapi.h.

◆ URL_APPLY_GUESSSCHEME

#define URL_APPLY_GUESSSCHEME   0x00000002

Definition at line 663 of file shlwapi.h.

◆ URL_BROWSER_MODE

#define URL_BROWSER_MODE   URL_DONT_ESCAPE_EXTRA_INFO

Definition at line 691 of file shlwapi.h.

◆ URL_CONVERT_IF_DOSPATH

#define URL_CONVERT_IF_DOSPATH   0x00200000

Definition at line 680 of file shlwapi.h.

◆ URL_DONT_ESCAPE_EXTRA_INFO

#define URL_DONT_ESCAPE_EXTRA_INFO   0x02000000

Definition at line 676 of file shlwapi.h.

◆ URL_DONT_SIMPLIFY

#define URL_DONT_SIMPLIFY   0x08000000

Definition at line 674 of file shlwapi.h.

◆ URL_DONT_UNESCAPE

#define URL_DONT_UNESCAPE   0x00020000

Definition at line 685 of file shlwapi.h.

◆ URL_DONT_UNESCAPE_EXTRA_INFO

#define URL_DONT_UNESCAPE_EXTRA_INFO   URL_DONT_ESCAPE_EXTRA_INFO

Definition at line 692 of file shlwapi.h.

◆ URL_ESCAPE_AS_UTF8

#define URL_ESCAPE_AS_UTF8   0x00040000

Definition at line 684 of file shlwapi.h.

◆ URL_ESCAPE_ASCII_URI_COMPONENT

#define URL_ESCAPE_ASCII_URI_COMPONENT   0x00080000

Definition at line 683 of file shlwapi.h.

◆ URL_ESCAPE_PERCENT

#define URL_ESCAPE_PERCENT   0x00001000

Definition at line 689 of file shlwapi.h.

◆ URL_ESCAPE_SEGMENT_ONLY

#define URL_ESCAPE_SEGMENT_ONLY   0x00002000

Definition at line 688 of file shlwapi.h.

◆ URL_ESCAPE_SPACES_ONLY

#define URL_ESCAPE_SPACES_ONLY   0x04000000

Definition at line 675 of file shlwapi.h.

◆ URL_ESCAPE_UNSAFE

#define URL_ESCAPE_UNSAFE   0x20000000

Definition at line 671 of file shlwapi.h.

◆ URL_ESCAPE_URI_COMPONENT

#define URL_ESCAPE_URI_COMPONENT   (URL_ESCAPE_ASCII_URI_COMPONENT | URL_ESCAPE_AS_UTF8)

Definition at line 693 of file shlwapi.h.

◆ URL_FILE_USE_PATHURL

#define URL_FILE_USE_PATHURL   0x00010000

Definition at line 686 of file shlwapi.h.

◆ URL_INTERNAL_PATH

#define URL_INTERNAL_PATH   0x00800000

Definition at line 678 of file shlwapi.h.

◆ URL_NO_META

#define URL_NO_META   URL_DONT_SIMPLIFY

Definition at line 694 of file shlwapi.h.

◆ URL_PARTFLAG_KEEPSCHEME

#define URL_PARTFLAG_KEEPSCHEME   0x00000001

Definition at line 647 of file shlwapi.h.

◆ URL_PLUGGABLE_PROTOCOL

#define URL_PLUGGABLE_PROTOCOL   0x40000000

Definition at line 670 of file shlwapi.h.

◆ URL_UNESCAPE

#define URL_UNESCAPE   0x10000000

Definition at line 672 of file shlwapi.h.

◆ URL_UNESCAPE_AS_UTF8

#define URL_UNESCAPE_AS_UTF8   URL_ESCAPE_AS_UTF8

Definition at line 695 of file shlwapi.h.

◆ URL_UNESCAPE_HIGH_ANSI_ONLY

#define URL_UNESCAPE_HIGH_ANSI_ONLY   0x00400000

Definition at line 679 of file shlwapi.h.

◆ URL_UNESCAPE_INPLACE

#define URL_UNESCAPE_INPLACE   0x00100000

Definition at line 681 of file shlwapi.h.

◆ URL_UNESCAPE_URI_COMPONENT

#define URL_UNESCAPE_URI_COMPONENT   URL_UNESCAPE_AS_UTF8

Definition at line 696 of file shlwapi.h.

◆ URL_WININET_COMPATIBILITY

#define URL_WININET_COMPATIBILITY   0x80000000

Definition at line 669 of file shlwapi.h.

◆ UrlApplyScheme

#define UrlApplyScheme   WINELIB_NAME_AW(UrlApplyScheme)

Definition at line 700 of file shlwapi.h.

◆ UrlCanonicalize

#define UrlCanonicalize   WINELIB_NAME_AW(UrlCanonicalize)

Definition at line 704 of file shlwapi.h.

◆ UrlCombine

#define UrlCombine   WINELIB_NAME_AW(UrlCombine)

Definition at line 708 of file shlwapi.h.

◆ UrlCompare

#define UrlCompare   WINELIB_NAME_AW(UrlCompare)

Definition at line 712 of file shlwapi.h.

◆ UrlCreateFromPath

#define UrlCreateFromPath   WINELIB_NAME_AW(UrlCreateFromPath)

Definition at line 766 of file shlwapi.h.

◆ UrlEscape

#define UrlEscape   WINELIB_NAME_AW(UrlEscape)

Definition at line 716 of file shlwapi.h.

◆ UrlEscapeSpaces

#define UrlEscapeSpaces   WINELIB_NAME_AW(UrlEscapeSpaces)

Definition at line 722 of file shlwapi.h.

◆ UrlEscapeSpacesA

#define UrlEscapeSpacesA (   x,
  y,
  z 
)
Value:
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLdouble GLdouble z
Definition: glext.h:5874
WINSHLWAPI HRESULT WINAPI UrlCanonicalizeA(LPCSTR, LPSTR, LPDWORD, DWORD)
#define URL_DONT_ESCAPE_EXTRA_INFO
Definition: shlwapi.h:676
#define URL_ESCAPE_SPACES_ONLY
Definition: shlwapi.h:675

Definition at line 718 of file shlwapi.h.

◆ UrlEscapeSpacesW

#define UrlEscapeSpacesW (   x,
  y,
  z 
)
Value:
WINSHLWAPI HRESULT WINAPI UrlCanonicalizeW(LPCWSTR, LPWSTR, LPDWORD, DWORD)

Definition at line 720 of file shlwapi.h.

◆ UrlGetLocation

#define UrlGetLocation   WINELIB_NAME_AW(UrlGetLocation)

Definition at line 726 of file shlwapi.h.

◆ UrlGetPart

#define UrlGetPart   WINELIB_NAME_AW(UrlGetPart)

Definition at line 730 of file shlwapi.h.

◆ UrlHash

#define UrlHash   WINELIB_NAME_AW(UrlHash)

Definition at line 736 of file shlwapi.h.

◆ UrlIs

#define UrlIs   WINELIB_NAME_AW(UrlIs)

Definition at line 740 of file shlwapi.h.

◆ UrlIsFileUrl

#define UrlIsFileUrl   WINELIB_NAME_AW(UrlIsFileUrl)

Definition at line 752 of file shlwapi.h.

◆ UrlIsFileUrlA

#define UrlIsFileUrlA (   x)    UrlIsA(x, URLIS_FILEURL)

Definition at line 750 of file shlwapi.h.

◆ UrlIsFileUrlW

#define UrlIsFileUrlW (   x)    UrlIsW(x, URLIS_FILEURL)

Definition at line 751 of file shlwapi.h.

◆ UrlIsNoHistory

#define UrlIsNoHistory   WINELIB_NAME_AW(UrlIsNoHistory)

Definition at line 744 of file shlwapi.h.

◆ UrlIsOpaque

#define UrlIsOpaque   WINELIB_NAME_AW(UrlIsOpaque)

Definition at line 748 of file shlwapi.h.

◆ UrlUnescape

#define UrlUnescape   WINELIB_NAME_AW(UrlUnescape)

Definition at line 756 of file shlwapi.h.

◆ UrlUnescapeInPlace

#define UrlUnescapeInPlace   WINELIB_NAME_AW(UrlUnescapeInPlace)

Definition at line 762 of file shlwapi.h.

◆ UrlUnescapeInPlaceA

#define UrlUnescapeInPlaceA (   x,
  y 
)
Value:
#define NULL
Definition: types.h:112
WINSHLWAPI HRESULT WINAPI UrlUnescapeA(LPSTR, LPSTR, LPDWORD, DWORD)
#define URL_UNESCAPE_INPLACE
Definition: shlwapi.h:681

Definition at line 758 of file shlwapi.h.

◆ UrlUnescapeInPlaceW

#define UrlUnescapeInPlaceW (   x,
  y 
)
Value:
WINSHLWAPI HRESULT WINAPI UrlUnescapeW(LPWSTR, LPWSTR, LPDWORD, DWORD)

Definition at line 760 of file shlwapi.h.

◆ WINSHLWAPI

#define WINSHLWAPI   DECLSPEC_IMPORT

Definition at line 36 of file shlwapi.h.

◆ wnsprintf

#define wnsprintf   WINELIB_NAME_AW(wnsprintf)

Definition at line 966 of file shlwapi.h.

Typedef Documentation

◆ ASSOCF

typedef DWORD ASSOCF

Definition at line 257 of file shlwapi.h.

◆ DLLGETVERSIONPROC

typedef HRESULT(CALLBACK * DLLGETVERSIONPROC) (DLLVERSIONINFO *)

Definition at line 1098 of file shlwapi.h.

◆ DLLVERSIONINFO

◆ DLLVERSIONINFO2

◆ HUSKEY

typedef HANDLE HUSKEY

Definition at line 173 of file shlwapi.h.

◆ LPQITAB

typedef struct QITAB * LPQITAB

◆ LPQUERYASSOCIATIONS

typedef struct IQueryAssociations* LPQUERYASSOCIATIONS

Definition at line 305 of file shlwapi.h.

◆ PARSEDURLA

◆ PARSEDURLW

◆ PHUSKEY

typedef HUSKEY* PHUSKEY

Definition at line 174 of file shlwapi.h.

◆ PPARSEDURLA

◆ PPARSEDURLW

◆ SRRF

typedef INT SRRF

Definition at line 115 of file shlwapi.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ASSOCF_NONE 
ASSOCF_INIT_NOREMAPCLSID 
ASSOCF_INIT_BYEXENAME 
ASSOCF_OPEN_BYEXENAME 
ASSOCF_INIT_DEFAULTTOSTAR 
ASSOCF_INIT_DEFAULTTOFOLDER 
ASSOCF_NOUSERSETTINGS 
ASSOCF_NOTRUNCATE 
ASSOCF_VERIFY 
ASSOCF_REMAPRUNDLL 
ASSOCF_NOFIXUPS 
ASSOCF_IGNOREBASECLASS 
ASSOCF_INIT_IGNOREUNKNOWN 
ASSOCF_INIT_FIXED_PROGID 
ASSOCF_IS_PROTOCOL 
ASSOCF_INIT_FOR_FILE 

Definition at line 237 of file shlwapi.h.

238{
239 ASSOCF_NONE = 0x0000,
240 ASSOCF_INIT_NOREMAPCLSID = 0x0001, /* Don't map clsid->progid */
241 ASSOCF_INIT_BYEXENAME = 0x0002, /* .exe name given */
242 ASSOCF_OPEN_BYEXENAME = 0x0002, /* Synonym */
243 ASSOCF_INIT_DEFAULTTOSTAR = 0x0004, /* Use * as base */
244 ASSOCF_INIT_DEFAULTTOFOLDER = 0x0008, /* Use folder as base */
245 ASSOCF_NOUSERSETTINGS = 0x0010, /* No HKCU reads */
246 ASSOCF_NOTRUNCATE = 0x0020, /* Don't truncate return */
247 ASSOCF_VERIFY = 0x0040, /* Verify data */
248 ASSOCF_REMAPRUNDLL = 0x0080, /* Get rundll args */
249 ASSOCF_NOFIXUPS = 0x0100, /* Don't fixup errors */
250 ASSOCF_IGNOREBASECLASS = 0x0200, /* Don't read baseclass */
251 ASSOCF_INIT_IGNOREUNKNOWN = 0x0400, /* Fail for unknown progid */
252 ASSOCF_INIT_FIXED_PROGID = 0x0800, /* Used passed string as progid, don't try to map it */
253 ASSOCF_IS_PROTOCOL = 0x1000, /* Treat as protocol, that should be mapped */
254 ASSOCF_INIT_FOR_FILE = 0x2000, /* progid is for file extension association */
255};
@ ASSOCF_REMAPRUNDLL
Definition: shlwapi.h:867
@ ASSOCF_IS_PROTOCOL
Definition: shlwapi.h:873
@ ASSOCF_INIT_FIXED_PROGID
Definition: shlwapi.h:872
@ ASSOCF_NOFIXUPS
Definition: shlwapi.h:868
@ ASSOCF_INIT_DEFAULTTOSTAR
Definition: shlwapi.h:862
@ ASSOCF_INIT_DEFAULTTOFOLDER
Definition: shlwapi.h:863
@ ASSOCF_IGNOREBASECLASS
Definition: shlwapi.h:869
@ ASSOCF_INIT_NOREMAPCLSID
Definition: shlwapi.h:859
@ ASSOCF_VERIFY
Definition: shlwapi.h:866
@ ASSOCF_INIT_IGNOREUNKNOWN
Definition: shlwapi.h:870
@ ASSOCF_NOUSERSETTINGS
Definition: shlwapi.h:864
@ ASSOCF_OPEN_BYEXENAME
Definition: shlwapi.h:861
@ ASSOCF_NONE
Definition: shlwapi.h:858
@ ASSOCF_INIT_FOR_FILE
Definition: shlwapi.h:874
@ ASSOCF_NOTRUNCATE
Definition: shlwapi.h:865
@ ASSOCF_INIT_BYEXENAME
Definition: shlwapi.h:860

◆ anonymous enum

anonymous enum
Enumerator
CTF_INSIST 
CTF_THREAD_REF 
CTF_PROCESS_REF 
CTF_COINIT_STA 
CTF_COINIT 
CTF_FREELIBANDEXIT 
CTF_REF_COUNTED 
CTF_WAIT_ALLOWCOM 
CTF_UNUSED 
CTF_INHERITWOW64 
CTF_WAIT_NO_REENTRACY 
CTF_KEYBOARD_LOCALE 
CTF_OLEINITIALIZE 
CTF_COINIT_MTA 
CTF_NOADDREFLIB 

Definition at line 1062 of file shlwapi.h.

1063{
1064 CTF_INSIST = 0x00000001, /* Always call */
1065 CTF_THREAD_REF = 0x00000002, /* Hold thread ref */
1066 CTF_PROCESS_REF = 0x00000004, /* Hold process ref */
1067 CTF_COINIT_STA = 0x00000008,
1068 CTF_COINIT = 0x00000008, /* Startup COM first */
1069 CTF_FREELIBANDEXIT = 0x00000010, /* Hold DLL ref */
1070 CTF_REF_COUNTED = 0x00000020, /* Thread is ref counted */
1071 CTF_WAIT_ALLOWCOM = 0x00000040, /* Allow marshalling */
1072 CTF_UNUSED = 0x00000080,
1073 CTF_INHERITWOW64 = 0x00000100,
1074 CTF_WAIT_NO_REENTRACY = 0x00000200,
1075 CTF_KEYBOARD_LOCALE = 0x00000400,
1076 CTF_OLEINITIALIZE = 0x00000800,
1077 CTF_COINIT_MTA = 0x00001000,
1078 CTF_NOADDREFLIB = 0x00002000,
1079};
@ CTF_PROCESS_REF
Definition: shlwapi.h:73
@ CTF_NOADDREFLIB
Definition: shlwapi.h:92
@ CTF_INSIST
Definition: shlwapi.h:71
@ CTF_UNUSED
Definition: shlwapi.h:82
@ CTF_KEYBOARD_LOCALE
Definition: shlwapi.h:89
@ CTF_WAIT_ALLOWCOM
Definition: shlwapi.h:79
@ CTF_COINIT_STA
Definition: shlwapi.h:74
@ CTF_INHERITWOW64
Definition: shlwapi.h:83
@ CTF_OLEINITIALIZE
Definition: shlwapi.h:90
@ CTF_REF_COUNTED
Definition: shlwapi.h:78
@ CTF_COINIT_MTA
Definition: shlwapi.h:91
@ CTF_COINIT
Definition: shlwapi.h:75
@ CTF_THREAD_REF
Definition: shlwapi.h:72
@ CTF_FREELIBANDEXIT
Definition: shlwapi.h:77
@ CTF_WAIT_NO_REENTRACY
Definition: shlwapi.h:1074

◆ ASSOCDATA

Enumerator
ASSOCDATA_MSIDESCRIPTOR 
ASSOCDATA_NOACTIVATEHANDLER 
ASSOCDATA_QUERYCLASSSTORE 
ASSOCDATA_HASPERUSERASSOC 
ASSOCDATA_EDITFLAGS 
ASSOCDATA_VALUE 
ASSOCDATA_MAX 
ASSOCDATA_MSIDESCRIPTOR 
ASSOCDATA_NOACTIVATEHANDLER 
ASSOCDATA_QUERYCLASSSTORE 
ASSOCDATA_HASPERUSERASSOC 
ASSOCDATA_EDITFLAGS 
ASSOCDATA_VALUE 
ASSOCDATA_MAX 

Definition at line 289 of file shlwapi.h.

290{
291 ASSOCDATA_MSIDESCRIPTOR = 1, /* Component descriptor */
292 ASSOCDATA_NOACTIVATEHANDLER, /* Don't activate */
293 ASSOCDATA_QUERYCLASSSTORE, /* Look in Class Store */
294 ASSOCDATA_HASPERUSERASSOC, /* Use user association */
295 ASSOCDATA_EDITFLAGS, /* Edit flags */
296 ASSOCDATA_VALUE, /* pszExtra is value */
298} ASSOCDATA;
ASSOCDATA
Definition: shlwapi.h:926
@ ASSOCDATA_HASPERUSERASSOC
Definition: shlwapi.h:930
@ ASSOCDATA_EDITFLAGS
Definition: shlwapi.h:932
@ ASSOCDATA_MSIDESCRIPTOR
Definition: shlwapi.h:927
@ ASSOCDATA_VALUE
Definition: shlwapi.h:933
@ ASSOCDATA_NOACTIVATEHANDLER
Definition: shlwapi.h:928
@ ASSOCDATA_MAX
Definition: shlwapi.h:935
@ ASSOCDATA_QUERYCLASSSTORE
Definition: shlwapi.h:929

◆ ASSOCENUM

Enumerator
ASSOCENUM_NONE 
ASSOCENUM_NONE 

Definition at line 300 of file shlwapi.h.

301{
303} ASSOCENUM;
ASSOCENUM
Definition: shlwapi.h:938
@ ASSOCENUM_NONE
Definition: shlwapi.h:939

◆ ASSOCKEY

Enumerator
ASSOCKEY_SHELLEXECCLASS 
ASSOCKEY_APP 
ASSOCKEY_CLASS 
ASSOCKEY_BASECLASS 
ASSOCKEY_MAX 
ASSOCKEY_SHELLEXECCLASS 
ASSOCKEY_APP 
ASSOCKEY_CLASS 
ASSOCKEY_BASECLASS 
ASSOCKEY_MAX 

Definition at line 280 of file shlwapi.h.

281{
282 ASSOCKEY_SHELLEXECCLASS = 1, /* Key for ShellExec */
283 ASSOCKEY_APP, /* Application */
284 ASSOCKEY_CLASS, /* Progid or class */
285 ASSOCKEY_BASECLASS, /* Base class */
287} ASSOCKEY;
ASSOCKEY
Definition: shlwapi.h:918
@ ASSOCKEY_CLASS
Definition: shlwapi.h:921
@ ASSOCKEY_SHELLEXECCLASS
Definition: shlwapi.h:919
@ ASSOCKEY_MAX
Definition: shlwapi.h:923
@ ASSOCKEY_BASECLASS
Definition: shlwapi.h:922
@ ASSOCKEY_APP
Definition: shlwapi.h:920

◆ ASSOCSTR

Enumerator
ASSOCSTR_COMMAND 
ASSOCSTR_EXECUTABLE 
ASSOCSTR_FRIENDLYDOCNAME 
ASSOCSTR_FRIENDLYAPPNAME 
ASSOCSTR_NOOPEN 
ASSOCSTR_SHELLNEWVALUE 
ASSOCSTR_DDECOMMAND 
ASSOCSTR_DDEIFEXEC 
ASSOCSTR_DDEAPPLICATION 
ASSOCSTR_DDETOPIC 
ASSOCSTR_INFOTIP 
ASSOCSTR_QUICKTIP 
ASSOCSTR_TILEINFO 
ASSOCSTR_CONTENTTYPE 
ASSOCSTR_DEFAULTICON 
ASSOCSTR_SHELLEXTENSION 
ASSOCSTR_DROPTARGET 
ASSOCSTR_DELEGATEEXECUTE 
ASSOCSTR_SUPPORTED_URI_PROTOCOLS 
ASSOCSTR_PROGID 
ASSOCSTR_APPID 
ASSOCSTR_APPPUBLISHER 
ASSOCSTR_APPICONREFERENCE 
ASSOCSTR_MAX 
ASSOCSTR_COMMAND 
ASSOCSTR_EXECUTABLE 
ASSOCSTR_FRIENDLYDOCNAME 
ASSOCSTR_FRIENDLYAPPNAME 
ASSOCSTR_NOOPEN 
ASSOCSTR_SHELLNEWVALUE 
ASSOCSTR_DDECOMMAND 
ASSOCSTR_DDEIFEXEC 
ASSOCSTR_DDEAPPLICATION 
ASSOCSTR_DDETOPIC 
ASSOCSTR_INFOTIP 
ASSOCSTR_QUICKTIP 
ASSOCSTR_TILEINFO 
ASSOCSTR_CONTENTTYPE 
ASSOCSTR_DEFAULTICON 
ASSOCSTR_SHELLEXTENSION 
ASSOCSTR_MAX 

Definition at line 259 of file shlwapi.h.

260{
261 ASSOCSTR_COMMAND = 1, /* Verb command */
262 ASSOCSTR_EXECUTABLE, /* .exe from command string */
263 ASSOCSTR_FRIENDLYDOCNAME, /* Friendly doc type name */
264 ASSOCSTR_FRIENDLYAPPNAME, /* Friendly .exe name */
265 ASSOCSTR_NOOPEN, /* noopen value */
266 ASSOCSTR_SHELLNEWVALUE, /* Use shellnew key */
267 ASSOCSTR_DDECOMMAND, /* DDE command template */
268 ASSOCSTR_DDEIFEXEC, /* DDE command for process create */
269 ASSOCSTR_DDEAPPLICATION, /* DDE app name */
270 ASSOCSTR_DDETOPIC, /* DDE topic */
271 ASSOCSTR_INFOTIP, /* Infotip */
272 ASSOCSTR_QUICKTIP, /* Quick infotip */
273 ASSOCSTR_TILEINFO, /* Properties for tileview */
274 ASSOCSTR_CONTENTTYPE, /* Mimetype */
275 ASSOCSTR_DEFAULTICON, /* Icon */
276 ASSOCSTR_SHELLEXTENSION, /* GUID for shell extension handler */
278} ASSOCSTR;
ASSOCSTR
Definition: shlwapi.h:885
@ ASSOCSTR_CONTENTTYPE
Definition: shlwapi.h:900
@ ASSOCSTR_SHELLEXTENSION
Definition: shlwapi.h:902
@ ASSOCSTR_TILEINFO
Definition: shlwapi.h:899
@ ASSOCSTR_SHELLNEWVALUE
Definition: shlwapi.h:891
@ ASSOCSTR_COMMAND
Definition: shlwapi.h:886
@ ASSOCSTR_DDEAPPLICATION
Definition: shlwapi.h:894
@ ASSOCSTR_DDECOMMAND
Definition: shlwapi.h:892
@ ASSOCSTR_FRIENDLYDOCNAME
Definition: shlwapi.h:888
@ ASSOCSTR_MAX
Definition: shlwapi.h:915
@ ASSOCSTR_NOOPEN
Definition: shlwapi.h:890
@ ASSOCSTR_DDETOPIC
Definition: shlwapi.h:895
@ ASSOCSTR_DDEIFEXEC
Definition: shlwapi.h:893
@ ASSOCSTR_INFOTIP
Definition: shlwapi.h:896
@ ASSOCSTR_FRIENDLYAPPNAME
Definition: shlwapi.h:889
@ ASSOCSTR_EXECUTABLE
Definition: shlwapi.h:887
@ ASSOCSTR_DEFAULTICON
Definition: shlwapi.h:901
@ ASSOCSTR_QUICKTIP
Definition: shlwapi.h:898

◆ SFBS_FLAGS

Enumerator
SFBS_FLAGS_ROUND_TO_NEAREST_DISPLAYED_DIGIT 
SFBS_FLAGS_TRUNCATE_UNDISPLAYED_DECIMAL_DIGITS 

Definition at line 869 of file shlwapi.h.

869 {
872} SFBS_FLAGS;
@ SFBS_FLAGS_TRUNCATE_UNDISPLAYED_DECIMAL_DIGITS
Definition: shlwapi.h:1265
@ SFBS_FLAGS_ROUND_TO_NEAREST_DISPLAYED_DIGIT
Definition: shlwapi.h:1264
SFBS_FLAGS
Definition: shlwapi.h:869

◆ SHREGDEL_FLAGS

Enumerator
SHREGDEL_DEFAULT 
SHREGDEL_HKCU 
SHREGDEL_HKLM 
SHREGDEL_BOTH 
SHREGDEL_DEFAULT 
SHREGDEL_HKCU 
SHREGDEL_HKLM 
SHREGDEL_BOTH 

Definition at line 151 of file shlwapi.h.

152{
154 SHREGDEL_HKCU = 0x1,
155 SHREGDEL_HKLM = 0x10,
SHREGDEL_FLAGS
Definition: shlwapi.h:725
@ SHREGDEL_HKLM
Definition: shlwapi.h:728
@ SHREGDEL_BOTH
Definition: shlwapi.h:729
@ SHREGDEL_HKCU
Definition: shlwapi.h:727
@ SHREGDEL_DEFAULT
Definition: shlwapi.h:726

◆ SHREGENUM_FLAGS

Enumerator
SHREGENUM_DEFAULT 
SHREGENUM_HKCU 
SHREGENUM_HKLM 
SHREGENUM_BOTH 
SHREGENUM_DEFAULT 
SHREGENUM_HKCU 
SHREGENUM_HKLM 
SHREGENUM_BOTH 

Definition at line 159 of file shlwapi.h.

160{
162 SHREGENUM_HKCU = 0x1,
163 SHREGENUM_HKLM = 0x10,
SHREGENUM_FLAGS
Definition: shlwapi.h:732
@ SHREGENUM_HKCU
Definition: shlwapi.h:734
@ SHREGENUM_BOTH
Definition: shlwapi.h:736
@ SHREGENUM_DEFAULT
Definition: shlwapi.h:733
@ SHREGENUM_HKLM
Definition: shlwapi.h:735

◆ URL_PART

Enumerator
URL_PART_NONE 
URL_PART_SCHEME 
URL_PART_HOSTNAME 
URL_PART_USERNAME 
URL_PART_PASSWORD 
URL_PART_PORT 
URL_PART_QUERY 
URL_PART_NONE 
URL_PART_SCHEME 
URL_PART_HOSTNAME 
URL_PART_USERNAME 
URL_PART_PASSWORD 
URL_PART_PORT 
URL_PART_QUERY 

Definition at line 637 of file shlwapi.h.

637 {
638 URL_PART_NONE = 0,
639 URL_PART_SCHEME = 1,
645} URL_PART;
URL_PART
Definition: shlwapi.h:584
@ URL_PART_SCHEME
Definition: shlwapi.h:586
@ URL_PART_QUERY
Definition: shlwapi.h:591
@ URL_PART_HOSTNAME
Definition: shlwapi.h:587
@ URL_PART_NONE
Definition: shlwapi.h:585
@ URL_PART_USERNAME
Definition: shlwapi.h:588
@ URL_PART_PORT
Definition: shlwapi.h:590
@ URL_PART_PASSWORD
Definition: shlwapi.h:589

◆ URL_SCHEME

Enumerator
URL_SCHEME_INVALID 
URL_SCHEME_UNKNOWN 
URL_SCHEME_FTP 
URL_SCHEME_HTTP 
URL_SCHEME_GOPHER 
URL_SCHEME_MAILTO 
URL_SCHEME_NEWS 
URL_SCHEME_NNTP 
URL_SCHEME_TELNET 
URL_SCHEME_WAIS 
URL_SCHEME_FILE 
URL_SCHEME_MK 
URL_SCHEME_HTTPS 
URL_SCHEME_SHELL 
URL_SCHEME_SNEWS 
URL_SCHEME_LOCAL 
URL_SCHEME_JAVASCRIPT 
URL_SCHEME_VBSCRIPT 
URL_SCHEME_ABOUT 
URL_SCHEME_RES 
URL_SCHEME_MSSHELLROOTED 
URL_SCHEME_MSSHELLIDLIST 
URL_SCHEME_MSHELP 
URL_SCHEME_MSSHELLDEVICE 
URL_SCHEME_WILDCARD 
URL_SCHEME_SEARCH_MS 
URL_SCHEME_SEARCH 
URL_SCHEME_KNOWNFOLDER 
URL_SCHEME_MAXVALUE 
URL_SCHEME_INVALID 
URL_SCHEME_UNKNOWN 
URL_SCHEME_FTP 
URL_SCHEME_HTTP 
URL_SCHEME_GOPHER 
URL_SCHEME_MAILTO 
URL_SCHEME_NEWS 
URL_SCHEME_NNTP 
URL_SCHEME_TELNET 
URL_SCHEME_WAIS 
URL_SCHEME_FILE 
URL_SCHEME_MK 
URL_SCHEME_HTTPS 
URL_SCHEME_SHELL 
URL_SCHEME_SNEWS 
URL_SCHEME_LOCAL 
URL_SCHEME_JAVASCRIPT 
URL_SCHEME_VBSCRIPT 
URL_SCHEME_ABOUT 
URL_SCHEME_RES 
URL_SCHEME_MSSHELLROOTED 
URL_SCHEME_MSSHELLIDLIST 
URL_SCHEME_MSHELP 
URL_SCHEME_MSSHELLDEVICE 
URL_SCHEME_WILDCARD 
URL_SCHEME_SEARCH_MS 
URL_SCHEME_SEARCH 
URL_SCHEME_KNOWNFOLDER 
URL_SCHEME_MAXVALUE 

Definition at line 604 of file shlwapi.h.

604 {
634} URL_SCHEME;
URL_SCHEME
Definition: shlwapi.h:542
@ URL_SCHEME_SNEWS
Definition: shlwapi.h:557
@ URL_SCHEME_MAILTO
Definition: shlwapi.h:548
@ URL_SCHEME_KNOWNFOLDER
Definition: shlwapi.h:579
@ URL_SCHEME_LOCAL
Definition: shlwapi.h:558
@ URL_SCHEME_MK
Definition: shlwapi.h:554
@ URL_SCHEME_TELNET
Definition: shlwapi.h:551
@ URL_SCHEME_UNKNOWN
Definition: shlwapi.h:544
@ URL_SCHEME_MSSHELLROOTED
Definition: shlwapi.h:564
@ URL_SCHEME_WAIS
Definition: shlwapi.h:552
@ URL_SCHEME_HTTPS
Definition: shlwapi.h:555
@ URL_SCHEME_SEARCH
Definition: shlwapi.h:576
@ URL_SCHEME_FTP
Definition: shlwapi.h:545
@ URL_SCHEME_RES
Definition: shlwapi.h:562
@ URL_SCHEME_NEWS
Definition: shlwapi.h:549
@ URL_SCHEME_MSSHELLIDLIST
Definition: shlwapi.h:565
@ URL_SCHEME_HTTP
Definition: shlwapi.h:546
@ URL_SCHEME_FILE
Definition: shlwapi.h:553
@ URL_SCHEME_WILDCARD
Definition: shlwapi.h:570
@ URL_SCHEME_ABOUT
Definition: shlwapi.h:561
@ URL_SCHEME_NNTP
Definition: shlwapi.h:550
@ URL_SCHEME_INVALID
Definition: shlwapi.h:543
@ URL_SCHEME_SHELL
Definition: shlwapi.h:556
@ URL_SCHEME_MSSHELLDEVICE
Definition: shlwapi.h:569
@ URL_SCHEME_VBSCRIPT
Definition: shlwapi.h:560
@ URL_SCHEME_MSHELP
Definition: shlwapi.h:566
@ URL_SCHEME_SEARCH_MS
Definition: shlwapi.h:573
@ URL_SCHEME_GOPHER
Definition: shlwapi.h:547
@ URL_SCHEME_JAVASCRIPT
Definition: shlwapi.h:559
@ URL_SCHEME_MAXVALUE
Definition: shlwapi.h:581

◆ URLIS

Enumerator
URLIS_URL 
URLIS_OPAQUE 
URLIS_NOHISTORY 
URLIS_FILEURL 
URLIS_APPLIABLE 
URLIS_DIRECTORY 
URLIS_HASQUERY 
URLIS_URL 
URLIS_OPAQUE 
URLIS_NOHISTORY 
URLIS_FILEURL 
URLIS_APPLIABLE 
URLIS_DIRECTORY 
URLIS_HASQUERY 

Definition at line 650 of file shlwapi.h.

650 {
651 URLIS_URL,
658} URLIS;
URLIS
Definition: shlwapi.h:596
@ URLIS_NOHISTORY
Definition: shlwapi.h:599
@ URLIS_OPAQUE
Definition: shlwapi.h:598
@ URLIS_APPLIABLE
Definition: shlwapi.h:601
@ URLIS_DIRECTORY
Definition: shlwapi.h:602
@ URLIS_FILEURL
Definition: shlwapi.h:600
@ URLIS_URL
Definition: shlwapi.h:597
@ URLIS_HASQUERY
Definition: shlwapi.h:603

Function Documentation

◆ AssocCreate()

WINSHLWAPI HRESULT WINAPI AssocCreate ( CLSID  ,
REFIID  ,
LPVOID  
)

◆ AssocIsDangerous()

WINSHLWAPI BOOL WINAPI AssocIsDangerous ( LPCWSTR  lpszAssoc)

Definition at line 627 of file assoc.c.

628{
629 FIXME("%s\n", debugstr_w(lpszAssoc));
630 return FALSE;
631}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define FALSE
Definition: types.h:117
#define debugstr_w
Definition: kernel32.h:32

◆ AssocQueryKeyA()

WINSHLWAPI HRESULT WINAPI AssocQueryKeyA ( ASSOCF  ,
ASSOCKEY  ,
LPCSTR  ,
LPCSTR  ,
PHKEY   
)

◆ AssocQueryKeyW()

WINSHLWAPI HRESULT WINAPI AssocQueryKeyW ( ASSOCF  ,
ASSOCKEY  ,
LPCWSTR  ,
LPCWSTR  ,
PHKEY   
)

◆ AssocQueryStringA()

WINSHLWAPI HRESULT WINAPI AssocQueryStringA ( ASSOCF  ,
ASSOCSTR  ,
LPCSTR  ,
LPCSTR  ,
LPSTR  ,
LPDWORD   
)

◆ AssocQueryStringByKeyA()

WINSHLWAPI HRESULT WINAPI AssocQueryStringByKeyA ( ASSOCF  ,
ASSOCSTR  ,
HKEY  ,
LPCSTR  ,
LPSTR  ,
LPDWORD   
)

◆ AssocQueryStringByKeyW()

WINSHLWAPI HRESULT WINAPI AssocQueryStringByKeyW ( ASSOCF  ,
ASSOCSTR  ,
HKEY  ,
LPCWSTR  ,
LPWSTR  ,
LPDWORD   
)

◆ AssocQueryStringW()

WINSHLWAPI HRESULT WINAPI AssocQueryStringW ( ASSOCF  ,
ASSOCSTR  ,
LPCWSTR  ,
LPCWSTR  ,
LPWSTR  ,
LPDWORD   
)

◆ ChrCmpIA()

WINSHLWAPI BOOL WINAPI ChrCmpIA ( WORD  ch1,
WORD  ch2 
)

Definition at line 342 of file string.c.

343{
344 TRACE("%#x, %#x\n", ch1, ch2);
345
346 return char_compare(ch1, ch2, NORM_IGNORECASE);
347}
static BOOL char_compare(WORD ch1, WORD ch2, DWORD flags)
Definition: string.c:33
#define TRACE(s)
Definition: solgame.cpp:4
#define NORM_IGNORECASE
Definition: winnls.h:191

Referenced by StrChrIA(), StrRChrIA(), and StrRStrIA().

◆ ChrCmpIW()

WINSHLWAPI BOOL WINAPI ChrCmpIW ( WCHAR  ch1,
WCHAR  ch2 
)

Definition at line 349 of file string.c.

350{
351 return CompareStringW(GetThreadLocale(), NORM_IGNORECASE, &ch1, 1, &ch2, 1) - CSTR_EQUAL;
352}
LCID WINAPI GetThreadLocale(void)
Definition: locale.c:2803
INT WINAPI CompareStringW(LCID lcid, DWORD flags, LPCWSTR str1, INT len1, LPCWSTR str2, INT len2)
Definition: locale.c:3946
#define CSTR_EQUAL
Definition: winnls.h:510

Referenced by CAutoComplete::DoAutoAppend(), StrCmpLogicalW(), StrRChrIW(), StrRStrIW(), and url_guess_scheme().

◆ ColorAdjustLuma()

WINSHLWAPI COLORREF WINAPI ColorAdjustLuma ( COLORREF  cRGB,
int  dwLuma,
BOOL  bUnknown 
)

Definition at line 3330 of file ordinal.c.

3331{
3332 TRACE("(0x%8lx,%d,%d)\n", cRGB, dwLuma, bUnknown);
3333
3334 if (dwLuma)
3335 {
3336 WORD wH, wL, wS;
3337
3338 ColorRGBToHLS(cRGB, &wH, &wL, &wS);
3339
3340 FIXME("Ignoring luma adjustment\n");
3341
3342 /* FIXME: The adjustment is not linear */
3343
3344 cRGB = ColorHLSToRGB(wH, wL, wS);
3345 }
3346 return cRGB;
3347}
COLORREF WINAPI ColorHLSToRGB(WORD wHue, WORD wLuminosity, WORD wSaturation)
Definition: ordinal.c:3464
VOID WINAPI ColorRGBToHLS(COLORREF cRGB, LPWORD pwHue, LPWORD pwLuminance, LPWORD pwSaturation)
Definition: ordinal.c:3762
unsigned short WORD
Definition: ntddk_ex.h:93

◆ ColorHLSToRGB()

WINSHLWAPI COLORREF WINAPI ColorHLSToRGB ( WORD  wHue,
WORD  wLuminosity,
WORD  wSaturation 
)

Definition at line 3464 of file ordinal.c.

3465{
3466 WORD wRed;
3467
3468 if (wSaturation)
3469 {
3470 WORD wGreen, wBlue, wMid1, wMid2;
3471
3472 if (wLuminosity > 120)
3473 wMid2 = wSaturation + wLuminosity - (wSaturation * wLuminosity + 120) / 240;
3474 else
3475 wMid2 = ((wSaturation + 240) * wLuminosity + 120) / 240;
3476
3477 wMid1 = wLuminosity * 2 - wMid2;
3478
3479 wRed = GET_RGB(wHue + 80);
3480 wGreen = GET_RGB(wHue);
3481 wBlue = GET_RGB(wHue - 80);
3482
3483 return RGB(wRed, wGreen, wBlue);
3484 }
3485
3486 wRed = wLuminosity * 255 / 240;
3487 return RGB(wRed, wRed, wRed);
3488}
#define GET_RGB(h)
Definition: ordinal.c:3446
#define RGB(r, g, b)
Definition: precomp.h:67

Referenced by ColorAdjustLuma().

◆ ColorRGBToHLS()

WINSHLWAPI VOID WINAPI ColorRGBToHLS ( COLORREF  cRGB,
LPWORD  pwHue,
LPWORD  pwLuminance,
LPWORD  pwSaturation 
)

Definition at line 3762 of file ordinal.c.

3764{
3765 int wR, wG, wB, wMax, wMin, wHue, wLuminosity, wSaturation;
3766
3767 TRACE("(%08lx,%p,%p,%p)\n", cRGB, pwHue, pwLuminance, pwSaturation);
3768
3769 wR = GetRValue(cRGB);
3770 wG = GetGValue(cRGB);
3771 wB = GetBValue(cRGB);
3772
3773 wMax = max(wR, max(wG, wB));
3774 wMin = min(wR, min(wG, wB));
3775
3776 /* Luminosity */
3777 wLuminosity = ((wMax + wMin) * 240 + 255) / 510;
3778
3779 if (wMax == wMin)
3780 {
3781 /* Achromatic case */
3782 wSaturation = 0;
3783 /* Hue is now unrepresentable, but this is what native returns... */
3784 wHue = 160;
3785 }
3786 else
3787 {
3788 /* Chromatic case */
3789 int wDelta = wMax - wMin, wRNorm, wGNorm, wBNorm;
3790
3791 /* Saturation */
3792 if (wLuminosity <= 120)
3793 wSaturation = ((wMax + wMin)/2 + wDelta * 240) / (wMax + wMin);
3794 else
3795 wSaturation = ((510 - wMax - wMin)/2 + wDelta * 240) / (510 - wMax - wMin);
3796
3797 /* Hue */
3798 wRNorm = (wDelta/2 + wMax * 40 - wR * 40) / wDelta;
3799 wGNorm = (wDelta/2 + wMax * 40 - wG * 40) / wDelta;
3800 wBNorm = (wDelta/2 + wMax * 40 - wB * 40) / wDelta;
3801
3802 if (wR == wMax)
3803 wHue = wBNorm - wGNorm;
3804 else if (wG == wMax)
3805 wHue = 80 + wRNorm - wBNorm;
3806 else
3807 wHue = 160 + wGNorm - wRNorm;
3808 if (wHue < 0)
3809 wHue += 240;
3810 else if (wHue > 240)
3811 wHue -= 240;
3812 }
3813 if (pwHue)
3814 *pwHue = wHue;
3815 if (pwLuminance)
3816 *pwLuminance = wLuminosity;
3817 if (pwSaturation)
3818 *pwSaturation = wSaturation;
3819}
#define GetBValue(quad)
Definition: precomp.h:71
#define GetGValue(quad)
Definition: precomp.h:70
#define GetRValue(quad)
Definition: precomp.h:69
#define min(a, b)
Definition: monoChain.cc:55
#define max(a, b)
Definition: svc.c:63

Referenced by ColorAdjustLuma().

◆ DECLARE_INTERFACE_()

DECLARE_INTERFACE_ ( IQueryAssociations  ,
IUnknown   
)

Definition at line 308 of file shlwapi.h.

309{
310 /*** IUnknown methods ***/
314 /*** IQueryAssociations methods ***/
315 STDMETHOD(Init)(THIS_ ASSOCF flags, LPCWSTR pszAssoc, HKEY hkProgid, HWND hwnd) PURE;
316 STDMETHOD(GetString)(THIS_ ASSOCF flags, ASSOCSTR str, LPCWSTR pszExtra, LPWSTR pszOut, DWORD * pcchOut) PURE;
317 STDMETHOD(GetKey)(THIS_ ASSOCF flags, ASSOCKEY key, LPCWSTR pszExtra, HKEY * phkeyOut) PURE;
318 STDMETHOD(GetData)(THIS_ ASSOCF flags, ASSOCDATA data, LPCWSTR pszExtra, LPVOID pvOut, DWORD * pcbOut) PURE;
319 STDMETHOD(GetEnum)(THIS_ ASSOCF flags, ASSOCENUM assocenum, LPCWSTR pszExtra, REFIID riid, LPVOID * ppvOut) PURE;
320};
#define PURE
Definition: basetyps.h:64
#define THIS_
Definition: basetyps.h:65
#define THIS
Definition: basetyps.h:66
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
#define STDMETHOD(m)
Definition: basetyps.h:62
_In_ BOOLEAN Release
Definition: cdrom.h:920
unsigned long DWORD
Definition: ntddk_ex.h:95
static BYTE * GetData(BYTE *pData, ULONG *pLength)
Definition: assembly.c:114
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
REFIID riid
Definition: atlbase.h:39
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:83
#define REFIID
Definition: guiddef.h:118
DWORD ASSOCF
Definition: shlwapi.h:967
_In_opt_ void _In_ DWORD flags
Definition: shlwapi.h:66
const WCHAR * str
STDMETHOD() GetKey(THIS_ HKEY *phKey) PURE
STDMETHOD() GetString(THIS_ PWSTR *ppsz) PURE
Definition: copy.c:22
const uint16_t * LPCWSTR
Definition: typedefs.h:57
uint16_t * LPWSTR
Definition: typedefs.h:56
uint32_t ULONG
Definition: typedefs.h:59
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023

◆ DllInstall()

HRESULT WINAPI DllInstall ( BOOL  bInstall,
LPCWSTR  cmdline 
)

Definition at line 18 of file shsvcs.c.

19{
20 return S_OK;
21}
#define S_OK
Definition: intsafe.h:52

◆ GetAcceptLanguagesA()

WINSHLWAPI HRESULT WINAPI GetAcceptLanguagesA ( char buffer,
DWORD buff_len 
)

◆ GetAcceptLanguagesW()

WINSHLWAPI HRESULT WINAPI GetAcceptLanguagesW ( WCHAR buffer,
DWORD buff_len 
)

Definition at line 529 of file main.c.

530{
531 DWORD mystrlen, mytype;
532 WCHAR *mystr;
533 LCID mylcid;
534 HKEY mykey;
535 LONG lres;
536 DWORD len;
537
538 TRACE("%p, %p, *%p: %ld\n", langbuf, buflen, buflen, buflen ? *buflen : -1);
539
540 if (!langbuf || !buflen || !*buflen)
541 return E_FAIL;
542
543 mystrlen = (*buflen > 20) ? *buflen : 20 ;
544 len = mystrlen * sizeof(WCHAR);
545 mystr = heap_alloc(len);
546 mystr[0] = 0;
547 RegOpenKeyExW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Internet Explorer\\International",
548 0, KEY_QUERY_VALUE, &mykey);
549 lres = RegQueryValueExW(mykey, L"AcceptLanguage", 0, &mytype, (PBYTE)mystr, &len);
550 RegCloseKey(mykey);
551 len = lstrlenW(mystr);
552
553 if (!lres && (*buflen > len))
554 {
555 lstrcpyW(langbuf, mystr);
556 *buflen = len;
557 heap_free(mystr);
558 return S_OK;
559 }
560
561 /* Did not find a value in the registry or the user buffer is too small */
562 mylcid = GetUserDefaultLCID();
563 lcid_to_rfc1766(mylcid, mystr, mystrlen);
564 len = lstrlenW(mystr);
565
566 memcpy(langbuf, mystr, min(*buflen, len + 1)*sizeof(WCHAR));
567 heap_free(mystr);
568
569 if (*buflen > len)
570 {
571 *buflen = len;
572 return S_OK;
573 }
574
575 *buflen = 0;
577}
static void * heap_alloc(size_t len)
Definition: appwiz.h:66
static BOOL heap_free(void *mem)
Definition: appwiz.h:76
#define RegCloseKey(hKey)
Definition: registry.h:49
#define E_FAIL
Definition: ddrawi.h:102
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3333
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4103
#define lstrcpyW
Definition: compat.h:749
#define lstrlenW
Definition: compat.h:750
LCID WINAPI GetUserDefaultLCID(void)
Definition: locale.c:1216
static HRESULT lcid_to_rfc1766(LCID lcid, WCHAR *rfc1766, INT len)
Definition: main.c:502
#define L(x)
Definition: resources.c:13
GLenum GLsizei len
Definition: glext.h:6722
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define KEY_QUERY_VALUE
Definition: nt_native.h:1019
BYTE * PBYTE
Definition: pedump.c:66
short WCHAR
Definition: pedump.c:58
long LONG
Definition: pedump.c:60
DWORD LCID
Definition: nls.h:13
#define E_NOT_SUFFICIENT_BUFFER
Definition: winerror.h:3437
#define HKEY_CURRENT_USER
Definition: winreg.h:11

Referenced by GetAcceptLanguagesA().

◆ HashData()

WINSHLWAPI HRESULT WINAPI HashData ( const unsigned char src,
DWORD  src_len,
unsigned char lpDest,
DWORD  dest_len 
)

Definition at line 5219 of file path.c.

5220{
5221 INT src_count = src_len - 1, dest_count = dest_len - 1;
5222
5223 if (!src || !dest)
5224 return E_INVALIDARG;
5225
5226 while (dest_count >= 0)
5227 {
5228 dest[dest_count] = (dest_count & 0xff);
5229 dest_count--;
5230 }
5231
5232 while (src_count >= 0)
5233 {
5234 dest_count = dest_len - 1;
5235 while (dest_count >= 0)
5236 {
5237 dest[dest_count] = hashdata_lookup[src[src_count] ^ dest[dest_count]];
5238 dest_count--;
5239 }
5240 src_count--;
5241 }
5242
5243 return S_OK;
5244}
#define E_INVALIDARG
Definition: ddrawi.h:101
static const unsigned char hashdata_lookup[256]
Definition: path.c:70
GLenum src
Definition: glext.h:6340
static char * dest
Definition: rtl.c:149
int32_t INT
Definition: typedefs.h:58

Referenced by test_HashData(), UrlHashA(), and UrlHashW().

◆ IntlStrEqWorkerA()

WINSHLWAPI BOOL WINAPI IntlStrEqWorkerA ( BOOL  bCase,
LPCSTR  lpszStr,
LPCSTR  lpszComp,
int  iLen 
)

Definition at line 860 of file string.c.

862{
864 int iRet;
865
866 TRACE("(%d,%s,%s,%d)\n", bCase,
867 debugstr_a(lpszStr), debugstr_a(lpszComp), iLen);
868
869 /* FIXME: This flag is undocumented and unknown by our CompareString.
870 */
872 if (!bCase) dwFlags |= NORM_IGNORECASE;
873
875 dwFlags, lpszStr, iLen, lpszComp, iLen);
876
877 if (!iRet)
878 iRet = CompareStringA(2048, dwFlags, lpszStr, iLen, lpszComp, iLen);
879
880 return iRet == CSTR_EQUAL;
881}
INT WINAPI CompareStringA(LCID lcid, DWORD flags, LPCSTR str1, INT len1, LPCSTR str2, INT len2)
Definition: locale.c:4015
#define debugstr_a
Definition: kernel32.h:31
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
#define LOCALE_RETURN_GENITIVE_NAMES
Definition: winnls.h:24

◆ IntlStrEqWorkerW()

WINSHLWAPI BOOL WINAPI IntlStrEqWorkerW ( BOOL  bCase,
LPCWSTR  lpszStr,
LPCWSTR  lpszComp,
int  iLen 
)

Definition at line 888 of file string.c.

890{
892 int iRet;
893
894 TRACE("(%d,%s,%s,%d)\n", bCase,
895 debugstr_w(lpszStr),debugstr_w(lpszComp), iLen);
896
897 /* FIXME: This flag is undocumented and unknown by our CompareString.
898 */
900 if (!bCase) dwFlags |= NORM_IGNORECASE;
901
903 dwFlags, lpszStr, iLen, lpszComp, iLen);
904
905 if (!iRet)
906 iRet = CompareStringW(2048, dwFlags, lpszStr, iLen, lpszComp, iLen);
907
908 return iRet == CSTR_EQUAL;
909}

◆ IsCharSpaceA()

WINSHLWAPI BOOL WINAPI IsCharSpaceA ( CHAR  c)

Definition at line 6602 of file locale.c.

6603{
6604 WCHAR wc;
6605 DWORD reslen;
6606 RtlMultiByteToUnicodeN( &wc, sizeof(WCHAR), &reslen, &c, 1 );
6607 return reslen && (get_char_type( CT_CTYPE1, wc ) & C1_SPACE);
6608}
static WORD get_char_type(DWORD type, WCHAR ch)
Definition: locale.c:2036
const GLubyte * c
Definition: glext.h:8905
#define C1_SPACE
Definition: unicode.h:34
static DWORD LPDWORD reslen
Definition: directory.c:51
_Use_decl_annotations_ NTSTATUS NTAPI RtlMultiByteToUnicodeN(_Out_ PWCH UnicodeString, _In_ ULONG UnicodeSize, _Out_opt_ PULONG ResultSize, _In_ PCCH MbString, _In_ ULONG MbSize)
Definition: nlsboot.c:63
#define CT_CTYPE1
Definition: winnls.h:265

◆ IsCharSpaceW()

WINSHLWAPI BOOL WINAPI IsCharSpaceW ( WCHAR  wc)

Definition at line 6614 of file locale.c.

6615{
6616 return !!(get_char_type( CT_CTYPE1, wc ) & C1_SPACE);
6617}

◆ IsInternetESCEnabled()

WINSHLWAPI BOOL WINAPI IsInternetESCEnabled ( void  )

Definition at line 5279 of file path.c.

5280{
5281 FIXME(": stub\n");
5282 return FALSE;
5283}

◆ IsOS()

WINSHLWAPI BOOL WINAPI IsOS ( DWORD  feature)

Definition at line 2392 of file main.c.

2393{
2394 DWORD platform, majorv, minorv;
2395#ifdef __REACTOS__
2397
2398 osvi.dwOSVersionInfoSize = sizeof(osvi);
2400 {
2403 {
2404 ERR("GetVersionEx failed\n");
2405 return FALSE;
2406 }
2407 osvi.wProductType = VER_NT_WORKSTATION;
2408 osvi.wSuiteMask = 0;
2409 }
2410#else
2412
2414 if (!GetVersionExA(&osvi))
2415 return FALSE;
2416#endif
2417
2418 majorv = osvi.dwMajorVersion;
2419 minorv = osvi.dwMinorVersion;
2421
2422#define ISOS_RETURN(x) \
2423 TRACE("(%#lx) ret %d\n",feature,(x)); \
2424 return (x)
2425
2426 switch(feature) {
2427 case OS_WIN32SORGREATER:
2430 case OS_NT:
2432 case OS_WIN95ORGREATER:
2434 case OS_NT4ORGREATER:
2435 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && majorv >= 4);
2438 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && majorv >= 5);
2439 case OS_WIN98ORGREATER:
2441 case OS_WIN98_GOLD:
2443 case OS_WIN2000PRO:
2444 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && majorv >= 5);
2445 case OS_WIN2000SERVER:
2446 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && (minorv == 0 || minorv == 1));
2448 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && (minorv == 0 || minorv == 1));
2450 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && (minorv == 0 || minorv == 1));
2451 case OS_WIN2000TERMINAL:
2452 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && (minorv == 0 || minorv == 1));
2453 case OS_EMBEDDED:
2454 FIXME("(OS_EMBEDDED) What should we return here?\n");
2455 return FALSE;
2456 case OS_TERMINALCLIENT:
2457 FIXME("(OS_TERMINALCLIENT) What should we return here?\n");
2458 return FALSE;
2460 FIXME("(OS_TERMINALREMOTEADMIN) What should we return here?\n");
2461 return FALSE;
2462 case OS_WIN95_GOLD:
2464 case OS_MEORGREATER:
2466 case OS_XPORGREATER:
2467 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && majorv >= 5 && minorv >= 1);
2468 case OS_HOME:
2469 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && majorv >= 5 && minorv >= 1);
2470 case OS_PROFESSIONAL:
2472 case OS_DATACENTER:
2474 case OS_ADVSERVER:
2475 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && majorv >= 5);
2476 case OS_SERVER:
2478 case OS_TERMINALSERVER:
2481 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && minorv >= 1 && majorv >= 5);
2483 FIXME("(OS_FASTUSERSWITCHING) What should we return here?\n");
2484 return TRUE;
2485 case OS_WELCOMELOGONUI:
2486 FIXME("(OS_WELCOMELOGONUI) What should we return here?\n");
2487 return FALSE;
2488 case OS_DOMAINMEMBER:
2489 FIXME("(OS_DOMAINMEMBER) What should we return here?\n");
2490 return TRUE;
2491 case OS_ANYSERVER:
2492#ifdef __REACTOS__
2493 ISOS_RETURN(osvi.wProductType > VER_NT_WORKSTATION);
2494#else
2496#endif
2497 case OS_WOW6432:
2498 {
2499 BOOL is_wow64;
2501 return is_wow64;
2502 }
2503 case OS_WEBSERVER:
2507 case OS_TABLETPC:
2508 FIXME("(OS_TABLETPC) What should we return here?\n");
2509 return FALSE;
2510 case OS_SERVERADMINUI:
2511#ifdef __REACTOS__
2512 {
2513 DWORD value = FALSE, size = sizeof(value);
2514 HKEY hKey = NULL;
2515
2518 L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
2519 0,
2521 &hKey);
2522
2523 if (hKey)
2524 {
2525 SHQueryValueExW(hKey, L"ServerAdminUI", NULL, NULL, &value, &size);
2527 }
2529 }
2530#else
2531 FIXME("(OS_SERVERADMINUI) What should we return here?\n");
2532 return FALSE;
2533#endif
2534 case OS_MEDIACENTER:
2535 FIXME("(OS_MEDIACENTER) What should we return here?\n");
2536 return FALSE;
2537 case OS_APPLIANCE:
2538 FIXME("(OS_APPLIANCE) What should we return here?\n");
2539 return FALSE;
2540 case 0x25: /*OS_VISTAORGREATER*/
2541 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && majorv >= 6);
2542 }
2543
2544#undef ISOS_RETURN
2545
2546 WARN("(%#lx) unknown parameter\n", feature);
2547
2548 return FALSE;
2549}
#define WARN(fmt,...)
Definition: precomp.h:61
#define ERR(fmt,...)
Definition: precomp.h:57
#define TRUE
Definition: types.h:120
#define GetCurrentProcess()
Definition: compat.h:759
#define IsWow64Process
Definition: compat.h:760
BOOL WINAPI GetVersionExA(IN LPOSVERSIONINFOA lpVersionInformation)
Definition: version.c:69
DWORD WINAPI SHQueryValueExW(HKEY hkey, const WCHAR *name, DWORD *reserved, DWORD *type, void *buff, DWORD *buff_len)
Definition: main.c:2101
#define ISOS_RETURN(x)
unsigned int BOOL
Definition: ntddk_ex.h:94
FxAutoRegKey hKey
GLsizeiptr size
Definition: glext.h:5919
BOOL is_wow64
Definition: main.c:38
INTERNETFEATURELIST feature
Definition: misc.c:1719
platform
Definition: msipriv.h:364
#define VER_PLATFORM_WIN32_NT
Definition: rtltypes.h:238
#define VER_PLATFORM_WIN32_WINDOWS
Definition: rtltypes.h:237
#define VER_PLATFORM_WIN32s
Definition: rtltypes.h:236
#define MAXIMUM_ALLOWED
Definition: nt_native.h:83
#define OS_WIN2000TERMINAL
Definition: shlwapi.h:238
#define OS_WIN98_GOLD
Definition: shlwapi.h:232
#define OS_APPLIANCE
Definition: shlwapi.h:262
#define OS_WIN95ORGREATER
Definition: shlwapi.h:228
#define OS_MEDIACENTER
Definition: shlwapi.h:261
#define OS_WIN95_GOLD
Definition: shlwapi.h:242
#define OS_SMALLBUSINESSSERVER
Definition: shlwapi.h:258
#define OS_WIN98ORGREATER
Definition: shlwapi.h:231
#define OS_NT
Definition: shlwapi.h:227
#define OS_MEORGREATER
Definition: shlwapi.h:243
#define OS_WIN2000ADVSERVER
Definition: shlwapi.h:236
#define OS_XPORGREATER
Definition: shlwapi.h:244
#define OS_WIN2000ORGREATER
Definition: shlwapi.h:233
#define OS_WIN2000PRO
Definition: shlwapi.h:234
#define OS_WIN2000SERVER
Definition: shlwapi.h:235
#define OS_TERMINALSERVER
Definition: shlwapi.h:250
#define OS_SERVERADMINUI
Definition: shlwapi.h:260
#define OS_PROFESSIONAL
Definition: shlwapi.h:246
#define OS_WOW6432
Definition: shlwapi.h:256
#define OS_TERMINALCLIENT
Definition: shlwapi.h:240
#define OS_DOMAINMEMBER
Definition: shlwapi.h:254
#define OS_WIN2000DATACENTER
Definition: shlwapi.h:237
#define OS_NT4ORGREATER
Definition: shlwapi.h:229
#define OS_TABLETPC
Definition: shlwapi.h:259
#define OS_ADVSERVER
Definition: shlwapi.h:248
#define OS_EMBEDDED
Definition: shlwapi.h:239
#define OS_SERVER
Definition: shlwapi.h:249
#define OS_TERMINALREMOTEADMIN
Definition: shlwapi.h:241
#define OS_FASTUSERSWITCHING
Definition: shlwapi.h:252
#define OS_PERSONALTERMINALSERVER
Definition: shlwapi.h:251
#define OS_WELCOMELOGONUI
Definition: shlwapi.h:253
#define OS_HOME
Definition: shlwapi.h:245
#define OS_ANYSERVER
Definition: shlwapi.h:255
#define OS_DATACENTER
Definition: shlwapi.h:247
#define OS_WEBSERVER
Definition: shlwapi.h:257
ULONG dwPlatformId
Definition: rtltypes.h:241
ULONG dwOSVersionInfoSize
Definition: rtltypes.h:237
ULONG dwMajorVersion
Definition: rtltypes.h:238
ULONG dwMinorVersion
Definition: rtltypes.h:239
Definition: pdh_main.c:96
OSVERSIONINFO osvi
Definition: ver.c:28
#define OS_WIN2000ORGREATER_ALT
Definition: shlwapi.h:1128
#define OS_WIN32SORGREATER
Definition: shlwapi.h:1124
#define VER_NT_WORKSTATION
struct _OSVERSIONINFOA OSVERSIONINFOA

Referenced by CDefView::GetDefaultViewMode(), CShellDispatch::GetSetting(), CShellDispatch::GetSystemInformation(), InitializeServerAdminUI(), IsSystem64Bit(), and CControlPanelFolder::MessageSFVCB().

◆ IStream_Reset()

WINSHLWAPI HRESULT WINAPI IStream_Reset ( IStream stream)

Definition at line 111 of file main.c.

112{
113 static const LARGE_INTEGER zero;
114
115 TRACE("(%p)\n", stream);
116
117 return IStream_Seek(stream, zero, 0, NULL);
118}
int zero
Definition: sehframes.cpp:29
Definition: parse.h:23

Referenced by Open().

◆ IStream_Size()

WINSHLWAPI HRESULT WINAPI IStream_Size ( IStream stream,
ULARGE_INTEGER size 
)

Definition at line 120 of file main.c.

121{
122 STATSTG statstg;
123 HRESULT hr;
124
125 TRACE("(%p, %p)\n", stream, size);
126
127 memset(&statstg, 0, sizeof(statstg));
128
129 hr = IStream_Stat(stream, &statstg, STATFLAG_NONAME);
130
131 if (SUCCEEDED(hr) && size)
132 *size = statstg.cbSize;
133 return hr;
134}
HRESULT hr
Definition: delayimp.cpp:582
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define memset(x, y, z)
Definition: compat.h:39

Referenced by CDesktopUpgradePropertyBag::_GetOldDesktopViewStream(), CRegPropertyBag::_GetStreamSize(), CDesktopUpgradePropertyBag::_NewStreamFromOld(), and init().

◆ IUnknown_AtomicRelease()

WINSHLWAPI void WINAPI IUnknown_AtomicRelease ( IUnknown **  punk)

Definition at line 150 of file main.c.

151{
152 TRACE("(%p)\n", obj);
153
154 if (!obj || !*obj)
155 return;
156
157 IUnknown_Release(*obj);
158 *obj = NULL;
159}

Referenced by IUnknown_Set().

◆ IUnknown_GetSite()

WINSHLWAPI HRESULT WINAPI IUnknown_GetSite ( IUnknown punk,
REFIID  riid,
void **  ppv 
)

Definition at line 161 of file main.c.

162{
165
166 TRACE("(%p, %s, %p)\n", unk, debugstr_guid(iid), site);
167
168 if (unk && iid && site)
169 {
170 hr = IUnknown_QueryInterface(unk, &IID_IObjectWithSite, (void **)&obj);
171 if (SUCCEEDED(hr) && obj)
172 {
173 hr = IObjectWithSite_GetSite(obj, iid, site);
174 IObjectWithSite_Release(obj);
175 }
176 }
177
178 return hr;
179}
#define debugstr_guid
Definition: kernel32.h:35
const IID IID_IObjectWithSite
static IActiveScriptSite * site
Definition: script.c:149

Referenced by CMenuDeskBar::_IsSubMenuParent(), CShellMenuCallback::OnInitMenu(), and CMenuFocusManager::UpdateFocus().

◆ IUnknown_GetWindow()

WINSHLWAPI HRESULT WINAPI IUnknown_GetWindow ( IUnknown punk,
HWND phwnd 
)

Definition at line 988 of file ordinal.c.

989{
990 IUnknown *lpOle;
991 HRESULT hRet = E_FAIL;
992
993 TRACE("(%p,%p)\n", lpUnknown, lphWnd);
994
995 if (!lpUnknown)
996 return hRet;
997
998 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleWindow, (void**)&lpOle);
999
1000 if (FAILED(hRet))
1001 {
1002 hRet = IUnknown_QueryInterface(lpUnknown,&IID_IShellView, (void**)&lpOle);
1003
1004 if (FAILED(hRet))
1005 {
1006 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInternetSecurityMgrSite,
1007 (void**)&lpOle);
1008 }
1009 }
1010
1011 if (SUCCEEDED(hRet))
1012 {
1013 /* Laziness here - Since GetWindow() is the first method for the above 3
1014 * interfaces, we use the same call for them all.
1015 */
1016 hRet = IOleWindow_GetWindow((IOleWindow*)lpOle, lphWnd);
1017 IUnknown_Release(lpOle);
1018 if (lphWnd)
1019 TRACE("Returning HWND=%p\n", *lphWnd);
1020 }
1021
1022 return hRet;
1023}
#define FAILED(hr)
Definition: intsafe.h:51
const GUID IID_IOleWindow

Referenced by CMenuDeskBar::_IsSubMenuParent(), CMenuSite::AddBand(), BindCtx_GetUIWindow(), CInternetToolbar::CreateMenuBar(), CFSDropTarget::Drop(), CAddressEditBox::Execute(), CShellBrowser::GetControlWindow(), GetUiOwner(), CDockSite::Initialize(), CInternetToolbar::InitNew(), CTrayNotifyWnd::OnCreate(), CTrayWindow::OnCreate(), CShellMenuCallback::OnInitMenu(), CTrayWindow::OnOpenStartMenu(), CInternetToolbar::OnWinIniChange(), CAddressEditBox::ParseNow(), CShellBrowser::RepositionBars(), CMenuDeskBar::SetClient(), CMenuSite::SetDeskBarSite(), CISFBand::SetSite(), CTaskBand::SetSite(), CAddressBand::SetSite(), CInternetToolbar::SetSite(), CSearchBar::SetSite(), and CToolsBand::SetSite().

◆ IUnknown_QueryService()

WINSHLWAPI HRESULT WINAPI IUnknown_QueryService ( IUnknown punk,
REFGUID  guidService,
REFIID  riid,
void **  ppvOut 
)

Definition at line 181 of file main.c.

182{
183 IServiceProvider *provider = NULL;
184 HRESULT hr;
185
186 if (!out)
187 return E_FAIL;
188
189 *out = NULL;
190
191 if (!obj)
192 return E_FAIL;
193
194 hr = IUnknown_QueryInterface(obj, &IID_IServiceProvider, (void **)&provider);
195 if (hr == S_OK && provider)
196 {
197 TRACE("Using provider %p.\n", provider);
198
199 hr = IServiceProvider_QueryService(provider, sid, iid, out);
200
201 TRACE("Provider %p returned %p.\n", provider, *out);
202
203 IServiceProvider_Release(provider);
204 }
205
206 return hr;
207}
FT_UInt sid
Definition: cffcmap.c:138
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383

Referenced by CDefViewBckgrndMenu::_bIsDesktopBrowserMenu(), CExplorerBand::_CreateTreeView(), CExplorerBand::_DestroyTreeView(), CDefView::_MergeToolbar(), CMenuDeskBar::_OnActivate(), CDefaultContextMenu::BrowserFlagsFromVerb(), CDefaultContextMenu::DoCopyOrCut(), CDefaultContextMenu::DoCreateNewFolder(), CDefaultContextMenu::DoRename(), CFSDropTarget::Drop(), CMenuDeskBar::Exec(), CAddressEditBox::Execute(), CBandProxy::FindBrowserWindow(), CAddressEditBox::GetAbsolutePidl(), CShellBrowser::GetMenuBand(), CSearchBar::GetSearchResultsFolder(), CRegTreeOptions::GetSetState(), CFolderOptions::HandleDefFolderSettings(), CAddressEditBox::Init(), CDefViewBckgrndMenu::InvokeCommand(), CNetConUiObject::InvokeCommand(), CAddressBand::IsGoButtonVisible(), CMenuFocusManager::IsTrackedWindowOrParent(), IUnknown_QueryServiceForWebBrowserApp(), IUnknown_QueryServicePropertyBag(), CFindFolder::MessageSFVCB(), CSearchBar::OnInitDialog(), CInternetToolbar::OnMenuDropDown(), CSearchBar::OnSearchButtonClicked(), CInternetToolbar::OnTravelBack(), CInternetToolbar::OnTravelForward(), CAddressEditBox::ParseNow(), CMenuDeskBar::Popup(), QueryActiveShellView(), CInternetToolbar::QueryService(), CDefView::QueryService(), CMenuDeskBar::QueryService(), CMenuSite::QueryService(), CDefaultContextMenu::QueryService(), CNewMenu::SelectNewItem(), CAddressEditBox::SetOwner(), CInternetToolbar::SetSite(), CMenuBand::SetSite(), CMenuDeskBar::SetSite(), SHShouldShowWizards(), CDefaultContextMenu::TryToBrowse(), and CMenuBand::UIActivateIO().

◆ IUnknown_Set()

WINSHLWAPI void WINAPI IUnknown_Set ( IUnknown **  ppunk,
IUnknown punk 
)

Definition at line 209 of file main.c.

210{
211 TRACE("(%p, %p)\n", dest, src);
212
214
215 if (src)
216 {
217 IUnknown_AddRef(src);
218 *dest = src;
219 }
220}
void WINAPI IUnknown_AtomicRelease(IUnknown **obj)
Definition: main.c:150

Referenced by Free(), and CFindFolderContextMenu::SetSite().

◆ IUnknown_SetSite()

WINSHLWAPI HRESULT WINAPI IUnknown_SetSite ( IUnknown punk,
IUnknown punkSite 
)

Definition at line 222 of file main.c.

223{
224 IInternetSecurityManager *sec_manager;
225 IObjectWithSite *objwithsite;
226 HRESULT hr;
227
228 if (!obj)
229 return E_FAIL;
230
231 hr = IUnknown_QueryInterface(obj, &IID_IObjectWithSite, (void **)&objwithsite);
232 TRACE("ObjectWithSite %p, hr %#lx.\n", objwithsite, hr);
233 if (SUCCEEDED(hr))
234 {
235 hr = IObjectWithSite_SetSite(objwithsite, site);
236 TRACE("SetSite() hr %#lx.\n", hr);
237 IObjectWithSite_Release(objwithsite);
238 }
239 else
240 {
241 hr = IUnknown_QueryInterface(obj, &IID_IInternetSecurityManager, (void **)&sec_manager);
242 TRACE("InternetSecurityManager %p, hr %#lx.\n", sec_manager, hr);
243 if (FAILED(hr))
244 return hr;
245
246 hr = IInternetSecurityManager_SetSecuritySite(sec_manager, (IInternetSecurityMgrSite *)site);
247 TRACE("SetSecuritySite() hr %#lx.\n", hr);
248 IInternetSecurityManager_Release(sec_manager);
249 }
250
251 return hr;
252}

Referenced by CMenuBand::_OnPopupSubMenu(), CMenuSite::AddBand(), CShellBrowser::BrowseToPath(), CreateStartMenu(), DCMA_DestroyEntry(), DCMA_InsertMenuItems(), CShellBrowser::DoFolderOptions(), CDefView::drag_notify_subitem(), CDefView::FillFileMenu(), CShellBrowser::GetBaseBar(), CDefView::GetItemObject(), CShellBrowser::Initialize(), CDockSite::Initialize(), CDefView::InvokeContextMenuCommand(), CDefaultContextMenu::LoadDynamicContextMenuHandler(), CDefView::OnDestroy(), CMenuBand::SetClient(), CMenuSite::SetDeskBarSite(), CFindFolderContextMenu::SetSite(), CDefViewBckgrndMenu::SetSite(), SHInvokeCommandOnContextMenuInternal(), SHInvokeCommandsOnContextMenu(), CDefaultContextMenu::~CDefaultContextMenu(), and MenuCleanup::~MenuCleanup().

◆ ParseURLA()

WINSHLWAPI HRESULT WINAPI ParseURLA ( LPCSTR  pszUrl,
PARSEDURLA ppu 
)

◆ ParseURLW()

WINSHLWAPI HRESULT WINAPI ParseURLW ( LPCWSTR  pszUrl,
PARSEDURLW ppu 
)

◆ PathAddBackslashA()

WINSHLWAPI LPSTR WINAPI PathAddBackslashA ( LPSTR  )

◆ PathAddBackslashW()

WINSHLWAPI LPWSTR WINAPI PathAddBackslashW ( LPWSTR  )

◆ PathAddExtensionA()

WINSHLWAPI BOOL WINAPI PathAddExtensionA ( LPSTR  ,
LPCSTR   
)

◆ PathAddExtensionW()

WINSHLWAPI BOOL WINAPI PathAddExtensionW ( LPWSTR  ,
LPCWSTR   
)

◆ PathAppendA()

WINSHLWAPI BOOL WINAPI PathAppendA ( LPSTR  ,
LPCSTR   
)

◆ PathAppendW()

WINSHLWAPI BOOL WINAPI PathAppendW ( LPWSTR  ,
LPCWSTR   
)

◆ PathBuildRootA()

WINSHLWAPI LPSTR WINAPI PathBuildRootA ( LPSTR  lpszPath,
int  drive 
)

Definition at line 86 of file path.c.

87{
88 TRACE("(%p,%d)\n", lpszPath, drive);
89
90 if (lpszPath && drive >= 0 && drive < 26)
91 {
92 lpszPath[0] = 'A' + drive;
93 lpszPath[1] = ':';
94 lpszPath[2] = '\\';
95 lpszPath[3] = '\0';
96 }
97 return lpszPath;
98}

Referenced by ATL::CPathT< StringType >::PathBuildRootX(), and test_PathBuildRootA().

◆ PathBuildRootW()

WINSHLWAPI LPWSTR WINAPI PathBuildRootW ( LPWSTR  lpszPath,
int  drive 
)

Definition at line 105 of file path.c.

106{
107 TRACE("(%p,%d)\n", lpszPath, drive);
108
109 if (lpszPath && drive >= 0 && drive < 26)
110 {
111 lpszPath[0] = 'A' + drive;
112 lpszPath[1] = ':';
113 lpszPath[2] = '\\';
114 lpszPath[3] = '\0';
115 }
116 return lpszPath;
117}

Referenced by IsLFNDriveW(), CDesktopBrowser::OnDeviceChange(), CDrivesFolder::ParseDisplayName(), CAddressEditBox::ParseNow(), ATL::CPathT< StringType >::PathBuildRootX(), and PathQualifyExW().

◆ PathCanonicalizeA()

WINSHLWAPI BOOL WINAPI PathCanonicalizeA ( LPSTR  ,
LPCSTR   
)

◆ PathCanonicalizeW()

WINSHLWAPI BOOL WINAPI PathCanonicalizeW ( LPWSTR  ,
LPCWSTR   
)

◆ PathCombineA()

WINSHLWAPI LPSTR WINAPI PathCombineA ( LPSTR  ,
LPCSTR  ,
LPCSTR   
)

◆ PathCombineW()

WINSHLWAPI LPWSTR WINAPI PathCombineW ( LPWSTR  ,
LPCWSTR  ,
LPCWSTR   
)

◆ PathCommonPrefixA()

WINSHLWAPI int WINAPI PathCommonPrefixA ( LPCSTR  ,
LPCSTR  ,
LPSTR   
)

◆ PathCommonPrefixW()

WINSHLWAPI int WINAPI PathCommonPrefixW ( LPCWSTR  ,
LPCWSTR  ,
LPWSTR   
)

◆ PathCompactPathA()

WINSHLWAPI BOOL WINAPI PathCompactPathA ( HDC  hDC,
LPSTR  lpszPath,
UINT  dx 
)

Definition at line 950 of file path.c.

951{
952 BOOL bRet = FALSE;
953
954 TRACE("(%p,%s,%d)\n", hDC, debugstr_a(lpszPath), dx);
955
956 if (lpszPath)
957 {
960 bRet = PathCompactPathW(hDC, szPath, dx);
961 WideCharToMultiByte(CP_ACP,0,szPath,-1,lpszPath,MAX_PATH,0,0);
962 }
963 return bRet;
964}
static HDC hDC
Definition: 3dtext.c:33
#define CP_ACP
Definition: compat.h:109
#define MAX_PATH
Definition: compat.h:34
#define WideCharToMultiByte
Definition: compat.h:111
#define MultiByteToWideChar
Definition: compat.h:110
BOOL WINAPI PathCompactPathW(HDC hDC, LPWSTR lpszPath, UINT dx)
Definition: path.c:971
GLint dx
Definition: linetemp.h:97
LPCWSTR szPath
Definition: env.c:37

Referenced by ATL::CPathT< StringType >::PathCompactPathX().

◆ PathCompactPathExA()

WINSHLWAPI BOOL WINAPI PathCompactPathExA ( LPSTR  lpszDest,
LPCSTR  lpszPath,
UINT  cchMax,
DWORD  dwFlags 
)

Definition at line 488 of file path.c.

490{
491 BOOL bRet = FALSE;
492
493 TRACE("(%p,%s,%d,0x%08lx)\n", lpszDest, debugstr_a(lpszPath), cchMax, dwFlags);
494
495 if (lpszPath && lpszDest)
496 {
498 WCHAR szDest[MAX_PATH];
499
501 szDest[0] = '\0';
502 bRet = PathCompactPathExW(szDest, szPath, cchMax, dwFlags);
504 }
505 return bRet;
506}
UINT cchMax
WCHAR lpszDest[260]
BOOL WINAPI PathCompactPathExW(LPWSTR lpszDest, LPCWSTR lpszPath, UINT cchMax, DWORD dwFlags)
Definition: path.c:513

Referenced by ATL::CPathT< StringType >::PathCompactPathExX().

◆ PathCompactPathExW()

WINSHLWAPI BOOL WINAPI PathCompactPathExW ( LPWSTR  lpszDest,
LPCWSTR  lpszPath,
UINT  cchMax,
DWORD  dwFlags 
)

Definition at line 513 of file path.c.

515{
516 static const WCHAR szEllipses[] = { '.', '.', '.', '\0' };
517 LPCWSTR lpszFile;
518 DWORD dwLen, dwFileLen = 0;
519
520 TRACE("(%p,%s,%d,0x%08lx)\n", lpszDest, debugstr_w(lpszPath), cchMax, dwFlags);
521
522 if (!lpszPath)
523 return FALSE;
524
525 if (!lpszDest)
526 {
527 WARN("Invalid lpszDest would crash under Win32!\n");
528 return FALSE;
529 }
530
531 *lpszDest = '\0';
532
533 if (cchMax < 2)
534 return TRUE;
535
536 dwLen = lstrlenW(lpszPath) + 1;
537
538 if (dwLen < cchMax)
539 {
540 /* Don't need to compact */
541 memcpy(lpszDest, lpszPath, dwLen * sizeof(WCHAR));
542 return TRUE;
543 }
544
545 /* Path must be compacted to fit into lpszDest */
546 lpszFile = PathFindFileNameW(lpszPath);
547 dwFileLen = lpszPath + dwLen - lpszFile;
548
549 if (dwFileLen == dwLen)
550 {
551 /* No root in psth */
552 if (cchMax <= 4)
553 {
554 while (--cchMax > 0) /* No room left for anything but ellipses */
555 *lpszDest++ = '.';
556 *lpszDest = '\0';
557 return TRUE;
558 }
559 /* Compact the file name with ellipses at the end */
560 cchMax -= 4;
561 memcpy(lpszDest, lpszFile, cchMax * sizeof(WCHAR));
562 lstrcpyW(lpszDest + cchMax, szEllipses);
563 return TRUE;
564 }
565 /* We have a root in the path */
566 lpszFile--; /* Start compacted filename with the path separator */
567 dwFileLen++;
568
569 if (dwFileLen + 3 > cchMax)
570 {
571 /* Compact the file name */
572 if (cchMax <= 4)
573 {
574 while (--cchMax > 0) /* No room left for anything but ellipses */
575 *lpszDest++ = '.';
576 *lpszDest = '\0';
577 return TRUE;
578 }
579 lstrcpyW(lpszDest, szEllipses);
580 lpszDest += 3;
581 cchMax -= 4;
582 *lpszDest++ = *lpszFile++;
583 if (cchMax <= 4)
584 {
585 while (--cchMax > 0) /* No room left for anything but ellipses */
586 *lpszDest++ = '.';
587 *lpszDest = '\0';
588 return TRUE;
589 }
590 cchMax -= 4;
591 memcpy(lpszDest, lpszFile, cchMax * sizeof(WCHAR));
592 lstrcpyW(lpszDest + cchMax, szEllipses);
593 return TRUE;
594 }
595
596 /* Only the root needs to be Compacted */
597 dwLen = cchMax - dwFileLen - 3;
598 memcpy(lpszDest, lpszPath, dwLen * sizeof(WCHAR));
599 lstrcpyW(lpszDest + dwLen, szEllipses);
600 lstrcpyW(lpszDest + dwLen + 3, lpszFile);
601 return TRUE;
602}
WCHAR *WINAPI PathFindFileNameW(const WCHAR *path)
Definition: path.c:1677

Referenced by PathCompactPathExA(), and ATL::CPathT< StringType >::PathCompactPathExX().

◆ PathCompactPathW()

WINSHLWAPI BOOL WINAPI PathCompactPathW ( HDC  hDC,
LPWSTR  lpszPath,
UINT  dx 
)

Definition at line 971 of file path.c.

972{
973 static const WCHAR szEllipses[] = { '.', '.', '.', '\0' };
974 BOOL bRet = TRUE;
975 HDC hdc = 0;
977 SIZE size;
978 DWORD dwLen;
979
980 TRACE("(%p,%s,%d)\n", hDC, debugstr_w(lpszPath), dx);
981
982 if (!lpszPath)
983 return FALSE;
984
985 if (!hDC)
986 hdc = hDC = GetDC(0);
987
988 /* Get the length of the whole path */
989 dwLen = lstrlenW(lpszPath);
990 GetTextExtentPointW(hDC, lpszPath, dwLen, &size);
991
992 if ((UINT)size.cx > dx)
993 {
994 /* Path too big, must reduce it */
995 LPWSTR sFile;
996 DWORD dwEllipsesLen = 0, dwPathLen = 0;
997
998 sFile = PathFindFileNameW(lpszPath);
999 if (sFile != lpszPath) sFile--;
1000
1001 /* Get the size of ellipses */
1002 GetTextExtentPointW(hDC, szEllipses, 3, &size);
1003 dwEllipsesLen = size.cx;
1004 /* Get the size of the file name */
1005 GetTextExtentPointW(hDC, sFile, lstrlenW(sFile), &size);
1006 dwPathLen = size.cx;
1007
1008 if (sFile != lpszPath)
1009 {
1010 LPWSTR sPath = sFile;
1011 BOOL bEllipses = FALSE;
1012
1013 /* The path includes a file name. Include as much of the path prior to
1014 * the file name as possible, allowing for the ellipses, e.g:
1015 * c:\some very long path\filename ==> c:\some v...\filename
1016 */
1017 lstrcpynW(buff, sFile, MAX_PATH);
1018
1019 do
1020 {
1021 DWORD dwTotalLen = bEllipses? dwPathLen + dwEllipsesLen : dwPathLen;
1022
1023 GetTextExtentPointW(hDC, lpszPath, sPath - lpszPath, &size);
1024 dwTotalLen += size.cx;
1025 if (dwTotalLen <= dx)
1026 break;
1027 sPath--;
1028 if (!bEllipses)
1029 {
1030 bEllipses = TRUE;
1031 sPath -= 2;
1032 }
1033 } while (sPath > lpszPath);
1034
1035 if (sPath > lpszPath)
1036 {
1037 if (bEllipses)
1038 {
1039 lstrcpyW(sPath, szEllipses);
1040 lstrcpyW(sPath+3, buff);
1041 }
1042 bRet = TRUE;
1043 goto end;
1044 }
1045 lstrcpyW(lpszPath, szEllipses);
1046 lstrcpyW(lpszPath+3, buff);
1047 bRet = FALSE;
1048 goto end;
1049 }
1050
1051 /* Trim the path by adding ellipses to the end, e.g:
1052 * A very long file name.txt ==> A very...
1053 */
1054 dwLen = lstrlenW(lpszPath);
1055
1056 if (dwLen > MAX_PATH - 3)
1057 dwLen = MAX_PATH - 3;
1058 lstrcpynW(buff, sFile, dwLen);
1059
1060 do {
1061 dwLen--;
1062 GetTextExtentPointW(hDC, buff, dwLen, &size);
1063 } while (dwLen && size.cx + dwEllipsesLen > dx);
1064
1065 if (!dwLen)
1066 {
1067 DWORD dwWritten = 0;
1068
1069 dwEllipsesLen /= 3; /* Size of a single '.' */
1070
1071 /* Write as much of the Ellipses string as possible */
1072 while (dwWritten + dwEllipsesLen < dx && dwLen < 3)
1073 {
1074 *lpszPath++ = '.';
1075 dwWritten += dwEllipsesLen;
1076 dwLen++;
1077 }
1078 *lpszPath = '\0';
1079 bRet = FALSE;
1080 }
1081 else
1082 {
1083 lstrcpyW(buff + dwLen, szEllipses);
1084 lstrcpyW(lpszPath, buff);
1085 }
1086 }
1087
1088end:
1089 if (hdc)
1090 ReleaseDC(0, hdc);
1091
1092 return bRet;
1093}
#define lstrcpynW
Definition: compat.h:738
GLuint GLuint end
Definition: gl.h:1545
HDC hdc
Definition: main.c:9
static HDC
Definition: imagelist.c:88
unsigned int UINT
Definition: ndis.h:50
static const char *static const char const char DWORD void DWORD *static const char const char DWORD void DWORD *static const char DWORD DWORD void * buff
Definition: shcore.c:41
BOOL WINAPI GetTextExtentPointW(_In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE lpsz)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
HDC WINAPI GetDC(_In_opt_ HWND)

Referenced by CZipExtract::CCompleteSettingsPage::OnSetActive(), PathCompactPathA(), ATL::CPathT< StringType >::PathCompactPathX(), and PathSetDlgItemPathW().

◆ PathCreateFromUrlA()

WINSHLWAPI HRESULT WINAPI PathCreateFromUrlA ( LPCSTR  ,
LPSTR  ,
LPDWORD  ,
DWORD   
)

◆ PathCreateFromUrlAlloc()

WINSHLWAPI HRESULT WINAPI PathCreateFromUrlAlloc ( LPCWSTR  ,
LPWSTR ,
DWORD   
)

◆ PathCreateFromUrlW()

WINSHLWAPI HRESULT WINAPI PathCreateFromUrlW ( LPCWSTR  ,
LPWSTR  ,
LPDWORD  ,
DWORD   
)

◆ PathFileExistsA()

WINSHLWAPI BOOL WINAPI PathFileExistsA ( LPCSTR  )

◆ PathFileExistsAndAttributesA()

WINSHLWAPI BOOL WINAPI PathFileExistsAndAttributesA ( LPCSTR  lpszPath,
DWORD dwAttr 
)

Definition at line 721 of file path.c.

722{
723 UINT iPrevErrMode;
724 DWORD dwVal = 0;
725
726 TRACE("(%s %p)\n", debugstr_a(lpszPath), dwAttr);
727
728 if (dwAttr)
729 *dwAttr = INVALID_FILE_ATTRIBUTES;
730
731 if (!lpszPath)
732 return FALSE;
733
734 iPrevErrMode = SetErrorMode(SEM_FAILCRITICALERRORS);
735 dwVal = GetFileAttributesA(lpszPath);
736 SetErrorMode(iPrevErrMode);
737 if (dwAttr)
738 *dwAttr = dwVal;
739 return (dwVal != INVALID_FILE_ATTRIBUTES);
740}
UINT WINAPI SetErrorMode(IN UINT uMode)
Definition: except.c:751
DWORD WINAPI GetFileAttributesA(LPCSTR lpFileName)
Definition: fileinfo.c:620
#define SEM_FAILCRITICALERRORS
Definition: rtltypes.h:69
#define INVALID_FILE_ATTRIBUTES
Definition: vfdcmd.c:23

◆ PathFileExistsAndAttributesW()

WINSHLWAPI BOOL WINAPI PathFileExistsAndAttributesW ( LPCWSTR  lpszPath,
DWORD dwAttr 
)

Definition at line 747 of file path.c.

748{
749 UINT iPrevErrMode;
750 DWORD dwVal;
751
752 TRACE("(%s %p)\n", debugstr_w(lpszPath), dwAttr);
753
754 if (!lpszPath)
755 return FALSE;
756
757 iPrevErrMode = SetErrorMode(SEM_FAILCRITICALERRORS);
758 dwVal = GetFileAttributesW(lpszPath);
759 SetErrorMode(iPrevErrMode);
760 if (dwAttr)
761 *dwAttr = dwVal;
762 return (dwVal != INVALID_FILE_ATTRIBUTES);
763}
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
Definition: fileinfo.c:636

Referenced by GetTypeDescriptionByPath(), PathFileExistsDefExtAndAttributesW(), PathResolveW(), and SHGetFileDescriptionW().

◆ PathFileExistsW()

WINSHLWAPI BOOL WINAPI PathFileExistsW ( LPCWSTR  )

◆ PathFindExtensionA()

WINSHLWAPI LPSTR WINAPI PathFindExtensionA ( LPCSTR  )

◆ PathFindExtensionW()

WINSHLWAPI LPWSTR WINAPI PathFindExtensionW ( LPCWSTR  )

◆ PathFindFileNameA()

WINSHLWAPI LPSTR WINAPI PathFindFileNameA ( LPCSTR  )

◆ PathFindFileNameW()

WINSHLWAPI LPWSTR WINAPI PathFindFileNameW ( LPCWSTR  )

◆ PathFindNextComponentA()

WINSHLWAPI LPSTR WINAPI PathFindNextComponentA ( LPCSTR  )

◆ PathFindNextComponentW()

WINSHLWAPI LPWSTR WINAPI PathFindNextComponentW ( LPCWSTR  )

◆ PathFindOnPathA()

WINSHLWAPI BOOL WINAPI PathFindOnPathA ( LPSTR  lpszFile,
LPCSTR lppszOtherDirs 
)

Definition at line 445 of file path.c.

446{
447 TRACE("(%s,%p)\n", debugstr_a(lpszFile), lppszOtherDirs);
448 return PathFindOnPathExA(lpszFile, lppszOtherDirs, 0);
449 }
BOOL WINAPI PathFindOnPathExA(LPSTR lpszFile, LPCSTR *lppszOtherDirs, DWORD dwWhich)
Definition: path.c:360

◆ PathFindOnPathW()

WINSHLWAPI BOOL WINAPI PathFindOnPathW ( LPWSTR  lpszFile,
LPCWSTR lppszOtherDirs 
)

Definition at line 456 of file path.c.

457{
458 TRACE("(%s,%p)\n", debugstr_w(lpszFile), lppszOtherDirs);
459 return PathFindOnPathExW(lpszFile,lppszOtherDirs, 0);
460}
BOOL WINAPI PathFindOnPathExW(LPWSTR lpszFile, LPCWSTR *lppszOtherDirs, DWORD dwWhich)
Definition: path.c:404

Referenced by DoEntry(), PathResolveW(), and SHELL_FindExecutable().

◆ PathFindSuffixArrayA()

WINSHLWAPI LPCSTR WINAPI PathFindSuffixArrayA ( LPCSTR  lpszSuffix,
LPCSTR lppszArray,
int  dwCount 
)

Definition at line 1449 of file path.c.

1450{
1451 size_t dwLen;
1452 int dwRet = 0;
1453
1454 TRACE("(%s,%p,%d)\n",debugstr_a(lpszSuffix), lppszArray, dwCount);
1455
1456 if (lpszSuffix && lppszArray && dwCount > 0)
1457 {
1458 dwLen = strlen(lpszSuffix);
1459
1460 while (dwRet < dwCount)
1461 {
1462 size_t dwCompareLen = strlen(*lppszArray);
1463 if (dwCompareLen < dwLen)
1464 {
1465 if (!strcmp(lpszSuffix + dwLen - dwCompareLen, *lppszArray))
1466 return *lppszArray; /* Found */
1467 }
1468 dwRet++;
1469 lppszArray++;
1470 }
1471 }
1472 return NULL;
1473}
_ACRTIMP size_t __cdecl strlen(const char *)
Definition: string.c:1597
_ACRTIMP int __cdecl strcmp(const char *, const char *)
Definition: string.c:3324

◆ PathFindSuffixArrayW()

WINSHLWAPI LPCWSTR WINAPI PathFindSuffixArrayW ( LPCWSTR  lpszSuffix,
LPCWSTR lppszArray,
int  dwCount 
)

Definition at line 1480 of file path.c.

1481{
1482 size_t dwLen;
1483 int dwRet = 0;
1484
1485 TRACE("(%s,%p,%d)\n",debugstr_w(lpszSuffix), lppszArray, dwCount);
1486
1487 if (lpszSuffix && lppszArray && dwCount > 0)
1488 {
1489 dwLen = lstrlenW(lpszSuffix);
1490
1491 while (dwRet < dwCount)
1492 {
1493 size_t dwCompareLen = lstrlenW(*lppszArray);
1494 if (dwCompareLen < dwLen)
1495 {
1496 if (!wcscmp(lpszSuffix + dwLen - dwCompareLen, *lppszArray))
1497 return *lppszArray; /* Found */
1498 }
1499 dwRet++;
1500 lppszArray++;
1501 }
1502 }
1503 return NULL;
1504}
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
Definition: wcs.c:1977

◆ PathGetArgsA()

WINSHLWAPI LPSTR WINAPI PathGetArgsA ( LPCSTR  )

◆ PathGetArgsW()

WINSHLWAPI LPWSTR WINAPI PathGetArgsW ( LPCWSTR  )

◆ PathGetCharTypeA()

WINSHLWAPI UINT WINAPI PathGetCharTypeA ( UCHAR  ch)

Definition at line 1769 of file path.c.

1770{
1771 return PathGetCharTypeW(ch);
1772}
UINT WINAPI PathGetCharTypeW(WCHAR ch)
Definition: path.c:1738
unsigned char ch[4][2]
Definition: console.c:118

Referenced by PathCleanupSpec().

◆ PathGetCharTypeW()

WINSHLWAPI UINT WINAPI PathGetCharTypeW ( WCHAR  ch)

Definition at line 1738 of file path.c.

1739{
1740 UINT flags = 0;
1741
1742 TRACE("%#x\n", ch);
1743
1744 if (!ch || ch < ' ' || ch == '<' || ch == '>' || ch == '"' || ch == '|' || ch == '/')
1745 flags = GCT_INVALID; /* Invalid */
1746 else if (ch == '*' || ch == '?')
1747 flags = GCT_WILD; /* Wildchars */
1748 else if (ch == '\\' || ch == ':')
1749 return GCT_SEPARATOR; /* Path separators */
1750 else
1751 {
1752 if (ch < 126)
1753 {
1754 if (((ch & 0x1) && ch != ';') || !ch || iswalnum(ch) || ch == '$' || ch == '&' || ch == '(' ||
1755 ch == '.' || ch == '@' || ch == '^' || ch == '\'' || ch == '`')
1756 {
1757 flags |= GCT_SHORTCHAR; /* All these are valid for DOS */
1758 }
1759 }
1760 else
1761 flags |= GCT_SHORTCHAR; /* Bug compatible with win32 */
1762
1763 flags |= GCT_LFNCHAR; /* Valid for long file names */
1764 }
1765
1766 return flags;
1767}
GLbitfield flags
Definition: glext.h:7161
#define GCT_SHORTCHAR
Definition: shlwapi.h:273
#define GCT_LFNCHAR
Definition: shlwapi.h:272
#define GCT_SEPARATOR
Definition: shlwapi.h:275
#define GCT_INVALID
Definition: shlwapi.h:271
#define GCT_WILD
Definition: shlwapi.h:274
#define iswalnum(_c)
Definition: ctype.h:671

Referenced by PathCleanupSpec(), and PathGetCharTypeA().

◆ PathGetDriveNumberA()

WINSHLWAPI int WINAPI PathGetDriveNumberA ( LPCSTR  )

◆ PathGetDriveNumberW()

WINSHLWAPI int WINAPI PathGetDriveNumberW ( LPCWSTR  )

◆ PathIsContentTypeA()

WINSHLWAPI BOOL WINAPI PathIsContentTypeA ( LPCSTR  path,
LPCSTR  content_type 
)

Definition at line 783 of file path.c.

784{
785 char buf[MAX_PATH];
786 DWORD size = sizeof(buf);
787 LPCSTR ext;
788
790
791 if(!path) return FALSE;
792 if(!(ext = PathFindExtensionA(path)) || !*ext) return FALSE;
793 if(SHGetValueA(HKEY_CLASSES_ROOT, ext, "Content Type", NULL, buf, &size)) return FALSE;
794 return !lstrcmpiA(content_type, buf);
795}
static const WCHAR *const ext[]
Definition: module.c:53
int WINAPI lstrcmpiA(LPCSTR str1, LPCSTR str2)
Definition: locale.c:4133
LPSTR WINAPI PathFindExtensionA(const char *path)
Definition: path.c:1229
DWORD WINAPI SHGetValueA(HKEY hkey, const char *subkey, const char *value, DWORD *type, void *data, DWORD *data_len)
Definition: main.c:2197
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
static BSTR content_type
const char * LPCSTR
Definition: typedefs.h:52
#define HKEY_CLASSES_ROOT
Definition: winreg.h:10

◆ PathIsContentTypeW()

WINSHLWAPI BOOL WINAPI PathIsContentTypeW ( LPCWSTR  lpszPath,
LPCWSTR  lpszContentType 
)

Definition at line 802 of file path.c.

803{
804 static const WCHAR szContentType[] = { 'C','o','n','t','e','n','t',' ','T','y','p','e','\0' };
805 LPCWSTR szExt;
806 DWORD dwDummy;
807 WCHAR szBuff[MAX_PATH];
808
809 TRACE("(%s,%s)\n", debugstr_w(lpszPath), debugstr_w(lpszContentType));
810
811 if (lpszPath && (szExt = PathFindExtensionW(lpszPath)) && *szExt &&
812 !SHGetValueW(HKEY_CLASSES_ROOT, szExt, szContentType,
813 REG_NONE, szBuff, &dwDummy) &&
814 !wcsicmp(lpszContentType, szBuff))
815 {
816 return TRUE;
817 }
818 return FALSE;
819}
#define wcsicmp
Definition: compat.h:15
LPWSTR WINAPI PathFindExtensionW(const WCHAR *path)
Definition: path.c:1250
DWORD WINAPI SHGetValueW(HKEY hkey, const WCHAR *subkey, const WCHAR *value, DWORD *type, void *data, DWORD *data_len)
Definition: main.c:2222
#define REG_NONE
Definition: nt_native.h:1495

◆ PathIsDirectoryA()

WINSHLWAPI BOOL WINAPI PathIsDirectoryA ( LPCSTR  lpszPath)

Definition at line 625 of file path.c.

626{
627 DWORD dwAttr;
628
629 TRACE("(%s)\n", debugstr_a(lpszPath));
630
631 if (!lpszPath || PathIsUNCServerA(lpszPath))
632 return FALSE;
633
634 if (PathIsUNCServerShareA(lpszPath))
635 {
636#ifdef __REACTOS__
637 LPSTR lpSystem = NULL;
638 BYTE buffer[512] = {0};
639 DWORD cbBuffer = sizeof(buffer);
641 DWORD dwError;
642
643 pNetRes->dwScope = RESOURCE_GLOBALNET;
644 pNetRes->dwType = RESOURCETYPE_ANY;
645 pNetRes->lpRemoteName = (LPSTR)lpszPath;
646
647 dwError = WNetGetResourceInformationA(pNetRes, pNetRes, &cbBuffer, &lpSystem);
648 if (dwError == NO_ERROR && pNetRes->dwDisplayType != RESOURCEDISPLAYTYPE_GENERIC)
649 {
650 return (pNetRes->dwDisplayType == RESOURCEDISPLAYTYPE_SHARE) &&
651 (pNetRes->dwType == RESOURCETYPE_ANY || pNetRes->dwType == RESOURCETYPE_DISK);
652 }
653#else
654 FIXME("UNC Server Share not yet supported - FAILING\n");
655 return FALSE;
656#endif
657 }
658
659 if ((dwAttr = GetFileAttributesA(lpszPath)) == INVALID_FILE_ATTRIBUTES)
660 return FALSE;
661 return dwAttr & FILE_ATTRIBUTE_DIRECTORY;
662}
#define NO_ERROR
Definition: dderror.h:5
BOOL WINAPI PathIsUNCServerA(const char *path)
Definition: path.c:1835
BOOL WINAPI PathIsUNCServerShareA(const char *path)
Definition: path.c:1016
GLuint buffer
Definition: glext.h:5915
#define FILE_ATTRIBUTE_DIRECTORY
Definition: nt_native.h:705
DWORD dwDisplayType
Definition: winnetwk.h:169
DWORD dwScope
Definition: winnetwk.h:167
LPSTR lpRemoteName
Definition: winnetwk.h:172
DWORD dwType
Definition: winnetwk.h:168
char * LPSTR
Definition: typedefs.h:51
struct _NETRESOURCEA * LPNETRESOURCEA
#define RESOURCEDISPLAYTYPE_SHARE
Definition: winnetwk.h:78
#define RESOURCEDISPLAYTYPE_GENERIC
Definition: winnetwk.h:75
#define RESOURCETYPE_DISK
Definition: winnetwk.h:64
#define RESOURCETYPE_ANY
Definition: winnetwk.h:63
#define RESOURCE_GLOBALNET
Definition: winnetwk.h:59
DWORD WINAPI WNetGetResourceInformationA(LPNETRESOURCEA lpNetResource, LPVOID lpBuffer, LPDWORD cbBuffer, LPSTR *lplpSystem)
Definition: wnet.c:1822
unsigned char BYTE
Definition: xxhash.c:193

Referenced by ATL::CPathT< StringType >::PathIsDirectoryX().

◆ PathIsDirectoryEmptyA()

WINSHLWAPI BOOL WINAPI PathIsDirectoryEmptyA ( LPCSTR  lpszPath)

Definition at line 1367 of file path.c.

1368{
1369 BOOL bRet = FALSE;
1370
1371 TRACE("(%s)\n",debugstr_a(lpszPath));
1372
1373 if (lpszPath)
1374 {
1378 }
1379 return bRet;
1380}
BOOL WINAPI PathIsDirectoryEmptyW(LPCWSTR lpszPath)
Definition: path.c:1387

◆ PathIsDirectoryEmptyW()

WINSHLWAPI BOOL WINAPI PathIsDirectoryEmptyW ( LPCWSTR  lpszPath)

Definition at line 1387 of file path.c.

1388{
1389 static const WCHAR szAllFiles[] = { '*', '.', '*', '\0' };
1390 WCHAR szSearch[MAX_PATH];
1391 DWORD dwLen;
1392 HANDLE hfind;
1393 BOOL retVal = TRUE;
1395
1396 TRACE("(%s)\n",debugstr_w(lpszPath));
1397
1398 if (!lpszPath || !PathIsDirectoryW(lpszPath))
1399 return FALSE;
1400
1401 lstrcpynW(szSearch, lpszPath, MAX_PATH);
1402 PathAddBackslashW(szSearch);
1403 dwLen = lstrlenW(szSearch);
1404 if (dwLen > MAX_PATH - 4)
1405 return FALSE;
1406
1407 lstrcpyW(szSearch + dwLen, szAllFiles);
1408 hfind = FindFirstFileW(szSearch, &find_data);
1409 if (hfind == INVALID_HANDLE_VALUE)
1410 return FALSE;
1411
1412 do
1413 {
1414 if (find_data.cFileName[0] == '.')
1415 {
1416 if (find_data.cFileName[1] == '\0') continue;
1417 if (find_data.cFileName[1] == '.' && find_data.cFileName[2] == '\0') continue;
1418 }
1419
1420 retVal = FALSE;
1421 break;
1422 }
1423 while (FindNextFileW(hfind, &find_data));
1424
1425 FindClose(hfind);
1426 return retVal;
1427}
static int find_data(const struct Vector *v, const BYTE *pData, int size)
Definition: filtermapper.c:162
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
Definition: find.c:320
BOOL WINAPI FindClose(HANDLE hFindFile)
Definition: find.c:502
BOOL WINAPI FindNextFileW(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData)
Definition: find.c:382
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
Definition: path.c:669
#define PathAddBackslashW
Definition: pathcch.h:302

Referenced by move_dir_to_dir(), and PathIsDirectoryEmptyA().

◆ PathIsDirectoryW()

WINSHLWAPI BOOL WINAPI PathIsDirectoryW ( LPCWSTR  lpszPath)

Definition at line 669 of file path.c.

670{
671 DWORD dwAttr;
672
673 TRACE("(%s)\n", debugstr_w(lpszPath));
674
675 if (!lpszPath || PathIsUNCServerW(lpszPath))
676 return FALSE;
677
678 if (PathIsUNCServerShareW(lpszPath))
679 {
680#ifdef __REACTOS__
681 LPWSTR lpSystem = NULL;
682 BYTE buffer[1024] = {0};
683 DWORD cbBuffer = sizeof(buffer);
685 DWORD dwError;
686
687 pNetRes->dwScope = RESOURCE_GLOBALNET;
688 pNetRes->dwType = RESOURCETYPE_ANY;
689 pNetRes->lpRemoteName = (LPWSTR)lpszPath;
690
691 dwError = WNetGetResourceInformationW(pNetRes, pNetRes, &cbBuffer, &lpSystem);
692 if (dwError == NO_ERROR && pNetRes->dwDisplayType != RESOURCEDISPLAYTYPE_GENERIC)
693 {
694 return (pNetRes->dwDisplayType == RESOURCEDISPLAYTYPE_SHARE) &&
695 (pNetRes->dwType == RESOURCETYPE_ANY || pNetRes->dwType == RESOURCETYPE_DISK);
696 }
697#else
698 FIXME("UNC Server Share not yet supported - FAILING\n");
699 return FALSE;
700#endif
701 }
702
703 if ((dwAttr = GetFileAttributesW(lpszPath)) == INVALID_FILE_ATTRIBUTES)
704 return FALSE;
705 return dwAttr & FILE_ATTRIBUTE_DIRECTORY;
706}
BOOL WINAPI PathIsUNCServerShareW(const WCHAR *path)
Definition: path.c:1040
BOOL WINAPI PathIsUNCServerW(const WCHAR *path)
Definition: path.c:1852
DWORD dwType
Definition: winnetwk.h:178
DWORD dwDisplayType
Definition: winnetwk.h:179
DWORD dwScope
Definition: winnetwk.h:177
LPWSTR lpRemoteName
Definition: winnetwk.h:182
struct _NETRESOURCEW * LPNETRESOURCEW
DWORD WINAPI WNetGetResourceInformationW(LPNETRESOURCEW lpNetResource, LPVOID lpBuffer, LPDWORD cbBuffer, LPWSTR *lplpSystem)
Definition: wnet.c:1937

Referenced by CDirectoryList::AddPathsFromDirectory(), BrFolder_OnOK(), copy_file(), create_target_directory(), CreateDirectoryWatcherFromRegEntry(), DetermineDialogBoxType(), CAppScrnshotPreview::DisplayImage(), DoAddFilesFromItem(), DoBuildFilesAndDirs(), DoTestEntry(), CDeskLinkDropHandler::Drop(), CAddressEditBox::ExecuteCommandLine(), FILEDLG95_InitControls(), CFSFolder::GetCustomViewInfo(), getIconLocationForFolder(), CFileDefExt::Initialize(), InstallFontFiles(), PathIsDirectoryEmptyW(), ATL::CPathT< StringType >::PathIsDirectoryX(), CDirectoryWatcher::ProcessNotification(), SHAddToRecentDocs(), SHELL_execute(), SHExplorerParseCmdLine(), ShowCreateShortcutWizard(), WindowProc(), and wWinMain().

◆ PathIsFileSpecA()

WINSHLWAPI BOOL WINAPI PathIsFileSpecA ( LPCSTR  )

◆ PathIsFileSpecW()

WINSHLWAPI BOOL WINAPI PathIsFileSpecW ( LPCWSTR  )

◆ PathIsLFNFileSpecA()

WINSHLWAPI BOOL WINAPI PathIsLFNFileSpecA ( LPCSTR  )

◆ PathIsLFNFileSpecW()

WINSHLWAPI BOOL WINAPI PathIsLFNFileSpecW ( LPCWSTR  )

◆ PathIsNetworkPathA()

WINSHLWAPI BOOL WINAPI PathIsNetworkPathA ( LPCSTR  lpszPath)

Definition at line 1308 of file path.c.

1309{
1310 int dwDriveNum;
1311
1312 TRACE("(%s)\n",debugstr_a(lpszPath));
1313
1314 if (!lpszPath)
1315 return FALSE;
1316 if (*lpszPath == '\\' && lpszPath[1] == '\\')
1317 return TRUE;
1318 dwDriveNum = PathGetDriveNumberA(lpszPath);
1319 if (dwDriveNum == -1)
1320 return FALSE;
1321#ifdef __REACTOS__
1322 return IsNetDrive(dwDriveNum);
1323#else
1324 GET_FUNC(pIsNetDrive, shell32, (LPCSTR)66, FALSE); /* ord 66 = shell32.IsNetDrive */
1325 return pIsNetDrive(dwDriveNum);
1326#endif
1327}
@ shell32
Definition: LocaleTests.cpp:20
int WINAPI PathGetDriveNumberA(const char *path)
Definition: path.c:1774
#define GET_FUNC(func, module, name, fail)
Definition: path.c:52
static fnpIsNetDrive pIsNetDrive
Definition: path.c:66
EXTERN_C int WINAPI IsNetDrive(int drive)
Definition: shlfileop.cpp:2342

◆ PathIsNetworkPathW()

WINSHLWAPI BOOL WINAPI PathIsNetworkPathW ( LPCWSTR  lpszPath)

Definition at line 1334 of file path.c.

1335{
1336 int dwDriveNum;
1337
1338 TRACE("(%s)\n", debugstr_w(lpszPath));
1339
1340 if (!lpszPath)
1341 return FALSE;
1342 if (*lpszPath == '\\' && lpszPath[1] == '\\')
1343 return TRUE;
1344 dwDriveNum = PathGetDriveNumberW(lpszPath);
1345 if (dwDriveNum == -1)
1346 return FALSE;
1347#ifdef __REACTOS__
1348 return IsNetDrive(dwDriveNum);
1349#else
1350 GET_FUNC(pIsNetDrive, shell32, (LPCSTR)66, FALSE); /* ord 66 = shell32.IsNetDrive */
1351 return pIsNetDrive(dwDriveNum);
1352#endif
1353}
int WINAPI PathGetDriveNumberW(const WCHAR *path)
Definition: path.c:1786

◆ PathIsPrefixA()

WINSHLWAPI BOOL WINAPI PathIsPrefixA ( LPCSTR  ,
LPCSTR   
)

◆ PathIsPrefixW()

WINSHLWAPI BOOL WINAPI PathIsPrefixW ( LPCWSTR  ,
LPCWSTR   
)

◆ PathIsRelativeA()

WINSHLWAPI BOOL WINAPI PathIsRelativeA ( LPCSTR  )

◆ PathIsRelativeW()

WINSHLWAPI BOOL WINAPI PathIsRelativeW ( LPCWSTR  )

◆ PathIsRootA()

WINSHLWAPI BOOL WINAPI PathIsRootA ( LPCSTR  )

◆ PathIsRootW()

WINSHLWAPI BOOL WINAPI PathIsRootW ( LPCWSTR  )

◆ PathIsSameRootA()

WINSHLWAPI BOOL WINAPI PathIsSameRootA ( LPCSTR  ,
LPCSTR   
)

◆ PathIsSameRootW()

WINSHLWAPI BOOL WINAPI PathIsSameRootW ( LPCWSTR  ,
LPCWSTR   
)

◆ PathIsSystemFolderA()

WINSHLWAPI BOOL WINAPI PathIsSystemFolderA ( LPCSTR  lpszPath,
DWORD  dwAttrib 
)

Definition at line 834 of file path.c.

835{
836 TRACE("(%s,0x%08lx)\n", debugstr_a(lpszPath), dwAttrib);
837
838 if (lpszPath && *lpszPath)
839 dwAttrib = GetFileAttributesA(lpszPath);
840
841 if (dwAttrib == INVALID_FILE_ATTRIBUTES || !(dwAttrib & FILE_ATTRIBUTE_DIRECTORY) ||
843 return FALSE;
844 return TRUE;
845}
#define FILE_ATTRIBUTE_READONLY
Definition: nt_native.h:702
#define FILE_ATTRIBUTE_SYSTEM
Definition: nt_native.h:704

◆ PathIsSystemFolderW()

WINSHLWAPI BOOL WINAPI PathIsSystemFolderW ( LPCWSTR  lpszPath,
DWORD  dwAttrib 
)

Definition at line 852 of file path.c.

853{
854 TRACE("(%s,0x%08lx)\n", debugstr_w(lpszPath), dwAttrib);
855
856 if (lpszPath && *lpszPath)
857 dwAttrib = GetFileAttributesW(lpszPath);
858
859 if (dwAttrib == INVALID_FILE_ATTRIBUTES || !(dwAttrib & FILE_ATTRIBUTE_DIRECTORY) ||
861 return FALSE;
862 return TRUE;
863}

Referenced by CViewStatePropertyBag::_IsSystemFolder().

◆ PathIsUNCA()

WINSHLWAPI BOOL WINAPI PathIsUNCA ( LPCSTR  )

◆ PathIsUNCServerA()

WINSHLWAPI BOOL WINAPI PathIsUNCServerA ( LPCSTR  )

◆ PathIsUNCServerShareA()

WINSHLWAPI BOOL WINAPI PathIsUNCServerShareA ( LPCSTR  )

◆ PathIsUNCServerShareW()

WINSHLWAPI BOOL WINAPI PathIsUNCServerShareW ( LPCWSTR  )

◆ PathIsUNCServerW()

WINSHLWAPI BOOL WINAPI PathIsUNCServerW ( LPCWSTR  )

◆ PathIsUNCW()

WINSHLWAPI BOOL WINAPI PathIsUNCW ( LPCWSTR  )

◆ PathIsURLA()

WINSHLWAPI BOOL WINAPI PathIsURLA ( LPCSTR  )

◆ PathIsURLW()

WINSHLWAPI BOOL WINAPI PathIsURLW ( LPCWSTR  )

◆ PathMakePrettyA()

WINSHLWAPI BOOL WINAPI PathMakePrettyA ( LPSTR  lpszPath)

Definition at line 877 of file path.c.

878{
879 LPSTR pszIter = lpszPath;
880
881 TRACE("(%s)\n", debugstr_a(lpszPath));
882
883 if (!pszIter)
884 return FALSE;
885
886 if (*pszIter)
887 {
888 do
889 {
890 if (islower(*pszIter) || IsDBCSLeadByte(*pszIter))
891 return FALSE; /* Not DOS path */
892 pszIter++;
893 } while (*pszIter);
894 pszIter = lpszPath + 1;
895 while (*pszIter)
896 {
897 *pszIter = tolower(*pszIter);
898 pszIter++;
899 }
900 }
901 return TRUE;
902}
#define islower(c)
Definition: acclib.h:72
BOOL WINAPI IsDBCSLeadByte(BYTE testchar)
Definition: locale.c:2126
int CDECL tolower(int c)
Definition: ctype.c:572

Referenced by ATL::CPathT< StringType >::PathMakePrettyX(), and test_PathMakePretty().

◆ PathMakePrettyW()

WINSHLWAPI BOOL WINAPI PathMakePrettyW ( LPWSTR  lpszPath)

Definition at line 909 of file path.c.

910{
911 LPWSTR pszIter = lpszPath;
912
913 TRACE("(%s)\n", debugstr_w(lpszPath));
914
915 if (!pszIter)
916 return FALSE;
917
918 if (*pszIter)
919 {
920 do
921 {
922 if (iswlower(*pszIter))
923 return FALSE; /* Not DOS path */
924 pszIter++;
925 } while (*pszIter);
926 pszIter = lpszPath + 1;
927 while (*pszIter)
928 {
929 *pszIter = towlower(*pszIter);
930 pszIter++;
931 }
932 }
933 return TRUE;
934}
#define iswlower(_c)
Definition: ctype.h:666
#define towlower(c)
Definition: wctype.h:97

Referenced by ATL::CPathT< StringType >::PathMakePrettyX().

◆ PathMakeSystemFolderA()

WINSHLWAPI BOOL WINAPI PathMakeSystemFolderA ( LPCSTR  lpszPath)

Definition at line 1130 of file path.c.

1131{
1132 BOOL bRet = FALSE;
1133
1134 TRACE("(%s)\n", debugstr_a(lpszPath));
1135
1136 if (lpszPath && *lpszPath)
1137 {
1141 }
1142 return bRet;
1143}
BOOL WINAPI PathMakeSystemFolderW(LPCWSTR lpszPath)
Definition: path.c:1150

◆ PathMakeSystemFolderW()

WINSHLWAPI BOOL WINAPI PathMakeSystemFolderW ( LPCWSTR  lpszPath)

Definition at line 1150 of file path.c.

1151{
1152 DWORD dwDefaultAttr = FILE_ATTRIBUTE_READONLY, dwAttr;
1154
1155 TRACE("(%s)\n", debugstr_w(lpszPath));
1156
1157 if (!lpszPath || !*lpszPath)
1158 return FALSE;
1159
1160 /* If the directory is already a system directory, don't do anything */
1162 if (!wcscmp(buff, lpszPath))
1163 return TRUE;
1164
1166 if (!wcscmp(buff, lpszPath))
1167 return TRUE;
1168
1169 /* "UseSystemForSystemFolders" Tells Win what attributes to use */
1171 dwDefaultAttr = FILE_ATTRIBUTE_SYSTEM;
1172
1173 if ((dwAttr = GetFileAttributesW(lpszPath)) == INVALID_FILE_ATTRIBUTES)
1174 return FALSE;
1175
1176 /* Change file attributes to system attributes */
1178 return SetFileAttributesW(lpszPath, dwAttr | dwDefaultAttr);
1179}
BOOL WINAPI SetFileAttributesW(LPCWSTR lpFileName, DWORD dwFileAttributes)
Definition: fileinfo.c:778
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
Definition: path.c:2232
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
Definition: path.c:2271
static BOOL SHLWAPI_UseSystemForSystemFolders(void)
Definition: path.c:1100
#define FILE_ATTRIBUTE_HIDDEN
Definition: nt_native.h:703

Referenced by PathMakeSystemFolderA(), and SHCreatePropertyBagOnProfileSection().

◆ PathMatchSpecA()

WINSHLWAPI BOOL WINAPI PathMatchSpecA ( LPCSTR  ,
LPCSTR   
)

◆ PathMatchSpecExA()

WINSHLWAPI HRESULT WINAPI PathMatchSpecExA ( LPCSTR  ,
LPCSTR  ,
DWORD   
)

◆ PathMatchSpecExW()

WINSHLWAPI HRESULT WINAPI PathMatchSpecExW ( LPCWSTR  ,
LPCWSTR  ,
DWORD   
)

◆ PathMatchSpecW()

WINSHLWAPI BOOL WINAPI PathMatchSpecW ( LPCWSTR  ,
LPCWSTR   
)

◆ PathParseIconLocationA()

WINSHLWAPI int WINAPI PathParseIconLocationA ( LPSTR  )

◆ PathParseIconLocationW()

WINSHLWAPI int WINAPI PathParseIconLocationW ( LPWSTR  )

◆ PathQuoteSpacesA()

WINSHLWAPI VOID WINAPI PathQuoteSpacesA ( LPSTR  )

◆ PathQuoteSpacesW()

WINSHLWAPI VOID WINAPI PathQuoteSpacesW ( LPWSTR  )

◆ PathRelativePathToA()

WINSHLWAPI BOOL WINAPI PathRelativePathToA ( LPSTR  ,
LPCSTR  ,
DWORD  ,
LPCSTR  ,
DWORD   
)

◆ PathRelativePathToW()

WINSHLWAPI BOOL WINAPI PathRelativePathToW ( LPWSTR  ,
LPCWSTR  ,
DWORD  ,
LPCWSTR  ,
DWORD   
)

◆ PathRemoveArgsA()

WINSHLWAPI VOID WINAPI PathRemoveArgsA ( LPSTR  lpszPath)

Definition at line 130 of file path.c.

131{
132 TRACE("(%s)\n",debugstr_a(lpszPath));
133
134 if(lpszPath)
135 {
136 LPSTR lpszArgs = PathGetArgsA(lpszPath);
137 if (*lpszArgs)
138 lpszArgs[-1] = '\0';
139 else
140 {
141 LPSTR lpszLastChar = CharPrevA(lpszPath, lpszArgs);
142 if(*lpszLastChar == ' ')
143 *lpszLastChar = '\0';
144 }
145 }
146}
char *WINAPI PathGetArgsA(const char *path)
Definition: path.c:1694
LPSTR WINAPI CharPrevA(const char *start, const char *ptr)
Definition: string.c:1172

Referenced by ATL::CPathT< StringType >::PathRemoveArgsX().

◆ PathRemoveArgsW()

WINSHLWAPI VOID WINAPI PathRemoveArgsW ( LPWSTR  lpszPath)

Definition at line 153 of file path.c.

154{
155 TRACE("(%s)\n",debugstr_w(lpszPath));
156
157 if(lpszPath)
158 {
159 LPWSTR lpszArgs = PathGetArgsW(lpszPath);
160 if (*lpszArgs || (lpszArgs > lpszPath && lpszArgs[-1] == ' '))
161 lpszArgs[-1] = '\0';
162 }
163}
WCHAR *WINAPI PathGetArgsW(const WCHAR *path)
Definition: path.c:1716

Referenced by RunOnceExEntry::Exec(), CAddressEditBox::ExecuteCommandLine(), CShellLink::OnNotify(), OpensWithExplorer(), ATL::CPathT< StringType >::PathRemoveArgsX(), SHELL_execute(), SHELL_translate_idlist(), ShellExecuteCommand(), and WelcomeDlgProc().

◆ PathRemoveBackslashA()

WINSHLWAPI LPSTR WINAPI PathRemoveBackslashA ( LPSTR  )

◆ PathRemoveBackslashW()

WINSHLWAPI LPWSTR WINAPI PathRemoveBackslashW ( LPWSTR  )

◆ PathRemoveBlanksA()

WINSHLWAPI VOID WINAPI PathRemoveBlanksA ( LPSTR  )

◆ PathRemoveBlanksW()

WINSHLWAPI VOID WINAPI PathRemoveBlanksW ( LPWSTR  )

◆ PathRemoveExtensionA()

WINSHLWAPI VOID WINAPI PathRemoveExtensionA ( LPSTR  )

◆ PathRemoveExtensionW()

WINSHLWAPI VOID WINAPI PathRemoveExtensionW ( LPWSTR  )

◆ PathRemoveFileSpecA()

WINSHLWAPI BOOL WINAPI PathRemoveFileSpecA ( LPSTR  )

◆ PathRemoveFileSpecW()

WINSHLWAPI BOOL WINAPI PathRemoveFileSpecW ( LPWSTR  )

◆ PathRenameExtensionA()

WINSHLWAPI BOOL WINAPI PathRenameExtensionA ( LPSTR  ,
LPCSTR   
)

◆ PathRenameExtensionW()

WINSHLWAPI BOOL WINAPI PathRenameExtensionW ( LPWSTR  ,
LPCWSTR   
)

◆ PathSearchAndQualifyA()

WINSHLWAPI BOOL WINAPI PathSearchAndQualifyA ( LPCSTR  ,
LPSTR  ,
UINT   
)

◆ PathSearchAndQualifyW()

WINSHLWAPI BOOL WINAPI PathSearchAndQualifyW ( LPCWSTR  ,
LPWSTR  ,
UINT   
)

◆ PathSetDlgItemPathA()

WINSHLWAPI VOID WINAPI PathSetDlgItemPathA ( HWND  hDlg,
int  id,
LPCSTR  lpszPath 
)

Definition at line 1246 of file path.c.

1247{
1249
1250 TRACE("(%p,%8x,%s)\n",hDlg, id, debugstr_a(lpszPath));
1251
1252 if (lpszPath)
1254 else
1255 szPath[0] = '\0';
1256 PathSetDlgItemPathW(hDlg, id, szPath);
1257}
VOID WINAPI PathSetDlgItemPathW(HWND hDlg, int id, LPCWSTR lpszPath)
Definition: path.c:1264

◆ PathSetDlgItemPathW()

WINSHLWAPI VOID WINAPI PathSetDlgItemPathW ( HWND  hDlg,
int  id,
LPCWSTR  lpszPath 
)

Definition at line 1264 of file path.c.

1265{
1266 WCHAR path[MAX_PATH + 1];
1267 HWND hwItem;
1268 RECT rect;
1269 HDC hdc;
1270 HGDIOBJ hPrevObj;
1271
1272 TRACE("(%p,%8x,%s)\n",hDlg, id, debugstr_w(lpszPath));
1273
1274 if (!(hwItem = GetDlgItem(hDlg, id)))
1275 return;
1276
1277 if (lpszPath)
1278 lstrcpynW(path, lpszPath, ARRAY_SIZE(path));
1279 else
1280 path[0] = '\0';
1281
1282 GetClientRect(hwItem, &rect);
1283 hdc = GetDC(hDlg);
1284 hPrevObj = SelectObject(hdc, (HGDIOBJ)SendMessageW(hwItem,WM_GETFONT,0,0));
1285
1286 if (hPrevObj)
1287 {
1289 SelectObject(hdc, hPrevObj);
1290 }
1291
1292 ReleaseDC(hDlg, hdc);
1293 SetWindowTextW(hwItem, path);
1294}
#define ARRAY_SIZE(A)
Definition: main.h:20
RECT rect
Definition: combotst.c:67
LONG right
Definition: windef.h:108
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1546
#define WM_GETFONT
Definition: winuser.h:1679
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

Referenced by PathSetDlgItemPathA().

◆ PathSkipRootA()

WINSHLWAPI LPSTR WINAPI PathSkipRootA ( LPCSTR  )

◆ PathSkipRootW()

WINSHLWAPI LPWSTR WINAPI PathSkipRootW ( LPCWSTR  )

◆ PathStripPathA()

WINSHLWAPI VOID WINAPI PathStripPathA ( LPSTR  )

◆ PathStripPathW()

WINSHLWAPI VOID WINAPI PathStripPathW ( LPWSTR  )

◆ PathStripToRootA()

WINSHLWAPI BOOL WINAPI PathStripToRootA ( LPSTR  )

◆ PathStripToRootW()

WINSHLWAPI BOOL WINAPI PathStripToRootW ( LPWSTR  )

◆ PathUndecorateA()

WINSHLWAPI VOID WINAPI PathUndecorateA ( LPSTR  )

◆ PathUndecorateW()

WINSHLWAPI VOID WINAPI PathUndecorateW ( LPWSTR  )

◆ PathUnExpandEnvStringsA()

WINSHLWAPI BOOL WINAPI PathUnExpandEnvStringsA ( LPCSTR  ,
LPSTR  ,
UINT   
)

◆ PathUnExpandEnvStringsW()

WINSHLWAPI BOOL WINAPI PathUnExpandEnvStringsW ( LPCWSTR  ,
LPWSTR  ,
UINT   
)

◆ PathUnmakeSystemFolderA()

WINSHLWAPI BOOL WINAPI PathUnmakeSystemFolderA ( LPCSTR  lpszPath)

Definition at line 1194 of file path.c.

1195{
1196 DWORD dwAttr;
1197
1198 TRACE("(%s)\n", debugstr_a(lpszPath));
1199
1200 if (!lpszPath || !*lpszPath || (dwAttr = GetFileAttributesA(lpszPath)) == INVALID_FILE_ATTRIBUTES ||
1201 !(dwAttr & FILE_ATTRIBUTE_DIRECTORY))
1202 return FALSE;
1203
1205 return SetFileAttributesA(lpszPath, dwAttr);
1206}
BOOL WINAPI SetFileAttributesA(LPCSTR lpFileName, DWORD dwFileAttributes)
Definition: fileinfo.c:760

◆ PathUnmakeSystemFolderW()

WINSHLWAPI BOOL WINAPI PathUnmakeSystemFolderW ( LPCWSTR  lpszPath)

Definition at line 1213 of file path.c.

1214{
1215 DWORD dwAttr;
1216
1217 TRACE("(%s)\n", debugstr_w(lpszPath));
1218
1219 if (!lpszPath || !*lpszPath || (dwAttr = GetFileAttributesW(lpszPath)) == INVALID_FILE_ATTRIBUTES ||
1220 !(dwAttr & FILE_ATTRIBUTE_DIRECTORY))
1221 return FALSE;
1222
1224 return SetFileAttributesW(lpszPath, dwAttr);
1225}

◆ PathUnquoteSpacesA()

WINSHLWAPI VOID WINAPI PathUnquoteSpacesA ( LPSTR  )

◆ PathUnquoteSpacesW()

WINSHLWAPI VOID WINAPI PathUnquoteSpacesW ( LPWSTR  )

◆ QISearch()

WINSHLWAPI HRESULT WINAPI QISearch ( void base,
const QITAB pqit,
REFIID  riid,
void **  ppv 
)

Definition at line 426 of file main.c.

427{
428 const QITAB *ptr;
429 IUnknown *unk;
430
431 TRACE("%p, %p, %s, %p\n", base, table, debugstr_guid(riid), obj);
432
433 if (!obj)
434 return E_POINTER;
435
436 for (ptr = table; ptr->piid; ++ptr)
437 {
438 TRACE("trying (offset %ld) %s\n", ptr->dwOffset, debugstr_guid(ptr->piid));
439 if (IsEqualIID(riid, ptr->piid))
440 {
441 unk = (IUnknown *)((BYTE *)base + ptr->dwOffset);
442 TRACE("matched, returning (%p)\n", unk);
443 *obj = unk;
444 IUnknown_AddRef(unk);
445 return S_OK;
446 }
447 }
448
450 {
451 unk = (IUnknown *)((BYTE *)base + table->dwOffset);
452 TRACE("returning first for IUnknown (%p)\n", unk);
453 *obj = unk;
454 IUnknown_AddRef(unk);
455 return S_OK;
456 }
457
458 WARN("Not found %s.\n", debugstr_guid(riid));
459 *obj = NULL;
460 return E_NOINTERFACE;
461}
const GUID IID_IUnknown
static PVOID ptr
Definition: dispmode.c:27
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
Definition: shlwapi.h:139
#define E_NOINTERFACE
Definition: winerror.h:3479
#define E_POINTER
Definition: winerror.h:3480

Referenced by ExplorerInstance::QueryInterface(), and CUnknownBase< Interface >::QueryInterface().

◆ SHAllocShared()

WINSHLWAPI HANDLE WINAPI SHAllocShared ( const void data,
DWORD  size,
DWORD  pid 
)

◆ SHAutoComplete()

WINSHLWAPI HRESULT WINAPI SHAutoComplete ( HWND  hwndEdit,
DWORD  dwFlags 
)

Definition at line 191 of file autocomp.cpp.

192{
193 TRACE("SHAutoComplete(%p, 0x%lX)\n", hwndEdit, dwFlags);
194
195 DWORD dwSHACF = dwFlags, dwACO = 0, dwACLO = 0;
196 AutoComplete_AdaptFlags(hwndEdit, &dwSHACF, &dwACO, &dwACLO);
197
198 // Load the list (with IEnumString interface)
199 CComPtr<IUnknown> pList = AutoComplete_LoadList(dwSHACF, dwACLO);
200 if (!pList)
201 {
202 ERR("Out of memory\n");
203 return E_OUTOFMEMORY;
204 }
205
206 // Create an auto-completion (IAutoComplete2)
207 CComPtr<IAutoComplete2> pAC2;
208 HRESULT hr = CoCreateInstance(CLSID_AutoComplete, NULL, CLSCTX_INPROC_SERVER,
209 IID_IAutoComplete2, (LPVOID *)&pAC2);
210 if (FAILED(hr))
211 {
212 ERR("CoCreateInstance(CLSID_AutoComplete) failed: 0x%lX\n", hr);
213 return hr;
214 }
215
216 // Keep the DLLs of CLSID_ACListISF and CLSID_AutoComplete loaded
217 hr = E_FAIL;
218 if (SHPinDllOfCLSID(CLSID_ACListISF) && SHPinDllOfCLSID(CLSID_AutoComplete))
219 {
220 // Initialize IAutoComplete2 for auto-completion
221 hr = pAC2->Init(hwndEdit, pList, NULL, NULL);
222 if (SUCCEEDED(hr))
223 pAC2->SetOptions(dwACO); // Set ACO_* flags
224 else
225 ERR("IAutoComplete2::Init failed: 0x%lX\n", hr);
226 }
227
228 return hr;
229}
HWND hwndEdit
Definition: combotst.c:65
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
Definition: combase.c:1685
HMODULE WINAPI SHPinDllOfCLSID(REFIID refiid)
Definition: ordinal.c:2173
FxChildList * pList
static VOID AutoComplete_AdaptFlags(IN HWND hwndEdit, IN OUT LPDWORD pdwSHACF, OUT LPDWORD pdwACO, OUT LPDWORD pdwACLO)
Definition: autocomp.cpp:134
static CComPtr< IUnknown > AutoComplete_LoadList(DWORD dwSHACF, DWORD dwACLO)
Definition: autocomp.cpp:65

Referenced by BrFolder_OnInitDialog(), CHSourceDlgProc(), CAddressEditBox::Init(), CShellLink::OnInitDialog(), PickIconProc(), RunDlgProc(), and WelcomeDlgProc().

◆ SHCopyKeyA()

WINSHLWAPI DWORD WINAPI SHCopyKeyA ( HKEY  ,
LPCSTR  ,
HKEY  ,
DWORD   
)

◆ SHCopyKeyW()

WINSHLWAPI DWORD WINAPI SHCopyKeyW ( HKEY  ,
LPCWSTR  ,
HKEY  ,
DWORD   
)

◆ SHCreateMemStream()

◆ SHCreateShellPalette()

WINSHLWAPI HPALETTE WINAPI SHCreateShellPalette ( HDC  hdc)

Definition at line 3871 of file ordinal.c.

3872{
3873 FIXME("stub\n");
3874 return CreateHalftonePalette(hdc);
3875}
HPALETTE WINAPI CreateHalftonePalette(_In_opt_ HDC)

◆ SHCreateStreamOnFileA()

WINSHLWAPI HRESULT WINAPI SHCreateStreamOnFileA ( LPCSTR  ,
DWORD  ,
struct IStream **   
)

◆ SHCreateStreamOnFileEx()

WINSHLWAPI HRESULT WINAPI SHCreateStreamOnFileEx ( LPCWSTR  ,
DWORD  ,
DWORD  ,
BOOL  ,
struct IStream ,
struct IStream **   
)

◆ SHCreateStreamOnFileW()

WINSHLWAPI HRESULT WINAPI SHCreateStreamOnFileW ( LPCWSTR  ,
DWORD  ,
struct IStream **   
)

◆ SHCreateStreamWrapper()

WINSHLWAPI HRESULT WINAPI SHCreateStreamWrapper ( LPBYTE  lpbData,
DWORD  dwDataLen,
DWORD  dwReserved,
struct IStream **  lppStream 
)

Definition at line 418 of file regstream.c.

420{
421 ISHRegStream *strm;
422
423 if (lppStream)
424 *lppStream = NULL;
425
426 if(dwReserved || !lppStream)
427 return E_INVALIDARG;
428
429 strm = IStream_Create(NULL, lpbData, dwDataLen);
430
431 if(!strm)
432 return E_OUTOFMEMORY;
433
434 IStream_QueryInterface(&strm->IStream_iface, &IID_IStream, (void**)lppStream);
435 IStream_Release(&strm->IStream_iface);
436 return S_OK;
437}
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:95
static ISHRegStream * IStream_Create(HKEY hKey, LPBYTE pbBuffer, DWORD dwLength)
Definition: regstream.c:377
IStream IStream_iface
Definition: regstream.c:40

◆ SHCreateThread()

WINSHLWAPI BOOL WINAPI SHCreateThread ( LPTHREAD_START_ROUTINE  thread_proc,
void data,
DWORD  flags,
LPTHREAD_START_ROUTINE  callback 
)

Definition at line 1628 of file main.c.

1629{
1630 struct thread_data thread_data;
1631 BOOL called = FALSE;
1632
1633 TRACE("%p, %p, %#lx, %p.\n", thread_proc, data, flags, callback);
1634
1640
1641 if (flags & CTF_THREAD_REF)
1643 else
1645
1646 if (flags & CTF_PROCESS_REF)
1648 else
1650
1651 /* Create the thread */
1652 if (thread_data.hEvent)
1653 {
1655 DWORD retval;
1656
1658 if (hThread)
1659 {
1660 /* Wait for the thread to signal us to continue */
1663 called = TRUE;
1664 }
1666 }
1667
1668 if (!called)
1669 {
1671 {
1672 /* Couldn't call, call synchronously */
1674 called = TRUE;
1675 }
1676 else
1677 {
1679 IUnknown_Release(thread_data.thread_ref);
1680
1682 IUnknown_Release(thread_data.process_ref);
1683 }
1684 }
1685
1686 return called;
1687}
static DWORD WINAPI thread_proc(void *param)
#define CloseHandle
Definition: compat.h:739
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
Definition: thread.c:137
HRESULT WINAPI SHGetThreadRef(IUnknown **out)
Definition: main.c:1505
static DWORD WINAPI shcore_thread_wrapper(void *data)
Definition: main.c:1582
HRESULT WINAPI GetProcessReference(IUnknown **obj)
Definition: main.c:1546
#define INFINITE
Definition: serial.h:102
static IPrintDialogCallback callback
Definition: printdlg.c:326
HANDLE hThread
Definition: wizard.c:28
DWORD flags
Definition: main.c:1576
IUnknown * thread_ref
Definition: main.c:1578
LPTHREAD_START_ROUTINE callback
Definition: main.c:1574
LPTHREAD_START_ROUTINE thread_proc
Definition: main.c:1573
IUnknown * process_ref
Definition: main.c:1579
void * data
Definition: main.c:1575
HANDLE hEvent
Definition: main.c:1577
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
Definition: synch.c:82
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
Definition: synch.c:587
int retval
Definition: wcstombs.cpp:91

Referenced by CRecyclerDropTarget::_DoDeleteAsync(), DoFormatDriveAsync(), CFSDropTarget::Drop(), EnableCommandIfVerbExists(), CCabFolder::ExtractFilesUI(), FormatDriveDlg(), CTrayWindow::HandleCommand(), CFileDefExt::InitFileAttr(), CFileDefExt::InitMultifilePage(), InstallDlgProc(), ShellPropSheetDialog::ShowAsync(), ShowFolderOptionsDialog(), CFindFolder::StartSearch(), and UIDlgProc().

◆ SHCreateThreadRef()

WINSHLWAPI HRESULT WINAPI SHCreateThreadRef ( LONG refcount,
IUnknown **  out 
)

Definition at line 1478 of file main.c.

1479{
1480 struct threadref *threadref;
1481
1482 TRACE("(%p, %p)\n", refcount, out);
1483
1484 if (!refcount || !out)
1485 return E_INVALIDARG;
1486
1487 *out = NULL;
1488
1489 threadref = malloc(sizeof(*threadref));
1490 if (!threadref)
1491 return E_OUTOFMEMORY;
1494
1495 *refcount = 1;
1497
1498 TRACE("Created %p.\n", threadref);
1499 return S_OK;
1500}
#define malloc
Definition: debug_ros.c:4
static const IUnknownVtbl threadrefvtbl
Definition: main.c:1468
LONG * refcount
Definition: main.c:1416
IUnknown IUnknown_iface
Definition: main.c:1415

Referenced by SHCreateFromDesktop().

◆ SHDeleteEmptyKeyA()

WINSHLWAPI DWORD WINAPI SHDeleteEmptyKeyA ( HKEY  ,
LPCSTR   
)

◆ SHDeleteEmptyKeyW()

WINSHLWAPI DWORD WINAPI SHDeleteEmptyKeyW ( HKEY  ,
LPCWSTR   
)

◆ SHDeleteKeyA()

WINSHLWAPI DWORD WINAPI SHDeleteKeyA ( HKEY  ,
LPCSTR   
)

◆ SHDeleteKeyW()

WINSHLWAPI DWORD WINAPI SHDeleteKeyW ( HKEY  ,
LPCWSTR   
)

◆ SHDeleteOrphanKeyA()

WINSHLWAPI DWORD WINAPI SHDeleteOrphanKeyA ( HKEY  hKey,
LPCSTR  lpszSubKey 
)

Definition at line 163 of file reg.c.

164{
165 HKEY hSubKey;
166 DWORD dwKeyCount = 0, dwValueCount = 0, dwRet;
167
168 TRACE("(hkey=%p,%s)\n", hKey, debugstr_a(lpszSubKey));
169
170 dwRet = RegOpenKeyExA(hKey, lpszSubKey, 0, KEY_READ, &hSubKey);
171
172 if(!dwRet)
173 {
174 /* Get subkey and value count */
175 dwRet = RegQueryInfoKeyA(hSubKey, NULL, NULL, NULL, &dwKeyCount,
176 NULL, NULL, &dwValueCount, NULL, NULL, NULL, NULL);
177
178 if(!dwRet && !dwKeyCount && !dwValueCount)
179 {
180 dwRet = RegDeleteKeyA(hKey, lpszSubKey);
181 }
182 RegCloseKey(hSubKey);
183 }
184 return dwRet;
185}
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
Definition: reg.c:3298
LONG WINAPI RegQueryInfoKeyA(HKEY hKey, LPSTR lpClass, LPDWORD lpcClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcMaxSubKeyLen, LPDWORD lpcMaxClassLen, LPDWORD lpcValues, LPDWORD lpcMaxValueNameLen, LPDWORD lpcMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime)
Definition: reg.c:3583
LONG WINAPI RegDeleteKeyA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey)
Definition: reg.c:1224
#define KEY_READ
Definition: nt_native.h:1026

Referenced by UnregisterExtensionForMIMETypeA().

◆ SHDeleteOrphanKeyW()

WINSHLWAPI DWORD WINAPI SHDeleteOrphanKeyW ( HKEY  hKey,
LPCWSTR  lpszSubKey 
)

Definition at line 192 of file reg.c.

193{
194 HKEY hSubKey;
195 DWORD dwKeyCount = 0, dwValueCount = 0, dwRet;
196
197 TRACE("(hkey=%p,%s)\n", hKey, debugstr_w(lpszSubKey));
198
199 dwRet = RegOpenKeyExW(hKey, lpszSubKey, 0, KEY_READ, &hSubKey);
200
201 if(!dwRet)
202 {
203 /* Get subkey and value count */
204 dwRet = RegQueryInfoKeyW(hSubKey, NULL, NULL, NULL, &dwKeyCount,
205 NULL, NULL, &dwValueCount, NULL, NULL, NULL, NULL);
206
207 if(!dwRet && !dwKeyCount && !dwValueCount)
208 {
209 dwRet = RegDeleteKeyW(hKey, lpszSubKey);
210 }
211 RegCloseKey(hSubKey);
212 }
213 return dwRet;
214}
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
Definition: reg.c:1239
LONG WINAPI RegQueryInfoKeyW(HKEY hKey, LPWSTR lpClass, LPDWORD lpcClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcMaxSubKeyLen, LPDWORD lpcMaxClassLen, LPDWORD lpcValues, LPDWORD lpcMaxValueNameLen, LPDWORD lpcMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime)
Definition: reg.c:3662

Referenced by UnregisterExtensionForMIMETypeW().

◆ SHDeleteValueA()

WINSHLWAPI DWORD WINAPI SHDeleteValueA ( HKEY  ,
LPCSTR  ,
LPCSTR   
)

◆ SHDeleteValueW()

WINSHLWAPI DWORD WINAPI SHDeleteValueW ( HKEY  ,
LPCWSTR  ,
LPCWSTR   
)

◆ SHEnumKeyExA()

WINSHLWAPI LONG WINAPI SHEnumKeyExA ( HKEY  ,
DWORD  ,
LPSTR  ,
LPDWORD   
)

◆ SHEnumKeyExW()

WINSHLWAPI LONG WINAPI SHEnumKeyExW ( HKEY  ,
DWORD  ,
LPWSTR  ,
LPDWORD   
)

◆ SHEnumValueA()

WINSHLWAPI LONG WINAPI SHEnumValueA ( HKEY  ,
DWORD  ,
LPSTR  ,
LPDWORD  ,
LPDWORD  ,
LPVOID  ,
LPDWORD   
)

◆ SHEnumValueW()

WINSHLWAPI LONG WINAPI SHEnumValueW ( HKEY  ,
DWORD  ,
LPWSTR  ,
LPDWORD  ,
LPDWORD  ,
LPVOID  ,
LPDWORD   
)

◆ SHFormatDateTimeA()

WINSHLWAPI int WINAPI SHFormatDateTimeA ( const FILETIME filetime,
DWORD flags,
LPSTR  buffer,
UINT  size 
)

◆ SHFormatDateTimeW()

WINSHLWAPI int WINAPI SHFormatDateTimeW ( const FILETIME filetime,
DWORD flags,
LPWSTR  buffer,
UINT  size 
)

◆ SHFreeShared()

WINSHLWAPI BOOL WINAPI SHFreeShared ( HANDLE  handle,
DWORD  pid 
)

Definition at line 313 of file ordinal.c.

314{
315 HANDLE hClose;
316
317 TRACE("(%p %ld)\n", hShared, dwProcId);
318
319 if (!hShared)
320 return TRUE;
321
322 /* Get a copy of the handle for our process, closing the source handle */
323 hClose = SHMapHandle(hShared, dwProcId, GetCurrentProcessId(),
325 /* Close local copy */
326 return CloseHandle(hClose);
327}
HANDLE WINAPI SHMapHandle(HANDLE hShared, DWORD dwSrcProcId, DWORD dwDstProcId, DWORD dwAccess, DWORD dwOptions)
Definition: ordinal.c:96
#define FILE_MAP_ALL_ACCESS
Definition: winbase.h:159
DWORD WINAPI GetCurrentProcessId(void)
Definition: proc.c:1155
#define DUPLICATE_CLOSE_SOURCE

Referenced by _ILReadFromSharedMemory(), AppBar_CopyIn(), AppBar_CopyOut(), CreateNotificationParam(), CreateNotificationParamAndSend(), CreateRegistrationParam(), init_pointers(), MakeSharedPacket(), CChangeNotifyServer::OnDeliverNotification(), ParseSharedPacket(), and SHChangeNotifyRegister().

◆ SHGetThreadRef()

WINSHLWAPI HRESULT WINAPI SHGetThreadRef ( IUnknown **  out)

Definition at line 1505 of file main.c.

1506{
1507 TRACE("(%p)\n", out);
1508
1510 return E_NOINTERFACE;
1511
1513 if (!*out)
1514 return E_NOINTERFACE;
1515
1516 IUnknown_AddRef(*out);
1517 return S_OK;
1518}
LPVOID WINAPI TlsGetValue(IN DWORD Index)
Definition: thread.c:1240
static DWORD shcore_tls
Definition: main.c:40
#define TLS_OUT_OF_INDEXES
Definition: winbase.h:529

Referenced by SHCreateThread().

◆ SHGetValueA()

WINSHLWAPI DWORD WINAPI SHGetValueA ( HKEY  ,
LPCSTR  ,
LPCSTR  ,
LPDWORD  ,
LPVOID  ,
LPDWORD   
)

◆ SHGetValueW()

WINSHLWAPI DWORD WINAPI SHGetValueW ( HKEY  ,
LPCWSTR  ,
LPCWSTR  ,
LPDWORD  ,
LPVOID  ,
LPDWORD   
)

◆ SHGetViewStatePropertyBag()

WINSHLWAPI HRESULT WINAPI SHGetViewStatePropertyBag ( PCIDLIST_ABSOLUTE  pidl,
PCWSTR  bagname,
DWORD  flags,
REFIID  riid,
void **  ppv 
)

Definition at line 191 of file shlwapi_main.c.

192{
193 FIXME("%p, %s, %#lx, %s, %p stub.\n", pidl, debugstr_w(bag_name), flags, debugstr_guid(riid), ppv);
194
195 return E_NOTIMPL;
196}
#define E_NOTIMPL
Definition: ddrawi.h:99
REFIID LPVOID * ppv
Definition: atlbase.h:39

◆ SHIsLowMemoryMachine()

WINSHLWAPI BOOL WINAPI SHIsLowMemoryMachine ( DWORD  type)

Definition at line 202 of file shlwapi_main.c.

203{
204#ifdef __REACTOS__
206 static int is_low = -1;
207 TRACE("(0x%08x)\n", type);
208 if (type == 0 && is_low == -1)
209 {
211 is_low = (status.dwTotalPhys <= 0x1000000);
212 }
213 return is_low;
214#else
215 FIXME("%ld stub\n", type);
216
217 return FALSE;
218#endif
219}
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
VOID NTAPI GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer)
Definition: heapmem.c:1365
Definition: ps.c:97

◆ SHLoadIndirectString()

WINSHLWAPI HRESULT WINAPI SHLoadIndirectString ( LPCWSTR  ,
LPWSTR  ,
UINT  ,
PVOID  
)

◆ SHLockShared()

WINSHLWAPI void *WINAPI SHLockShared ( HANDLE  handle,
DWORD  pid 
)

Definition at line 257 of file ordinal.c.

258{
259#ifdef __REACTOS__
260 return SHLockSharedEx(hShared, dwProcId, TRUE);
261#else
262 HANDLE hDup;
263 LPVOID pMapped;
264
265 TRACE("(%p %ld)\n", hShared, dwProcId);
266
267 /* Get handle to shared memory for current process */
268 hDup = SHMapHandle(hShared, dwProcId, GetCurrentProcessId(), FILE_MAP_ALL_ACCESS, 0);
269
270 /* Get View */
271 pMapped = MapViewOfFile(hDup, FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, 0);
272 CloseHandle(hDup);
273
274 if (pMapped)
275 return (char *) pMapped + sizeof(DWORD); /* Hide size */
276 return NULL;
277#endif
278}
#define FILE_MAP_READ
Definition: compat.h:776
#define MapViewOfFile
Definition: compat.h:745
#define DWORD
Definition: nt_native.h:44
PVOID WINAPI SHLockSharedEx(HANDLE hData, DWORD dwProcessId, BOOL bWriteAccess)
#define FILE_MAP_WRITE
Definition: winbase.h:157

Referenced by _ILReadFromSharedMemory(), AppBar_CopyIn(), AppBar_CopyOut(), AppBar_LockOutput(), init_pointers(), MakeSharedPacket(), ParseSharedPacket(), and SHELL_ArgifyW().

◆ SHOpenRegStream2A()

WINSHLWAPI struct IStream *WINAPI SHOpenRegStream2A ( HKEY  ,
LPCSTR  ,
LPCSTR  ,
DWORD   
)

◆ SHOpenRegStream2W()

WINSHLWAPI struct IStream *WINAPI SHOpenRegStream2W ( HKEY  ,
LPCWSTR  ,
LPCWSTR  ,
DWORD   
)

◆ SHOpenRegStreamA()

WINSHLWAPI struct IStream *WINAPI SHOpenRegStreamA ( HKEY  ,
LPCSTR  ,
LPCSTR  ,
DWORD   
)

◆ SHOpenRegStreamW()

WINSHLWAPI struct IStream *WINAPI SHOpenRegStreamW ( HKEY  ,
LPCWSTR  ,
LPCWSTR  ,
DWORD   
)

◆ SHQueryInfoKeyA()

WINSHLWAPI LONG WINAPI SHQueryInfoKeyA ( HKEY  ,
LPDWORD  ,
LPDWORD  ,
LPDWORD  ,
LPDWORD   
)

◆ SHQueryInfoKeyW()

WINSHLWAPI LONG WINAPI SHQueryInfoKeyW ( HKEY  ,
LPDWORD  ,
LPDWORD  ,
LPDWORD  ,
LPDWORD   
)

◆ SHQueryValueExA()

WINSHLWAPI DWORD WINAPI SHQueryValueExA ( HKEY  ,
LPCSTR  ,
LPDWORD  ,
LPDWORD  ,
LPVOID  ,
LPDWORD   
)

◆ SHQueryValueExW()

WINSHLWAPI DWORD WINAPI SHQueryValueExW ( HKEY  ,
LPCWSTR  ,
LPDWORD  ,
LPDWORD  ,
LPVOID  ,
LPDWORD   
)

◆ SHRegCloseUSKey()

WINSHLWAPI LONG WINAPI SHRegCloseUSKey ( HUSKEY  hUSKey)

Definition at line 3626 of file registry.c.

3627{
3628 struct USKEY *key = hUSKey;
3630
3631 if (!key)
3633
3634 if (key->HKCUkey)
3635 ret = RegCloseKey(key->HKCUkey);
3636 if (key->HKCUstart && key->HKCUstart != HKEY_CURRENT_USER)
3637 ret = RegCloseKey(key->HKCUstart);
3638 if (key->HKLMkey)
3639 ret = RegCloseKey(key->HKLMkey);
3640 if (key->HKLMstart && key->HKLMstart != HKEY_LOCAL_MACHINE)
3641 ret = RegCloseKey(key->HKLMstart);
3642
3643 heap_free(key);
3644 return ret;
3645}
#define ERROR_SUCCESS
Definition: deptool.c:10
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
return ret
Definition: mutex.c:146
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

Referenced by add_tbs_to_menu(), CTaskSwitchWnd::InvokeRegistryAppKeyCommand(), SHRegGetUSValueA(), SHRegGetUSValueW(), SHRegOpenUSKeyW(), SHRegSetUSValueA(), and SHRegSetUSValueW().

◆ SHRegCreateUSKeyA()

WINSHLWAPI LONG WINAPI SHRegCreateUSKeyA ( LPCSTR  path,
REGSAM  samDesired,
HUSKEY  relative_key,
PHUSKEY  new_uskey,
DWORD  flags 
)

Definition at line 3528 of file registry.c.

3529{
3530 WCHAR *pathW;
3531 LONG ret;
3532
3533 TRACE("%s, %#lx, %p, %p, %#lx\n", debugstr_a(path), samDesired, relative_key, new_uskey, flags);
3534
3535 if (path)
3536 {
3537 INT len = MultiByteToWideChar(CP_ACP, 0, path, -1, NULL, 0);
3538 pathW = heap_alloc(len * sizeof(WCHAR));
3539 if (!pathW)
3542 }
3543 else
3544 pathW = NULL;
3545
3546 ret = SHRegCreateUSKeyW(pathW, samDesired, relative_key, new_uskey, flags);
3548 return ret;
3549}
#define ERROR_NOT_ENOUGH_MEMORY
Definition: dderror.h:7
#define GetProcessHeap()
Definition: compat.h:736
#define HeapFree(x, y, z)
Definition: compat.h:735
LONG WINAPI SHRegCreateUSKeyW(const WCHAR *path, REGSAM samDesired, HUSKEY relative_key, PHUSKEY new_uskey, DWORD flags)
Definition: registry.c:3582
static const WCHAR pathW[]
Definition: path.c:2368

◆ SHRegCreateUSKeyW()

WINSHLWAPI LONG WINAPI SHRegCreateUSKeyW ( LPCWSTR  path,
REGSAM  samDesired,
HUSKEY  relative_key,
PHUSKEY  new_uskey,
DWORD  flags 
)

Definition at line 546 of file kernelbase.c.

548{
550 SHUSKEY *ret_key;
551
552 TRACE("(%s, 0x%08x, %p, %p, 0x%08x)\n", debugstr_w(path), samDesired,
553 relative_key, new_uskey, flags);
554
555 if (!new_uskey) return ERROR_INVALID_PARAMETER;
556
557 *new_uskey = NULL;
558
560 {
561 FIXME("unsupported flags 0x%08x\n", flags);
562 return ERROR_SUCCESS;
563 }
564
565 ret_key = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*ret_key));
566 lstrcpynW(ret_key->lpszPath, path, sizeof(ret_key->lpszPath)/sizeof(WCHAR));
567
568 if (relative_key)
569 {
572 }
573 else
574 {
575 ret_key->HKCUstart = HKEY_CURRENT_USER;
576 ret_key->HKLMstart = HKEY_LOCAL_MACHINE;
577 }
578
580 {
581 ret = RegCreateKeyExW(ret_key->HKCUstart, path, 0, NULL, 0, samDesired, NULL, &ret_key->HKCUkey, NULL);
582 if (ret == ERROR_SUCCESS)
583 *new_uskey = ret_key;
584 else
585 HeapFree(GetProcessHeap(), 0, ret_key);
586 }
587
588 return ret;
589}
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
Definition: reg.c:1096
#define ERROR_CALL_NOT_IMPLEMENTED
Definition: compat.h:102
#define HeapAlloc
Definition: compat.h:733
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
HKEY WINAPI SHRegDuplicateHKey(HKEY hKey)
Definition: main.c:1828
static HKEY REG_GetHKEYFromHUSKEY(HUSKEY hUSKey, BOOL which)
Definition: kernelbase.c:357
#define REG_HKCU
Definition: kernelbase.c:349
#define REG_HKLM
Definition: kernelbase.c:350
#define SHREGSET_FORCE_HKCU
Definition: shlwapi.h:720
HKEY HKCUkey
Definition: kernelbase.c:342
WCHAR lpszPath[MAX_PATH]
Definition: kernelbase.c:345
HKEY HKLMstart
Definition: kernelbase.c:343
HKEY HKCUstart
Definition: kernelbase.c:341

Referenced by SHRegCreateUSKeyA().

◆ SHRegDeleteEmptyUSKeyA()

WINSHLWAPI LONG WINAPI SHRegDeleteEmptyUSKeyA ( HUSKEY  hUSKey,
LPCSTR  pszValue,
SHREGDEL_FLAGS  delRegFlags 
)

Definition at line 606 of file kernelbase.c.

607{
608 FIXME("(%p, %s, 0x%08x) stub\n", hUSKey, debugstr_a(pszValue), delRegFlags);
609 return ERROR_SUCCESS;
610}
_In_opt_ LPCSTR _In_opt_ LPCSTR pszValue
Definition: shlwapi.h:783

◆ SHRegDeleteEmptyUSKeyW()

WINSHLWAPI LONG WINAPI SHRegDeleteEmptyUSKeyW ( HUSKEY  hUSKey,
LPCWSTR  pszValue,
SHREGDEL_FLAGS  delRegFlags 
)

Definition at line 617 of file kernelbase.c.

618{
619 FIXME("(%p, %s, 0x%08x) stub\n", hUSKey, debugstr_w(pszValue), delRegFlags);
620 return ERROR_SUCCESS;
621}

◆ SHRegDeleteUSValueA()

WINSHLWAPI LONG WINAPI SHRegDeleteUSValueA ( HUSKEY  hUSKey,
LPCSTR  pszValue,
SHREGDEL_FLAGS  delRegFlags 
)

Definition at line 638 of file kernelbase.c.

639{
640 FIXME("(%p, %s, 0x%08x) stub\n", hUSKey, debugstr_a(pszValue), delRegFlags);
641 return ERROR_SUCCESS;
642}

◆ SHRegDeleteUSValueW()

WINSHLWAPI LONG WINAPI SHRegDeleteUSValueW ( HUSKEY  hUSKey,
LPCWSTR  pszValue,
SHREGDEL_FLAGS  delRegFlags 
)

Definition at line 649 of file kernelbase.c.

650{
651 FIXME("(%p, %s, 0x%08x) stub\n", hUSKey, debugstr_w(pszValue), delRegFlags);
652 return ERROR_SUCCESS;
653}

◆ SHRegDuplicateHKey()

WINSHLWAPI HKEY WINAPI SHRegDuplicateHKey ( HKEY  hKey)

Definition at line 1828 of file main.c.

1829{
1830 HKEY newKey = 0;
1831
1832 RegOpenKeyExW(hKey, 0, 0, MAXIMUM_ALLOWED, &newKey);
1833 TRACE("new key is %p\n", newKey);
1834 return newKey;
1835}

Referenced by CRegistrySource::GetKey(), init(), CMruBase::InitData(), CDefaultContextMenu::Initialize(), CRegistrySource::SetKey(), SHRegCreateUSKeyW(), and SHRegOpenUSKeyW().

◆ SHRegEnumUSKeyA()

WINSHLWAPI LONG WINAPI SHRegEnumUSKeyA ( HUSKEY  hUSKey,
DWORD  dwIndex,
LPSTR  pszName,
LPDWORD  pcchValueNameLen,
SHREGENUM_FLAGS  enumRegFlags 
)

Definition at line 1208 of file kernelbase.c.

1214{
1215 HKEY dokey;
1216
1217 TRACE("(%p,%d,%p,%p(%d),%d)\n",
1218 hUSKey, dwIndex, pszName, pcchValueNameLen,
1219 *pcchValueNameLen, enumRegFlags);
1220
1221 if (((enumRegFlags == SHREGENUM_HKCU) ||
1222 (enumRegFlags == SHREGENUM_DEFAULT)) &&
1223 (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKCU))) {
1224 return RegEnumKeyExA(dokey, dwIndex, pszName, pcchValueNameLen,
1225 0, 0, 0, 0);
1226 }
1227
1228 if (((enumRegFlags == SHREGENUM_HKLM) ||
1229 (enumRegFlags == SHREGENUM_DEFAULT)) &&
1230 (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKLM))) {
1231 return RegEnumKeyExA(dokey, dwIndex, pszName, pcchValueNameLen,
1232 0, 0, 0, 0);
1233 }
1234 FIXME("no support for SHREGENUM_BOTH\n");
1236}
#define ERROR_INVALID_FUNCTION
Definition: dderror.h:6
LONG WINAPI RegEnumKeyExA(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
Definition: reg.c:2419

◆ SHRegEnumUSKeyW()

WINSHLWAPI LONG WINAPI SHRegEnumUSKeyW ( HUSKEY  hUSKey,
DWORD  dwIndex,
LPWSTR  pszName,
LPDWORD  pcchValueNameLen,
SHREGENUM_FLAGS  enumRegFlags 
)

Definition at line 1243 of file kernelbase.c.

1249{
1250 HKEY dokey;
1251
1252 TRACE("(%p,%d,%p,%p(%d),%d)\n",
1253 hUSKey, dwIndex, pszName, pcchValueNameLen,
1254 *pcchValueNameLen, enumRegFlags);
1255
1256 if (((enumRegFlags == SHREGENUM_HKCU) ||
1257 (enumRegFlags == SHREGENUM_DEFAULT)) &&
1258 (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKCU))) {
1259 return RegEnumKeyExW(dokey, dwIndex, pszName, pcchValueNameLen,
1260 0, 0, 0, 0);
1261 }
1262
1263 if (((enumRegFlags == SHREGENUM_HKLM) ||
1264 (enumRegFlags == SHREGENUM_DEFAULT)) &&
1265 (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKLM))) {
1266 return RegEnumKeyExW(dokey, dwIndex, pszName, pcchValueNameLen,
1267 0, 0, 0, 0);
1268 }
1269 FIXME("no support for SHREGENUM_BOTH\n");
1271}
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
Definition: reg.c:2504

◆ SHRegEnumUSValueA()

WINSHLWAPI LONG WINAPI SHRegEnumUSValueA ( HUSKEY  hUSKey,
DWORD  dwIndex,
LPSTR  pszValueName,
LPDWORD  pcchValueNameLen,
LPDWORD  pdwType,
LPVOID  pvData,
LPDWORD  pcbData,
SHREGENUM_FLAGS  enumRegFlags 
)

Definition at line 675 of file kernelbase.c.

678{
679 HKEY dokey;
680
681 TRACE("(%p, 0x%08x, %p, %p, %p, %p, %p, 0x%08x)\n", hUSKey, dwIndex,
682 pszValueName, pcchValueNameLen, pdwType, pvData, pcbData, enumRegFlags);
683
684 if (((enumRegFlags == SHREGENUM_HKCU) ||
685 (enumRegFlags == SHREGENUM_DEFAULT)) &&
686 (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKCU))) {
687 return RegEnumValueA(dokey, dwIndex, pszValueName, pcchValueNameLen,
689 }
690
691 if (((enumRegFlags == SHREGENUM_HKLM) ||
692 (enumRegFlags == SHREGENUM_DEFAULT)) &&
693 (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKLM))) {
694 return RegEnumValueA(dokey, dwIndex, pszValueName, pcchValueNameLen,
696 }
697 FIXME("no support for SHREGENUM_BOTH\n");
699}
LONG WINAPI RegEnumValueA(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpdwReserved, _Out_opt_ LPDWORD lpdwType, _Out_opt_ LPBYTE lpData, _Inout_opt_ LPDWORD lpcbData)
Definition: reg.c:2668
_In_ LPWSTR _In_ DWORD _In_ LPCVOID pvData
Definition: netsh.h:116
_In_opt_ LPCSTR _In_opt_ LPCSTR _In_ SRRF _Out_opt_ LPDWORD pdwType
Definition: shlwapi.h:783
_In_ _Out_writes_opt_ pcchValueName _Inout_opt_ LPDWORD _Out_opt_ _Out_writes_bytes_to_opt_ pcbData _Inout_opt_ LPDWORD pcbData
Definition: shlwapi.h:757

◆ SHRegEnumUSValueW()

WINSHLWAPI LONG WINAPI SHRegEnumUSValueW ( HUSKEY  hUSKey,
DWORD  dwIndex,
LPWSTR  pszValueName,
LPDWORD  pcchValueNameLen,
LPDWORD  pdwType,
LPVOID  pvData,
LPDWORD  pcbData,
SHREGENUM_FLAGS  enumRegFlags 
)

Definition at line 706 of file kernelbase.c.

709{
710 HKEY dokey;
711
712 TRACE("(%p, 0x%08x, %p, %p, %p, %p, %p, 0x%08x)\n", hUSKey, dwIndex,
713 pszValueName, pcchValueNameLen, pdwType, pvData, pcbData, enumRegFlags);
714
715 if (((enumRegFlags == SHREGENUM_HKCU) ||
716 (enumRegFlags == SHREGENUM_DEFAULT)) &&
717 (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKCU))) {
718 return RegEnumValueW(dokey, dwIndex, pszValueName, pcchValueNameLen,
720 }
721
722 if (((enumRegFlags == SHREGENUM_HKLM) ||
723 (enumRegFlags == SHREGENUM_DEFAULT)) &&
724 (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKLM))) {
725 return RegEnumValueW(dokey, dwIndex, pszValueName, pcchValueNameLen,
727 }
728 FIXME("no support for SHREGENUM_BOTH\n");
730}
LONG WINAPI RegEnumValueW(_In_ HKEY hKey, _In_ DWORD index, _Out_ LPWSTR value, _Inout_ PDWORD val_count, _Reserved_ PDWORD reserved, _Out_opt_ PDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ PDWORD count)
Definition: reg.c:2830

◆ SHRegGetBoolUSValueA()

WINSHLWAPI BOOL WINAPI SHRegGetBoolUSValueA ( LPCSTR  pszSubKey,
LPCSTR  pszValue,
BOOL  fIgnoreHKCU,
BOOL  fDefault 
)

Definition at line 1002 of file kernelbase.c.

1007{
1008 DWORD type, datalen, work;
1009 BOOL ret = fDefault;
1010 CHAR data[10];
1011
1012 TRACE("key '%s', value '%s', %s\n",
1014 (fIgnoreHKCU) ? "Ignoring HKCU" : "Tries HKCU then HKLM");
1015
1016 datalen = sizeof(data)-1;
1018 data, &datalen,
1019 fIgnoreHKCU, 0, 0)) {
1020 /* process returned data via type into bool */
1021 switch (type) {
1022 case REG_SZ:
1023 data[9] = '\0'; /* set end of string */
1024 if (lstrcmpiA(data, "YES") == 0) ret = TRUE;
1025 if (lstrcmpiA(data, "TRUE") == 0) ret = TRUE;
1026 if (lstrcmpiA(data, "NO") == 0) ret = FALSE;
1027 if (lstrcmpiA(data, "FALSE") == 0) ret = FALSE;
1028 break;
1029 case REG_DWORD:
1030 work = *(LPDWORD)data;
1031 ret = (work != 0);
1032 break;
1033 case REG_BINARY:
1034 if (datalen == 1) {
1035 ret = (data[0] != '\0');
1036 break;
1037 }
1038 default:
1039 FIXME("Unsupported registry data type %d\n", type);
1040 ret = FALSE;
1041 }
1042 TRACE("got value (type=%d), returning <%s>\n", type,
1043 (ret) ? "TRUE" : "FALSE");
1044 }
1045 else {
1046 ret = fDefault;
1047 TRACE("returning default data <%s>\n",
1048 (ret) ? "TRUE" : "FALSE");
1049 }
1050 return ret;
1051}
int const JOCTET unsigned int datalen
Definition: jpeglib.h:1033
LONG WINAPI SHRegGetUSValueA(LPCSTR pSubKey, LPCSTR pValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData, BOOL flagIgnoreHKCU, LPVOID pDefaultData, DWORD wDefaultDataSize)
Definition: kernelbase.c:849
#define REG_SZ
Definition: layer.c:22
#define REG_BINARY
Definition: nt_native.h:1499
#define LPDWORD
Definition: nt_native.h:46
char CHAR
Definition: pedump.c:57
_In_opt_ LPCSTR pszSubKey
Definition: shlwapi.h:783
#define REG_DWORD
Definition: sdbapi.c:615

◆ SHRegGetBoolUSValueW()

WINSHLWAPI BOOL WINAPI SHRegGetBoolUSValueW ( LPCWSTR  pszSubKey,
LPCWSTR  pszValue,
BOOL  fIgnoreHKCU,
BOOL  fDefault 
)

Definition at line 1058 of file kernelbase.c.

1063{
1064 static const WCHAR wYES[]= {'Y','E','S','\0'};
1065 static const WCHAR wTRUE[]= {'T','R','U','E','\0'};
1066 static const WCHAR wNO[]= {'N','O','\0'};
1067 static const WCHAR wFALSE[]={'F','A','L','S','E','\0'};
1068 DWORD type, datalen, work;
1069 BOOL ret = fDefault;
1070 WCHAR data[10];
1071
1072 TRACE("key '%s', value '%s', %s\n",
1074 (fIgnoreHKCU) ? "Ignoring HKCU" : "Tries HKCU then HKLM");
1075
1076 datalen = (sizeof(data)-1) * sizeof(WCHAR);
1078 data, &datalen,
1079 fIgnoreHKCU, 0, 0)) {
1080 /* process returned data via type into bool */
1081 switch (type) {
1082 case REG_SZ:
1083 data[9] = '\0'; /* set end of string */
1084 if (lstrcmpiW(data, wYES)==0 || lstrcmpiW(data, wTRUE)==0)
1085 ret = TRUE;
1086 else if (lstrcmpiW(data, wNO)==0 || lstrcmpiW(data, wFALSE)==0)
1087 ret = FALSE;
1088 break;
1089 case REG_DWORD:
1090 work = *(LPDWORD)data;
1091 ret = (work != 0);
1092 break;
1093 case REG_BINARY:
1094 if (datalen == 1) {
1095 ret = (data[0] != '\0');
1096 break;
1097 }
1098 default:
1099 FIXME("Unsupported registry data type %d\n", type);
1100 ret = FALSE;
1101 }
1102 TRACE("got value (type=%d), returning <%s>\n", type,
1103 (ret) ? "TRUE" : "FALSE");
1104 }
1105 else {
1106 ret = fDefault;
1107 TRACE("returning default data <%s>\n",
1108 (ret) ? "TRUE" : "FALSE");
1109 }
1110 return ret;
1111}
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
Definition: locale.c:4171
LONG WINAPI SHRegGetUSValueW(LPCWSTR pSubKey, LPCWSTR pValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData, BOOL flagIgnoreHKCU, LPVOID pDefaultData, DWORD wDefaultDataSize)
Definition: kernelbase.c:882

◆ SHRegGetIntW()

WINSHLWAPI int WINAPI SHRegGetIntW ( HKEY  ,
LPCWSTR  ,
int   
)

◆ SHRegGetPathA()

WINSHLWAPI DWORD WINAPI SHRegGetPathA ( HKEY  ,
LPCSTR  ,
LPCSTR  ,
LPSTR  ,
DWORD   
)

◆ SHRegGetPathW()

WINSHLWAPI DWORD WINAPI SHRegGetPathW ( HKEY  ,
LPCWSTR  ,
LPCWSTR  ,
LPWSTR  ,
DWORD   
)

◆ SHRegGetUSValueA()

WINSHLWAPI LONG WINAPI SHRegGetUSValueA ( LPCSTR  pSubKey,
LPCSTR  pValue,
LPDWORD  pwType,
LPVOID  pvData,
LPDWORD  pcbData,
BOOL  flagIgnoreHKCU,
LPVOID  pDefaultData,
DWORD  wDefaultDataSize 
)

Definition at line 849 of file kernelbase.c.

858{
859 HUSKEY myhuskey;
860 LONG ret;
861
862 if (!pvData || !pcbData) return ERROR_INVALID_FUNCTION; /* FIXME:wrong*/
863 TRACE("key '%s', value '%s', datalen %d, %s\n",
864 debugstr_a(pSubKey), debugstr_a(pValue), *pcbData,
865 (flagIgnoreHKCU) ? "Ignoring HKCU" : "Tries HKCU then HKLM");
866
867 ret = SHRegOpenUSKeyA(pSubKey, 0x1, 0, &myhuskey, flagIgnoreHKCU);
868 if (ret == ERROR_SUCCESS) {
869 ret = SHRegQueryUSValueA(myhuskey, pValue, pwType, pvData,
870 pcbData, flagIgnoreHKCU, pDefaultData,
871 wDefaultDataSize);
872 SHRegCloseUSKey(myhuskey);
873 }
874 return ret;
875}
PWCHAR pValue
LONG WINAPI SHRegQueryUSValueA(HUSKEY hUSKey, LPCSTR pszValue, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, BOOL fIgnoreHKCU, LPVOID pvDefaultData, DWORD dwDefaultDataSize)
Definition: kernelbase.c:741
LONG WINAPI SHRegOpenUSKeyA(LPCSTR Path, REGSAM AccessType, HUSKEY hRelativeUSKey, PHUSKEY phNewUSKey, BOOL fIgnoreHKCU)
Definition: kernelbase.c:394
LONG WINAPI SHRegCloseUSKey(HUSKEY hUSKey)
Definition: kernelbase.c:478

Referenced by SHRegGetBoolUSValueA().

◆ SHRegGetUSValueW()

WINSHLWAPI LONG WINAPI SHRegGetUSValueW ( LPCWSTR  pSubKey,
LPCWSTR  pValue,
LPDWORD  pwType,
LPVOID  pvData,
LPDWORD  pcbData,
BOOL  flagIgnoreHKCU,
LPVOID  pDefaultData,
DWORD  wDefaultDataSize 
)

Definition at line 882 of file kernelbase.c.

891{
892 HUSKEY myhuskey;
893 LONG ret;
894
895 if (!pvData || !pcbData) return ERROR_INVALID_FUNCTION; /* FIXME:wrong*/
896 TRACE("key '%s', value '%s', datalen %d, %s\n",
897 debugstr_w(pSubKey), debugstr_w(pValue), *pcbData,
898 (flagIgnoreHKCU) ? "Ignoring HKCU" : "Tries HKCU then HKLM");
899
900 ret = SHRegOpenUSKeyW(pSubKey, 0x1, 0, &myhuskey, flagIgnoreHKCU);
901 if (ret == ERROR_SUCCESS) {
902 ret = SHRegQueryUSValueW(myhuskey, pValue, pwType, pvData,
903 pcbData, flagIgnoreHKCU, pDefaultData,
904 wDefaultDataSize);
905 SHRegCloseUSKey(myhuskey);
906 }
907 return ret;
908}
LONG WINAPI SHRegOpenUSKeyW(LPCWSTR Path, REGSAM AccessType, HUSKEY hRelativeUSKey, PHUSKEY phNewUSKey, BOOL fIgnoreHKCU)
Definition: kernelbase.c:411
LONG WINAPI SHRegQueryUSValueW(HUSKEY hUSKey, LPCWSTR pszValue, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, BOOL fIgnoreHKCU, LPVOID pvDefaultData, DWORD dwDefaultDataSize)
Definition: kernelbase.c:792

Referenced by SHRegGetBoolUSValueW().

◆ SHRegGetValueA()

WINSHLWAPI LSTATUS WINAPI SHRegGetValueA ( HKEY  ,
LPCSTR  ,
LPCSTR  ,
SRRF  ,
LPDWORD  ,
LPVOID  ,
LPDWORD   
)

Referenced by init().

◆ SHRegGetValueW()

◆ SHRegOpenUSKeyA()

WINSHLWAPI LONG WINAPI SHRegOpenUSKeyA ( LPCSTR  Path,
REGSAM  AccessType,
HUSKEY  hRelativeUSKey,
PHUSKEY  phNewUSKey,
BOOL  fIgnoreHKCU 
)

Definition at line 394 of file kernelbase.c.

396{
398
399 if (Path)
401
402 return SHRegOpenUSKeyW(Path ? szPath : NULL, AccessType, hRelativeUSKey,
403 phNewUSKey, fIgnoreHKCU);
404}
PRTL_UNICODE_STRING_BUFFER Path

Referenced by SHRegGetUSValueA(), and SHRegSetUSValueA().

◆ SHRegOpenUSKeyW()

WINSHLWAPI LONG WINAPI SHRegOpenUSKeyW ( LPCWSTR  Path,
REGSAM  AccessType,
HUSKEY  hRelativeUSKey,
PHUSKEY  phNewUSKey,
BOOL  fIgnoreHKCU 
)

Definition at line 411 of file kernelbase.c.

413{
414 LONG ret2, ret1 = ~ERROR_SUCCESS;
416
417 TRACE("(%s,0x%x,%p,%p,%d)\n", debugstr_w(Path),(LONG)AccessType,
418 hRelativeUSKey, phNewUSKey, fIgnoreHKCU);
419
420 if (phNewUSKey)
421 *phNewUSKey = NULL;
422
423 /* Create internal HUSKEY */
425 lstrcpynW(hKey->lpszPath, Path, sizeof(hKey->lpszPath)/sizeof(WCHAR));
426
427 if (hRelativeUSKey)
428 {
429 hKey->HKCUstart = SHRegDuplicateHKey(REG_GetHKEYFromHUSKEY(hRelativeUSKey, REG_HKCU));
430 hKey->HKLMstart = SHRegDuplicateHKey(REG_GetHKEYFromHUSKEY(hRelativeUSKey, REG_HKLM));
431
432 /* FIXME: if either of these keys is NULL, create the start key from
433 * the relative keys start+path
434 */
435 }
436 else
437 {
438 hKey->HKCUstart = HKEY_CURRENT_USER;
439 hKey->HKLMstart = HKEY_LOCAL_MACHINE;
440 }
441
442 if (!fIgnoreHKCU)
443 {
444 ret1 = RegOpenKeyExW(hKey->HKCUstart, hKey->lpszPath, 0, AccessType, &hKey->HKCUkey);
445 if (ret1)
446 hKey->HKCUkey = 0;
447 }
448
449 ret2 = RegOpenKeyExW(hKey->HKLMstart, hKey->lpszPath, 0, AccessType, &hKey->HKLMkey);
450 if (ret2)
451 hKey->HKLMkey = 0;
452
453 if (ret1 || ret2)
454 TRACE("one or more opens failed: HKCU=%d HKLM=%d\n", ret1, ret2);
455
456 if (ret1 && ret2)
457 {
458 /* Neither open succeeded: fail */
460 return ret2;
461 }
462
463 TRACE("HUSKEY=%p\n", hKey);
464 if (phNewUSKey)
465 *phNewUSKey = hKey;
466 return ERROR_SUCCESS;
467}

Referenced by SHRegGetUSValueW(), SHRegOpenUSKeyA(), and SHRegSetUSValueW().

◆ SHRegQueryInfoUSKeyA()

WINSHLWAPI LONG WINAPI SHRegQueryInfoUSKeyA ( HUSKEY  hUSKey,
LPDWORD  pcSubKeys,
LPDWORD  pcchMaxSubKeyLen,
LPDWORD  pcValues,
LPDWORD  pcchMaxValueNameLen,
SHREGENUM_FLAGS  enumRegFlags 
)

Definition at line 1122 of file kernelbase.c.

1129{
1130 HKEY dokey;
1131 LONG ret;
1132
1133 TRACE("(%p,%p,%p,%p,%p,%d)\n",
1134 hUSKey,pcSubKeys,pcchMaxSubKeyLen,pcValues,
1135 pcchMaxValueNameLen,enumRegFlags);
1136
1137 /* if user wants HKCU, and it exists, then try it */
1138 if (((enumRegFlags == SHREGENUM_HKCU) ||
1139 (enumRegFlags == SHREGENUM_DEFAULT)) &&
1140 (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKCU))) {
1141 ret = RegQueryInfoKeyA(dokey, 0, 0, 0,
1142 pcSubKeys, pcchMaxSubKeyLen, 0,
1143 pcValues, pcchMaxValueNameLen, 0, 0, 0);
1144 if ((ret == ERROR_SUCCESS) ||
1145 (enumRegFlags == SHREGENUM_HKCU))
1146 return ret;
1147 }
1148 if (((enumRegFlags == SHREGENUM_HKLM) ||
1149 (enumRegFlags == SHREGENUM_DEFAULT)) &&
1150 (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKLM))) {
1151 return RegQueryInfoKeyA(dokey, 0, 0, 0,
1152 pcSubKeys, pcchMaxSubKeyLen, 0,
1153 pcValues, pcchMaxValueNameLen, 0, 0, 0);
1154 }
1156}

◆ SHRegQueryInfoUSKeyW()

WINSHLWAPI LONG WINAPI SHRegQueryInfoUSKeyW ( HUSKEY  hUSKey,
LPDWORD  pcSubKeys,
LPDWORD  pcchMaxSubKeyLen,
LPDWORD  pcValues,
LPDWORD  pcchMaxValueNameLen,
SHREGENUM_FLAGS  enumRegFlags 
)

Definition at line 1163 of file kernelbase.c.

1170{
1171 HKEY dokey;
1172 LONG ret;
1173
1174 TRACE("(%p,%p,%p,%p,%p,%d)\n",
1175 hUSKey,pcSubKeys,pcchMaxSubKeyLen,pcValues,
1176 pcchMaxValueNameLen,enumRegFlags);
1177
1178 /* if user wants HKCU, and it exists, then try it */
1179 if (((enumRegFlags == SHREGENUM_HKCU) ||
1180 (enumRegFlags == SHREGENUM_DEFAULT)) &&
1181 (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKCU))) {
1182 ret = RegQueryInfoKeyW(dokey, 0, 0, 0,
1183 pcSubKeys, pcchMaxSubKeyLen, 0,
1184 pcValues, pcchMaxValueNameLen, 0, 0, 0);
1185 if ((ret == ERROR_SUCCESS) ||
1186 (enumRegFlags == SHREGENUM_HKCU))
1187 return ret;
1188 }
1189 if (((enumRegFlags == SHREGENUM_HKLM) ||
1190 (enumRegFlags == SHREGENUM_DEFAULT)) &&
1191 (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKLM))) {
1192 return RegQueryInfoKeyW(dokey, 0, 0, 0,
1193 pcSubKeys, pcchMaxSubKeyLen, 0,
1194 pcValues, pcchMaxValueNameLen, 0, 0, 0);
1195 }
1197}

◆ SHRegQueryUSValueA()

WINSHLWAPI LONG WINAPI SHRegQueryUSValueA ( HUSKEY  hUSKey,
LPCSTR  pszValue,
LPDWORD  pdwType,
LPVOID  pvData,
LPDWORD  pcbData,
BOOL  fIgnoreHKCU,
LPVOID  pvDefaultData,
DWORD  dwDefaultDataSize 
)

Definition at line 741 of file kernelbase.c.

750{
751 LONG ret = ~ERROR_SUCCESS;
752 LONG i, maxmove;
753 HKEY dokey;
754 CHAR *src, *dst;
755
756 /* if user wants HKCU, and it exists, then try it */
757 if (!fIgnoreHKCU && (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKCU))) {
758 ret = RegQueryValueExA(dokey,
760 TRACE("HKCU RegQueryValue returned %08x\n", ret);
761 }
762
763 /* if HKCU did not work and HKLM exists, then try it */
764 if ((ret != ERROR_SUCCESS) &&
765 (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKLM))) {
766 ret = RegQueryValueExA(dokey,
768 TRACE("HKLM RegQueryValue returned %08x\n", ret);
769 }
770
771 /* if neither worked, and default data exists, then use it */
772 if (ret != ERROR_SUCCESS) {
773 if (pvDefaultData && (dwDefaultDataSize != 0)) {
775 src = pvDefaultData;
776 dst = pvData;
777 for(i=0; i<maxmove; i++) *dst++ = *src++;
778 *pcbData = maxmove;
779 TRACE("setting default data\n");
781 }
782 }
783 return ret;
784}
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
Definition: reg.c:4009
GLenum GLenum dst
Definition: glext.h:6340
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
_In_opt_ _Inout_opt_ _Out_writes_bytes_to_opt_ pcbData _Inout_opt_ LPDWORD _In_ _In_ DWORD dwDefaultDataSize
Definition: shlwapi.h:781

Referenced by SHRegGetUSValueA().

◆ SHRegQueryUSValueW()

WINSHLWAPI LONG WINAPI SHRegQueryUSValueW ( HUSKEY  hUSKey,
LPCWSTR  pszValue,
LPDWORD  pdwType,
LPVOID  pvData,
LPDWORD  pcbData,
BOOL  fIgnoreHKCU,
LPVOID  pvDefaultData,
DWORD  dwDefaultDataSize 
)

Definition at line 792 of file kernelbase.c.

801{
802 LONG ret = ~ERROR_SUCCESS;
803 LONG i, maxmove;
804 HKEY dokey;
805 CHAR *src, *dst;
806
807 /* if user wants HKCU, and it exists, then try it */
808 if (!fIgnoreHKCU && (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKCU))) {
809 ret = RegQueryValueExW(dokey,
811 TRACE("HKCU RegQueryValue returned %08x\n", ret);
812 }
813
814 /* if HKCU did not work and HKLM exists, then try it */
815 if ((ret != ERROR_SUCCESS) &&
816 (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKLM))) {
817 ret = RegQueryValueExW(dokey,
819 TRACE("HKLM RegQueryValue returned %08x\n", ret);
820 }
821
822 /* if neither worked, and default data exists, then use it */
823 if (ret != ERROR_SUCCESS) {
824 if (pvDefaultData && (dwDefaultDataSize != 0)) {
826 src = pvDefaultData;
827 dst = pvData;
828 for(i=0; i<maxmove; i++) *dst++ = *src++;
829 *pcbData = maxmove;
830 TRACE("setting default data\n");
832 }
833 }
834 return ret;
835}

Referenced by SHRegGetUSValueW().

◆ SHRegSetPathA()

WINSHLWAPI DWORD WINAPI SHRegSetPathA ( HKEY  ,
LPCSTR  ,
LPCSTR  ,
LPCSTR  ,
DWORD   
)

◆ SHRegSetPathW()

WINSHLWAPI DWORD WINAPI SHRegSetPathW ( HKEY  ,
LPCWSTR  ,
LPCWSTR  ,
LPCWSTR  ,
DWORD   
)

◆ SHRegSetUSValueA()

WINSHLWAPI LONG WINAPI SHRegSetUSValueA ( LPCSTR  pszSubKey,
LPCSTR  pszValue,
DWORD  dwType,
LPVOID  pvData,
DWORD  cbData,
DWORD  dwFlags 
)

Definition at line 931 of file kernelbase.c.

933{
934 BOOL ignoreHKCU = TRUE;
935 HUSKEY hkey;
936 LONG ret;
937
938 TRACE("(%s,%s,%d,%p,%d,0x%08x\n", debugstr_a(pszSubKey), debugstr_a(pszValue),
939 dwType, pvData, cbData, dwFlags);
940
941 if (!pvData)
943
945 ignoreHKCU = FALSE;
946
947 ret = SHRegOpenUSKeyA(pszSubKey, KEY_ALL_ACCESS, 0, &hkey, ignoreHKCU);
948 if (ret == ERROR_SUCCESS)
949 {
951 SHRegCloseUSKey(hkey);
952 }
953 return ret;
954}
LONG WINAPI SHRegWriteUSValueA(HUSKEY hUSKey, LPCSTR pszValue, DWORD dwType, LPVOID pvData, DWORD cbData, DWORD dwFlags)
Definition: kernelbase.c:1295
#define KEY_ALL_ACCESS
Definition: nt_native.h:1044
#define SHREGSET_HKCU
Definition: shlwapi.h:719
_In_opt_ _In_opt_ _In_ _In_ DWORD cbData
Definition: shlwapi.h:761

◆ SHRegSetUSValueW()

WINSHLWAPI LONG WINAPI SHRegSetUSValueW ( LPCWSTR  pszSubKey,
LPCWSTR  pszValue,
DWORD  dwType,
LPVOID  pvData,
DWORD  cbData,
DWORD  dwFlags 
)

Definition at line 961 of file kernelbase.c.

963{
964 BOOL ignoreHKCU = TRUE;
965 HUSKEY hkey;
966 LONG ret;
967
968 TRACE("(%s,%s,%d,%p,%d,0x%08x\n", debugstr_w(pszSubKey), debugstr_w(pszValue),
969 dwType, pvData, cbData, dwFlags);
970
971 if (!pvData)
973
975 ignoreHKCU = FALSE;
976
977 ret = SHRegOpenUSKeyW(pszSubKey, KEY_ALL_ACCESS, 0, &hkey, ignoreHKCU);
978 if (ret == ERROR_SUCCESS)
979 {
981 SHRegCloseUSKey(hkey);
982 }
983 return ret;
984}
LONG WINAPI SHRegWriteUSValueW(HUSKEY hUSKey, LPCWSTR pszValue, DWORD dwType, LPVOID pvData, DWORD cbData, DWORD dwFlags)
Definition: kernelbase.c:1312

◆ SHRegWriteUSValueA()

WINSHLWAPI LONG WINAPI SHRegWriteUSValueA ( HUSKEY  hUSKey,
LPCSTR  pszValue,
DWORD  dwType,
LPVOID  pvData,
DWORD  cbData,
DWORD  dwFlags 
)

Definition at line 1295 of file kernelbase.c.

1297{
1298 WCHAR szValue[MAX_PATH];
1299
1300 if (pszValue)
1301 MultiByteToWideChar(CP_ACP, 0, pszValue, -1, szValue, MAX_PATH);
1302
1303 return SHRegWriteUSValueW(hUSKey, pszValue ? szValue : NULL, dwType,
1305}

Referenced by SHRegSetUSValueA().

◆ SHRegWriteUSValueW()

WINSHLWAPI LONG WINAPI SHRegWriteUSValueW ( HUSKEY  hUSKey,
LPCWSTR  pszValue,
DWORD  dwType,
LPVOID  pvData,
DWORD  cbData,
DWORD  dwFlags 
)

Definition at line 1312 of file kernelbase.c.

1314{
1315 DWORD dummy;
1316 LPSHUSKEY hKey = hUSKey;
1318
1319 TRACE("(%p,%s,%d,%p,%d,%d)\n", hUSKey, debugstr_w(pszValue),
1320 dwType, pvData, cbData, dwFlags);
1321
1322 if (!hUSKey || IsBadWritePtr(hUSKey, sizeof(SHUSKEY)) ||
1325
1327 {
1328 if (!hKey->HKCUkey)
1329 {
1330 /* Create the key */
1331 ret = RegCreateKeyW(hKey->HKCUstart, hKey->lpszPath, &hKey->HKCUkey);
1332 TRACE("Creating HKCU key, ret = %d\n", ret);
1333 if (ret && (dwFlags & (SHREGSET_FORCE_HKCU)))
1334 {
1335 hKey->HKCUkey = 0;
1336 return ret;
1337 }
1338 }
1339
1340 if (!ret)
1341 {
1342 if ((dwFlags & SHREGSET_FORCE_HKCU) ||
1344 {
1345 /* Doesn't exist or we are forcing: Write value */
1346 ret = RegSetValueExW(hKey->HKCUkey, pszValue, 0, dwType, pvData, cbData);
1347 TRACE("Writing HKCU value, ret = %d\n", ret);
1348 }
1349 }
1350 }
1351
1353 {
1354 if (!hKey->HKLMkey)
1355 {
1356 /* Create the key */
1357 ret = RegCreateKeyW(hKey->HKLMstart, hKey->lpszPath, &hKey->HKLMkey);
1358 TRACE("Creating HKLM key, ret = %d\n", ret);
1359 if (ret && (dwFlags & (SHREGSET_FORCE_HKLM)))
1360 {
1361 hKey->HKLMkey = 0;
1362 return ret;
1363 }
1364 }
1365
1366 if (!ret)
1367 {
1368 if ((dwFlags & SHREGSET_FORCE_HKLM) ||
1370 {
1371 /* Doesn't exist or we are forcing: Write value */
1372 ret = RegSetValueExW(hKey->HKLMkey, pszValue, 0, dwType, pvData, cbData);
1373 TRACE("Writing HKLM value, ret = %d\n", ret);
1374 }
1375 }
1376 }
1377
1378 return ret;
1379}
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4882
LONG WINAPI RegCreateKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:1201
BOOL NTAPI IsBadWritePtr(IN LPVOID lp, IN UINT_PTR ucb)
Definition: except.c:883
#define SHREGSET_HKLM
Definition: shlwapi.h:721
#define SHREGSET_FORCE_HKLM
Definition: shlwapi.h:722

Referenced by SHRegSetUSValueW(), and SHRegWriteUSValueA().

◆ SHReleaseThreadRef()

WINSHLWAPI HRESULT WINAPI SHReleaseThreadRef ( void  )

Definition at line 1537 of file main.c.

1538{
1539 FIXME("() - stub!\n");
1540 return S_OK;
1541}

◆ SHSetThreadRef()

WINSHLWAPI HRESULT WINAPI SHSetThreadRef ( IUnknown obj)

Definition at line 1523 of file main.c.

1524{
1525 TRACE("(%p)\n", obj);
1526
1528 return E_NOINTERFACE;
1529
1531 return S_OK;
1532}
BOOL WINAPI TlsSetValue(IN DWORD Index, IN LPVOID Value)
Definition: thread.c:1276

◆ SHSetValueA()

WINSHLWAPI DWORD WINAPI SHSetValueA ( HKEY  ,
LPCSTR  ,
LPCSTR  ,
DWORD  ,
LPCVOID  ,
DWORD   
)

◆ SHSetValueW()

WINSHLWAPI DWORD WINAPI SHSetValueW ( HKEY  ,
LPCWSTR  ,
LPCWSTR  ,
DWORD  ,
LPCVOID  ,
DWORD   
)

◆ SHSkipJunction()

WINSHLWAPI BOOL WINAPI SHSkipJunction ( struct IBindCtx pbc,
const CLSID pclsid 
)

Definition at line 4022 of file ordinal.c.

4023{
4024 static WCHAR szSkipBinding[] = { 'S','k','i','p',' ',
4025 'B','i','n','d','i','n','g',' ','C','L','S','I','D','\0' };
4026 BOOL bRet = FALSE;
4027
4028 if (pbc)
4029 {
4030 IUnknown* lpUnk;
4031
4032 if (SUCCEEDED(IBindCtx_GetObjectParam(pbc, szSkipBinding, &lpUnk)))
4033 {
4034 CLSID clsid;
4035
4036 if (SUCCEEDED(IUnknown_GetClassID(lpUnk, &clsid)) &&
4037 IsEqualGUID(pclsid, &clsid))
4038 bRet = TRUE;
4039
4040 IUnknown_Release(lpUnk);
4041 }
4042 }
4043 return bRet;
4044}
HRESULT WINAPI IUnknown_GetClassID(IUnknown *lpUnknown, CLSID *clsid)
Definition: ordinal.c:1071
const CLSID * clsid
Definition: msctf.cpp:50
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147

Referenced by SHSkipJunctionBinding().

◆ SHStrDupA()

WINSHLWAPI HRESULT WINAPI SHStrDupA ( LPCSTR  ,
WCHAR **   
)

◆ SHStrDupW()

WINSHLWAPI HRESULT WINAPI SHStrDupW ( LPCWSTR  ,
WCHAR **   
)

◆ SHUnlockShared()

WINSHLWAPI BOOL WINAPI SHUnlockShared ( void data)

◆ StrCatBuffA()

WINSHLWAPI LPSTR WINAPI StrCatBuffA ( LPSTR  ,
LPCSTR  ,
INT   
)

◆ StrCatBuffW()

WINSHLWAPI LPWSTR WINAPI StrCatBuffW ( LPWSTR  ,
LPCWSTR  ,
INT   
)

◆ StrCatChainW()

WINSHLWAPI DWORD WINAPI StrCatChainW ( LPWSTR  ,
DWORD  ,
DWORD  ,
LPCWSTR   
)

◆ StrCatW()

WINSHLWAPI LPWSTR WINAPI StrCatW ( LPWSTR  lpszStr,
LPCWSTR  lpszSrc 
)

Definition at line 151 of file string.c.

152{
153 TRACE("(%s,%s)\n", debugstr_w(lpszStr), debugstr_w(lpszSrc));
154
155 if (lpszStr && lpszSrc)
156 lstrcatW(lpszStr, lpszSrc);
157 return lpszStr;
158}
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274

Referenced by CRegistryFolder::FormatValueData().

◆ StrChrA()

WINSHLWAPI LPSTR WINAPI StrChrA ( LPCSTR  lpszStr,
WORD  ch 
)

Definition at line 266 of file string.c.

267{
268 TRACE("(%s,%i)\n", debugstr_a(lpszStr), ch);
269
270 if (lpszStr)
271 {
272 while (*lpszStr)
273 {
274 if (!COMCTL32_ChrCmpA(*lpszStr, ch))
275 return (LPSTR)lpszStr;
276 lpszStr = CharNextA(lpszStr);
277 }
278 }
279 return NULL;
280}
static BOOL COMCTL32_ChrCmpA(WORD ch1, WORD ch2)
Definition: string.c:84
LPSTR WINAPI CharNextA(const char *ptr)
Definition: string.c:1151

Referenced by FPropContainsProp(), NextPathA(), PathFindNextComponentA(), PathQuoteSpacesA(), PathSkipRootA(), SHLWAPI_DoesModuleVersionMatch(), SHStripMneumonicA(), StrCSpnA(), StrPBrkA(), StrSpnA(), StrTrimA(), and test_StrChrA().

◆ StrChrIA()

WINSHLWAPI LPSTR WINAPI StrChrIA ( LPCSTR  lpszStr,
WORD  ch 
)

Definition at line 610 of file string.c.

611{
612 TRACE("(%s,%i)\n", debugstr_a(lpszStr), ch);
613
614 if (lpszStr)
615 {
616 while (*lpszStr)
617 {
618 if (!COMCTL32_ChrCmpIA(*lpszStr, ch))
619 return (LPSTR)lpszStr;
620 lpszStr = CharNextA(lpszStr);
621 }
622 }
623 return NULL;
624}
static BOOL COMCTL32_ChrCmpIA(WORD ch1, WORD ch2)
Definition: string.c:102

Referenced by FPropContainsProp(), StrCSpnIA(), and test_StrChrIA().

◆ StrChrIW()

WINSHLWAPI LPWSTR WINAPI StrChrIW ( LPCWSTR  lpszStr,
WCHAR  ch 
)

Definition at line 631 of file string.c.

632{
633 TRACE("(%s,%i)\n", debugstr_w(lpszStr), ch);
634
635 if (lpszStr)
636 {
637 ch = towupper(ch);
638 while (*lpszStr)
639 {
640 if (towupper(*lpszStr) == ch)
641 return (LPWSTR)lpszStr;
642 lpszStr++;
643 }
644 lpszStr = NULL;
645 }
646 return (LPWSTR)lpszStr;
647}
#define towupper(c)
Definition: wctype.h:99

Referenced by StrCSpnIW(), and test_StrChrIW().

◆ StrChrW()

◆ StrCmpIW()

WINSHLWAPI int WINAPI StrCmpIW ( LPCWSTR  ,
LPCWSTR   
)

◆ StrCmpLogicalW()

WINSHLWAPI INT WINAPI StrCmpLogicalW ( LPCWSTR  ,
LPCWSTR   
)

◆ StrCmpNA()

WINSHLWAPI INT WINAPI StrCmpNA ( LPCSTR  lpszStr,
LPCSTR  lpszComp,
INT  iLen 
)

Definition at line 489 of file string.c.

490{
491 TRACE("(%s,%s,%i)\n", debugstr_a(lpszStr), debugstr_a(lpszComp), iLen);
492 return CompareStringA(GetThreadLocale(), 0, lpszStr, iLen, lpszComp, iLen) - CSTR_EQUAL;
493}

Referenced by SHLWAPI_WndCompatEnumProc(), StrCmpNCA(), StrRStrA(), StrStrA(), and test_StrCmpA().

◆ StrCmpNIA()

WINSHLWAPI INT WINAPI StrCmpNIA ( LPCSTR  lpszStr,
LPCSTR  lpszComp,
INT  iLen 
)

Definition at line 296 of file string.c.

297{
298 TRACE("(%s,%s,%i)\n", debugstr_a(lpszStr), debugstr_a(lpszComp), iLen);
299 return CompareStringA(GetThreadLocale(), NORM_IGNORECASE, lpszStr, iLen, lpszComp, iLen) - CSTR_EQUAL;
300}

Referenced by DoTestEntry(), SHLWAPI_DoesModuleVersionMatch(), StrCmpNICA(), StrRStrIA(), StrStrIA(), and test_StrCmpA().

◆ StrCmpNIW()

◆ StrCmpNW()

◆ StrCmpW()

WINSHLWAPI int WINAPI StrCmpW ( LPCWSTR  ,
LPCWSTR   
)

◆ StrCpyNW()

WINSHLWAPI LPWSTR WINAPI StrCpyNW ( LPWSTR  ,
LPCWSTR  ,
int   
)

◆ StrCpyW()

WINSHLWAPI LPWSTR WINAPI StrCpyW ( LPWSTR  lpszStr,
LPCWSTR  lpszSrc 
)

Definition at line 173 of file string.c.

174{
175 TRACE("(%p,%s)\n", lpszStr, debugstr_w(lpszSrc));
176
177 if (lpszStr && lpszSrc)
178 lstrcpyW(lpszStr, lpszSrc);
179 return lpszStr;
180}

Referenced by _ShowContextMenu(), and test_StrCpyW().

◆ StrCSpnA()

WINSHLWAPI INT WINAPI StrCSpnA ( LPCSTR  lpszStr,
LPCSTR  lpszMatch 
)

Definition at line 452 of file string.c.

453{
454 TRACE("(%s,%s)\n",debugstr_a(lpszStr), debugstr_a(lpszMatch));
455
456 return COMCTL32_StrSpnHelperA(lpszStr, lpszMatch, StrChrA, TRUE);
457}
static int COMCTL32_StrSpnHelperA(LPCSTR lpszStr, LPCSTR lpszMatch, LPSTR(WINAPI *pStrChrFn)(LPCSTR, WORD), BOOL bInvert)
Definition: string.c:417
LPSTR WINAPI StrChrA(LPCSTR lpszStr, WORD ch)
Definition: string.c:266

◆ StrCSpnIA()

WINSHLWAPI INT WINAPI StrCSpnIA ( LPCSTR  lpszStr,
LPCSTR  lpszMatch 
)

Definition at line 746 of file string.c.

747{
748 TRACE("(%s,%s)\n",debugstr_a(lpszStr), debugstr_a(lpszMatch));
749
750 return COMCTL32_StrSpnHelperA(lpszStr, lpszMatch, StrChrIA, TRUE);
751}
LPSTR WINAPI StrChrIA(LPCSTR lpszStr, WORD ch)
Definition: string.c:610

◆ StrCSpnIW()

WINSHLWAPI INT WINAPI StrCSpnIW ( LPCWSTR  lpszStr,
LPCWSTR  lpszMatch 
)

Definition at line 758 of file string.c.

759{
760 LPCWSTR lpszRead = lpszStr;
761
762 TRACE("(%s,%s)\n",debugstr_w(lpszStr), debugstr_w(lpszMatch));
763
764 if (lpszStr && *lpszStr && lpszMatch)
765 {
766 while (*lpszRead)
767 {
768 if (StrChrIW(lpszMatch, *lpszRead)) break;
769 lpszRead++;
770 }
771 }
772 return lpszRead - lpszStr;
773}
LPWSTR WINAPI StrChrIW(LPCWSTR lpszStr, WCHAR ch)
Definition: string.c:631

◆ StrCSpnW()

WINSHLWAPI INT WINAPI StrCSpnW ( LPCWSTR  lpszStr,
LPCWSTR  lpszMatch 
)

Definition at line 839 of file string.c.

840{
841 if (!lpszStr || !lpszMatch) return 0;
842 return wcscspn( lpszStr, lpszMatch );
843}
_ACRTIMP size_t __cdecl wcscspn(const wchar_t *, const wchar_t *)
Definition: wcs.c:503

◆ StrDupA()

WINSHLWAPI char *WINAPI StrDupA ( const char str)

Definition at line 292 of file string.c.

293{
294 unsigned int len;
295 char *ret;
296
297 TRACE("%s\n", wine_dbgstr_a(str));
298
299#ifdef __REACTOS__
300 if (!str)
301 return NULL;
302#endif
303 len = str ? strlen(str) + 1 : 1;
305
306 if (ret)
307 {
308 if (str)
309 memcpy(ret, str, len);
310 else
311 *ret = '\0';
312 }
313
314 return ret;
315}
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:1390
#define LMEM_FIXED
Definition: minwinbase.h:81
const char int int int static __inline const char * wine_dbgstr_a(const char *s)
Definition: debug.h:152

Referenced by SHLWAPI_GetModuleVersion(), TEST_StrDupA(), and test_StrDupA().

◆ StrDupW()

◆ StrFormatByteSize64A()

WINSHLWAPI LPSTR WINAPI StrFormatByteSize64A ( LONGLONG  llBytes,
LPSTR  lpszDest,
UINT  cchMax 
)

Definition at line 997 of file string.c.

998{
999 WCHAR wszBuff[32];
1000
1001 StrFormatByteSizeW(llBytes, wszBuff, ARRAY_SIZE(wszBuff));
1002
1003 if (lpszDest)
1004 WideCharToMultiByte(CP_ACP, 0, wszBuff, -1, lpszDest, cchMax, 0, 0);
1005 return lpszDest;
1006}
LPWSTR WINAPI StrFormatByteSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
Definition: string.c:854

Referenced by CDrivesFolder::GetDetailsOf(), and StrFormatByteSizeA().

◆ StrFormatByteSizeA()

WINSHLWAPI LPSTR WINAPI StrFormatByteSizeA ( DWORD  dwBytes,
LPSTR  lpszDest,
UINT  cchMax 
)

Definition at line 1025 of file string.c.

1026{
1027 TRACE("(%ld,%p,%d)\n", dwBytes, lpszDest, cchMax);
1028
1029 return StrFormatByteSize64A(dwBytes, lpszDest, cchMax);
1030}
LPSTR WINAPI StrFormatByteSize64A(LONGLONG llBytes, LPSTR lpszDest, UINT cchMax)
Definition: string.c:997

Referenced by CCabFolder::GetItemDetails().

◆ StrFormatByteSizeEx()

WINSHLWAPI HRESULT WINAPI StrFormatByteSizeEx ( LONGLONG  llBytes,
SFBS_FLAGS  flags,
LPWSTR  lpszDest,
UINT  cchMax 
)

Definition at line 877 of file string.c.

879{
880#define KB ((ULONGLONG)1024)
881#define MB (KB*KB)
882#define GB (KB*KB*KB)
883#define TB (KB*KB*KB*KB)
884#define PB (KB*KB*KB*KB*KB)
885
886 static const SHLWAPI_BYTEFORMATS bfFormats[] =
887 {
888#ifdef __REACTOS__
889 { 10*KB, 10.24, 100.0, 2, IDS_KB_FORMAT }, /* 10 KB */
890 { 100*KB, 102.4, 10.0, 1, IDS_KB_FORMAT }, /* 100 KB */
891 { 1000*KB, 1024.0, 1.0, 0, IDS_KB_FORMAT }, /* 1000 KB */
892 { 10*MB, 10485.76, 100.0, 2, IDS_MB_FORMAT }, /* 10 MB */
893 { 100*MB, 104857.6, 10.0, 1, IDS_MB_FORMAT }, /* 100 MB */
894 { 1000*MB, 1048576.0, 1.0, 0, IDS_MB_FORMAT }, /* 1000 MB */
895 { 10*GB, 10737418.24, 100.0, 2, IDS_GB_FORMAT }, /* 10 GB */
896 { 100*GB, 107374182.4, 10.0, 1, IDS_GB_FORMAT }, /* 100 GB */
897 { 1000*GB, 1073741824.0, 1.0, 0, IDS_GB_FORMAT }, /* 1000 GB */
898 { 10*TB, 10485.76, 100.0, 2, IDS_TB_FORMAT }, /* 10 TB */
899 { 100*TB, 104857.6, 10.0, 1, IDS_TB_FORMAT }, /* 100 TB */
900 { 1000*TB, 1048576.0, 1.0, 0, IDS_TB_FORMAT }, /* 1000 TB */
901 { 10*PB, 10737418.24, 100.00, 2, IDS_PB_FORMAT }, /* 10 PB */
902 { 100*PB, 107374182.4, 10.00, 1, IDS_PB_FORMAT }, /* 100 PB */
903 { 1000*PB, 1073741824.0, 1.00, 0, IDS_PB_FORMAT }, /* 1000 PB */
904 { 0, 10995116277.76, 100.00, 2, IDS_EB_FORMAT } /* EB's, catch all */
905#else
906 { 10*KB, 10.24, 100.0, 2, 'K' }, /* 10 KB */
907 { 100*KB, 102.4, 10.0, 1, 'K' }, /* 100 KB */
908 { 1000*KB, 1024.0, 1.0, 0, 'K' }, /* 1000 KB */
909 { 10*MB, 10485.76, 100.0, 2, 'M' }, /* 10 MB */
910 { 100*MB, 104857.6, 10.0, 1, 'M' }, /* 100 MB */
911 { 1000*MB, 1048576.0, 1.0, 0, 'M' }, /* 1000 MB */
912 { 10*GB, 10737418.24, 100.0, 2, 'G' }, /* 10 GB */
913 { 100*GB, 107374182.4, 10.0, 1, 'G' }, /* 100 GB */
914 { 1000*GB, 1073741824.0, 1.0, 0, 'G' }, /* 1000 GB */
915 { 10*TB, 10485.76, 100.0, 2, 'T' }, /* 10 TB */
916 { 100*TB, 104857.6, 10.0, 1, 'T' }, /* 100 TB */
917 { 1000*TB, 1048576.0, 1.0, 0, 'T' }, /* 1000 TB */
918 { 10*PB, 10737418.24, 100.00, 2, 'P' }, /* 10 PB */
919 { 100*PB, 107374182.4, 10.00, 1, 'P' }, /* 100 PB */
920 { 1000*PB, 1073741824.0, 1.00, 0, 'P' }, /* 1000 PB */
921 { 0, 10995116277.76, 100.00, 2, 'E' } /* EB's, catch all */
922#endif
923 };
924#ifdef __REACTOS__
925 WCHAR szBuff[40], wszFormat[40];
926#else
927 WCHAR wszAdd[] = {' ','?','B',0};
928#endif
929 double dBytes;
930 UINT i = 0;
931
932 TRACE("(0x%s,%d,%p,%d)\n", wine_dbgstr_longlong(llBytes), flags, lpszDest, cchMax);
933
934 if (!cchMax)
935 return E_INVALIDARG;
936
937 if (llBytes < 1024) /* 1K */
938 {
939 WCHAR wszBytesFormat[64];
940 LoadStringW(shlwapi_hInstance, IDS_BYTES_FORMAT, wszBytesFormat, 64);
941 swprintf(lpszDest, cchMax, wszBytesFormat, (int)llBytes);
942 return S_OK;
943 }
944
945 /* Note that if this loop completes without finding a match, i will be
946 * pointing at the last entry, which is a catch all for > 1000 PB
947 */
948 while (i < ARRAY_SIZE(bfFormats) - 1)
949 {
950 if (llBytes < bfFormats[i].dLimit)
951 break;
952 i++;
953 }
954 /* Above 1 TB we encounter problems with FP accuracy. So for amounts above
955 * this number we integer shift down by 1 MB first. The table above has
956 * the divisors scaled down from the '< 10 TB' entry onwards, to account
957 * for this. We also add a small fudge factor to get the correct result for
958 * counts that lie exactly on a 1024 byte boundary.
959 */
960 if (i > 8)
961 dBytes = (double)(llBytes >> 20) + 0.001; /* Scale down by 1 MB */
962 else
963 dBytes = (double)llBytes + 0.00001;
964
965 switch(flags)
966 {
968 dBytes = round(dBytes / bfFormats[i].dDivisor) / bfFormats[i].dNormaliser;
969 break;
971 dBytes = floor(dBytes / bfFormats[i].dDivisor) / bfFormats[i].dNormaliser;
972 break;
973 default:
974 return E_INVALIDARG;
975 }
976
977#ifdef __REACTOS__
978 if (!FormatDouble(dBytes, bfFormats[i].nDecimals, szBuff, ARRAYSIZE(szBuff)))
979 return E_FAIL;
980 LoadStringW(shlwapi_hInstance, bfFormats[i].nFormatID, wszFormat, ARRAYSIZE(wszFormat));
981 snprintfW(lpszDest, cchMax, wszFormat, szBuff);
982#else
983 if (!FormatDouble(dBytes, bfFormats[i].nDecimals, lpszDest, cchMax))
984 return E_FAIL;
985
986 wszAdd[1] = bfFormats[i].wPrefix;
987 StrCatBuffW(lpszDest, wszAdd, cchMax);
988#endif
989 return S_OK;
990}
#define IDS_BYTES_FORMAT
Definition: resource.h:122
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
Definition: compat.h:49
WCHAR *WINAPI StrCatBuffW(WCHAR *str, const WCHAR *cat, INT max_len)
Definition: string.c:1434
_ACRTIMP double __cdecl floor(double)
Definition: floor.c:18
#define KB
#define PB
#define TB
#define GB
#define MB
HINSTANCE shlwapi_hInstance
Definition: shlwapi_main.c:33
static int FormatDouble(double value, int decimals, LPWSTR pszBuf, int cchBuf)
Definition: string.c:124
#define swprintf
Definition: precomp.h:40
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
Definition: string.c:91
#define round(x)
Definition: opentype.c:47
#define LoadStringW
Definition: utils.h:64
#define snprintfW
Definition: unicode.h:60

Referenced by StrFormatByteSizeW().

◆ StrFormatByteSizeW()

◆ StrFormatKBSizeA()

WINSHLWAPI LPSTR WINAPI StrFormatKBSizeA ( LONGLONG  llBytes,
LPSTR  lpszDest,
UINT  cchMax 
)

Definition at line 459 of file string.c.

460{
461 WCHAR wszBuf[256];
462
463 if (!StrFormatKBSizeW(llBytes, wszBuf, 256))
464 return NULL;
465 if (!WideCharToMultiByte(CP_ACP, 0, wszBuf, -1, lpszDest, cchMax, NULL, NULL))
466 return NULL;
467 return lpszDest;
468}
LPWSTR WINAPI StrFormatKBSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
Definition: string.c:475

Referenced by CFontExt::GetDetailsOf().

◆ StrFormatKBSizeW()

WINSHLWAPI LPWSTR WINAPI StrFormatKBSizeW ( LONGLONG  llBytes,
LPWSTR  lpszDest,
UINT  cchMax 
)

Definition at line 475 of file string.c.

476{
477 static const WCHAR kb[] = {' ','K','B',0};
478 LONGLONG llKB = (llBytes + 1023) >> 10;
479 int len;
480
481 TRACE("(0x%s,%p,%d)\n", wine_dbgstr_longlong(llBytes), lpszDest, cchMax);
482
483 if (!FormatInt(llKB, lpszDest, cchMax))
484 return NULL;
485
487 if (cchMax - len < 4)
488 return NULL;
489 lstrcatW(lpszDest, kb);
490 return lpszDest;
491}
static int FormatInt(LONGLONG qdwValue, LPWSTR pszBuf, int cchBuf)
Definition: string.c:92
int64_t LONGLONG
Definition: typedefs.h:68

Referenced by _ILGetFileSize(), CFSFolder::FormatSize(), and StrFormatKBSizeA().

◆ StrFromTimeIntervalA()

WINSHLWAPI int WINAPI StrFromTimeIntervalA ( LPSTR  lpszStr,
UINT  cchMax,
DWORD  dwMS,
int  iDigits 
)

Definition at line 760 of file string.c.

762{
763 INT iRet = 0;
764
765 TRACE("(%p,%d,%ld,%d)\n", lpszStr, cchMax, dwMS, iDigits);
766
767 if (lpszStr && cchMax)
768 {
769 WCHAR szBuff[128];
770 StrFromTimeIntervalW(szBuff, ARRAY_SIZE(szBuff), dwMS, iDigits);
771 WideCharToMultiByte(CP_ACP,0,szBuff,-1,lpszStr,cchMax,0,0);
772 }
773 return iRet;
774}
INT WINAPI StrFromTimeIntervalW(LPWSTR lpszStr, UINT cchMax, DWORD dwMS, int iDigits)
Definition: string.c:782

Referenced by test_StrFromTimeIntervalA().

◆ StrFromTimeIntervalW()

WINSHLWAPI int WINAPI StrFromTimeIntervalW ( LPWSTR  lpszStr,
UINT  cchMax,
DWORD  dwMS,
int  iDigits 
)

Definition at line 782 of file string.c.

784{
785 INT iRet = 0;
786
787 TRACE("(%p,%d,%ld,%d)\n", lpszStr, cchMax, dwMS, iDigits);
788
789 if (lpszStr && cchMax)
790 {
791 WCHAR szCopy[128];
792 DWORD dwHours, dwMinutes;
793
794 if (!iDigits || cchMax == 1)
795 {
796 *lpszStr = '\0';
797 return 0;
798 }
799
800 /* Calculate the time classes */
801 dwMS = (dwMS + 500) / 1000;
802 dwHours = dwMS / 3600;
803 dwMS -= dwHours * 3600;
804 dwMinutes = dwMS / 60;
805 dwMS -= dwMinutes * 60;
806
807 szCopy[0] = '\0';
808
809 if (dwHours)
810 iDigits = SHLWAPI_WriteTimeClass(szCopy, dwHours, IDS_TIME_INTERVAL_HOURS, iDigits);
811
812 if (dwMinutes && iDigits)
813 iDigits = SHLWAPI_WriteTimeClass(szCopy, dwMinutes, IDS_TIME_INTERVAL_MINUTES, iDigits);
814
815 if (iDigits) /* Always write seconds if we have significant digits */
817
818 lstrcpynW(lpszStr, szCopy, cchMax);
819 iRet = lstrlenW(lpszStr);
820 }
821 return iRet;
822}
#define IDS_TIME_INTERVAL_MINUTES
Definition: resource.h:28
#define IDS_TIME_INTERVAL_HOURS
Definition: resource.h:27
#define IDS_TIME_INTERVAL_SECONDS
Definition: resource.h:29
static int SHLWAPI_WriteTimeClass(LPWSTR lpszOut, DWORD dwValue, UINT uClassStringId, int iDigits)
Definition: string.c:716

Referenced by dialog_proc(), and StrFromTimeIntervalA().

◆ StrIsIntlEqualA()

WINSHLWAPI BOOL WINAPI StrIsIntlEqualA ( BOOL  ,
LPCSTR  ,
LPCSTR  ,
int   
)

◆ StrIsIntlEqualW()

WINSHLWAPI BOOL WINAPI StrIsIntlEqualW ( BOOL  ,
LPCWSTR  ,
LPCWSTR  ,
int   
)

◆ StrNCatA()

WINSHLWAPI LPSTR WINAPI StrNCatA ( LPSTR  ,
LPCSTR  ,
int   
)

◆ StrNCatW()

WINSHLWAPI LPWSTR WINAPI StrNCatW ( LPWSTR  ,
LPCWSTR  ,
int   
)

◆ StrPBrkA()

WINSHLWAPI LPSTR WINAPI StrPBrkA ( LPCSTR  ,
LPCSTR   
)

◆ StrPBrkW()

WINSHLWAPI LPWSTR WINAPI StrPBrkW ( LPCWSTR  ,
LPCWSTR   
)

◆ StrRChrA()

WINSHLWAPI LPSTR WINAPI StrRChrA ( LPCSTR  lpszStr,
LPCSTR  lpszEnd,
WORD  ch 
)

Definition at line 521 of file string.c.

522{
523 LPCSTR lpszRet = NULL;
524
525 TRACE("(%s,%s,%x)\n", debugstr_a(lpszStr), debugstr_a(lpszEnd), ch);
526
527 if (lpszStr)
528 {
529 WORD ch2;
530
531 if (!lpszEnd)
532 lpszEnd = lpszStr + lstrlenA(lpszStr);
533
534 while (*lpszStr && lpszStr <= lpszEnd)
535 {
536 ch2 = IsDBCSLeadByte(*lpszStr)? *lpszStr << 8 | lpszStr[1] : *lpszStr;
537
538 if (!COMCTL32_ChrCmpA(ch, ch2))
539 lpszRet = lpszStr;
540 lpszStr = CharNextA(lpszStr);
541 }
542 }
543 return (LPSTR)lpszRet;
544}
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145

Referenced by PathRemoveFileSpecA(), and test_StrRChrA().

◆ StrRChrIA()

WINSHLWAPI LPSTR WINAPI StrRChrIA ( LPCSTR  lpszStr,
LPCSTR  lpszEnd,
WORD  ch 
)

Definition at line 790 of file string.c.

791{
792 LPCSTR lpszRet = NULL;
793
794 TRACE("(%s,%s,%x)\n", debugstr_a(lpszStr), debugstr_a(lpszEnd), ch);
795
796 if (lpszStr)
797 {
798 WORD ch2;
799
800 if (!lpszEnd)
801 lpszEnd = lpszStr + lstrlenA(lpszStr);
802
803 while (*lpszStr && lpszStr <= lpszEnd)
804 {
805 ch2 = IsDBCSLeadByte(*lpszStr)? *lpszStr << 8 | lpszStr[1] : *lpszStr;
806
807 if (ch == ch2)
808 lpszRet = lpszStr;
809 lpszStr = CharNextA(lpszStr);
810 }
811 }
812 return (LPSTR)lpszRet;
813}

◆ StrRChrIW()

WINSHLWAPI LPWSTR WINAPI StrRChrIW ( LPCWSTR  str,
LPCWSTR  end,
WORD  ch 
)

Definition at line 820 of file string.c.

821{
822 WCHAR *ret = NULL;
823
824 if (!str) return NULL;
825 if (!end) end = str + lstrlenW(str);
826 while (str < end)
827 {
828 if (!COMCTL32_ChrCmpIW(*str, ch)) ret = (WCHAR *)str;
829 str++;
830 }
831 return ret;
832}
static BOOL COMCTL32_ChrCmpIW(WCHAR ch1, WCHAR ch2)
Definition: string.c:114

◆ StrRChrW()

WINSHLWAPI LPWSTR WINAPI StrRChrW ( LPCWSTR  str,
LPCWSTR  end,
WORD  ch 
)

Definition at line 552 of file string.c.

553{
554 WCHAR *ret = NULL;
555
556 if (!str) return NULL;
557 if (!end) end = str + lstrlenW(str);
558 while (str < end)
559 {
560 if (*str == ch) ret = (WCHAR *)str;
561 str++;
562 }
563 return ret;
564}

Referenced by add_file_to_entry(), CopySdbToAppPatch(), CIniPropertyBag::LooksLikeAnAlternateStream(), PathCchRemoveFileSpec(), PathRemoveFileSpecW(), SdbUninstall(), SHPathPrepareForWriteW(), test_StrRChrW(), and wildcard_to_file().

◆ StrRetToBSTR()

WINSHLWAPI HRESULT WINAPI StrRetToBSTR ( STRRET lpStrRet,
LPCITEMIDLIST  pidl,
BSTR pBstrOut 
)

Definition at line 418 of file string.c.

419{
420 HRESULT hRet = E_FAIL;
421
422 switch (lpStrRet->uType)
423 {
424 case STRRET_WSTR:
425 *pBstrOut = SysAllocString(lpStrRet->pOleStr);
426 if (*pBstrOut)
427 hRet = S_OK;
428 CoTaskMemFree(lpStrRet->pOleStr);
429 break;
430
431 case STRRET_CSTR:
432 hRet = _SHStrDupAToBSTR(lpStrRet->cStr, pBstrOut);
433 break;
434
435 case STRRET_OFFSET:
436 hRet = _SHStrDupAToBSTR(((LPCSTR)&pidl->mkid) + lpStrRet->uOffset, pBstrOut);
437 break;
438
439 default:
440 *pBstrOut = NULL;
441 }
442
443 return hRet;
444}
void WINAPI CoTaskMemFree(void *ptr)
Definition: malloc.c:389
static HRESULT _SHStrDupAToBSTR(LPCSTR src, BSTR *pBstrOut)
Definition: string.c:382
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:238
@ STRRET_CSTR
Definition: shtypes.idl:87
@ STRRET_OFFSET
Definition: shtypes.idl:86
@ STRRET_WSTR
Definition: shtypes.idl:85
char cStr[MAX_PATH]
Definition: shtypes.idl:98
UINT uType
Definition: shtypes.idl:93
LPWSTR pOleStr
Definition: shtypes.idl:96
UINT uOffset
Definition: shtypes.idl:97

Referenced by CFolderItem::get_Name(), CFolderItem::get_Path(), SHELL_GetDetailsOfAsStringVariant(), and StrRetToVariantBSTR().

◆ StrRetToBufA()

WINSHLWAPI HRESULT WINAPI StrRetToBufA ( STRRET ,
LPCITEMIDLIST  ,
LPSTR  ,
UINT   
)

◆ StrRetToBufW()

WINSHLWAPI HRESULT WINAPI StrRetToBufW ( STRRET ,
LPCITEMIDLIST  ,
LPWSTR  ,
UINT   
)

◆ StrRetToStrA()

WINSHLWAPI HRESULT WINAPI StrRetToStrA ( STRRET ,
LPCITEMIDLIST  ,
LPSTR  
)

◆ StrRetToStrW()

WINSHLWAPI HRESULT WINAPI StrRetToStrW ( STRRET ,
LPCITEMIDLIST  ,
LPWSTR  
)

◆ StrRStrIA()

WINSHLWAPI LPSTR WINAPI StrRStrIA ( LPCSTR  lpszStr,
LPCSTR  lpszEnd,
LPCSTR  lpszSearch 
)

Definition at line 662 of file string.c.

663{
664 LPSTR lpszRet = NULL;
665 WORD ch1, ch2;
666 INT iLen;
667
668 TRACE("(%s,%s)\n", debugstr_a(lpszStr), debugstr_a(lpszSearch));
669
670 if (!lpszStr || !lpszSearch || !*lpszSearch)
671 return NULL;
672
673 if (IsDBCSLeadByte(*lpszSearch))
674 ch1 = *lpszSearch << 8 | (UCHAR)lpszSearch[1];
675 else
676 ch1 = *lpszSearch;
677 iLen = lstrlenA(lpszSearch);
678
679 if (!lpszEnd)
680 lpszEnd = lpszStr + lstrlenA(lpszStr);
681 else /* reproduce the broken behaviour on Windows */
682 lpszEnd += min(iLen - 1, lstrlenA(lpszEnd));
683
684 while (lpszStr + iLen <= lpszEnd && *lpszStr)
685 {
686 ch2 = IsDBCSLeadByte(*lpszStr)? *lpszStr << 8 | (UCHAR)lpszStr[1] : *lpszStr;
687 if (!COMCTL32_ChrCmpIA(ch1, ch2))
688 {
689 if (!StrCmpNIA(lpszStr, lpszSearch, iLen))
690 lpszRet = (LPSTR)lpszStr;
691 }
692 lpszStr = CharNextA(lpszStr);
693 }
694 return lpszRet;
695}
INT WINAPI StrCmpNIA(LPCSTR lpszStr, LPCSTR lpszComp, INT iLen)
Definition: string.c:296
unsigned char UCHAR
Definition: typedefs.h:53

◆ StrRStrIW()

WINSHLWAPI LPWSTR WINAPI StrRStrIW ( LPCWSTR  lpszStr,
LPCWSTR  lpszEnd,
LPCWSTR  lpszSearch 
)

Definition at line 702 of file string.c.

703{
704 LPWSTR lpszRet = NULL;
705 INT iLen;
706
707 TRACE("(%s,%s)\n", debugstr_w(lpszStr), debugstr_w(lpszSearch));
708
709 if (!lpszStr || !lpszSearch || !*lpszSearch)
710 return NULL;
711
712 iLen = lstrlenW(lpszSearch);
713
714 if (!lpszEnd)
715 lpszEnd = lpszStr + lstrlenW(lpszStr);
716 else /* reproduce the broken behaviour on Windows */
717 lpszEnd += min(iLen - 1, lstrlenW(lpszEnd));
718
719
720 while (lpszStr + iLen <= lpszEnd && *lpszStr)
721 {
722 if (!COMCTL32_ChrCmpIW(*lpszSearch, *lpszStr))
723 {
724 if (!StrCmpNIW(lpszStr, lpszSearch, iLen))
725 lpszRet = (LPWSTR)lpszStr;
726 }
727 lpszStr++;
728 }
729 return lpszRet;
730}
INT WINAPI StrCmpNIW(LPCWSTR lpszStr, LPCWSTR lpszComp, INT iLen)
Definition: string.c:307

Referenced by PrettifyFileDescriptionW().

◆ StrSpnA()

WINSHLWAPI int WINAPI StrSpnA ( LPCSTR  ,
LPCSTR   
)

◆ StrSpnW()

WINSHLWAPI int WINAPI StrSpnW ( LPCWSTR  ,
LPCWSTR   
)

◆ StrStrA()

WINSHLWAPI LPSTR WINAPI StrStrA ( LPCSTR  lpszStr,
LPCSTR  lpszSearch 
)

Definition at line 578 of file string.c.

579{
580 TRACE("(%s,%s)\n", debugstr_a(lpszStr), debugstr_a(lpszSearch));
581
582 return COMCTL32_StrStrHelperA(lpszStr, lpszSearch, StrCmpNA);
583}
static LPSTR COMCTL32_StrStrHelperA(LPCSTR lpszStr, LPCSTR lpszSearch, INT(WINAPI *pStrCmpFn)(LPCSTR, LPCSTR, INT))
Definition: string.c:318
INT WINAPI StrCmpNA(LPCSTR lpszStr, LPCSTR lpszComp, INT iLen)
Definition: string.c:489

Referenced by test_StrStrA().

◆ StrStrIA()

WINSHLWAPI LPSTR WINAPI StrStrIA ( LPCSTR  lpszStr,
LPCSTR  lpszSearch 
)

Definition at line 351 of file string.c.

352{
353 TRACE("(%s,%s)\n", debugstr_a(lpszStr), debugstr_a(lpszSearch));
354
355 return COMCTL32_StrStrHelperA(lpszStr, lpszSearch, StrCmpNIA);
356}

Referenced by FTP_ParseNextFile(), test_loadlibraryshim(), and test_StrStrIA().

◆ StrStrIW()

WINSHLWAPI LPWSTR WINAPI StrStrIW ( LPCWSTR  lpszStr,
LPCWSTR  lpszSearch 
)

Definition at line 380 of file string.c.

381{
382 int iLen;
383 LPCWSTR end;
384
385 TRACE("(%s,%s)\n", debugstr_w(lpszStr), debugstr_w(lpszSearch));
386
387 if (!lpszStr || !lpszSearch || !*lpszSearch)
388 return NULL;
389
390 iLen = lstrlenW(lpszSearch);
391 end = lpszStr + lstrlenW(lpszStr);
392
393 while (lpszStr + iLen <= end)
394 {
395 if (!StrCmpNIW(lpszStr, lpszSearch, iLen))
396 return (LPWSTR)lpszStr;
397 lpszStr++;
398 }
399 return NULL;
400}

Referenced by EditTypeDlg_OnChangeIcon(), IsExplorerSystemShell(), OpensWithExplorer(), SearchPatternMatch(), SHELL_InRunDllProcess(), START_TEST(), TEST_AssocF_Flags(), TEST_AssocKeys(), TEST_PszAssoc(), TEST_ShellExecClass(), and test_StrStrIW().

◆ StrStrNIW()

WINSHLWAPI LPWSTR WINAPI StrStrNIW ( LPCWSTR  ,
LPCWSTR  ,
UINT   
)

◆ StrStrNW()

WINSHLWAPI LPWSTR WINAPI StrStrNW ( LPCWSTR  ,
LPCWSTR  ,
UINT   
)

◆ StrStrW()

WINSHLWAPI LPWSTR WINAPI StrStrW ( LPCWSTR  lpszStr,
LPCWSTR  lpszSearch 
)

Definition at line 590 of file string.c.

591{
592 if (!lpszStr || !lpszSearch) return NULL;
593 return wcsstr( lpszStr, lpszSearch );
594}
_ACRTIMP wchar_t *__cdecl wcsstr(const wchar_t *, const wchar_t *)
Definition: wcs.c:2998

Referenced by IsSelfShellVerb(), IsUnnamed(), TEST_LocaleTests(), and test_StrStrW().

◆ StrToInt64ExA()

WINSHLWAPI BOOL WINAPI StrToInt64ExA ( LPCSTR  ,
DWORD  ,
LONGLONG  
)

◆ StrToInt64ExW()

WINSHLWAPI BOOL WINAPI StrToInt64ExW ( LPCWSTR  ,
DWORD  ,
LONGLONG  
)

◆ StrToIntA()

WINSHLWAPI int WINAPI StrToIntA ( LPCSTR  lpszStr)

Definition at line 370 of file string.c.

371{
372 return atoi(lpszStr);
373}
_ACRTIMP int __cdecl atoi(const char *)
Definition: string.c:1720

Referenced by Options_RunDLL(), Options_RunDLLA(), PathParseIconLocationA(), TEST_StrToIntA(), and test_StrToIntA().

◆ StrToIntExA()

WINSHLWAPI BOOL WINAPI StrToIntExA ( LPCSTR  ,
DWORD  ,
int  
)

◆ StrToIntExW()

WINSHLWAPI BOOL WINAPI StrToIntExW ( LPCWSTR  ,
DWORD  ,
int  
)

◆ StrToIntW()

WINSHLWAPI int WINAPI StrToIntW ( LPCWSTR  lpString)

Definition at line 407 of file string.c.

408{
409 return wcstol(lpString, NULL, 10);
410}
_ACRTIMP __msvcrt_long __cdecl wcstol(const wchar_t *, wchar_t **, int)
Definition: wcs.c:2752

Referenced by _ILReadFromSharedMemory(), add_zone_to_listview(), Dde_OnExecute(), CConfigParser::GetInt(), Int64GetNumFormat(), Options_RunDLLW(), PathParseIconLocationW(), TEST_StrToIntW(), and test_StrToIntW().

◆ StrTrimA()

WINSHLWAPI BOOL WINAPI StrTrimA ( LPSTR  ,
LPCSTR   
)

◆ StrTrimW()

WINSHLWAPI BOOL WINAPI StrTrimW ( LPWSTR  ,
LPCWSTR   
)

◆ UrlApplySchemeA()

WINSHLWAPI HRESULT WINAPI UrlApplySchemeA ( LPCSTR  ,
LPSTR  ,
LPDWORD  ,
DWORD   
)

◆ UrlApplySchemeW()

WINSHLWAPI HRESULT WINAPI UrlApplySchemeW ( LPCWSTR  ,
LPWSTR  ,
LPDWORD  ,
DWORD   
)

◆ UrlCanonicalizeA()

WINSHLWAPI HRESULT WINAPI UrlCanonicalizeA ( LPCSTR  ,
LPSTR  ,
LPDWORD  ,
DWORD   
)

◆ UrlCanonicalizeW()

WINSHLWAPI HRESULT WINAPI UrlCanonicalizeW ( LPCWSTR  ,
LPWSTR  ,
LPDWORD  ,
DWORD   
)

◆ UrlCombineA()

WINSHLWAPI HRESULT WINAPI UrlCombineA ( LPCSTR  ,
LPCSTR  ,
LPSTR  ,
LPDWORD  ,
DWORD   
)

◆ UrlCombineW()

WINSHLWAPI HRESULT WINAPI UrlCombineW ( LPCWSTR  ,
LPCWSTR  ,
LPWSTR  ,
LPDWORD  ,
DWORD   
)

◆ UrlCompareA()

WINSHLWAPI INT WINAPI UrlCompareA ( LPCSTR  ,
LPCSTR  ,
BOOL   
)

◆ UrlCompareW()

WINSHLWAPI INT WINAPI UrlCompareW ( LPCWSTR  ,
LPCWSTR  ,
BOOL   
)

◆ UrlCreateFromPathA()

WINSHLWAPI HRESULT WINAPI UrlCreateFromPathA ( LPCSTR  ,
LPSTR  ,
LPDWORD  ,
DWORD   
)

◆ UrlCreateFromPathW()

WINSHLWAPI HRESULT WINAPI UrlCreateFromPathW ( LPCWSTR  ,
LPWSTR  ,
LPDWORD  ,
DWORD   
)

◆ UrlEscapeA()

WINSHLWAPI HRESULT WINAPI UrlEscapeA ( LPCSTR  ,
LPSTR  ,
LPDWORD  ,
DWORD   
)

◆ UrlEscapeW()

WINSHLWAPI HRESULT WINAPI UrlEscapeW ( LPCWSTR  ,
LPWSTR  ,
LPDWORD  ,
DWORD   
)

◆ UrlGetLocationA()

WINSHLWAPI LPCSTR WINAPI UrlGetLocationA ( LPCSTR  )

◆ UrlGetLocationW()

WINSHLWAPI LPCWSTR WINAPI UrlGetLocationW ( LPCWSTR  )

◆ UrlGetPartA()

WINSHLWAPI HRESULT WINAPI UrlGetPartA ( LPCSTR  ,
LPSTR  ,
LPDWORD  ,
DWORD  ,
DWORD   
)

◆ UrlGetPartW()

WINSHLWAPI HRESULT WINAPI UrlGetPartW ( LPCWSTR  ,
LPWSTR  ,
LPDWORD  ,
DWORD  ,
DWORD   
)

◆ UrlHashA()

WINSHLWAPI HRESULT WINAPI UrlHashA ( LPCSTR  ,
unsigned char ,
DWORD   
)

◆ UrlHashW()

WINSHLWAPI HRESULT WINAPI UrlHashW ( LPCWSTR  ,
unsigned char ,
DWORD   
)

◆ UrlIsA()

WINSHLWAPI BOOL WINAPI UrlIsA ( LPCSTR  ,
URLIS   
)

◆ UrlIsNoHistoryA()

WINSHLWAPI BOOL WINAPI UrlIsNoHistoryA ( LPCSTR  )

◆ UrlIsNoHistoryW()

WINSHLWAPI BOOL WINAPI UrlIsNoHistoryW ( LPCWSTR  )

◆ UrlIsOpaqueA()

WINSHLWAPI BOOL WINAPI UrlIsOpaqueA ( LPCSTR  )

◆ UrlIsOpaqueW()

WINSHLWAPI BOOL WINAPI UrlIsOpaqueW ( LPCWSTR  )

◆ UrlIsW()

WINSHLWAPI BOOL WINAPI UrlIsW ( LPCWSTR  ,
URLIS   
)

◆ UrlUnescapeA()

WINSHLWAPI HRESULT WINAPI UrlUnescapeA ( LPSTR  ,
LPSTR  ,
LPDWORD  ,
DWORD   
)

◆ UrlUnescapeW()

WINSHLWAPI HRESULT WINAPI UrlUnescapeW ( LPWSTR  ,
LPWSTR  ,
LPDWORD  ,
DWORD   
)

◆ WhichPlatform()

WINSHLWAPI UINT WINAPI WhichPlatform ( void  )

Definition at line 142 of file shlwapi_main.c.

143{
144 static const char szIntegratedBrowser[] = "IntegratedBrowser";
146 DWORD ret, data, size;
147 HMODULE hshell32;
148 HKEY hKey;
149
150 if (state)
151 return state;
152
153 /* If shell32 exports DllGetVersion(), the browser is integrated */
155 hshell32 = LoadLibraryA("shell32.dll");
156 if (hshell32)
157 {
158 FARPROC pDllGetVersion;
159 pDllGetVersion = GetProcAddress(hshell32, "DllGetVersion");
161 FreeLibrary(hshell32);
162 }
163
164 /* Set or delete the key accordingly */
165 ret = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Internet Explorer", 0, KEY_ALL_ACCESS, &hKey);
166 if (!ret)
167 {
168 size = sizeof(data);
169 ret = RegQueryValueExA(hKey, szIntegratedBrowser, 0, 0, (BYTE *)&data, &size);
170 if (!ret && state == PLATFORM_BROWSERONLY)
171 {
172 /* Value exists but browser is not integrated */
173 RegDeleteValueA(hKey, szIntegratedBrowser);
174 }
175 else if (ret && state == PLATFORM_INTEGRATED)
176 {
177 /* Browser is integrated but value does not exist */
178 data = TRUE;
179 RegSetValueExA(hKey, szIntegratedBrowser, 0, REG_DWORD, (BYTE *)&data, sizeof(data));
180 }
182 }
183
184 return state;
185}
static int state
Definition: maze.c:121
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
Definition: reg.c:4799
LONG WINAPI RegDeleteValueA(HKEY hKey, LPCSTR lpValueName)
Definition: reg.c:2287
int(* FARPROC)()
Definition: compat.h:36
#define GetProcAddress(x, y)
Definition: compat.h:753
#define FreeLibrary(x)
Definition: compat.h:748
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
Definition: loader.c:111
#define PLATFORM_INTEGRATED
Definition: shlwapi.h:1193
#define PLATFORM_BROWSERONLY
Definition: shlwapi.h:1192
#define PLATFORM_UNKNOWN
Definition: shlwapi.h:1190

◆ wnsprintfA()

WINSHLWAPI INT WINAPIV wnsprintfA ( LPSTR  ,
INT  ,
LPCSTR  ,
  ... 
)

◆ wnsprintfW()

WINSHLWAPI INT WINAPIV wnsprintfW ( LPWSTR  ,
INT  ,
LPCWSTR  ,
  ... 
)