SHQueryRBInfo.cbSize = sizeof(SHQUERYRBINFO);
hr = SHQueryRecycleBin("C:\\", &SHQueryRBInfo);
if(
SUCCEEDED(hr)
&&
(SHQueryRBInfo.i64NumItems > 0)
)
{
SHEmptyRecycleBin( 0, "C:\\", 0 );
} |
type
SHQUERYRBINFO = record
cbSize: DWORD;
i64Size: Int64;
i64NumItems: Int64;
end;
LPSHQUERYRBINFO = ^SHQUERYRBINFO;
TSHQueryRBInfo = SHQUERYRBINFO;
const
shell32 = 'shell32.dll';
function SHQueryRecycleBinA(pszRootPath: PAnsiChar;
var pSHQueryRBInfo: TSHQueryRBInfo): HResult; stdcall;
external shell32 name 'SHQueryRecycleBinA';
function SHQueryRecycleBinW(pszRootPath: PWideChar;
var pSHQueryRBInfo: TSHQueryRBInfo): HResult; stdcall;
external shell32 name 'SHQueryRecycleBinW';
function SHQueryRecycleBin(pszRootPath: PChar;
var pSHQueryRBInfo: TSHQueryRBInfo): HResult; stdcall;
external shell32 name 'SHQueryRecycleBinA';
function SHEmptyRecycleBinA(hWnd: HWND;
pszRootPath: PAnsiChar;
dwFlags: DWORD): HResult; stdcall;
external shell32 name 'SHEmptyRecycleBinA';
function SHEmptyRecycleBinW(hWnd: HWND;
pszRootPath: PWideChar;
dwFlags: DWORD): HResult; stdcall;
external shell32 name 'SHEmptyRecycleBinW';
function SHEmptyRecycleBin(hWnd: HWND;
pszRootPath: PChar;
dwFlags: DWORD): HResult; stdcall;
external shell32 name 'SHEmptyRecycleBinA';
SHQueryRBInfo.cbSize := sizeof(TSHQueryRBInfo);
hr := SHQueryRecycleBin(PChar('C:\'), SHQueryRBInfo);
if
Succeeded(hr)
and
(SHQueryRBInfo.i64NumItems > 0)
then
begin
SHEmptyRecycleBin( Self.Handle, PChar('C:\'), 0 );
end; |