static const DWORD dwDesktopAttributes =
SFGAO_HASSUBFOLDER | SFGAO_FILESYSTEM | SFGAO_FOLDER | SFGAO_FILESYSANCESTOR |
- SFGAO_STORAGEANCESTOR | SFGAO_HASPROPSHEET | SFGAO_STORAGE | SFGAO_CANLINK;
+ SFGAO_STORAGEANCESTOR | SFGAO_HASPROPSHEET | SFGAO_STORAGE;
static const DWORD dwMyComputerAttributes =
SFGAO_CANRENAME | SFGAO_CANDELETE | SFGAO_HASPROPSHEET | SFGAO_DROPTARGET |
SFGAO_FILESYSANCESTOR | SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_CANLINK;
{
TRACE ("(%p)->(%p)\n", this, pidl);
+ if (!pidl)
+ return S_OK;
+
return E_INVALIDARG;
}
-HRESULT WINAPI CDesktopFolder::GetCurFolder(LPITEMIDLIST * pidl)
+HRESULT WINAPI CDesktopFolder::GetCurFolder(PIDLIST_ABSOLUTE * pidl)
{
TRACE ("(%p)->(%p)\n", this, pidl);
{
if (uMsg == DFM_INVOKECOMMAND && wParam == 0)
{
- if (32 >= (UINT)ShellExecuteW(hwndOwner, L"open", L"rundll32.exe shell32.dll,Control_RunDLL desk.cpl", NULL, NULL, SW_SHOWNORMAL))
+ if (32 >= (UINT_PTR)ShellExecuteW(hwndOwner, L"open", L"rundll32.exe",
+ L"shell32.dll,Control_RunDLL desk.cpl", NULL, SW_SHOWNORMAL))
+ {
return E_FAIL;
+ }
return S_OK;
}
else if (uMsg == DFM_MERGECONTEXTMENU)
if (uMsg != DFM_INVOKECOMMAND || wParam != DFM_CMD_PROPERTIES)
return S_OK;
- PIDLIST_ABSOLUTE pidlFolder;
- PUITEMID_CHILD *apidl;
- UINT cidl;
- HRESULT hr = SH_GetApidlFromDataObject(pdtobj, &pidlFolder, &apidl, &cidl);
- if (FAILED_UNEXPECTEDLY(hr))
- return hr;
-
- if (cidl > 1)
- ERR("SHMultiFileProperties is not yet implemented\n");
-
- STRRET strFile;
- hr = GetDisplayNameOf(apidl[0], SHGDN_FORPARSING, &strFile);
- if (SUCCEEDED(hr))
- {
- hr = SH_ShowPropertiesDialog(strFile.pOleStr, pidlFolder, apidl);
- if (FAILED(hr))
- ERR("SH_ShowPropertiesDialog failed\n");
- }
- else
- {
- ERR("Failed to get display name\n");
- }
-
- SHFree(pidlFolder);
- _ILFreeaPidl(apidl, cidl);
-
- return hr;
+ return Shell_DefaultContextMenuCallBack(this, pdtobj);
}
/*************************************************************************