0
我有以下代碼來刪除該文件。這段代碼在winXP上工作正常。但是當我在Windows 7上運行它不會刪除該文件。 InvokeCommand語句執行時,我得到錯誤代碼0x80270000。IContextMenu :: InvokeCommand錯誤代碼0x80270000在Windows 7上
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"));
}
}
您的問題中有幾條重要的信息缺失。什麼是您要刪除的文件,以及ID_MENU_DELETE命令處理程序的代碼在哪裏。如果命令處理程序被調用但失敗,看看發生了什麼會很有幫助。 – 2013-04-25 07:36:13