9 #define WIN32_NO_STATUS 11 #define COM_NO_WINDOWS_H 43 #define DELETED_FILE_DETAILS DELETED_FILE_DETAILS_W 44 #define PDELETED_FILE_DETAILS PDELETED_FILE_DETAILS_W 46 #define DELETED_FILE_DETAILS DELETED_FILE_DETAILS_A 47 #define PDELETED_FILE_DETAILS PDELETED_FILE_DETAILS_A 80 #define DeleteFileToRecycleBin DeleteFileToRecycleBinW 82 #define DeleteFileToRecycleBin DeleteFileToRecycleBinA 106 #define EmptyRecycleBin EmptyRecycleBinW 108 #define EmptyRecycleBin EmptyRecycleBinA 129 #define EnumerateRecycleBin EnumerateRecycleBinW 131 #define EnumerateRecycleBin EnumerateRecycleBinA 162 #define GetDeletedFileDetails GetDeletedFileDetailsW 164 #define GetDeletedFileDetails GetDeletedFileDetailsA 189 #define INTERFACE IRecycleBinFile 214 #define INTERFACE IRecycleBinEnumList 233 #define INTERFACE IRecycleBin 256 #if (!defined(__cplusplus) || defined(CINTERFACE)) && defined(COBJMACROS) 257 #define IRecycleBinFile_QueryInterface(This, riid, ppvObject) \ 258 (This)->lpVtbl->QueryInterface(This, riid, ppvObject) 259 #define IRecycleBinFile_AddRef(This) \ 260 (This)->lpVtbl->AddRef(This) 261 #define IRecycleBinFile_Release(This) \ 262 (This)->lpVtbl->Release(This) 263 #define IRecycleBinFile_GetLastModificationTime(This, pLastModificationTime) \ 264 (This)->lpVtbl->GetLastModificationTime(This, pLastModificationTime) 265 #define IRecycleBinFile_GetDeletionTime(This, pDeletionTime) \ 266 (This)->lpVtbl->GetDeletionTime(This, pDeletionTime) 267 #define IRecycleBinFile_GetFileSize(This, pFileSize) \ 268 (This)->lpVtbl->GetFileSize(This, pFileSize) 269 #define IRecycleBinFile_GetPhysicalFileSize(This, pPhysicalFileSize) \ 270 (This)->lpVtbl->GetPhysicalFileSize(This, pPhysicalFileSize) 271 #define IRecycleBinFile_GetAttributes(This, pAttributes) \ 272 (This)->lpVtbl->GetAttributes(This, pAttributes) 273 #define IRecycleBinFile_GetFileName(This, BufferSize, Buffer, RequiredSize) \ 274 (This)->lpVtbl->GetFileName(This, BufferSize, Buffer, RequiredSize) 275 #define IRecycleBinFile_GetTypeName(This, BufferSize, Buffer, RequiredSize) \ 276 (This)->lpVtbl->GetTypeName(This, BufferSize, Buffer, RequiredSize) 277 #define IRecycleBinFile_Delete(This) \ 278 (This)->lpVtbl->Delete(This) 279 #define IRecycleBinFile_Restore(This) \ 280 (This)->lpVtbl->Restore(This) 282 #define IRecycleBinEnumList_QueryInterface(This, riid, ppvObject) \ 283 (This)->lpVtbl->QueryInterface(This, riid, ppvObject) 284 #define IRecycleBinEnumList_AddRef(This) \ 285 (This)->lpVtbl->AddRef(This) 286 #define IRecycleBinEnumList_Release(This) \ 287 (This)->lpVtbl->Release(This) 288 #define IRecycleBinEnumList_Next(This, celt, rgelt, pceltFetched) \ 289 (This)->lpVtbl->Next(This, celt, rgelt, pceltFetched) 290 #define IRecycleBinEnumList_Skip(This, celt) \ 291 (This)->lpVtbl->Skip(This, celt) 292 #define IRecycleBinEnumList_Reset(This) \ 293 (This)->lpVtbl->Reset(This) 295 #define IRecycleBin_QueryInterface(This, riid, ppvObject) \ 296 (This)->lpVtbl->QueryInterface(This, riid, ppvObject) 297 #define IRecycleBin_AddRef(This) \ 298 (This)->lpVtbl->AddRef(This) 299 #define IRecycleBin_Release(This) \ 300 (This)->lpVtbl->Release(This) 301 #define IRecycleBin_DeleteFile(This, szFileName) \ 302 (This)->lpVtbl->DeleteFile(This, szFileName) 303 #define IRecycleBin_EmptyRecycleBin(This) \ 304 (This)->lpVtbl->EmptyRecycleBin(This) 305 #define IRecycleBin_EnumObjects(This, ppEnumList) \ 306 (This)->lpVtbl->EnumObjects(This, ppEnumList) 312 OUT IRecycleBin **pprb);
EXTERN_C const IID IID_IRecycleBin
static PWCHAR GetFileName(PWCHAR Path)
IN BOOLEAN OUT PSTR Buffer
EXTERN_C const IID IID_IRecycleBinEnumList
static HRESULT QueryInterface(REFIID, void **)
ULARGE_INTEGER PhysicalFileSize
EXTERN_C const IID IID_IRecycleBinFile
BOOL WINAPI RestoreFile(IN HANDLE hDeletedFile)
struct _DELETED_FILE_DETAILS_A * PDELETED_FILE_DETAILS_A
int WINAPI EnumObjects(_In_ HDC, _In_ int, _In_ GOBJENUMPROC, _In_ LPARAM)
struct _DELETED_FILE_DETAILS_A DELETED_FILE_DETAILS_A
FILETIME LastModification
BOOL(WINAPI * PENUMERATE_RECYCLEBIN_CALLBACK)(IN PVOID Context, IN HANDLE hDeletedFile)
BOOL WINAPI EnumerateRecycleBinA(IN LPCSTR pszRoot OPTIONAL, IN PENUMERATE_RECYCLEBIN_CALLBACK pFnCallback, IN PVOID Context OPTIONAL)
BOOL WINAPI EmptyRecycleBinA(IN LPCSTR pszRoot OPTIONAL)
BOOL WINAPI GetDeletedFileDetailsW(IN HANDLE hDeletedFile, IN DWORD BufferSize, IN OUT PDELETED_FILE_DETAILS_W FileDetails OPTIONAL, OUT LPDWORD RequiredSize OPTIONAL)
ULARGE_INTEGER PhysicalFileSize
DECLARE_INTERFACE_(IRecycleBinFile, IUnknown)
struct _DELETED_FILE_DETAILS_W DELETED_FILE_DETAILS_W
BOOL WINAPI GetDeletedFileDetailsA(IN HANDLE hDeletedFile, IN DWORD BufferSize, IN OUT PDELETED_FILE_DETAILS_A FileDetails OPTIONAL, OUT LPDWORD RequiredSize OPTIONAL)
HRESULT WINAPI GetDefaultRecycleBin(IN LPCWSTR pszVolume OPTIONAL, OUT IRecycleBin **pprb)
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
BOOL WINAPI GetDeletedFileTypeNameW(IN HANDLE hDeletedFile, OUT LPWSTR pTypeName, IN DWORD BufferSize, OUT LPDWORD RequiredSize OPTIONAL)
BOOL GetPhysicalFileSize(LPCWSTR PathBuffer, PULARGE_INTEGER Size)
REFIID LPVOID * ppvObject
BOOL WINAPI CloseRecycleBinHandle(IN HANDLE hDeletedFile)
BOOL WINAPI DeleteFileToRecycleBinW(IN LPCWSTR FileName)
BOOL WINAPI DeleteFileHandleToRecycleBin(IN HANDLE hDeletedFile)
struct _DELETED_FILE_DETAILS_W * PDELETED_FILE_DETAILS_W
static ULONG WINAPI AddRef(IStream *iface)
BOOL WINAPI EnumerateRecycleBinW(IN LPCWSTR pszRoot OPTIONAL, IN PENUMERATE_RECYCLEBIN_CALLBACK pFnCallback, IN PVOID Context OPTIONAL)
BOOL WINAPI EmptyRecycleBinW(IN LPCWSTR pszRoot OPTIONAL)
struct tagContext Context
TCHAR * GetTypeName(HANDLE handle)
BOOL WINAPI DeleteFileToRecycleBinA(IN LPCSTR FileName)
BOOL WINAPI GetRecycleBinDetails(IN LPCWSTR pszVolume OPTIONAL, OUT ULARGE_INTEGER *pulTotalItems, OUT ULARGE_INTEGER *pulTotalSize)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
BOOL Delete(LPCTSTR ServiceName)
FILETIME LastModification
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
PULONG MinorVersion OPTIONAL