{******************************************************************************} { } { Shell Light Weight API Interface Unit for Object Pascal } { } { Portions created by Microsoft are Copyright (C) 1995-2005 Microsoft } { Corporation. All Rights Reserved. } { } { The initial developer of the original translation is Rudy Velthuis } { } { Portions created by Rudy Velthuis are Copyright (C) 2005-2008 } { All Rights Reserved. } { } { Adapted for JEDI API Library by Christian Wimmer } { } { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } { The original code is: shlwapi.h, released 2005. } { } { You may retrieve the latest version of this file at the Project JEDI } { APILIB home page, located at http://jedi-apilib.sourceforge.net } { } { The contents of this file are used with permission, subject to the Mozilla } { Public License Version 1.1 (the "License"); you may not use this file except } { in compliance with the License. You may obtain a copy of the License at } { http://www.mozilla.org/MPL/MPL-1.1.html } { } { Software distributed under the License is distributed on an "AS IS" basis, } { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } { the specific language governing rights and limitations under the License. } { } { Alternatively, the contents of this file may be used under the terms of the } { GNU Lesser General Public License (the "LGPL License"), in which case the } { provisions of the LGPL License are applicable instead of those above. } { If you wish to allow use of your version of this file only under the terms } { of the LGPL License and not to allow others to use your version of this file } { under the MPL, indicate your decision by deleting the provisions above and } { replace them with the notice and other provisions required by the LGPL } { License. If you do not delete the provisions above, a recipient may use } { your version of this file under either the MPL or the LGPL License. } { } { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } { } { } {******************************************************************************} {$IFNDEF JWA_OMIT_SECTIONS} unit JwaShLWAPI; {$I ..\Includes\JediAPILib.inc} interface {$HPPEMIT '#include '} {$HPPEMIT ''} {$HPPEMIT 'interface DECLSPEC_UUID("C46CA590-3C3F-11D2-BEE6-0000F805CA57") IQueryAssociations;'} {$HPPEMIT 'typedef System::DelphiInterface _di_IQueryAssociations;'} {$IFDEF DELPHI6_UP} {$ALIGN 8} {$ELSE} {$A+} //Warning: Record alignment 4 {$ENDIF DELPHI6_UP} uses Windows, CommCtrl,ActiveX, {$IFDEF DELPHI6_UP}msxml,{$ENDIF DELPHI6_UP} JwaWinBase, JwaWinUser, JwaWinType, JwaShlObj, JwaActiveX, JwaWinReg; {$ENDIF JWA_OMIT_SECTIONS} {$IFNDEF JWA_IMPLEMENTATIONSECTION} {$EXTERNALSYM StrChrA} function StrChrA(lpStart: PAnsiChar; wMatch: Word): PAnsiChar; stdcall; {$EXTERNALSYM StrChrW} function StrChrW(lpStart: PWideChar; wMatch: WideChar): PWideChar; stdcall; {$EXTERNALSYM StrChr} function StrChr(lpStart: PTSTR; wMatch: Word): PTSTR; stdcall; {$EXTERNALSYM StrChrIA} function StrChrIA(lpStart: PAnsiChar; wMatch: Word): PAnsiChar; stdcall; {$EXTERNALSYM StrChrIW} function StrChrIW(lpStart: PWideChar; wMatch: WideChar): PWideChar; stdcall; {$EXTERNALSYM StrChrI} function StrChrI(lpStart: PTSTR; wMatch: Word): PTSTR; stdcall; {$EXTERNALSYM StrCmpNA} function StrCmpNA(lpStr1, lpStr2: PAnsiChar; nChar: Integer): Integer; stdcall; {$EXTERNALSYM StrCmpNW} function StrCmpNW(lpStr1, lpStr2: PWideChar; nChar: Integer): Integer; stdcall; {$EXTERNALSYM StrCmpN} function StrCmpN(lpStr1, lpStr2: PTSTR; nChar: Integer): Integer; stdcall; {$EXTERNALSYM StrCmpNIA} function StrCmpNIA(lpStr1, lpStr2: PAnsiChar; nChar: Integer): Integer; stdcall; {$EXTERNALSYM StrCmpNIW} function StrCmpNIW(lpStr1, lpStr2: PWideChar; nChar: Integer): Integer; stdcall; {$EXTERNALSYM StrCmpNI} function StrCmpNI(lpStr1, lpStr2: PTSTR; nChar: Integer): Integer; stdcall; {$EXTERNALSYM StrCSpnA} function StrCSpnA(lpStr, lpSet: PAnsiChar): Integer; stdcall; {$EXTERNALSYM StrCSpnW} function StrCSpnW(lpStr, lpSet: PWideChar): Integer; stdcall; {$EXTERNALSYM StrCSpn} function StrCSpn(lpStr, lpSet: PTSTR): Integer; stdcall; {$EXTERNALSYM StrCSpnIA} function StrCSpnIA(lpStr, lpSet: PAnsiChar): Integer; stdcall; {$EXTERNALSYM StrCSpnIW} function StrCSpnIW(lpStr, lpSet: PWideChar): Integer; stdcall; {$EXTERNALSYM StrCSpnI} function StrCSpnI(lpStr, lpSet: PTSTR): Integer; stdcall; {$EXTERNALSYM StrDupA} function StrDupA(lpSrch: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM StrDupW} function StrDupW(lpSrch: PWideChar): PWideChar; stdcall; {$EXTERNALSYM StrDup} function StrDup(lpSrch: PTSTR): PTSTR; stdcall; {$EXTERNALSYM StrFormatByteSizeA} function StrFormatByteSizeA(dw: DWORD; szBuf: PAnsiChar; uiBufSize: UINT): PAnsiChar; stdcall; {$EXTERNALSYM StrFormatByteSize64A} function StrFormatByteSize64A(qdw: LONGLONG; szBuf: PAnsiChar; uiBufSize: UINT): PAnsiChar; stdcall; {$EXTERNALSYM StrFormatByteSizeW} function StrFormatByteSizeW(qdw: LONGLONG; szBuf: PWideChar; uiBufSize: UINT): PWideChar; stdcall; {$EXTERNALSYM StrFormatByteSize} function StrFormatByteSize(dw: DWORD; szBuf: PTSTR; uiBufSize: UINT): PTSTR; stdcall; {$EXTERNALSYM StrFormatByteSize64} function StrFormatByteSize64(qdw: LONGLONG; szBuf: PTSTR; uiBufSize: UINT): PTSTR; stdcall; {$EXTERNALSYM StrFormatKBSizeW} function StrFormatKBSizeW(qdw: LONGLONG; szBuf: PWideChar; uiBufSize: UINT): PWideChar; stdcall; {$EXTERNALSYM StrFormatKBSizeA} function StrFormatKBSizeA(qdw: LONGLONG; szBuf: PAnsiChar; uiBufSize: UINT): PAnsiChar; stdcall; {$EXTERNALSYM StrFormatKBSize} function StrFormatKBSize(qdw: LONGLONG; szBuf: PTSTR; uiBufSize: UINT): PTSTR; stdcall; {$EXTERNALSYM StrFromTimeIntervalA} function StrFromTimeIntervalA(pszOut: PAnsiChar; cchMax: UINT; dwTimeMS: DWORD; digits: Integer): Integer; stdcall; {$EXTERNALSYM StrFromTimeIntervalW} function StrFromTimeIntervalW(pszOut: PWideChar; cchMax: UINT; dwTimeMS: DWORD; digits: Integer): Integer; stdcall; {$EXTERNALSYM StrFromTimeInterval} function StrFromTimeInterval(pszOut: PTSTR; cchMax: UINT; dwTimeMS: DWORD; digits: Integer): Integer; stdcall; {$EXTERNALSYM StrIsIntlEqualA} function StrIsIntlEqualA(fCaseSens: BOOL; lpString1, lpString2: PAnsiChar; nChar: Integer): BOOL; stdcall; {$EXTERNALSYM StrIsIntlEqualW} function StrIsIntlEqualW(fCaseSens: BOOL; lpString1, lpString2: PWideChar; nChar: Integer): BOOL; stdcall; {$EXTERNALSYM StrIsIntlEqual} function StrIsIntlEqual(fCaseSens: BOOL; lpString1, lpString2: PTSTR; nChar: Integer): BOOL; stdcall; {$EXTERNALSYM StrNCatA} function StrNCatA(psz1, psz2: PAnsiChar; cchMax: Integer): PAnsiChar; stdcall; {$EXTERNALSYM StrNCatW} function StrNCatW(psz1, psz2: PWideChar; cchMax: Integer): PWideChar; stdcall; {$EXTERNALSYM StrNCat} function StrNCat(psz1, psz2: PTSTR; cchMax: Integer): PTSTR; stdcall; {$EXTERNALSYM StrPBrkA} function StrPBrkA(psz, pszSet: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM StrPBrkW} function StrPBrkW(psz, pszSet: PWideChar): PWideChar; stdcall; {$EXTERNALSYM StrPBrk} function StrPBrk(psz, pszSet: PTSTR): PTSTR; stdcall; {$EXTERNALSYM StrRChrA} function StrRChrA(lpStart, lpEnd: PAnsiChar; wMatch: Word): PAnsiChar; stdcall; {$EXTERNALSYM StrRChrW} function StrRChrW(lpStart, lpEnd: PWideChar; wMatch: WideChar): PWideChar; stdcall; {$EXTERNALSYM StrRChr} function StrRChr(lpStart, lpEnd: PTSTR; wMatch: Word): PTSTR; stdcall; {$EXTERNALSYM StrRChrIA} function StrRChrIA(lpStart, lpEnd: PAnsiChar; wMatch: Word): PAnsiChar; stdcall; {$EXTERNALSYM StrRChrIW} function StrRChrIW(lpStart, lpEnd: PWideChar; wMatch: WideChar): PWideChar; stdcall; {$EXTERNALSYM StrRChrI} function StrRChrI(lpStart, lpEnd: PTSTR; wMatch: Word): PTSTR; stdcall; {$EXTERNALSYM StrRStrIA} function StrRStrIA(lpSource, lpLast, lpSrch: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM StrRStrIW} function StrRStrIW(lpSource, lpLast, lpSrch: PWideChar): PWideChar; stdcall; {$EXTERNALSYM StrRStrI} function StrRStrI(lpSource, lpLast, lpSrch: PTSTR): PTSTR; stdcall; {$EXTERNALSYM StrSpnA} function StrSpnA(psz, pszSet: PAnsiChar): Integer; stdcall; {$EXTERNALSYM StrSpnW} function StrSpnW(psz, pszSet: PWideChar): Integer; stdcall; {$EXTERNALSYM StrSpn} function StrSpn(psz, pszSet: PTSTR): Integer; stdcall; {$EXTERNALSYM StrStrA} function StrStrA(lpFirst, lpSrch: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM StrStrW} function StrStrW(lpFirst, lpSrch: PWideChar): PWideChar; stdcall; {$EXTERNALSYM StrStr} function StrStr(lpFirst, lpSrch: PTSTR): PTSTR; stdcall; {$EXTERNALSYM StrStrIA} function StrStrIA(lpFirst, lpSrch: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM StrStrIW} function StrStrIW(lpFirst, lpSrch: PWideChar): PWideChar; stdcall; {$EXTERNALSYM StrStrI} function StrStrI(lpFirst, lpSrch: PTSTR): PTSTR; stdcall; {$EXTERNALSYM StrToIntA} function StrToIntA(lpSrc: PAnsiChar): Integer; stdcall; {$EXTERNALSYM StrToIntW} function StrToIntW(lpSrc: PWideChar): Integer; stdcall; {$EXTERNALSYM StrToInt} function StrToInt(lpSrc: PTSTR): Integer; stdcall; {$EXTERNALSYM StrToIntExA} function StrToIntExA(pszString: PAnsiChar; dwFlags: DWORD; var piRet: Integer): BOOL; stdcall; {$EXTERNALSYM StrToIntExW} function StrToIntExW(pszString: PWideChar; dwFlags: DWORD; var piRet: Integer): BOOL; stdcall; {$EXTERNALSYM StrToIntEx} function StrToIntEx(pszString: PTSTR; dwFlags: DWORD; var piRet: Integer): BOOL; stdcall; {$EXTERNALSYM StrToInt64ExA} function StrToInt64ExA(pszString: PAnsiChar; dwFlags: DWORD; var pllRet: LONGLONG): BOOL stdcall; {$EXTERNALSYM StrToInt64ExW} function StrToInt64ExW(pszString: PWideChar; dwFlags: DWORD; var pllRet: LONGLONG): BOOL stdcall; {$EXTERNALSYM StrToInt64Ex} function StrToInt64Ex(pszString: PTSTR; dwFlags: DWORD; var pllRet: LONGLONG): BOOL stdcall; {$EXTERNALSYM StrTrimA} function StrTrimA(psz, pszTrimChars: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM StrTrimW} function StrTrimW(psz, pszTrimChars: PWideChar): BOOL; stdcall; {$EXTERNALSYM StrTrim} function StrTrim(psz, pszTrimChars: PTSTR): BOOL; stdcall; {$EXTERNALSYM StrCatW} function StrCatW(psz1, psz2: PWideChar): PWideChar; stdcall; {$EXTERNALSYM StrCmpW} function StrCmpW(psz1, psz2: PWideChar): Integer; stdcall; {$EXTERNALSYM StrCmpIW} function StrCmpIW(psz1, psz2: PWideChar): Integer; stdcall; {$EXTERNALSYM StrCpyW} function StrCpyW(psz1, psz2: PWideChar): PWideChar; stdcall; {$EXTERNALSYM StrCpyNW} function StrCpyNW(psz1, psz2: PWideChar; cchMax: Integer): PWideChar; stdcall; {$EXTERNALSYM StrCatBuffW} function StrCatBuffW(pszDest, pszSrc: PWideChar; cchDestBuffSize: Integer): PWideChar; stdcall; {$EXTERNALSYM StrCatBuffA} function StrCatBuffA(pszDest, pszSrc: PAnsiChar; cchDestBuffSize: Integer): PAnsiChar; stdcall; {$EXTERNALSYM StrCatBuff} function StrCatBuff(pszDest, pszSrc: PTSTR; cchDestBuffSize: Integer): PTSTR; stdcall; {$EXTERNALSYM ChrCmpIA} function ChrCmpIA(w1, w2: Word): BOOL; stdcall; {$EXTERNALSYM ChrCmpIW} function ChrCmpIW(w1, w2: WideChar): BOOL; stdcall; {$EXTERNALSYM ChrCmpI} function ChrCmpI(w1, w2: Word): BOOL; stdcall; {$EXTERNALSYM wvnsprintfA} function wvnsprintfA(lpOut: PAnsiChar; cchLimitIn: Integer; lpFmt: PAnsiChar; arglist: Pointer): Integer; stdcall; {$EXTERNALSYM wvnsprintfW} function wvnsprintfW(lpOut: PWideChar; cchLimitIn: Integer; lpFmt: PWideChar; arglist: Pointer): Integer; stdcall; {$EXTERNALSYM wvnsprintf} function wvnsprintf(lpOut: PTSTR; cchLimitIn: Integer; lpFmt: PTSTR; arglist: Pointer): Integer; stdcall; {$IFDEF DELPHI6_UP} {$EXTERNALSYM wnsprintfA} function wnsprintfA(lpOut: PAnsiChar; cchLimitIn: Integer; lpFmt: PAnsiChar): Integer; cdecl; varargs; {$EXTERNALSYM wnsprintfW} function wnsprintfW(lpOut: PWideChar; cchLimitIn: Integer; lpFmt: PWideChar): Integer; cdecl; varargs; {$EXTERNALSYM wnsprintf} function wnsprintf(lpOut: PTSTR; cchLimitIn: Integer; lpFmt: PTSTR): Integer; cdecl; varargs; {$ENDIF DELPHI6_UP} {$EXTERNALSYM StrIntlEqNA} function StrIntlEqNA(s1, s2: PAnsiChar; nChar: Integer): BOOL; {$EXTERNALSYM StrIntlEqNW} function StrIntlEqNW(s1, s2: PWideChar; nChar: Integer): BOOL; {$EXTERNALSYM StrIntlEqN} function StrIntlEqN(s1, s2: PTSTR; nChar: Integer): BOOL; {$EXTERNALSYM StrIntlEqNIA} function StrIntlEqNIA(s1, s2: PAnsiChar; nChar: Integer): BOOL; {$EXTERNALSYM StrIntlEqNIW} function StrIntlEqNIW(s1, s2: PWideChar; nChar: Integer): BOOL; {$EXTERNALSYM StrIntlEqNI} function StrIntlEqNI(s1, s2: PTSTR; nChar: Integer): BOOL; {$EXTERNALSYM StrRetToStrA} function StrRetToStrA(var pstr: TStrRet; pidl: PItemIDList; var ppsz: PAnsiChar): HResult; stdcall; {$EXTERNALSYM StrRetToStrW} function StrRetToStrW(var pstr: TStrRet; pidl: PItemIDList; var ppsz: PWideChar): HResult; stdcall; {$EXTERNALSYM StrRetToStr} function StrRetToStr(var pstr: TStrRet; pidl: PItemIDList; var ppsz: PTSTR): HResult; stdcall; {$EXTERNALSYM StrRetToBufA} function StrRetToBufA(var pstr: TStrRet; pidl: PItemIDList; pszBuf: PAnsiChar; cchBuf: UINT): HResult; stdcall; {$EXTERNALSYM StrRetToBufW} function StrRetToBufW(var pstr: TStrRet; pidl: PItemIDList; pszBuf: PWideChar; cchBuf: UINT): HResult; stdcall; {$EXTERNALSYM StrRetToBuf} function StrRetToBuf(var pstr: TStrRet; pidl: PItemIDList; pszBuf: PTSTR; cchBuf: UINT): HResult; stdcall; {$EXTERNALSYM StrRetToBSTR} function StrRetToBSTR(var pstr: TStrRet; pidl: PItemIDList; var pbstr: TBStr): HResult; stdcall; // helper to duplicate a string using the task allocator {$EXTERNALSYM SHStrDupA} function SHStrDupA(psz: PAnsiChar; var pwsz: PWideChar): HResult; stdcall; {$EXTERNALSYM SHStrDupW} function SHStrDupW(psz: PWideChar; var pwsz: PWideChar): HResult; stdcall; {$EXTERNALSYM SHStrDup} function SHStrDup(psz: PTSTR; var pwsz: PTSTR): HResult; stdcall; {$EXTERNALSYM StrCmpLogicalW} function StrCmpLogicalW(psz1, psz2: PWideChar): Integer; stdcall; {$EXTERNALSYM StrCatChainW} function StrCatChainW(pszDst: PWideChar; cchDst, ichAt: DWORD; pszSrc: PWideChar): DWORD; stdcall; {$EXTERNALSYM SHLoadIndirectString} function SHLoadIndirectString(pszSource, pszOutBuf: PWideChar; cchOutBuf: UINT; var ppvReserved: Pointer): HResult; stdcall; {$EXTERNALSYM IsCharSpaceA} function IsCharSpaceA(wch: AnsiChar): BOOL stdcall; {$EXTERNALSYM IsCharSpaceW} function IsCharSpaceW(wch: WideChar): BOOL stdcall; {$EXTERNALSYM IsCharSpace} function IsCharSpace(wch: AnsiChar): BOOL; stdcall; {$EXTERNALSYM StrCmpCA} function StrCmpCA(pszStr1, pszStr2: PAnsiChar): Integer stdcall; {$EXTERNALSYM StrCmpCW} function StrCmpCW(pszStr1, pszStr2: PWideChar): Integer stdcall; {$EXTERNALSYM StrCmpC} function StrCmpC(pszStr1, pszStr2: PTSTR): Integer; stdcall; {$EXTERNALSYM StrCmpICA} function StrCmpICA(pszStr1, pszStr2: PAnsiChar): Integer stdcall; {$EXTERNALSYM StrCmpICW} function StrCmpICW(pszStr1, pszStr2: PWideChar): Integer stdcall; {$EXTERNALSYM StrCmpIC} function StrCmpIC(pszStr1, pszStr2: PTSTR): Integer; stdcall; // Backward compatible to NT's non-standard naming (strictly // for comctl32) // {$EXTERNALSYM IntlStrEqWorkerA} function IntlStrEqWorkerA(fCaseSens: BOOL; lpString1, lpString2: PAnsiChar; nChar: Integer): BOOL; stdcall; {$EXTERNALSYM IntlStrEqWorkerW} function IntlStrEqWorkerW(fCaseSens: BOOL; lpString1, lpString2: PWideChar; nChar: Integer): BOOL; stdcall; {$EXTERNALSYM IntlStrEqNA} function IntlStrEqNA(s1, s2: PAnsiChar; nChar: Integer): BOOL; {$EXTERNALSYM IntlStrEqNW} function IntlStrEqNW(s1, s2: PWideChar; nChar: Integer): BOOL; {$EXTERNALSYM IntlStrEqN} function IntlStrEqN(s1, s2: PTSTR; nChar: Integer): BOOL; {$EXTERNALSYM IntlStrEqNIA} function IntlStrEqNIA(s1, s2: PAnsiChar; nChar: Integer): BOOL; {$EXTERNALSYM IntlStrEqNIW} function IntlStrEqNIW(s1, s2: PWideChar; nChar: Integer): BOOL; {$EXTERNALSYM IntlStrEqNI} function IntlStrEqNI(s1, s2: PTSTR; nChar: Integer): BOOL; const {$EXTERNALSYM SZ_CONTENTTYPE_HTMLA} SZ_CONTENTTYPE_HTMLA = 'text/html'; {$EXTERNALSYM SZ_CONTENTTYPE_HTMLW} SZ_CONTENTTYPE_HTMLW = 'text/html'; {$EXTERNALSYM SZ_CONTENTTYPE_HTML} SZ_CONTENTTYPE_HTML = 'text/html'; {$EXTERNALSYM SZ_CONTENTTYPE_CDFA} SZ_CONTENTTYPE_CDFA = 'application/x-cdf'; {$EXTERNALSYM SZ_CONTENTTYPE_CDFW} SZ_CONTENTTYPE_CDFW = 'application/x-cdf'; {$EXTERNALSYM SZ_CONTENTTYPE_CDFA} SZ_CONTENTTYPE_CDF = 'application/x-cdf'; {$EXTERNALSYM PathIsHTMLFileA} function PathIsHTMLFileA(pszPath: PAnsiChar): BOOL; {$EXTERNALSYM PathIsHTMLFileW} function PathIsHTMLFileW(pszPath: PWideChar): BOOL; {$EXTERNALSYM PathIsHTMLFile} function PathIsHTMLFile(pszPath: PTSTR): BOOL; // Flags for StrToIntEx const {$EXTERNALSYM STIF_DEFAULT} STIF_DEFAULT = $00000000; {$EXTERNALSYM STIF_SUPPORT_HEX} STIF_SUPPORT_HEX = $00000001; {$EXTERNALSYM StrCatA} function StrCatA(lpString1, lpString2: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM StrCmpA} function StrCmpA(lpString1, lpString2: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM StrCmpIA} function StrCmpIA(lpString1, lpString2: PAnsiChar): Integer; stdcall; {$EXTERNALSYM StrCpyA} function StrCpyA(lpString1, lpString2: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM StrCpyNA} function StrCpyNA(lpString1, lpString2: PAnsiChar; iMaxLength: Integer): PAnsiChar; stdcall; {$EXTERNALSYM StrToLong} function StrToLong(lpSrc: PTSTR): Integer; stdcall; {.$EXTERNALSYM StrNCmp} //function StrNCmp(lpStr1, lpStr2: PTSTR; nChar: Integer): Integer; stdcall; {.$EXTERNALSYM StrNCmpI} //function StrNCmpI(lpStr1, lpStr2: PTSTR; nChar: Integer): Integer; stdcall; {$EXTERNALSYM StrNCpy} function StrNCpy(lpString1, lpString2: PTSTR; iMaxLength: Integer): PTSTR; stdcall; {.$EXTERNALSYM StrCatN} //function StrCatN(psz1, psz2: PTSTR; cchMax: Integer): PTSTR; stdcall; {$EXTERNALSYM StrCat} function StrCat(lpString1, lpString2: PTSTR): PTSTR; stdcall; {$EXTERNALSYM StrCmp} function StrCmp(lpString1, lpString2: PTSTR): PTSTR; stdcall; {$EXTERNALSYM StrCmpI} function StrCmpI(lpString1, lpString2: PTSTR): Integer; stdcall; {$EXTERNALSYM StrCpy} function StrCpy(lpString1, lpString2: PTSTR): PTSTR; stdcall; {$EXTERNALSYM StrCpyN} function StrCpyN(lpString1, lpString2: PTSTR; iMaxLength: Integer): PTSTR; stdcall; // //=============== Path Routines =================================== // {$EXTERNALSYM PathAddBackslashA} function PathAddBackslashA(pszPath: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM PathAddBackslashW} function PathAddBackslashW(pszPath: PWideChar): PWideChar; stdcall; {$EXTERNALSYM PathAddBackslash} function PathAddBackslash(pszPath: PTSTR): PTSTR; stdcall; {$EXTERNALSYM PathAddExtensionA} function PathAddExtensionA(pszPath, pszExt: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathAddExtensionW} function PathAddExtensionW(pszPath, pszExt: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathAddExtension} function PathAddExtension(pszPath, pszExt: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathAppendA} function PathAppendA(pszPath, pMore: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathAppendW} function PathAppendW(pszPath, pMore: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathAppend} function PathAppend(pszPath, pMore: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathBuildRootA} function PathBuildRootA(pszRoot: PAnsiChar; iDrive: Integer): PAnsiChar; stdcall; {$EXTERNALSYM PathBuildRootW} function PathBuildRootW(pszRoot: PWideChar; iDrive: Integer): PWideChar; stdcall; {$EXTERNALSYM PathBuildRoot} function PathBuildRoot(pszRoot: PTSTR; iDrive: Integer): PTSTR; stdcall; {$EXTERNALSYM PathCanonicalizeA} function PathCanonicalizeA(pszBuf, pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathCanonicalizeW} function PathCanonicalizeW(pszBuf, pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathCanonicalize} function PathCanonicalize(pszBuf, pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathCombineA} function PathCombineA(pszDest, pszDir, pszFile: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM PathCombineW} function PathCombineW(pszDest, pszDir, pszFile: PWideChar): PWideChar; stdcall; {$EXTERNALSYM PathCombine} function PathCombine(pszDest, pszDir, pszFile: PTSTR): PTSTR; stdcall; {$EXTERNALSYM PathCompactPathA} function PathCompactPathA(hDC: HDC; pszPath: PAnsiChar; dx: UINT): BOOL; stdcall; {$EXTERNALSYM PathCompactPathW} function PathCompactPathW(hDC: HDC; pszPath: PWideChar; dx: UINT): BOOL; stdcall; {$EXTERNALSYM PathCompactPath} function PathCompactPath(hDC: HDC; pszPath: PTSTR; dx: UINT): BOOL; stdcall; {$EXTERNALSYM PathCompactPathExA} function PathCompactPathExA(pszOut, pszSrc: PAnsiChar; cchMax: UINT; dwFlags: DWORD): BOOL; stdcall; {$EXTERNALSYM PathCompactPathExW} function PathCompactPathExW(pszOut, pszSrc: PWideChar; cchMax: UINT; dwFlags: DWORD): BOOL; stdcall; {$EXTERNALSYM PathCompactPathEx} function PathCompactPathEx(pszOut, pszSrc: PTSTR; cchMax: UINT; dwFlags: DWORD): BOOL; stdcall; {$EXTERNALSYM PathCommonPrefixA} function PathCommonPrefixA(pszFile1, pszFile2, achPath: PAnsiChar): Integer; stdcall; {$EXTERNALSYM PathCommonPrefixW} function PathCommonPrefixW(pszFile1, pszFile2, achPath: PWideChar): Integer; stdcall; {$EXTERNALSYM PathCommonPrefix} function PathCommonPrefix(pszFile1, pszFile2, achPath: PTSTR): Integer; stdcall; {$EXTERNALSYM PathFileExistsA} function PathFileExistsA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathFileExistsW} function PathFileExistsW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathFileExists} function PathFileExists(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathFindExtensionA} function PathFindExtensionA(pszPath: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM PathFindExtensionW} function PathFindExtensionW(pszPath: PWideChar): PWideChar; stdcall; {$EXTERNALSYM PathFindExtension} function PathFindExtension(pszPath: PTSTR): PTSTR; stdcall; {$EXTERNALSYM PathFindFileNameA} function PathFindFileNameA(pszPath: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM PathFindFileNameW} function PathFindFileNameW(pszPath: PWideChar): PWideChar; stdcall; {$EXTERNALSYM PathFindFileName} function PathFindFileName(pszPath: PTSTR): PTSTR; stdcall; {$EXTERNALSYM PathFindNextComponentA} function PathFindNextComponentA(pszPath: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM PathFindNextComponentW} function PathFindNextComponentW(pszPath: PWideChar): PWideChar; stdcall; {$EXTERNALSYM PathFindNextComponent} function PathFindNextComponent(pszPath: PTSTR): PTSTR; stdcall; {$EXTERNALSYM PathFindOnPathA} function PathFindOnPathA(pszPath: PAnsiChar; ppszOtherDirs: PPAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathFindOnPathW} function PathFindOnPathW(pszPath: PWideChar; ppszOtherDirs: PPWideChar): BOOL; stdcall; {$EXTERNALSYM PathFindOnPath} function PathFindOnPath(pszPath: PTSTR; ppszOtherDirs: PPTSTR): BOOL; stdcall; {$EXTERNALSYM PathGetArgsA} function PathGetArgsA(pszPath: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM PathGetArgsW} function PathGetArgsW(pszPath: PWideChar): PWideChar; stdcall; {$EXTERNALSYM PathGetArgs} function PathGetArgs(pszPath: PTSTR): PTSTR; stdcall; {$EXTERNALSYM PathFindSuffixArrayA} function PathFindSuffixArrayA(pszPath: PAnsiChar; apszSuffix: PPAnsiChar; iArraySize: Integer): PAnsiChar; stdcall; {$EXTERNALSYM PathFindSuffixArrayW} function PathFindSuffixArrayW(pszPath: PWideChar; apszSuffix: PPWideChar; iArraySize: Integer): PWideChar; stdcall; {$EXTERNALSYM PathFindSuffixArray} function PathFindSuffixArray(pszPath: PTSTR; apszSuffix: PPTSTR; iArraySize: Integer): PTSTR; stdcall; {$EXTERNALSYM PathIsLFNFileSpecA} function PathIsLFNFileSpecA(lpName: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathIsLFNFileSpecW} function PathIsLFNFileSpecW(lpName: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathIsLFNFileSpec} function PathIsLFNFileSpec(lpName: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathGetCharTypeA} function PathGetCharTypeA(ch: Byte): UINT; stdcall; {$EXTERNALSYM PathGetCharTypeW} function PathGetCharTypeW(ch: WideChar): UINT; stdcall; {$EXTERNALSYM PathGetCharType} function PathGetCharType(ch: Byte): UINT; stdcall; // Return flags for PathGetCharType const {$EXTERNALSYM GCT_INVALID} GCT_INVALID = $0000; {$EXTERNALSYM GCT_LFNCHAR} GCT_LFNCHAR = $0001; {$EXTERNALSYM GCT_SHORTCHAR} GCT_SHORTCHAR = $0002; {$EXTERNALSYM GCT_WILD} GCT_WILD = $0004; {$EXTERNALSYM GCT_SEPARATOR} GCT_SEPARATOR = $0008; {$EXTERNALSYM PathGetDriveNumberA} function PathGetDriveNumberA(pszPath: PAnsiChar): Integer; stdcall; {$EXTERNALSYM PathGetDriveNumberW} function PathGetDriveNumberW(pszPath: PWideChar): Integer; stdcall; {$EXTERNALSYM PathGetDriveNumber} function PathGetDriveNumber(pszPath: PTSTR): Integer; stdcall; {$EXTERNALSYM PathIsDirectoryA} function PathIsDirectoryA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathIsDirectoryW} function PathIsDirectoryW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathIsDirectory} function PathIsDirectory(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathIsDirectoryEmptyA} function PathIsDirectoryEmptyA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathIsDirectoryEmptyW} function PathIsDirectoryEmptyW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathIsDirectoryEmpty} function PathIsDirectoryEmpty(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathIsFileSpecA} function PathIsFileSpecA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathIsFileSpecW} function PathIsFileSpecW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathIsFileSpec} function PathIsFileSpec(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathIsPrefixA} function PathIsPrefixA(pszPrefix, pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathIsPrefixW} function PathIsPrefixW(pszPrefix, pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathIsPrefix} function PathIsPrefix(pszPrefix, pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathIsRelativeA} function PathIsRelativeA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathIsRelativeW} function PathIsRelativeW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathIsRelative} function PathIsRelative(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathIsRootA} function PathIsRootA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathIsRootW} function PathIsRootW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathIsRoot} function PathIsRoot(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathIsSameRootA} function PathIsSameRootA(pszPath1, pszPath2: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathIsSameRootW} function PathIsSameRootW(pszPath1, pszPath2: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathIsSameRoot} function PathIsSameRoot(pszPath1, pszPath2: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathIsUNCA} function PathIsUNCA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathIsUNCW} function PathIsUNCW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathIsUNC} function PathIsUNC(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathIsNetworkPathA} function PathIsNetworkPathA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathIsNetworkPathW} function PathIsNetworkPathW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathIsNetworkPath} function PathIsNetworkPath(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathIsUNCServerA} function PathIsUNCServerA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathIsUNCServerW} function PathIsUNCServerW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathIsUNCServer} function PathIsUNCServer(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathIsUNCServerShareA} function PathIsUNCServerShareA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathIsUNCServerShareW} function PathIsUNCServerShareW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathIsUNCServerShare} function PathIsUNCServerShare(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathIsContentTypeA} function PathIsContentTypeA(pszPath, pszContentType: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathIsContentTypeW} function PathIsContentTypeW(pszPath, pszContentType: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathIsContentType} function PathIsContentType(pszPath, pszContentType: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathIsURLA} function PathIsURLA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathIsURLW} function PathIsURLW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathIsURL} function PathIsURL(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathMakePrettyA} function PathMakePrettyA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathMakePrettyW} function PathMakePrettyW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathMakePretty} function PathMakePretty(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathMatchSpecA} function PathMatchSpecA(pszFile, pszSpec: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathMatchSpecW} function PathMatchSpecW(pszFile, pszSpec: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathMatchSpec} function PathMatchSpec(pszFile, pszSpec: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathParseIconLocationA} function PathParseIconLocationA(pszIconFile: PAnsiChar): Integer; stdcall; {$EXTERNALSYM PathParseIconLocationW} function PathParseIconLocationW(pszIconFile: PWideChar): Integer; stdcall; {$EXTERNALSYM PathParseIconLocation} function PathParseIconLocation(pszIconFile: PTSTR): Integer; stdcall; {$EXTERNALSYM PathQuoteSpacesA} procedure PathQuoteSpacesA(lpsz: PAnsiChar); stdcall; {$EXTERNALSYM PathQuoteSpacesW} procedure PathQuoteSpacesW(lpsz: PWideChar); stdcall; {$EXTERNALSYM PathQuoteSpaces} procedure PathQuoteSpaces(lpsz: PTSTR); stdcall; {$EXTERNALSYM PathRelativePathToA} function PathRelativePathToA(pszPath, pszFrom: PAnsiChar; dwAttrFrom: DWORD; pszTo: PAnsiChar; dwAttrTo: DWORD): BOOL; stdcall; {$EXTERNALSYM PathRelativePathToW} function PathRelativePathToW(pszPath, pszFrom: PWideChar; dwAttrFrom: DWORD; pszTo: PWideChar; dwAttrTo: DWORD): BOOL; stdcall; {$EXTERNALSYM PathRelativePathTo} function PathRelativePathTo(pszPath, pszFrom: PTSTR; dwAttrFrom: DWORD; pszTo: PTSTR; dwAttrTo: DWORD): BOOL; stdcall; {$EXTERNALSYM PathRemoveArgsA} procedure PathRemoveArgsA(pszPath: PAnsiChar); stdcall; {$EXTERNALSYM PathRemoveArgsW} procedure PathRemoveArgsW(pszPath: PWideChar); stdcall; {$EXTERNALSYM PathRemoveArgs} procedure PathRemoveArgs(pszPath: PTSTR); stdcall; {$EXTERNALSYM PathRemoveBackslashA} function PathRemoveBackslashA(pszPath: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM PathRemoveBackslashW} function PathRemoveBackslashW(pszPath: PWideChar): PWideChar; stdcall; {$EXTERNALSYM PathRemoveBackslash} function PathRemoveBackslash(pszPath: PTSTR): PTSTR; stdcall; {$EXTERNALSYM PathRemoveBlanksA} procedure PathRemoveBlanksA(pszPath: PAnsiChar); stdcall; {$EXTERNALSYM PathRemoveBlanksW} procedure PathRemoveBlanksW(pszPath: PWideChar); stdcall; {$EXTERNALSYM PathRemoveBlanks} procedure PathRemoveBlanks(pszPath: PTSTR); stdcall; {$EXTERNALSYM PathRemoveExtensionA} procedure PathRemoveExtensionA(pszPath: PAnsiChar); stdcall; {$EXTERNALSYM PathRemoveExtensionW} procedure PathRemoveExtensionW(pszPath: PWideChar); stdcall; {$EXTERNALSYM PathRemoveExtension} procedure PathRemoveExtension(pszPath: PTSTR); stdcall; {$EXTERNALSYM PathRemoveFileSpecA} function PathRemoveFileSpecA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathRemoveFileSpecW} function PathRemoveFileSpecW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathRemoveFileSpec} function PathRemoveFileSpec(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathRenameExtensionA} function PathRenameExtensionA(pszPath, pszExt: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathRenameExtensionW} function PathRenameExtensionW(pszPath, pszExt: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathRenameExtension} function PathRenameExtension(pszPath, pszExt: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathSearchAndQualifyA} function PathSearchAndQualifyA(pszPath, pszBuf: PAnsiChar; cchBuf: UINT): BOOL; stdcall; {$EXTERNALSYM PathSearchAndQualifyW} function PathSearchAndQualifyW(pszPath, pszBuf: PWideChar; cchBuf: UINT): BOOL; stdcall; {$EXTERNALSYM PathSearchAndQualify} function PathSearchAndQualify(pszPath, pszBuf: PTSTR; cchBuf: UINT): BOOL; stdcall; {$EXTERNALSYM PathSetDlgItemPathA} procedure PathSetDlgItemPathA(hDlg: HWND; id: Integer; pszPath: PAnsiChar); stdcall; {$EXTERNALSYM PathSetDlgItemPathW} procedure PathSetDlgItemPathW(hDlg: HWND; id: Integer; pszPath: PWideChar); stdcall; {$EXTERNALSYM PathSetDlgItemPath} procedure PathSetDlgItemPath(hDlg: HWND; id: Integer; pszPath: PTSTR); stdcall; {$EXTERNALSYM PathSkipRootA} function PathSkipRootA(pszPath: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM PathSkipRootW} function PathSkipRootW(pszPath: PWideChar): PWideChar; stdcall; {$EXTERNALSYM PathSkipRoot} function PathSkipRoot(pszPath: PTSTR): PTSTR; stdcall; {$EXTERNALSYM PathStripPathA} procedure PathStripPathA(pszPath: PAnsiChar); stdcall; {$EXTERNALSYM PathStripPathW} procedure PathStripPathW(pszPath: PWideChar); stdcall; {$EXTERNALSYM PathStripPath} procedure PathStripPath(pszPath: PTSTR); stdcall; {$EXTERNALSYM PathStripToRootA} function PathStripToRootA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathStripToRootW} function PathStripToRootW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathStripToRoot} function PathStripToRoot(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathUnquoteSpacesA} procedure PathUnquoteSpacesA(lpsz: PAnsiChar); stdcall; {$EXTERNALSYM PathUnquoteSpacesW} procedure PathUnquoteSpacesW(lpsz: PWideChar); stdcall; {$EXTERNALSYM PathUnquoteSpaces} procedure PathUnquoteSpaces(lpsz: PTSTR); stdcall; {$EXTERNALSYM PathMakeSystemFolderA} function PathMakeSystemFolderA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathMakeSystemFolderW} function PathMakeSystemFolderW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathMakeSystemFolder} function PathMakeSystemFolder(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathUnmakeSystemFolderA} function PathUnmakeSystemFolderA(pszPath: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM PathUnmakeSystemFolderW} function PathUnmakeSystemFolderW(pszPath: PWideChar): BOOL; stdcall; {$EXTERNALSYM PathUnmakeSystemFolder} function PathUnmakeSystemFolder(pszPath: PTSTR): BOOL; stdcall; {$EXTERNALSYM PathIsSystemFolderA} function PathIsSystemFolderA(pszPath: PAnsiChar; dwAttrb: DWORD): BOOL; stdcall; {$EXTERNALSYM PathIsSystemFolderW} function PathIsSystemFolderW(pszPath: PWideChar; dwAttrb: DWORD): BOOL; stdcall; {$EXTERNALSYM PathIsSystemFolder} function PathIsSystemFolder(pszPath: PTSTR; dwAttrb: DWORD): BOOL; stdcall; {$EXTERNALSYM PathUndecorateA} procedure PathUndecorateA(pszPath: PAnsiChar); stdcall; {$EXTERNALSYM PathUndecorateW} procedure PathUndecorateW(pszPath: PWideChar); stdcall; {$EXTERNALSYM PathUndecorate} procedure PathUndecorate(pszPath: PTSTR); stdcall; {$EXTERNALSYM PathUnExpandEnvStringsA} function PathUnExpandEnvStringsA(pszPath, pszBuf: PAnsiChar; cchBuf: UINT): BOOL; stdcall; {$EXTERNALSYM PathUnExpandEnvStringsW} function PathUnExpandEnvStringsW(pszPath, pszBuf: PWideChar; cchBuf: UINT): BOOL; stdcall; {$EXTERNALSYM PathUnExpandEnvStrings} function PathUnExpandEnvStrings(pszPath, pszBuf: PTSTR; cchBuf: UINT): BOOL; stdcall; type {$EXTERNALSYM URL_SCHEME} URL_SCHEME = DWORD; TUrlScheme = DWORD; const {$EXTERNALSYM URL_SCHEME_INVALID} URL_SCHEME_INVALID = -1; {$EXTERNALSYM URL_SCHEME_UNKNOWN} URL_SCHEME_UNKNOWN = 0; {$EXTERNALSYM URL_SCHEME_FTP} URL_SCHEME_FTP = 1; {$EXTERNALSYM URL_SCHEME_HTTP} URL_SCHEME_HTTP = 2; {$EXTERNALSYM URL_SCHEME_GOPHER} URL_SCHEME_GOPHER = 3; {$EXTERNALSYM URL_SCHEME_MAILTO} URL_SCHEME_MAILTO = 4; {$EXTERNALSYM URL_SCHEME_NEWS} URL_SCHEME_NEWS = 5; {$EXTERNALSYM URL_SCHEME_NNTP} URL_SCHEME_NNTP = 6; {$EXTERNALSYM URL_SCHEME_TELNET} URL_SCHEME_TELNET = 7; {$EXTERNALSYM URL_SCHEME_WAIS} URL_SCHEME_WAIS = 8; {$EXTERNALSYM URL_SCHEME_FILE} URL_SCHEME_FILE = 9; {$EXTERNALSYM URL_SCHEME_MK} URL_SCHEME_MK = 10; {$EXTERNALSYM URL_SCHEME_HTTPS} URL_SCHEME_HTTPS = 11; {$EXTERNALSYM URL_SCHEME_SHELL} URL_SCHEME_SHELL = 12; {$EXTERNALSYM URL_SCHEME_SNEWS} URL_SCHEME_SNEWS = 13; {$EXTERNALSYM URL_SCHEME_LOCAL} URL_SCHEME_LOCAL = 14; {$EXTERNALSYM URL_SCHEME_JAVASCRIPT} URL_SCHEME_JAVASCRIPT = 15; {$EXTERNALSYM URL_SCHEME_VBSCRIPT} URL_SCHEME_VBSCRIPT = 16; {$EXTERNALSYM URL_SCHEME_ABOUT} URL_SCHEME_ABOUT = 17; {$EXTERNALSYM URL_SCHEME_RES} URL_SCHEME_RES = 18; {$EXTERNALSYM URL_SCHEME_MSSHELLROOTED} URL_SCHEME_MSSHELLROOTED = 19; {$EXTERNALSYM URL_SCHEME_MSSHELLIDLIST} URL_SCHEME_MSSHELLIDLIST = 20; {$EXTERNALSYM URL_SCHEME_MSHELP} URL_SCHEME_MSHELP = 21; {$EXTERNALSYM URL_SCHEME_MAXVALUE} URL_SCHEME_MAXVALUE = 22; type {$EXTERNALSYM URL_PART} URL_PART = DWORD; TUrlPart = DWORD; const {$EXTERNALSYM URL_PART_NONE} URL_PART_NONE = 0; {$EXTERNALSYM URL_PART_SCHEME} URL_PART_SCHEME = 1; {$EXTERNALSYM URL_PART_HOSTNAME} URL_PART_HOSTNAME = 2; {$EXTERNALSYM URL_PART_USERNAME} URL_PART_USERNAME = 3; {$EXTERNALSYM URL_PART_PASSWORD} URL_PART_PASSWORD = 4; {$EXTERNALSYM URL_PART_PORT} URL_PART_PORT = 5; {$EXTERNALSYM URL_PART_QUERY} URL_PART_QUERY = 6; // Cannot declare this type as URLIS, since that is the name of a function as well. // This is not a problem in case sensitive C, but it is one in Delphi. const {$EXTERNALSYM URLIS_URL} URLIS_URL = 0; {$EXTERNALSYM URLIS_OPAQUE} URLIS_OPAQUE = 1; {$EXTERNALSYM URLIS_NOHISTORY} URLIS_NOHISTORY = 2; {$EXTERNALSYM URLIS_FILEURL} URLIS_FILEURL = 3; {$EXTERNALSYM URLIS_APPLIABLE} URLIS_APPLIABLE = 4; {$EXTERNALSYM URLIS_DIRECTORY} URLIS_DIRECTORY = 5; {$EXTERNALSYM URLIS_HASQUERY} URLIS_HASQUERY = 6; {$EXTERNALSYM URL_UNESCAPE} URL_UNESCAPE = $10000000; {$EXTERNALSYM URL_ESCAPE_UNSAFE} URL_ESCAPE_UNSAFE = $20000000; {$EXTERNALSYM URL_PLUGGABLE_PROTOCOL} URL_PLUGGABLE_PROTOCOL = $40000000; {$EXTERNALSYM URL_WININET_COMPATIBILITY} URL_WININET_COMPATIBILITY = $80000000; {$EXTERNALSYM URL_DONT_ESCAPE_EXTRA_INFO} URL_DONT_ESCAPE_EXTRA_INFO = $02000000; {$EXTERNALSYM URL_DONT_UNESCAPE_EXTRA_INFO} URL_DONT_UNESCAPE_EXTRA_INFO = URL_DONT_ESCAPE_EXTRA_INFO; {$EXTERNALSYM URL_BROWSER_MODE} URL_BROWSER_MODE = URL_DONT_ESCAPE_EXTRA_INFO; {$EXTERNALSYM URL_ESCAPE_SPACES_ONLY} URL_ESCAPE_SPACES_ONLY = $04000000; {$EXTERNALSYM URL_DONT_SIMPLIFY} URL_DONT_SIMPLIFY = $08000000; {$EXTERNALSYM URL_NO_META} URL_NO_META = URL_DONT_SIMPLIFY; {$EXTERNALSYM URL_UNESCAPE_INPLACE} URL_UNESCAPE_INPLACE = $00100000; {$EXTERNALSYM URL_CONVERT_IF_DOSPATH} URL_CONVERT_IF_DOSPATH = $00200000; {$EXTERNALSYM URL_UNESCAPE_HIGH_ANSI_ONLY} URL_UNESCAPE_HIGH_ANSI_ONLY = $00400000; {$EXTERNALSYM URL_INTERNAL_PATH} URL_INTERNAL_PATH = $00800000; // Will escape #'s in paths {$EXTERNALSYM URL_FILE_USE_PATHURL} URL_FILE_USE_PATHURL = $00010000; {$EXTERNALSYM URL_DONT_UNESCAPE} URL_DONT_UNESCAPE = $00020000; // Do not unescape the path/url at all {$EXTERNALSYM URL_ESCAPE_PERCENT} URL_ESCAPE_PERCENT = $00001000; {$EXTERNALSYM URL_ESCAPE_SEGMENT_ONLY} URL_ESCAPE_SEGMENT_ONLY = $00002000; // Treat the entire URL param as one URL segment. {$EXTERNALSYM URL_PARTFLAG_KEEPSCHEME} URL_PARTFLAG_KEEPSCHEME = $00000001; {$EXTERNALSYM URL_APPLY_DEFAULT} URL_APPLY_DEFAULT = $00000001; {$EXTERNALSYM URL_APPLY_GUESSSCHEME} URL_APPLY_GUESSSCHEME = $00000002; {$EXTERNALSYM URL_APPLY_GUESSFILE} URL_APPLY_GUESSFILE = $00000004; {$EXTERNALSYM URL_APPLY_FORCEAPPLY} URL_APPLY_FORCEAPPLY = $00000008; {$EXTERNALSYM UrlCompareA} function UrlCompareA(psz1, psz2: PAnsiChar; fIgnoreSlash: BOOL): Integer; stdcall; {$EXTERNALSYM UrlCompareW} function UrlCompareW(psz1, psz2: PWideChar; fIgnoreSlash: BOOL): Integer; stdcall; {$EXTERNALSYM UrlCompare} function UrlCompare(psz1, psz2: PTSTR; fIgnoreSlash: BOOL): Integer; stdcall; {$EXTERNALSYM UrlCombineA} function UrlCombineA(pszBase, pszRelative, pszCombined: PAnsiChar; var pcchCombined: DWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlCombineW} function UrlCombineW(pszBase, pszRelative, pszCombined: PWideChar; var pcchCombined: DWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlCombine} function UrlCombine(pszBase, pszRelative, pszCombined: PTSTR; var pcchCombined: DWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlCanonicalizeA} function UrlCanonicalizeA(pszUrl, pszCanonicalized: PAnsiChar; var pcchCanonicalized: DWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlCanonicalizeW} function UrlCanonicalizeW(pszUrl, pszCanonicalized: PWideChar; var pcchCanonicalized: DWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlCanonicalize} function UrlCanonicalize(pszUrl, pszCanonicalized: PTSTR; var pcchCanonicalized: DWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlIsOpaqueA} function UrlIsOpaqueA(pszURL: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM UrlIsOpaqueW} function UrlIsOpaqueW(pszURL: PWideChar): BOOL; stdcall; {$EXTERNALSYM UrlIsOpaque} function UrlIsOpaque(pszURL: PTSTR): BOOL; stdcall; {$EXTERNALSYM UrlIsNoHistoryA} function UrlIsNoHistoryA(pszURL: PAnsiChar): BOOL; stdcall; {$EXTERNALSYM UrlIsNoHistoryW} function UrlIsNoHistoryW(pszURL: PWideChar): BOOL; stdcall; {$EXTERNALSYM UrlIsNoHistory} function UrlIsNoHistory(pszURL: PTSTR): BOOL; stdcall; {$EXTERNALSYM UrlIsFileUrlA} function UrlIsFileUrlA(pszURL: PAnsiChar): BOOL; {$EXTERNALSYM UrlIsFileUrlW} function UrlIsFileUrlW(pszURL: PWideChar): BOOL; {$EXTERNALSYM UrlIsFileUrl} function UrlIsFileUrl(pszURL: PTSTR): BOOL; {$EXTERNALSYM UrlIsA} function UrlIsA(pszUrl: PAnsiChar; UrlIs: DWORD): BOOL; stdcall; {$EXTERNALSYM UrlIsW} function UrlIsW(pszUrl: PWideChar; UrlIs: DWORD): BOOL; stdcall; {$EXTERNALSYM UrlIs} function UrlIs(pszUrl: PTSTR; UrlIs: DWORD): BOOL; stdcall; {$EXTERNALSYM UrlGetLocationA} function UrlGetLocationA(psz1: PAnsiChar): PAnsiChar; stdcall; {$EXTERNALSYM UrlGetLocationW} function UrlGetLocationW(psz1: PWideChar): PWideChar; stdcall; {$EXTERNALSYM UrlGetLocation} function UrlGetLocation(psz1: PTSTR): PTSTR; stdcall; {$EXTERNALSYM UrlUnescapeA} function UrlUnescapeA(pszUrl, pszUnescaped: PAnsiChar; pcchUnescaped: PDWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlUnescapeW} function UrlUnescapeW(pszUrl, pszUnescaped: PWideChar; pcchUnescaped: PDWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlUnescape} function UrlUnescape(pszUrl, pszUnescaped: PTSTR; pcchUnescaped: PDWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlEscapeA} function UrlEscapeA(pszUrl, pszEscaped: PAnsiChar; pcchEscaped: PDWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlEscapeW} function UrlEscapeW(pszUrl, pszEscaped: PWideChar; pcchEscaped: PDWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlEscape} function UrlEscape(pszUrl, pszEscaped: PTSTR; pcchEscaped: PDWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlCreateFromPathA} function UrlCreateFromPathA(pszPath, pszUrl: PAnsiChar; var pcchUrl: DWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlCreateFromPathW} function UrlCreateFromPathW(pszPath, pszUrl: PWideChar; var pcchUrl: DWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlCreateFromPath} function UrlCreateFromPath(pszPath, pszUrl: PTSTR; var pcchUrl: DWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM PathCreateFromUrlA} function PathCreateFromUrlA(pszUrl, pszPath: PAnsiChar; var pcchPath: DWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM PathCreateFromUrlW} function PathCreateFromUrlW(pszUrl, pszPath: PWideChar; var pcchPath: DWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM PathCreateFromUrl} function PathCreateFromUrl(pszUrl, pszPath: PTSTR; var pcchPath: DWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlHashA} function UrlHashA(pszUrl: PAnsiChar; var pbHash: Byte; cbHash: DWORD): HResult; stdcall; {$EXTERNALSYM UrlHashW} function UrlHashW(pszUrl: PWideChar; var pbHash: Byte; cbHash: DWORD): HResult; stdcall; {$EXTERNALSYM UrlHash} function UrlHash(pszUrl: PTSTR; var pbHash: Byte; cbHash: DWORD): HResult; stdcall; {$EXTERNALSYM UrlGetPartW} function UrlGetPartW(pszIn, pszOut: PWideChar; var pcchOut: DWORD; dwPart, dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlGetPartA} function UrlGetPartA(pszIn, pszOut: PAnsiChar; var pcchOut: DWORD; dwPart, dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlGetPart} function UrlGetPart(pszIn, pszOut: PTSTR; var pcchOut: DWORD; dwPart, dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlApplySchemeA} function UrlApplySchemeA(pszIn, pszOut: PAnsiChar; var pcchOut: DWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlApplySchemeW} function UrlApplySchemeW(pszIn, pszOut: PWideChar; var pcchOut: DWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM UrlApplyScheme} function UrlApplyScheme(pszIn, pszOut: PTSTR; var pcchOut: DWORD; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM HashData} function HashData(pbData: PByte; cbData: DWORD; pbHash: PByte; cbHash: DWORD): HResult; stdcall; {$EXTERNALSYM UrlEscapeSpaces} function UrlEscapeSpaces(pszUrl, pszEscaped: PTSTR; var pcchEscaped: DWORD): HResult; {$EXTERNALSYM UrlUnescapeInPlace} function UrlUnescapeInPlace(pszUrl: PTSTR; dwFlags: DWORD): HResult; // //=============== Registry Routines =================================== // // SHDeleteEmptyKey mimics RegDeleteKey as it behaves on NT. // SHDeleteKey mimics RegDeleteKey as it behaves on Win95. {$EXTERNALSYM SHDeleteEmptyKeyA} function SHDeleteEmptyKeyA(hkey: HKEY; pszSubKey: PAnsiChar): DWORD; stdcall; {$EXTERNALSYM SHDeleteEmptyKeyW} function SHDeleteEmptyKeyW(hkey: HKEY; pszSubKey: PWideChar): DWORD; stdcall; {$EXTERNALSYM SHDeleteEmptyKey} function SHDeleteEmptyKey(hkey: HKEY; pszSubKey: PTSTR): DWORD; stdcall; {$EXTERNALSYM SHDeleteKeyA} function SHDeleteKeyA(hkey: HKEY; pszSubKey: PAnsiChar): DWORD; stdcall; {$EXTERNALSYM SHDeleteKeyW} function SHDeleteKeyW(hkey: HKEY; pszSubKey: PWideChar): DWORD; stdcall; {$EXTERNALSYM SHDeleteKey} function SHDeleteKey(hkey: HKEY; pszSubKey: PTSTR): DWORD; stdcall; {$EXTERNALSYM SHRegDuplicateHKey} function SHRegDuplicateHKey(hkey: HKEY): HKEY; stdcall; // These functions open the key, get/set/delete the value, then close // the key. {$EXTERNALSYM SHDeleteValueA} function SHDeleteValueA(hkey: HKEY; pszSubKey, pszValue: PAnsiChar): DWORD; stdcall; {$EXTERNALSYM SHDeleteValueW} function SHDeleteValueW(hkey: HKEY; pszSubKey, pszValue: PWideChar): DWORD; stdcall; {$EXTERNALSYM SHDeleteValue} function SHDeleteValue(hkey: HKEY; pszSubKey, pszValue: PTSTR): DWORD; stdcall; {$EXTERNALSYM SHGetValueA} function SHGetValueA(hkey: HKEY; pszSubKey, pszValue: PAnsiChar; var pdwType: DWORD; pvData: Pointer; var pcbData: DWORD): DWORD; stdcall; {$EXTERNALSYM SHGetValueW} function SHGetValueW(hkey: HKEY; pszSubKey, pszValue: PWideChar; var pdwType: DWORD; pvData: Pointer; var pcbData: DWORD): DWORD; stdcall; {$EXTERNALSYM SHGetValue} function SHGetValue(hkey: HKEY; pszSubKey, pszValue: PTSTR; var pdwType: DWORD; pvData: Pointer; var pcbData: DWORD): DWORD; stdcall; {$EXTERNALSYM SHSetValueA} function SHSetValueA(hkey: HKEY; pszSubKey: PAnsiChar; pszValue: PAnsiChar; dwType: DWORD; pvData: Pointer; cbData: DWORD): DWORD; stdcall; {$EXTERNALSYM SHSetValueW} function SHSetValueW(hkey: HKEY; pszSubKey: PWideChar; pszValue: PWideChar; dwType: DWORD; pvData: Pointer; cbData: DWORD): DWORD; stdcall; {$EXTERNALSYM SHSetValue} function SHSetValue(hkey: HKEY; pszSubKey: PTSTR; pszValue: PAnsiChar; dwType: DWORD; pvData: Pointer; cbData: DWORD): DWORD; stdcall; // // SRRF - Shell Registry Routine Flags (for SHRegGetValue) // type {$EXTERNALSYM SRRF} SRRF = DWORD; TSRRF = DWORD; const {$EXTERNALSYM SRRF_RT_REG_NONE} SRRF_RT_REG_NONE = $00000001; // restrict type to REG_NONE (other data types will not return ERROR_SUCCESS) {$EXTERNALSYM SRRF_RT_REG_SZ} SRRF_RT_REG_SZ = $00000002; // restrict type to REG_SZ (other data types will not return ERROR_SUCCESS) {$EXTERNALSYM SRRF_RT_REG_EXPAND_SZ} SRRF_RT_REG_EXPAND_SZ = $00000004; // restrict type to REG_EXPAND_SZ (other data types will not return ERROR_SUCCESS) {$EXTERNALSYM SRRF_RT_REG_BINARY} SRRF_RT_REG_BINARY = $00000008; // restrict type to REG_BINARY (other data types will not return ERROR_SUCCESS) {$EXTERNALSYM SRRF_RT_REG_DWORD} SRRF_RT_REG_DWORD = $00000010; // restrict type to REG_DWORD (other data types will not return ERROR_SUCCESS) {$EXTERNALSYM SRRF_RT_REG_MULTI_SZ} SRRF_RT_REG_MULTI_SZ = $00000020; // restrict type to REG_MULTI_SZ (other data types will not return ERROR_SUCCESS) {$EXTERNALSYM SRRF_RT_REG_QWORD} SRRF_RT_REG_QWORD = $00000040; // restrict type to REG_QWORD (other data types will not return ERROR_SUCCESS) {$EXTERNALSYM SRRF_RT_DWORD} SRRF_RT_DWORD = SRRF_RT_REG_BINARY or SRRF_RT_REG_DWORD; // restrict type to *32-bit* SRRF_RT_REG_BINARY or SRRF_RT_REG_DWORD (other data types will not return ERROR_SUCCESS) {$EXTERNALSYM SRRF_RT_QWORD} SRRF_RT_QWORD = SRRF_RT_REG_BINARY or SRRF_RT_REG_QWORD; // restrict type to *64-bit* SRRF_RT_REG_BINARY or SRRF_RT_REG_DWORD (other data types will not return ERROR_SUCCESS) {$EXTERNALSYM SRRF_RT_ANY} SRRF_RT_ANY = $0000FFFF; // no type restriction {$EXTERNALSYM SRRF_RM_ANY} SRRF_RM_ANY = $00000000; // no mode restriction (default is to allow any mode) {$EXTERNALSYM SRRF_RM_NORMAL} SRRF_RM_NORMAL = $00010000; // restrict system startup mode to "normal boot" (other startup modes will not return ERROR_SUCCESS) {$EXTERNALSYM SRRF_RM_SAFE} SRRF_RM_SAFE = $00020000; // restrict system startup mode to "safe mode" (other startup modes will not return ERROR_SUCCESS) {$EXTERNALSYM SRRF_RM_SAFENETWORK} SRRF_RM_SAFENETWORK = $00040000; // restrict system startup mode to "safe mode with networking" (other startup modes will not return ERROR_SUCCESS) {$EXTERNALSYM SRRF_NOEXPAND} SRRF_NOEXPAND = $10000000; // do not automatically expand environment strings if value is of type REG_EXPAND_SZ {$EXTERNALSYM SRRF_ZEROONFAILURE} SRRF_ZEROONFAILURE = $20000000; // if pvData is not NULL, set content to all zeros on failure // Function: // // SHRegGetValue() // // Purpose: // // Gets a registry value. SHRegGetValue() provides the following benefits: // // - data type checking // - boot mode checking // - auto-expansion of REG_EXPAND_SZ data // - guaranteed NULL termination of REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ data // // Parameters: // // hkey - handle to a currently open key. // // pszSubKey - pointer to a null-terminated string specifying the relative // path from hkey to one of its subkeys from which the data is // to be retrieved. this will be opened with KEY_READ sam. // // Note1: pszSubKey can be NULL or "". In either of these two // cases, the data is retrieved from the hkey itself. // Note2: *** PERF *** // If pszSubKey is not NULL or "", the subkey will be // automatically be opened and closed by this routine // in order to obtain the data. If you are retrieving // multiple values from the same subkey, it is better // for perf to open the subkey via RegOpenKeyEx() prior // to calling this method, and using this opened key as // hkey with pszSubKey set to NULL. // // pszValue - pointer to a null-terminated string specifying the name of // the value to query for data // // Note1: pszValue can be NULL or "". In either of these two // cases, the data is retrieved from the unnamed or // default value. // // dwFlags - bitwise or of SRRF_ flags, which cannot be 0: at least one // type restriction must be specified (SRRF_RT_...), or if any // type is desired then SRRF_RT_ANY can be specified // // Note1: SRRF_RT_ANY will allow any data type to be returned. // Note2: The following two type restrictions have special // handling semantics: // // SRRF_RT_DWORD == SRRF_RT_REG_BINARY | SRRF_RT_REG_DWORD // SRRF_RT_QWORD == SRRF_RT_REG_BINARY | SRRF_RT_REG_QWORD // // If either of these are specified, with no other type // restrictions, then in the prior case the restriction // will limit "valid" returned data to either REG_DWORD // or 32-bit REG_BINARY data, and in the latter case // the restriction will limit "valid" returned data to // either REG_QWORD or 64-bit REG_BINARY. // // pdwType - pointer to a dword which receives a code indicating the // type of data stored in the specified value // // Note1: pdwType can be NULL if no type information is wanted // Note2: If pdwType is not NULL, and the SRRF_NOEXPAND flag // has not been set, data types of REG_EXPAND_SZ will // be returned as REG_SZ since they are automatically // expanded in this method. // // pvData - pointer to a buffer that receives the value's data // // Note1: pvData can be NULL if the data is not required. // pvData is usually NULL if doing either a simple // existence test, or if interested in the size only. // Note2: *** PERF *** // Reference 'perf' note for pcbData. // // pcbData - when pvData is NULL: // optional pointer to a dword that receives a size in bytes // which would be sufficient to hold the registry data (note // this size is not guaranteed to be exact, merely sufficient) // when pvData is not NULL: // required pointer to a dword that specifies the size in // bytes of the buffer pointed to by the pvData parameter // and receives a size in bytes of: // a) the number of bytes read into pvData on ERROR_SUCCESS // (note this size is guaranteed to be exact) // b) the number of bytes which would be sufficient to hold // the registry data on ERROR_MORE_DATA -- pvData was of // insufficient size (note this size is not guaranteed to // be exact, merely sufficient) // // Note1: pcbData can be NULL only if pvData is NULL. // Note2: *** PERF *** // The potential for an 'extra' call to the registry to // read (or re-read) in the data exists when the data // type is REG_EXPAND_SZ and the SRRF_NOEXPAND flag has // not been set. The following conditions will result // in this 'extra' read operation: // i) when pvData is NULL and pcbData is not NULL // we must read in the data from the registry // anyway in order to obtain the string and perform // an expand on it to obtain and return the total // required size in pcbData // ii) when pvData is not NULL but is of insufficient // size we must re-read in the data from the // registry in order to obtain the entire string // and perform an expand on it to obtain and return // the total required size in pcbData // // Remarks: // // The key identified by hkey must have been opened with KEY_QUERY_VALUE // access. If pszSubKey is not NULL or "", it must be able to be opened // with KEY_QUERY_VALUE access in the current calling context. // // If the data type is REG_SZ, REG_EXPAND_SZ or REG_MULTI_SZ then any // returned data is guaranteed to take into account proper null termination. // For example: if pcbData is not NULL, its returned size will include the // bytes for a null terminator if pvData is not NULL, its returned data // will be properly null terminated. // // If the data type is REG_EXPAND_SZ, then unless the SRRF_NOEXPAND flag // is set the data will be automatically expanded prior to being returned. // For example: if pdwType is not NULL, its returned type will be changed // to REG_SZ, if pcbData is not NULL, its returned size will include the // bytes for a properly expanded string. if pvData is not NULL, its // returned data will be the expanded version of the string. // // Reference MSDN documentation for RegQueryValueEx() for more information // of the behaviour when pdwType, pvData, and/or pcbData are equal to NULL. // // Return Values: // // If the function succeeds, the return value is ERROR_SUCCESS and all out // parameters requested (pdwType, pvData, pcbData) are valid. // // If the function fails due to insufficient space in a provided non-NULL // pvData, the return value is ERROR_MORE_DATA and only pdwType and pcbData // can contain valid data. The content of pvData in this case is undefined. // // Examples: // // 1) read REG_SZ (or REG_EXPAND_SZ as REG_SZ) "string" data from the (default) value of an open hkey // // TCHAR szData[128] // DWORD cbData = sizeof(pszData) // if (ERROR_SUCCESS == SHRegGetValue(hkey, NULL, NULL, SRRF_RT_REG_SZ, NULL, szData, &cbData)) // { // // use sz (successful read) // } // // 2) read REG_SZ (or REG_EXPAND_SZ as REG_SZ) "string" data of unknown size from the "MyValue" value of an open hkey // // DWORD cbData // if (ERROR_SUCCESS == SHRegGetValue(hkey, NULL, TEXT("MyValue"), SRRF_RT_REG_SZ, NULL, NULL, &cbData)) // { // TCHAR *pszData = new TCHAR[cbData/sizeof(TCHAR)] // if (pszData) // { // if (ERROR_SUCCESS == SHRegGetValue(hkey, NULL, TEXT("MyValue"), SRRF_RT_REG_SZ, NULL, pszData, &cbData)) // { // // use pszData (successful read) // } // delete[] pszData // } // } // // 3) read "dword" data from the "MyValue" value of the "MySubKey" subkey of an open hkey // // DWORD dwData // DWORD cbData = sizeof(dwData) // if (ERROR_SUCCESS == SHRegGetValue(hkey, TEXT("MySubKey"), TEXT("MyValue"), SRRF_RT_REG_DWORD, NULL, &dwData, &cbData)) // { // // use dwData (successful read) // } // // 4) read "dword" data from the "MyValue" value of the "MySubKey" subkey of an open hkey (32-bit binary data also ok) // // DWORD dwData // DWORD cbData = sizeof(dwData) // if (ERROR_SUCCESS == SHRegGetValue(hkey, TEXT("MySubKey"), TEXT("MyValue"), SRRF_RT_DWORD, NULL, &dwData, &cbData)) // { // // use dwData (successful read) // } // // 5) determine existence of "MyValue" value of an open hkey // // BOOL bExists = ERROR_SUCCESS == SHRegGetValue(hkey, NULL, TEXT("MyValue"), SRRF_RT_ANY, NULL, NULL, NULL) {$EXTERNALSYM SHRegGetValueA} function SHRegGetValueA(hkey: HKEY; pszSubKey, pszValue: PAnsiChar; dwFlags: TSRRF; var pdwType: DWORD; pvData: Pointer; var pcbData: DWORD): Longint stdcall; {$EXTERNALSYM SHRegGetValueW} function SHRegGetValueW(hkey: HKEY; pszSubKey, pszValue: PWideChar; dwFlags: TSRRF; var pdwType: DWORD; pvData: Pointer; var pcbData: DWORD): Longint stdcall; {$EXTERNALSYM SHRegGetValue} function SHRegGetValue(hkey: HKEY; pszSubKey, pszValue: PTSTR; dwFlags: TSRRF; var pdwType: DWORD; pvData: Pointer; var pcbData: DWORD): Longint stdcall; // These functions behave just like RegQueryValueEx(), except if the data // type is REG_SZ, REG_EXPAND_SZ or REG_MULTI_SZ then the string is // guaranteed to be properly null terminated. // // Additionally, if the data type is REG_EXPAND_SZ these functions will // go ahead and expand out the string, and "massage" the returned *pdwType // to be REG_SZ. {$EXTERNALSYM SHQueryValueExA} function SHQueryValueExA(hkey: HKEY; pszValue: PAnsiChar; var pdwReserved, pdwType: DWORD; pvData: Pointer; var pcbData: DWORD): DWORD; stdcall; {$EXTERNALSYM SHQueryValueExW} function SHQueryValueExW(hkey: HKEY; pszValue: PWideChar; var pdwReserved, pdwType: DWORD; pvData: Pointer; var pcbData: DWORD): DWORD; stdcall; {$EXTERNALSYM SHQueryValueEx} function SHQueryValueEx(hkey: HKEY; pszValue: PTSTR; var pdwReserved, pdwType: DWORD; pvData: Pointer; var pcbData: DWORD): DWORD; stdcall; // Enumeration functions support. {$EXTERNALSYM SHEnumKeyExA} function SHEnumKeyExA(hkey: HKEY; dwIndex: DWORD; pszName: PAnsiChar; var pcchName: DWORD): Longint; stdcall; {$EXTERNALSYM SHEnumKeyExW} function SHEnumKeyExW(hkey: HKEY; dwIndex: DWORD; pszName: PWideChar; var pcchName: DWORD): Longint; stdcall; {$EXTERNALSYM SHEnumKeyEx} function SHEnumKeyEx(hkey: HKEY; dwIndex: DWORD; pszName: PTSTR; var pcchName: DWORD): Longint; stdcall; {$EXTERNALSYM SHEnumValueA} function SHEnumValueA(hkey: HKEY; dwIndex: DWORD; pszValueName: PAnsiChar; var pcchValueName, pdwType: DWORD; pvData: Pointer; var pcbData: DWORD): Longint; stdcall; {$EXTERNALSYM SHEnumValueW} function SHEnumValueW(hkey: HKEY; dwIndex: DWORD; pszValueName: PWideChar; var pcchValueName, pdwType: DWORD; pvData: Pointer; var pcbData: DWORD): Longint; stdcall; {$EXTERNALSYM SHEnumValue} function SHEnumValue(hkey: HKEY; dwIndex: DWORD; pszValueName: PTSTR; var pcchValueName, pdwType: DWORD; pvData: Pointer; var pcbData: DWORD): Longint; stdcall; {$EXTERNALSYM SHQueryInfoKeyA} function SHQueryInfoKeyA(hkey: HKEY; var pcSubKeys, pcchMaxSubKeyLen, pcValues, pcchMaxValueNameLen: DWORD): Longint; stdcall; {$EXTERNALSYM SHQueryInfoKeyW} function SHQueryInfoKeyW(hkey: HKEY; var pcSubKeys, pcchMaxSubKeyLen, pcValues, pcchMaxValueNameLen: DWORD): Longint; stdcall; {$EXTERNALSYM SHQueryInfoKey} function SHQueryInfoKey(hkey: HKEY; var pcSubKeys, pcchMaxSubKeyLen, pcValues, pcchMaxValueNameLen: DWORD): Longint; stdcall; // recursive key copy {$EXTERNALSYM SHCopyKeyA} function SHCopyKeyA(hkeySrc: HKEY; szSrcSubKey: PAnsiChar; hkeyDest: HKEY; fReserved: DWORD): DWORD; stdcall; {$EXTERNALSYM SHCopyKeyW} function SHCopyKeyW(hkeySrc: HKEY; wszSrcSubKey: PWideChar; hkeyDest: HKEY; fReserved: DWORD): DWORD; stdcall; {$EXTERNALSYM SHCopyKey} function SHCopyKey(hkeySrc: HKEY; szSrcSubKey: PTSTR; hkeyDest: HKEY; fReserved: DWORD): DWORD; stdcall; // Getting and setting file system paths with environment variables {$EXTERNALSYM SHRegGetPathA} function SHRegGetPathA(hKey: HKEY; pcszSubKey, pcszValue, pszPath: PAnsiChar; dwFlags: DWORD): DWORD; stdcall; {$EXTERNALSYM SHRegGetPathW} function SHRegGetPathW(hKey: HKEY; pcszSubKey, pcszValue, pszPath: PWideChar; dwFlags: DWORD): DWORD; stdcall; {$EXTERNALSYM SHRegGetPath} function SHRegGetPath(hKey: HKEY; pcszSubKey, pcszValue, pszPath: PTSTR; dwFlags: DWORD): DWORD; stdcall; {$EXTERNALSYM SHRegSetPathA} function SHRegSetPathA(hKey: HKEY; pcszSubKey, pcszValue, pcszPath: PAnsiChar; dwFlags: DWORD): DWORD; stdcall; {$EXTERNALSYM SHRegSetPathW} function SHRegSetPathW(hKey: HKEY; pcszSubKey, pcszValue, pcszPath: PWideChar; dwFlags: DWORD): DWORD; stdcall; {$EXTERNALSYM SHRegSetPath} function SHRegSetPath(hKey: HKEY; pcszSubKey, pcszValue, pcszPath: PTSTR; dwFlags: DWORD): DWORD; stdcall; ////////////////////////////////////////////// // User Specific Registry Access Functions ////////////////////////////////////////////// // // Type definitions. // type {$EXTERNALSYM SHREGDEL_FLAGS} SHREGDEL_FLAGS = DWORD; TSHRegDelFlags = DWORD; const {$EXTERNALSYM SHREGDEL_DEFAULT} SHREGDEL_DEFAULT = $00000000; // Delete's HKCU ; or HKLM if HKCU is not found. {$EXTERNALSYM SHREGDEL_HKCU} SHREGDEL_HKCU = $00000001; // Delete HKCU only {$EXTERNALSYM SHREGDEL_HKLM} SHREGDEL_HKLM = $00000010; // Delete HKLM only. {$EXTERNALSYM SHREGDEL_BOTH} SHREGDEL_BOTH = $00000011; // Delete both HKCU and HKLM. type {$EXTERNALSYM SHREGENUM_FLAGS} SHREGENUM_FLAGS = DWORD; TSHRegEnumFlags = DWORD; const {$EXTERNALSYM SHREGENUM_DEFAULT} SHREGENUM_DEFAULT = $00000000; // Enumerates HKCU or HKLM if not found. {$EXTERNALSYM SHREGENUM_HKCU} SHREGENUM_HKCU = $00000001; // Enumerates HKCU only {$EXTERNALSYM SHREGENUM_HKLM} SHREGENUM_HKLM = $00000010; // Enumerates HKLM only. {$EXTERNALSYM SHREGENUM_BOTH} SHREGENUM_BOTH = $00000011; // Enumerates both HKCU and HKLM without duplicates. // This option is NYI. {$EXTERNALSYM SHREGSET_HKCU} SHREGSET_HKCU = $00000001; // Write to HKCU if empty. {$EXTERNALSYM SHREGSET_FORCE_HKCU} SHREGSET_FORCE_HKCU = $00000002; // Write to HKCU. {$EXTERNALSYM SHREGSET_HKLM} SHREGSET_HKLM = $00000004; // Write to HKLM if empty. {$EXTERNALSYM SHREGSET_FORCE_HKLM} SHREGSET_FORCE_HKLM = $00000008; // Write to HKLM. {$EXTERNALSYM SHREGSET_DEFAULT} SHREGSET_DEFAULT = SHREGSET_FORCE_HKCU or SHREGSET_HKLM; // Default is SHREGSET_FORCE_HKCU or SHREGSET_HKLM. type // HUSKEY is a Handle to a User Specific KEY. PHUSkey = ^THUSKey; {$EXTERNALSYM HUSKEY} HUSKEY = THandle; THUSKey = HUSKEY; {$EXTERNALSYM SHRegCreateUSKeyA} function SHRegCreateUSKeyA(pszPath: PAnsiChar; samDesired: REGSAM; hRelativeUSKey: THUSKey; var phNewUSKey: THUSKey; dwFlags: DWORD): Longint; stdcall; {$EXTERNALSYM SHRegCreateUSKeyW} function SHRegCreateUSKeyW(pwzPath: PWideChar; samDesired: REGSAM; hRelativeUSKey: THUSKey; var phNewUSKey: THUSKey; dwFlags: DWORD): Longint; stdcall; {$EXTERNALSYM SHRegCreateUSKey} function SHRegCreateUSKey(pszPath: PTSTR; samDesired: REGSAM; hRelativeUSKey: THUSKey; var phNewUSKey: THUSKey; dwFlags: DWORD): Longint; stdcall; {$EXTERNALSYM SHRegOpenUSKeyA} function SHRegOpenUSKeyA(pszPath: PAnsiChar; samDesired: REGSAM; hRelativeUSKey: THUSKey; var phNewUSKey: THUSKey; fIgnoreHKCU: BOOL): Longint; stdcall; {$EXTERNALSYM SHRegOpenUSKeyW} function SHRegOpenUSKeyW(pwzPath: PWideChar; samDesired: REGSAM; hRelativeUSKey: THUSKey; var phNewUSKey: THUSKey; fIgnoreHKCU: BOOL): Longint; stdcall; {$EXTERNALSYM SHRegOpenUSKey} function SHRegOpenUSKey(pszPath: PTSTR; samDesired: REGSAM; hRelativeUSKey: THUSKey; var phNewUSKey: THUSKey; fIgnoreHKCU: BOOL): Longint; stdcall; {$EXTERNALSYM SHRegQueryUSValueA} function SHRegQueryUSValueA(hUSKey: THUSKey; pszValue: PAnsiChar; var pdwType: DWORD; pvData: Pointer; var pcbData: DWORD; fIgnoreHKCU: BOOL; pvDefaultData: Pointer; dwDefaultDataSize: DWORD): Longint; stdcall; {$EXTERNALSYM SHRegQueryUSValueW} function SHRegQueryUSValueW(hUSKey: THUSKey; pwzValue: PWideChar; var pdwType: DWORD; pvData: Pointer; var pcbData: DWORD; fIgnoreHKCU: BOOL; pvDefaultData: Pointer; dwDefaultDataSize: DWORD): Longint; stdcall; {$EXTERNALSYM SHRegQueryUSValue} function SHRegQueryUSValue(hUSKey: THUSKey; pszValue: PTSTR; var pdwType: DWORD; pvData: Pointer; var pcbData: DWORD; fIgnoreHKCU: BOOL; pvDefaultData: Pointer; dwDefaultDataSize: DWORD): Longint; stdcall; {$EXTERNALSYM SHRegWriteUSValueA} function SHRegWriteUSValueA(hUSKey: THUSKey; pszValue: PAnsiChar; dwType: DWORD; pvData: Pointer; cbData, dwFlags: DWORD): Longint; stdcall; {$EXTERNALSYM SHRegWriteUSValueW} function SHRegWriteUSValueW(hUSKey: THUSKey; pwzValue: PWideChar; dwType: DWORD; pvData: Pointer; cbData, dwFlags: DWORD): Longint; stdcall; {$EXTERNALSYM SHRegWriteUSValue} function SHRegWriteUSValue(hUSKey: THUSKey; pszValue: PTSTR; dwType: DWORD; pvData: Pointer; cbData, dwFlags: DWORD): Longint; stdcall; {$EXTERNALSYM SHRegDeleteUSValueA} function SHRegDeleteUSValueA(hUSKey: THUSKey; pszValue: PAnsiChar; delRegFlags: TSHRegDelFlags): Longint; stdcall; {$EXTERNALSYM SHRegDeleteUSValueW} function SHRegDeleteUSValueW(hUSKey: THUSKey; pwzValue: PWideChar; delRegFlags: TSHRegDelFlags): Longint; stdcall; {$EXTERNALSYM SHRegDeleteUSValue} function SHRegDeleteUSValue(hUSKey: THUSKey; pszValue: PTSTR; delRegFlags: TSHRegDelFlags): Longint; stdcall; {$EXTERNALSYM SHRegDeleteEmptyUSKeyW} function SHRegDeleteEmptyUSKeyW(hUSKey: THUSKey; pwzSubKey: PWideChar; delRegFlags: TSHRegDelFlags): Longint; stdcall; {$EXTERNALSYM SHRegDeleteEmptyUSKeyA} function SHRegDeleteEmptyUSKeyA(hUSKey: THUSKey; pszSubKey: PAnsiChar; delRegFlags: TSHRegDelFlags): Longint; stdcall; {$EXTERNALSYM SHRegDeleteEmptyUSKey} function SHRegDeleteEmptyUSKey(hUSKey: THUSKey; pszSubKey: PTSTR; delRegFlags: TSHRegDelFlags): Longint; stdcall; {$EXTERNALSYM SHRegEnumUSKeyA} function SHRegEnumUSKeyA(hUSKey: THUSKey; dwIndex: DWORD; pszName: PAnsiChar; var pcchName: DWORD; enumRegFlags: TSHRegEnumFlags): Longint; stdcall; {$EXTERNALSYM SHRegEnumUSKeyW} function SHRegEnumUSKeyW(hUSKey: THUSKey; dwIndex: DWORD; pwzName: PWideChar; var pcchName: DWORD; enumRegFlags: TSHRegEnumFlags): Longint; stdcall; {$EXTERNALSYM SHRegEnumUSKey} function SHRegEnumUSKey(hUSKey: THUSKey; dwIndex: DWORD; pszName: PTSTR; var pcchName: DWORD; enumRegFlags: TSHRegEnumFlags): Longint; stdcall; {$EXTERNALSYM SHRegEnumUSValueA} function SHRegEnumUSValueA(hUSkey: THUSKey; dwIndex: DWORD; pszValueName: PAnsiChar; var pcchValueName, pdwType: DWORD; pvData: Pointer; var pcbData: DWORD; enumRegFlags: TSHRegEnumFlags): Longint; stdcall; {$EXTERNALSYM SHRegEnumUSValueW} function SHRegEnumUSValueW(hUSkey: THUSKey; dwIndex: DWORD; pszValueName: PWideChar; var pcchValueName, pdwType: DWORD; pvData: Pointer; var pcbData: DWORD; enumRegFlags: TSHRegEnumFlags): Longint; stdcall; {$EXTERNALSYM SHRegEnumUSValue} function SHRegEnumUSValue(hUSkey: THUSKey; dwIndex: DWORD; pszValueName: PTSTR; var pcchValueName, pdwType: DWORD; pvData: Pointer; var pcbData: DWORD; enumRegFlags: TSHRegEnumFlags): Longint; stdcall; {$EXTERNALSYM SHRegQueryInfoUSKeyA} function SHRegQueryInfoUSKeyA(hUSKey: THUSKey; var pcSubKeys, pcchMaxSubKeyLen, pcValues, pcchMaxValueNameLen: DWORD; enumRegFlags: TSHRegEnumFlags): Longint; stdcall; {$EXTERNALSYM SHRegQueryInfoUSKeyW} function SHRegQueryInfoUSKeyW(hUSKey: THUSKey; var pcSubKeys, pcchMaxSubKeyLen, pcValues, pcchMaxValueNameLen: DWORD; enumRegFlags: TSHRegEnumFlags): Longint; stdcall; {$EXTERNALSYM SHRegQueryInfoUSKey} function SHRegQueryInfoUSKey(hUSKey: THUSKey; var pcSubKeys, pcchMaxSubKeyLen, pcValues, pcchMaxValueNameLen: DWORD; enumRegFlags: TSHRegEnumFlags): Longint; stdcall; {$EXTERNALSYM SHRegCloseUSKey} function SHRegCloseUSKey(hUSKey: THUSKey): Longint; stdcall; // These calls are equal to an SHRegOpenUSKey, SHRegQueryUSValue, and then a SHRegCloseUSKey. {$EXTERNALSYM SHRegGetUSValueA} function SHRegGetUSValueA(pszSubKey, pszValue: PAnsiChar; var pdwType: DWORD; pvData: Pointer; var pcbData: DWORD; fIgnoreHKCU: BOOL; pvDefaultData: Pointer; dwDefaultDataSize: DWORD): Longint; stdcall; {$EXTERNALSYM SHRegGetUSValueW} function SHRegGetUSValueW(pwzSubKey, pwzValue: PWideChar; var pdwType: DWORD; pvData: Pointer; var pcbData: DWORD; fIgnoreHKCU: BOOL; pvDefaultData: Pointer; dwDefaultDataSize: DWORD): Longint; stdcall; {$EXTERNALSYM SHRegGetUSValue} function SHRegGetUSValue(pszSubKey, pszValue: PTSTR; var pdwType: DWORD; pvData: Pointer; var pcbData: DWORD; fIgnoreHKCU: BOOL; pvDefaultData: Pointer; dwDefaultDataSize: DWORD): Longint; stdcall; {$EXTERNALSYM SHRegSetUSValueA} function SHRegSetUSValueA(pszSubKey, pszValue: PAnsiChar; dwType: DWORD; pvData: Pointer; cbData, dwFlags: DWORD): Longint; stdcall; {$EXTERNALSYM SHRegSetUSValueW} function SHRegSetUSValueW(pwzSubKey, pwzValue: PWideChar; dwType: DWORD; pvData: Pointer; cbData, dwFlags: DWORD): Longint; stdcall; {$EXTERNALSYM SHRegSetUSValue} function SHRegSetUSValue(pszSubKey, pszValue: PTSTR; dwType: DWORD; pvData: Pointer; cbData, dwFlags: DWORD): Longint; stdcall; {$EXTERNALSYM SHRegGetIntW} function SHRegGetIntW(hk: HKEY; pwzKey: PWideChar; iDefault: Integer): Integer stdcall; {$EXTERNALSYM SHRegGetInt} function SHRegGetInt(hk: HKEY; pwzKey: PWideChar; iDefault: Integer): Integer stdcall; {$EXTERNALSYM SHRegGetBoolUSValueA} function SHRegGetBoolUSValueA(pszSubKey, pszValue: PAnsiChar; fIgnoreHKCU, fDefault: BOOL): BOOL; stdcall; {$EXTERNALSYM SHRegGetBoolUSValueW} function SHRegGetBoolUSValueW(pszSubKey, pszValue: PWideChar; fIgnoreHKCU, fDefault: BOOL): BOOL; stdcall; {$EXTERNALSYM SHRegGetBoolUSValue} function SHRegGetBoolUSValue(pszSubKey, pszValue: PTSTR; fIgnoreHKCU, fDefault: BOOL): BOOL; stdcall; // // Association APIs // // these APIs are to assist in accessing the data in HKCR // getting the Command strings and exe paths // for different verbs and extensions are simplified this way // const {$EXTERNALSYM ASSOCF_INIT_NOREMAPCLSID} ASSOCF_INIT_NOREMAPCLSID = $00000001; // do not remap clsids to progids {$EXTERNALSYM ASSOCF_INIT_BYEXENAME} ASSOCF_INIT_BYEXENAME = $00000002; // executable is being passed in {$EXTERNALSYM ASSOCF_OPEN_BYEXENAME} ASSOCF_OPEN_BYEXENAME = $00000002; // executable is being passed in {$EXTERNALSYM ASSOCF_INIT_DEFAULTTOSTAR} ASSOCF_INIT_DEFAULTTOSTAR = $00000004; // treat "*" as the BaseClass {$EXTERNALSYM ASSOCF_INIT_DEFAULTTOFOLDER} ASSOCF_INIT_DEFAULTTOFOLDER = $00000008; // treat "Folder" as the BaseClass {$EXTERNALSYM ASSOCF_NOUSERSETTINGS} ASSOCF_NOUSERSETTINGS = $00000010; // dont use HKCU {$EXTERNALSYM ASSOCF_NOTRUNCATE} ASSOCF_NOTRUNCATE = $00000020; // dont truncate the return string {$EXTERNALSYM ASSOCF_VERIFY} ASSOCF_VERIFY = $00000040; // verify data is accurate (DISK HITS) {$EXTERNALSYM ASSOCF_REMAPRUNDLL} ASSOCF_REMAPRUNDLL = $00000080; // actually gets info about rundlls target if applicable {$EXTERNALSYM ASSOCF_NOFIXUPS} ASSOCF_NOFIXUPS = $00000100; // attempt to fix errors if found {$EXTERNALSYM ASSOCF_IGNOREBASECLASS} ASSOCF_IGNOREBASECLASS = $00000200; // dont recurse into the baseclass type {$EXTERNALSYM ASSOCF} ASSOCF = DWORD; TAssocF = ASSOCF; {$EXTERNALSYM ASSOCSTR} ASSOCSTR = DWORD; TAssocStr = DWORD; const {$EXTERNALSYM ASSOCSTR_COMMAND} ASSOCSTR_COMMAND = 1; // shell\verb\command string {$EXTERNALSYM ASSOCSTR_EXECUTABLE} ASSOCSTR_EXECUTABLE = 2; // the executable part of command string {$EXTERNALSYM ASSOCSTR_FRIENDLYDOCNAME} ASSOCSTR_FRIENDLYDOCNAME = 3; // friendly name of the document type {$EXTERNALSYM ASSOCSTR_FRIENDLYAPPNAME} ASSOCSTR_FRIENDLYAPPNAME = 4; // friendly name of executable {$EXTERNALSYM ASSOCSTR_NOOPEN} ASSOCSTR_NOOPEN = 5; // noopen value {$EXTERNALSYM ASSOCSTR_SHELLNEWVALUE} ASSOCSTR_SHELLNEWVALUE = 6; // query values under the shellnew key {$EXTERNALSYM ASSOCSTR_DDECOMMAND} ASSOCSTR_DDECOMMAND = 7; // template for DDE commands {$EXTERNALSYM ASSOCSTR_DDEIFEXEC} ASSOCSTR_DDEIFEXEC = 8; // DDECOMMAND to use if just create a process {$EXTERNALSYM ASSOCSTR_DDEAPPLICATION} ASSOCSTR_DDEAPPLICATION = 9; // Application name in DDE broadcast {$EXTERNALSYM ASSOCSTR_DDETOPIC} ASSOCSTR_DDETOPIC = 10; // Topic Name in DDE broadcast {$EXTERNALSYM ASSOCSTR_INFOTIP} ASSOCSTR_INFOTIP = 11; // info tip for an item or list of properties to create info tip from {$EXTERNALSYM ASSOCSTR_QUICKTIP} ASSOCSTR_QUICKTIP = 12; // same as ASSOCSTR_INFOTIP except this list contains only quickly retrievable properties {$EXTERNALSYM ASSOCSTR_TILEINFO} ASSOCSTR_TILEINFO = 13; // similar to ASSOCSTR_INFOTIP - lists important properties for tileview {$EXTERNALSYM ASSOCSTR_CONTENTTYPE} ASSOCSTR_CONTENTTYPE = 14; // MIME Content type {$EXTERNALSYM ASSOCSTR_DEFAULTICON} ASSOCSTR_DEFAULTICON = 15; // Default icon source {$EXTERNALSYM ASSOCSTR_SHELLEXTENSION} ASSOCSTR_SHELLEXTENSION = 16; // Guid string pointing to the Shellex\Shellextensionhandler value. {$EXTERNALSYM ASSOCSTR_MAX} ASSOCSTR_MAX = 17; type {$EXTERNALSYM ASSOCKEY} ASSOCKEY = DWORD; TAssocKey = DWORD; const {$EXTERNALSYM ASSOCKEY_SHELLEXECCLASS} ASSOCKEY_SHELLEXECCLASS = 1; // the key that should be passed to ShellExec(hkeyClass) {$EXTERNALSYM ASSOCKEY_APP} ASSOCKEY_APP = 2; // the "Application" key for the association {$EXTERNALSYM ASSOCKEY_CLASS} ASSOCKEY_CLASS = 3; // the progid or class key {$EXTERNALSYM ASSOCKEY_BASECLASS} ASSOCKEY_BASECLASS = 4; // the BaseClass key {$EXTERNALSYM ASSOCKEY_MAX} ASSOCKEY_MAX = 5; type {$EXTERNALSYM ASSOCDATA} ASSOCDATA = DWORD; TAssocData = DWORD; const {$EXTERNALSYM ASSOCDATA_MSIDESCRIPTOR} ASSOCDATA_MSIDESCRIPTOR = 1; // Component Descriptor to pass to MSI APIs {$EXTERNALSYM ASSOCDATA_NOACTIVATEHANDLER} ASSOCDATA_NOACTIVATEHANDLER = 2; // restrict attempts to activate window {$EXTERNALSYM ASSOCDATA_QUERYCLASSSTORE} ASSOCDATA_QUERYCLASSSTORE = 3; // should check with the NT Class Store {$EXTERNALSYM ASSOCDATA_HASPERUSERASSOC} ASSOCDATA_HASPERUSERASSOC = 4; // defaults to user specified association {$EXTERNALSYM ASSOCDATA_EDITFLAGS} ASSOCDATA_EDITFLAGS = 5; // Edit flags. {$EXTERNALSYM ASSOCDATA_VALUE} ASSOCDATA_VALUE = 6; // use pszExtra as the Value name {$EXTERNALSYM ASSOCDATA_MAX} ASSOCDATA_MAX = 7; type {$EXTERNALSYM ASSOCENUM} ASSOCENUM = DWORD; TAssocEnum = DWORD; const {$EXTERNALSYM ASSOCENUM_NONE} ASSOCENUM_NONE = 0; type {$EXTERNALSYM IQueryAssociations} IQueryAssociations = interface(IUnknown) ['{C46CA590-3C3F-11D2-BEE6-0000F805CA57}'] function Init(flags: TAssocF; pszAssoc: PWideChar; hkProgid: HKEY; hwnd: HWND): HResult; stdcall; function GetString(flags: TAssocF; str: TAssocStr; pszExtra, pszOut: PWideChar; out pcchOut: DWORD): HResult; stdcall; function GetKey(flags: TAssocF; key: TAssocKey; pszExtra: PWideChar; out phkeyOut: HKEY): HResult; stdcall; function GetData(flags: TAssocF; data: TAssocData; pszExtra: PWideChar; pvOut: Pointer; var pcbOut: DWORD): HResult; stdcall; function GetEnum(flags: TAssocF; assocenum: TAssocEnum; pszExtra: PWideChar; riid: TIID; out ppvOut: Pointer): HResult; stdcall; end; {$EXTERNALSYM AssocCreate} function AssocCreate(clsid: TCLSID; riid: TIID; out ppv: Pointer): HResult; stdcall; // wrappers for the interface {$EXTERNALSYM AssocQueryStringA} function AssocQueryStringA(flags: TAssocF; str: TAssocStr; pszAssoc, pszExtra, pszOut: PAnsiChar; var pcchOut: DWORD): HResult; stdcall; {$EXTERNALSYM AssocQueryStringW} function AssocQueryStringW(flags: TAssocF; str: TAssocStr; pszAssoc, pszExtra, pszOut: PWideChar; var pcchOut: DWORD): HResult; stdcall; {$EXTERNALSYM AssocQueryString} function AssocQueryString(flags: TAssocF; str: TAssocStr; pszAssoc, pszExtra, pszOut: PTSTR; var pcchOut: DWORD): HResult; stdcall; {$EXTERNALSYM AssocQueryStringByKeyA} function AssocQueryStringByKeyA(flags: TAssocF; str: TAssocStr; hkAssoc: HKEY; pszExtra, pszOut: PAnsiChar; var pcchOut: DWORD): HResult; stdcall; {$EXTERNALSYM AssocQueryStringByKeyW} function AssocQueryStringByKeyW(flags: TAssocF; str: TAssocStr; hkAssoc: HKEY; pszExtra, pszOut: PWideChar; var pcchOut: DWORD): HResult; stdcall; {$EXTERNALSYM AssocQueryStringByKey} function AssocQueryStringByKey(flags: TAssocF; str: TAssocStr; hkAssoc: HKEY; pszExtra, pszOut: PTSTR; var pcchOut: DWORD): HResult; stdcall; {$EXTERNALSYM AssocQueryKeyA} function AssocQueryKeyA(flags: TAssocF; key: TAssocKey; pszAssoc, pszExtra: PAnsiChar; var phkeyOut: HKEY): HResult; stdcall; {$EXTERNALSYM AssocQueryKeyW} function AssocQueryKeyW(flags: TAssocF; key: TAssocKey; pszAssoc, pszExtra: PWideChar; var phkeyOut: HKEY): HResult; stdcall; {$EXTERNALSYM AssocQueryKey} function AssocQueryKey(flags: TAssocF; key: TAssocKey; pszAssoc, pszExtra: PTSTR; var phkeyOut: HKEY): HResult; stdcall; // AssocIsDangerous() checks a file type to determine whether it is "Dangerous" // this maps to the IE download dialog's forcing a prompt to open or save. // dangerous file types should be handled more carefully than other file types. // // Parameter: pszAssoc - type to check. may be an extension or progid. (".exe" or "exefile" would both be valid) // // Returns: TRUE if the file type is dangerous. // // NOTES: // // this API first checks a hardcoded list of known dangerous types. // then it checks the editflags for the file type looking for the FTA_AlwaysUnsafe bit. // then it checks Safer policies. // {$EXTERNALSYM AssocIsDangerous} function AssocIsDangerous(pszAssoc: PWideChar): BOOL stdcall; // PERCEIVED types: type {$EXTERNALSYM PERCEIVED} PERCEIVED = DWORD; TPerceived = DWORD; const {$EXTERNALSYM PERCEIVED_TYPE_CUSTOM} PERCEIVED_TYPE_CUSTOM = -3; {$EXTERNALSYM PERCEIVED_TYPE_UNSPECIFIED} PERCEIVED_TYPE_UNSPECIFIED = -2; {$EXTERNALSYM PERCEIVED_TYPE_FOLDER} PERCEIVED_TYPE_FOLDER = -1; {$EXTERNALSYM PERCEIVED_TYPE_UNKNOWN} PERCEIVED_TYPE_UNKNOWN = 0; {$EXTERNALSYM PERCEIVED_TYPE_TEXT} PERCEIVED_TYPE_TEXT = 1; {$EXTERNALSYM PERCEIVED_TYPE_IMAGE} PERCEIVED_TYPE_IMAGE = 2; {$EXTERNALSYM PERCEIVED_TYPE_AUDIO} PERCEIVED_TYPE_AUDIO = 3; {$EXTERNALSYM PERCEIVED_TYPE_VIDEO} PERCEIVED_TYPE_VIDEO = 4; {$EXTERNALSYM PERCEIVED_TYPE_COMPRESSED} PERCEIVED_TYPE_COMPRESSED = 5; {$EXTERNALSYM PERCEIVED_TYPE_DOCUMENT} PERCEIVED_TYPE_DOCUMENT = 6; {$EXTERNALSYM PERCEIVED_TYPE_SYSTEM} PERCEIVED_TYPE_SYSTEM = 7; {$EXTERNALSYM PERCEIVED_TYPE_APPLICATION} PERCEIVED_TYPE_APPLICATION = 8; type {$EXTERNALSYM PERCEIVEDFLAG} PERCEIVEDFLAG = DWORD; TPerceivedFlag = PERCEIVEDFLAG; const {$EXTERNALSYM PERCEIVEDFLAG_UNDEFINED} PERCEIVEDFLAG_UNDEFINED = $0000; {$EXTERNALSYM PERCEIVEDFLAG_SOFTCODED} PERCEIVEDFLAG_SOFTCODED = $0001; {$EXTERNALSYM PERCEIVEDFLAG_HARDCODED} PERCEIVEDFLAG_HARDCODED = $0002; {$EXTERNALSYM PERCEIVEDFLAG_NATIVESUPPORT} PERCEIVEDFLAG_NATIVESUPPORT = $0004; {$EXTERNALSYM PERCEIVEDFLAG_GDIPLUS} PERCEIVEDFLAG_GDIPLUS = $0010; {$EXTERNALSYM PERCEIVEDFLAG_WMSDK} PERCEIVEDFLAG_WMSDK = $0020; {$EXTERNALSYM PERCEIVEDFLAG_ZIPFOLDER} PERCEIVEDFLAG_ZIPFOLDER = $0040; {$EXTERNALSYM AssocGetPerceivedType} function AssocGetPerceivedType(pszExt: PWideChar; out ptype: TPerceived; out pflag: TPerceivedFlag; ppszType: PPWideChar): HResult stdcall; // //=============== Stream Routines =================================== // {$EXTERNALSYM SHOpenRegStreamA} function SHOpenRegStreamA(hkey: HKEY; pszSubkey, pszValue: PAnsiChar; grfMode: DWORD): IStream; stdcall; {$EXTERNALSYM SHOpenRegStreamW} function SHOpenRegStreamW(hkey: HKEY; pszSubkey, pszValue: PWideChar; grfMode: DWORD): IStream; stdcall; {$EXTERNALSYM SHOpenRegStream} function SHOpenRegStream(hkey: HKEY; pszSubkey, pszValue: PTSTR; grfMode: DWORD): IStream; stdcall; {$EXTERNALSYM SHOpenRegStream2A} function SHOpenRegStream2A(hkey: HKEY; pszSubkey, pszValue: PAnsiChar; grfMode: DWORD): IStream; stdcall; {$EXTERNALSYM SHOpenRegStream2W} function SHOpenRegStream2W(hkey: HKEY; pszSubkey, pszValue: PWideChar; grfMode: DWORD): IStream; stdcall; {$EXTERNALSYM SHOpenRegStream2} function SHOpenRegStream2(hkey: HKEY; pszSubkey, pszValue: PTSTR; grfMode: DWORD): IStream; stdcall; {$EXTERNALSYM SHCreateStreamOnFileA} function SHCreateStreamOnFileA(pszFile: PAnsiChar; grfMode: DWORD; out ppstm: IStream): HResult; stdcall; {$EXTERNALSYM SHCreateStreamOnFileW} function SHCreateStreamOnFileW(pszFile: PWideChar; grfMode: DWORD; out ppstm: IStream): HResult; stdcall; {$EXTERNALSYM SHCreateStreamOnFile} function SHCreateStreamOnFile(pszFile: PTSTR; grfMode: DWORD; out ppstm: IStream): HResult; stdcall; {$EXTERNALSYM SHCreateStreamOnFileEx} function SHCreateStreamOnFileEx(pszFile: PWideChar; grfMode, dwAttributes: DWORD; fCreate: BOOL; pstmTemplate: IStream; out ppstm: IStream): HResult stdcall; // //=============== HTTP helper Routines =================================== // {$EXTERNALSYM GetAcceptLanguagesA} function GetAcceptLanguagesA(psz: PAnsiChar; var pcch: DWORD): HResult; stdcall; {$EXTERNALSYM GetAcceptLanguagesW} function GetAcceptLanguagesW(psz: PWideChar; var pcch: DWORD): HResult; stdcall; {$EXTERNALSYM GetAcceptLanguages} function GetAcceptLanguages(psz: PTSTR; var pcch: DWORD): HResult; stdcall; const {$EXTERNALSYM SHGVSPB_PERUSER} SHGVSPB_PERUSER = $00000001; // must have one of PERUSER or ALLUSERS {$EXTERNALSYM SHGVSPB_ALLUSERS} SHGVSPB_ALLUSERS = $00000002; {$EXTERNALSYM SHGVSPB_PERFOLDER} SHGVSPB_PERFOLDER = $00000004; // must have one of PERFOLDER ALLFOLDERS or INHERIT {$EXTERNALSYM SHGVSPB_ALLFOLDERS} SHGVSPB_ALLFOLDERS = $00000008; {$EXTERNALSYM SHGVSPB_INHERIT} SHGVSPB_INHERIT = $00000010; {$EXTERNALSYM SHGVSPB_ROAM} SHGVSPB_ROAM = $00000020; // modifies the above {$EXTERNALSYM SHGVSPB_NOAUTODEFAULTS} SHGVSPB_NOAUTODEFAULTS = $80000000; // turns off read delegation to more general property bags {$EXTERNALSYM SHGVSPB_FOLDER} SHGVSPB_FOLDER = SHGVSPB_PERUSER or SHGVSPB_PERFOLDER; {$EXTERNALSYM SHGVSPB_FOLDERNODEFAULTS} SHGVSPB_FOLDERNODEFAULTS = SHGVSPB_PERUSER or SHGVSPB_PERFOLDER or SHGVSPB_NOAUTODEFAULTS; {$EXTERNALSYM SHGVSPB_USERDEFAULTS} SHGVSPB_USERDEFAULTS = SHGVSPB_PERUSER or SHGVSPB_ALLFOLDERS; {$EXTERNALSYM SHGVSPB_GLOBALDEAFAULTS} SHGVSPB_GLOBALDEAFAULTS = SHGVSPB_ALLUSERS or SHGVSPB_ALLFOLDERS; {$EXTERNALSYM SHGetViewStatePropertyBag} function SHGetViewStatePropertyBag(pidl: PItemIDList; pszBagName: PWideChar; dwFlags: DWORD; riid: TIID; out ppv: Pointer): HResult; stdcall; // Shared memory apis {$EXTERNALSYM SHAllocShared} function SHAllocShared(pvData: Pointer; dwSize, dwProcessId: DWORD): THandle; stdcall; {$EXTERNALSYM SHFreeShared} function SHFreeShared(hData: THandle; dwProcessId: DWORD): BOOL; stdcall; {$EXTERNALSYM SHLockShared} function SHLockShared(hData: THandle; dwProcessId: DWORD): Pointer; stdcall; {$EXTERNALSYM SHUnlockShared} function SHUnlockShared(pvData: Pointer): BOOL; stdcall; // SHAutoComplete // hwndEdit - HWND of editbox, ComboBox or ComboBoxEx. // dwFlags - Flags to indicate what to AutoAppend or AutoSuggest for the editbox. // // WARNING: // Caller needs to have called CoInitialize() or OleInitialize() // and cannot call CoUninit/OleUninit until after // WM_DESTROY on hwndEdit. // // dwFlags values: const {$EXTERNALSYM SHACF_DEFAULT} SHACF_DEFAULT = $00000000; // Currently (SHACF_FILESYSTEM | SHACF_URLALL) {$EXTERNALSYM SHACF_FILESYSTEM} SHACF_FILESYSTEM = $00000001; // This includes the File System as well as the rest of the shell (Desktop\My Computer\Control Panel\) {$EXTERNALSYM SHACF_URLHISTORY} SHACF_URLHISTORY = $00000002; // URLs in the User's History {$EXTERNALSYM SHACF_URLMRU} SHACF_URLMRU = $00000004; // URLs in the User's Recently Used list. {$EXTERNALSYM SHACF_URLALL} SHACF_URLALL = SHACF_URLHISTORY or SHACF_URLMRU; {$EXTERNALSYM SHACF_USETAB} SHACF_USETAB = $00000008; // Use the tab to move thru the autocomplete possibilities instead of to the next dialog/window control. {$EXTERNALSYM SHACF_FILESYS_ONLY} SHACF_FILESYS_ONLY = $00000010; // This includes the File System {$EXTERNALSYM SHACF_FILESYS_DIRS} SHACF_FILESYS_DIRS = $00000020; // Same as SHACF_FILESYS_ONLY except it only includes directories, UNC servers, and UNC server shares. {$EXTERNALSYM SHACF_AUTOSUGGEST_FORCE_ON} SHACF_AUTOSUGGEST_FORCE_ON = $10000000; // Ignore the registry default and force the feature on. {$EXTERNALSYM SHACF_AUTOSUGGEST_FORCE_OFF} SHACF_AUTOSUGGEST_FORCE_OFF = $20000000; // Ignore the registry default and force the feature off. {$EXTERNALSYM SHACF_AUTOAPPEND_FORCE_ON} SHACF_AUTOAPPEND_FORCE_ON = $40000000; // Ignore the registry default and force the feature on. (Also know as AutoComplete) {$EXTERNALSYM SHACF_AUTOAPPEND_FORCE_OFF} SHACF_AUTOAPPEND_FORCE_OFF = $80000000; // Ignore the registry default and force the feature off. (Also know as AutoComplete) {$EXTERNALSYM SHAutoComplete} function SHAutoComplete(hwndEdit: HWND; dwFlags: DWORD): HResult; stdcall; {$EXTERNALSYM SHSetThreadRef} function SHSetThreadRef(punk: IUnknown): HResult; stdcall; {$EXTERNALSYM SHGetThreadRef} function SHGetThreadRef(out ppunk: IUnknown): HResult; stdcall; {$EXTERNALSYM SHSkipJunction} function SHSkipJunction(pbc: IBindCtx; var pclsid: TCLSID): BOOL; stdcall; {$EXTERNALSYM SHCreateThreadRef} function SHCreateThreadRef(var pcRef: Longint; out punk: IUnknown): HResult; stdcall; const {$EXTERNALSYM CTF_INSIST} CTF_INSIST = $00000001; // SHCreateThread() dwFlags - call pfnThreadProc synchronously if CreateThread() fails {$EXTERNALSYM CTF_THREAD_REF} CTF_THREAD_REF = $00000002; // hold a reference to the creating thread {$EXTERNALSYM CTF_PROCESS_REF} CTF_PROCESS_REF = $00000004; // hold a reference to the creating process {$EXTERNALSYM CTF_COINIT} CTF_COINIT = $00000008; // init COM for the created thread {$EXTERNALSYM CTF_FREELIBANDEXIT} CTF_FREELIBANDEXIT = $00000010; // hold a ref to the DLL and call FreeLibraryAndExitThread() when done {$EXTERNALSYM CTF_REF_COUNTED} CTF_REF_COUNTED = $00000020; // thread supports ref counting via SHGetThreadRef() or CTF_THREAD_REF so that child threads can keep this thread alive {$EXTERNALSYM CTF_WAIT_ALLOWCOM} CTF_WAIT_ALLOWCOM = $00000040; // while waiting for pfnCallback, allow COM marshaling to the blocked calling thread {$EXTERNALSYM SHCreateThread} function SHCreateThread(pfnThreadProc: TThreadStartRoutine; pData: Pointer; dwFlags: DWORD; pfnCallback: TThreadStartRoutine): BOOL; stdcall; {$EXTERNALSYM SHReleaseThreadRef} function SHReleaseThreadRef: HResult; stdcall; // release a CTF_THREAD_REF reference earlier than the return of pfnThreadProc // //====== GDI helper functions ================================================ // {$EXTERNALSYM SHCreateShellPalette} function SHCreateShellPalette(hdc: HDC): HPALETTE; stdcall; {$EXTERNALSYM ColorRGBToHLS} procedure ColorRGBToHLS(clrRGB: TColorRef; var pwHue, pwLuminance, pwSaturation: Word); stdcall; {$EXTERNALSYM ColorHLSToRGB} function ColorHLSToRGB(wHue, wLuminance, wSaturation: Word): TColorRef; stdcall; {$EXTERNALSYM ColorAdjustLuma} function ColorAdjustLuma(clrRGB: TColorRef; n: Integer; fScale: BOOL): TColorRef; stdcall; // //====== DllGetVersion ======================================================= // type PDLLVersionInfo = ^TDLLVersionInfo; {$EXTERNALSYM _DLLVERSIONINFO} _DLLVERSIONINFO = record cbSize: DWORD; dwMajorVersion: DWORD; // Major version dwMinorVersion: DWORD; // Minor version dwBuildNumber: DWORD; // Build number dwPlatformID: DWORD; // DLLVER_PLATFORM_* end; {$EXTERNALSYM DLLVERSIONINFO} DLLVERSIONINFO = _DLLVERSIONINFO; TDLLVersionInfo = _DLLVERSIONINFO; // Platform IDs for DLLVERSIONINFO const {$EXTERNALSYM DLLVER_PLATFORM_WINDOWS} DLLVER_PLATFORM_WINDOWS = $00000001; // Windows 95 {$EXTERNALSYM DLLVER_PLATFORM_NT} DLLVER_PLATFORM_NT = $00000002; // Windows NT type PDLLVersionInfo2 = ^TDLLVersionInfo2; {$EXTERNALSYM _DLLVERSIONINFO2} _DLLVERSIONINFO2 = record info1: TDLLVersionInfo; dwFlags: DWORD; // No flags currently defined ullVersion: Int64; // Encoded as: // Major 0xFFFF 0000 0000 0000 // Minor 0x0000 FFFF 0000 0000 // Build 0x0000 0000 FFFF 0000 // QFE 0x0000 0000 0000 FFFF end; {$EXTERNALSYM DLLVERSIONINFO2} DLLVERSIONINFO2 = _DLLVERSIONINFO2; TDLLVersionInfo2 = _DLLVERSIONINFO2; const {$EXTERNALSYM DLLVER_MAJOR_MASK} DLLVER_MAJOR_MASK = $FFFF000000000000; {$EXTERNALSYM DLLVER_MINOR_MASK} DLLVER_MINOR_MASK = $0000FFFF00000000; {$EXTERNALSYM DLLVER_BUILD_MASK} DLLVER_BUILD_MASK = $00000000FFFF0000; {$EXTERNALSYM DLLVER_QFE_MASK} DLLVER_QFE_MASK = $000000000000FFFF; {$EXTERNALSYM MakeDLLVerULL} function MakeDLLVerULL(major, minor, build, qfe: Word): Int64; type // The caller should always GetProcAddress("DllGetVersion"), not // implicitly link to it. TDLLGetVersionProc = function(var DLLVersionInfo: TDLLVersionInfo): HResult stdcall; // DllInstall (to be implemented by self-installing DLLs) TDllInstall = function(bInstall: BOOL; pszCmdLine: PWideChar): HResult stdcall; {$EXTERNALSYM IsInternetESCEnabled} function IsInternetESCEnabled: BOOL stdcall; {$IFDEF WINXP_UP} //stOrM!------------------------------------------------------------------------------------------------------------------------------------------------ const MB_TIMEDOUT = 32000; function MessageBoxTimeOut( hWnd: HWND; lpText: PTSTR; lpCaption: PTSTR; uType: UINT; wLanguageId: WORD; dwMilliseconds: DWORD): Integer; stdcall; function MessageBoxTimeOutA( hWnd: HWND; lpText: PAnsiChar; lpCaption: PAnsiChar; uType: UINT; wLanguageId: WORD; dwMilliseconds: DWORD): Integer; stdcall; function MessageBoxTimeOutW( hWnd: HWND; lpText: PWideChar; lpCaption: PWideChar; uType: UINT; wLanguageId: WORD; dwMilliseconds: DWORD): Integer; stdcall; //-------------------------------------------------------------------------------------------------------------------------------------------stOrM! {$ENDIF WINXP_UP} //stOrM!------------------------------------------------------------------------------------------------------------------------------------------ {$IFDEF WIN2000_UP} function MessageBoxCheck( hWnd: HWND; lpText: PTSTR; lpCaption: PTSTR; uType: UINT; Default: Integer; RegVal: PTSTR) : Integer; stdcall; function MessageBoxCheckA( hWnd: HWND; lpText: PAnsiChar; lpCaption: PAnsiChar; uType: UINT; Default: Integer; RegVal: PAnsiChar) : Integer; stdcall; function MessageBoxCheckW( hWnd: HWND; lpText: PWideChar; lpCaption: PWideChar; uType: UINT; Default: Integer; RegVal: PWideChar) : Integer; stdcall; {$ENDIF WIN2000_UP} //------------------------------------------------------------------------------------------------------------------------------------------stOrM! {$ENDIF JWA_IMPLEMENTATIONSECTION} {$IFNDEF JWA_OMIT_SECTIONS} implementation uses JwaWinDLLNames; {$ENDIF JWA_OMIT_SECTIONS} {$IFNDEF JWA_INCLUDEMODE} const {$IFDEF UNICODE} AWSuffix = 'W'; {$ELSE} AWSuffix = 'A'; {$ENDIF UNICODE} {$ENDIF JWA_INCLUDEMODE} {$IFNDEF JWA_INTERFACESECTION} // Macro functions function StrIntlEqNA(s1, s2: PAnsiChar; nChar: Integer): BOOL; begin Result := StrIsIntlEqualA(True, s1, s2, nChar); end; function StrIntlEqNW(s1, s2: PWideChar; nChar: Integer): BOOL; begin Result := StrIsIntlEqualW(True, s1, s2, nChar); end; function StrIntlEqN(s1, s2: PTSTR; nChar: Integer): BOOL; begin Result := {$IFDEF UNICODE}StrIsIntlEqualW{$ELSE}StrIsIntlEqualA{$ENDIF}(True, s1, s2, nChar); end; function StrIntlEqNIA(s1, s2: PAnsiChar; nChar: Integer): BOOL; begin Result := StrIsIntlEqualA(False, s1, s2, nChar); end; function StrIntlEqNIW(s1, s2: PWideChar; nChar: Integer): BOOL; begin Result := StrIsIntlEqualW(False, s1, s2, nChar); end; function StrIntlEqNI(s1, s2: PTSTR; nChar: Integer): BOOL; begin Result := {$IFDEF UNICODE}StrIsIntlEqualW{$ELSE}StrIsIntlEqualA{$ENDIF}(False, s1, s2, nChar); end; function IntlStrEqNA(s1, s2: PAnsiChar; nChar: Integer): BOOL; begin Result := IntlStrEqWorkerA(True, s1, s2, nChar); end; function IntlStrEqNW(s1, s2: PWideChar; nChar: Integer): BOOL; begin Result := IntlStrEqWorkerW(True, s1, s2, nChar); end; function IntlStrEqN(s1, s2: PTSTR; nChar: Integer): BOOL; begin Result := {$IFDEF UNICODE}IntlStrEqWorkerW{$ELSE}IntlStrEqWorkerA{$ENDIF}(True, s1, s2, nChar); end; function IntlStrEqNIA(s1, s2: PAnsiChar; nChar: Integer): BOOL; begin Result := IntlStrEqWorkerA(False, s1, s2, nChar); end; function IntlStrEqNIW(s1, s2: PWideChar; nChar: Integer): BOOL; begin Result := IntlStrEqWorkerW(False, s1, s2, nChar); end; function IntlStrEqNI(s1, s2: PTSTR; nChar: Integer): BOOL; begin Result := {$IFDEF UNICODE}IntlStrEqWorkerW{$ELSE}IntlStrEqWorkerA{$ENDIF}(False, s1, s2, nChar); end; function PathIsHTMLFileA(pszPath: PAnsiChar): BOOL; begin Result := PathIsContentTypeA(pszPath, SZ_CONTENTTYPE_HTMLA); end; function PathIsHTMLFileW(pszPath: PWideChar): BOOL; begin Result := PathIsContentTypeW(pszPath, SZ_CONTENTTYPE_HTMLW); end; function PathIsHTMLFile(pszPath: PTSTR): BOOL; begin Result := PathIsContentType(pszPath, SZ_CONTENTTYPE_HTML); end; function UrlIsFileUrlA(pszURL: PAnsiChar): BOOL; begin Result := UrlIsA(pszURL, URLIS_FILEURL); end; function UrlIsFileUrlW(pszURL: PWideChar): BOOL; begin Result := UrlIsW(pszURL, URLIS_FILEURL); end; function UrlIsFileUrl(pszURL: PTSTR): BOOL; begin Result := {$IFDEF UNICODE}UrlIsW{$ELSE}UrlIsA{$ENDIF}(pszURL, URLIS_FILEURL); end; function UrlEscapeSpaces(pszUrl, pszEscaped: PTSTR; var pcchEscaped: DWORD): HResult; begin Result := UrlCanonicalize(pszUrl, pszEscaped, pcchEscaped, URL_ESCAPE_SPACES_ONLY or URL_DONT_ESCAPE_EXTRA_INFO); end; function UrlUnescapeInPlace(pszUrl: PTSTR; dwFlags: DWORD): HResult; begin Result := UrlUnescape(pszUrl, nil, nil, dwFlags or URL_UNESCAPE_INPLACE); end; function MakeDLLVerULL(major, minor, build, qfe: Word): Int64; begin Result := Int64(major) shl 48 or Int64(minor) shl 32 or Int64(build) shl 16 or Int64(qfe); end; {$IFDEF DELPHI6_UP} //only available as static function wnsprintfA; external shlwapidll name 'wnsprintfA'; function wnsprintfW; external shlwapidll name 'wnsprintfW'; function wnsprintf; external shlwapidll name 'wnsprintf'+AWSuffix; {$ENDIF DELPHI6_UP} {$IFNDEF DYNAMIC_LINK} function StrChrA; external shlwapidll name 'StrChrA'; function StrChrW; external shlwapidll name 'StrChrW'; function StrChr; external shlwapidll name 'StrChr'+AWSuffix; function StrChrIA; external shlwapidll name 'StrChrIA'; function StrChrIW; external shlwapidll name 'StrChrIW'; function StrChrI; external shlwapidll name 'StrChrI'+AWSuffix; function StrCmpNA; external shlwapidll name 'StrCmpNA'; function StrCmpNW; external shlwapidll name 'StrCmpNW'; function StrCmpN; external shlwapidll name 'StrCmpN'+AWSuffix; function StrCmpNIA; external shlwapidll name 'StrCmpNIA'; function StrCmpNIW; external shlwapidll name 'StrCmpNIW'; function StrCmpNI; external shlwapidll name 'StrCmpNI'+AWSuffix; function StrCSpnA; external shlwapidll name 'StrCSpnA'; function StrCSpnW; external shlwapidll name 'StrCSpnW'; function StrCSpn; external shlwapidll name 'StrCSpn'+AWSuffix; function StrCSpnIA; external shlwapidll name 'StrCSpnIA'; function StrCSpnIW; external shlwapidll name 'StrCSpnIW'; function StrCSpnI; external shlwapidll name 'StrCSpnI'+AWSuffix; function StrDupA; external shlwapidll name 'StrDupA'; function StrDupW; external shlwapidll name 'StrDupW'; function StrDup; external shlwapidll name 'StrDup'+AWSuffix; function StrFormatByteSizeA; external shlwapidll name 'StrFormatByteSizeA'; function StrFormatByteSize64A; external shlwapidll name 'StrFormatByteSize64A'; function StrFormatByteSizeW; external shlwapidll name 'StrFormatByteSizeW'; function StrFormatByteSize; external shlwapidll name 'StrFormatByteSize'+AWSuffix; function StrFormatByteSize64; external shlwapidll name 'StrFormatByteSize64A'; function StrFormatKBSizeW; external shlwapidll name 'StrFormatKBSizeW'; function StrFormatKBSizeA; external shlwapidll name 'StrFormatKBSizeA'; function StrFormatKBSize; external shlwapidll name 'StrFormatKBSize'+AWSuffix; function StrFromTimeIntervalA; external shlwapidll name 'StrFromTimeIntervalA'; function StrFromTimeIntervalW; external shlwapidll name 'StrFromTimeIntervalW'; function StrFromTimeInterval; external shlwapidll name 'StrFromTimeInterval'+AWSuffix; function StrIsIntlEqualA; external shlwapidll name 'StrIsIntlEqualA'; function StrIsIntlEqualW; external shlwapidll name 'StrIsIntlEqualW'; function StrIsIntlEqual; external shlwapidll name 'StrIsIntlEqual'+AWSuffix; function StrNCatA; external shlwapidll name 'StrNCatA'; function StrNCatW; external shlwapidll name 'StrNCatW'; function StrNCat; external shlwapidll name 'StrNCat'+AWSuffix; function StrPBrkA; external shlwapidll name 'StrPBrkA'; function StrPBrkW; external shlwapidll name 'StrPBrkW'; function StrPBrk; external shlwapidll name 'StrPBrk'+AWSuffix; function StrRChrA; external shlwapidll name 'StrRChrA'; function StrRChrW; external shlwapidll name 'StrRChrW'; function StrRChr; external shlwapidll name 'StrRChr'+AWSuffix; function StrRChrIA; external shlwapidll name 'StrRChrIA'; function StrRChrIW; external shlwapidll name 'StrRChrIW'; function StrRChrI; external shlwapidll name 'StrRChrI'+AWSuffix; function StrRStrIA; external shlwapidll name 'StrRStrIA'; function StrRStrIW; external shlwapidll name 'StrRStrIW'; function StrRStrI; external shlwapidll name 'StrRStrI'+AWSuffix; function StrSpnA; external shlwapidll name 'StrSpnA'; function StrSpnW; external shlwapidll name 'StrSpnW'; function StrSpn; external shlwapidll name 'StrSpn'+AWSuffix; function StrStrA; external shlwapidll name 'StrStrA'; function StrStrW; external shlwapidll name 'StrStrW'; function StrStr; external shlwapidll name 'StrStr'+AWSuffix; function StrStrIA; external shlwapidll name 'StrStrIA'; function StrStrIW; external shlwapidll name 'StrStrIW'; function StrStrI; external shlwapidll name 'StrStrI'+AWSuffix; function StrToIntA; external shlwapidll name 'StrToIntA'; function StrToIntW; external shlwapidll name 'StrToIntW'; function StrToInt; external shlwapidll name 'StrToInt'+AWSuffix; function StrToIntExA; external shlwapidll name 'StrToIntExA'; function StrToIntExW; external shlwapidll name 'StrToIntExW'; function StrToIntEx; external shlwapidll name 'StrToIntEx'+AWSuffix; function StrTrimA; external shlwapidll name 'StrTrimA'; function StrTrimW; external shlwapidll name 'StrTrimW'; function StrTrim; external shlwapidll name 'StrTrim'+AWSuffix; function StrCatW; external shlwapidll name 'StrCatW'; function StrCmpW; external shlwapidll name 'StrCmpW'; function StrCmpIW; external shlwapidll name 'StrCmpIW'; function StrCpyW; external shlwapidll name 'StrCpyW'; function StrCpyNW; external shlwapidll name 'StrCpyNW'; function StrCatBuffW; external shlwapidll name 'StrCatBuffW'; function StrCatBuffA; external shlwapidll name 'StrCatBuffA'; function StrCatBuff; external shlwapidll name 'StrCatBuff'+AWSuffix; function ChrCmpIA; external shlwapidll name 'ChrCmpIA'; function ChrCmpIW; external shlwapidll name 'ChrCmpIW'; function ChrCmpI; external shlwapidll name 'ChrCmpI'+AWSuffix; function wvnsprintfA; external shlwapidll name 'wvnsprintfA'; function wvnsprintfW; external shlwapidll name 'wvnsprintfW'; function wvnsprintf; external shlwapidll name 'wvnsprintf'+AWSuffix; function StrRetToStrA; external shlwapidll name 'StrRetToStrA'; function StrRetToStrW; external shlwapidll name 'StrRetToStrW'; function StrRetToStr; external shlwapidll name 'StrRetToStr'+AWSuffix; function StrRetToBufA; external shlwapidll name 'StrRetToBufA'; function StrRetToBufW; external shlwapidll name 'StrRetToBufW'; function StrRetToBuf; external shlwapidll name 'StrRetToBuf'+AWSuffix; function StrRetToBSTR; external shlwapidll name 'StrRetToBSTR'; function SHStrDupA; external shlwapidll name 'SHStrDupA'; function SHStrDupW; external shlwapidll name 'SHStrDupW'; function SHStrDup; external shlwapidll name 'SHStrDup'+AWSuffix; function StrCmpLogicalW; external shlwapidll name 'StrCmpLogicalW'; function StrCatChainW; external shlwapidll name 'StrCatChainW'; function SHLoadIndirectString; external shlwapidll name 'SHLoadIndirectString'; function IntlStrEqWorkerA; external shlwapidll name 'IntlStrEqWorkerA'; function IntlStrEqWorkerW; external shlwapidll name 'IntlStrEqWorkerW'; function StrToLong; external shlwapidll name 'StrToInt'+AWSuffix; function StrCatA; external kernel32dll name 'lstrcatA'; function StrCmpA; external kernel32dll name 'lstrcmpA'; function StrCmpIA; external kernel32dll name 'lstrcmpiA'; function StrCpyA; external kernel32dll name 'lstrcpyA'; function StrCpyNA; external kernel32dll name 'lstrcpynA'; //function StrNCmp; external shlwapidll name 'lstrcmp'+AWSuffix; //function StrNCmpI; external shlwapidll name 'lstrcmpi'+AWSuffix; function StrNCpy; external kernel32dll name 'lstrcpyn'+AWSuffix; //function StrCatN; external shlwapidll name 'lStrNCat'+AWSuffix; function StrCat; external kernel32dll name 'lstrcat'+AWSuffix; function StrCmp; external kernel32dll name 'lstrcmp'+AWSuffix; function StrCmpI; external kernel32dll name 'lstrcmpi'+AWSuffix; function StrCpy; external kernel32dll name 'lstrcpy'+AWSuffix; function StrCpyN; external kernel32dll name 'lstrcpyn'+AWSuffix; function PathAddBackslashA; external shlwapidll name 'PathAddBackslashA'; function PathAddBackslashW; external shlwapidll name 'PathAddBackslashW'; function PathAddBackslash; external shlwapidll name 'PathAddBackslash'+AWSuffix; function PathAddExtensionA; external shlwapidll name 'PathAddExtensionA'; function PathAddExtensionW; external shlwapidll name 'PathAddExtensionW'; function PathAddExtension; external shlwapidll name 'PathAddExtension'+AWSuffix; function PathAppendA; external shlwapidll name 'PathAppendA'; function PathAppendW; external shlwapidll name 'PathAppendW'; function PathAppend; external shlwapidll name 'PathAppend'+AWSuffix; function PathBuildRootA; external shlwapidll name 'PathBuildRootA'; function PathBuildRootW; external shlwapidll name 'PathBuildRootW'; function PathBuildRoot; external shlwapidll name 'PathBuildRoot'+AWSuffix; function PathCanonicalizeA; external shlwapidll name 'PathCanonicalizeA'; function PathCanonicalizeW; external shlwapidll name 'PathCanonicalizeW'; function PathCanonicalize; external shlwapidll name 'PathCanonicalize'+AWSuffix; function PathCombineA; external shlwapidll name 'PathCombineA'; function PathCombineW; external shlwapidll name 'PathCombineW'; function PathCombine; external shlwapidll name 'PathCombine'+AWSuffix; function PathCompactPathA; external shlwapidll name 'PathCompactPathA'; function PathCompactPathW; external shlwapidll name 'PathCompactPathW'; function PathCompactPath; external shlwapidll name 'PathCompactPath'+AWSuffix; function PathCompactPathExA; external shlwapidll name 'PathCompactPathExA'; function PathCompactPathExW; external shlwapidll name 'PathCompactPathExW'; function PathCompactPathEx; external shlwapidll name 'PathCompactPathEx'+AWSuffix; function PathCommonPrefixA; external shlwapidll name 'PathCommonPrefixA'; function PathCommonPrefixW; external shlwapidll name 'PathCommonPrefixW'; function PathCommonPrefix; external shlwapidll name 'PathCommonPrefix'+AWSuffix; function PathFileExistsA; external shlwapidll name 'PathFileExistsA'; function PathFileExistsW; external shlwapidll name 'PathFileExistsW'; function PathFileExists; external shlwapidll name 'PathFileExists'+AWSuffix; function PathFindExtensionA; external shlwapidll name 'PathFindExtensionA'; function PathFindExtensionW; external shlwapidll name 'PathFindExtensionW'; function PathFindExtension; external shlwapidll name 'PathFindExtension'+AWSuffix; function PathFindFileNameA; external shlwapidll name 'PathFindFileNameA'; function PathFindFileNameW; external shlwapidll name 'PathFindFileNameW'; function PathFindFileName; external shlwapidll name 'PathFindFileName'+AWSuffix; function PathFindNextComponentA; external shlwapidll name 'PathFindNextComponentA'; function PathFindNextComponentW; external shlwapidll name 'PathFindNextComponentW'; function PathFindNextComponent; external shlwapidll name 'PathFindNextComponent'+AWSuffix; function PathFindOnPathA; external shlwapidll name 'PathFindOnPathA'; function PathFindOnPathW; external shlwapidll name 'PathFindOnPathW'; function PathFindOnPath; external shlwapidll name 'PathFindOnPath'+AWSuffix; function PathGetArgsA; external shlwapidll name 'PathGetArgsA'; function PathGetArgsW; external shlwapidll name 'PathGetArgsW'; function PathGetArgs; external shlwapidll name 'PathGetArgs'+AWSuffix; function PathFindSuffixArrayA; external shlwapidll name 'PathFindSuffixArrayA'; function PathFindSuffixArrayW; external shlwapidll name 'PathFindSuffixArrayW'; function PathFindSuffixArray; external shlwapidll name 'PathFindSuffixArray'+AWSuffix; function PathIsLFNFileSpecA; external shlwapidll name 'PathIsLFNFileSpecA'; function PathIsLFNFileSpecW; external shlwapidll name 'PathIsLFNFileSpecW'; function PathIsLFNFileSpec; external shlwapidll name 'PathIsLFNFileSpec'+AWSuffix; function PathGetCharTypeA; external shlwapidll name 'PathGetCharTypeA'; function PathGetCharTypeW; external shlwapidll name 'PathGetCharTypeW'; function PathGetCharType; external shlwapidll name 'PathGetCharType'+AWSuffix; function PathGetDriveNumberA; external shlwapidll name 'PathGetDriveNumberA'; function PathGetDriveNumberW; external shlwapidll name 'PathGetDriveNumberW'; function PathGetDriveNumber; external shlwapidll name 'PathGetDriveNumber'+AWSuffix; function PathIsDirectoryA; external shlwapidll name 'PathIsDirectoryA'; function PathIsDirectoryW; external shlwapidll name 'PathIsDirectoryW'; function PathIsDirectory; external shlwapidll name 'PathIsDirectory'+AWSuffix; function PathIsDirectoryEmptyA; external shlwapidll name 'PathIsDirectoryEmptyA'; function PathIsDirectoryEmptyW; external shlwapidll name 'PathIsDirectoryEmptyW'; function PathIsDirectoryEmpty; external shlwapidll name 'PathIsDirectoryEmpty'+AWSuffix; function PathIsFileSpecA; external shlwapidll name 'PathIsFileSpecA'; function PathIsFileSpecW; external shlwapidll name 'PathIsFileSpecW'; function PathIsFileSpec; external shlwapidll name 'PathIsFileSpec'+AWSuffix; function PathIsPrefixA; external shlwapidll name 'PathIsPrefixA'; function PathIsPrefixW; external shlwapidll name 'PathIsPrefixW'; function PathIsPrefix; external shlwapidll name 'PathIsPrefix'+AWSuffix; function PathIsRelativeA; external shlwapidll name 'PathIsRelativeA'; function PathIsRelativeW; external shlwapidll name 'PathIsRelativeW'; function PathIsRelative; external shlwapidll name 'PathIsRelative'+AWSuffix; function PathIsRootA; external shlwapidll name 'PathIsRootA'; function PathIsRootW; external shlwapidll name 'PathIsRootW'; function PathIsRoot; external shlwapidll name 'PathIsRoot'+AWSuffix; function PathIsSameRootA; external shlwapidll name 'PathIsSameRootA'; function PathIsSameRootW; external shlwapidll name 'PathIsSameRootW'; function PathIsSameRoot; external shlwapidll name 'PathIsSameRoot'+AWSuffix; function PathIsUNCA; external shlwapidll name 'PathIsUNCA'; function PathIsUNCW; external shlwapidll name 'PathIsUNCW'; function PathIsUNC; external shlwapidll name 'PathIsUNC'+AWSuffix; function PathIsNetworkPathA; external shlwapidll name 'PathIsNetworkPathA'; function PathIsNetworkPathW; external shlwapidll name 'PathIsNetworkPathW'; function PathIsNetworkPath; external shlwapidll name 'PathIsNetworkPath'+AWSuffix; function PathIsUNCServerA; external shlwapidll name 'PathIsUNCServerA'; function PathIsUNCServerW; external shlwapidll name 'PathIsUNCServerW'; function PathIsUNCServer; external shlwapidll name 'PathIsUNCServer'+AWSuffix; function PathIsUNCServerShareA; external shlwapidll name 'PathIsUNCServerShareA'; function PathIsUNCServerShareW; external shlwapidll name 'PathIsUNCServerShareW'; function PathIsUNCServerShare; external shlwapidll name 'PathIsUNCServerShare'+AWSuffix; function PathIsContentTypeA; external shlwapidll name 'PathIsContentTypeA'; function PathIsContentTypeW; external shlwapidll name 'PathIsContentTypeW'; function PathIsContentType; external shlwapidll name 'PathIsContentType'+AWSuffix; function PathIsURLA; external shlwapidll name 'PathIsURLA'; function PathIsURLW; external shlwapidll name 'PathIsURLW'; function PathIsURL; external shlwapidll name 'PathIsURL'+AWSuffix; function PathMakePrettyA; external shlwapidll name 'PathMakePrettyA'; function PathMakePrettyW; external shlwapidll name 'PathMakePrettyW'; function PathMakePretty; external shlwapidll name 'PathMakePretty'+AWSuffix; function PathMatchSpecA; external shlwapidll name 'PathMatchSpecA'; function PathMatchSpecW; external shlwapidll name 'PathMatchSpecW'; function PathMatchSpec; external shlwapidll name 'PathMatchSpec'+AWSuffix; function PathParseIconLocationA; external shlwapidll name 'PathParseIconLocationA'; function PathParseIconLocationW; external shlwapidll name 'PathParseIconLocationW'; function PathParseIconLocation; external shlwapidll name 'PathParseIconLocation'+AWSuffix; procedure PathQuoteSpacesA; external shlwapidll name 'PathQuoteSpacesA'; procedure PathQuoteSpacesW; external shlwapidll name 'PathQuoteSpacesW'; procedure PathQuoteSpaces; external shlwapidll name 'PathQuoteSpaces'+AWSuffix; function PathRelativePathToA; external shlwapidll name 'PathRelativePathToA'; function PathRelativePathToW; external shlwapidll name 'PathRelativePathToW'; function PathRelativePathTo; external shlwapidll name 'PathRelativePathTo'+AWSuffix; procedure PathRemoveArgsA; external shlwapidll name 'PathRemoveArgsA'; procedure PathRemoveArgsW; external shlwapidll name 'PathRemoveArgsW'; procedure PathRemoveArgs; external shlwapidll name 'PathRemoveArgs'+AWSuffix; function PathRemoveBackslashA; external shlwapidll name 'PathRemoveBackslashA'; function PathRemoveBackslashW; external shlwapidll name 'PathRemoveBackslashW'; function PathRemoveBackslash; external shlwapidll name 'PathRemoveBackslash'+AWSuffix; procedure PathRemoveBlanksA; external shlwapidll name 'PathRemoveBlanksA'; procedure PathRemoveBlanksW; external shlwapidll name 'PathRemoveBlanksW'; procedure PathRemoveBlanks; external shlwapidll name 'PathRemoveBlanks'+AWSuffix; procedure PathRemoveExtensionA; external shlwapidll name 'PathRemoveExtensionA'; procedure PathRemoveExtensionW; external shlwapidll name 'PathRemoveExtensionW'; procedure PathRemoveExtension; external shlwapidll name 'PathRemoveExtension'+AWSuffix; function PathRemoveFileSpecA; external shlwapidll name 'PathRemoveFileSpecA'; function PathRemoveFileSpecW; external shlwapidll name 'PathRemoveFileSpecW'; function PathRemoveFileSpec; external shlwapidll name 'PathRemoveFileSpec'+AWSuffix; function PathRenameExtensionA; external shlwapidll name 'PathRenameExtensionA'; function PathRenameExtensionW; external shlwapidll name 'PathRenameExtensionW'; function PathRenameExtension; external shlwapidll name 'PathRenameExtension'+AWSuffix; function PathSearchAndQualifyA; external shlwapidll name 'PathSearchAndQualifyA'; function PathSearchAndQualifyW; external shlwapidll name 'PathSearchAndQualifyW'; function PathSearchAndQualify; external shlwapidll name 'PathSearchAndQualify'+AWSuffix; procedure PathSetDlgItemPathA; external shlwapidll name 'PathSetDlgItemPathA'; procedure PathSetDlgItemPathW; external shlwapidll name 'PathSetDlgItemPathW'; procedure PathSetDlgItemPath; external shlwapidll name 'PathSetDlgItemPath'+AWSuffix; function PathSkipRootA; external shlwapidll name 'PathSkipRootA'; function PathSkipRootW; external shlwapidll name 'PathSkipRootW'; function PathSkipRoot; external shlwapidll name 'PathSkipRoot'+AWSuffix; procedure PathStripPathA; external shlwapidll name 'PathStripPathA'; procedure PathStripPathW; external shlwapidll name 'PathStripPathW'; procedure PathStripPath; external shlwapidll name 'PathStripPath'+AWSuffix; function PathStripToRootA; external shlwapidll name 'PathStripToRootA'; function PathStripToRootW; external shlwapidll name 'PathStripToRootW'; function PathStripToRoot; external shlwapidll name 'PathStripToRoot'+AWSuffix; procedure PathUnquoteSpacesA; external shlwapidll name 'PathUnquoteSpacesA'; procedure PathUnquoteSpacesW; external shlwapidll name 'PathUnquoteSpacesW'; procedure PathUnquoteSpaces; external shlwapidll name 'PathUnquoteSpaces'+AWSuffix; function PathMakeSystemFolderA; external shlwapidll name 'PathMakeSystemFolderA'; function PathMakeSystemFolderW; external shlwapidll name 'PathMakeSystemFolderW'; function PathMakeSystemFolder; external shlwapidll name 'PathMakeSystemFolder'+AWSuffix; function PathUnmakeSystemFolderA; external shlwapidll name 'PathUnmakeSystemFolderA'; function PathUnmakeSystemFolderW; external shlwapidll name 'PathUnmakeSystemFolderW'; function PathUnmakeSystemFolder; external shlwapidll name 'PathUnmakeSystemFolder'+AWSuffix; function PathIsSystemFolderA; external shlwapidll name 'PathIsSystemFolderA'; function PathIsSystemFolderW; external shlwapidll name 'PathIsSystemFolderW'; function PathIsSystemFolder; external shlwapidll name 'PathIsSystemFolder'+AWSuffix; procedure PathUndecorateA; external shlwapidll name 'PathUndecorateA'; procedure PathUndecorateW; external shlwapidll name 'PathUndecorateW'; procedure PathUndecorate; external shlwapidll name 'PathUndecorate'+AWSuffix; function PathUnExpandEnvStringsA; external shlwapidll name 'PathUnExpandEnvStringsA'; function PathUnExpandEnvStringsW; external shlwapidll name 'PathUnExpandEnvStringsW'; function PathUnExpandEnvStrings; external shlwapidll name 'PathUnExpandEnvStrings'+AWSuffix; function UrlCompareA; external shlwapidll name 'UrlCompareA'; function UrlCompareW; external shlwapidll name 'UrlCompareW'; function UrlCompare; external shlwapidll name 'UrlCompare'+AWSuffix; function UrlCombineA; external shlwapidll name 'UrlCombineA'; function UrlCombineW; external shlwapidll name 'UrlCombineW'; function UrlCombine; external shlwapidll name 'UrlCombine'+AWSuffix; function UrlCanonicalizeA; external shlwapidll name 'UrlCanonicalizeA'; function UrlCanonicalizeW; external shlwapidll name 'UrlCanonicalizeW'; function UrlCanonicalize; external shlwapidll name 'UrlCanonicalize'+AWSuffix; function UrlIsOpaqueA; external shlwapidll name 'UrlIsOpaqueA'; function UrlIsOpaqueW; external shlwapidll name 'UrlIsOpaqueW'; function UrlIsOpaque; external shlwapidll name 'UrlIsOpaque'+AWSuffix; function UrlIsNoHistoryA; external shlwapidll name 'UrlIsNoHistoryA'; function UrlIsNoHistoryW; external shlwapidll name 'UrlIsNoHistoryW'; function UrlIsNoHistory; external shlwapidll name 'UrlIsNoHistory'+AWSuffix; function UrlIsA; external shlwapidll name 'UrlIsA'; function UrlIsW; external shlwapidll name 'UrlIsW'; function UrlIs; external shlwapidll name 'UrlIs'+AWSuffix; function UrlGetLocationA; external shlwapidll name 'UrlGetLocationA'; function UrlGetLocationW; external shlwapidll name 'UrlGetLocationW'; function UrlGetLocation; external shlwapidll name 'UrlGetLocation'+AWSuffix; function UrlUnescapeA; external shlwapidll name 'UrlUnescapeA'; function UrlUnescapeW; external shlwapidll name 'UrlUnescapeW'; function UrlUnescape; external shlwapidll name 'UrlUnescape'+AWSuffix; function UrlEscapeA; external shlwapidll name 'UrlEscapeA'; function UrlEscapeW; external shlwapidll name 'UrlEscapeW'; function UrlEscape; external shlwapidll name 'UrlEscape'+AWSuffix; function UrlCreateFromPathA; external shlwapidll name 'UrlCreateFromPathA'; function UrlCreateFromPathW; external shlwapidll name 'UrlCreateFromPathW'; function UrlCreateFromPath; external shlwapidll name 'UrlCreateFromPath'+AWSuffix; function PathCreateFromUrlA; external shlwapidll name 'PathCreateFromUrlA'; function PathCreateFromUrlW; external shlwapidll name 'PathCreateFromUrlW'; function PathCreateFromUrl; external shlwapidll name 'PathCreateFromUrl'+AWSuffix; function UrlHashA; external shlwapidll name 'UrlHashA'; function UrlHashW; external shlwapidll name 'UrlHashW'; function UrlHash; external shlwapidll name 'UrlHash'+AWSuffix; function UrlGetPartW; external shlwapidll name 'UrlGetPartW'; function UrlGetPartA; external shlwapidll name 'UrlGetPartA'; function UrlGetPart; external shlwapidll name 'UrlGetPart'+AWSuffix; function UrlApplySchemeA; external shlwapidll name 'UrlApplySchemeA'; function UrlApplySchemeW; external shlwapidll name 'UrlApplySchemeW'; function UrlApplyScheme; external shlwapidll name 'UrlApplyScheme'+AWSuffix; function HashData; external shlwapidll name 'HashData'; function SHDeleteEmptyKeyA; external shlwapidll name 'SHDeleteEmptyKeyA'; function SHDeleteEmptyKeyW; external shlwapidll name 'SHDeleteEmptyKeyW'; function SHDeleteEmptyKey; external shlwapidll name 'SHDeleteEmptyKey'+AWSuffix; function SHDeleteKeyA; external shlwapidll name 'SHDeleteKeyA'; function SHDeleteKeyW; external shlwapidll name 'SHDeleteKeyW'; function SHDeleteKey; external shlwapidll name 'SHDeleteKey'+AWSuffix; function SHRegDuplicateHKey; external shlwapidll name 'SHRegDuplicateHKey'; function SHDeleteValueA; external shlwapidll name 'SHDeleteValueA'; function SHDeleteValueW; external shlwapidll name 'SHDeleteValueW'; function SHDeleteValue; external shlwapidll name 'SHDeleteValue'+AWSuffix; function SHGetValueA; external shlwapidll name 'SHGetValueA'; function SHGetValueW; external shlwapidll name 'SHGetValueW'; function SHGetValue; external shlwapidll name 'SHGetValue'+AWSuffix; function SHSetValueA; external shlwapidll name 'SHSetValueA'; function SHSetValueW; external shlwapidll name 'SHSetValueW'; function SHSetValue; external shlwapidll name 'SHSetValue'+AWSuffix; function SHQueryValueExA; external shlwapidll name 'SHQueryValueExA'; function SHQueryValueExW; external shlwapidll name 'SHQueryValueExW'; function SHQueryValueEx; external shlwapidll name 'SHQueryValueEx'+AWSuffix; function SHEnumKeyExA; external shlwapidll name 'SHEnumKeyExA'; function SHEnumKeyExW; external shlwapidll name 'SHEnumKeyExW'; function SHEnumKeyEx; external shlwapidll name 'SHEnumKeyEx'+AWSuffix; function SHEnumValueA; external shlwapidll name 'SHEnumValueA'; function SHEnumValueW; external shlwapidll name 'SHEnumValueW'; function SHEnumValue; external shlwapidll name 'SHEnumValue'+AWSuffix; function SHQueryInfoKeyA; external shlwapidll name 'SHQueryInfoKeyA'; function SHQueryInfoKeyW; external shlwapidll name 'SHQueryInfoKeyW'; function SHQueryInfoKey; external shlwapidll name 'SHQueryInfoKey'+AWSuffix; function SHCopyKeyA; external shlwapidll name 'SHCopyKeyA'; function SHCopyKeyW; external shlwapidll name 'SHCopyKeyW'; function SHCopyKey; external shlwapidll name 'SHCopyKey'+AWSuffix; function SHRegGetPathA; external shlwapidll name 'SHRegGetPathA'; function SHRegGetPathW; external shlwapidll name 'SHRegGetPathW'; function SHRegGetPath; external shlwapidll name 'SHRegGetPath'+AWSuffix; function SHRegSetPathA; external shlwapidll name 'SHRegSetPathA'; function SHRegSetPathW; external shlwapidll name 'SHRegSetPathW'; function SHRegSetPath; external shlwapidll name 'SHRegSetPath'+AWSuffix; function SHRegCreateUSKeyA; external shlwapidll name 'SHRegCreateUSKeyA'; function SHRegCreateUSKeyW; external shlwapidll name 'SHRegCreateUSKeyW'; function SHRegCreateUSKey; external shlwapidll name 'SHRegCreateUSKey'+AWSuffix; function SHRegOpenUSKeyA; external shlwapidll name 'SHRegOpenUSKeyA'; function SHRegOpenUSKeyW; external shlwapidll name 'SHRegOpenUSKeyW'; function SHRegOpenUSKey; external shlwapidll name 'SHRegOpenUSKey'+AWSuffix; function SHRegQueryUSValueA; external shlwapidll name 'SHRegQueryUSValueA'; function SHRegQueryUSValueW; external shlwapidll name 'SHRegQueryUSValueW'; function SHRegQueryUSValue; external shlwapidll name 'SHRegQueryUSValue'+AWSuffix; function SHRegWriteUSValueA; external shlwapidll name 'SHRegWriteUSValueA'; function SHRegWriteUSValueW; external shlwapidll name 'SHRegWriteUSValueW'; function SHRegWriteUSValue; external shlwapidll name 'SHRegWriteUSValue'+AWSuffix; function SHRegDeleteUSValueA; external shlwapidll name 'SHRegDeleteUSValueA'; function SHRegDeleteUSValueW; external shlwapidll name 'SHRegDeleteUSValueW'; function SHRegDeleteUSValue; external shlwapidll name 'SHRegDeleteUSValue'+AWSuffix; function SHRegDeleteEmptyUSKeyW; external shlwapidll name 'SHRegDeleteEmptyUSKeyW'; function SHRegDeleteEmptyUSKeyA; external shlwapidll name 'SHRegDeleteEmptyUSKeyA'; function SHRegDeleteEmptyUSKey; external shlwapidll name 'SHRegDeleteEmptyUSKey'+AWSuffix; function SHRegEnumUSKeyA; external shlwapidll name 'SHRegEnumUSKeyA'; function SHRegEnumUSKeyW; external shlwapidll name 'SHRegEnumUSKeyW'; function SHRegEnumUSKey; external shlwapidll name 'SHRegEnumUSKey'+AWSuffix; function SHRegEnumUSValueA; external shlwapidll name 'SHRegEnumUSValueA'; function SHRegEnumUSValueW; external shlwapidll name 'SHRegEnumUSValueW'; function SHRegEnumUSValue; external shlwapidll name 'SHRegEnumUSValue'+AWSuffix; function SHRegQueryInfoUSKeyA; external shlwapidll name 'SHRegQueryInfoUSKeyA'; function SHRegQueryInfoUSKeyW; external shlwapidll name 'SHRegQueryInfoUSKeyW'; function SHRegQueryInfoUSKey; external shlwapidll name 'SHRegQueryInfoUSKey'+AWSuffix; function SHRegCloseUSKey; external shlwapidll name 'SHRegCloseUSKey'; function SHRegGetUSValueA; external shlwapidll name 'SHRegGetUSValueA'; function SHRegGetUSValueW; external shlwapidll name 'SHRegGetUSValueW'; function SHRegGetUSValue; external shlwapidll name 'SHRegGetUSValue'+AWSuffix; function SHRegSetUSValueA; external shlwapidll name 'SHRegSetUSValueA'; function SHRegSetUSValueW; external shlwapidll name 'SHRegSetUSValueW'; function SHRegSetUSValue; external shlwapidll name 'SHRegSetUSValue'+AWSuffix; function SHRegGetBoolUSValueA; external shlwapidll name 'SHRegGetBoolUSValueA'; function SHRegGetBoolUSValueW; external shlwapidll name 'SHRegGetBoolUSValueW'; function SHRegGetBoolUSValue; external shlwapidll name 'SHRegGetBoolUSValue'+AWSuffix; function AssocCreate; external shlwapidll name 'AssocCreate'; function AssocQueryStringA; external shlwapidll name 'AssocQueryStringA'; function AssocQueryStringW; external shlwapidll name 'AssocQueryStringW'; function AssocQueryString; external shlwapidll name 'AssocQueryString'+AWSuffix; function AssocQueryStringByKeyA; external shlwapidll name 'AssocQueryStringByKeyA'; function AssocQueryStringByKeyW; external shlwapidll name 'AssocQueryStringByKeyW'; function AssocQueryStringByKey; external shlwapidll name 'AssocQueryStringByKey'+AWSuffix; function AssocQueryKeyA; external shlwapidll name 'AssocQueryKeyA'; function AssocQueryKeyW; external shlwapidll name 'AssocQueryKeyW'; function AssocQueryKey; external shlwapidll name 'AssocQueryKey'+AWSuffix; function SHOpenRegStreamA; external shlwapidll name 'SHOpenRegStream2A'; function SHOpenRegStreamW; external shlwapidll name 'SHOpenRegStream2W'; function SHOpenRegStream; external shlwapidll name 'SHOpenRegStream2'+AWSuffix; function SHOpenRegStream2A; external shlwapidll name 'SHOpenRegStream2A'; function SHOpenRegStream2W; external shlwapidll name 'SHOpenRegStream2W'; function SHOpenRegStream2; external shlwapidll name 'SHOpenRegStream2'+AWSuffix; function SHCreateStreamOnFileA; external shlwapidll name 'SHCreateStreamOnFileA'; function SHCreateStreamOnFileW; external shlwapidll name 'SHCreateStreamOnFileW'; function SHCreateStreamOnFile; external shlwapidll name 'SHCreateStreamOnFile'+AWSuffix; function SHAutoComplete; external shlwapidll name 'SHAutoComplete'; function SHSetThreadRef; external shlwapidll name 'SHSetThreadRef'; function SHGetThreadRef; external shlwapidll name 'SHGetThreadRef'; function SHSkipJunction; external shlwapidll name 'SHSkipJunction'; function SHCreateThread; external shlwapidll name 'SHCreateThread'; function SHReleaseThreadRef; external shlwapidll name 'SHReleaseThreadRef'; function SHCreateShellPalette; external shlwapidll name 'SHCreateShellPalette'; procedure ColorRGBToHLS; external shlwapidll name 'ColorRGBToHLS'; function ColorHLSToRGB; external shlwapidll name 'ColorHLSToRGB'; function ColorAdjustLuma; external shlwapidll name 'ColorAdjustLuma'; function StrToInt64ExA; external shlwapidll name 'StrToInt64ExA'; function StrToInt64ExW; external shlwapidll name 'StrToInt64ExW'; function StrToInt64Ex; external shlwapidll name 'StrToInt64Ex'+AWSuffix; function IsCharSpaceA; external shlwapidll name 'IsCharSpaceA'; function IsCharSpaceW; external shlwapidll name 'IsCharSpaceW'; function IsCharSpace; external shlwapidll name 'IsCharSpace'+AWSuffix; function StrCmpCA; external shlwapidll name 'StrCmpCA'; function StrCmpCW; external shlwapidll name 'StrCmpCW'; function StrCmpC; external shlwapidll name 'StrCmpC'+AWSuffix; function StrCmpICA; external shlwapidll name 'StrCmpICA'; function StrCmpICW; external shlwapidll name 'StrCmpICW'; function StrCmpIC; external shlwapidll name 'StrCmpIC'+AWSuffix; function SHRegGetValueA; external shlwapidll name 'SHRegGetValueA'; function SHRegGetValueW; external shlwapidll name 'SHRegGetValueW'; function SHRegGetValue; external shlwapidll name 'SHRegGetValue'+AWSuffix; function SHRegGetIntW; external shlwapidll name 'SHRegGetIntW'; function SHRegGetInt; external shlwapidll name 'SHRegGetIntW'; function AssocIsDangerous; external shlwapidll name 'AssocIsDangerous'; function AssocGetPerceivedType; external shlwapidll name 'AssocGetPerceivedType'; function SHCreateStreamOnFileEx; external shlwapidll name 'SHCreateStreamOnFileEx'; function GetAcceptLanguagesA; external shlwapidll name 'GetAcceptLanguagesA'; function GetAcceptLanguagesW; external shlwapidll name 'GetAcceptLanguagesW'; function GetAcceptLanguages; external shlwapidll name 'GetAcceptLanguages'+AWSuffix; function SHGetViewStatePropertyBag; external shlwapidll name 'SHGetViewStatePropertyBag'; function SHAllocShared; external shlwapidll name 'SHAllocShared'; function SHFreeShared; external shlwapidll name 'SHFreeShared'; function SHLockShared; external shlwapidll name 'SHLockShared'; function SHUnlockShared; external shlwapidll name 'SHUnlockShared'; function SHCreateThreadRef; external shlwapidll name 'SHCreateThreadRef'; function IsInternetESCEnabled; external shlwapidll name 'IsInternetESCEnabled'; {$IFDEF WINXP_UP} //stOrM!------------------------------------------------------------------------------------------------------------------------------------------ function MessageBoxTimeOut; external user32 name 'MessageBoxTimeout'+AWSuffix; function MessageBoxTimeOutA; external user32 name 'MessageBoxTimeoutA'; function MessageBoxTimeOutW; external user32 name 'MessageBoxTimeoutW'; //------------------------------------------------------------------------------------------------------------------------------------------stOrM! {$ENDIF WINXP_UP} //stOrM!------------------------------------------------------------------------------------------------------------------------------------------ {$IFDEF WIN2000_UP} //function MessageBoxCheck, function MessageBoxCheckA, function MessageBoxCheckW function MessageBoxCheck; external shlwapidll Index {$IFDEF UNICODE}191{$ELSE}185{$ENDIF UNICODE}; function MessageBoxCheckA; external shlwapidll Index 185; //'SHMessageBoxCheckA' function MessageBoxCheckW; external shlwapidll Index 191; //'SHMessageBoxCheckW' {$ENDIF WIN2000_UP} //------------------------------------------------------------------------------------------------------------------------------------------stOrM! {$ELSE} var _StrChrA: Pointer; function StrChrA; begin GetProcedureAddress(_StrChrA, shlwapidll, 'StrChrA'); asm MOV ESP, EBP POP EBP JMP [_StrChrA] end; end; var _StrChrW: Pointer; function StrChrW; begin GetProcedureAddress(_StrChrW, shlwapidll, 'StrChrW'); asm MOV ESP, EBP POP EBP JMP [_StrChrW] end; end; var _StrChr: Pointer; function StrChr; begin GetProcedureAddress(_StrChr, shlwapidll, 'StrChr'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrChr] end; end; var _StrChrIA: Pointer; function StrChrIA; begin GetProcedureAddress(_StrChrIA, shlwapidll, 'StrChrIA'); asm MOV ESP, EBP POP EBP JMP [_StrChrIA] end; end; var _StrChrIW: Pointer; function StrChrIW; begin GetProcedureAddress(_StrChrIW, shlwapidll, 'StrChrIW'); asm MOV ESP, EBP POP EBP JMP [_StrChrIW] end; end; var _StrChrI: Pointer; function StrChrI; begin GetProcedureAddress(_StrChrI, shlwapidll, 'StrChrI'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrChrI] end; end; var _StrCmpNA: Pointer; function StrCmpNA; begin GetProcedureAddress(_StrCmpNA, shlwapidll, 'StrCmpNA'); asm MOV ESP, EBP POP EBP JMP [_StrCmpNA] end; end; var _StrCmpNW: Pointer; function StrCmpNW; begin GetProcedureAddress(_StrCmpNW, shlwapidll, 'StrCmpNW'); asm MOV ESP, EBP POP EBP JMP [_StrCmpNW] end; end; var _StrCmpN: Pointer; function StrCmpN; begin GetProcedureAddress(_StrCmpN, shlwapidll, 'StrCmpN'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrCmpN] end; end; var _StrCmpNIA: Pointer; function StrCmpNIA; begin GetProcedureAddress(_StrCmpNIA, shlwapidll, 'StrCmpNIA'); asm MOV ESP, EBP POP EBP JMP [_StrCmpNIA] end; end; var _StrCmpNIW: Pointer; function StrCmpNIW; begin GetProcedureAddress(_StrCmpNIW, shlwapidll, 'StrCmpNIW'); asm MOV ESP, EBP POP EBP JMP [_StrCmpNIW] end; end; var _StrCmpNI: Pointer; function StrCmpNI; begin GetProcedureAddress(_StrCmpNI, shlwapidll, 'StrCmpNI'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrCmpNI] end; end; var _StrCSpnA: Pointer; function StrCSpnA; begin GetProcedureAddress(_StrCSpnA, shlwapidll, 'StrCSpnA'); asm MOV ESP, EBP POP EBP JMP [_StrCSpnA] end; end; var _StrCSpnW: Pointer; function StrCSpnW; begin GetProcedureAddress(_StrCSpnW, shlwapidll, 'StrCSpnW'); asm MOV ESP, EBP POP EBP JMP [_StrCSpnW] end; end; var _StrCSpn: Pointer; function StrCSpn; begin GetProcedureAddress(_StrCSpn, shlwapidll, 'StrCSpn'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrCSpn] end; end; var _StrCSpnIA: Pointer; function StrCSpnIA; begin GetProcedureAddress(_StrCSpnIA, shlwapidll, 'StrCSpnIA'); asm MOV ESP, EBP POP EBP JMP [_StrCSpnIA] end; end; var _StrCSpnIW: Pointer; function StrCSpnIW; begin GetProcedureAddress(_StrCSpnIW, shlwapidll, 'StrCSpnIW'); asm MOV ESP, EBP POP EBP JMP [_StrCSpnIW] end; end; var _StrCSpnI: Pointer; function StrCSpnI; begin GetProcedureAddress(_StrCSpnI, shlwapidll, 'StrCSpnI'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrCSpnI] end; end; var _StrDupA: Pointer; function StrDupA; begin GetProcedureAddress(_StrDupA, shlwapidll, 'StrDupA'); asm MOV ESP, EBP POP EBP JMP [_StrDupA] end; end; var _StrDupW: Pointer; function StrDupW; begin GetProcedureAddress(_StrDupW, shlwapidll, 'StrDupW'); asm MOV ESP, EBP POP EBP JMP [_StrDupW] end; end; var _StrDup: Pointer; function StrDup; begin GetProcedureAddress(_StrDup, shlwapidll, 'StrDup'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrDup] end; end; var _StrFormatByteSizeA: Pointer; function StrFormatByteSizeA; begin GetProcedureAddress(_StrFormatByteSizeA, shlwapidll, 'StrFormatByteSizeA'); asm MOV ESP, EBP POP EBP JMP [_StrFormatByteSizeA] end; end; var _StrFormatByteSize64A: Pointer; function StrFormatByteSize64A; begin GetProcedureAddress(_StrFormatByteSize64A, shlwapidll, 'StrFormatByteSize64A'); asm MOV ESP, EBP POP EBP JMP [_StrFormatByteSize64A] end; end; var _StrFormatByteSizeW: Pointer; function StrFormatByteSizeW; begin GetProcedureAddress(_StrFormatByteSizeW, shlwapidll, 'StrFormatByteSizeW'); asm MOV ESP, EBP POP EBP JMP [_StrFormatByteSizeW] end; end; var _StrFormatByteSize: Pointer; function StrFormatByteSize; begin GetProcedureAddress(_StrFormatByteSize, shlwapidll, 'StrFormatByteSize'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrFormatByteSize] end; end; var _StrFormatByteSize64: Pointer; function StrFormatByteSize64; begin GetProcedureAddress(_StrFormatByteSize64, shlwapidll, 'StrFormatByteSize64'); asm MOV ESP, EBP POP EBP JMP [_StrFormatByteSize64] end; end; var _StrFormatKBSizeW: Pointer; function StrFormatKBSizeW; begin GetProcedureAddress(_StrFormatKBSizeW, shlwapidll, 'StrFormatKBSizeW'); asm MOV ESP, EBP POP EBP JMP [_StrFormatKBSizeW] end; end; var _StrFormatKBSizeA: Pointer; function StrFormatKBSizeA; begin GetProcedureAddress(_StrFormatKBSizeA, shlwapidll, 'StrFormatKBSizeA'); asm MOV ESP, EBP POP EBP JMP [_StrFormatKBSizeA] end; end; var _StrFormatKBSize: Pointer; function StrFormatKBSize; begin GetProcedureAddress(_StrFormatKBSize, shlwapidll, 'StrFormatKBSize'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrFormatKBSize] end; end; var _StrFromTimeIntervalA: Pointer; function StrFromTimeIntervalA; begin GetProcedureAddress(_StrFromTimeIntervalA, shlwapidll, 'StrFromTimeIntervalA'); asm MOV ESP, EBP POP EBP JMP [_StrFromTimeIntervalA] end; end; var _StrFromTimeIntervalW: Pointer; function StrFromTimeIntervalW; begin GetProcedureAddress(_StrFromTimeIntervalW, shlwapidll, 'StrFromTimeIntervalW'); asm MOV ESP, EBP POP EBP JMP [_StrFromTimeIntervalW] end; end; var _StrFromTimeInterval: Pointer; function StrFromTimeInterval; begin GetProcedureAddress(_StrFromTimeInterval, shlwapidll, 'StrFromTimeInterval'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrFromTimeInterval] end; end; var _StrIsIntlEqualA: Pointer; function StrIsIntlEqualA; begin GetProcedureAddress(_StrIsIntlEqualA, shlwapidll, 'StrIsIntlEqualA'); asm MOV ESP, EBP POP EBP JMP [_StrIsIntlEqualA] end; end; var _StrIsIntlEqualW: Pointer; function StrIsIntlEqualW; begin GetProcedureAddress(_StrIsIntlEqualW, shlwapidll, 'StrIsIntlEqualW'); asm MOV ESP, EBP POP EBP JMP [_StrIsIntlEqualW] end; end; var _StrIsIntlEqual: Pointer; function StrIsIntlEqual; begin GetProcedureAddress(_StrIsIntlEqual, shlwapidll, 'StrIsIntlEqual'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrIsIntlEqual] end; end; var _StrNCatA: Pointer; function StrNCatA; begin GetProcedureAddress(_StrNCatA, shlwapidll, 'StrNCatA'); asm MOV ESP, EBP POP EBP JMP [_StrNCatA] end; end; var _StrNCatW: Pointer; function StrNCatW; begin GetProcedureAddress(_StrNCatW, shlwapidll, 'StrNCatW'); asm MOV ESP, EBP POP EBP JMP [_StrNCatW] end; end; var _StrNCat: Pointer; function StrNCat; begin GetProcedureAddress(_StrNCat, shlwapidll, 'StrNCat'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrNCat] end; end; var _StrPBrkA: Pointer; function StrPBrkA; begin GetProcedureAddress(_StrPBrkA, shlwapidll, 'StrPBrkA'); asm MOV ESP, EBP POP EBP JMP [_StrPBrkA] end; end; var _StrPBrkW: Pointer; function StrPBrkW; begin GetProcedureAddress(_StrPBrkW, shlwapidll, 'StrPBrkW'); asm MOV ESP, EBP POP EBP JMP [_StrPBrkW] end; end; var _StrPBrk: Pointer; function StrPBrk; begin GetProcedureAddress(_StrPBrk, shlwapidll, 'StrPBrk'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrPBrk] end; end; var _StrRChrA: Pointer; function StrRChrA; begin GetProcedureAddress(_StrRChrA, shlwapidll, 'StrRChrA'); asm MOV ESP, EBP POP EBP JMP [_StrRChrA] end; end; var _StrRChrW: Pointer; function StrRChrW; begin GetProcedureAddress(_StrRChrW, shlwapidll, 'StrRChrW'); asm MOV ESP, EBP POP EBP JMP [_StrRChrW] end; end; var _StrRChr: Pointer; function StrRChr; begin GetProcedureAddress(_StrRChr, shlwapidll, 'StrRChr'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrRChr] end; end; var _StrRChrIA: Pointer; function StrRChrIA; begin GetProcedureAddress(_StrRChrIA, shlwapidll, 'StrRChrIA'); asm MOV ESP, EBP POP EBP JMP [_StrRChrIA] end; end; var _StrRChrIW: Pointer; function StrRChrIW; begin GetProcedureAddress(_StrRChrIW, shlwapidll, 'StrRChrIW'); asm MOV ESP, EBP POP EBP JMP [_StrRChrIW] end; end; var _StrRChrI: Pointer; function StrRChrI; begin GetProcedureAddress(_StrRChrI, shlwapidll, 'StrRChrI'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrRChrI] end; end; var _StrRStrIA: Pointer; function StrRStrIA; begin GetProcedureAddress(_StrRStrIA, shlwapidll, 'StrRStrIA'); asm MOV ESP, EBP POP EBP JMP [_StrRStrIA] end; end; var _StrRStrIW: Pointer; function StrRStrIW; begin GetProcedureAddress(_StrRStrIW, shlwapidll, 'StrRStrIW'); asm MOV ESP, EBP POP EBP JMP [_StrRStrIW] end; end; var _StrRStrI: Pointer; function StrRStrI; begin GetProcedureAddress(_StrRStrI, shlwapidll, 'StrRStrI'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrRStrI] end; end; var _StrSpnA: Pointer; function StrSpnA; begin GetProcedureAddress(_StrSpnA, shlwapidll, 'StrSpnA'); asm MOV ESP, EBP POP EBP JMP [_StrSpnA] end; end; var _StrSpnW: Pointer; function StrSpnW; begin GetProcedureAddress(_StrSpnW, shlwapidll, 'StrSpnW'); asm MOV ESP, EBP POP EBP JMP [_StrSpnW] end; end; var _StrSpn: Pointer; function StrSpn; begin GetProcedureAddress(_StrSpn, shlwapidll, 'StrSpn'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrSpn] end; end; var _StrStrA: Pointer; function StrStrA; begin GetProcedureAddress(_StrStrA, shlwapidll, 'StrStrA'); asm MOV ESP, EBP POP EBP JMP [_StrStrA] end; end; var _StrStrW: Pointer; function StrStrW; begin GetProcedureAddress(_StrStrW, shlwapidll, 'StrStrW'); asm MOV ESP, EBP POP EBP JMP [_StrStrW] end; end; var _StrStr: Pointer; function StrStr; begin GetProcedureAddress(_StrStr, shlwapidll, 'StrStr'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrStr] end; end; var _StrStrIA: Pointer; function StrStrIA; begin GetProcedureAddress(_StrStrIA, shlwapidll, 'StrStrIA'); asm MOV ESP, EBP POP EBP JMP [_StrStrIA] end; end; var _StrStrIW: Pointer; function StrStrIW; begin GetProcedureAddress(_StrStrIW, shlwapidll, 'StrStrIW'); asm MOV ESP, EBP POP EBP JMP [_StrStrIW] end; end; var _StrStrI: Pointer; function StrStrI; begin GetProcedureAddress(_StrStrI, shlwapidll, 'StrStrI'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrStrI] end; end; var _StrToIntA: Pointer; function StrToIntA; begin GetProcedureAddress(_StrToIntA, shlwapidll, 'StrToIntA'); asm MOV ESP, EBP POP EBP JMP [_StrToIntA] end; end; var _StrToIntW: Pointer; function StrToIntW; begin GetProcedureAddress(_StrToIntW, shlwapidll, 'StrToIntW'); asm MOV ESP, EBP POP EBP JMP [_StrToIntW] end; end; var _StrToInt: Pointer; function StrToInt; begin GetProcedureAddress(_StrToInt, shlwapidll, 'StrToInt'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrToInt] end; end; var _StrToIntExA: Pointer; function StrToIntExA; begin GetProcedureAddress(_StrToIntExA, shlwapidll, 'StrToIntExA'); asm MOV ESP, EBP POP EBP JMP [_StrToIntExA] end; end; var _StrToIntExW: Pointer; function StrToIntExW; begin GetProcedureAddress(_StrToIntExW, shlwapidll, 'StrToIntExW'); asm MOV ESP, EBP POP EBP JMP [_StrToIntExW] end; end; var _StrToIntEx: Pointer; function StrToIntEx; begin GetProcedureAddress(_StrToIntEx, shlwapidll, 'StrToIntEx'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrToIntEx] end; end; var _StrTrimA: Pointer; function StrTrimA; begin GetProcedureAddress(_StrTrimA, shlwapidll, 'StrTrimA'); asm MOV ESP, EBP POP EBP JMP [_StrTrimA] end; end; var _StrTrimW: Pointer; function StrTrimW; begin GetProcedureAddress(_StrTrimW, shlwapidll, 'StrTrimW'); asm MOV ESP, EBP POP EBP JMP [_StrTrimW] end; end; var _StrTrim: Pointer; function StrTrim; begin GetProcedureAddress(_StrTrim, shlwapidll, 'StrTrim'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrTrim] end; end; var _StrCatW: Pointer; function StrCatW; begin GetProcedureAddress(_StrCatW, shlwapidll, 'StrCatW'); asm MOV ESP, EBP POP EBP JMP [_StrCatW] end; end; var _StrCmpW: Pointer; function StrCmpW; begin GetProcedureAddress(_StrCmpW, shlwapidll, 'StrCmpW'); asm MOV ESP, EBP POP EBP JMP [_StrCmpW] end; end; var _StrCmpIW: Pointer; function StrCmpIW; begin GetProcedureAddress(_StrCmpIW, shlwapidll, 'StrCmpIW'); asm MOV ESP, EBP POP EBP JMP [_StrCmpIW] end; end; var _StrCpyW: Pointer; function StrCpyW; begin GetProcedureAddress(_StrCpyW, shlwapidll, 'StrCpyW'); asm MOV ESP, EBP POP EBP JMP [_StrCpyW] end; end; var _StrCpyNW: Pointer; function StrCpyNW; begin GetProcedureAddress(_StrCpyNW, shlwapidll, 'StrCpyNW'); asm MOV ESP, EBP POP EBP JMP [_StrCpyNW] end; end; var _StrCatBuffW: Pointer; function StrCatBuffW; begin GetProcedureAddress(_StrCatBuffW, shlwapidll, 'StrCatBuffW'); asm MOV ESP, EBP POP EBP JMP [_StrCatBuffW] end; end; var _StrCatBuffA: Pointer; function StrCatBuffA; begin GetProcedureAddress(_StrCatBuffA, shlwapidll, 'StrCatBuffA'); asm MOV ESP, EBP POP EBP JMP [_StrCatBuffA] end; end; var _StrCatBuff: Pointer; function StrCatBuff; begin GetProcedureAddress(_StrCatBuff, shlwapidll, 'StrCatBuff'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrCatBuff] end; end; var _ChrCmpIA: Pointer; function ChrCmpIA; begin GetProcedureAddress(_ChrCmpIA, shlwapidll, 'ChrCmpIA'); asm MOV ESP, EBP POP EBP JMP [_ChrCmpIA] end; end; var _ChrCmpIW: Pointer; function ChrCmpIW; begin GetProcedureAddress(_ChrCmpIW, shlwapidll, 'ChrCmpIW'); asm MOV ESP, EBP POP EBP JMP [_ChrCmpIW] end; end; var _ChrCmpI: Pointer; function ChrCmpI; begin GetProcedureAddress(_ChrCmpI, shlwapidll, 'ChrCmpI'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_ChrCmpI] end; end; var _wvnsprintfA: Pointer; function wvnsprintfA; begin GetProcedureAddress(_wvnsprintfA, shlwapidll, 'wvnsprintfA'); asm MOV ESP, EBP POP EBP JMP [_wvnsprintfA] end; end; var _wvnsprintfW: Pointer; function wvnsprintfW; begin GetProcedureAddress(_wvnsprintfW, shlwapidll, 'wvnsprintfW'); asm MOV ESP, EBP POP EBP JMP [_wvnsprintfW] end; end; var _wvnsprintf: Pointer; function wvnsprintf; begin GetProcedureAddress(_wvnsprintf, shlwapidll, 'wvnsprintf'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_wvnsprintf] end; end; var _StrRetToStrA: Pointer; function StrRetToStrA; begin GetProcedureAddress(_StrRetToStrA, shlwapidll, 'StrRetToStrA'); asm MOV ESP, EBP POP EBP JMP [_StrRetToStrA] end; end; var _StrRetToStrW: Pointer; function StrRetToStrW; begin GetProcedureAddress(_StrRetToStrW, shlwapidll, 'StrRetToStrW'); asm MOV ESP, EBP POP EBP JMP [_StrRetToStrW] end; end; var _StrRetToStr: Pointer; function StrRetToStr; begin GetProcedureAddress(_StrRetToStr, shlwapidll, 'StrRetToStr'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrRetToStr] end; end; var _StrRetToBufA: Pointer; function StrRetToBufA; begin GetProcedureAddress(_StrRetToBufA, shlwapidll, 'StrRetToBufA'); asm MOV ESP, EBP POP EBP JMP [_StrRetToBufA] end; end; var _StrRetToBufW: Pointer; function StrRetToBufW; begin GetProcedureAddress(_StrRetToBufW, shlwapidll, 'StrRetToBufW'); asm MOV ESP, EBP POP EBP JMP [_StrRetToBufW] end; end; var _StrRetToBuf: Pointer; function StrRetToBuf; begin GetProcedureAddress(_StrRetToBuf, shlwapidll, 'StrRetToBuf'); asm MOV ESP, EBP POP EBP JMP [_StrRetToBuf] end; end; var _StrRetToBSTR: Pointer; function StrRetToBSTR; begin GetProcedureAddress(_StrRetToBSTR, shlwapidll, 'StrRetToBSTR'); asm MOV ESP, EBP POP EBP JMP [_StrRetToBSTR] end; end; var _SHStrDupA: Pointer; function SHStrDupA; begin GetProcedureAddress(_SHStrDupA, shlwapidll, 'SHStrDupA'); asm MOV ESP, EBP POP EBP JMP [_SHStrDupA] end; end; var _SHStrDupW: Pointer; function SHStrDupW; begin GetProcedureAddress(_SHStrDupW, shlwapidll, 'SHStrDupW'); asm MOV ESP, EBP POP EBP JMP [_SHStrDupW] end; end; var _SHStrDup: Pointer; function SHStrDup; begin GetProcedureAddress(_SHStrDup, shlwapidll, 'SHStrDup'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHStrDup] end; end; var _StrCmpLogicalW: Pointer; function StrCmpLogicalW; begin GetProcedureAddress(_StrCmpLogicalW, shlwapidll, 'StrCmpLogicalW'); asm MOV ESP, EBP POP EBP JMP [_StrCmpLogicalW] end; end; var _StrCatChainW: Pointer; function StrCatChainW; begin GetProcedureAddress(_StrCatChainW, shlwapidll, 'StrCatChainW'); asm MOV ESP, EBP POP EBP JMP [_StrCatChainW] end; end; var _SHLoadIndirectString: Pointer; function SHLoadIndirectString; begin GetProcedureAddress(_SHLoadIndirectString, shlwapidll, 'SHLoadIndirectString'); asm MOV ESP, EBP POP EBP JMP [_SHLoadIndirectString] end; end; var _IntlStrEqWorkerA: Pointer; function IntlStrEqWorkerA; begin GetProcedureAddress(_IntlStrEqWorkerA, shlwapidll, 'IntlStrEqWorkerA'); asm MOV ESP, EBP POP EBP JMP [_IntlStrEqWorkerA] end; end; var _IntlStrEqWorkerW: Pointer; function IntlStrEqWorkerW; begin GetProcedureAddress(_IntlStrEqWorkerW, shlwapidll, 'IntlStrEqWorkerW'); asm MOV ESP, EBP POP EBP JMP [_IntlStrEqWorkerW] end; end; var _StrCatA: Pointer; function StrCatA; begin GetProcedureAddress(_StrCatA, kernel32dll, 'lStrCatA'); asm MOV ESP, EBP POP EBP JMP [_StrCatA] end; end; var _StrCmpA: Pointer; function StrCmpA; begin GetProcedureAddress(_StrCmpA, kernel32dll, 'lStrCmpA'); asm MOV ESP, EBP POP EBP JMP [_StrCmpA] end; end; var _StrCmpIA: Pointer; function StrCmpIA; begin GetProcedureAddress(_StrCmpIA, kernel32dll, 'lStrCmpIA'); asm MOV ESP, EBP POP EBP JMP [_StrCmpIA] end; end; var _StrCpyA: Pointer; function StrCpyA; begin GetProcedureAddress(_StrCpyA, kernel32dll, 'lStrCpyA'); asm MOV ESP, EBP POP EBP JMP [_StrCpyA] end; end; var _StrCpyNA: Pointer; function StrCpyNA; begin GetProcedureAddress(_StrCpyNA, kernel32dll, 'lStrCpyNA'); asm MOV ESP, EBP POP EBP JMP [_StrCpyNA] end; end; var _StrToLong: Pointer; function StrToLong; begin GetProcedureAddress(_StrToLong, shlwapidll, 'StrToLong'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrToLong] end; end; (* var _StrNCmp: Pointer; function StrNCmp; begin GetProcedureAddress(_StrNCmp, kernel32dll, 'lStrNCmp'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrNCmp] end; end; var _StrNCmpI: Pointer; function StrNCmpI; begin GetProcedureAddress(_StrNCmpI, kernel32dll, 'lStrNCmpI'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrNCmpI] end; end; *) var _StrNCpy: Pointer; function StrNCpy; begin GetProcedureAddress(_StrNCpy, kernel32dll, 'lStrCpyn'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrNCpy] end; end; (* var _StrCatN: Pointer; function StrCatN; begin GetProcedureAddress(_StrCatN, shlwapidll, 'StrCatN'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrCatN] end; end; *) var _StrCat: Pointer; function StrCat; begin GetProcedureAddress(_StrCat, kernel32dll, 'lStrCat'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrCat] end; end; var _StrCmp: Pointer; function StrCmp; begin GetProcedureAddress(_StrCmp, kernel32dll, 'lStrCmp'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrCmp] end; end; var _StrCmpI: Pointer; function StrCmpI; begin GetProcedureAddress(_StrCmpI, kernel32dll, 'lStrCmpI'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrCmpI] end; end; var _StrCpy: Pointer; function StrCpy; begin GetProcedureAddress(_StrCpy, kernel32dll, 'lStrCpy'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrCpy] end; end; var _StrCpyN: Pointer; function StrCpyN; begin GetProcedureAddress(_StrCpyN, kernel32dll, 'lStrCpyN'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrCpyN] end; end; var _PathAddBackslashA: Pointer; function PathAddBackslashA; begin GetProcedureAddress(_PathAddBackslashA, shlwapidll, 'PathAddBackslashA'); asm MOV ESP, EBP POP EBP JMP [_PathAddBackslashA] end; end; var _PathAddBackslashW: Pointer; function PathAddBackslashW; begin GetProcedureAddress(_PathAddBackslashW, shlwapidll, 'PathAddBackslashW'); asm MOV ESP, EBP POP EBP JMP [_PathAddBackslashW] end; end; var _PathAddBackslash: Pointer; function PathAddBackslash; begin GetProcedureAddress(_PathAddBackslash, shlwapidll, 'PathAddBackslash'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathAddBackslash] end; end; var _PathAddExtensionA: Pointer; function PathAddExtensionA; begin GetProcedureAddress(_PathAddExtensionA, shlwapidll, 'PathAddExtensionA'); asm MOV ESP, EBP POP EBP JMP [_PathAddExtensionA] end; end; var _PathAddExtensionW: Pointer; function PathAddExtensionW; begin GetProcedureAddress(_PathAddExtensionW, shlwapidll, 'PathAddExtensionW'); asm MOV ESP, EBP POP EBP JMP [_PathAddExtensionW] end; end; var _PathAddExtension: Pointer; function PathAddExtension; begin GetProcedureAddress(_PathAddExtension, shlwapidll, 'PathAddExtension'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathAddExtension] end; end; var _PathAppendA: Pointer; function PathAppendA; begin GetProcedureAddress(_PathAppendA, shlwapidll, 'PathAppendA'); asm MOV ESP, EBP POP EBP JMP [_PathAppendA] end; end; var _PathAppendW: Pointer; function PathAppendW; begin GetProcedureAddress(_PathAppendW, shlwapidll, 'PathAppendW'); asm MOV ESP, EBP POP EBP JMP [_PathAppendW] end; end; var _PathAppend: Pointer; function PathAppend; begin GetProcedureAddress(_PathAppend, shlwapidll, 'PathAppend'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathAppend] end; end; var _PathBuildRootA: Pointer; function PathBuildRootA; begin GetProcedureAddress(_PathBuildRootA, shlwapidll, 'PathBuildRootA'); asm MOV ESP, EBP POP EBP JMP [_PathBuildRootA] end; end; var _PathBuildRootW: Pointer; function PathBuildRootW; begin GetProcedureAddress(_PathBuildRootW, shlwapidll, 'PathBuildRootW'); asm MOV ESP, EBP POP EBP JMP [_PathBuildRootW] end; end; var _PathBuildRoot: Pointer; function PathBuildRoot; begin GetProcedureAddress(_PathBuildRoot, shlwapidll, 'PathBuildRoot'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathBuildRoot] end; end; var _PathCanonicalizeA: Pointer; function PathCanonicalizeA; begin GetProcedureAddress(_PathCanonicalizeA, shlwapidll, 'PathCanonicalizeA'); asm MOV ESP, EBP POP EBP JMP [_PathCanonicalizeA] end; end; var _PathCanonicalizeW: Pointer; function PathCanonicalizeW; begin GetProcedureAddress(_PathCanonicalizeW, shlwapidll, 'PathCanonicalizeW'); asm MOV ESP, EBP POP EBP JMP [_PathCanonicalizeW] end; end; var _PathCanonicalize: Pointer; function PathCanonicalize; begin GetProcedureAddress(_PathCanonicalize, shlwapidll, 'PathCanonicalize'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathCanonicalize] end; end; var _PathCombineA: Pointer; function PathCombineA; begin GetProcedureAddress(_PathCombineA, shlwapidll, 'PathCombineA'); asm MOV ESP, EBP POP EBP JMP [_PathCombineA] end; end; var _PathCombineW: Pointer; function PathCombineW; begin GetProcedureAddress(_PathCombineW, shlwapidll, 'PathCombineW'); asm MOV ESP, EBP POP EBP JMP [_PathCombineW] end; end; var _PathCombine: Pointer; function PathCombine; begin GetProcedureAddress(_PathCombine, shlwapidll, 'PathCombine'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathCombine] end; end; var _PathCompactPathA: Pointer; function PathCompactPathA; begin GetProcedureAddress(_PathCompactPathA, shlwapidll, 'PathCompactPathA'); asm MOV ESP, EBP POP EBP JMP [_PathCompactPathA] end; end; var _PathCompactPathW: Pointer; function PathCompactPathW; begin GetProcedureAddress(_PathCompactPathW, shlwapidll, 'PathCompactPathW'); asm MOV ESP, EBP POP EBP JMP [_PathCompactPathW] end; end; var _PathCompactPath: Pointer; function PathCompactPath; begin GetProcedureAddress(_PathCompactPath, shlwapidll, 'PathCompactPath'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathCompactPath] end; end; var _PathCompactPathExA: Pointer; function PathCompactPathExA; begin GetProcedureAddress(_PathCompactPathExA, shlwapidll, 'PathCompactPathExA'); asm MOV ESP, EBP POP EBP JMP [_PathCompactPathExA] end; end; var _PathCompactPathExW: Pointer; function PathCompactPathExW; begin GetProcedureAddress(_PathCompactPathExW, shlwapidll, 'PathCompactPathExW'); asm MOV ESP, EBP POP EBP JMP [_PathCompactPathExW] end; end; var _PathCompactPathEx: Pointer; function PathCompactPathEx; begin GetProcedureAddress(_PathCompactPathEx, shlwapidll, 'PathCompactPathEx'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathCompactPathEx] end; end; var _PathCommonPrefixA: Pointer; function PathCommonPrefixA; begin GetProcedureAddress(_PathCommonPrefixA, shlwapidll, 'PathCommonPrefixA'); asm MOV ESP, EBP POP EBP JMP [_PathCommonPrefixA] end; end; var _PathCommonPrefixW: Pointer; function PathCommonPrefixW; begin GetProcedureAddress(_PathCommonPrefixW, shlwapidll, 'PathCommonPrefixW'); asm MOV ESP, EBP POP EBP JMP [_PathCommonPrefixW] end; end; var _PathCommonPrefix: Pointer; function PathCommonPrefix; begin GetProcedureAddress(_PathCommonPrefix, shlwapidll, 'PathCommonPrefix'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathCommonPrefix] end; end; var _PathFileExistsA: Pointer; function PathFileExistsA; begin GetProcedureAddress(_PathFileExistsA, shlwapidll, 'PathFileExistsA'); asm MOV ESP, EBP POP EBP JMP [_PathFileExistsA] end; end; var _PathFileExistsW: Pointer; function PathFileExistsW; begin GetProcedureAddress(_PathFileExistsW, shlwapidll, 'PathFileExistsW'); asm MOV ESP, EBP POP EBP JMP [_PathFileExistsW] end; end; var _PathFileExists: Pointer; function PathFileExists; begin GetProcedureAddress(_PathFileExists, shlwapidll, 'PathFileExists'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathFileExists] end; end; var _PathFindExtensionA: Pointer; function PathFindExtensionA; begin GetProcedureAddress(_PathFindExtensionA, shlwapidll, 'PathFindExtensionA'); asm MOV ESP, EBP POP EBP JMP [_PathFindExtensionA] end; end; var _PathFindExtensionW: Pointer; function PathFindExtensionW; begin GetProcedureAddress(_PathFindExtensionW, shlwapidll, 'PathFindExtensionW'); asm MOV ESP, EBP POP EBP JMP [_PathFindExtensionW] end; end; var _PathFindExtension: Pointer; function PathFindExtension; begin GetProcedureAddress(_PathFindExtension, shlwapidll, 'PathFindExtension'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathFindExtension] end; end; var _PathFindFileNameA: Pointer; function PathFindFileNameA; begin GetProcedureAddress(_PathFindFileNameA, shlwapidll, 'PathFindFileNameA'); asm MOV ESP, EBP POP EBP JMP [_PathFindFileNameA] end; end; var _PathFindFileNameW: Pointer; function PathFindFileNameW; begin GetProcedureAddress(_PathFindFileNameW, shlwapidll, 'PathFindFileNameW'); asm MOV ESP, EBP POP EBP JMP [_PathFindFileNameW] end; end; var _PathFindFileName: Pointer; function PathFindFileName; begin GetProcedureAddress(_PathFindFileName, shlwapidll, 'PathFindFileName'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathFindFileName] end; end; var _PathFindNextComponentA: Pointer; function PathFindNextComponentA; begin GetProcedureAddress(_PathFindNextComponentA, shlwapidll, 'PathFindNextComponentA'); asm MOV ESP, EBP POP EBP JMP [_PathFindNextComponentA] end; end; var _PathFindNextComponentW: Pointer; function PathFindNextComponentW; begin GetProcedureAddress(_PathFindNextComponentW, shlwapidll, 'PathFindNextComponentW'); asm MOV ESP, EBP POP EBP JMP [_PathFindNextComponentW] end; end; var _PathFindNextComponent: Pointer; function PathFindNextComponent; begin GetProcedureAddress(_PathFindNextComponent, shlwapidll, 'PathFindNextComponent'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathFindNextComponent] end; end; var _PathFindOnPathA: Pointer; function PathFindOnPathA; begin GetProcedureAddress(_PathFindOnPathA, shlwapidll, 'PathFindOnPathA'); asm MOV ESP, EBP POP EBP JMP [_PathFindOnPathA] end; end; var _PathFindOnPathW: Pointer; function PathFindOnPathW; begin GetProcedureAddress(_PathFindOnPathW, shlwapidll, 'PathFindOnPathW'); asm MOV ESP, EBP POP EBP JMP [_PathFindOnPathW] end; end; var _PathFindOnPath: Pointer; function PathFindOnPath; begin GetProcedureAddress(_PathFindOnPath, shlwapidll, 'PathFindOnPath'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathFindOnPath] end; end; var _PathGetArgsA: Pointer; function PathGetArgsA; begin GetProcedureAddress(_PathGetArgsA, shlwapidll, 'PathGetArgsA'); asm MOV ESP, EBP POP EBP JMP [_PathGetArgsA] end; end; var _PathGetArgsW: Pointer; function PathGetArgsW; begin GetProcedureAddress(_PathGetArgsW, shlwapidll, 'PathGetArgsW'); asm MOV ESP, EBP POP EBP JMP [_PathGetArgsW] end; end; var _PathGetArgs: Pointer; function PathGetArgs; begin GetProcedureAddress(_PathGetArgs, shlwapidll, 'PathGetArgs'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathGetArgs] end; end; var _PathFindSuffixArrayA: Pointer; function PathFindSuffixArrayA; begin GetProcedureAddress(_PathFindSuffixArrayA, shlwapidll, 'PathFindSuffixArrayA'); asm MOV ESP, EBP POP EBP JMP [_PathFindSuffixArrayA] end; end; var _PathFindSuffixArrayW: Pointer; function PathFindSuffixArrayW; begin GetProcedureAddress(_PathFindSuffixArrayW, shlwapidll, 'PathFindSuffixArrayW'); asm MOV ESP, EBP POP EBP JMP [_PathFindSuffixArrayW] end; end; var _PathFindSuffixArray: Pointer; function PathFindSuffixArray; begin GetProcedureAddress(_PathFindSuffixArray, shlwapidll, 'PathFindSuffixArray'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathFindSuffixArray] end; end; var _PathIsLFNFileSpecA: Pointer; function PathIsLFNFileSpecA; begin GetProcedureAddress(_PathIsLFNFileSpecA, shlwapidll, 'PathIsLFNFileSpecA'); asm MOV ESP, EBP POP EBP JMP [_PathIsLFNFileSpecA] end; end; var _PathIsLFNFileSpecW: Pointer; function PathIsLFNFileSpecW; begin GetProcedureAddress(_PathIsLFNFileSpecW, shlwapidll, 'PathIsLFNFileSpecW'); asm MOV ESP, EBP POP EBP JMP [_PathIsLFNFileSpecW] end; end; var _PathIsLFNFileSpec: Pointer; function PathIsLFNFileSpec; begin GetProcedureAddress(_PathIsLFNFileSpec, shlwapidll, 'PathIsLFNFileSpec'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathIsLFNFileSpec] end; end; var _PathGetCharTypeA: Pointer; function PathGetCharTypeA; begin GetProcedureAddress(_PathGetCharTypeA, shlwapidll, 'PathGetCharTypeA'); asm MOV ESP, EBP POP EBP JMP [_PathGetCharTypeA] end; end; var _PathGetCharTypeW: Pointer; function PathGetCharTypeW; begin GetProcedureAddress(_PathGetCharTypeW, shlwapidll, 'PathGetCharTypeW'); asm MOV ESP, EBP POP EBP JMP [_PathGetCharTypeW] end; end; var _PathGetCharType: Pointer; function PathGetCharType; begin GetProcedureAddress(_PathGetCharType, shlwapidll, 'PathGetCharType'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathGetCharType] end; end; var _PathGetDriveNumberA: Pointer; function PathGetDriveNumberA; begin GetProcedureAddress(_PathGetDriveNumberA, shlwapidll, 'PathGetDriveNumberA'); asm MOV ESP, EBP POP EBP JMP [_PathGetDriveNumberA] end; end; var _PathGetDriveNumberW: Pointer; function PathGetDriveNumberW; begin GetProcedureAddress(_PathGetDriveNumberW, shlwapidll, 'PathGetDriveNumberW'); asm MOV ESP, EBP POP EBP JMP [_PathGetDriveNumberW] end; end; var _PathGetDriveNumber: Pointer; function PathGetDriveNumber; begin GetProcedureAddress(_PathGetDriveNumber, shlwapidll, 'PathGetDriveNumber'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathGetDriveNumber] end; end; var _PathIsDirectoryA: Pointer; function PathIsDirectoryA; begin GetProcedureAddress(_PathIsDirectoryA, shlwapidll, 'PathIsDirectoryA'); asm MOV ESP, EBP POP EBP JMP [_PathIsDirectoryA] end; end; var _PathIsDirectoryW: Pointer; function PathIsDirectoryW; begin GetProcedureAddress(_PathIsDirectoryW, shlwapidll, 'PathIsDirectoryW'); asm MOV ESP, EBP POP EBP JMP [_PathIsDirectoryW] end; end; var _PathIsDirectory: Pointer; function PathIsDirectory; begin GetProcedureAddress(_PathIsDirectory, shlwapidll, 'PathIsDirectory'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathIsDirectory] end; end; var _PathIsDirectoryEmptyA: Pointer; function PathIsDirectoryEmptyA; begin GetProcedureAddress(_PathIsDirectoryEmptyA, shlwapidll, 'PathIsDirectoryEmptyA'); asm MOV ESP, EBP POP EBP JMP [_PathIsDirectoryEmptyA] end; end; var _PathIsDirectoryEmptyW: Pointer; function PathIsDirectoryEmptyW; begin GetProcedureAddress(_PathIsDirectoryEmptyW, shlwapidll, 'PathIsDirectoryEmptyW'); asm MOV ESP, EBP POP EBP JMP [_PathIsDirectoryEmptyW] end; end; var _PathIsDirectoryEmpty: Pointer; function PathIsDirectoryEmpty; begin GetProcedureAddress(_PathIsDirectoryEmpty, shlwapidll, 'PathIsDirectoryEmpty'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathIsDirectoryEmpty] end; end; var _PathIsFileSpecA: Pointer; function PathIsFileSpecA; begin GetProcedureAddress(_PathIsFileSpecA, shlwapidll, 'PathIsFileSpecA'); asm MOV ESP, EBP POP EBP JMP [_PathIsFileSpecA] end; end; var _PathIsFileSpecW: Pointer; function PathIsFileSpecW; begin GetProcedureAddress(_PathIsFileSpecW, shlwapidll, 'PathIsFileSpecW'); asm MOV ESP, EBP POP EBP JMP [_PathIsFileSpecW] end; end; var _PathIsFileSpec: Pointer; function PathIsFileSpec; begin GetProcedureAddress(_PathIsFileSpec, shlwapidll, 'PathIsFileSpec'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathIsFileSpec] end; end; var _PathIsPrefixA: Pointer; function PathIsPrefixA; begin GetProcedureAddress(_PathIsPrefixA, shlwapidll, 'PathIsPrefixA'); asm MOV ESP, EBP POP EBP JMP [_PathIsPrefixA] end; end; var _PathIsPrefixW: Pointer; function PathIsPrefixW; begin GetProcedureAddress(_PathIsPrefixW, shlwapidll, 'PathIsPrefixW'); asm MOV ESP, EBP POP EBP JMP [_PathIsPrefixW] end; end; var _PathIsPrefix: Pointer; function PathIsPrefix; begin GetProcedureAddress(_PathIsPrefix, shlwapidll, 'PathIsPrefix'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathIsPrefix] end; end; var _PathIsRelativeA: Pointer; function PathIsRelativeA; begin GetProcedureAddress(_PathIsRelativeA, shlwapidll, 'PathIsRelativeA'); asm MOV ESP, EBP POP EBP JMP [_PathIsRelativeA] end; end; var _PathIsRelativeW: Pointer; function PathIsRelativeW; begin GetProcedureAddress(_PathIsRelativeW, shlwapidll, 'PathIsRelativeW'); asm MOV ESP, EBP POP EBP JMP [_PathIsRelativeW] end; end; var _PathIsRelative: Pointer; function PathIsRelative; begin GetProcedureAddress(_PathIsRelative, shlwapidll, 'PathIsRelative'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathIsRelative] end; end; var _PathIsRootA: Pointer; function PathIsRootA; begin GetProcedureAddress(_PathIsRootA, shlwapidll, 'PathIsRootA'); asm MOV ESP, EBP POP EBP JMP [_PathIsRootA] end; end; var _PathIsRootW: Pointer; function PathIsRootW; begin GetProcedureAddress(_PathIsRootW, shlwapidll, 'PathIsRootW'); asm MOV ESP, EBP POP EBP JMP [_PathIsRootW] end; end; var _PathIsRoot: Pointer; function PathIsRoot; begin GetProcedureAddress(_PathIsRoot, shlwapidll, 'PathIsRoot'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathIsRoot] end; end; var _PathIsSameRootA: Pointer; function PathIsSameRootA; begin GetProcedureAddress(_PathIsSameRootA, shlwapidll, 'PathIsSameRootA'); asm MOV ESP, EBP POP EBP JMP [_PathIsSameRootA] end; end; var _PathIsSameRootW: Pointer; function PathIsSameRootW; begin GetProcedureAddress(_PathIsSameRootW, shlwapidll, 'PathIsSameRootW'); asm MOV ESP, EBP POP EBP JMP [_PathIsSameRootW] end; end; var _PathIsSameRoot: Pointer; function PathIsSameRoot; begin GetProcedureAddress(_PathIsSameRoot, shlwapidll, 'PathIsSameRoot'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathIsSameRoot] end; end; var _PathIsUNCA: Pointer; function PathIsUNCA; begin GetProcedureAddress(_PathIsUNCA, shlwapidll, 'PathIsUNCA'); asm MOV ESP, EBP POP EBP JMP [_PathIsUNCA] end; end; var _PathIsUNCW: Pointer; function PathIsUNCW; begin GetProcedureAddress(_PathIsUNCW, shlwapidll, 'PathIsUNCW'); asm MOV ESP, EBP POP EBP JMP [_PathIsUNCW] end; end; var _PathIsUNC: Pointer; function PathIsUNC; begin GetProcedureAddress(_PathIsUNC, shlwapidll, 'PathIsUNC'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathIsUNC] end; end; var _PathIsNetworkPathA: Pointer; function PathIsNetworkPathA; begin GetProcedureAddress(_PathIsNetworkPathA, shlwapidll, 'PathIsNetworkPathA'); asm MOV ESP, EBP POP EBP JMP [_PathIsNetworkPathA] end; end; var _PathIsNetworkPathW: Pointer; function PathIsNetworkPathW; begin GetProcedureAddress(_PathIsNetworkPathW, shlwapidll, 'PathIsNetworkPathW'); asm MOV ESP, EBP POP EBP JMP [_PathIsNetworkPathW] end; end; var _PathIsNetworkPath: Pointer; function PathIsNetworkPath; begin GetProcedureAddress(_PathIsNetworkPath, shlwapidll, 'PathIsNetworkPath'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathIsNetworkPath] end; end; var _PathIsUNCServerA: Pointer; function PathIsUNCServerA; begin GetProcedureAddress(_PathIsUNCServerA, shlwapidll, 'PathIsUNCServerA'); asm MOV ESP, EBP POP EBP JMP [_PathIsUNCServerA] end; end; var _PathIsUNCServerW: Pointer; function PathIsUNCServerW; begin GetProcedureAddress(_PathIsUNCServerW, shlwapidll, 'PathIsUNCServerW'); asm MOV ESP, EBP POP EBP JMP [_PathIsUNCServerW] end; end; var _PathIsUNCServer: Pointer; function PathIsUNCServer; begin GetProcedureAddress(_PathIsUNCServer, shlwapidll, 'PathIsUNCServer'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathIsUNCServer] end; end; var _PathIsUNCServerShareA: Pointer; function PathIsUNCServerShareA; begin GetProcedureAddress(_PathIsUNCServerShareA, shlwapidll, 'PathIsUNCServerShareA'); asm MOV ESP, EBP POP EBP JMP [_PathIsUNCServerShareA] end; end; var _PathIsUNCServerShareW: Pointer; function PathIsUNCServerShareW; begin GetProcedureAddress(_PathIsUNCServerShareW, shlwapidll, 'PathIsUNCServerShareW'); asm MOV ESP, EBP POP EBP JMP [_PathIsUNCServerShareW] end; end; var _PathIsUNCServerShare: Pointer; function PathIsUNCServerShare; begin GetProcedureAddress(_PathIsUNCServerShare, shlwapidll, 'PathIsUNCServerShare'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathIsUNCServerShare] end; end; var _PathIsContentTypeA: Pointer; function PathIsContentTypeA; begin GetProcedureAddress(_PathIsContentTypeA, shlwapidll, 'PathIsContentTypeA'); asm MOV ESP, EBP POP EBP JMP [_PathIsContentTypeA] end; end; var _PathIsContentTypeW: Pointer; function PathIsContentTypeW; begin GetProcedureAddress(_PathIsContentTypeW, shlwapidll, 'PathIsContentTypeW'); asm MOV ESP, EBP POP EBP JMP [_PathIsContentTypeW] end; end; var _PathIsContentType: Pointer; function PathIsContentType; begin GetProcedureAddress(_PathIsContentType, shlwapidll, 'PathIsContentType'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathIsContentType] end; end; var _PathIsURLA: Pointer; function PathIsURLA; begin GetProcedureAddress(_PathIsURLA, shlwapidll, 'PathIsURLA'); asm MOV ESP, EBP POP EBP JMP [_PathIsURLA] end; end; var _PathIsURLW: Pointer; function PathIsURLW; begin GetProcedureAddress(_PathIsURLW, shlwapidll, 'PathIsURLW'); asm MOV ESP, EBP POP EBP JMP [_PathIsURLW] end; end; var _PathIsURL: Pointer; function PathIsURL; begin GetProcedureAddress(_PathIsURL, shlwapidll, 'PathIsURL'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathIsURL] end; end; var _PathMakePrettyA: Pointer; function PathMakePrettyA; begin GetProcedureAddress(_PathMakePrettyA, shlwapidll, 'PathMakePrettyA'); asm MOV ESP, EBP POP EBP JMP [_PathMakePrettyA] end; end; var _PathMakePrettyW: Pointer; function PathMakePrettyW; begin GetProcedureAddress(_PathMakePrettyW, shlwapidll, 'PathMakePrettyW'); asm MOV ESP, EBP POP EBP JMP [_PathMakePrettyW] end; end; var _PathMakePretty: Pointer; function PathMakePretty; begin GetProcedureAddress(_PathMakePretty, shlwapidll, 'PathMakePretty'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathMakePretty] end; end; var _PathMatchSpecA: Pointer; function PathMatchSpecA; begin GetProcedureAddress(_PathMatchSpecA, shlwapidll, 'PathMatchSpecA'); asm MOV ESP, EBP POP EBP JMP [_PathMatchSpecA] end; end; var _PathMatchSpecW: Pointer; function PathMatchSpecW; begin GetProcedureAddress(_PathMatchSpecW, shlwapidll, 'PathMatchSpecW'); asm MOV ESP, EBP POP EBP JMP [_PathMatchSpecW] end; end; var _PathMatchSpec: Pointer; function PathMatchSpec; begin GetProcedureAddress(_PathMatchSpec, shlwapidll, 'PathMatchSpec'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathMatchSpec] end; end; var _PathParseIconLocationA: Pointer; function PathParseIconLocationA; begin GetProcedureAddress(_PathParseIconLocationA, shlwapidll, 'PathParseIconLocationA'); asm MOV ESP, EBP POP EBP JMP [_PathParseIconLocationA] end; end; var _PathParseIconLocationW: Pointer; function PathParseIconLocationW; begin GetProcedureAddress(_PathParseIconLocationW, shlwapidll, 'PathParseIconLocationW'); asm MOV ESP, EBP POP EBP JMP [_PathParseIconLocationW] end; end; var _PathParseIconLocation: Pointer; function PathParseIconLocation; begin GetProcedureAddress(_PathParseIconLocation, shlwapidll, 'PathParseIconLocation'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathParseIconLocation] end; end; var _PathQuoteSpacesA: Pointer; procedure PathQuoteSpacesA; begin GetProcedureAddress(_PathQuoteSpacesA, shlwapidll, 'PathQuoteSpacesA'); asm MOV ESP, EBP POP EBP JMP [_PathQuoteSpacesA] end; end; var _PathQuoteSpacesW: Pointer; procedure PathQuoteSpacesW; begin GetProcedureAddress(_PathQuoteSpacesW, shlwapidll, 'PathQuoteSpacesW'); asm MOV ESP, EBP POP EBP JMP [_PathQuoteSpacesW] end; end; var _PathQuoteSpaces: Pointer; procedure PathQuoteSpaces; begin GetProcedureAddress(_PathQuoteSpaces, shlwapidll, 'PathQuoteSpaces'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathQuoteSpaces] end; end; var _PathRelativePathToA: Pointer; function PathRelativePathToA; begin GetProcedureAddress(_PathRelativePathToA, shlwapidll, 'PathRelativePathToA'); asm MOV ESP, EBP POP EBP JMP [_PathRelativePathToA] end; end; var _PathRelativePathToW: Pointer; function PathRelativePathToW; begin GetProcedureAddress(_PathRelativePathToW, shlwapidll, 'PathRelativePathToW'); asm MOV ESP, EBP POP EBP JMP [_PathRelativePathToW] end; end; var _PathRelativePathTo: Pointer; function PathRelativePathTo; begin GetProcedureAddress(_PathRelativePathTo, shlwapidll, 'PathRelativePathTo'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathRelativePathTo] end; end; var _PathRemoveArgsA: Pointer; procedure PathRemoveArgsA; begin GetProcedureAddress(_PathRemoveArgsA, shlwapidll, 'PathRemoveArgsA'); asm MOV ESP, EBP POP EBP JMP [_PathRemoveArgsA] end; end; var _PathRemoveArgsW: Pointer; procedure PathRemoveArgsW; begin GetProcedureAddress(_PathRemoveArgsW, shlwapidll, 'PathRemoveArgsW'); asm MOV ESP, EBP POP EBP JMP [_PathRemoveArgsW] end; end; var _PathRemoveArgs: Pointer; procedure PathRemoveArgs; begin GetProcedureAddress(_PathRemoveArgs, shlwapidll, 'PathRemoveArgs'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathRemoveArgs] end; end; var _PathRemoveBackslashA: Pointer; function PathRemoveBackslashA; begin GetProcedureAddress(_PathRemoveBackslashA, shlwapidll, 'PathRemoveBackslashA'); asm MOV ESP, EBP POP EBP JMP [_PathRemoveBackslashA] end; end; var _PathRemoveBackslashW: Pointer; function PathRemoveBackslashW; begin GetProcedureAddress(_PathRemoveBackslashW, shlwapidll, 'PathRemoveBackslashW'); asm MOV ESP, EBP POP EBP JMP [_PathRemoveBackslashW] end; end; var _PathRemoveBackslash: Pointer; function PathRemoveBackslash; begin GetProcedureAddress(_PathRemoveBackslash, shlwapidll, 'PathRemoveBackslash'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathRemoveBackslash] end; end; var _PathRemoveBlanksA: Pointer; procedure PathRemoveBlanksA; begin GetProcedureAddress(_PathRemoveBlanksA, shlwapidll, 'PathRemoveBlanksA'); asm MOV ESP, EBP POP EBP JMP [_PathRemoveBlanksA] end; end; var _PathRemoveBlanksW: Pointer; procedure PathRemoveBlanksW; begin GetProcedureAddress(_PathRemoveBlanksW, shlwapidll, 'PathRemoveBlanksW'); asm MOV ESP, EBP POP EBP JMP [_PathRemoveBlanksW] end; end; var _PathRemoveBlanks: Pointer; procedure PathRemoveBlanks; begin GetProcedureAddress(_PathRemoveBlanks, shlwapidll, 'PathRemoveBlanks'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathRemoveBlanks] end; end; var _PathRemoveExtensionA: Pointer; procedure PathRemoveExtensionA; begin GetProcedureAddress(_PathRemoveExtensionA, shlwapidll, 'PathRemoveExtensionA'); asm MOV ESP, EBP POP EBP JMP [_PathRemoveExtensionA] end; end; var _PathRemoveExtensionW: Pointer; procedure PathRemoveExtensionW; begin GetProcedureAddress(_PathRemoveExtensionW, shlwapidll, 'PathRemoveExtensionW'); asm MOV ESP, EBP POP EBP JMP [_PathRemoveExtensionW] end; end; var _PathRemoveExtension: Pointer; procedure PathRemoveExtension; begin GetProcedureAddress(_PathRemoveExtension, shlwapidll, 'PathRemoveExtension'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathRemoveExtension] end; end; var _PathRemoveFileSpecA: Pointer; function PathRemoveFileSpecA; begin GetProcedureAddress(_PathRemoveFileSpecA, shlwapidll, 'PathRemoveFileSpecA'); asm MOV ESP, EBP POP EBP JMP [_PathRemoveFileSpecA] end; end; var _PathRemoveFileSpecW: Pointer; function PathRemoveFileSpecW; begin GetProcedureAddress(_PathRemoveFileSpecW, shlwapidll, 'PathRemoveFileSpecW'); asm MOV ESP, EBP POP EBP JMP [_PathRemoveFileSpecW] end; end; var _PathRemoveFileSpec: Pointer; function PathRemoveFileSpec; begin GetProcedureAddress(_PathRemoveFileSpec, shlwapidll, 'PathRemoveFileSpec'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathRemoveFileSpec] end; end; var _PathRenameExtensionA: Pointer; function PathRenameExtensionA; begin GetProcedureAddress(_PathRenameExtensionA, shlwapidll, 'PathRenameExtensionA'); asm MOV ESP, EBP POP EBP JMP [_PathRenameExtensionA] end; end; var _PathRenameExtensionW: Pointer; function PathRenameExtensionW; begin GetProcedureAddress(_PathRenameExtensionW, shlwapidll, 'PathRenameExtensionW'); asm MOV ESP, EBP POP EBP JMP [_PathRenameExtensionW] end; end; var _PathRenameExtension: Pointer; function PathRenameExtension; begin GetProcedureAddress(_PathRenameExtension, shlwapidll, 'PathRenameExtension'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathRenameExtension] end; end; var _PathSearchAndQualifyA: Pointer; function PathSearchAndQualifyA; begin GetProcedureAddress(_PathSearchAndQualifyA, shlwapidll, 'PathSearchAndQualifyA'); asm MOV ESP, EBP POP EBP JMP [_PathSearchAndQualifyA] end; end; var _PathSearchAndQualifyW: Pointer; function PathSearchAndQualifyW; begin GetProcedureAddress(_PathSearchAndQualifyW, shlwapidll, 'PathSearchAndQualifyW'); asm MOV ESP, EBP POP EBP JMP [_PathSearchAndQualifyW] end; end; var _PathSearchAndQualify: Pointer; function PathSearchAndQualify; begin GetProcedureAddress(_PathSearchAndQualify, shlwapidll, 'PathSearchAndQualify'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathSearchAndQualify] end; end; var _PathSetDlgItemPathA: Pointer; procedure PathSetDlgItemPathA; begin GetProcedureAddress(_PathSetDlgItemPathA, shlwapidll, 'PathSetDlgItemPathA'); asm MOV ESP, EBP POP EBP JMP [_PathSetDlgItemPathA] end; end; var _PathSetDlgItemPathW: Pointer; procedure PathSetDlgItemPathW; begin GetProcedureAddress(_PathSetDlgItemPathW, shlwapidll, 'PathSetDlgItemPathW'); asm MOV ESP, EBP POP EBP JMP [_PathSetDlgItemPathW] end; end; var _PathSetDlgItemPath: Pointer; procedure PathSetDlgItemPath; begin GetProcedureAddress(_PathSetDlgItemPath, shlwapidll, 'PathSetDlgItemPath'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathSetDlgItemPath] end; end; var _PathSkipRootA: Pointer; function PathSkipRootA; begin GetProcedureAddress(_PathSkipRootA, shlwapidll, 'PathSkipRootA'); asm MOV ESP, EBP POP EBP JMP [_PathSkipRootA] end; end; var _PathSkipRootW: Pointer; function PathSkipRootW; begin GetProcedureAddress(_PathSkipRootW, shlwapidll, 'PathSkipRootW'); asm MOV ESP, EBP POP EBP JMP [_PathSkipRootW] end; end; var _PathSkipRoot: Pointer; function PathSkipRoot; begin GetProcedureAddress(_PathSkipRoot, shlwapidll, 'PathSkipRoot'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathSkipRoot] end; end; var _PathStripPathA: Pointer; procedure PathStripPathA; begin GetProcedureAddress(_PathStripPathA, shlwapidll, 'PathStripPathA'); asm MOV ESP, EBP POP EBP JMP [_PathStripPathA] end; end; var _PathStripPathW: Pointer; procedure PathStripPathW; begin GetProcedureAddress(_PathStripPathW, shlwapidll, 'PathStripPathW'); asm MOV ESP, EBP POP EBP JMP [_PathStripPathW] end; end; var _PathStripPath: Pointer; procedure PathStripPath; begin GetProcedureAddress(_PathStripPath, shlwapidll, 'PathStripPath'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathStripPath] end; end; var _PathStripToRootA: Pointer; function PathStripToRootA; begin GetProcedureAddress(_PathStripToRootA, shlwapidll, 'PathStripToRootA'); asm MOV ESP, EBP POP EBP JMP [_PathStripToRootA] end; end; var _PathStripToRootW: Pointer; function PathStripToRootW; begin GetProcedureAddress(_PathStripToRootW, shlwapidll, 'PathStripToRootW'); asm MOV ESP, EBP POP EBP JMP [_PathStripToRootW] end; end; var _PathStripToRoot: Pointer; function PathStripToRoot; begin GetProcedureAddress(_PathStripToRoot, shlwapidll, 'PathStripToRoot'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathStripToRoot] end; end; var _PathUnquoteSpacesA: Pointer; procedure PathUnquoteSpacesA; begin GetProcedureAddress(_PathUnquoteSpacesA, shlwapidll, 'PathUnquoteSpacesA'); asm MOV ESP, EBP POP EBP JMP [_PathUnquoteSpacesA] end; end; var _PathUnquoteSpacesW: Pointer; procedure PathUnquoteSpacesW; begin GetProcedureAddress(_PathUnquoteSpacesW, shlwapidll, 'PathUnquoteSpacesW'); asm MOV ESP, EBP POP EBP JMP [_PathUnquoteSpacesW] end; end; var _PathUnquoteSpaces: Pointer; procedure PathUnquoteSpaces; begin GetProcedureAddress(_PathUnquoteSpaces, shlwapidll, 'PathUnquoteSpaces'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathUnquoteSpaces] end; end; var _PathMakeSystemFolderA: Pointer; function PathMakeSystemFolderA; begin GetProcedureAddress(_PathMakeSystemFolderA, shlwapidll, 'PathMakeSystemFolderA'); asm MOV ESP, EBP POP EBP JMP [_PathMakeSystemFolderA] end; end; var _PathMakeSystemFolderW: Pointer; function PathMakeSystemFolderW; begin GetProcedureAddress(_PathMakeSystemFolderW, shlwapidll, 'PathMakeSystemFolderW'); asm MOV ESP, EBP POP EBP JMP [_PathMakeSystemFolderW] end; end; var _PathMakeSystemFolder: Pointer; function PathMakeSystemFolder; begin GetProcedureAddress(_PathMakeSystemFolder, shlwapidll, 'PathMakeSystemFolder'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathMakeSystemFolder] end; end; var _PathUnmakeSystemFolderA: Pointer; function PathUnmakeSystemFolderA; begin GetProcedureAddress(_PathUnmakeSystemFolderA, shlwapidll, 'PathUnmakeSystemFolderA'); asm MOV ESP, EBP POP EBP JMP [_PathUnmakeSystemFolderA] end; end; var _PathUnmakeSystemFolderW: Pointer; function PathUnmakeSystemFolderW; begin GetProcedureAddress(_PathUnmakeSystemFolderW, shlwapidll, 'PathUnmakeSystemFolderW'); asm MOV ESP, EBP POP EBP JMP [_PathUnmakeSystemFolderW] end; end; var _PathUnmakeSystemFolder: Pointer; function PathUnmakeSystemFolder; begin GetProcedureAddress(_PathUnmakeSystemFolder, shlwapidll, 'PathUnmakeSystemFolder'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathUnmakeSystemFolder] end; end; var _PathIsSystemFolderA: Pointer; function PathIsSystemFolderA; begin GetProcedureAddress(_PathIsSystemFolderA, shlwapidll, 'PathIsSystemFolderA'); asm MOV ESP, EBP POP EBP JMP [_PathIsSystemFolderA] end; end; var _PathIsSystemFolderW: Pointer; function PathIsSystemFolderW; begin GetProcedureAddress(_PathIsSystemFolderW, shlwapidll, 'PathIsSystemFolderW'); asm MOV ESP, EBP POP EBP JMP [_PathIsSystemFolderW] end; end; var _PathIsSystemFolder: Pointer; function PathIsSystemFolder; begin GetProcedureAddress(_PathIsSystemFolder, shlwapidll, 'PathIsSystemFolder'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathIsSystemFolder] end; end; var _PathUndecorateA: Pointer; procedure PathUndecorateA; begin GetProcedureAddress(_PathUndecorateA, shlwapidll, 'PathUndecorateA'); asm MOV ESP, EBP POP EBP JMP [_PathUndecorateA] end; end; var _PathUndecorateW: Pointer; procedure PathUndecorateW; begin GetProcedureAddress(_PathUndecorateW, shlwapidll, 'PathUndecorateW'); asm MOV ESP, EBP POP EBP JMP [_PathUndecorateW] end; end; var _PathUndecorate: Pointer; procedure PathUndecorate; begin GetProcedureAddress(_PathUndecorate, shlwapidll, 'PathUndecorate'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathUndecorate] end; end; var _PathUnExpandEnvStringsA: Pointer; function PathUnExpandEnvStringsA; begin GetProcedureAddress(_PathUnExpandEnvStringsA, shlwapidll, 'PathUnExpandEnvStringsA'); asm MOV ESP, EBP POP EBP JMP [_PathUnExpandEnvStringsA] end; end; var _PathUnExpandEnvStringsW: Pointer; function PathUnExpandEnvStringsW; begin GetProcedureAddress(_PathUnExpandEnvStringsW, shlwapidll, 'PathUnExpandEnvStringsW'); asm MOV ESP, EBP POP EBP JMP [_PathUnExpandEnvStringsW] end; end; var _PathUnExpandEnvStrings: Pointer; function PathUnExpandEnvStrings; begin GetProcedureAddress(_PathUnExpandEnvStrings, shlwapidll, 'PathUnExpandEnvStrings'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathUnExpandEnvStrings] end; end; var _UrlCompareA: Pointer; function UrlCompareA; begin GetProcedureAddress(_UrlCompareA, shlwapidll, 'UrlCompareA'); asm MOV ESP, EBP POP EBP JMP [_UrlCompareA] end; end; var _UrlCompareW: Pointer; function UrlCompareW; begin GetProcedureAddress(_UrlCompareW, shlwapidll, 'UrlCompareW'); asm MOV ESP, EBP POP EBP JMP [_UrlCompareW] end; end; var _UrlCompare: Pointer; function UrlCompare; begin GetProcedureAddress(_UrlCompare, shlwapidll, 'UrlCompare'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_UrlCompare] end; end; var _UrlCombineA: Pointer; function UrlCombineA; begin GetProcedureAddress(_UrlCombineA, shlwapidll, 'UrlCombineA'); asm MOV ESP, EBP POP EBP JMP [_UrlCombineA] end; end; var _UrlCombineW: Pointer; function UrlCombineW; begin GetProcedureAddress(_UrlCombineW, shlwapidll, 'UrlCombineW'); asm MOV ESP, EBP POP EBP JMP [_UrlCombineW] end; end; var _UrlCombine: Pointer; function UrlCombine; begin GetProcedureAddress(_UrlCombine, shlwapidll, 'UrlCombine'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_UrlCombine] end; end; var _UrlCanonicalizeA: Pointer; function UrlCanonicalizeA; begin GetProcedureAddress(_UrlCanonicalizeA, shlwapidll, 'UrlCanonicalizeA'); asm MOV ESP, EBP POP EBP JMP [_UrlCanonicalizeA] end; end; var _UrlCanonicalizeW: Pointer; function UrlCanonicalizeW; begin GetProcedureAddress(_UrlCanonicalizeW, shlwapidll, 'UrlCanonicalizeW'); asm MOV ESP, EBP POP EBP JMP [_UrlCanonicalizeW] end; end; var _UrlCanonicalize: Pointer; function UrlCanonicalize; begin GetProcedureAddress(_UrlCanonicalize, shlwapidll, 'UrlCanonicalize'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_UrlCanonicalize] end; end; var _UrlIsOpaqueA: Pointer; function UrlIsOpaqueA; begin GetProcedureAddress(_UrlIsOpaqueA, shlwapidll, 'UrlIsOpaqueA'); asm MOV ESP, EBP POP EBP JMP [_UrlIsOpaqueA] end; end; var _UrlIsOpaqueW: Pointer; function UrlIsOpaqueW; begin GetProcedureAddress(_UrlIsOpaqueW, shlwapidll, 'UrlIsOpaqueW'); asm MOV ESP, EBP POP EBP JMP [_UrlIsOpaqueW] end; end; var _UrlIsOpaque: Pointer; function UrlIsOpaque; begin GetProcedureAddress(_UrlIsOpaque, shlwapidll, 'UrlIsOpaque'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_UrlIsOpaque] end; end; var _UrlIsNoHistoryA: Pointer; function UrlIsNoHistoryA; begin GetProcedureAddress(_UrlIsNoHistoryA, shlwapidll, 'UrlIsNoHistoryA'); asm MOV ESP, EBP POP EBP JMP [_UrlIsNoHistoryA] end; end; var _UrlIsNoHistoryW: Pointer; function UrlIsNoHistoryW; begin GetProcedureAddress(_UrlIsNoHistoryW, shlwapidll, 'UrlIsNoHistoryW'); asm MOV ESP, EBP POP EBP JMP [_UrlIsNoHistoryW] end; end; var _UrlIsNoHistory: Pointer; function UrlIsNoHistory; begin GetProcedureAddress(_UrlIsNoHistory, shlwapidll, 'UrlIsNoHistory'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_UrlIsNoHistory] end; end; var _UrlIsA: Pointer; function UrlIsA; begin GetProcedureAddress(_UrlIsA, shlwapidll, 'UrlIsA'); asm MOV ESP, EBP POP EBP JMP [_UrlIsA] end; end; var _UrlIsW: Pointer; function UrlIsW; begin GetProcedureAddress(_UrlIsW, shlwapidll, 'UrlIsW'); asm MOV ESP, EBP POP EBP JMP [_UrlIsW] end; end; var _UrlIs: Pointer; function UrlIs; begin GetProcedureAddress(_UrlIs, shlwapidll, 'UrlIs'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_UrlIs] end; end; var _UrlGetLocationA: Pointer; function UrlGetLocationA; begin GetProcedureAddress(_UrlGetLocationA, shlwapidll, 'UrlGetLocationA'); asm MOV ESP, EBP POP EBP JMP [_UrlGetLocationA] end; end; var _UrlGetLocationW: Pointer; function UrlGetLocationW; begin GetProcedureAddress(_UrlGetLocationW, shlwapidll, 'UrlGetLocationW'); asm MOV ESP, EBP POP EBP JMP [_UrlGetLocationW] end; end; var _UrlGetLocation: Pointer; function UrlGetLocation; begin GetProcedureAddress(_UrlGetLocation, shlwapidll, 'UrlGetLocation'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_UrlGetLocation] end; end; var _UrlUnescapeA: Pointer; function UrlUnescapeA; begin GetProcedureAddress(_UrlUnescapeA, shlwapidll, 'UrlUnescapeA'); asm MOV ESP, EBP POP EBP JMP [_UrlUnescapeA] end; end; var _UrlUnescapeW: Pointer; function UrlUnescapeW; begin GetProcedureAddress(_UrlUnescapeW, shlwapidll, 'UrlUnescapeW'); asm MOV ESP, EBP POP EBP JMP [_UrlUnescapeW] end; end; var _UrlUnescape: Pointer; function UrlUnescape; begin GetProcedureAddress(_UrlUnescape, shlwapidll, 'UrlUnescape'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_UrlUnescape] end; end; var _UrlEscapeA: Pointer; function UrlEscapeA; begin GetProcedureAddress(_UrlEscapeA, shlwapidll, 'UrlEscapeA'); asm MOV ESP, EBP POP EBP JMP [_UrlEscapeA] end; end; var _UrlEscapeW: Pointer; function UrlEscapeW; begin GetProcedureAddress(_UrlEscapeW, shlwapidll, 'UrlEscapeW'); asm MOV ESP, EBP POP EBP JMP [_UrlEscapeW] end; end; var _UrlEscape: Pointer; function UrlEscape; begin GetProcedureAddress(_UrlEscape, shlwapidll, 'UrlEscape'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_UrlEscape] end; end; var _UrlCreateFromPathA: Pointer; function UrlCreateFromPathA; begin GetProcedureAddress(_UrlCreateFromPathA, shlwapidll, 'UrlCreateFromPathA'); asm MOV ESP, EBP POP EBP JMP [_UrlCreateFromPathA] end; end; var _UrlCreateFromPathW: Pointer; function UrlCreateFromPathW; begin GetProcedureAddress(_UrlCreateFromPathW, shlwapidll, 'UrlCreateFromPathW'); asm MOV ESP, EBP POP EBP JMP [_UrlCreateFromPathW] end; end; var _UrlCreateFromPath: Pointer; function UrlCreateFromPath; begin GetProcedureAddress(_UrlCreateFromPath, shlwapidll, 'UrlCreateFromPath'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_UrlCreateFromPath] end; end; var _PathCreateFromUrlA: Pointer; function PathCreateFromUrlA; begin GetProcedureAddress(_PathCreateFromUrlA, shlwapidll, 'PathCreateFromUrlA'); asm MOV ESP, EBP POP EBP JMP [_PathCreateFromUrlA] end; end; var _PathCreateFromUrlW: Pointer; function PathCreateFromUrlW; begin GetProcedureAddress(_PathCreateFromUrlW, shlwapidll, 'PathCreateFromUrlW'); asm MOV ESP, EBP POP EBP JMP [_PathCreateFromUrlW] end; end; var _PathCreateFromUrl: Pointer; function PathCreateFromUrl; begin GetProcedureAddress(_PathCreateFromUrl, shlwapidll, 'PathCreateFromUrl'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_PathCreateFromUrl] end; end; var _UrlHashA: Pointer; function UrlHashA; begin GetProcedureAddress(_UrlHashA, shlwapidll, 'UrlHashA'); asm MOV ESP, EBP POP EBP JMP [_UrlHashA] end; end; var _UrlHashW: Pointer; function UrlHashW; begin GetProcedureAddress(_UrlHashW, shlwapidll, 'UrlHashW'); asm MOV ESP, EBP POP EBP JMP [_UrlHashW] end; end; var _UrlHash: Pointer; function UrlHash; begin GetProcedureAddress(_UrlHash, shlwapidll, 'UrlHash'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_UrlHash] end; end; var _UrlGetPartW: Pointer; function UrlGetPartW; begin GetProcedureAddress(_UrlGetPartW, shlwapidll, 'UrlGetPartW'); asm MOV ESP, EBP POP EBP JMP [_UrlGetPartW] end; end; var _UrlGetPartA: Pointer; function UrlGetPartA; begin GetProcedureAddress(_UrlGetPartA, shlwapidll, 'UrlGetPartA'); asm MOV ESP, EBP POP EBP JMP [_UrlGetPartA] end; end; var _UrlGetPart: Pointer; function UrlGetPart; begin GetProcedureAddress(_UrlGetPart, shlwapidll, 'UrlGetPart'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_UrlGetPart] end; end; var _UrlApplySchemeA: Pointer; function UrlApplySchemeA; begin GetProcedureAddress(_UrlApplySchemeA, shlwapidll, 'UrlApplySchemeA'); asm MOV ESP, EBP POP EBP JMP [_UrlApplySchemeA] end; end; var _UrlApplySchemeW: Pointer; function UrlApplySchemeW; begin GetProcedureAddress(_UrlApplySchemeW, shlwapidll, 'UrlApplySchemeW'); asm MOV ESP, EBP POP EBP JMP [_UrlApplySchemeW] end; end; var _UrlApplyScheme: Pointer; function UrlApplyScheme; begin GetProcedureAddress(_UrlApplyScheme, shlwapidll, 'UrlApplyScheme'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_UrlApplyScheme] end; end; var _HashData: Pointer; function HashData; begin GetProcedureAddress(_HashData, shlwapidll, 'HashData'); asm MOV ESP, EBP POP EBP JMP [_HashData] end; end; var _SHDeleteEmptyKeyA: Pointer; function SHDeleteEmptyKeyA; begin GetProcedureAddress(_SHDeleteEmptyKeyA, shlwapidll, 'SHDeleteEmptyKeyA'); asm MOV ESP, EBP POP EBP JMP [_SHDeleteEmptyKeyA] end; end; var _SHDeleteEmptyKeyW: Pointer; function SHDeleteEmptyKeyW; begin GetProcedureAddress(_SHDeleteEmptyKeyW, shlwapidll, 'SHDeleteEmptyKeyW'); asm MOV ESP, EBP POP EBP JMP [_SHDeleteEmptyKeyW] end; end; var _SHDeleteEmptyKey: Pointer; function SHDeleteEmptyKey; begin GetProcedureAddress(_SHDeleteEmptyKey, shlwapidll, 'SHDeleteEmptyKey'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHDeleteEmptyKey] end; end; var _SHDeleteKeyA: Pointer; function SHDeleteKeyA; begin GetProcedureAddress(_SHDeleteKeyA, shlwapidll, 'SHDeleteKeyA'); asm MOV ESP, EBP POP EBP JMP [_SHDeleteKeyA] end; end; var _SHDeleteKeyW: Pointer; function SHDeleteKeyW; begin GetProcedureAddress(_SHDeleteKeyW, shlwapidll, 'SHDeleteKeyW'); asm MOV ESP, EBP POP EBP JMP [_SHDeleteKeyW] end; end; var _SHDeleteKey: Pointer; function SHDeleteKey; begin GetProcedureAddress(_SHDeleteKey, shlwapidll, 'SHDeleteKey'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHDeleteKey] end; end; var _SHRegDuplicateHKey: Pointer; function SHRegDuplicateHKey; begin GetProcedureAddress(_SHRegDuplicateHKey, shlwapidll, 'SHRegDuplicateHKey'); asm MOV ESP, EBP POP EBP JMP [_SHRegDuplicateHKey] end; end; var _SHDeleteValueA: Pointer; function SHDeleteValueA; begin GetProcedureAddress(_SHDeleteValueA, shlwapidll, 'SHDeleteValueA'); asm MOV ESP, EBP POP EBP JMP [_SHDeleteValueA] end; end; var _SHDeleteValueW: Pointer; function SHDeleteValueW; begin GetProcedureAddress(_SHDeleteValueW, shlwapidll, 'SHDeleteValueW'); asm MOV ESP, EBP POP EBP JMP [_SHDeleteValueW] end; end; var _SHDeleteValue: Pointer; function SHDeleteValue; begin GetProcedureAddress(_SHDeleteValue, shlwapidll, 'SHDeleteValue'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHDeleteValue] end; end; var _SHGetValueA: Pointer; function SHGetValueA; begin GetProcedureAddress(_SHGetValueA, shlwapidll, 'SHGetValueA'); asm MOV ESP, EBP POP EBP JMP [_SHGetValueA] end; end; var _SHGetValueW: Pointer; function SHGetValueW; begin GetProcedureAddress(_SHGetValueW, shlwapidll, 'SHGetValueW'); asm MOV ESP, EBP POP EBP JMP [_SHGetValueW] end; end; var _SHGetValue: Pointer; function SHGetValue; begin GetProcedureAddress(_SHGetValue, shlwapidll, 'SHGetValue'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHGetValue] end; end; var _SHSetValueA: Pointer; function SHSetValueA; begin GetProcedureAddress(_SHSetValueA, shlwapidll, 'SHSetValueA'); asm MOV ESP, EBP POP EBP JMP [_SHSetValueA] end; end; var _SHSetValueW: Pointer; function SHSetValueW; begin GetProcedureAddress(_SHSetValueW, shlwapidll, 'SHSetValueW'); asm MOV ESP, EBP POP EBP JMP [_SHSetValueW] end; end; var _SHSetValue: Pointer; function SHSetValue; begin GetProcedureAddress(_SHSetValue, shlwapidll, 'SHSetValue'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHSetValue] end; end; var _SHQueryValueExA: Pointer; function SHQueryValueExA; begin GetProcedureAddress(_SHQueryValueExA, shlwapidll, 'SHQueryValueExA'); asm MOV ESP, EBP POP EBP JMP [_SHQueryValueExA] end; end; var _SHQueryValueExW: Pointer; function SHQueryValueExW; begin GetProcedureAddress(_SHQueryValueExW, shlwapidll, 'SHQueryValueExW'); asm MOV ESP, EBP POP EBP JMP [_SHQueryValueExW] end; end; var _SHQueryValueEx: Pointer; function SHQueryValueEx; begin GetProcedureAddress(_SHQueryValueEx, shlwapidll, 'SHQueryValueEx'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHQueryValueEx] end; end; var _SHEnumKeyExA: Pointer; function SHEnumKeyExA; begin GetProcedureAddress(_SHEnumKeyExA, shlwapidll, 'SHEnumKeyExA'); asm MOV ESP, EBP POP EBP JMP [_SHEnumKeyExA] end; end; var _SHEnumKeyExW: Pointer; function SHEnumKeyExW; begin GetProcedureAddress(_SHEnumKeyExW, shlwapidll, 'SHEnumKeyExW'); asm MOV ESP, EBP POP EBP JMP [_SHEnumKeyExW] end; end; var _SHEnumKeyEx: Pointer; function SHEnumKeyEx; begin GetProcedureAddress(_SHEnumKeyEx, shlwapidll, 'SHEnumKeyEx'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHEnumKeyEx] end; end; var _SHEnumValueA: Pointer; function SHEnumValueA; begin GetProcedureAddress(_SHEnumValueA, shlwapidll, 'SHEnumValueA'); asm MOV ESP, EBP POP EBP JMP [_SHEnumValueA] end; end; var _SHEnumValueW: Pointer; function SHEnumValueW; begin GetProcedureAddress(_SHEnumValueW, shlwapidll, 'SHEnumValueW'); asm MOV ESP, EBP POP EBP JMP [_SHEnumValueW] end; end; var _SHEnumValue: Pointer; function SHEnumValue; begin GetProcedureAddress(_SHEnumValue, shlwapidll, 'SHEnumValue'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHEnumValue] end; end; var _SHQueryInfoKeyA: Pointer; function SHQueryInfoKeyA; begin GetProcedureAddress(_SHQueryInfoKeyA, shlwapidll, 'SHQueryInfoKeyA'); asm MOV ESP, EBP POP EBP JMP [_SHQueryInfoKeyA] end; end; var _SHQueryInfoKeyW: Pointer; function SHQueryInfoKeyW; begin GetProcedureAddress(_SHQueryInfoKeyW, shlwapidll, 'SHQueryInfoKeyW'); asm MOV ESP, EBP POP EBP JMP [_SHQueryInfoKeyW] end; end; var _SHQueryInfoKey: Pointer; function SHQueryInfoKey; begin GetProcedureAddress(_SHQueryInfoKey, shlwapidll, 'SHQueryInfoKey'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHQueryInfoKey] end; end; var _SHCopyKeyA: Pointer; function SHCopyKeyA; begin GetProcedureAddress(_SHCopyKeyA, shlwapidll, 'SHCopyKeyA'); asm MOV ESP, EBP POP EBP JMP [_SHCopyKeyA] end; end; var _SHCopyKeyW: Pointer; function SHCopyKeyW; begin GetProcedureAddress(_SHCopyKeyW, shlwapidll, 'SHCopyKeyW'); asm MOV ESP, EBP POP EBP JMP [_SHCopyKeyW] end; end; var _SHCopyKey: Pointer; function SHCopyKey; begin GetProcedureAddress(_SHCopyKey, shlwapidll, 'SHCopyKey'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHCopyKey] end; end; var _SHRegGetPathA: Pointer; function SHRegGetPathA; begin GetProcedureAddress(_SHRegGetPathA, shlwapidll, 'SHRegGetPathA'); asm MOV ESP, EBP POP EBP JMP [_SHRegGetPathA] end; end; var _SHRegGetPathW: Pointer; function SHRegGetPathW; begin GetProcedureAddress(_SHRegGetPathW, shlwapidll, 'SHRegGetPathW'); asm MOV ESP, EBP POP EBP JMP [_SHRegGetPathW] end; end; var _SHRegGetPath: Pointer; function SHRegGetPath; begin GetProcedureAddress(_SHRegGetPath, shlwapidll, 'SHRegGetPath'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegGetPath] end; end; var _SHRegSetPathA: Pointer; function SHRegSetPathA; begin GetProcedureAddress(_SHRegSetPathA, shlwapidll, 'SHRegSetPathA'); asm MOV ESP, EBP POP EBP JMP [_SHRegSetPathA] end; end; var _SHRegSetPathW: Pointer; function SHRegSetPathW; begin GetProcedureAddress(_SHRegSetPathW, shlwapidll, 'SHRegSetPathW'); asm MOV ESP, EBP POP EBP JMP [_SHRegSetPathW] end; end; var _SHRegSetPath: Pointer; function SHRegSetPath; begin GetProcedureAddress(_SHRegSetPath, shlwapidll, 'SHRegSetPath'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegSetPath] end; end; var _SHRegCreateUSKeyA: Pointer; function SHRegCreateUSKeyA; begin GetProcedureAddress(_SHRegCreateUSKeyA, shlwapidll, 'SHRegCreateUSKeyA'); asm MOV ESP, EBP POP EBP JMP [_SHRegCreateUSKeyA] end; end; var _SHRegCreateUSKeyW: Pointer; function SHRegCreateUSKeyW; begin GetProcedureAddress(_SHRegCreateUSKeyW, shlwapidll, 'SHRegCreateUSKeyW'); asm MOV ESP, EBP POP EBP JMP [_SHRegCreateUSKeyW] end; end; var _SHRegCreateUSKey: Pointer; function SHRegCreateUSKey; begin GetProcedureAddress(_SHRegCreateUSKey, shlwapidll, 'SHRegCreateUSKey'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegCreateUSKey] end; end; var _SHRegOpenUSKeyA: Pointer; function SHRegOpenUSKeyA; begin GetProcedureAddress(_SHRegOpenUSKeyA, shlwapidll, 'SHRegOpenUSKeyA'); asm MOV ESP, EBP POP EBP JMP [_SHRegOpenUSKeyA] end; end; var _SHRegOpenUSKeyW: Pointer; function SHRegOpenUSKeyW; begin GetProcedureAddress(_SHRegOpenUSKeyW, shlwapidll, 'SHRegOpenUSKeyW'); asm MOV ESP, EBP POP EBP JMP [_SHRegOpenUSKeyW] end; end; var _SHRegOpenUSKey: Pointer; function SHRegOpenUSKey; begin GetProcedureAddress(_SHRegOpenUSKey, shlwapidll, 'SHRegOpenUSKey'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegOpenUSKey] end; end; var _SHRegQueryUSValueA: Pointer; function SHRegQueryUSValueA; begin GetProcedureAddress(_SHRegQueryUSValueA, shlwapidll, 'SHRegQueryUSValueA'); asm MOV ESP, EBP POP EBP JMP [_SHRegQueryUSValueA] end; end; var _SHRegQueryUSValueW: Pointer; function SHRegQueryUSValueW; begin GetProcedureAddress(_SHRegQueryUSValueW, shlwapidll, 'SHRegQueryUSValueW'); asm MOV ESP, EBP POP EBP JMP [_SHRegQueryUSValueW] end; end; var _SHRegQueryUSValue: Pointer; function SHRegQueryUSValue; begin GetProcedureAddress(_SHRegQueryUSValue, shlwapidll, 'SHRegQueryUSValue'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegQueryUSValue] end; end; var _SHRegWriteUSValueA: Pointer; function SHRegWriteUSValueA; begin GetProcedureAddress(_SHRegWriteUSValueA, shlwapidll, 'SHRegWriteUSValueA'); asm MOV ESP, EBP POP EBP JMP [_SHRegWriteUSValueA] end; end; var _SHRegWriteUSValueW: Pointer; function SHRegWriteUSValueW; begin GetProcedureAddress(_SHRegWriteUSValueW, shlwapidll, 'SHRegWriteUSValueW'); asm MOV ESP, EBP POP EBP JMP [_SHRegWriteUSValueW] end; end; var _SHRegWriteUSValue: Pointer; function SHRegWriteUSValue; begin GetProcedureAddress(_SHRegWriteUSValue, shlwapidll, 'SHRegWriteUSValue'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegWriteUSValue] end; end; var _SHRegDeleteUSValueA: Pointer; function SHRegDeleteUSValueA; begin GetProcedureAddress(_SHRegDeleteUSValueA, shlwapidll, 'SHRegDeleteUSValueA'); asm MOV ESP, EBP POP EBP JMP [_SHRegDeleteUSValueA] end; end; var _SHRegDeleteUSValueW: Pointer; function SHRegDeleteUSValueW; begin GetProcedureAddress(_SHRegDeleteUSValueW, shlwapidll, 'SHRegDeleteUSValueW'); asm MOV ESP, EBP POP EBP JMP [_SHRegDeleteUSValueW] end; end; var _SHRegDeleteUSValue: Pointer; function SHRegDeleteUSValue; begin GetProcedureAddress(_SHRegDeleteUSValue, shlwapidll, 'SHRegDeleteUSValue'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegDeleteUSValue] end; end; var _SHRegDeleteEmptyUSKeyW: Pointer; function SHRegDeleteEmptyUSKeyW; begin GetProcedureAddress(_SHRegDeleteEmptyUSKeyW, shlwapidll, 'SHRegDeleteEmptyUSKeyW'); asm MOV ESP, EBP POP EBP JMP [_SHRegDeleteEmptyUSKeyW] end; end; var _SHRegDeleteEmptyUSKeyA: Pointer; function SHRegDeleteEmptyUSKeyA; begin GetProcedureAddress(_SHRegDeleteEmptyUSKeyA, shlwapidll, 'SHRegDeleteEmptyUSKeyA'); asm MOV ESP, EBP POP EBP JMP [_SHRegDeleteEmptyUSKeyA] end; end; var _SHRegDeleteEmptyUSKey: Pointer; function SHRegDeleteEmptyUSKey; begin GetProcedureAddress(_SHRegDeleteEmptyUSKey, shlwapidll, 'SHRegDeleteEmptyUSKey'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegDeleteEmptyUSKey] end; end; var _SHRegEnumUSKeyA: Pointer; function SHRegEnumUSKeyA; begin GetProcedureAddress(_SHRegEnumUSKeyA, shlwapidll, 'SHRegEnumUSKeyA'); asm MOV ESP, EBP POP EBP JMP [_SHRegEnumUSKeyA] end; end; var _SHRegEnumUSKeyW: Pointer; function SHRegEnumUSKeyW; begin GetProcedureAddress(_SHRegEnumUSKeyW, shlwapidll, 'SHRegEnumUSKeyW'); asm MOV ESP, EBP POP EBP JMP [_SHRegEnumUSKeyW] end; end; var _SHRegEnumUSKey: Pointer; function SHRegEnumUSKey; begin GetProcedureAddress(_SHRegEnumUSKey, shlwapidll, 'SHRegEnumUSKey'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegEnumUSKey] end; end; var _SHRegEnumUSValueA: Pointer; function SHRegEnumUSValueA; begin GetProcedureAddress(_SHRegEnumUSValueA, shlwapidll, 'SHRegEnumUSValueA'); asm MOV ESP, EBP POP EBP JMP [_SHRegEnumUSValueA] end; end; var _SHRegEnumUSValueW: Pointer; function SHRegEnumUSValueW; begin GetProcedureAddress(_SHRegEnumUSValueW, shlwapidll, 'SHRegEnumUSValueW'); asm MOV ESP, EBP POP EBP JMP [_SHRegEnumUSValueW] end; end; var _SHRegEnumUSValue: Pointer; function SHRegEnumUSValue; begin GetProcedureAddress(_SHRegEnumUSValue, shlwapidll, 'SHRegEnumUSValue'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegEnumUSValue] end; end; var _SHRegQueryInfoUSKeyA: Pointer; function SHRegQueryInfoUSKeyA; begin GetProcedureAddress(_SHRegQueryInfoUSKeyA, shlwapidll, 'SHRegQueryInfoUSKeyA'); asm MOV ESP, EBP POP EBP JMP [_SHRegQueryInfoUSKeyA] end; end; var _SHRegQueryInfoUSKeyW: Pointer; function SHRegQueryInfoUSKeyW; begin GetProcedureAddress(_SHRegQueryInfoUSKeyW, shlwapidll, 'SHRegQueryInfoUSKeyW'); asm MOV ESP, EBP POP EBP JMP [_SHRegQueryInfoUSKeyW] end; end; var _SHRegQueryInfoUSKey: Pointer; function SHRegQueryInfoUSKey; begin GetProcedureAddress(_SHRegQueryInfoUSKey, shlwapidll, 'SHRegQueryInfoUSKey'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegQueryInfoUSKey] end; end; var _SHRegCloseUSKey: Pointer; function SHRegCloseUSKey; begin GetProcedureAddress(_SHRegCloseUSKey, shlwapidll, 'SHRegCloseUSKey'); asm MOV ESP, EBP POP EBP JMP [_SHRegCloseUSKey] end; end; var _SHRegGetUSValueA: Pointer; function SHRegGetUSValueA; begin GetProcedureAddress(_SHRegGetUSValueA, shlwapidll, 'SHRegGetUSValueA'); asm MOV ESP, EBP POP EBP JMP [_SHRegGetUSValueA] end; end; var _SHRegGetUSValueW: Pointer; function SHRegGetUSValueW; begin GetProcedureAddress(_SHRegGetUSValueW, shlwapidll, 'SHRegGetUSValueW'); asm MOV ESP, EBP POP EBP JMP [_SHRegGetUSValueW] end; end; var _SHRegGetUSValue: Pointer; function SHRegGetUSValue; begin GetProcedureAddress(_SHRegGetUSValue, shlwapidll, 'SHRegGetUSValue'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegGetUSValue] end; end; var _SHRegSetUSValueA: Pointer; function SHRegSetUSValueA; begin GetProcedureAddress(_SHRegSetUSValueA, shlwapidll, 'SHRegSetUSValueA'); asm MOV ESP, EBP POP EBP JMP [_SHRegSetUSValueA] end; end; var _SHRegSetUSValueW: Pointer; function SHRegSetUSValueW; begin GetProcedureAddress(_SHRegSetUSValueW, shlwapidll, 'SHRegSetUSValueW'); asm MOV ESP, EBP POP EBP JMP [_SHRegSetUSValueW] end; end; var _SHRegSetUSValue: Pointer; function SHRegSetUSValue; begin GetProcedureAddress(_SHRegSetUSValue, shlwapidll, 'SHRegSetUSValue'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegSetUSValue] end; end; var _SHRegGetBoolUSValueA: Pointer; function SHRegGetBoolUSValueA; begin GetProcedureAddress(_SHRegGetBoolUSValueA, shlwapidll, 'SHRegGetBoolUSValueA'); asm MOV ESP, EBP POP EBP JMP [_SHRegGetBoolUSValueA] end; end; var _SHRegGetBoolUSValueW: Pointer; function SHRegGetBoolUSValueW; begin GetProcedureAddress(_SHRegGetBoolUSValueW, shlwapidll, 'SHRegGetBoolUSValueW'); asm MOV ESP, EBP POP EBP JMP [_SHRegGetBoolUSValueW] end; end; var _SHRegGetBoolUSValue: Pointer; function SHRegGetBoolUSValue; begin GetProcedureAddress(_SHRegGetBoolUSValue, shlwapidll, 'SHRegGetBoolUSValue'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegGetBoolUSValue] end; end; var _AssocCreate: Pointer; function AssocCreate; begin GetProcedureAddress(_AssocCreate, shlwapidll, 'AssocCreate'); asm MOV ESP, EBP POP EBP JMP [_AssocCreate] end; end; var _AssocQueryStringA: Pointer; function AssocQueryStringA; begin GetProcedureAddress(_AssocQueryStringA, shlwapidll, 'AssocQueryStringA'); asm MOV ESP, EBP POP EBP JMP [_AssocQueryStringA] end; end; var _AssocQueryStringW: Pointer; function AssocQueryStringW; begin GetProcedureAddress(_AssocQueryStringW, shlwapidll, 'AssocQueryStringW'); asm MOV ESP, EBP POP EBP JMP [_AssocQueryStringW] end; end; var _AssocQueryString: Pointer; function AssocQueryString; begin GetProcedureAddress(_AssocQueryString, shlwapidll, 'AssocQueryString'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_AssocQueryString] end; end; var _AssocQueryStringByKeyA: Pointer; function AssocQueryStringByKeyA; begin GetProcedureAddress(_AssocQueryStringByKeyA, shlwapidll, 'AssocQueryStringByKeyA'); asm MOV ESP, EBP POP EBP JMP [_AssocQueryStringByKeyA] end; end; var _AssocQueryStringByKeyW: Pointer; function AssocQueryStringByKeyW; begin GetProcedureAddress(_AssocQueryStringByKeyW, shlwapidll, 'AssocQueryStringByKeyW'); asm MOV ESP, EBP POP EBP JMP [_AssocQueryStringByKeyW] end; end; var _AssocQueryStringByKey: Pointer; function AssocQueryStringByKey; begin GetProcedureAddress(_AssocQueryStringByKey, shlwapidll, 'AssocQueryStringByKey'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_AssocQueryStringByKey] end; end; var _AssocQueryKeyA: Pointer; function AssocQueryKeyA; begin GetProcedureAddress(_AssocQueryKeyA, shlwapidll, 'AssocQueryKeyA'); asm MOV ESP, EBP POP EBP JMP [_AssocQueryKeyA] end; end; var _AssocQueryKeyW: Pointer; function AssocQueryKeyW; begin GetProcedureAddress(_AssocQueryKeyW, shlwapidll, 'AssocQueryKeyW'); asm MOV ESP, EBP POP EBP JMP [_AssocQueryKeyW] end; end; var _AssocQueryKey: Pointer; function AssocQueryKey; begin GetProcedureAddress(_AssocQueryKey, shlwapidll, 'AssocQueryKey'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_AssocQueryKey] end; end; var _SHOpenRegStreamA: Pointer; function SHOpenRegStreamA; begin GetProcedureAddress(_SHOpenRegStreamA, shlwapidll, 'SHOpenRegStreamA'); asm MOV ESP, EBP POP EBP JMP [_SHOpenRegStreamA] end; end; var _SHOpenRegStreamW: Pointer; function SHOpenRegStreamW; begin GetProcedureAddress(_SHOpenRegStreamW, shlwapidll, 'SHOpenRegStreamW'); asm MOV ESP, EBP POP EBP JMP [_SHOpenRegStreamW] end; end; var _SHOpenRegStream: Pointer; function SHOpenRegStream; begin GetProcedureAddress(_SHOpenRegStream, shlwapidll, 'SHOpenRegStream'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHOpenRegStream] end; end; var _SHOpenRegStream2A: Pointer; function SHOpenRegStream2A; begin GetProcedureAddress(_SHOpenRegStream2A, shlwapidll, 'SHOpenRegStream2A'); asm MOV ESP, EBP POP EBP JMP [_SHOpenRegStream2A] end; end; var _SHOpenRegStream2W: Pointer; function SHOpenRegStream2W; begin GetProcedureAddress(_SHOpenRegStream2W, shlwapidll, 'SHOpenRegStream2W'); asm MOV ESP, EBP POP EBP JMP [_SHOpenRegStream2W] end; end; var _SHOpenRegStream2: Pointer; function SHOpenRegStream2; begin GetProcedureAddress(_SHOpenRegStream2, shlwapidll, 'SHOpenRegStream2'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHOpenRegStream2] end; end; var _SHCreateStreamOnFileA: Pointer; function SHCreateStreamOnFileA; begin GetProcedureAddress(_SHCreateStreamOnFileA, shlwapidll, 'SHCreateStreamOnFileA'); asm MOV ESP, EBP POP EBP JMP [_SHCreateStreamOnFileA] end; end; var _SHCreateStreamOnFileW: Pointer; function SHCreateStreamOnFileW; begin GetProcedureAddress(_SHCreateStreamOnFileW, shlwapidll, 'SHCreateStreamOnFileW'); asm MOV ESP, EBP POP EBP JMP [_SHCreateStreamOnFileW] end; end; var _SHCreateStreamOnFile: Pointer; function SHCreateStreamOnFile; begin GetProcedureAddress(_SHCreateStreamOnFile, shlwapidll, 'SHCreateStreamOnFile'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHCreateStreamOnFile] end; end; var _SHAutoComplete: Pointer; function SHAutoComplete; begin GetProcedureAddress(_SHAutoComplete, shlwapidll, 'SHAutoComplete'); asm MOV ESP, EBP POP EBP JMP [_SHAutoComplete] end; end; var _SHSetThreadRef: Pointer; function SHSetThreadRef; begin GetProcedureAddress(_SHSetThreadRef, shlwapidll, 'SHSetThreadRef'); asm MOV ESP, EBP POP EBP JMP [_SHSetThreadRef] end; end; var _SHGetThreadRef: Pointer; function SHGetThreadRef; begin GetProcedureAddress(_SHGetThreadRef, shlwapidll, 'SHGetThreadRef'); asm MOV ESP, EBP POP EBP JMP [_SHGetThreadRef] end; end; var _SHSkipJunction: Pointer; function SHSkipJunction; begin GetProcedureAddress(_SHSkipJunction, shlwapidll, 'SHSkipJunction'); asm MOV ESP, EBP POP EBP JMP [_SHSkipJunction] end; end; var _SHCreateThread: Pointer; function SHCreateThread; begin GetProcedureAddress(_SHCreateThread, shlwapidll, 'SHCreateThread'); asm MOV ESP, EBP POP EBP JMP [_SHCreateThread] end; end; var _SHReleaseThreadRef: Pointer; function SHReleaseThreadRef; begin GetProcedureAddress(_SHReleaseThreadRef, shlwapidll, 'SHReleaseThreadRef'); asm MOV ESP, EBP POP EBP JMP [_SHReleaseThreadRef] end; end; var _SHCreateShellPalette: Pointer; function SHCreateShellPalette; begin GetProcedureAddress(_SHCreateShellPalette, shlwapidll, 'SHCreateShellPalette'); asm MOV ESP, EBP POP EBP JMP [_SHCreateShellPalette] end; end; var _ColorRGBToHLS: Pointer; procedure ColorRGBToHLS; begin GetProcedureAddress(_ColorRGBToHLS, shlwapidll, 'ColorRGBToHLS'); asm MOV ESP, EBP POP EBP JMP [_ColorRGBToHLS] end; end; var _ColorHLSToRGB: Pointer; function ColorHLSToRGB; begin GetProcedureAddress(_ColorHLSToRGB, shlwapidll, 'ColorHLSToRGB'); asm MOV ESP, EBP POP EBP JMP [_ColorHLSToRGB] end; end; var _ColorAdjustLuma: Pointer; function ColorAdjustLuma; begin GetProcedureAddress(_ColorAdjustLuma, shlwapidll, 'ColorAdjustLuma'); asm MOV ESP, EBP POP EBP JMP [_ColorAdjustLuma] end; end; var _StrToInt64ExA: Pointer; function StrToInt64ExA; begin GetProcedureAddress(_StrToInt64ExA, shlwapidll, 'StrToInt64ExA'); asm MOV ESP, EBP POP EBP JMP [_StrToInt64ExA] end; end; var _StrToInt64ExW: Pointer; function StrToInt64ExW; begin GetProcedureAddress(_StrToInt64ExW, shlwapidll, 'StrToInt64ExW'); asm MOV ESP, EBP POP EBP JMP [_StrToInt64ExW] end; end; var _StrToInt64Ex: Pointer; function StrToInt64Ex; begin GetProcedureAddress(_StrToInt64Ex, shlwapidll, 'StrToInt64Ex'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrToInt64Ex] end; end; var _IsCharSpaceA: Pointer; function IsCharSpaceA; begin GetProcedureAddress(_IsCharSpaceA, shlwapidll, 'IsCharSpaceA'); asm MOV ESP, EBP POP EBP JMP [_IsCharSpaceA] end; end; var _IsCharSpaceW: Pointer; function IsCharSpaceW; begin GetProcedureAddress(_IsCharSpaceW, shlwapidll, 'IsCharSpaceW'); asm MOV ESP, EBP POP EBP JMP [_IsCharSpaceW] end; end; var _IsCharSpace: Pointer; function IsCharSpace; begin GetProcedureAddress(_IsCharSpace, shlwapidll, 'IsCharSpace'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_IsCharSpace] end; end; var _StrCmpCA: Pointer; function StrCmpCA; begin GetProcedureAddress(_StrCmpCA, shlwapidll, 'StrCmpCA'); asm MOV ESP, EBP POP EBP JMP [_StrCmpCA] end; end; var _StrCmpCW: Pointer; function StrCmpCW; begin GetProcedureAddress(_StrCmpCW, shlwapidll, 'StrCmpCW'); asm MOV ESP, EBP POP EBP JMP [_StrCmpCW] end; end; var _StrCmpC: Pointer; function StrCmpC; begin GetProcedureAddress(_StrCmpC, shlwapidll, 'StrCmpC'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrCmpC] end; end; var _StrCmpICA: Pointer; function StrCmpICA; begin GetProcedureAddress(_StrCmpICA, shlwapidll, 'StrCmpICA'); asm MOV ESP, EBP POP EBP JMP [_StrCmpICA] end; end; var _StrCmpICW: Pointer; function StrCmpICW; begin GetProcedureAddress(_StrCmpICW, shlwapidll, 'StrCmpICW'); asm MOV ESP, EBP POP EBP JMP [_StrCmpICW] end; end; var _StrCmpIC: Pointer; function StrCmpIC; begin GetProcedureAddress(_StrCmpIC, shlwapidll, 'StrCmpIC'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_StrCmpIC] end; end; var _SHRegGetValueA: Pointer; function SHRegGetValueA; begin GetProcedureAddress(_SHRegGetValueA, shlwapidll, 'SHRegGetValueA'); asm MOV ESP, EBP POP EBP JMP [_SHRegGetValueA] end; end; var _SHRegGetValueW: Pointer; function SHRegGetValueW; begin GetProcedureAddress(_SHRegGetValueW, shlwapidll, 'SHRegGetValueW'); asm MOV ESP, EBP POP EBP JMP [_SHRegGetValueW] end; end; var _SHRegGetValue: Pointer; function SHRegGetValue; begin GetProcedureAddress(_SHRegGetValue, shlwapidll, 'SHRegGetValue'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegGetValue] end; end; var _SHRegGetIntW: Pointer; function SHRegGetIntW; begin GetProcedureAddress(_SHRegGetIntW, shlwapidll, 'SHRegGetIntW'); asm MOV ESP, EBP POP EBP JMP [_SHRegGetIntW] end; end; var _SHRegGetInt: Pointer; function SHRegGetInt; begin GetProcedureAddress(_SHRegGetInt, shlwapidll, 'SHRegGetInt'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_SHRegGetInt] end; end; var _AssocIsDangerous: Pointer; function AssocIsDangerous; begin GetProcedureAddress(_AssocIsDangerous, shlwapidll, 'AssocIsDangerous'); asm MOV ESP, EBP POP EBP JMP [_AssocIsDangerous] end; end; var _AssocGetPerceivedType: Pointer; function AssocGetPerceivedType; begin GetProcedureAddress(_AssocGetPerceivedType, shlwapidll, 'AssocGetPerceivedType'); asm MOV ESP, EBP POP EBP JMP [_AssocGetPerceivedType] end; end; var _SHCreateStreamOnFileEx: Pointer; function SHCreateStreamOnFileEx; begin GetProcedureAddress(_SHCreateStreamOnFileEx, shlwapidll, 'SHCreateStreamOnFileEx'); asm MOV ESP, EBP POP EBP JMP [_SHCreateStreamOnFileEx] end; end; var _GetAcceptLanguagesA: Pointer; function GetAcceptLanguagesA; begin GetProcedureAddress(_GetAcceptLanguagesA, shlwapidll, 'GetAcceptLanguagesA'); asm MOV ESP, EBP POP EBP JMP [_GetAcceptLanguagesA] end; end; var _GetAcceptLanguagesW: Pointer; function GetAcceptLanguagesW; begin GetProcedureAddress(_GetAcceptLanguagesW, shlwapidll, 'GetAcceptLanguagesW'); asm MOV ESP, EBP POP EBP JMP [_GetAcceptLanguagesW] end; end; var _GetAcceptLanguages: Pointer; function GetAcceptLanguages; begin GetProcedureAddress(_GetAcceptLanguages, shlwapidll, 'GetAcceptLanguages'+AWSuffix); asm MOV ESP, EBP POP EBP JMP [_GetAcceptLanguages] end; end; var _SHGetViewStatePropertyBag: Pointer; function SHGetViewStatePropertyBag; begin GetProcedureAddress(_SHGetViewStatePropertyBag, shlwapidll, 'SHGetViewStatePropertyBag'); asm MOV ESP, EBP POP EBP JMP [_SHGetViewStatePropertyBag] end; end; var _SHAllocShared: Pointer; function SHAllocShared; begin GetProcedureAddress(_SHAllocShared, shlwapidll, 'SHAllocShared'); asm MOV ESP, EBP POP EBP JMP [_SHAllocShared] end; end; var _SHFreeShared: Pointer; function SHFreeShared; begin GetProcedureAddress(_SHFreeShared, shlwapidll, 'SHFreeShared'); asm MOV ESP, EBP POP EBP JMP [_SHFreeShared] end; end; var _SHLockShared: Pointer; function SHLockShared; begin GetProcedureAddress(_SHLockShared, shlwapidll, 'SHLockShared'); asm MOV ESP, EBP POP EBP JMP [_SHLockShared] end; end; var _SHUnlockShared: Pointer; function SHUnlockShared; begin GetProcedureAddress(_SHUnlockShared, shlwapidll, 'SHUnlockShared'); asm MOV ESP, EBP POP EBP JMP [_SHUnlockShared] end; end; var _SHCreateThreadRef: Pointer; function SHCreateThreadRef; begin GetProcedureAddress(_SHCreateThreadRef, shlwapidll, 'SHCreateThreadRef'); asm MOV ESP, EBP POP EBP JMP [_SHCreateThreadRef] end; end; var _IsInternetESCEnabled: Pointer; function IsInternetESCEnabled; begin GetProcedureAddress(_IsInternetESCEnabled, shlwapidll, 'IsInternetESCEnabled'); asm MOV ESP, EBP POP EBP JMP [_IsInternetESCEnabled] end; end; {$IFDEF WINXP_UP} //stOrM!------------------------------------------------------------------------------------------------------------------------------------------ var _MessageBoxTimeOutA: Pointer; function MessageBoxTimeOutA; begin GetProcedureAddress(_MessageBoxTimeOutA, user32, 'MessageBoxTimeoutA'); asm MOV ESP, EBP POP EBP JMP [_MessageBoxTimeOutA] end; end; var _MessageBoxTimeOutW: Pointer; function MessageBoxTimeOutW; begin GetProcedureAddress(_MessageBoxTimeOutW, user32, 'MessageBoxTimeoutW'); asm MOV ESP, EBP POP EBP JMP [_MessageBoxTimeOutW] end; end; var _MessageBoxTimeOut: Pointer; function MessageBoxTimeOut; begin GetProcedureAddress(_MessageBoxTimeOut, user32, 'MessageBoxTimeout' + AWSuffix); asm MOV ESP, EBP POP EBP JMP [_MessageBoxTimeOut] end; end; //------------------------------------------------------------------------------------------------------------------------------------------stOrM! {$ENDIF WINXP_UP} {$IFDEF WIN2000_UP} var _MessageBoxCheckA: Pointer; function MessageBoxCheckA; begin GetProcedureAddress(_MessageBoxCheckA, shlwapidll, 185); //'SHMessageBoxCheckA' asm MOV ESP, EBP POP EBP JMP [_MessageBoxCheckA] end; end; var _MessageBoxCheckW: Pointer; function MessageBoxCheckW; begin GetProcedureAddress(_MessageBoxCheckW, shlwapidll, 191); //'SHMessageBoxCheckW' asm MOV ESP, EBP POP EBP JMP [_MessageBoxCheckW] end; end; var _MessageBoxCheck: Pointer; function MessageBoxCheck; begin GetProcedureAddress(_MessageBoxCheck, shlwapidll, {$IFDEF UNICODE}191{$ELSE}185{$ENDIF UNICODE}); asm MOV ESP, EBP POP EBP JMP [_MessageBoxCheck] end; end; {$ENDIF WIN2000_UP} //------------------------------------------------------------------------------------------------------------------------------------------stOrM! {$ENDIF DYNAMIC_LINK} {$ENDIF JWA_INTERFACESECTION} {$IFNDEF JWA_OMIT_SECTIONS} end. {$ENDIF JWA_OMIT_SECTIONS}