mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 08:25:03 +00:00
[SHELL32]
* Another batch of interface pointers converted to CComPtr. svn path=/branches/shell-experiments/; revision=63909
This commit is contained in:
parent
ef04ff090e
commit
117eba9bd5
12 changed files with 94 additions and 119 deletions
|
@ -177,8 +177,9 @@ static void InitializeTreeView( browse_info *info )
|
|||
LPITEMIDLIST pidlParent, pidlChild;
|
||||
HIMAGELIST hImageList;
|
||||
HRESULT hr;
|
||||
IShellFolder *lpsfParent, *lpsfRoot;
|
||||
IEnumIDList * pEnumChildren = NULL;
|
||||
CComPtr<IShellFolder> lpsfParent;
|
||||
CComPtr<IShellFolder> lpsfRoot;
|
||||
CComPtr<IEnumIDList> pEnumChildren;
|
||||
HTREEITEM item;
|
||||
DWORD flags;
|
||||
LPCITEMIDLIST root = info->lpBrowseInfo->pidlRoot;
|
||||
|
@ -232,12 +233,10 @@ static void InitializeTreeView( browse_info *info )
|
|||
hr = lpsfParent->BindToObject(pidlChild, 0, IID_PPV_ARG(IShellFolder, &lpsfRoot));
|
||||
} else {
|
||||
lpsfRoot = lpsfParent;
|
||||
hr = lpsfParent->AddRef();
|
||||
}
|
||||
|
||||
if (FAILED(hr)) {
|
||||
WARN("Could not bind to root shell folder! hr = %08x\n", hr);
|
||||
lpsfParent->Release();
|
||||
ILFree(pidlChild);
|
||||
ILFree(pidlParent);
|
||||
return;
|
||||
|
@ -247,8 +246,6 @@ static void InitializeTreeView( browse_info *info )
|
|||
hr = lpsfRoot->EnumObjects(info->hWnd, flags, &pEnumChildren );
|
||||
if (FAILED(hr)) {
|
||||
WARN("Could not get child iterator! hr = %08x\n", hr);
|
||||
lpsfParent->Release();
|
||||
lpsfRoot->Release();
|
||||
ILFree(pidlChild);
|
||||
ILFree(pidlParent);
|
||||
return;
|
||||
|
@ -261,8 +258,6 @@ static void InitializeTreeView( browse_info *info )
|
|||
|
||||
ILFree(pidlChild);
|
||||
ILFree(pidlParent);
|
||||
lpsfRoot->Release();
|
||||
lpsfParent->Release();
|
||||
}
|
||||
|
||||
static int GetIcon(LPCITEMIDLIST lpi, UINT uFlags)
|
||||
|
@ -366,6 +361,7 @@ static HTREEITEM InsertTreeViewItem( browse_info *info, IShellFolder * lpsf,
|
|||
tvi.lParam = (LPARAM)lptvid;
|
||||
|
||||
lpsf->AddRef();
|
||||
pEnumIL->AddRef();
|
||||
lptvid->lpsfParent = lpsf;
|
||||
lptvid->lpi = ILClone(pidl);
|
||||
lptvid->lpifq = pidlParent ? ILCombine(pidlParent, pidl) : ILClone(pidl);
|
||||
|
@ -411,8 +407,8 @@ static void FillTreeView( browse_info *info, IShellFolder * lpsf,
|
|||
while (S_OK == lpe->Next(1,&pidlTemp,&ulFetched))
|
||||
{
|
||||
ULONG ulAttrs = SFGAO_HASSUBFOLDER | SFGAO_FOLDER;
|
||||
IEnumIDList* pEnumIL = NULL;
|
||||
IShellFolder* pSFChild = NULL;
|
||||
CComPtr<IEnumIDList> pEnumIL;
|
||||
CComPtr<IShellFolder> pSFChild;
|
||||
lpsf->GetAttributesOf(1, (LPCITEMIDLIST*)&pidlTemp, &ulAttrs);
|
||||
if (ulAttrs & SFGAO_FOLDER)
|
||||
{
|
||||
|
@ -426,11 +422,9 @@ static void FillTreeView( browse_info *info, IShellFolder * lpsf,
|
|||
if ((pEnumIL->Skip(1) != S_OK) ||
|
||||
FAILED(pEnumIL->Reset()))
|
||||
{
|
||||
pEnumIL->Release();
|
||||
pEnumIL = NULL;
|
||||
}
|
||||
}
|
||||
pSFChild->Release();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -508,7 +502,7 @@ static LRESULT BrsFolder_Treeview_Delete( browse_info *info, NMTREEVIEWW *pnmtv
|
|||
|
||||
static LRESULT BrsFolder_Treeview_Expand( browse_info *info, NMTREEVIEWW *pnmtv )
|
||||
{
|
||||
IShellFolder *lpsf2 = NULL;
|
||||
CComPtr<IShellFolder> lpsf2;
|
||||
LPTV_ITEMDATA lptvid = (LPTV_ITEMDATA) pnmtv->itemNew.lParam;
|
||||
HRESULT r;
|
||||
|
||||
|
|
|
@ -308,7 +308,7 @@ HasClipboardData()
|
|||
STGMEDIUM medium;
|
||||
FORMATETC formatetc;
|
||||
|
||||
TRACE("pDataObj=%p\n", pDataObj);
|
||||
TRACE("pDataObj=%p\n", pDataObj.p);
|
||||
|
||||
/* Set the FORMATETC structure*/
|
||||
InitFormatEtc(formatetc, RegisterClipboardFormatW(CFSTR_SHELLIDLIST), TYMED_HGLOBAL);
|
||||
|
@ -933,15 +933,13 @@ NotifyShellViewWindow(LPCMINVOKECOMMANDINFO lpcmi, BOOL bRefresh)
|
|||
if (!lpSB)
|
||||
return E_FAIL;
|
||||
|
||||
IShellView * lpSV = NULL;
|
||||
CComPtr<IShellView> lpSV;
|
||||
if (FAILED(lpSB->QueryActiveShellView(&lpSV)))
|
||||
return E_FAIL;
|
||||
|
||||
HWND hwndSV = NULL;
|
||||
if (SUCCEEDED(lpSV->GetWindow(&hwndSV)))
|
||||
SendMessageW(hwndSV, WM_COMMAND, MAKEWPARAM(LOWORD(lpcmi->lpVerb), 0), 0);
|
||||
|
||||
lpSV->Release();
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -241,11 +241,11 @@ IExtractIconW* IExtractIconW_Constructor(LPCITEMIDLIST pidl)
|
|||
{
|
||||
static const WCHAR szFull[] = {'F','u','l','l',0};
|
||||
static const WCHAR szEmpty[] = {'E','m','p','t','y',0};
|
||||
IEnumIDList *EnumIDList = NULL;
|
||||
CComPtr<IEnumIDList> EnumIDList;
|
||||
CoInitialize(NULL);
|
||||
|
||||
IShellFolder2 *psfRecycleBin = NULL;
|
||||
IShellFolder *psfDesktop = NULL;
|
||||
CComPtr<IShellFolder2> psfRecycleBin;
|
||||
CComPtr<IShellFolder> psfDesktop;
|
||||
hr = SHGetDesktopFolder(&psfDesktop);
|
||||
|
||||
if (SUCCEEDED(hr))
|
||||
|
@ -262,13 +262,6 @@ IExtractIconW* IExtractIconW_Constructor(LPCITEMIDLIST pidl)
|
|||
} else {
|
||||
iconname = szEmpty;
|
||||
}
|
||||
|
||||
if (psfDesktop)
|
||||
psfDesktop->Release();
|
||||
if (psfRecycleBin)
|
||||
psfRecycleBin->Release();
|
||||
if (EnumIDList)
|
||||
EnumIDList->Release();
|
||||
}
|
||||
|
||||
if (HCR_GetIconW(xriid, wTemp, iconname, MAX_PATH, &icon_idx))
|
||||
|
|
|
@ -544,12 +544,7 @@ HRESULT STDMETHODCALLTYPE CNewMenu::SetSite(IUnknown *pUnkSite)
|
|||
|
||||
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
|
||||
|
@ -596,8 +591,8 @@ 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 */
|
||||
|
|
|
@ -54,7 +54,7 @@ private:
|
|||
LPWSTR m_wszPath;
|
||||
SHELLNEW_ITEM *m_pItems;
|
||||
SHELLNEW_ITEM *m_pLinkItem;
|
||||
IUnknown *m_pSite;
|
||||
CComPtr<IUnknown> m_pSite;
|
||||
HMENU m_hSubMenu;
|
||||
HBITMAP m_hbmFolder, m_hbmLink;
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ static BOOL ILGetDisplayNameExA(IShellFolder * psf, LPCITEMIDLIST pidl, LPSTR pa
|
|||
BOOL WINAPI ILGetDisplayNameExW(IShellFolder * psf, LPCITEMIDLIST pidl, LPWSTR path, DWORD type)
|
||||
{
|
||||
CComPtr<IShellFolder> psfParent;
|
||||
IShellFolder * lsf = psf;
|
||||
CComPtr<IShellFolder> lsf = psf;
|
||||
HRESULT ret = NO_ERROR;
|
||||
LPCITEMIDLIST pidllast;
|
||||
STRRET strret;
|
||||
|
@ -133,8 +133,6 @@ BOOL WINAPI ILGetDisplayNameExW(IShellFolder * psf, LPCITEMIDLIST pidl, LPWSTR p
|
|||
|
||||
TRACE("%p %p %s\n", psf, pidl, debugstr_w(path));
|
||||
|
||||
if (!psf)
|
||||
lsf->Release();
|
||||
return SUCCEEDED(ret);
|
||||
}
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ private:
|
|||
BOOL bDirty;
|
||||
INT iIdOpen; /* id of the "Open" entry in the context menu */
|
||||
CComPtr<IUnknown> site;
|
||||
IDropTarget *mDropTarget;
|
||||
CComPtr<IDropTarget> mDropTarget;
|
||||
public:
|
||||
CShellLink();
|
||||
~CShellLink();
|
||||
|
|
|
@ -2275,10 +2275,11 @@ EXTERN_C HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv)
|
|||
/* Get the interface for the new image list */
|
||||
if (hNew)
|
||||
{
|
||||
IImageList *imageList = (IImageList*) hNew;
|
||||
IImageList *imageList = reinterpret_cast<IImageList*>(hNew);
|
||||
ret = imageList->QueryInterface(riid, ppv);
|
||||
|
||||
ImageList_Destroy(hNew);
|
||||
// Since we are not duplicating, destroying makes no sense.
|
||||
/* ImageList_Destroy(hNew); */
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
|
|
@ -1274,8 +1274,8 @@ static HKEY ShellExecute_GetClassKey(const SHELLEXECUTEINFOW *sei)
|
|||
static IDataObject *shellex_get_dataobj( LPSHELLEXECUTEINFOW sei )
|
||||
{
|
||||
LPCITEMIDLIST pidllast = NULL;
|
||||
IDataObject *dataobj = NULL;
|
||||
IShellFolder *shf = NULL;
|
||||
CComPtr<IDataObject> dataobj;
|
||||
CComPtr<IShellFolder> shf;
|
||||
LPITEMIDLIST pidl = NULL;
|
||||
HRESULT r;
|
||||
|
||||
|
@ -1303,15 +1303,13 @@ static IDataObject *shellex_get_dataobj( LPSHELLEXECUTEINFOW sei )
|
|||
end:
|
||||
if (pidl != sei->lpIDList)
|
||||
ILFree(pidl);
|
||||
if (shf)
|
||||
shf->Release();
|
||||
return dataobj;
|
||||
return dataobj.Detach();
|
||||
}
|
||||
|
||||
static HRESULT shellex_run_context_menu_default(IShellExtInit *obj,
|
||||
LPSHELLEXECUTEINFOW sei)
|
||||
{
|
||||
IContextMenu *cm = NULL;
|
||||
CComPtr<IContextMenu> cm = NULL;
|
||||
CMINVOKECOMMANDINFOEX ici;
|
||||
MENUITEMINFOW info;
|
||||
WCHAR string[0x80];
|
||||
|
@ -1374,13 +1372,12 @@ static HRESULT shellex_run_context_menu_default(IShellExtInit *obj,
|
|||
end:
|
||||
if (hmenu)
|
||||
DestroyMenu( hmenu );
|
||||
if (cm)
|
||||
cm->Release();
|
||||
return r;
|
||||
}
|
||||
|
||||
static HRESULT shellex_load_object_and_run(HKEY hkey, LPCGUID guid, LPSHELLEXECUTEINFOW sei)
|
||||
{
|
||||
// Can not use CComPtr here because of CoUninitialize at the end, before the destructors would run.
|
||||
IDataObject *dataobj = NULL;
|
||||
IObjectWithSite *ows = NULL;
|
||||
IShellExtInit *obj = NULL;
|
||||
|
|
|
@ -204,7 +204,7 @@ static HRESULT SHELL32_CoCreateInitSF (LPCITEMIDLIST pidlRoot, LPCWSTR pathRoot,
|
|||
LPCITEMIDLIST pidlChild, REFCLSID clsid, LPVOID * ppvOut)
|
||||
{
|
||||
HRESULT hr;
|
||||
IShellFolder* pShellFolder = NULL;
|
||||
CComPtr<IShellFolder> pShellFolder;
|
||||
|
||||
TRACE ("%p %s %p\n", pidlRoot, debugstr_w(pathRoot), pidlChild);
|
||||
|
||||
|
@ -250,7 +250,7 @@ static HRESULT SHELL32_CoCreateInitSF (LPCITEMIDLIST pidlRoot, LPCWSTR pathRoot,
|
|||
ILFree (pidlAbsolute);
|
||||
}
|
||||
|
||||
*ppvOut = pShellFolder;
|
||||
*ppvOut = pShellFolder.Detach();
|
||||
|
||||
TRACE ("-- (%p) ret=0x%08x\n", *ppvOut, hr);
|
||||
|
||||
|
@ -490,12 +490,11 @@ HRESULT SHELL32_GetItemAttributes (IShellFolder * psf, LPCITEMIDLIST pidl, LPDWO
|
|||
CComPtr<IShellFolder> psf2;
|
||||
if (SUCCEEDED(psf->BindToObject(pidl, 0, IID_PPV_ARG(IShellFolder, &psf2))))
|
||||
{
|
||||
IEnumIDList *pEnumIL = NULL;
|
||||
CComPtr<IEnumIDList> pEnumIL;
|
||||
if (SUCCEEDED(psf2->EnumObjects(0, SHCONTF_FOLDERS, &pEnumIL)))
|
||||
{
|
||||
if (pEnumIL->Skip(1) != S_OK)
|
||||
*pdwAttributes &= ~SFGAO_HASSUBFOLDER;
|
||||
pEnumIL->Release();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -114,7 +114,9 @@ static LPFMINFO FM_SetMenuParameter(
|
|||
*
|
||||
*/
|
||||
static int FM_InitMenuPopup(HMENU hmenu, LPCITEMIDLIST pAlternatePidl)
|
||||
{ IShellFolder *lpsf, *lpsf2;
|
||||
{
|
||||
CComPtr<IShellFolder> lpsf;
|
||||
CComPtr<IShellFolder> lpsf2;
|
||||
ULONG ulItemAttr = SFGAO_FOLDER;
|
||||
UINT uID, uEnumFlags;
|
||||
LPFNFMCALLBACK lpfnCallback;
|
||||
|
@ -129,23 +131,23 @@ static int FM_InitMenuPopup(HMENU hmenu, LPCITEMIDLIST pAlternatePidl)
|
|||
MenuInfo.cbSize = sizeof(MENUINFO);
|
||||
MenuInfo.fMask = MIM_MENUDATA;
|
||||
|
||||
if (! GetMenuInfo(hmenu, &MenuInfo))
|
||||
return FALSE;
|
||||
if (!GetMenuInfo(hmenu, &MenuInfo))
|
||||
return FALSE;
|
||||
|
||||
menudata = (LPFMINFO)MenuInfo.dwMenuData;
|
||||
menudata = (LPFMINFO) MenuInfo.dwMenuData;
|
||||
|
||||
if ((menudata == 0) || (MenuInfo.cbSize != sizeof(MENUINFO)))
|
||||
{
|
||||
ERR("menudata corrupt: %p %u\n", menudata, MenuInfo.cbSize);
|
||||
return 0;
|
||||
ERR("menudata corrupt: %p %u\n", menudata, MenuInfo.cbSize);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (menudata->bInitialized)
|
||||
return 0;
|
||||
return 0;
|
||||
|
||||
pidl = (pAlternatePidl? pAlternatePidl: menudata->pidl);
|
||||
pidl = (pAlternatePidl ? pAlternatePidl : menudata->pidl);
|
||||
if (!pidl)
|
||||
return 0;
|
||||
return 0;
|
||||
|
||||
uID = menudata->uID;
|
||||
uEnumFlags = menudata->uEnumFlags;
|
||||
|
@ -154,73 +156,70 @@ static int FM_InitMenuPopup(HMENU hmenu, LPCITEMIDLIST pAlternatePidl)
|
|||
|
||||
SetMenuInfo(hmenu, &MenuInfo);
|
||||
|
||||
if (SUCCEEDED (SHGetDesktopFolder(&lpsf)))
|
||||
if (SUCCEEDED(SHGetDesktopFolder(&lpsf)))
|
||||
{
|
||||
if (SUCCEEDED(lpsf->BindToObject(pidl, 0, IID_PPV_ARG(IShellFolder, &lpsf2))))
|
||||
{
|
||||
IEnumIDList *lpe = NULL;
|
||||
|
||||
if (SUCCEEDED (lpsf2->EnumObjects(0, uEnumFlags, &lpe )))
|
||||
if (SUCCEEDED(lpsf->BindToObject(pidl, 0, IID_PPV_ARG(IShellFolder, &lpsf2))))
|
||||
{
|
||||
CComPtr<IEnumIDList> lpe;
|
||||
|
||||
LPITEMIDLIST pidlTemp = NULL;
|
||||
ULONG ulFetched;
|
||||
if (SUCCEEDED(lpsf2->EnumObjects(0, uEnumFlags, &lpe)))
|
||||
{
|
||||
|
||||
while ((!bAbortInit) && (S_OK == lpe->Next(1,&pidlTemp,&ulFetched)))
|
||||
{
|
||||
if (SUCCEEDED (lpsf->GetAttributesOf(1, (LPCITEMIDLIST*)&pidlTemp, &ulItemAttr)))
|
||||
{
|
||||
ILGetDisplayNameExW(NULL, pidlTemp, sTemp, ILGDN_FORPARSING);
|
||||
if (! (PidlToSicIndex(lpsf, pidlTemp, FALSE, 0, &iIcon)))
|
||||
iIcon = FM_BLANK_ICON;
|
||||
if ( SFGAO_FOLDER & ulItemAttr)
|
||||
{
|
||||
LPFMINFO lpFmMi;
|
||||
MENUINFO MenuInfo;
|
||||
HMENU hMenuPopup = CreatePopupMenu();
|
||||
LPITEMIDLIST pidlTemp = NULL;
|
||||
ULONG ulFetched;
|
||||
|
||||
lpFmMi = (LPFMINFO)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(FMINFO));
|
||||
while ((!bAbortInit) && (S_OK == lpe->Next(1, &pidlTemp, &ulFetched)))
|
||||
{
|
||||
if (SUCCEEDED(lpsf->GetAttributesOf(1, (LPCITEMIDLIST*) &pidlTemp, &ulItemAttr)))
|
||||
{
|
||||
ILGetDisplayNameExW(NULL, pidlTemp, sTemp, ILGDN_FORPARSING);
|
||||
if (!(PidlToSicIndex(lpsf, pidlTemp, FALSE, 0, &iIcon)))
|
||||
iIcon = FM_BLANK_ICON;
|
||||
if (SFGAO_FOLDER & ulItemAttr)
|
||||
{
|
||||
LPFMINFO lpFmMi;
|
||||
MENUINFO MenuInfo;
|
||||
HMENU hMenuPopup = CreatePopupMenu();
|
||||
|
||||
lpFmMi->pidl = ILCombine(pidl, pidlTemp);
|
||||
lpFmMi->uEnumFlags = SHCONTF_FOLDERS | SHCONTF_NONFOLDERS;
|
||||
lpFmMi = (LPFMINFO) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(FMINFO));
|
||||
|
||||
MenuInfo.cbSize = sizeof(MENUINFO);
|
||||
MenuInfo.fMask = MIM_MENUDATA;
|
||||
MenuInfo.dwMenuData = (ULONG_PTR) lpFmMi;
|
||||
SetMenuInfo (hMenuPopup, &MenuInfo);
|
||||
lpFmMi->pidl = ILCombine(pidl, pidlTemp);
|
||||
lpFmMi->uEnumFlags = SHCONTF_FOLDERS | SHCONTF_NONFOLDERS;
|
||||
|
||||
FileMenu_AppendItemW (hmenu, sTemp, uID, iIcon, hMenuPopup, FM_DEFAULT_HEIGHT);
|
||||
}
|
||||
else
|
||||
{
|
||||
LPWSTR pExt = PathFindExtensionW(sTemp);
|
||||
if (pExt)
|
||||
*pExt = 0;
|
||||
FileMenu_AppendItemW (hmenu, sTemp, uID, iIcon, 0, FM_DEFAULT_HEIGHT);
|
||||
}
|
||||
MenuInfo.cbSize = sizeof(MENUINFO);
|
||||
MenuInfo.fMask = MIM_MENUDATA;
|
||||
MenuInfo.dwMenuData = (ULONG_PTR) lpFmMi;
|
||||
SetMenuInfo(hMenuPopup, &MenuInfo);
|
||||
|
||||
FileMenu_AppendItemW(hmenu, sTemp, uID, iIcon, hMenuPopup, FM_DEFAULT_HEIGHT);
|
||||
}
|
||||
else
|
||||
{
|
||||
LPWSTR pExt = PathFindExtensionW(sTemp);
|
||||
if (pExt)
|
||||
*pExt = 0;
|
||||
FileMenu_AppendItemW(hmenu, sTemp, uID, iIcon, 0, FM_DEFAULT_HEIGHT);
|
||||
}
|
||||
}
|
||||
|
||||
if (lpfnCallback)
|
||||
{
|
||||
TRACE("enter callback\n");
|
||||
lpfnCallback(pidl, pidlTemp);
|
||||
TRACE("leave callback\n");
|
||||
}
|
||||
|
||||
NumberOfItems++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (lpfnCallback)
|
||||
{
|
||||
TRACE("enter callback\n");
|
||||
lpfnCallback ( pidl, pidlTemp);
|
||||
TRACE("leave callback\n");
|
||||
}
|
||||
|
||||
NumberOfItems++;
|
||||
}
|
||||
lpe->Release();
|
||||
}
|
||||
lpsf2->Release();
|
||||
}
|
||||
lpsf->Release();
|
||||
}
|
||||
|
||||
if ( GetMenuItemCount (hmenu) == 0 )
|
||||
if (GetMenuItemCount(hmenu) == 0)
|
||||
{
|
||||
static const WCHAR szEmpty[] = { '(','e','m','p','t','y',')',0 };
|
||||
FileMenu_AppendItemW (hmenu, szEmpty, uID, FM_BLANK_ICON, 0, FM_DEFAULT_HEIGHT);
|
||||
NumberOfItems++;
|
||||
static const WCHAR szEmpty [] = { '(', 'e', 'm', 'p', 't', 'y', ')', 0 };
|
||||
FileMenu_AppendItemW(hmenu, szEmpty, uID, FM_BLANK_ICON, 0, FM_DEFAULT_HEIGHT);
|
||||
NumberOfItems++;
|
||||
}
|
||||
|
||||
menudata->bInitialized = TRUE;
|
||||
|
@ -228,6 +227,7 @@ static int FM_InitMenuPopup(HMENU hmenu, LPCITEMIDLIST pAlternatePidl)
|
|||
|
||||
return NumberOfItems;
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* FileMenu_Create [SHELL32.114]
|
||||
*
|
||||
|
|
|
@ -1761,7 +1761,7 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
|
|||
|
||||
if (SUCCEEDED(m_pSFParent->GetUIObjectOf(m_hWnd, m_cidl, (LPCITEMIDLIST*)m_apidl, IID_NULL_PPV_ARG(IDataObject, &pda))))
|
||||
{
|
||||
IDropSource * pds = (IDropSource *)this; /* own DropSource interface */
|
||||
CComPtr<IDropSource> pds = static_cast<IDropSource *>(this); /* own DropSource interface */
|
||||
|
||||
if (SUCCEEDED(m_pSFParent->GetAttributesOf(m_cidl, (LPCITEMIDLIST*)m_apidl, &dwAttributes)))
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue