/*
* provides new shell item service
*
- * Copyright 2007 Johannes Anderwald (janderwald@reactos.org)
+ * Copyright 2007 Johannes Anderwald (johannes.anderwald@reactos.org)
* Copyright 2009 Andrew Hill
* Copyright 2012 Rafal Harabien
*
return NULL;
/* Create new item */
- SHELLNEW_ITEM *pNewItem = (SHELLNEW_ITEM *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SHELLNEW_ITEM));
+ SHELLNEW_ITEM *pNewItem = static_cast<SHELLNEW_ITEM *>(HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SHELLNEW_ITEM)));
if (!pNewItem)
{
free(pData);
pNewItem->pwszExt = _wcsdup(pwszExt);
pNewItem->pwszDesc = _wcsdup(fi.szTypeName);
if (fi.hIcon)
+ {
pNewItem->hBitmap = IconToBitmap(fi.hIcon);
+ DestroyIcon(fi.hIcon);
+ }
return pNewItem;
}
if (!m_pLinkItem)
{
- m_pLinkItem = (SHELLNEW_ITEM *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SHELLNEW_ITEM));
+ m_pLinkItem = static_cast<SHELLNEW_ITEM *>(HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SHELLNEW_ITEM)));
if (m_pLinkItem)
{
m_pLinkItem->Type = SHELLNEW_TYPE_NULLFILE;
// return E_FAIL;
/* Get current folder */
- hr = IUnknown_QueryService(psv, SID_IFolderView, IID_IFolderView, (void **)&pFolderView);
+ hr = IUnknown_QueryService(psv, SID_IFolderView, IID_PPV_ARG(IFolderView, &pFolderView));
if (FAILED(hr))
return hr;
- hr = pFolderView->GetFolder(IID_IShellFolder, (void **)&pParentFolder);
+ hr = pFolderView->GetFolder(IID_PPV_ARG(IShellFolder, &pParentFolder));
if (FAILED(hr))
return hr;
- hr = pParentFolder->QueryInterface(IID_ISFHelper, (LPVOID*)&psfhlp);
+ hr = pParentFolder->QueryInterface(IID_PPV_ARG(ISFHelper, &psfhlp));
if (FAILED(hr))
return hr;
WCHAR wszPath[MAX_PATH];
CComPtr<IFolderView> pFolderView;
CComPtr<IShellFolder> pParentFolder;
- CComPtr<IPersistFolder3> psf;
+ CComPtr<IPersistFolder2> psf;
HRESULT hr;
/* Get current folder */
- hr = IUnknown_QueryService(psv, SID_IFolderView, IID_IFolderView, (void **)&pFolderView);
+ hr = IUnknown_QueryService(psv, SID_IFolderView, IID_PPV_ARG(IFolderView, &pFolderView));
if (FAILED(hr))
return hr;
- hr = pFolderView->GetFolder(IID_IShellFolder, (void **)&pParentFolder);
+ hr = pFolderView->GetFolder(IID_PPV_ARG(IShellFolder, &pParentFolder));
if (FAILED(hr))
return hr;
- if (pParentFolder->QueryInterface(IID_IPersistFolder2, (LPVOID*)&psf) != S_OK)
+ if (pParentFolder->QueryInterface(IID_PPV_ARG(IPersistFolder2, &psf)) != S_OK)
{
ERR("Failed to get interface IID_IPersistFolder2\n");
return E_FAIL;
HRESULT STDMETHODCALLTYPE CNewMenu::GetSite(REFIID riid, void **ppvSite)
{
- if (ppvSite == NULL)
- return E_POINTER;
- *ppvSite = m_pSite;
- if (m_pSite != NULL)
- m_pSite->AddRef();
- return S_OK;
+ return m_pSite->QueryInterface(riid, ppvSite);
}
HRESULT
WINAPI
CNewMenu::InvokeCommand(LPCMINVOKECOMMANDINFO lpici)
{
- IShellBrowser *lpSB = NULL;
- CComPtr<IShellView> lpSV = NULL;
+ CComPtr<IShellBrowser> lpSB;
+ CComPtr<IShellView> lpSV;
HRESULT hr = E_FAIL;
/* Note: CWM_GETISHELLBROWSER returns shell browser without adding reference */