Expand recyclebin API with DeleteFileHandleToRecycleBin and GetRecycleBinDetails

svn path=/trunk/; revision=35280
This commit is contained in:
Hervé Poussineau
2008-08-11 17:31:51 +00:00
parent fe3033e3ea
commit 6cf2b6c90d
2 changed files with 52 additions and 0 deletions

View File

@@ -93,6 +93,26 @@ cleanup:
return FALSE;
}
BOOL WINAPI
DeleteFileHandleToRecycleBin(
IN HANDLE hDeletedFile)
{
IRecycleBinFile *rbf = (IRecycleBinFile *)hDeletedFile;
HRESULT hr;
TRACE("(%p)\n", hDeletedFile);
hr = IRecycleBinFile_Delete(rbf);
if (SUCCEEDED(hr))
return TRUE;
if (HRESULT_FACILITY(hr) == FACILITY_WIN32)
SetLastError(HRESULT_CODE(hr));
else
SetLastError(ERROR_GEN_FAILURE);
return FALSE;
}
BOOL WINAPI
EmptyRecycleBinA(
IN LPCSTR pszRoot OPTIONAL)
@@ -334,6 +354,18 @@ cleanup:
return FALSE;
}
BOOL WINAPI
GetRecycleBinDetails(
IN LPCWSTR pszVolume OPTIONAL,
OUT ULARGE_INTEGER *pulTotalItems,
OUT ULARGE_INTEGER *pulTotalSize)
{
pulTotalItems->QuadPart = 0;
pulTotalSize->QuadPart = 0;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
BOOL WINAPI
RestoreFile(
IN HANDLE hDeletedFile)

View File

@@ -72,6 +72,15 @@ DeleteFileToRecycleBinW(
#define DeleteFileToRecycleBin DeleteFileToRecycleBinA
#endif
/* Moves a file to the recycle bin.
* hDeletedFile: handle of the deleted file to delete
* Returns TRUE if operation succeeded, FALSE otherwise.
* Remark: The handle is obtained in the PENUMERATE_RECYCLEBIN_CALLBACK callback
*/
BOOL WINAPI
DeleteFileHandleToRecycleBin(
IN HANDLE hDeletedFile);
/* Removes all elements contained in a recycle bin
* pszRoot: the name of the drive containing the recycle bin
* Returns TRUE if operation succeeded, FALSE otherwise.
@@ -138,6 +147,17 @@ GetDeletedFileDetailsW(
#define GetDeletedFileDetails GetDeletedFileDetailsA
#endif
/* Get details about a whole recycle bin
* pszVolume:
* pulTotalItems:
* pulTotalSize
*/
BOOL WINAPI
GetRecycleBinDetails(
IN LPCWSTR pszVolume OPTIONAL,
OUT ULARGE_INTEGER *pulTotalItems,
OUT ULARGE_INTEGER *pulTotalSize);
/* Restores a deleted file
* hDeletedFile: handle of the deleted file to restore
* Returns TRUE if operation succeeded, FALSE otherwise.