mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-07 01:15:33 +00:00
8567 lines
236 KiB
ObjectPascal
8567 lines
236 KiB
ObjectPascal
{******************************************************************************}
|
|
{ }
|
|
{ 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 <shlwapi.h>'}
|
|
{$HPPEMIT ''}
|
|
{$HPPEMIT 'interface DECLSPEC_UUID("C46CA590-3C3F-11D2-BEE6-0000F805CA57") IQueryAssociations;'}
|
|
{$HPPEMIT 'typedef System::DelphiInterface<IQueryAssociations> _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}
|