mirror of
https://github.com/Open-Shell/Open-Shell-Menu.git
synced 2026-04-11 17:37:22 +10:00
ModernSettings: Use smart pointers
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
#include "stdafx.h"
|
||||
#include "ModernSettings.h"
|
||||
#include "ModernSettingsContextMenu.h"
|
||||
#include "ComHelper.h"
|
||||
|
||||
#define MENUVERB_OPEN 0
|
||||
|
||||
@@ -177,13 +178,10 @@ HRESULT CModernSettingsContextMenu::InvokeCommand(LPCMINVOKECOMMANDINFO pici)
|
||||
{
|
||||
if (uID == MENUVERB_OPEN && m_pdtobj)
|
||||
{
|
||||
LPITEMIDLIST pidl;
|
||||
CAbsolutePidl pidl;
|
||||
hr = SHGetIDListFromObject(m_pdtobj, &pidl);
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
hr = OpenItemByPidl(pidl);
|
||||
ILFree(pidl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -341,7 +341,7 @@ HRESULT CModernSettingsShellFolder::GetUIObjectOf(HWND hwnd, UINT cidl, PCUITEMI
|
||||
{
|
||||
if (!s.icon.empty())
|
||||
{
|
||||
IDefaultExtractIconInit* pdxi;
|
||||
CComPtr<IDefaultExtractIconInit> pdxi;
|
||||
hr = SHCreateDefaultExtractIcon(IID_PPV_ARGS(&pdxi));
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
@@ -353,8 +353,6 @@ HRESULT CModernSettingsShellFolder::GetUIObjectOf(HWND hwnd, UINT cidl, PCUITEMI
|
||||
hr = pdxi->SetNormalIcon(icon_path, location);
|
||||
if (SUCCEEDED(hr))
|
||||
hr = pdxi->QueryInterface(riid, ppv);
|
||||
|
||||
pdxi->Release();
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -368,7 +366,6 @@ HRESULT CModernSettingsShellFolder::GetUIObjectOf(HWND hwnd, UINT cidl, PCUITEMI
|
||||
extract->SetGlyph(glyph);
|
||||
hr = extract->QueryInterface(riid, ppv);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -409,7 +406,7 @@ HRESULT CModernSettingsShellFolder::GetDisplayNameOf(PCUITEMID_CHILD pidl, SHGDN
|
||||
else
|
||||
{
|
||||
WCHAR szDisplayName[MAX_PATH];
|
||||
PWSTR pszThisFolder;
|
||||
CComString pszThisFolder;
|
||||
hr = SHGetNameFromIDList(m_pidl, (shgdnFlags & SHGDN_FORADDRESSBAR) ? SIGDN_DESKTOPABSOLUTEEDITING : SIGDN_DESKTOPABSOLUTEPARSING, &pszThisFolder);
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
@@ -417,8 +414,6 @@ HRESULT CModernSettingsShellFolder::GetDisplayNameOf(PCUITEMID_CHILD pidl, SHGDN
|
||||
StringCchCat(szDisplayName, ARRAYSIZE(szDisplayName), L"\\");
|
||||
StringCchCat(szDisplayName, ARRAYSIZE(szDisplayName), setting.fileName.data());
|
||||
|
||||
CoTaskMemFree(pszThisFolder);
|
||||
|
||||
hr = StringToStrRet(szDisplayName, pName);
|
||||
}
|
||||
}
|
||||
@@ -535,7 +530,7 @@ HRESULT CModernSettingsShellFolder::GetClassID(CLSID* pClassID)
|
||||
// IPersistFolder method
|
||||
HRESULT CModernSettingsShellFolder::Initialize(PCIDLIST_ABSOLUTE pidl)
|
||||
{
|
||||
m_pidl = ILCloneFull(pidl);
|
||||
m_pidl = pidl;
|
||||
return m_pidl ? S_OK : E_FAIL;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#pragma once
|
||||
#include "resource.h"
|
||||
#include "ComHelper.h"
|
||||
#include "StartMenuHelper_i.h"
|
||||
#include <shlobj.h>
|
||||
#include <string>
|
||||
@@ -78,7 +79,7 @@ END_COM_MAP()
|
||||
private:
|
||||
std::wstring_view GetColumnDisplayName(PCUITEMID_CHILD pidl, UINT iColumn);
|
||||
|
||||
PIDLIST_ABSOLUTE m_pidl = nullptr; // where this folder is in the name space
|
||||
CAbsolutePidl m_pidl; // where this folder is in the name space
|
||||
};
|
||||
|
||||
OBJECT_ENTRY_AUTO(__uuidof(ModernSettingsShellFolder), CModernSettingsShellFolder)
|
||||
|
||||
Reference in New Issue
Block a user