File tree Expand file tree Collapse file tree 1 file changed +6
-4
lines changed Expand file tree Collapse file tree 1 file changed +6
-4
lines changed Original file line number Diff line number Diff line change 25
25
// These two headers must be included last, and make sure shlobj is required
26
26
// after Windows.h to make sure it picks up our definition of _WIN32_WINNT
27
27
#include " llvm/Support/Windows/WindowsSupport.h"
28
- #include < atlbase.h>
29
28
#include < shellapi.h>
30
29
#include < shlobj.h>
31
30
@@ -1395,19 +1394,22 @@ std::error_code remove_directories(const Twine &path, bool IgnoreErrors) {
1395
1394
if (FAILED (HR))
1396
1395
break ;
1397
1396
auto Uninitialize = make_scope_exit ([] { CoUninitialize (); });
1398
- CComPtr<IFileOperation> FileOp;
1399
- HR = FileOp.CoCreateInstance (CLSID_FileOperation);
1397
+ IFileOperation *FileOp = NULL ;
1398
+ HR = CoCreateInstance (CLSID_FileOperation, NULL , CLSCTX_ALL,
1399
+ IID_PPV_ARGS (&FileOp));
1400
1400
if (FAILED (HR))
1401
1401
break ;
1402
+ auto FileOpRelease = make_scope_exit ([&FileOp] { FileOp->Release (); });
1402
1403
HR = FileOp->SetOperationFlags (FOF_NO_UI | FOFX_NOCOPYHOOKS);
1403
1404
if (FAILED (HR))
1404
1405
break ;
1405
1406
PIDLIST_ABSOLUTE PIDL = ILCreateFromPathW (Path16.data ());
1406
1407
auto FreePIDL = make_scope_exit ([&PIDL] { ILFree (PIDL); });
1407
- CComPtr< IShellItem> ShItem;
1408
+ IShellItem * ShItem = NULL ;
1408
1409
HR = SHCreateItemFromIDList (PIDL, IID_PPV_ARGS (&ShItem));
1409
1410
if (FAILED (HR))
1410
1411
break ;
1412
+ auto ShItemRelease = make_scope_exit ([&ShItem] { ShItem->Release (); });
1411
1413
HR = FileOp->DeleteItem (ShItem, NULL );
1412
1414
if (FAILED (HR))
1413
1415
break ;
You can’t perform that action at this time.
0 commit comments