2024年5月1日发(作者:)

是UNC和URL地址动态链接库文件,用于注册键值和色彩设置等。而且,

其中还有不少非常实用的与路径有关的函数,如压缩路径PathCompactPath为省略形式:

C:Program FilesBorlandDelphi5SourceRtlWin-->C:Win

相对路径与绝对路径的转换PathCombine和PathRelativePathTo函数等,但都需要引用

文件。按Delphi7标准安装方式,却没有该文件。怎么办呢?可以将如下内

容保存到一个新文件中,并命名为保存到工程目录下即可。

unit ShlWapi;

interface

uses

windows;

//

//=============== Path Routines ===================================

//

function PathAddBackslash(pszPath: LPSTR): LPSTR; stdcall; external '' name

'PathAddBackslashA';

function PathAddExtension(pszPath: LPSTR; pszExt: LPCSTR): Bool; stdcall; external

'' name 'PathAddExtensionA';

function PathAppend(pszPath: LPSTR; pMore: LPCSTR): Bool; stdcall; external ''

name 'PathAppendA';

function PathBuildRoot(szRoot: LPSTR; iDrive: integer): LPSTR; stdcall; external ''

name 'PathBuildRootA';

function PathCanonicalize(pszBuf: LPSTR; pszPath: LPCSTR): Bool;stdcall; external

'' name 'PathCanonicalizeA';

function PathCombine(szDest: LPSTR; lpszDir: LPCSTR; lpszFile: LPCSTR): LPSTR;stdcall;

external '' name 'PathCombineA';

function PathCompactPath(hDC: HDC; lpszPath: Pchar; dx: integer): BOOL; stdcall; external

'' name 'PathCompactPathA';

function PathCompactPathEx(pszOut: LPSTR; pszSrc: LPCSTR; cchMax: Uint; dwFlags:

DWORD ): BOOL;stdcall; external '' name 'PathCompactPathExA';

function PathCommonPrefix(pszFile1: LPCSTR; pszFile2: LPCSTR; achPath: LPSTR):

integer ;stdcall; external '' name 'PathCommonPrefixA';

function PathFileExists(pszPath: LPCSTR): BOOL;stdcall; external '' name

'PathFileExistsA';

function PathFindExtension(pszPath: LPCSTR): LPSTR;stdcall; external '' name

'PathFindExtensionA';

function PathFindFileName(pszPath: LPCSTR): LPSTR;stdcall; external '' name

'PathFindFileNameA';

function PathFindNextComponent(pszPath: LPCSTR): LPSTR;stdcall; external '' name

'PathFindNextComponentA';

//function PathFindOnPath(pszPath: LPSTR; LPCSTR* ppszOtherDirs): BOOL;stdcall; external

'' name 'PathFindOnPathA';

function PathGetArgs(pszPath: LPCSTR): LPSTR;stdcall; external '' name

'PathGetArgsA';

function PathGetCharType(ch: UCHAR): Uint ;stdcall; external '' name

'PathGetCharTypeA';

function PathGetDriveNumber(pszPath: LPCSTR): integer;stdcall; external '' name

'PathGetDriveNumberA';

function PathIsDirectory(pszPath: LPCSTR): BOOL;stdcall; external '' name

'PathIsDirectoryA';

function PathIsFileSpec(pszPath: LPCSTR): BOOL;stdcall; external '' name

'PathIsFileSpecA';

function PathIsPrefix(pszPrefix: LPCSTR; pszPath: LPCSTR): BOOL;stdcall; external

'' name 'PathIsPrefixA';

function PathIsRelative(pszPath: LPCSTR): BOOL;stdcall; external '' name

'PathIsRelativeA';

function PathIsRoot(pszPath: LPCSTR): BOOL;stdcall; external '' name 'PathIsRootA';

function PathIsSameRoot(pszPath1: LPCSTR; pszPath2: LPCSTR): BOOL;stdcall; external

'' name 'PathIsSameRootA';

function PathIsUNC(pszPath: LPCSTR): BOOL;stdcall; external '' name

'PathIsUNCA';

function PathIsUNCServer(pszPath: LPCSTR): BOOL;stdcall; external '' name

'PathIsUNCServerA';

function PathIsUNCServerShare(pszPath: LPCSTR): BOOL;stdcall; external '' name

'PathIsUNCServerShareA';

function PathIsContentType(pszPath: LPCSTR; pszContentType: LPCSTR): BOOL;stdcall;

external '' name 'PathIsContentTypeA';

function PathIsURL(pszPath: LPCSTR): BOOL;stdcall; external '' name 'PathIsURLA';

function PathMakePretty(pszPath: LPSTR): BOOL;stdcall; external '' name

'PathMakePrettyA';

function PathMatchSpec(pszFile: LPCSTR; pszSpec: LPCSTR): BOOL;stdcall; external

'' name 'PathMatchSpecA';

function PathParseIconLocation(pszIconFile: LPSTR): integer;stdcall; external '' name

'PathParseIconLocationA';

procedure PathQuoteSpaces(lpsz: LPSTR);stdcall; external '' name

'PathQuoteSpacesA';

function PathRelativePathTo(pszPath: LPSTR; pszFrom: LPCSTR; dwAttrFrom: DWORD ;

pszTo: LPCSTR; dwAttrTo: DWORD ): BOOL;stdcall; external '' name

'PathRelativePathToA';

procedure PathRemoveArgs(pszPath: LPSTR);stdcall; external '' name

'PathRemoveArgsA';

function PathRemoveBackslash(pszPath: LPSTR): LPSTR;stdcall; external '' name

'PathRemoveBackslashA';

procedure PathRemoveBlanks(pszPath: LPSTR);stdcall; external '' name

'PathRemoveBlanksA';

procedure PathRemoveExtension(pszPath: LPSTR);stdcall; external '' name

'PathRemoveExtensionA';

function PathRemoveFileSpec(pszPath: LPSTR): BOOL;stdcall; external '' name

'PathRemoveFileSpecA';

function PathRenameExtension(pszPath: LPSTR; pszExt: LPCSTR): BOOL;stdcall; external

'' name 'PathRenameExtensionA';

function PathSearchAndQualify(pszPath: LPCSTR; pszBuf: LPSTR; cchBuf: Uint ):

BOOL;stdcall; external '' name 'PathSearchAndQualifyA';

procedure PathSetDlgItemPath(hDlg: HWND ; id: integer ; pszPath: LPCSTR);stdcall; external

'' name 'PathSetDlgItemPathA';

function PathSkipRoot(pszPath: LPCSTR): LPSTR;stdcall; external '' name

'PathSkipRootA';

procedure PathStripPath(pszPath: LPSTR);stdcall; external '' name 'PathStripPathA';

function PathStripToRoot(pszPath: LPSTR): BOOL;stdcall; external '' name

'PathStripToRootA';

procedure PathUnquoteSpaces(lpsz: LPSTR);stdcall; external '' name

'PathUnquoteSpacesA';

function PathMakeSystemFolder(pszPath: LPCSTR): BOOL;stdcall; external '' name

'PathMakeSystemFolderA';

function PathUnmakeSystemFolder(pszPath: LPCSTR): BOOL;stdcall; external ''

name 'PathUnmakeSystemFolderA';

function PathIsSystemFolder(pszPath: LPCSTR; dwAttrb: DWORD ): BOOL;stdcall; external

'' name 'PathIsSystemFolderA';

implementation

end.