11#define COM_NO_WINDOWS_H
20#define RECYCLEBINMAXDRIVECOUNT 26
50#define IRecycleBinFileFromHDELFILE(hDF) ( (IRecycleBinFile*)(hDF) )
86 IN HDELFILE hDeletedFile);
99#define DeleteFileToRecycleBin DeleteFileToRecycleBinW
101#define DeleteFileToRecycleBin DeleteFileToRecycleBinA
111 IN HDELFILE hDeletedFile);
125#define EmptyRecycleBin EmptyRecycleBinW
127#define EmptyRecycleBin EmptyRecycleBinA
148#define EnumerateRecycleBin EnumerateRecycleBinW
150#define EnumerateRecycleBin EnumerateRecycleBinA
169 IN HDELFILE hDeletedFile);
173#define INTERFACE IRecycleBinFile
200#define INTERFACE IRecycleBinEnumList
219#define INTERFACE IRecycleBin
243#if (!defined(__cplusplus) || defined(CINTERFACE)) && defined(COBJMACROS)
244#define IRecycleBinFile_QueryInterface(This, riid, ppvObject) \
245 (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
246#define IRecycleBinFile_AddRef(This) \
247 (This)->lpVtbl->AddRef(This)
248#define IRecycleBinFile_Release(This) \
249 (This)->lpVtbl->Release(This)
250#define IRecycleBinFile_IsEqualIdentity(This, pFI) \
251 (This)->lpVtbl->IsEqualIdentity(This, pFI)
252#define IRecycleBinFile_GetInfo(This, pInfo) \
253 (This)->lpVtbl->GetInfo(This, pInfo)
254#define IRecycleBinFile_GetLastModificationTime(This, pLastModificationTime) \
255 (This)->lpVtbl->GetLastModificationTime(This, pLastModificationTime)
256#define IRecycleBinFile_GetDeletionTime(This, pDeletionTime) \
257 (This)->lpVtbl->GetDeletionTime(This, pDeletionTime)
258#define IRecycleBinFile_GetFileSize(This, pFileSize) \
259 (This)->lpVtbl->GetFileSize(This, pFileSize)
260#define IRecycleBinFile_GetPhysicalFileSize(This, pPhysicalFileSize) \
261 (This)->lpVtbl->GetPhysicalFileSize(This, pPhysicalFileSize)
262#define IRecycleBinFile_GetAttributes(This, pAttributes) \
263 (This)->lpVtbl->GetAttributes(This, pAttributes)
264#define IRecycleBinFile_GetFileName(This, BufferSize, Buffer, RequiredSize) \
265 (This)->lpVtbl->GetFileName(This, BufferSize, Buffer, RequiredSize)
266#define IRecycleBinFile_Delete(This) \
267 (This)->lpVtbl->Delete(This)
268#define IRecycleBinFile_Restore(This) \
269 (This)->lpVtbl->Restore(This)
270#define IRecycleBinFile_RemoveFromDatabase(This) \
271 (This)->lpVtbl->RemoveFromDatabase(This)
273#define IRecycleBinEnumList_QueryInterface(This, riid, ppvObject) \
274 (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
275#define IRecycleBinEnumList_AddRef(This) \
276 (This)->lpVtbl->AddRef(This)
277#define IRecycleBinEnumList_Release(This) \
278 (This)->lpVtbl->Release(This)
279#define IRecycleBinEnumList_Next(This, celt, rgelt, pceltFetched) \
280 (This)->lpVtbl->Next(This, celt, rgelt, pceltFetched)
281#define IRecycleBinEnumList_Skip(This, celt) \
282 (This)->lpVtbl->Skip(This, celt)
283#define IRecycleBinEnumList_Reset(This) \
284 (This)->lpVtbl->Reset(This)
286#define IRecycleBin_QueryInterface(This, riid, ppvObject) \
287 (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
288#define IRecycleBin_AddRef(This) \
289 (This)->lpVtbl->AddRef(This)
290#define IRecycleBin_Release(This) \
291 (This)->lpVtbl->Release(This)
292#define IRecycleBin_DeleteFile(This, szFileName) \
293 (This)->lpVtbl->DeleteFile(This, szFileName)
294#define IRecycleBin_EmptyRecycleBin(This) \
295 (This)->lpVtbl->EmptyRecycleBin(This)
296#define IRecycleBin_EnumObjects(This, ppEnumList) \
297 (This)->lpVtbl->EnumObjects(This, ppEnumList)
298#define IRecycleBin_GetDirectory(This, szPath) \
299 (This)->lpVtbl->GetDirectory(This, szPath)
305 OUT IRecycleBin **pprb);
PRTL_UNICODE_STRING_BUFFER Path
BOOL Delete(LPCTSTR ServiceName)
void GetDirectory(LPTSTR wholepath, LPTSTR directory, BOOL CheckExisting)
#define DECLARE_INTERFACE_(i, b)
static PWCHAR GetFileName(PWCHAR Path)
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
void WINAPI SHFree(LPVOID pv)
BOOL GetPhysicalFileSize(LPCWSTR PathBuffer, PULARGE_INTEGER Size)
#define DECLARE_HANDLE(name)
static HRESULT QueryInterface(REFIID, void **)
static ULONG WINAPI AddRef(IStream *iface)
static LRESULT GetInfo(const CodecInfo *pi, ICINFO *icinfo, DWORD dwSize)
EXTERN_C const IID IID_IRecycleBin
BOOL WINAPI EnumerateRecycleBinW(IN LPCWSTR pszRoot OPTIONAL, IN PENUMERATE_RECYCLEBIN_CALLBACK pFnCallback, IN PVOID Context OPTIONAL)
struct _RECYCLEBINFILEIDENTITY RECYCLEBINFILEIDENTITY
EXTERN_C HRESULT GetRecycleBinPathFromDriveNumber(UINT Drive, LPWSTR Path)
BOOL WINAPI EnumerateRecycleBinA(IN LPCSTR pszRoot OPTIONAL, IN PENUMERATE_RECYCLEBIN_CALLBACK pFnCallback, IN PVOID Context OPTIONAL)
BOOL WINAPI DeleteFileToRecycleBinA(IN LPCSTR FileName)
BOOL(CALLBACK * PENUMERATE_RECYCLEBIN_CALLBACK)(IN PVOID Context, IN HDELFILE hDeletedFile)
BOOL WINAPI DeleteFileToRecycleBinW(IN LPCWSTR FileName)
EXTERN_C HRESULT GetDefaultRecycleBin(IN LPCWSTR pszVolume OPTIONAL, OUT IRecycleBin **pprb)
static void FreeRecycleBinString(PRECYCLEBINSTRING pRBS)
EXTERN_C BOOL RemoveFromRecycleBinDatabase(IN const RECYCLEBINFILEIDENTITY *pFI)
struct _RECYCLEBINSTRING * PRECYCLEBINSTRING
BOOL WINAPI CloseRecycleBinHandle(IN HDELFILE hDeletedFile)
static void InitializeRecycleBinStringRef(PRECYCLEBINSTRING pRBS, LPCWSTR String)
struct _DELETED_FILE_INFO * PDELETED_FILE_INFO
void CRecycleBin_NotifyRecycled(LPCWSTR OrigPath, const WIN32_FIND_DATAW *pFind, const RECYCLEBINFILEIDENTITY *pFI)
BOOL WINAPI DeleteFileInRecycleBin(IN HDELFILE hDeletedFile)
BOOL WINAPI RestoreFileFromRecycleBin(IN HDELFILE hDeletedFile)
struct _RECYCLEBINSTRING RECYCLEBINSTRING
BOOL WINAPI EmptyRecycleBinA(IN LPCSTR pszRoot OPTIONAL)
BOOL WINAPI EmptyRecycleBinW(IN LPCWSTR pszRoot OPTIONAL)
UINT RECYCLEBINFILESIZETYPE
EXTERN_C const IID IID_IRecycleBinFile
EXTERN_C HDELFILE GetRecycleBinFileHandle(IN LPCWSTR pszRoot OPTIONAL, IN const RECYCLEBINFILEIDENTITY *pFI)
struct _DELETED_FILE_INFO DELETED_FILE_INFO
struct _RECYCLEBINFILEIDENTITY * PRECYCLEBINFILEIDENTITY
EXTERN_C const IID IID_IRecycleBinEnumList
STDMETHOD() Skip(THIS_ ULONG celt) PURE
STDMETHOD() Reset(THIS) PURE
STDMETHOD() Next(THIS_ ULONG celt, IAssociationElement *pElement, ULONG *pceltFetched) PURE
PULONG MinorVersion OPTIONAL
RECYCLEBINFILESIZETYPE FileSize
RECYCLEBINSTRING RecycledFullPath
RECYCLEBINSTRING OriginalFullPath
FILETIME LastModification
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
int WINAPI EnumObjects(_In_ HDC, _In_ int, _In_ GOBJENUMPROC, _In_ LPARAM)