From 7af600178a31f8b62b072341497d6cec0bd8917a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Wed, 31 Oct 2007 13:04:47 +0000 Subject: [PATCH] Add traces Fix typo in EnumerateRecycleBinW svn path=/trunk/; revision=30009 --- reactos/lib/recyclebin/recyclebin.c | 3 +- reactos/lib/recyclebin/recyclebin_generic.c | 13 ++++++-- .../recyclebin_generic_enumerator.c | 15 ++++++++-- reactos/lib/recyclebin/recyclebin_private.h | 1 + reactos/lib/recyclebin/recyclebin_v5.c | 21 +++++++++++-- reactos/lib/recyclebin/recyclebin_v5.h | 2 +- .../lib/recyclebin/recyclebin_v5_enumerator.c | 30 ++++++++++++++++--- 7 files changed, 70 insertions(+), 15 deletions(-) diff --git a/reactos/lib/recyclebin/recyclebin.c b/reactos/lib/recyclebin/recyclebin.c index dd5807f3626..13960bfbf55 100644 --- a/reactos/lib/recyclebin/recyclebin.c +++ b/reactos/lib/recyclebin/recyclebin.c @@ -204,14 +204,13 @@ EnumerateRecycleBinW( hr = HRESULT_FROM_WIN32(GetLastError()); goto cleanup; } - IRecycleBinFile_Release(prbf); } cleanup: if (prb) IRecycleBin_Release(prb); if (prbel) - IRecycleBinEnumList_Release(prb); + IRecycleBinEnumList_Release(prbel); if (SUCCEEDED(hr)) return TRUE; if (HRESULT_FACILITY(hr) == FACILITY_WIN32) diff --git a/reactos/lib/recyclebin/recyclebin_generic.c b/reactos/lib/recyclebin/recyclebin_generic.c index 8f8bc005694..66af5fbd45a 100644 --- a/reactos/lib/recyclebin/recyclebin_generic.c +++ b/reactos/lib/recyclebin/recyclebin_generic.c @@ -10,6 +10,8 @@ #include "recyclebin_private.h" #include +WINE_DEFAULT_DEBUG_CHANNEL(recyclebin); + struct RecycleBinGeneric { ULONG ref; @@ -24,6 +26,8 @@ RecycleBinGenericVtbl_RecycleBin_QueryInterface( { struct RecycleBinGeneric *s = CONTAINING_RECORD(This, struct RecycleBinGeneric, recycleBinImpl); + TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppvObject); + if (!ppvObject) return E_POINTER; @@ -47,6 +51,7 @@ RecycleBinGenericVtbl_RecycleBin_AddRef( { struct RecycleBinGeneric *s = CONTAINING_RECORD(This, struct RecycleBinGeneric, recycleBinImpl); ULONG refCount = InterlockedIncrement((PLONG)&s->ref); + TRACE("(%p)\n", This); return refCount; } @@ -57,8 +62,7 @@ RecycleBinGenericVtbl_RecycleBin_Release( struct RecycleBinGeneric *s = CONTAINING_RECORD(This, struct RecycleBinGeneric, recycleBinImpl); ULONG refCount; - if (!This) - return E_POINTER; + TRACE("(%p)\n", This); refCount = InterlockedDecrement((PLONG)&s->ref); @@ -80,6 +84,8 @@ RecycleBinGenericVtbl_RecycleBin_DeleteFile( WCHAR szVolume[MAX_PATH]; HRESULT hr; + TRACE("(%p, %s)\n", This, debugstr_w(szFileName)); + /* Get full file name */ while (TRUE) { @@ -142,6 +148,8 @@ RecycleBinGenericVtbl_RecycleBin_EmptyRecycleBin( IRecycleBin *prb; HRESULT hr; + TRACE("(%p)\n", This); + dwLogicalDrives = GetLogicalDrives(); if (dwLogicalDrives == 0) return HRESULT_FROM_WIN32(GetLastError()); @@ -170,6 +178,7 @@ RecycleBinGenericVtbl_RecycleBin_EnumObjects( IN IRecycleBin *This, OUT IRecycleBinEnumList **ppEnumList) { + TRACE("(%p, %p)\n", This, ppEnumList); return RecycleBinGeneric_Enumerator_Constructor(ppEnumList); } diff --git a/reactos/lib/recyclebin/recyclebin_generic_enumerator.c b/reactos/lib/recyclebin/recyclebin_generic_enumerator.c index f7b2a40537f..023ab79463c 100644 --- a/reactos/lib/recyclebin/recyclebin_generic_enumerator.c +++ b/reactos/lib/recyclebin/recyclebin_generic_enumerator.c @@ -7,9 +7,11 @@ */ #define COBJMACROS -#include "recyclebin.h" +#include "recyclebin_private.h" #include +WINE_DEFAULT_DEBUG_CHANNEL(recyclebin); + struct RecycleBinGenericEnum { ULONG ref; @@ -27,6 +29,8 @@ RecycleBinGenericEnum_RecycleBinEnumList_QueryInterface( { struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl); + TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppvObject); + if (!ppvObject) return E_POINTER; @@ -50,6 +54,7 @@ RecycleBinGenericEnum_RecycleBinEnumList_AddRef( { struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl); ULONG refCount = InterlockedIncrement((PLONG)&s->ref); + TRACE("(%p)\n", This); return refCount; } @@ -60,8 +65,7 @@ RecycleBinGenericEnum_RecycleBinEnumList_Release( struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl); ULONG refCount; - if (!This) - return E_POINTER; + TRACE("(%p)\n", This); refCount = InterlockedDecrement((PLONG)&s->ref); @@ -88,6 +92,8 @@ RecycleBinGenericEnum_RecycleBinEnumList_Next( DWORD fetched = 0, newFetched; HRESULT hr; + TRACE("(%p, %u, %p, %p)\n", This, celt, rgelt, pceltFetched); + if (!rgelt) return E_POINTER; if (!pceltFetched && celt > 1) @@ -173,6 +179,7 @@ RecycleBinGenericEnum_RecycleBinEnumList_Skip( IN DWORD celt) { struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl); + TRACE("(%p, %u)\n", This, celt); s->skip += celt; return S_OK; } @@ -183,6 +190,8 @@ RecycleBinGenericEnum_RecycleBinEnumList_Reset( { struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl); + TRACE("(%p)\n", This); + if (s->current) { IRecycleBinEnumList_Release(s->current); diff --git a/reactos/lib/recyclebin/recyclebin_private.h b/reactos/lib/recyclebin/recyclebin_private.h index fea57a75a60..558b6f911b8 100644 --- a/reactos/lib/recyclebin/recyclebin_private.h +++ b/reactos/lib/recyclebin/recyclebin_private.h @@ -1,5 +1,6 @@ #include "recyclebin.h" #include "sddl.h" +#include /* Defines */ #define RECYCLEBIN_MAGIC 0x6e694252 diff --git a/reactos/lib/recyclebin/recyclebin_v5.c b/reactos/lib/recyclebin/recyclebin_v5.c index f2932434ce6..40a212c452c 100644 --- a/reactos/lib/recyclebin/recyclebin_v5.c +++ b/reactos/lib/recyclebin/recyclebin_v5.c @@ -10,6 +10,8 @@ #include "recyclebin_v5.h" #include +WINE_DEFAULT_DEBUG_CHANNEL(recyclebin); + static BOOL IntDeleteRecursive( IN LPCWSTR FullName) @@ -72,6 +74,8 @@ RecycleBin5_RecycleBin5_QueryInterface( { struct RecycleBin5 *s = CONTAINING_RECORD(This, struct RecycleBin5, recycleBinImpl); + TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppvObject); + if (!ppvObject) return E_POINTER; @@ -97,6 +101,7 @@ RecycleBin5_RecycleBin5_AddRef( { struct RecycleBin5 *s = CONTAINING_RECORD(This, struct RecycleBin5, recycleBinImpl); ULONG refCount = InterlockedIncrement((PLONG)&s->ref); + TRACE("(%p)\n", This); return refCount; } @@ -107,8 +112,7 @@ RecycleBin5_RecycleBin5_Release( struct RecycleBin5 *s = CONTAINING_RECORD(This, struct RecycleBin5, recycleBinImpl); ULONG refCount; - if (!This) - return E_POINTER; + TRACE("(%p)\n", This); refCount = InterlockedDecrement((PLONG)&s->ref); @@ -143,6 +147,8 @@ RecycleBin5_RecycleBin5_DeleteFile( DWORD ClusterSize, BytesPerSector, SectorsPerCluster; HRESULT hr; + TRACE("(%p, %s)\n", This, debugstr_w(szFileName)); + if (s->EnumeratorCount != 0) return E_FAIL; @@ -287,6 +293,8 @@ RecycleBin5_RecycleBin5_EmptyRecycleBin( IRecycleBinFile *prbf; HRESULT hr; + TRACE("(%p)\n", This); + while (TRUE) { hr = IRecycleBin5_EnumObjects(This, &prbel); @@ -313,6 +321,8 @@ RecycleBin5_RecycleBin5_EnumObjects( HRESULT hr; IUnknown *pUnk; + TRACE("(%p, %p)\n", This, ppEnumList); + hr = RecycleBin5_Enumerator_Constructor(This, s->hInfo, s->hInfoMapped, s->Folder, &pUnk); if (!SUCCEEDED(hr)) return hr; @@ -339,6 +349,8 @@ RecycleBin5_RecycleBin5_Delete( DELETED_FILE_RECORD *pRecord, *pLast; DWORD dwEntries, i; + TRACE("(%p, %s, %p)\n", This, debugstr_w(pDeletedFileName), pDeletedFile); + if (s->EnumeratorCount != 0) return E_FAIL; @@ -399,6 +411,8 @@ RecycleBin5_RecycleBin5_Restore( DELETED_FILE_RECORD *pRecord, *pLast; DWORD dwEntries, i; + TRACE("(%p, %s, %p)\n", This, debugstr_w(pDeletedFileName), pDeletedFile); + if (s->EnumeratorCount != 0) return E_FAIL; @@ -451,9 +465,10 @@ RecycleBin5_RecycleBin5_Restore( static HRESULT STDMETHODCALLTYPE RecycleBin5_RecycleBin5_OnClosing( IN IRecycleBin5 *This, - IN IRecycleBinEnumList *prb5el) + IN IRecycleBinEnumList *prbel) { struct RecycleBin5 *s = CONTAINING_RECORD(This, struct RecycleBin5, recycleBinImpl); + TRACE("(%p, %p)\n", This, prbel); s->EnumeratorCount--; return S_OK; } diff --git a/reactos/lib/recyclebin/recyclebin_v5.h b/reactos/lib/recyclebin/recyclebin_v5.h index 6f6b328d0d4..4f22620ec1e 100644 --- a/reactos/lib/recyclebin/recyclebin_v5.h +++ b/reactos/lib/recyclebin/recyclebin_v5.h @@ -67,7 +67,7 @@ typedef struct IRecycleBin5Vtbl HRESULT (STDMETHODCALLTYPE *OnClosing)( IN IRecycleBin5 *This, - IN IRecycleBinEnumList *prb5el); + IN IRecycleBinEnumList *prbel); } IRecycleBin5Vtbl; interface IRecycleBin5 diff --git a/reactos/lib/recyclebin/recyclebin_v5_enumerator.c b/reactos/lib/recyclebin/recyclebin_v5_enumerator.c index e3f1abec99f..e8da416aa2c 100644 --- a/reactos/lib/recyclebin/recyclebin_v5_enumerator.c +++ b/reactos/lib/recyclebin/recyclebin_v5_enumerator.c @@ -9,6 +9,8 @@ #define COBJMACROS #include "recyclebin_v5.h" +WINE_DEFAULT_DEBUG_CHANNEL(recyclebin); + struct RecycleBin5File { ULONG ref; @@ -26,6 +28,8 @@ RecycleBin5File_RecycleBinFile_QueryInterface( { struct RecycleBin5File *s = CONTAINING_RECORD(This, struct RecycleBin5File, recycleBinFileImpl); + TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppvObject); + if (!ppvObject) return E_POINTER; @@ -49,6 +53,7 @@ RecycleBin5File_RecycleBinFile_AddRef( { struct RecycleBin5File *s = CONTAINING_RECORD(This, struct RecycleBin5File, recycleBinFileImpl); ULONG refCount = InterlockedIncrement((PLONG)&s->ref); + TRACE("(%p)\n", This); return refCount; } @@ -59,8 +64,7 @@ RecycleBin5File_RecycleBinFile_Release( struct RecycleBin5File *s = CONTAINING_RECORD(This, struct RecycleBin5File, recycleBinFileImpl); ULONG refCount; - if (!This) - return E_POINTER; + TRACE("(%p)\n", This); refCount = InterlockedDecrement((PLONG)&s->ref); @@ -83,6 +87,8 @@ RecycleBin5File_RecycleBinFile_GetLastModificationTime( DWORD dwAttributes; HANDLE hFile; + TRACE("(%p, %p)\n", This, pLastModificationTime); + dwAttributes = GetFileAttributesW(s->FullName); if (dwAttributes == INVALID_FILE_ATTRIBUTES) return HRESULT_FROM_WIN32(GetLastError()); @@ -107,6 +113,7 @@ RecycleBin5File_RecycleBinFile_GetDeletionTime( OUT FILETIME *pDeletionTime) { struct RecycleBin5File *s = CONTAINING_RECORD(This, struct RecycleBin5File, recycleBinFileImpl); + TRACE("(%p, %p)\n", This, pDeletionTime); *pDeletionTime = s->deletedFile.DeletionTime; return S_OK; } @@ -121,6 +128,8 @@ RecycleBin5File_RecycleBinFile_GetFileSize( DWORD dwAttributes; HANDLE hFile; + TRACE("(%p, %p)\n", This, pFileSize); + dwAttributes = GetFileAttributesW(s->FullName); if (dwAttributes == INVALID_FILE_ATTRIBUTES) return HRESULT_FROM_WIN32(GetLastError()); @@ -148,6 +157,7 @@ RecycleBin5File_RecycleBinFile_GetPhysicalFileSize( OUT ULARGE_INTEGER *pPhysicalFileSize) { struct RecycleBin5File *s = CONTAINING_RECORD(This, struct RecycleBin5File, recycleBinFileImpl); + TRACE("(%p, %p)\n", This, pPhysicalFileSize); pPhysicalFileSize->u.HighPart = 0; pPhysicalFileSize->u.LowPart = s->deletedFile.dwPhysicalFileSize; return S_OK; @@ -161,6 +171,8 @@ RecycleBin5File_RecycleBinFile_GetAttributes( struct RecycleBin5File *s = CONTAINING_RECORD(This, struct RecycleBin5File, recycleBinFileImpl); DWORD dwAttributes; + TRACE("(%p, %p)\n", This, pAttributes); + dwAttributes = GetFileAttributesW(s->FullName); if (dwAttributes == INVALID_FILE_ATTRIBUTES) return HRESULT_FROM_WIN32(GetLastError()); @@ -179,6 +191,8 @@ RecycleBin5File_RecycleBinFile_GetFileName( struct RecycleBin5File *s = CONTAINING_RECORD(This, struct RecycleBin5File, recycleBinFileImpl); DWORD dwRequired; + TRACE("(%p, %u, %p, %p)\n", This, BufferSize, Buffer, RequiredSize); + dwRequired = (DWORD)(wcslen(s->deletedFile.FileNameW) + 1) * sizeof(WCHAR); if (RequiredSize) *RequiredSize = dwRequired; @@ -197,6 +211,7 @@ RecycleBin5File_RecycleBinFile_Delete( IN IRecycleBinFile *This) { struct RecycleBin5File *s = CONTAINING_RECORD(This, struct RecycleBin5File, recycleBinFileImpl); + TRACE("(%p)\n", This); return IRecycleBin5_Delete(s->recycleBin, s->FullName, &s->deletedFile); } @@ -205,6 +220,7 @@ RecycleBin5File_RecycleBinFile_Restore( IN IRecycleBinFile *This) { struct RecycleBin5File *s = CONTAINING_RECORD(This, struct RecycleBin5File, recycleBinFileImpl); + TRACE("(%p)\n", This); return IRecycleBin5_Restore(s->recycleBin, s->FullName, &s->deletedFile); } @@ -279,6 +295,8 @@ RecycleBin5Enum_RecycleBinEnumList_QueryInterface( { struct RecycleBin5Enum *s = CONTAINING_RECORD(This, struct RecycleBin5Enum, recycleBinEnumImpl); + TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppvObject); + if (!ppvObject) return E_POINTER; @@ -302,6 +320,7 @@ RecycleBin5Enum_RecycleBinEnumList_AddRef( { struct RecycleBin5Enum *s = CONTAINING_RECORD(This, struct RecycleBin5Enum, recycleBinEnumImpl); ULONG refCount = InterlockedIncrement((PLONG)&s->ref); + TRACE("(%p)\n", This); return refCount; } @@ -312,8 +331,7 @@ RecycleBin5Enum_RecycleBinEnumList_Release( struct RecycleBin5Enum *s = CONTAINING_RECORD(This, struct RecycleBin5Enum, recycleBinEnumImpl); ULONG refCount; - if (!This) - return E_POINTER; + TRACE("(%p)\n", This); refCount = InterlockedDecrement((PLONG)&s->ref); @@ -343,6 +361,8 @@ RecycleBin5Enum_RecycleBinEnumList_Next( DWORD dwEntries; HRESULT hr; + TRACE("(%p, %u, %p, %p)\n", This, celt, rgelt, pceltFetched); + if (!rgelt) return E_POINTER; if (!pceltFetched && celt > 1) @@ -383,6 +403,7 @@ RecycleBin5Enum_RecycleBinEnumList_Skip( IN DWORD celt) { struct RecycleBin5Enum *s = CONTAINING_RECORD(This, struct RecycleBin5Enum, recycleBinEnumImpl); + TRACE("(%p, %u)\n", This, celt); s->dwCurrent += celt; return S_OK; } @@ -392,6 +413,7 @@ RecycleBin5Enum_RecycleBinEnumList_Reset( IN IRecycleBinEnumList *This) { struct RecycleBin5Enum *s = CONTAINING_RECORD(This, struct RecycleBin5Enum, recycleBinEnumImpl); + TRACE("(%p)\n", This); s->dwCurrent = 0; return S_OK; }