private void OnOpen(object sender, EventArgs eventArgs) { SHELLEXECUTEINFO sei = new SHELLEXECUTEINFO(); sei.cbSize = Marshal.SizeOf(sei); sei.fMask = SEE.SEE_MASK_IDLIST | SEE.SEE_MASK_CLASSNAME; var fullPidl = PidlManager.IdListToPidl(PidlManager.Combine(_folderIdList, _folderItemIdLists[0])); sei.lpIDList = fullPidl; sei.lpClass = "folder"; sei.hwnd = CurrentInvokeCommandInfo.WindowHandle; sei.nShow = CurrentInvokeCommandInfo.ShowCommand; sei.lpVerb = "open"; // todo parameter open. Shell32.ShellExecuteEx(ref sei); PidlManager.DeletePidl(fullPidl); }