84{
85 IRecycleBin *prb;
87 DWORD dwBufferLength = 0;
91
93
94
96 {
99 {
100 if (szFullName)
103 }
104 else if (
len < dwBufferLength)
105 break;
106 if (szFullName)
108 dwBufferLength =
len;
110 if (!szFullName)
112 }
113
114
115#ifndef __REACTOS__
117 {
120 }
121#else
122 swprintf(szVolume,
L"%c:\\", szFullName[0]);
123#endif
124
125
126 if (szVolume[0] == '\\'
127 && szVolume[1] == '\\'
128 && (szVolume[2] == '.' || szVolume[2] == '?')
129 && szVolume[3] == '\\')
130 {
132 }
133
136 {
139 }
140
141 hr = IRecycleBin_DeleteFile(prb, szFullName);
143 IRecycleBin_Release(prb);
145}
#define ERROR_NOT_ENOUGH_MEMORY
BOOL WINAPI GetVolumePathNameW(IN LPCWSTR lpszFileName, IN LPWSTR lpszVolumePathName, IN DWORD cchBufferLength)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
HRESULT WINAPI GetDefaultRecycleBin(IN LPCWSTR pszVolume OPTIONAL, OUT IRecycleBin **pprb)
DWORD WINAPI GetLastError(void)
#define HRESULT_FROM_WIN32(x)