我有以下代码来删除文件。此代码在 winXP 上运行良好。但是当我在 Windows 7 上运行时,它不会删除该文件。执行 InvokeCommand 语句时出现错误代码 0x80270000。
HRESULT hr = m_psfCurFolder->GetUIObjectOf(AfxGetMainWnd()->m_hWnd,
uiCount,
(LPCITEMIDLIST*)aPidls,
IID_IContextMenu,
NULL,
(LPVOID*)&pcm);
if (SUCCEEDED (hr))
{
HMENU hPopup = CreatePopupMenu();
hr = pcm->QueryContextMenu(hPopup, 0, 1, 0x7fff, CMF_NORMAL);
if (SUCCEEDED (hr))
{
CMINVOKECOMMANDINFO cmi;
cmi.cbSize = sizeof(CMINVOKECOMMANDINFO);
cmi.fMask = CMIC_MASK_ASYNCOK;
cmi.hwnd = (HWND) GetParent();
cmi.lpVerb = (LPCSTR)(INT_PTR)(ID_MENU_DELETE - 1);
cmi.lpParameters = NULL;
cmi.lpDirectory = NULL;
cmi.nShow = SW_SHOWNORMAL;
cmi.dwHotKey = 0;
cmi.hIcon = NULL;
BOOL bUndoDel = FALSE;
if (!(GetKeyState(VK_SHIFT) & SHIFTED))
{
bUndoDel = TRUE;
}
hr = pcm->InvokeCommand (&cmi);
if (FAILED(hr))
{
_com_error error(hr);
LPCTSTR errorText = error.ErrorMessage();
AfxMessageBox(_T("Unable to perform action"));
}
}