mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 07:02:56 +00:00
[SHELL32] RecycleBinGenericEnum: Convert tabs to spaces
CORE-19595
This commit is contained in:
parent
f24fbb655e
commit
7f0e8a3697
1 changed files with 157 additions and 157 deletions
|
@ -10,224 +10,224 @@
|
||||||
|
|
||||||
struct RecycleBinGenericEnum
|
struct RecycleBinGenericEnum
|
||||||
{
|
{
|
||||||
ULONG ref;
|
ULONG ref;
|
||||||
IRecycleBinEnumList recycleBinEnumImpl;
|
IRecycleBinEnumList recycleBinEnumImpl;
|
||||||
IRecycleBinEnumList *current;
|
IRecycleBinEnumList *current;
|
||||||
DWORD dwLogicalDrives;
|
DWORD dwLogicalDrives;
|
||||||
SIZE_T skip;
|
SIZE_T skip;
|
||||||
};
|
};
|
||||||
|
|
||||||
static HRESULT STDMETHODCALLTYPE
|
static HRESULT STDMETHODCALLTYPE
|
||||||
RecycleBinGenericEnum_RecycleBinEnumList_QueryInterface(
|
RecycleBinGenericEnum_RecycleBinEnumList_QueryInterface(
|
||||||
IN IRecycleBinEnumList *This,
|
IN IRecycleBinEnumList *This,
|
||||||
IN REFIID riid,
|
IN REFIID riid,
|
||||||
OUT void **ppvObject)
|
OUT void **ppvObject)
|
||||||
{
|
{
|
||||||
struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl);
|
struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl);
|
||||||
|
|
||||||
TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppvObject);
|
TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppvObject);
|
||||||
|
|
||||||
if (!ppvObject)
|
if (!ppvObject)
|
||||||
return E_POINTER;
|
return E_POINTER;
|
||||||
|
|
||||||
if (IsEqualIID(riid, &IID_IUnknown))
|
if (IsEqualIID(riid, &IID_IUnknown))
|
||||||
*ppvObject = &s->recycleBinEnumImpl;
|
*ppvObject = &s->recycleBinEnumImpl;
|
||||||
else if (IsEqualIID(riid, &IID_IRecycleBinEnumList))
|
else if (IsEqualIID(riid, &IID_IRecycleBinEnumList))
|
||||||
*ppvObject = &s->recycleBinEnumImpl;
|
*ppvObject = &s->recycleBinEnumImpl;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
*ppvObject = NULL;
|
*ppvObject = NULL;
|
||||||
return E_NOINTERFACE;
|
return E_NOINTERFACE;
|
||||||
}
|
}
|
||||||
|
|
||||||
IUnknown_AddRef(This);
|
IUnknown_AddRef(This);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG STDMETHODCALLTYPE
|
static ULONG STDMETHODCALLTYPE
|
||||||
RecycleBinGenericEnum_RecycleBinEnumList_AddRef(
|
RecycleBinGenericEnum_RecycleBinEnumList_AddRef(
|
||||||
IN IRecycleBinEnumList *This)
|
IN IRecycleBinEnumList *This)
|
||||||
{
|
{
|
||||||
struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl);
|
struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl);
|
||||||
ULONG refCount = InterlockedIncrement((PLONG)&s->ref);
|
ULONG refCount = InterlockedIncrement((PLONG)&s->ref);
|
||||||
TRACE("(%p)\n", This);
|
TRACE("(%p)\n", This);
|
||||||
return refCount;
|
return refCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
RecycleBinGenericEnum_Destructor(
|
RecycleBinGenericEnum_Destructor(
|
||||||
struct RecycleBinGenericEnum *s)
|
struct RecycleBinGenericEnum *s)
|
||||||
{
|
{
|
||||||
TRACE("(%p)\n", s);
|
TRACE("(%p)\n", s);
|
||||||
|
|
||||||
if (s->current)
|
if (s->current)
|
||||||
IRecycleBinEnumList_Release(s->current);
|
IRecycleBinEnumList_Release(s->current);
|
||||||
CoTaskMemFree(s);
|
CoTaskMemFree(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG STDMETHODCALLTYPE
|
static ULONG STDMETHODCALLTYPE
|
||||||
RecycleBinGenericEnum_RecycleBinEnumList_Release(
|
RecycleBinGenericEnum_RecycleBinEnumList_Release(
|
||||||
IN IRecycleBinEnumList *This)
|
IN IRecycleBinEnumList *This)
|
||||||
{
|
{
|
||||||
struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl);
|
struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl);
|
||||||
ULONG refCount;
|
ULONG refCount;
|
||||||
|
|
||||||
TRACE("(%p)\n", This);
|
TRACE("(%p)\n", This);
|
||||||
|
|
||||||
refCount = InterlockedDecrement((PLONG)&s->ref);
|
refCount = InterlockedDecrement((PLONG)&s->ref);
|
||||||
|
|
||||||
if (refCount == 0)
|
if (refCount == 0)
|
||||||
RecycleBinGenericEnum_Destructor(s);
|
RecycleBinGenericEnum_Destructor(s);
|
||||||
|
|
||||||
return refCount;
|
return refCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT STDMETHODCALLTYPE
|
static HRESULT STDMETHODCALLTYPE
|
||||||
RecycleBinGenericEnum_RecycleBinEnumList_Next(
|
RecycleBinGenericEnum_RecycleBinEnumList_Next(
|
||||||
IN IRecycleBinEnumList *This,
|
IN IRecycleBinEnumList *This,
|
||||||
IN DWORD celt,
|
IN DWORD celt,
|
||||||
IN OUT IRecycleBinFile **rgelt,
|
IN OUT IRecycleBinFile **rgelt,
|
||||||
OUT DWORD *pceltFetched)
|
OUT DWORD *pceltFetched)
|
||||||
{
|
{
|
||||||
struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl);
|
struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl);
|
||||||
IRecycleBin *prb;
|
IRecycleBin *prb;
|
||||||
DWORD i;
|
DWORD i;
|
||||||
DWORD fetched = 0, newFetched;
|
DWORD fetched = 0, newFetched;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
TRACE("(%p, %u, %p, %p)\n", This, celt, rgelt, pceltFetched);
|
TRACE("(%p, %u, %p, %p)\n", This, celt, rgelt, pceltFetched);
|
||||||
|
|
||||||
if (!rgelt)
|
if (!rgelt)
|
||||||
return E_POINTER;
|
return E_POINTER;
|
||||||
if (!pceltFetched && celt > 1)
|
if (!pceltFetched && celt > 1)
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
/* Get enumerator implementation */
|
/* Get enumerator implementation */
|
||||||
if (!s->current && s->dwLogicalDrives)
|
if (!s->current && s->dwLogicalDrives)
|
||||||
{
|
{
|
||||||
for (i = 0; i < 26; i++)
|
for (i = 0; i < 26; i++)
|
||||||
if (s->dwLogicalDrives & (1 << i))
|
if (s->dwLogicalDrives & (1 << i))
|
||||||
{
|
{
|
||||||
WCHAR szVolumeName[4];
|
WCHAR szVolumeName[4];
|
||||||
szVolumeName[0] = (WCHAR)('A' + i);
|
szVolumeName[0] = (WCHAR)('A' + i);
|
||||||
szVolumeName[1] = ':';
|
szVolumeName[1] = ':';
|
||||||
szVolumeName[2] = '\\';
|
szVolumeName[2] = '\\';
|
||||||
szVolumeName[3] = UNICODE_NULL;
|
szVolumeName[3] = UNICODE_NULL;
|
||||||
if (GetDriveTypeW(szVolumeName) != DRIVE_FIXED)
|
if (GetDriveTypeW(szVolumeName) != DRIVE_FIXED)
|
||||||
{
|
{
|
||||||
s->dwLogicalDrives &= ~(1 << i);
|
s->dwLogicalDrives &= ~(1 << i);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
hr = GetDefaultRecycleBin(szVolumeName, &prb);
|
hr = GetDefaultRecycleBin(szVolumeName, &prb);
|
||||||
if (!SUCCEEDED(hr))
|
if (!SUCCEEDED(hr))
|
||||||
return hr;
|
return hr;
|
||||||
hr = IRecycleBin_EnumObjects(prb, &s->current);
|
hr = IRecycleBin_EnumObjects(prb, &s->current);
|
||||||
IRecycleBin_Release(prb);
|
IRecycleBin_Release(prb);
|
||||||
if (!SUCCEEDED(hr))
|
if (!SUCCEEDED(hr))
|
||||||
return hr;
|
return hr;
|
||||||
s->dwLogicalDrives &= ~(1 << i);
|
s->dwLogicalDrives &= ~(1 << i);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!s->current)
|
if (!s->current)
|
||||||
{
|
{
|
||||||
/* Nothing more to enumerate */
|
/* Nothing more to enumerate */
|
||||||
if (pceltFetched)
|
if (pceltFetched)
|
||||||
*pceltFetched = fetched;
|
*pceltFetched = fetched;
|
||||||
return S_FALSE;
|
return S_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Skip some elements */
|
/* Skip some elements */
|
||||||
while (s->skip > 0)
|
while (s->skip > 0)
|
||||||
{
|
{
|
||||||
IRecycleBinFile *rbf;
|
IRecycleBinFile *rbf;
|
||||||
hr = IRecycleBinEnumList_Next(s->current, 1, &rbf, NULL);
|
hr = IRecycleBinEnumList_Next(s->current, 1, &rbf, NULL);
|
||||||
if (hr == S_OK)
|
if (hr == S_OK)
|
||||||
hr = IRecycleBinFile_Release(rbf);
|
hr = IRecycleBinFile_Release(rbf);
|
||||||
else if (hr == S_FALSE)
|
else if (hr == S_FALSE)
|
||||||
break;
|
break;
|
||||||
else if (!SUCCEEDED(hr))
|
else if (!SUCCEEDED(hr))
|
||||||
return hr;
|
return hr;
|
||||||
}
|
}
|
||||||
if (s->skip > 0)
|
if (s->skip > 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* Fill area */
|
/* Fill area */
|
||||||
hr = IRecycleBinEnumList_Next(s->current, celt - fetched, &rgelt[fetched], &newFetched);
|
hr = IRecycleBinEnumList_Next(s->current, celt - fetched, &rgelt[fetched], &newFetched);
|
||||||
if (SUCCEEDED(hr))
|
if (SUCCEEDED(hr))
|
||||||
fetched += newFetched;
|
fetched += newFetched;
|
||||||
if (hr == S_FALSE || newFetched == 0)
|
if (hr == S_FALSE || newFetched == 0)
|
||||||
{
|
{
|
||||||
hr = IRecycleBinEnumList_Release(s->current);
|
hr = IRecycleBinEnumList_Release(s->current);
|
||||||
s->current = NULL;
|
s->current = NULL;
|
||||||
}
|
}
|
||||||
else if (!SUCCEEDED(hr))
|
else if (!SUCCEEDED(hr))
|
||||||
return hr;
|
return hr;
|
||||||
if (fetched == celt)
|
if (fetched == celt)
|
||||||
{
|
{
|
||||||
if (pceltFetched)
|
if (pceltFetched)
|
||||||
*pceltFetched = fetched;
|
*pceltFetched = fetched;
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Never go here */
|
/* Never go here */
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT STDMETHODCALLTYPE
|
static HRESULT STDMETHODCALLTYPE
|
||||||
RecycleBinGenericEnum_RecycleBinEnumList_Skip(
|
RecycleBinGenericEnum_RecycleBinEnumList_Skip(
|
||||||
IN IRecycleBinEnumList *This,
|
IN IRecycleBinEnumList *This,
|
||||||
IN DWORD celt)
|
IN DWORD celt)
|
||||||
{
|
{
|
||||||
struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl);
|
struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl);
|
||||||
TRACE("(%p, %u)\n", This, celt);
|
TRACE("(%p, %u)\n", This, celt);
|
||||||
s->skip += celt;
|
s->skip += celt;
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT STDMETHODCALLTYPE
|
static HRESULT STDMETHODCALLTYPE
|
||||||
RecycleBinGenericEnum_RecycleBinEnumList_Reset(
|
RecycleBinGenericEnum_RecycleBinEnumList_Reset(
|
||||||
IN IRecycleBinEnumList *This)
|
IN IRecycleBinEnumList *This)
|
||||||
{
|
{
|
||||||
struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl);
|
struct RecycleBinGenericEnum *s = CONTAINING_RECORD(This, struct RecycleBinGenericEnum, recycleBinEnumImpl);
|
||||||
|
|
||||||
TRACE("(%p)\n", This);
|
TRACE("(%p)\n", This);
|
||||||
|
|
||||||
if (s->current)
|
if (s->current)
|
||||||
{
|
{
|
||||||
IRecycleBinEnumList_Release(s->current);
|
IRecycleBinEnumList_Release(s->current);
|
||||||
s->current = NULL;
|
s->current = NULL;
|
||||||
s->skip = 0;
|
s->skip = 0;
|
||||||
}
|
}
|
||||||
s->dwLogicalDrives = GetLogicalDrives();
|
s->dwLogicalDrives = GetLogicalDrives();
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
CONST_VTBL struct IRecycleBinEnumListVtbl RecycleBinGenericEnumVtbl =
|
CONST_VTBL struct IRecycleBinEnumListVtbl RecycleBinGenericEnumVtbl =
|
||||||
{
|
{
|
||||||
RecycleBinGenericEnum_RecycleBinEnumList_QueryInterface,
|
RecycleBinGenericEnum_RecycleBinEnumList_QueryInterface,
|
||||||
RecycleBinGenericEnum_RecycleBinEnumList_AddRef,
|
RecycleBinGenericEnum_RecycleBinEnumList_AddRef,
|
||||||
RecycleBinGenericEnum_RecycleBinEnumList_Release,
|
RecycleBinGenericEnum_RecycleBinEnumList_Release,
|
||||||
RecycleBinGenericEnum_RecycleBinEnumList_Next,
|
RecycleBinGenericEnum_RecycleBinEnumList_Next,
|
||||||
RecycleBinGenericEnum_RecycleBinEnumList_Skip,
|
RecycleBinGenericEnum_RecycleBinEnumList_Skip,
|
||||||
RecycleBinGenericEnum_RecycleBinEnumList_Reset,
|
RecycleBinGenericEnum_RecycleBinEnumList_Reset,
|
||||||
};
|
};
|
||||||
|
|
||||||
HRESULT
|
HRESULT
|
||||||
RecycleBinGenericEnum_Constructor(
|
RecycleBinGenericEnum_Constructor(
|
||||||
OUT IRecycleBinEnumList **pprbel)
|
OUT IRecycleBinEnumList **pprbel)
|
||||||
{
|
{
|
||||||
struct RecycleBinGenericEnum *s;
|
struct RecycleBinGenericEnum *s;
|
||||||
|
|
||||||
s = CoTaskMemAlloc(sizeof(struct RecycleBinGenericEnum));
|
s = CoTaskMemAlloc(sizeof(struct RecycleBinGenericEnum));
|
||||||
if (!s)
|
if (!s)
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
ZeroMemory(s, sizeof(struct RecycleBinGenericEnum));
|
ZeroMemory(s, sizeof(struct RecycleBinGenericEnum));
|
||||||
s->ref = 1;
|
s->ref = 1;
|
||||||
s->recycleBinEnumImpl.lpVtbl = &RecycleBinGenericEnumVtbl;
|
s->recycleBinEnumImpl.lpVtbl = &RecycleBinGenericEnumVtbl;
|
||||||
|
|
||||||
*pprbel = &s->recycleBinEnumImpl;
|
*pprbel = &s->recycleBinEnumImpl;
|
||||||
return IRecycleBinEnumList_Reset(*pprbel);
|
return IRecycleBinEnumList_Reset(*pprbel);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue