[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:
Claudiu Mihail 2011-09-07 13:39:13 +00:00
parent 7a20b6f2bb
commit 2c7fb01198

View file

@ -346,6 +346,7 @@ HRESULT WINAPI CDefView::Initialize(IShellFolder *shellFolder)
{ {
pSFParent = shellFolder; pSFParent = shellFolder;
shellFolder->QueryInterface(IID_IShellFolder2, (LPVOID *)&pSF2Parent); shellFolder->QueryInterface(IID_IShellFolder2, (LPVOID *)&pSF2Parent);
return S_OK; return S_OK;
} }
@ -363,6 +364,7 @@ HRESULT CDefView::IncludeObject(LPCITEMIDLIST pidl)
ret = pCommDlgBrowser->IncludeObject((IShellView *)this, pidl); ret = pCommDlgBrowser->IncludeObject((IShellView *)this, pidl);
TRACE("--0x%08x\n", ret); TRACE("--0x%08x\n", ret);
} }
return ret; return ret;
} }
@ -376,6 +378,7 @@ HRESULT CDefView::OnDefaultCommand()
ret = pCommDlgBrowser->OnDefaultCommand((IShellView *)this); ret = pCommDlgBrowser->OnDefaultCommand((IShellView *)this);
TRACE("-- returns %08x\n", ret); TRACE("-- returns %08x\n", ret);
} }
return ret; return ret;
} }
@ -389,6 +392,7 @@ HRESULT CDefView::OnStateChange(UINT uFlags)
ret = pCommDlgBrowser->OnStateChange((IShellView *)this, uFlags); ret = pCommDlgBrowser->OnStateChange((IShellView *)this, uFlags);
TRACE("--\n"); TRACE("--\n");
} }
return ret; return ret;
} }
/********************************************************** /**********************************************************
@ -454,17 +458,36 @@ BOOL CDefView::CreateList()
switch (FolderSettings.ViewMode) switch (FolderSettings.ViewMode)
{ {
case FVM_ICON: dwStyle |= LVS_ICON; break; case FVM_ICON:
case FVM_DETAILS: dwStyle |= LVS_REPORT; break; dwStyle |= LVS_ICON;
case FVM_SMALLICON: dwStyle |= LVS_SMALLICON; break; break;
case FVM_LIST: dwStyle |= LVS_LIST; break;
default: dwStyle |= LVS_LIST; 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) if (FolderSettings.fFlags & FWF_DESKTOP)
FolderSettings.fFlags |= FWF_NOCLIENTEDGE | FWF_NOSCROLL; 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) if (FolderSettings.fFlags & FWF_NOCLIENTEDGE)
dwExStyle &= ~WS_EX_CLIENTEDGE; dwExStyle &= ~WS_EX_CLIENTEDGE;
@ -478,14 +501,15 @@ BOOL CDefView::CreateList()
shell32_hInstance, shell32_hInstance,
NULL); NULL);
if(!hWndList) if (!hWndList)
return FALSE; return FALSE;
ListViewSortInfo.bIsAscending = TRUE; ListViewSortInfo.bIsAscending = TRUE;
ListViewSortInfo.nHeaderID = -1; ListViewSortInfo.nHeaderID = -1;
ListViewSortInfo.nLastHeaderID = -1; ListViewSortInfo.nLastHeaderID = -1;
if (FolderSettings.fFlags & FWF_DESKTOP) { if (FolderSettings.fFlags & FWF_DESKTOP)
{
/* /*
* FIXME: look at the registry value * FIXME: look at the registry value
* HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ListviewShadow * HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ListviewShadow
@ -518,7 +542,6 @@ BOOL CDefView::InitList()
{ {
LVCOLUMNW lvColumn; LVCOLUMNW lvColumn;
SHELLDETAILS sd; SHELLDETAILS sd;
int i;
WCHAR szTemp[50]; WCHAR szTemp[50];
TRACE("%p\n",this); TRACE("%p\n",this);
@ -530,10 +553,11 @@ BOOL CDefView::InitList()
if (pSF2Parent) if (pSF2Parent)
{ {
for (i=0; 1; i++) for (int i=0; 1; i++)
{ {
if (FAILED(pSF2Parent->GetDetailsOf(NULL, i, &sd))) if (FAILED(pSF2Parent->GetDetailsOf(NULL, i, &sd)))
break; break;
lvColumn.fmt = sd.fmt; lvColumn.fmt = sd.fmt;
lvColumn.cx = sd.cxChar*8; /* chars->pixel */ lvColumn.cx = sd.cxChar*8; /* chars->pixel */
StrRetToStrNW( szTemp, 50, &sd.str, NULL); StrRetToStrNW( szTemp, 50, &sd.str, NULL);
@ -562,10 +586,12 @@ INT CALLBACK CDefView::CompareItems(LPVOID lParam1, LPVOID lParam2, LPARAM lpDat
int ret; int ret;
TRACE("pidl1=%p pidl2=%p lpsf=%p\n", lParam1, lParam2, (LPVOID) lpData); 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)); ret = (SHORT)SCODE_CODE(((IShellFolder *)lpData)->CompareIDs(0, (LPITEMIDLIST)lParam1, (LPITEMIDLIST)lParam2));
TRACE("ret=%i\n",ret); TRACE("ret=%i\n",ret);
return ret; return ret;
} }
@ -609,7 +635,7 @@ INT CALLBACK CDefView::ListViewCompareItems(LPVOID lParam1, LPVOID lParam2, LPAR
bIsBothFolder = bIsFolder1 && bIsFolder2; bIsBothFolder = bIsFolder1 && bIsFolder2;
/* When sorting between a File and a Folder, the Folder gets sorted first */ /* When sorting between a File and a Folder, the Folder gets sorted first */
if( (bIsFolder1 || bIsFolder2) && !bIsBothFolder) if ( (bIsFolder1 || bIsFolder2) && !bIsBothFolder)
{ {
nDiff = bIsFolder1 ? -1 : 1; nDiff = bIsFolder1 ? -1 : 1;
} }
@ -631,7 +657,7 @@ INT CALLBACK CDefView::ListViewCompareItems(LPVOID lParam1, LPVOID lParam2, LPAR
nDiff = lstrcmpiA(strName1, strName2); nDiff = lstrcmpiA(strName1, strName2);
} }
/* Sort by FileName: Folder or Files can be sorted */ /* Sort by FileName: Folder or Files can be sorted */
else if(pSortInfo->nHeaderID == LISTVIEW_COLUMN_NAME || bIsBothFolder) else if (pSortInfo->nHeaderID == LISTVIEW_COLUMN_NAME || bIsBothFolder)
{ {
/* Sort by Text */ /* Sort by Text */
_ILSimpleGetText(pItemIdList1, strName1, MAX_PATH); _ILSimpleGetText(pItemIdList1, strName1, MAX_PATH);
@ -639,12 +665,12 @@ INT CALLBACK CDefView::ListViewCompareItems(LPVOID lParam1, LPVOID lParam2, LPAR
nDiff = lstrcmpiA(strName1, strName2); nDiff = lstrcmpiA(strName1, strName2);
} }
/* Sort by File Size, Only valid for Files */ /* Sort by File Size, Only valid for Files */
else if(pSortInfo->nHeaderID == LISTVIEW_COLUMN_SIZE) else if (pSortInfo->nHeaderID == LISTVIEW_COLUMN_SIZE)
{ {
nDiff = (INT)(_ILGetFileSize(pItemIdList1, NULL, 0) - _ILGetFileSize(pItemIdList2, NULL, 0)); nDiff = (INT)(_ILGetFileSize(pItemIdList1, NULL, 0) - _ILGetFileSize(pItemIdList2, NULL, 0));
} }
/* Sort by File Type, Only valid for Files */ /* Sort by File Type, Only valid for Files */
else if(pSortInfo->nHeaderID == LISTVIEW_COLUMN_TYPE) else if (pSortInfo->nHeaderID == LISTVIEW_COLUMN_TYPE)
{ {
/* Sort by Type */ /* Sort by Type */
_ILGetFileType(pItemIdList1, strName1, MAX_PATH); _ILGetFileType(pItemIdList1, strName1, MAX_PATH);
@ -654,20 +680,19 @@ INT CALLBACK CDefView::ListViewCompareItems(LPVOID lParam1, LPVOID lParam2, LPAR
} }
/* If the Date, FileSize, FileType, Attrib was the same, sort by FileName */ /* If the Date, FileSize, FileType, Attrib was the same, sort by FileName */
if(nDiff == 0) if (nDiff == 0)
{ {
_ILSimpleGetText(pItemIdList1, strName1, MAX_PATH); _ILSimpleGetText(pItemIdList1, strName1, MAX_PATH);
_ILSimpleGetText(pItemIdList2, strName2, MAX_PATH); _ILSimpleGetText(pItemIdList2, strName2, MAX_PATH);
nDiff = lstrcmpiA(strName1, strName2); nDiff = lstrcmpiA(strName1, strName2);
} }
if(!pSortInfo->bIsAscending) if (!pSortInfo->bIsAscending)
{ {
nDiff = -nDiff; nDiff = -nDiff;
} }
return nDiff; return nDiff;
} }
/********************************************************** /**********************************************************
@ -678,13 +703,15 @@ int CDefView::LV_FindItemByPidl(LPCITEMIDLIST pidl)
LVITEMW lvItem; LVITEMW lvItem;
lvItem.iSubItem = 0; lvItem.iSubItem = 0;
lvItem.mask = LVIF_PARAM; lvItem.mask = LVIF_PARAM;
for(lvItem.iItem = 0;
for (lvItem.iItem = 0;
SendMessageW(hWndList, LVM_GETITEMW, 0, (LPARAM) &lvItem); SendMessageW(hWndList, LVM_GETITEMW, 0, (LPARAM) &lvItem);
lvItem.iItem++) lvItem.iItem++)
{ {
LPITEMIDLIST currentpidl = (LPITEMIDLIST) lvItem.lParam; LPITEMIDLIST currentpidl = (LPITEMIDLIST) lvItem.lParam;
HRESULT hr = pSFParent->CompareIDs(0, pidl, currentpidl); HRESULT hr = pSFParent->CompareIDs(0, pidl, currentpidl);
if(SUCCEEDED(hr) && !HRESULT_CODE(hr))
if (SUCCEEDED(hr) && !HRESULT_CODE(hr))
{ {
return lvItem.iItem; 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.lParam = (LPARAM) ILClone(ILFindLastID(pidl)); /*set the item's data*/
lvItem.pszText = LPSTR_TEXTCALLBACKW; /*get text on a callback basis*/ lvItem.pszText = LPSTR_TEXTCALLBACKW; /*get text on a callback basis*/
lvItem.iImage = I_IMAGECALLBACK; /*get the image on a callback basis*/ lvItem.iImage = I_IMAGECALLBACK; /*get the image on a callback basis*/
if (SendMessageW(hWndList, LVM_INSERTITEMW, 0, (LPARAM)&lvItem) == -1) if (SendMessageW(hWndList, LVM_INSERTITEMW, 0, (LPARAM)&lvItem) == -1)
return FALSE; return FALSE;
else else
@ -723,6 +751,7 @@ BOOLEAN CDefView::LV_DeleteItem(LPCITEMIDLIST pidl)
TRACE("(%p)(pidl=%p)\n", this, pidl); TRACE("(%p)(pidl=%p)\n", this, pidl);
nIndex = LV_FindItemByPidl(ILFindLastID(pidl)); nIndex = LV_FindItemByPidl(ILFindLastID(pidl));
return (-1 == ListView_DeleteItem(hWndList, nIndex)) ? FALSE : TRUE; 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); TRACE("(%p)(pidlold=%p pidlnew=%p)\n", this, pidlOld, pidlNew);
nItem = LV_FindItemByPidl(ILFindLastID(pidlOld)); nItem = LV_FindItemByPidl(ILFindLastID(pidlOld));
if ( -1 != nItem ) if ( -1 != nItem )
{ {
lvItem.mask = LVIF_PARAM; /* only the pidl */ 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); SendMessageW(hWndList, LVM_UPDATE, nItem, 0);
return TRUE; /* FIXME: better handling */ return TRUE; /* FIXME: better handling */
} }
return FALSE; return FALSE;
} }
@ -766,7 +797,9 @@ INT CALLBACK CDefView::fill_list( LPVOID ptr, LPVOID arg )
LPITEMIDLIST pidl = (LPITEMIDLIST)ptr; LPITEMIDLIST pidl = (LPITEMIDLIST)ptr;
CDefView *pThis = (CDefView *)arg; CDefView *pThis = (CDefView *)arg;
/* in a commdlg This works as a filemask*/ /* 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); SHFree(pidl);
return TRUE; return TRUE;
} }
@ -781,8 +814,6 @@ HRESULT CDefView::FillList()
TRACE("%p\n",this); TRACE("%p\n",this);
DbgPrint("[shell32, CDefView::FillList] Called\n");
/* get the itemlist from the shfolder*/ /* get the itemlist from the shfolder*/
hRes = pSFParent->EnumObjects(m_hWnd, SHCONTF_NONFOLDERS | SHCONTF_FOLDERS, &pEnumIDList); hRes = pSFParent->EnumObjects(m_hWnd, SHCONTF_NONFOLDERS | SHCONTF_FOLDERS, &pEnumIDList);
if (hRes != S_OK) if (hRes != S_OK)
@ -919,8 +950,9 @@ HMENU CDefView::BuildFileMenu()
TRACE("(%p)\n",this); TRACE("(%p)\n",this);
hSubMenu = CreatePopupMenu(); hSubMenu = CreatePopupMenu();
if(hSubMenu) 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++){} for(nTools = 0; Tools[nTools].idCommand != -1; nTools++){}
/*add the menu items*/ /*add the menu items*/
@ -947,6 +979,7 @@ HMENU CDefView::BuildFileMenu()
InsertMenuItemW(hSubMenu, (UINT)-1, TRUE, &mii); InsertMenuItemW(hSubMenu, (UINT)-1, TRUE, &mii);
} }
} }
TRACE("-- return (menu=%p)\n",hSubMenu); TRACE("-- return (menu=%p)\n",hSubMenu);
return hSubMenu; return hSubMenu;
} }
@ -955,14 +988,15 @@ HMENU CDefView::BuildFileMenu()
* ShellView_MergeFileMenu() * ShellView_MergeFileMenu()
*/ */
void CDefView::MergeFileMenu(HMENU hSubMenu) void CDefView::MergeFileMenu(HMENU hSubMenu)
{ TRACE("(%p)->(submenu=%p) stub\n",this,hSubMenu); {
TRACE("(%p)->(submenu=%p) stub\n",this,hSubMenu);
if(hSubMenu) if (hSubMenu)
{ /*insert This item at the beginning of the menu */ { /*insert This item at the beginning of the menu */
_InsertMenuItemW(hSubMenu, 0, TRUE, 0, MFT_SEPARATOR, NULL, MFS_ENABLED); _InsertMenuItemW(hSubMenu, 0, TRUE, 0, MFT_SEPARATOR, NULL, MFS_ENABLED);
_InsertMenuItemW(hSubMenu, 0, TRUE, IDM_MYFILEITEM, MFT_STRING, L"dummy45", MFS_ENABLED); _InsertMenuItemW(hSubMenu, 0, TRUE, IDM_MYFILEITEM, MFT_STRING, L"dummy45", MFS_ENABLED);
} }
TRACE("--\n"); TRACE("--\n");
} }
@ -973,8 +1007,9 @@ void CDefView::MergeViewMenu(HMENU hSubMenu)
{ {
TRACE("(%p)->(submenu=%p)\n",this,hSubMenu); TRACE("(%p)->(submenu=%p)\n",this,hSubMenu);
if(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; MENUITEMINFOW mii;
static WCHAR view[] = L"View"; static WCHAR view[] = L"View";
@ -1010,7 +1045,7 @@ UINT CDefView::GetSelections()
TRACE("selected=%i\n", cidl); TRACE("selected=%i\n", cidl);
if(apidl) if (apidl)
{ {
TRACE("-- Items selected =%u\n", cidl); TRACE("-- Items selected =%u\n", cidl);
@ -1033,8 +1068,8 @@ UINT CDefView::GetSelections()
lvItem.iItem++; lvItem.iItem++;
} }
} }
return cidl;
return cidl;
} }
/********************************************************** /**********************************************************
@ -1128,6 +1163,7 @@ HRESULT CDefView::OpenSelectedItems()
{ {
CF_IDLIST = RegisterClipboardFormatW(CFSTR_SHELLIDLIST); CF_IDLIST = RegisterClipboardFormatW(CFSTR_SHELLIDLIST);
} }
fetc.cfFormat = CF_IDLIST; fetc.cfFormat = CF_IDLIST;
fetc.ptd = NULL; fetc.ptd = NULL;
fetc.dwAspect = DVASPECT_CONTENT; fetc.dwAspect = DVASPECT_CONTENT;
@ -1221,16 +1257,17 @@ LRESULT CDefView::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b
{ {
pSFParent->GetUIObjectOf(hWndParent, cidl, (LPCITEMIDLIST*)apidl, IID_IContextMenu, NULL, (LPVOID *)&pCM); pSFParent->GetUIObjectOf(hWndParent, cidl, (LPCITEMIDLIST*)apidl, IID_IContextMenu, NULL, (LPVOID *)&pCM);
if(pCM) if (pCM)
{ {
TRACE("-- pContextMenu\n"); TRACE("-- pContextMenu\n");
hMenu = CreatePopupMenu(); hMenu = CreatePopupMenu();
if( hMenu ) if (hMenu)
{ {
hResult = IUnknown_SetSite(pCM, (IShellView *)this); 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.*/ /* 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) if (SUCCEEDED(pShellBrowser->GetControlWindow(FCW_TREE, &hwndTree)) && hwndTree)
{ {
TRACE("-- explore mode\n"); TRACE("-- explore mode\n");
fExplore = TRUE; fExplore = TRUE;
@ -1245,7 +1282,7 @@ LRESULT CDefView::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b
if (FolderSettings.fFlags & FWF_DESKTOP) if (FolderSettings.fFlags & FWF_DESKTOP)
SetMenuDefaultItem(hMenu, FCIDM_SHVIEW_OPEN, MF_BYCOMMAND); SetMenuDefaultItem(hMenu, FCIDM_SHVIEW_OPEN, MF_BYCOMMAND);
if( bDefault ) if (bDefault)
{ {
TRACE("-- get menu default command\n"); TRACE("-- get menu default command\n");
uCommand = GetMenuDefaultItem(hMenu, FALSE, GMDI_GOINTOPOPUPS); uCommand = GetMenuDefaultItem(hMenu, FALSE, GMDI_GOINTOPOPUPS);
@ -1256,9 +1293,10 @@ LRESULT CDefView::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b
uCommand = TrackPopupMenu( hMenu,TPM_LEFTALIGN | TPM_RETURNCMD,x,y,0,m_hWnd,NULL); uCommand = TrackPopupMenu( hMenu,TPM_LEFTALIGN | TPM_RETURNCMD,x,y,0,m_hWnd,NULL);
} }
if(uCommand > 0) if (uCommand > 0)
{ {
TRACE("-- uCommand=%u\n", uCommand); TRACE("-- uCommand=%u\n", uCommand);
if (uCommand==FCIDM_SHVIEW_OPEN && pCommDlgBrowser.p != NULL) if (uCommand==FCIDM_SHVIEW_OPEN && pCommDlgBrowser.p != NULL)
{ {
TRACE("-- dlg: OnDefaultCommand\n"); TRACE("-- dlg: OnDefaultCommand\n");
@ -1277,6 +1315,7 @@ LRESULT CDefView::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b
pCM->InvokeCommand(&cmi); pCM->InvokeCommand(&cmi);
} }
} }
hResult = IUnknown_SetSite(pCM, NULL); hResult = IUnknown_SetSite(pCM, NULL);
DestroyMenu(hMenu); DestroyMenu(hMenu);
} }
@ -1304,6 +1343,7 @@ LRESULT CDefView::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b
pCM.Release(); pCM.Release();
} }
return 0; return 0;
} }
@ -1343,9 +1383,9 @@ void CDefView::OnDeactivate()
{ {
TRACE("%p\n",this); TRACE("%p\n",this);
if(uState != SVUIA_DEACTIVATE) if (uState != SVUIA_DEACTIVATE)
{ {
if(hMenu) if (hMenu)
{ {
pShellBrowser->SetMenuSB(0, 0, 0); pShellBrowser->SetMenuSB(0, 0, 0);
pShellBrowser->RemoveMenusSB(hMenu); pShellBrowser->RemoveMenusSB(hMenu);
@ -1366,7 +1406,7 @@ void CDefView::DoActivate(UINT uState)
TRACE("%p uState=%x\n", this, uState); TRACE("%p uState=%x\n", this, uState);
/*don't do anything if the state isn't really changing */ /*don't do anything if the state isn't really changing */
if(uState == uState) if (uState == uState)
{ {
return; return;
} }
@ -1396,7 +1436,7 @@ void CDefView::DoActivate(UINT uState)
mii.hSubMenu = BuildFileMenu(); mii.hSubMenu = BuildFileMenu();
/*insert our menu into the menu bar*/ /*insert our menu into the menu bar*/
if(mii.hSubMenu) if (mii.hSubMenu)
{ {
InsertMenuItemA(hMenu, FCIDM_MENU_HELP, FALSE, &mii); InsertMenuItemA(hMenu, FCIDM_MENU_HELP, FALSE, &mii);
} }
@ -1406,24 +1446,25 @@ void CDefView::DoActivate(UINT uState)
mii.cbSize = sizeof(mii); mii.cbSize = sizeof(mii);
mii.fMask = MIIM_SUBMENU; mii.fMask = MIIM_SUBMENU;
if(GetMenuItemInfoA(hMenu, FCIDM_MENU_VIEW, FALSE, &mii)) if (GetMenuItemInfoA(hMenu, FCIDM_MENU_VIEW, FALSE, &mii))
{ {
MergeViewMenu(mii.hSubMenu); MergeViewMenu(mii.hSubMenu);
} }
/*add the items that should only be added if we have the focus*/ /*add the items that should only be added if we have the focus*/
if(SVUIA_ACTIVATE_FOCUS == uState) if (SVUIA_ACTIVATE_FOCUS == uState)
{ {
/*get the file menu so we can merge with it */ /*get the file menu so we can merge with it */
ZeroMemory(&mii, sizeof(mii)); ZeroMemory(&mii, sizeof(mii));
mii.cbSize = sizeof(mii); mii.cbSize = sizeof(mii);
mii.fMask = MIIM_SUBMENU; mii.fMask = MIIM_SUBMENU;
if(GetMenuItemInfoA(hMenu, FCIDM_MENU_FILE, FALSE, &mii)) if (GetMenuItemInfoA(hMenu, FCIDM_MENU_FILE, FALSE, &mii))
{ {
MergeFileMenu(mii.hSubMenu); MergeFileMenu(mii.hSubMenu);
} }
} }
TRACE("-- before fnSetMenuSB\n"); TRACE("-- before fnSetMenuSB\n");
pShellBrowser->SetMenuSB(hMenu, 0, m_hWnd); pShellBrowser->SetMenuSB(hMenu, 0, m_hWnd);
} }
@ -1497,7 +1538,7 @@ LRESULT CDefView::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHand
TRACE("(%p)->(0x%08x 0x%08x %p) stub\n",this, dwCmdID, dwCmd, hwndCmd); TRACE("(%p)->(0x%08x 0x%08x %p) stub\n",this, dwCmdID, dwCmd, hwndCmd);
switch(dwCmdID) switch (dwCmdID)
{ {
case FCIDM_SHVIEW_SMALLICON: case FCIDM_SHVIEW_SMALLICON:
FolderSettings.ViewMode = FVM_SMALLICON; FolderSettings.ViewMode = FVM_SMALLICON;
@ -1537,6 +1578,7 @@ LRESULT CDefView::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHand
default: default:
TRACE("-- COMMAND 0x%04x unhandled\n", dwCmdID); TRACE("-- COMMAND 0x%04x unhandled\n", dwCmdID);
} }
return 0; return 0;
} }
@ -1560,7 +1602,7 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
TRACE("%p CtlID=%u lpnmh->code=%x\n",this,CtlID,lpnmh->code); TRACE("%p CtlID=%u lpnmh->code=%x\n",this,CtlID,lpnmh->code);
switch(lpnmh->code) switch (lpnmh->code)
{ {
case NM_SETFOCUS: case NM_SETFOCUS:
TRACE("-- NM_SETFOCUS %p\n", this); TRACE("-- NM_SETFOCUS %p\n", this);
@ -1626,7 +1668,7 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
case LVN_COLUMNCLICK: case LVN_COLUMNCLICK:
ListViewSortInfo.nHeaderID = lpnmlv->iSubItem; ListViewSortInfo.nHeaderID = lpnmlv->iSubItem;
if(ListViewSortInfo.nLastHeaderID == ListViewSortInfo.nHeaderID) if (ListViewSortInfo.nLastHeaderID == ListViewSortInfo.nHeaderID)
{ {
ListViewSortInfo.bIsAscending = !ListViewSortInfo.bIsAscending; ListViewSortInfo.bIsAscending = !ListViewSortInfo.bIsAscending;
} }
@ -1644,7 +1686,7 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
TRACE("-- LVN_GETDISPINFO %p\n", this); TRACE("-- LVN_GETDISPINFO %p\n", this);
pidl = (LPITEMIDLIST)lpdi->item.lParam; pidl = (LPITEMIDLIST)lpdi->item.lParam;
if(lpdi->item.mask & LVIF_TEXT) /* text requested */ if (lpdi->item.mask & LVIF_TEXT) /* text requested */
{ {
if (pSF2Parent) if (pSF2Parent)
{ {
@ -1743,14 +1785,16 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
pidl = (LPITEMIDLIST)lpdi->item.lParam; pidl = (LPITEMIDLIST)lpdi->item.lParam;
hr = pSFParent->SetNameOf(0, pidl, lpdi->item.pszText, SHGDN_INFOLDER, &pidl); hr = pSFParent->SetNameOf(0, pidl, lpdi->item.pszText, SHGDN_INFOLDER, &pidl);
if(SUCCEEDED(hr) && pidl) if (SUCCEEDED(hr) && pidl)
{ {
lvItem.mask = LVIF_PARAM; lvItem.mask = LVIF_PARAM;
lvItem.lParam = (LPARAM)pidl; lvItem.lParam = (LPARAM)pidl;
SendMessageW(hWndList, LVM_SETITEMW, 0, (LPARAM) &lvItem); SendMessageW(hWndList, LVM_SETITEMW, 0, (LPARAM) &lvItem);
return TRUE; return TRUE;
} }
} }
return FALSE; return FALSE;
} }
@ -1768,25 +1812,24 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
SHORT ctrl = GetKeyState(VK_CONTROL) & 0x8000; SHORT ctrl = GetKeyState(VK_CONTROL) & 0x8000;
/* initiate a rename of the selected file or directory */ /* initiate a rename of the selected file or directory */
if(plvKeyDown->wVKey == VK_F2) if (plvKeyDown->wVKey == VK_F2)
{ {
/* see how many files are selected */ /* see how many files are selected */
int i = ListView_GetSelectedCount(hWndList); int i = ListView_GetSelectedCount(hWndList);
/* get selected item */ /* get selected item */
if(i == 1) if (i == 1)
{ {
/* get selected item */ /* get selected item */
i = ListView_GetNextItem(hWndList, -1, i = ListView_GetNextItem(hWndList, -1, LVNI_SELECTED);
LVNI_SELECTED);
SendMessageW(hWndList, LVM_ENSUREVISIBLE, i, 0); SendMessageW(hWndList, LVM_ENSUREVISIBLE, i, 0);
SendMessageW(hWndList, LVM_EDITLABELW, i, 0); SendMessageW(hWndList, LVM_EDITLABELW, i, 0);
} }
} }
#if 0 #if 0
TranslateAccelerator(m_hWnd, hAccel, &msg) TranslateAccelerator(m_hWnd, hAccel, &msg)
#endif #endif
else if(plvKeyDown->wVKey == VK_DELETE) else if(plvKeyDown->wVKey == VK_DELETE)
{ {
UINT i; UINT i;
@ -1801,7 +1844,7 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
if (psfhlp == NULL) if (psfhlp == NULL)
break; break;
if(!(i = ListView_GetSelectedCount(hWndList))) if (!(i = ListView_GetSelectedCount(hWndList)))
break; break;
/* allocate memory for the pidl array */ /* allocate memory for the pidl array */
@ -1811,7 +1854,7 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
/* retrieve all selected items */ /* retrieve all selected items */
i = 0; i = 0;
item_index = -1; item_index = -1;
while(ListView_GetSelectedCount(hWndList) > i) while (ListView_GetSelectedCount(hWndList) > i)
{ {
/* get selected item */ /* get selected item */
item_index = ListView_GetNextItem(hWndList, item_index = ListView_GetNextItem(hWndList,
@ -1832,21 +1875,20 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
/* free pidl array memory */ /* free pidl array memory */
HeapFree(GetProcessHeap(), 0, pItems); HeapFree(GetProcessHeap(), 0, pItems);
} }
/* Initiate a refresh */ /* Initiate a refresh */
else if(plvKeyDown->wVKey == VK_F5) else if (plvKeyDown->wVKey == VK_F5)
{ {
Refresh(); Refresh();
} }
else if(plvKeyDown->wVKey == VK_BACK) else if (plvKeyDown->wVKey == VK_BACK)
{ {
LPSHELLBROWSER lpSb; LPSHELLBROWSER lpSb;
if((lpSb = (LPSHELLBROWSER)SendMessageW(hWndParent, CWM_GETISHELLBROWSER, 0, 0))) if ((lpSb = (LPSHELLBROWSER)SendMessageW(hWndParent, CWM_GETISHELLBROWSER, 0, 0)))
{ {
lpSb->BrowseObject(NULL, SBSP_PARENT); lpSb->BrowseObject(NULL, SBSP_PARENT);
} }
} }
else if(plvKeyDown->wVKey == 'C' && ctrl) else if (plvKeyDown->wVKey == 'C' && ctrl)
{ {
if (GetSelections()) if (GetSelections())
{ {
@ -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); TRACE("-- %p WM_COMMAND %x unhandled\n", this, lpnmh->code);
break; break;
} }
return 0; return 0;
} }
@ -2003,17 +2046,21 @@ LRESULT CDefView::OnChangeNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &
case SHCNE_CREATE: case SHCNE_CREATE:
LV_AddItem(Pidls[0]); LV_AddItem(Pidls[0]);
break; break;
case SHCNE_RMDIR: case SHCNE_RMDIR:
case SHCNE_DELETE: case SHCNE_DELETE:
LV_DeleteItem(Pidls[0]); LV_DeleteItem(Pidls[0]);
break; break;
case SHCNE_RENAMEFOLDER: case SHCNE_RENAMEFOLDER:
case SHCNE_RENAMEITEM: case SHCNE_RENAMEITEM:
LV_RenameItem(Pidls[0], Pidls[1]); LV_RenameItem(Pidls[0], Pidls[1]);
break; break;
case SHCNE_UPDATEITEM: case SHCNE_UPDATEITEM:
break; break;
} }
return TRUE; return TRUE;
} }
@ -2079,6 +2126,7 @@ HRESULT WINAPI CDefView::TranslateAccelerator(LPMSG lpmsg)
{ {
TRACE("-- key=0x04%lx\n",lpmsg->wParam) ; TRACE("-- key=0x04%lx\n",lpmsg->wParam) ;
} }
return S_FALSE; /* not handled */ return S_FALSE; /* not handled */
} }
@ -2100,7 +2148,7 @@ HRESULT WINAPI CDefView::UIActivate(UINT uState)
TRACE("(%p)->(state=%x) stub\n",this, uState); TRACE("(%p)->(state=%x) stub\n",this, uState);
/*don't do anything if the state isn't really changing*/ /*don't do anything if the state isn't really changing*/
if(uState == uState) if (uState == uState)
{ {
return S_OK; return S_OK;
} }
@ -2109,20 +2157,20 @@ HRESULT WINAPI CDefView::UIActivate(UINT uState)
DoActivate(uState); DoActivate(uState);
/*only do This if we are active*/ /*only do This if we are active*/
if(uState != SVUIA_DEACTIVATE) if (uState != SVUIA_DEACTIVATE)
{ {
/* /*
GetFolderPath is not a method of IShellFolder GetFolderPath is not a method of IShellFolder
IShellFolder_GetFolderPath( pSFParent, szName, sizeof(szName) ); IShellFolder_GetFolderPath( pSFParent, szName, sizeof(szName) );
*/ */
/* set the number of parts */ /* set the number of parts */
pShellBrowser->SendControlMsg(FCW_STATUS, SB_SETPARTS, 1, (LPARAM)nPartArray, &lResult); pShellBrowser->SendControlMsg(FCW_STATUS, SB_SETPARTS, 1, (LPARAM)nPartArray, &lResult);
/* set the text for the parts */ /* set the text for the parts */
/* /*
pShellBrowser->SendControlMsg(FCW_STATUS, SB_SETTEXTA, 0, (LPARAM)szName, &lResult); pShellBrowser->SendControlMsg(FCW_STATUS, SB_SETTEXTA, 0, (LPARAM)szName, &lResult);
*/ */
} }
return S_OK; return S_OK;
@ -2195,7 +2243,7 @@ HRESULT WINAPI CDefView::DestroyViewWindow()
/*Make absolutely sure all our UI is cleaned up.*/ /*Make absolutely sure all our UI is cleaned up.*/
UIActivate(SVUIA_DEACTIVATE); UIActivate(SVUIA_DEACTIVATE);
if(hMenu) if (hMenu)
{ {
DestroyMenu(hMenu); DestroyMenu(hMenu);
} }
@ -2212,7 +2260,8 @@ HRESULT WINAPI CDefView::GetCurrentInfo(LPFOLDERSETTINGS lpfs)
TRACE("(%p)->(%p) vmode=%x flags=%x\n",this, lpfs, TRACE("(%p)->(%p) vmode=%x flags=%x\n",this, lpfs,
FolderSettings.ViewMode, FolderSettings.fFlags); FolderSettings.ViewMode, FolderSettings.fFlags);
if (!lpfs) return E_INVALIDARG; if (!lpfs)
return E_INVALIDARG;
*lpfs = FolderSettings; *lpfs = FolderSettings;
return NOERROR; return NOERROR;
@ -2252,7 +2301,7 @@ HRESULT WINAPI CDefView::SelectItem(LPCITEMIDLIST pidl, UINT uFlags)
lvItem.iItem = 0; lvItem.iItem = 0;
lvItem.iSubItem = 0; lvItem.iSubItem = 0;
while(SendMessageW(hWndList, LVM_GETITEMW, 0, (LPARAM) &lvItem)) while (SendMessageW(hWndList, LVM_GETITEMW, 0, (LPARAM) &lvItem))
{ {
if (lvItem.iItem == i) if (lvItem.iItem == i)
{ {
@ -2261,7 +2310,7 @@ HRESULT WINAPI CDefView::SelectItem(LPCITEMIDLIST pidl, UINT uFlags)
else else
lvItem.state &= ~LVIS_SELECTED; lvItem.state &= ~LVIS_SELECTED;
if(uFlags & SVSI_FOCUSED) if (uFlags & SVSI_FOCUSED)
lvItem.state &= ~LVIS_FOCUSED; lvItem.state &= ~LVIS_FOCUSED;
} }
else else
@ -2269,6 +2318,7 @@ HRESULT WINAPI CDefView::SelectItem(LPCITEMIDLIST pidl, UINT uFlags)
if (uFlags & SVSI_DESELECTOTHERS) if (uFlags & SVSI_DESELECTOTHERS)
lvItem.state &= ~LVIS_SELECTED; lvItem.state &= ~LVIS_SELECTED;
} }
SendMessageW(hWndList, LVM_SETITEMW, 0, (LPARAM) &lvItem); SendMessageW(hWndList, LVM_SETITEMW, 0, (LPARAM) &lvItem);
lvItem.iItem++; lvItem.iItem++;
} }
@ -2276,8 +2326,8 @@ HRESULT WINAPI CDefView::SelectItem(LPCITEMIDLIST pidl, UINT uFlags)
if(uFlags & SVSI_EDIT) if(uFlags & SVSI_EDIT)
SendMessageW(hWndList, LVM_EDITLABELW, i, 0); SendMessageW(hWndList, LVM_EDITLABELW, i, 0);
} }
return S_OK; return S_OK;
} }
@ -2289,7 +2339,7 @@ HRESULT WINAPI CDefView::GetItemObject(UINT uItem, REFIID riid, LPVOID *ppvOut)
*ppvOut = NULL; *ppvOut = NULL;
switch(uItem) switch (uItem)
{ {
case SVGIO_BACKGROUND: case SVGIO_BACKGROUND:
if (IsEqualIID(riid, IID_IContextMenu)) if (IsEqualIID(riid, IID_IContextMenu))
@ -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); hr = pSFParent->GetUIObjectOf(m_hWnd, cidl, (LPCITEMIDLIST*)apidl, riid, 0, ppvOut);
break; break;
} }
TRACE("-- (%p)->(interface=%p)\n",this, *ppvOut); TRACE("-- (%p)->(interface=%p)\n",this, *ppvOut);
return hr; return hr;
@ -2325,6 +2376,7 @@ HRESULT STDMETHODCALLTYPE CDefView::GetFolder(REFIID riid, void **ppv)
{ {
if (pSFParent == NULL) if (pSFParent == NULL)
return E_FAIL; return E_FAIL;
return pSFParent->QueryInterface(riid, ppv); 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) HRESULT WINAPI CDefView::QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD *prgCmds, OLECMDTEXT *pCmdText)
{ {
UINT i;
FIXME("(%p)->(%p(%s) 0x%08x %p %p\n", FIXME("(%p)->(%p(%s) 0x%08x %p %p\n",
this, pguidCmdGroup, debugstr_guid(pguidCmdGroup), cCmds, prgCmds, pCmdText); this, pguidCmdGroup, debugstr_guid(pguidCmdGroup), cCmds, prgCmds, pCmdText);
if (!prgCmds) if (!prgCmds)
return E_POINTER; 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); FIXME("\tprgCmds[%d].cmdID = %d\n", i, prgCmds[i].cmdID);
prgCmds[i].cmdf = 0; prgCmds[i].cmdf = 0;
} }
return OLECMDERR_E_UNKNOWNGROUP; return OLECMDERR_E_UNKNOWNGROUP;
} }
@ -2417,6 +2469,7 @@ HRESULT WINAPI CDefView::Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCm
(nCmdID == 0x29) && (nCmdID == 0x29) &&
(nCmdexecopt == 4) && pvaOut) (nCmdexecopt == 4) && pvaOut)
return S_OK; return S_OK;
if (IsEqualIID(*pguidCmdGroup, CGID_ShellDocView) && if (IsEqualIID(*pguidCmdGroup, CGID_ShellDocView) &&
(nCmdID == 9) && (nCmdID == 9) &&
(nCmdexecopt == 0)) (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 )) htinfo.pt.y < SCROLLAREAWIDTH || htinfo.pt.y > clientRect.bottom - SCROLLAREAWIDTH ))
{ {
cScrollDelay = (cScrollDelay + 1) % 5; /* DragOver is called every 50 ms */ 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) if (htinfo.pt.x < SCROLLAREAWIDTH)
SendMessageW(hWndList, WM_HSCROLL, SB_LINEUP, 0); SendMessageW(hWndList, WM_HSCROLL, SB_LINEUP, 0);
if (htinfo.pt.x > clientRect.right - SCROLLAREAWIDTH) if (htinfo.pt.x > clientRect.right - SCROLLAREAWIDTH)
SendMessageW(hWndList, WM_HSCROLL, SB_LINEDOWN, 0); SendMessageW(hWndList, WM_HSCROLL, SB_LINEDOWN, 0);
if (htinfo.pt.y < SCROLLAREAWIDTH) if (htinfo.pt.y < SCROLLAREAWIDTH)
SendMessageW(hWndList, WM_VSCROLL, SB_LINEUP, 0); SendMessageW(hWndList, WM_VSCROLL, SB_LINEUP, 0);
if (htinfo.pt.y > clientRect.bottom - SCROLLAREAWIDTH) if (htinfo.pt.y > clientRect.bottom - SCROLLAREAWIDTH)
SendMessageW(hWndList, WM_VSCROLL, SB_LINEDOWN, 0); SendMessageW(hWndList, WM_VSCROLL, SB_LINEDOWN, 0);
} }
} else { }
else
{
cScrollDelay = 0; /* Reset, if the cursor is not over the listview's scroll-area */ cScrollDelay = 0; /* Reset, if the cursor is not over the listview's scroll-area */
} }
ptLastMousePos = htinfo.pt; ptLastMousePos = htinfo.pt;
/* If we are still over the previous sub-item, notify it via DragOver and return. */ /* 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); return pCurDropTarget->DragOver(grfKeyState, pt, pdwEffect);
/* We've left the previous sub-item, notify it via DragLeave and Release it. */ /* We've left the previous sub-item, notify it via DragLeave and Release it. */
if (pCurDropTarget) { if (pCurDropTarget)
{
pCurDropTarget->DragLeave(); pCurDropTarget->DragLeave();
pCurDropTarget.Release(); pCurDropTarget.Release();
} }
iDragOverItem = lResult; iDragOverItem = lResult;
if (lResult == -1) { if (lResult == -1)
{
/* We are not above one of the listview's subitems. Bind to the parent folder's /* We are not above one of the listview's subitems. Bind to the parent folder's
* DropTarget interface. */ * DropTarget interface. */
hr = pSFParent->QueryInterface(IID_IDropTarget, hr = pSFParent->QueryInterface(IID_IDropTarget,
(LPVOID*)&pCurDropTarget); (LPVOID*)&pCurDropTarget);
} else { }
else
{
/* Query the relative PIDL of the shellfolder object represented by the currently /* Query the relative PIDL of the shellfolder object represented by the currently
* dragged over listview-item ... */ * dragged over listview-item ... */
lvItem.mask = LVIF_PARAM; lvItem.mask = LVIF_PARAM;
@ -2630,14 +2695,16 @@ HRESULT WINAPI CDefView::GetAdvise(DWORD *pAspects, DWORD *pAdvf, IAdviseSink **
{ {
TRACE("this=%p pAspects=%p pAdvf=%p ppAdvSink=%p\n", this, pAspects, pAdvf, ppAdvSink); TRACE("this=%p pAspects=%p pAdvf=%p ppAdvSink=%p\n", this, pAspects, pAdvf, ppAdvSink);
if( ppAdvSink ) if (ppAdvSink)
{ {
*ppAdvSink = pAdvSink; *ppAdvSink = pAdvSink;
pAdvSink.p->AddRef(); pAdvSink.p->AddRef();
} }
if( pAspects )
if (pAspects)
*pAspects = dwAspects; *pAspects = dwAspects;
if( pAdvf )
if (pAdvf)
*pAdvf = dwAdvf; *pAdvf = dwAdvf;
return S_OK; return S_OK;
@ -2661,19 +2728,24 @@ HRESULT WINAPI IShellView_Constructor(IShellFolder *pFolder, IShellView **newVie
if (newView == NULL) if (newView == NULL)
return E_POINTER; return E_POINTER;
*newView = NULL; *newView = NULL;
ATLTRY (theView = new CComObject<CDefView>); ATLTRY (theView = new CComObject<CDefView>);
if (theView == NULL) if (theView == NULL)
return E_OUTOFMEMORY; return E_OUTOFMEMORY;
hResult = theView->QueryInterface (IID_IShellView, (void **)&result); hResult = theView->QueryInterface (IID_IShellView, (void **)&result);
if (FAILED (hResult)) if (FAILED (hResult))
{ {
delete theView; delete theView;
return hResult; return hResult;
} }
hResult = theView->Initialize (pFolder); hResult = theView->Initialize (pFolder);
if (FAILED (hResult)) if (FAILED (hResult))
return hResult; return hResult;
*newView = result.Detach (); *newView = result.Detach ();
return S_OK; return S_OK;
} }