//============================================================================== // // Microsoft Shell API Windows98 / IE4 Extention Delphi UNIT Version // //============================================================================== // Copyright 1998 Ryuuji Yoshimoto // ryuuji@takenet.or.jp // http://www.takenet.or.jp/~ryuuji/ (Japanese) //============================================================================== // Version 1.00 //============================================================================== // // 1998-05-12 C++ ShellAPI.h to ShellAPI98.h // // * WinExecError // * SHQueryRecycleBin // * SHEmptyRecycleBin // * GetDiskFreeSpace // * SHGetNewLinkInfo // // 1998-05-13 Add Function // // * SHInvokePrinterCommand unit ShellAPI98; interface uses ShellAPI,Windows, Messages; { Shell File Operations } const FOF_NOCOPYSECURITYATTRIBS = $0800; // dont copy NT file Security Attributes // Note INVOKEIDLIST overrides IDLIST SEE_MASK_HMONITOR = $00200000; type //// //// Begin ShellExecuteEx and family //// PShellExecuteInfoA = ^TShellExecuteInfoA; PShellExecuteInfoW = ^TShellExecuteInfoW; PShellExecuteInfo = PShellExecuteInfoA; TShellExecuteInfoA = record cbSize: DWORD; fMask: ULONG; Wnd: HWND; lpVerb: PAnsiChar; lpFile: PAnsiChar; lpParameters: PAnsiChar; lpDirectory: PAnsiChar; nShow: Integer; hInstApp: HINST; { Optional fields } lpIDList: Pointer; lpClass: PAnsiChar; hkeyClass: HKEY; dwHotKey: DWORD; hIcon: THandle; hMonitor:THANDLE; hProcess: THandle; end; TShellExecuteInfoW = record cbSize: DWORD; fMask: ULONG; Wnd: HWND; lpVerb: PWideChar; lpFile: PWideChar; lpParameters: PWideChar; lpDirectory: PWideChar; nShow: Integer; hInstApp: HINST; { Optional fields } lpIDList: Pointer; lpClass: PWideChar; hkeyClass: HKEY; dwHotKey: DWORD; hIcon: THandle; hMonitor:THANDLE; hProcess: THandle; end; TShellExecuteInfo = TShellExecuteInfoA; procedure WinExecErrorA( hwnd:HWND; error:integer; lpstrFileName:LPCSTR; lpstrTitle: LPCSTR); stdcall; procedure WinExecErrorW( hwnd:HWND; error:integer; lpstrFileName:LPCWSTR; lpstrTitle: LPCSTR); stdcall; procedure WinExecError ( hwnd:HWND; error:integer; lpstrFileName:LPCSTR; lpstrTitle: LPCSTR); stdcall; //// //// End ShellExecuteEx and family //// // // RecycleBin // type // struct for query recycle bin info PSHQUERYRBINFO = ^TSHQUERYRBINFO; TSHQUERYRBINFO = record cbSize:DWORD; i64Size:Comp; //DWORDLONG;??? i64NumItems:Comp; //DWORDLONG;??? end; const // flags for SHEmptyRecycleBin // SHERB_NOCONFIRMATION = $00000001; SHERB_NOPROGRESSUI = $00000002; SHERB_NOSOUND = $00000004; function SHQueryRecycleBinA ( pszRootPath:LPCSTR; pSHQueryRBInfo:PSHQUERYRBINFO):HRESULT; stdcall; function SHQueryRecycleBinW ( pszRootPath:LPCWSTR; pSHQueryRBInfo:PSHQUERYRBINFO):HRESULT; stdcall; function SHQueryRecycleBin ( pszRootPath:LPCSTR; pSHQueryRBInfo:PSHQUERYRBINFO):HRESULT; stdcall; function SHEmptyRecycleBinA ( hwnd:HWND; pszRootPath:LPCSTR; dwFlags:DWORD ):HRESULT; stdcall; function SHEmptyRecycleBinW ( hwnd:HWND; pszRootPath:LPCWSTR; dwFlags:DWORD):HRESULT; stdcall; function SHEmptyRecycleBin ( hwnd:HWND; pszRootPath:LPCSTR; dwFlags:DWORD):HRESULT; stdcall; //// //// end of RecycleBin //// //// Begin SHGetFileInfo //// type ULARGE_INTEGER=Integer; function SHGetDiskFreeSpaceA( pszVolume:LPCSTR; var pqwFreeCaller:ULARGE_INTEGER; var pqwTot:ULARGE_INTEGER; var pqwFree: ULARGE_INTEGER): BOOL; stdcall; function SHGetDiskFreeSpaceW( pszVolume:LPCWSTR; var pqwFreeCaller:ULARGE_INTEGER; var pqwTot:ULARGE_INTEGER; var pqwFree: ULARGE_INTEGER): BOOL; stdcall; function SHGetDiskFreeSpace ( pszVolume:LPCSTR; var pqwFreeCaller:ULARGE_INTEGER; var pqwTot:ULARGE_INTEGER; var pqwFree: ULARGE_INTEGER): BOOL; stdcall; function SHGetNewLinkInfoA( pszLinkTo:LPCSTR; pszDir:LPCSTR; pszName:LPSTR; var pfMustCopy:BOOL; uFlags:UINT): BOOL; stdcall; function SHGetNewLinkInfoW( pszLinkTo:LPCSTR; pszDir:LPCWSTR; pszName:LPWSTR; var pfMustCopy:BOOL; uFlags:UINT): BOOL; stdcall; function SHGetNewLinkInfo ( pszLinkTo:LPCSTR; pszDir:LPCSTR; pszName:LPSTR; var pfMustCopy:BOOL; uFlags:UINT): BOOL; stdcall; const // Printer stuff PRINTACTION_OPEN =0; PRINTACTION_PROPERTIES =1; PRINTACTION_NETINSTALL =2; PRINTACTION_NETINSTALLLINK =3; PRINTACTION_TESTPAGE =4; PRINTACTION_OPENNETPRN =5; PRINTACTION_DOCUMENTDEFAULTS =6; //WinNT Only PRINTACTION_SERVERPROPERTIES =7; //WinNT Only function SHInvokePrinterCommandA( hwnd:HWND; uAction:UINT; lpBuf1:LPCSTR; lpBuf2:LPCSTR; fModal:BOOL): BOOL; stdcall; function SHInvokePrinterCommandW( hwnd:HWND; uAction:UINT; lpBuf1:LPCWSTR; lpBuf2:LPCWSTR; fModal:BOOL): BOOL; stdcall; function SHInvokePrinterCommand ( hwnd:HWND; uAction:UINT; lpBuf1:LPCSTR; lpBuf2:LPCSTR; fModal:BOOL): BOOL; stdcall; const shell32 = 'shell32.dll'; implementation procedure WinExecErrorA; external shell32 name 'WinExecErrorA'; procedure WinExecErrorW; external shell32 name 'WinExecErrorW'; procedure WinExecError ; external shell32 name 'WinExecErrorA'; function SHQueryRecycleBinA ; external shell32 name 'SHQueryRecycleBinA'; function SHQueryRecycleBinW ; external shell32 name 'SHQueryRecycleBinW'; function SHQueryRecycleBin ; external shell32 name 'SHQueryRecycleBinA'; function SHEmptyRecycleBinA ; external shell32 name 'SHEmptyRecycleBinA'; function SHEmptyRecycleBinW ; external shell32 name 'SHEmptyRecycleBinW'; function SHEmptyRecycleBin ; external shell32 name 'SHEmptyRecycleBinA'; function SHGetDiskFreeSpaceA; external shell32 name 'SHGetDiskFreeSpaceA'; function SHGetDiskFreeSpaceW; external shell32 name 'SHGetDiskFreeSpaceW'; function SHGetDiskFreeSpace ; external shell32 name 'SHGetDiskFreeSpaceA'; function SHGetNewLinkInfoA; external shell32 name 'SHGetNewLinkInfoA'; function SHGetNewLinkInfoW; external shell32 name 'SHGetNewLinkInfoW'; function SHGetNewLinkInfo; external shell32 name 'SHGetNewLinkInfoA'; function SHInvokePrinterCommandA; external shell32 name 'SHInvokePrinterCommandA'; function SHInvokePrinterCommandW; external shell32 name 'SHInvokePrinterCommandW'; function SHInvokePrinterCommand ; external shell32 name 'SHInvokePrinterCommandA'; end.