mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 09:25:10 +00:00
[shell32.dll][FORMATTING]
- No code changes. Make the code more readable in preparation for investigating some failing wine tests. svn path=/branches/shell32_new-bringup/; revision=53617
This commit is contained in:
parent
7a20b6f2bb
commit
2c7fb01198
1 changed files with 862 additions and 790 deletions
|
@ -346,6 +346,7 @@ HRESULT WINAPI CDefView::Initialize(IShellFolder *shellFolder)
|
|||
{
|
||||
pSFParent = shellFolder;
|
||||
shellFolder->QueryInterface(IID_IShellFolder2, (LPVOID *)&pSF2Parent);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
@ -363,6 +364,7 @@ HRESULT CDefView::IncludeObject(LPCITEMIDLIST pidl)
|
|||
ret = pCommDlgBrowser->IncludeObject((IShellView *)this, pidl);
|
||||
TRACE("--0x%08x\n", ret);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -376,6 +378,7 @@ HRESULT CDefView::OnDefaultCommand()
|
|||
ret = pCommDlgBrowser->OnDefaultCommand((IShellView *)this);
|
||||
TRACE("-- returns %08x\n", ret);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -389,6 +392,7 @@ HRESULT CDefView::OnStateChange(UINT uFlags)
|
|||
ret = pCommDlgBrowser->OnStateChange((IShellView *)this, uFlags);
|
||||
TRACE("--\n");
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
/**********************************************************
|
||||
|
@ -454,17 +458,36 @@ BOOL CDefView::CreateList()
|
|||
|
||||
switch (FolderSettings.ViewMode)
|
||||
{
|
||||
case FVM_ICON: dwStyle |= LVS_ICON; break;
|
||||
case FVM_DETAILS: dwStyle |= LVS_REPORT; break;
|
||||
case FVM_SMALLICON: dwStyle |= LVS_SMALLICON; break;
|
||||
case FVM_LIST: dwStyle |= LVS_LIST; break;
|
||||
default: dwStyle |= LVS_LIST; break;
|
||||
case FVM_ICON:
|
||||
dwStyle |= LVS_ICON;
|
||||
break;
|
||||
|
||||
case FVM_DETAILS:
|
||||
dwStyle |= LVS_REPORT;
|
||||
break;
|
||||
|
||||
case FVM_SMALLICON:
|
||||
dwStyle |= LVS_SMALLICON;
|
||||
break;
|
||||
|
||||
case FVM_LIST:
|
||||
dwStyle |= LVS_LIST;
|
||||
break;
|
||||
|
||||
default:
|
||||
dwStyle |= LVS_LIST;
|
||||
break;
|
||||
}
|
||||
|
||||
if (FolderSettings.fFlags & FWF_AUTOARRANGE) dwStyle |= LVS_AUTOARRANGE;
|
||||
if (FolderSettings.fFlags & FWF_AUTOARRANGE)
|
||||
dwStyle |= LVS_AUTOARRANGE;
|
||||
|
||||
if (FolderSettings.fFlags & FWF_DESKTOP)
|
||||
FolderSettings.fFlags |= FWF_NOCLIENTEDGE | FWF_NOSCROLL;
|
||||
if (FolderSettings.fFlags & FWF_SINGLESEL) dwStyle |= LVS_SINGLESEL;
|
||||
|
||||
if (FolderSettings.fFlags & FWF_SINGLESEL)
|
||||
dwStyle |= LVS_SINGLESEL;
|
||||
|
||||
if (FolderSettings.fFlags & FWF_NOCLIENTEDGE)
|
||||
dwExStyle &= ~WS_EX_CLIENTEDGE;
|
||||
|
||||
|
@ -485,7 +508,8 @@ BOOL CDefView::CreateList()
|
|||
ListViewSortInfo.nHeaderID = -1;
|
||||
ListViewSortInfo.nLastHeaderID = -1;
|
||||
|
||||
if (FolderSettings.fFlags & FWF_DESKTOP) {
|
||||
if (FolderSettings.fFlags & FWF_DESKTOP)
|
||||
{
|
||||
/*
|
||||
* FIXME: look at the registry value
|
||||
* HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ListviewShadow
|
||||
|
@ -518,7 +542,6 @@ BOOL CDefView::InitList()
|
|||
{
|
||||
LVCOLUMNW lvColumn;
|
||||
SHELLDETAILS sd;
|
||||
int i;
|
||||
WCHAR szTemp[50];
|
||||
|
||||
TRACE("%p\n",this);
|
||||
|
@ -530,10 +553,11 @@ BOOL CDefView::InitList()
|
|||
|
||||
if (pSF2Parent)
|
||||
{
|
||||
for (i=0; 1; i++)
|
||||
for (int i=0; 1; i++)
|
||||
{
|
||||
if (FAILED(pSF2Parent->GetDetailsOf(NULL, i, &sd)))
|
||||
break;
|
||||
|
||||
lvColumn.fmt = sd.fmt;
|
||||
lvColumn.cx = sd.cxChar*8; /* chars->pixel */
|
||||
StrRetToStrNW( szTemp, 50, &sd.str, NULL);
|
||||
|
@ -562,10 +586,12 @@ INT CALLBACK CDefView::CompareItems(LPVOID lParam1, LPVOID lParam2, LPARAM lpDat
|
|||
int ret;
|
||||
TRACE("pidl1=%p pidl2=%p lpsf=%p\n", lParam1, lParam2, (LPVOID) lpData);
|
||||
|
||||
if(!lpData) return 0;
|
||||
if (!lpData)
|
||||
return 0;
|
||||
|
||||
ret = (SHORT)SCODE_CODE(((IShellFolder *)lpData)->CompareIDs(0, (LPITEMIDLIST)lParam1, (LPITEMIDLIST)lParam2));
|
||||
TRACE("ret=%i\n",ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -667,7 +693,6 @@ INT CALLBACK CDefView::ListViewCompareItems(LPVOID lParam1, LPVOID lParam2, LPAR
|
|||
}
|
||||
|
||||
return nDiff;
|
||||
|
||||
}
|
||||
|
||||
/**********************************************************
|
||||
|
@ -678,12 +703,14 @@ int CDefView::LV_FindItemByPidl(LPCITEMIDLIST pidl)
|
|||
LVITEMW lvItem;
|
||||
lvItem.iSubItem = 0;
|
||||
lvItem.mask = LVIF_PARAM;
|
||||
|
||||
for (lvItem.iItem = 0;
|
||||
SendMessageW(hWndList, LVM_GETITEMW, 0, (LPARAM) &lvItem);
|
||||
lvItem.iItem++)
|
||||
{
|
||||
LPITEMIDLIST currentpidl = (LPITEMIDLIST) lvItem.lParam;
|
||||
HRESULT hr = pSFParent->CompareIDs(0, pidl, currentpidl);
|
||||
|
||||
if (SUCCEEDED(hr) && !HRESULT_CODE(hr))
|
||||
{
|
||||
return lvItem.iItem;
|
||||
|
@ -707,6 +734,7 @@ BOOLEAN CDefView::LV_AddItem(LPCITEMIDLIST pidl)
|
|||
lvItem.lParam = (LPARAM) ILClone(ILFindLastID(pidl)); /*set the item's data*/
|
||||
lvItem.pszText = LPSTR_TEXTCALLBACKW; /*get text on a callback basis*/
|
||||
lvItem.iImage = I_IMAGECALLBACK; /*get the image on a callback basis*/
|
||||
|
||||
if (SendMessageW(hWndList, LVM_INSERTITEMW, 0, (LPARAM)&lvItem) == -1)
|
||||
return FALSE;
|
||||
else
|
||||
|
@ -723,6 +751,7 @@ BOOLEAN CDefView::LV_DeleteItem(LPCITEMIDLIST pidl)
|
|||
TRACE("(%p)(pidl=%p)\n", this, pidl);
|
||||
|
||||
nIndex = LV_FindItemByPidl(ILFindLastID(pidl));
|
||||
|
||||
return (-1 == ListView_DeleteItem(hWndList, nIndex)) ? FALSE : TRUE;
|
||||
}
|
||||
|
||||
|
@ -737,6 +766,7 @@ BOOLEAN CDefView::LV_RenameItem(LPCITEMIDLIST pidlOld, LPCITEMIDLIST pidlNew)
|
|||
TRACE("(%p)(pidlold=%p pidlnew=%p)\n", this, pidlOld, pidlNew);
|
||||
|
||||
nItem = LV_FindItemByPidl(ILFindLastID(pidlOld));
|
||||
|
||||
if ( -1 != nItem )
|
||||
{
|
||||
lvItem.mask = LVIF_PARAM; /* only the pidl */
|
||||
|
@ -751,6 +781,7 @@ BOOLEAN CDefView::LV_RenameItem(LPCITEMIDLIST pidlOld, LPCITEMIDLIST pidlNew)
|
|||
SendMessageW(hWndList, LVM_UPDATE, nItem, 0);
|
||||
return TRUE; /* FIXME: better handling */
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -766,7 +797,9 @@ INT CALLBACK CDefView::fill_list( LPVOID ptr, LPVOID arg )
|
|||
LPITEMIDLIST pidl = (LPITEMIDLIST)ptr;
|
||||
CDefView *pThis = (CDefView *)arg;
|
||||
/* in a commdlg This works as a filemask*/
|
||||
if ( pThis->IncludeObject(pidl)==S_OK ) pThis->LV_AddItem(pidl);
|
||||
if (pThis->IncludeObject(pidl) == S_OK)
|
||||
pThis->LV_AddItem(pidl);
|
||||
|
||||
SHFree(pidl);
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -781,8 +814,6 @@ HRESULT CDefView::FillList()
|
|||
|
||||
TRACE("%p\n",this);
|
||||
|
||||
DbgPrint("[shell32, CDefView::FillList] Called\n");
|
||||
|
||||
/* get the itemlist from the shfolder*/
|
||||
hRes = pSFParent->EnumObjects(m_hWnd, SHCONTF_NONFOLDERS | SHCONTF_FOLDERS, &pEnumIDList);
|
||||
if (hRes != S_OK)
|
||||
|
@ -920,7 +951,8 @@ HMENU CDefView::BuildFileMenu()
|
|||
|
||||
hSubMenu = CreatePopupMenu();
|
||||
if (hSubMenu)
|
||||
{ /*get the number of items in our global array*/
|
||||
{
|
||||
/*get the number of items in our global array*/
|
||||
for(nTools = 0; Tools[nTools].idCommand != -1; nTools++){}
|
||||
|
||||
/*add the menu items*/
|
||||
|
@ -947,6 +979,7 @@ HMENU CDefView::BuildFileMenu()
|
|||
InsertMenuItemW(hSubMenu, (UINT)-1, TRUE, &mii);
|
||||
}
|
||||
}
|
||||
|
||||
TRACE("-- return (menu=%p)\n",hSubMenu);
|
||||
return hSubMenu;
|
||||
}
|
||||
|
@ -955,14 +988,15 @@ HMENU CDefView::BuildFileMenu()
|
|||
* ShellView_MergeFileMenu()
|
||||
*/
|
||||
void CDefView::MergeFileMenu(HMENU hSubMenu)
|
||||
{ TRACE("(%p)->(submenu=%p) stub\n",this,hSubMenu);
|
||||
{
|
||||
TRACE("(%p)->(submenu=%p) stub\n",this,hSubMenu);
|
||||
|
||||
if (hSubMenu)
|
||||
{ /*insert This item at the beginning of the menu */
|
||||
_InsertMenuItemW(hSubMenu, 0, TRUE, 0, MFT_SEPARATOR, NULL, MFS_ENABLED);
|
||||
_InsertMenuItemW(hSubMenu, 0, TRUE, IDM_MYFILEITEM, MFT_STRING, L"dummy45", MFS_ENABLED);
|
||||
|
||||
}
|
||||
|
||||
TRACE("--\n");
|
||||
}
|
||||
|
||||
|
@ -974,7 +1008,8 @@ void CDefView::MergeViewMenu(HMENU hSubMenu)
|
|||
TRACE("(%p)->(submenu=%p)\n",this,hSubMenu);
|
||||
|
||||
if (hSubMenu)
|
||||
{ /*add a separator at the correct position in the menu*/
|
||||
{
|
||||
/*add a separator at the correct position in the menu*/
|
||||
MENUITEMINFOW mii;
|
||||
static WCHAR view[] = L"View";
|
||||
|
||||
|
@ -1033,8 +1068,8 @@ UINT CDefView::GetSelections()
|
|||
lvItem.iItem++;
|
||||
}
|
||||
}
|
||||
return cidl;
|
||||
|
||||
return cidl;
|
||||
}
|
||||
|
||||
/**********************************************************
|
||||
|
@ -1128,6 +1163,7 @@ HRESULT CDefView::OpenSelectedItems()
|
|||
{
|
||||
CF_IDLIST = RegisterClipboardFormatW(CFSTR_SHELLIDLIST);
|
||||
}
|
||||
|
||||
fetc.cfFormat = CF_IDLIST;
|
||||
fetc.ptd = NULL;
|
||||
fetc.dwAspect = DVASPECT_CONTENT;
|
||||
|
@ -1229,6 +1265,7 @@ LRESULT CDefView::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b
|
|||
if (hMenu)
|
||||
{
|
||||
hResult = IUnknown_SetSite(pCM, (IShellView *)this);
|
||||
|
||||
/* See if we are in Explore or Open mode. If the browser's tree is present, we are in Explore mode.*/
|
||||
if (SUCCEEDED(pShellBrowser->GetControlWindow(FCW_TREE, &hwndTree)) && hwndTree)
|
||||
{
|
||||
|
@ -1259,6 +1296,7 @@ LRESULT CDefView::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b
|
|||
if (uCommand > 0)
|
||||
{
|
||||
TRACE("-- uCommand=%u\n", uCommand);
|
||||
|
||||
if (uCommand==FCIDM_SHVIEW_OPEN && pCommDlgBrowser.p != NULL)
|
||||
{
|
||||
TRACE("-- dlg: OnDefaultCommand\n");
|
||||
|
@ -1277,6 +1315,7 @@ LRESULT CDefView::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b
|
|||
pCM->InvokeCommand(&cmi);
|
||||
}
|
||||
}
|
||||
|
||||
hResult = IUnknown_SetSite(pCM, NULL);
|
||||
DestroyMenu(hMenu);
|
||||
}
|
||||
|
@ -1304,6 +1343,7 @@ LRESULT CDefView::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b
|
|||
|
||||
pCM.Release();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1424,6 +1464,7 @@ void CDefView::DoActivate(UINT uState)
|
|||
MergeFileMenu(mii.hSubMenu);
|
||||
}
|
||||
}
|
||||
|
||||
TRACE("-- before fnSetMenuSB\n");
|
||||
pShellBrowser->SetMenuSB(hMenu, 0, m_hWnd);
|
||||
}
|
||||
|
@ -1537,6 +1578,7 @@ LRESULT CDefView::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHand
|
|||
default:
|
||||
TRACE("-- COMMAND 0x%04x unhandled\n", dwCmdID);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1748,9 +1790,11 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
|
|||
lvItem.mask = LVIF_PARAM;
|
||||
lvItem.lParam = (LPARAM)pidl;
|
||||
SendMessageW(hWndList, LVM_SETITEMW, 0, (LPARAM) &lvItem);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1777,8 +1821,7 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
|
|||
if (i == 1)
|
||||
{
|
||||
/* get selected item */
|
||||
i = ListView_GetNextItem(hWndList, -1,
|
||||
LVNI_SELECTED);
|
||||
i = ListView_GetNextItem(hWndList, -1, LVNI_SELECTED);
|
||||
|
||||
SendMessageW(hWndList, LVM_ENSUREVISIBLE, i, 0);
|
||||
SendMessageW(hWndList, LVM_EDITLABELW, i, 0);
|
||||
|
@ -1832,7 +1875,6 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
|
|||
/* free pidl array memory */
|
||||
HeapFree(GetProcessHeap(), 0, pItems);
|
||||
}
|
||||
|
||||
/* Initiate a refresh */
|
||||
else if (plvKeyDown->wVKey == VK_F5)
|
||||
{
|
||||
|
@ -1983,6 +2025,7 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
|
|||
TRACE("-- %p WM_COMMAND %x unhandled\n", this, lpnmh->code);
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -2003,17 +2046,21 @@ LRESULT CDefView::OnChangeNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &
|
|||
case SHCNE_CREATE:
|
||||
LV_AddItem(Pidls[0]);
|
||||
break;
|
||||
|
||||
case SHCNE_RMDIR:
|
||||
case SHCNE_DELETE:
|
||||
LV_DeleteItem(Pidls[0]);
|
||||
break;
|
||||
|
||||
case SHCNE_RENAMEFOLDER:
|
||||
case SHCNE_RENAMEITEM:
|
||||
LV_RenameItem(Pidls[0], Pidls[1]);
|
||||
break;
|
||||
|
||||
case SHCNE_UPDATEITEM:
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -2079,6 +2126,7 @@ HRESULT WINAPI CDefView::TranslateAccelerator(LPMSG lpmsg)
|
|||
{
|
||||
TRACE("-- key=0x04%lx\n",lpmsg->wParam) ;
|
||||
}
|
||||
|
||||
return S_FALSE; /* not handled */
|
||||
}
|
||||
|
||||
|
@ -2212,7 +2260,8 @@ HRESULT WINAPI CDefView::GetCurrentInfo(LPFOLDERSETTINGS lpfs)
|
|||
TRACE("(%p)->(%p) vmode=%x flags=%x\n",this, lpfs,
|
||||
FolderSettings.ViewMode, FolderSettings.fFlags);
|
||||
|
||||
if (!lpfs) return E_INVALIDARG;
|
||||
if (!lpfs)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*lpfs = FolderSettings;
|
||||
return NOERROR;
|
||||
|
@ -2269,6 +2318,7 @@ HRESULT WINAPI CDefView::SelectItem(LPCITEMIDLIST pidl, UINT uFlags)
|
|||
if (uFlags & SVSI_DESELECTOTHERS)
|
||||
lvItem.state &= ~LVIS_SELECTED;
|
||||
}
|
||||
|
||||
SendMessageW(hWndList, LVM_SETITEMW, 0, (LPARAM) &lvItem);
|
||||
lvItem.iItem++;
|
||||
}
|
||||
|
@ -2276,8 +2326,8 @@ HRESULT WINAPI CDefView::SelectItem(LPCITEMIDLIST pidl, UINT uFlags)
|
|||
|
||||
if(uFlags & SVSI_EDIT)
|
||||
SendMessageW(hWndList, LVM_EDITLABELW, i, 0);
|
||||
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
@ -2306,6 +2356,7 @@ HRESULT WINAPI CDefView::GetItemObject(UINT uItem, REFIID riid, LPVOID *ppvOut)
|
|||
hr = pSFParent->GetUIObjectOf(m_hWnd, cidl, (LPCITEMIDLIST*)apidl, riid, 0, ppvOut);
|
||||
break;
|
||||
}
|
||||
|
||||
TRACE("-- (%p)->(interface=%p)\n",this, *ppvOut);
|
||||
|
||||
return hr;
|
||||
|
@ -2325,6 +2376,7 @@ HRESULT STDMETHODCALLTYPE CDefView::GetFolder(REFIID riid, void **ppv)
|
|||
{
|
||||
if (pSFParent == NULL)
|
||||
return E_FAIL;
|
||||
|
||||
return pSFParent->QueryInterface(riid, ppv);
|
||||
}
|
||||
|
||||
|
@ -2388,18 +2440,18 @@ HRESULT STDMETHODCALLTYPE CDefView::SelectAndPositionItems(UINT cidl, LPCITEMIDL
|
|||
*/
|
||||
HRESULT WINAPI CDefView::QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD *prgCmds, OLECMDTEXT *pCmdText)
|
||||
{
|
||||
UINT i;
|
||||
|
||||
FIXME("(%p)->(%p(%s) 0x%08x %p %p\n",
|
||||
this, pguidCmdGroup, debugstr_guid(pguidCmdGroup), cCmds, prgCmds, pCmdText);
|
||||
|
||||
if (!prgCmds)
|
||||
return E_POINTER;
|
||||
for (i = 0; i < cCmds; i++)
|
||||
|
||||
for (UINT i=0; i < cCmds; i++)
|
||||
{
|
||||
FIXME("\tprgCmds[%d].cmdID = %d\n", i, prgCmds[i].cmdID);
|
||||
prgCmds[i].cmdf = 0;
|
||||
}
|
||||
|
||||
return OLECMDERR_E_UNKNOWNGROUP;
|
||||
}
|
||||
|
||||
|
@ -2417,6 +2469,7 @@ HRESULT WINAPI CDefView::Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCm
|
|||
(nCmdID == 0x29) &&
|
||||
(nCmdexecopt == 4) && pvaOut)
|
||||
return S_OK;
|
||||
|
||||
if (IsEqualIID(*pguidCmdGroup, CGID_ShellDocView) &&
|
||||
(nCmdID == 9) &&
|
||||
(nCmdexecopt == 0))
|
||||
|
@ -2461,19 +2514,27 @@ HRESULT CDefView::drag_notify_subitem(DWORD grfKeyState, POINTL pt, DWORD *pdwEf
|
|||
htinfo.pt.y < SCROLLAREAWIDTH || htinfo.pt.y > clientRect.bottom - SCROLLAREAWIDTH ))
|
||||
{
|
||||
cScrollDelay = (cScrollDelay + 1) % 5; /* DragOver is called every 50 ms */
|
||||
if (cScrollDelay == 0) { /* Mouse did hover another 250 ms over the scroll-area */
|
||||
if (cScrollDelay == 0)
|
||||
{
|
||||
/* Mouse did hover another 250 ms over the scroll-area */
|
||||
if (htinfo.pt.x < SCROLLAREAWIDTH)
|
||||
SendMessageW(hWndList, WM_HSCROLL, SB_LINEUP, 0);
|
||||
|
||||
if (htinfo.pt.x > clientRect.right - SCROLLAREAWIDTH)
|
||||
SendMessageW(hWndList, WM_HSCROLL, SB_LINEDOWN, 0);
|
||||
|
||||
if (htinfo.pt.y < SCROLLAREAWIDTH)
|
||||
SendMessageW(hWndList, WM_VSCROLL, SB_LINEUP, 0);
|
||||
|
||||
if (htinfo.pt.y > clientRect.bottom - SCROLLAREAWIDTH)
|
||||
SendMessageW(hWndList, WM_VSCROLL, SB_LINEDOWN, 0);
|
||||
}
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
cScrollDelay = 0; /* Reset, if the cursor is not over the listview's scroll-area */
|
||||
}
|
||||
|
||||
ptLastMousePos = htinfo.pt;
|
||||
|
||||
/* If we are still over the previous sub-item, notify it via DragOver and return. */
|
||||
|
@ -2481,18 +2542,22 @@ HRESULT CDefView::drag_notify_subitem(DWORD grfKeyState, POINTL pt, DWORD *pdwEf
|
|||
return pCurDropTarget->DragOver(grfKeyState, pt, pdwEffect);
|
||||
|
||||
/* We've left the previous sub-item, notify it via DragLeave and Release it. */
|
||||
if (pCurDropTarget) {
|
||||
if (pCurDropTarget)
|
||||
{
|
||||
pCurDropTarget->DragLeave();
|
||||
pCurDropTarget.Release();
|
||||
}
|
||||
|
||||
iDragOverItem = lResult;
|
||||
if (lResult == -1) {
|
||||
if (lResult == -1)
|
||||
{
|
||||
/* We are not above one of the listview's subitems. Bind to the parent folder's
|
||||
* DropTarget interface. */
|
||||
hr = pSFParent->QueryInterface(IID_IDropTarget,
|
||||
(LPVOID*)&pCurDropTarget);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Query the relative PIDL of the shellfolder object represented by the currently
|
||||
* dragged over listview-item ... */
|
||||
lvItem.mask = LVIF_PARAM;
|
||||
|
@ -2635,8 +2700,10 @@ HRESULT WINAPI CDefView::GetAdvise(DWORD *pAspects, DWORD *pAdvf, IAdviseSink **
|
|||
*ppAdvSink = pAdvSink;
|
||||
pAdvSink.p->AddRef();
|
||||
}
|
||||
|
||||
if (pAspects)
|
||||
*pAspects = dwAspects;
|
||||
|
||||
if (pAdvf)
|
||||
*pAdvf = dwAdvf;
|
||||
|
||||
|
@ -2661,19 +2728,24 @@ HRESULT WINAPI IShellView_Constructor(IShellFolder *pFolder, IShellView **newVie
|
|||
|
||||
if (newView == NULL)
|
||||
return E_POINTER;
|
||||
|
||||
*newView = NULL;
|
||||
ATLTRY (theView = new CComObject<CDefView>);
|
||||
|
||||
if (theView == NULL)
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
hResult = theView->QueryInterface (IID_IShellView, (void **)&result);
|
||||
if (FAILED (hResult))
|
||||
{
|
||||
delete theView;
|
||||
return hResult;
|
||||
}
|
||||
|
||||
hResult = theView->Initialize (pFolder);
|
||||
if (FAILED (hResult))
|
||||
return hResult;
|
||||
*newView = result.Detach ();
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue