diff --git a/reactos/subsys/system/explorer/desktop/desktop.cpp b/reactos/subsys/system/explorer/desktop/desktop.cpp index 21ecd83e309..3d346be1c0b 100644 --- a/reactos/subsys/system/explorer/desktop/desktop.cpp +++ b/reactos/subsys/system/explorer/desktop/desktop.cpp @@ -643,7 +643,8 @@ HRESULT DesktopShellView::DoDesktopContextMenu(int x, int y) hr = pcm->InvokeCommand(&cmi); } - } + } else + _cm_ifs.reset(); } pcm->Release(); diff --git a/reactos/subsys/system/explorer/utility/shellclasses.cpp b/reactos/subsys/system/explorer/utility/shellclasses.cpp index bbe52b3ffa6..1070e853333 100644 --- a/reactos/subsys/system/explorer/utility/shellclasses.cpp +++ b/reactos/subsys/system/explorer/utility/shellclasses.cpp @@ -509,7 +509,7 @@ IContextMenu* CtxMenuInterfaces::query_interfaces(IContextMenu* pcm1) _pctxmenu3 = (LPCONTEXTMENU3)pcm; else #endif - if (pcm1->QueryInterface (IID_IContextMenu2, (void**)&pcm) == NOERROR) + if (pcm1->QueryInterface(IID_IContextMenu2, (void**)&pcm) == NOERROR) _pctxmenu2 = (LPCONTEXTMENU2)pcm; if (pcm) { @@ -556,7 +556,8 @@ HRESULT ShellFolderContextMenu(IShellFolder* shell_folder, HWND hwndParent, int hr = pcm->InvokeCommand(&cmi); } - } + } else + cm_ifs.reset(); } pcm->Release();