51#define SHV_CHANGE_NOTIFY WM_USER + 0x1111
55#define CONTEXT_MENU_BASE_ID 1
99 public CWindowImpl<CDefView, CWindow, CControlWinTraits>,
103 public IShellFolderView,
293 DVTARGETDEVICE *ptd,
HDC hicTargetDev,
LOGPALETTE **ppColorSet);
398#define IDM_VIEW_FILES (FCIDM_SHVIEWFIRST + 0x500)
399#define IDM_VIEW_IDW (FCIDM_SHVIEWFIRST + 0x501)
400#define IDM_MYFILEITEM (FCIDM_SHVIEWFIRST + 0x502)
405#define GET_WM_COMMAND_ID(wp, lp) LOWORD(wp)
406#define GET_WM_COMMAND_HWND(wp, lp) (HWND)(lp)
407#define GET_WM_COMMAND_CMD(wp, lp) HIWORD(wp)
446 TRACE(
" destroying IShellView(%p)\n",
this);
482 TRACE(
"ICommDlgBrowser::IncludeObject pidl=%p\n", pidl);
496 TRACE(
"ICommDlgBrowser::OnDefaultCommand\n");
510 TRACE(
"ICommDlgBrowser::OnStateChange flags=%x\n",
uFlags);
569 DWORD uTotalFileSize = 0;
573 bool bIsOnlyFoldersSelected =
true;
589 bIsOnlyFoldersSelected =
false;
595 if ((cSelectedItems && !bIsOnlyFoldersSelected) || uTotalFileSize)
631 DWORD dwStyle, dwExStyle;
691 dwExStyle &= ~WS_EX_CLIENTEDGE;
693 RECT rcListView = {0,0,0,0};
713 DWORD cbDropShadow =
sizeof(bDropShadow);
723 L"ListviewShadow",
NULL, &bDropShadow, &cbDropShadow);
782 for (
int i = 0; 1;
i++)
796 FIXME(
"no m_pSF2Parent\n");
894 for (
int i = 0;
i<cItems;
i++)
910 TRACE(
"(%p)(pidl=%p)\n",
this, pidl);
935 TRACE(
"(%p)(pidl=%p)\n",
this, pidl);
954 TRACE(
"(%p)(pidlold=%p pidlnew=%p)\n",
this, pidlOld, pidlNew);
963 lvItem.
iItem = nItem;
970 lvItem.
iItem = nItem;
994 TRACE(
"(%p)(pidl=%p)\n",
this, pidl);
1003 lvItem.
iItem = nItem;
1041 DWORD dFlags = SHCONTF_NONFOLDERS | SHCONTF_FOLDERS;
1042 DWORD dwValue, cbValue;
1044 TRACE(
"%p\n",
this);
1048 cbValue =
sizeof(dwValue);
1050 L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
1051 L"Hidden",
NULL, &dwValue, &cbValue);
1054 dFlags |= SHCONTF_INCLUDEHIDDEN;
1059 cbValue =
sizeof(dwValue);
1061 L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
1062 L"ShowSuperHidden",
NULL, &dwValue, &cbValue);
1065 dFlags |= SHCONTF_INCLUDESUPERHIDDEN;
1086 while((
S_OK == pEnumIDList->Next(1, &pidl, &dwFetched)) && dwFetched)
1106 FIXME(
"no m_pSF2Parent\n");
1263 TRACE(
"%p\n",
this);
1268 ERR(
"Registering Drag Drop Failed\n");
1510 TRACE(
"-- selected Item found\n");
1518 CMINVOKECOMMANDINFOEX cmi;
1521 cmi.cbSize =
sizeof(cmi);
1526 cmi.fMask |= CMIC_MASK_SHIFT_DOWN;
1529 cmi.fMask |= CMIC_MASK_CONTROL_DOWN;
1533 cmi.fMask |= CMIC_MASK_PTINVOKE;
1537 HRESULT hr = pCM->InvokeCommand((LPCMINVOKECOMMANDINFO)&cmi);
1562 if (hResult ==
S_OK)
1580 if (uCommand == (
UINT)-1)
1582 ERR(
"GetMenuDefaultItem returned -1\n");
1600 TRACE(
"(%p)\n",
this);
1604 ERR(
"HACK: Aborting context menu in nested call!\n");
1626 SelectItem(hittest.iItem, SVSI_SELECT | SVSI_DESELECTOTHERS | SVSI_ENSUREVISIBLE);
1716 SFGAOF rfg = SFGAO_BROWSABLE | SFGAO_CANCOPY | SFGAO_CANLINK | SFGAO_CANMOVE | SFGAO_CANDELETE | SFGAO_CANRENAME | SFGAO_HASPROPSHEET | SFGAO_FILESYSTEM | SFGAO_FOLDER;
1747 WORD wWidth, wHeight;
1752 TRACE(
"%p width=%u height=%u\n",
this, wWidth, wHeight);
1777 TRACE(
"%p\n",
this);
1789 TRACE(
"%p uState=%x\n",
this, uState);
1836 TRACE(
"%p\n",
this);
1859 TRACE(
"(%p) stub\n",
this);
1885 TRACE(
"(%p)->(0x%08x 0x%08x %p) stub\n",
this, dwCmdID, dwCmd, hwndCmd);
1944 for (
int i=0;
i < nCount;
i++)
1990 L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer",
1995 cbValue =
sizeof(dwValue);
2020 TRACE(
"%p CtlID=%u lpnmh->code=%x\n",
this, CtlID, lpnmh->
code);
2022 switch (lpnmh->
code)
2025 TRACE(
"-- NM_SETFOCUS %p\n",
this);
2030 TRACE(
"-- NM_KILLFOCUS %p\n",
this);
2037 TRACE(
"-- NM_CUSTOMDRAW %p\n",
this);
2041 TRACE(
"-- NM_RELEASEDCAPTURE %p\n",
this);
2045 TRACE(
"-- NM_CLICK %p\n",
this);
2049 TRACE(
"-- NM_RCLICK %p\n",
this);
2053 TRACE(
"-- NM_DBLCLK %p\n",
this);
2058 TRACE(
"-- NM_RETURN %p\n",
this);
2063 TRACE(
"-- HDN_ENDTRACKW %p\n",
this);
2069 TRACE(
"-- LVN_DELETEITEM %p\n",
this);
2077 TRACE(
"-- LVN_DELETEALLITEMS %p\n",
this);
2081 TRACE(
"-- LVN_INSERTITEM (STUB)%p\n",
this);
2085 TRACE(
"-- LVN_ITEMACTIVATE %p\n",
this);
2100 TRACE(
"-- LVN_GETDISPINFO %p\n",
this);
2126 FIXME(
"no m_pSF2Parent\n");
2135 ULONG attributes = SFGAO_HIDDEN;
2138 if (attributes & SFGAO_HIDDEN)
2148 TRACE(
"-- LVN_ITEMCHANGED %p\n",
this);
2156 TRACE(
"-- LVN_BEGINDRAG\n");
2170 dwEffect |=
dwAttributes & (SFGAO_CANCOPY | SFGAO_CANLINK);
2176 piaso->SetAsyncMode(
TRUE);
2204 DWORD dwAttr = SFGAO_CANRENAME;
2207 TRACE(
"-- LVN_BEGINLABELEDITW %p\n",
this);
2210 if (SFGAO_CANRENAME & dwAttr)
2216 if (!(dwAttr & SFGAO_FOLDER) && (dwAttr & SFGAO_FILESYSTEM) &&
2243 TRACE(
"-- LVN_ENDLABELEDITW %p\n",
this);
2273 TRACE(
"-- %p WM_COMMAND %x unhandled\n",
this, lpnmh->
code);
2288 if (!pidl1 || !pidl2)
2345 ERR(
"hLock == NULL\n");
2352 TRACE(
"(%p)(%p,%p,0x%08x)\n",
this, Pidls[0], Pidls[1],
lParam);
2354 lEvent &= ~SHCNE_INTERRUPT;
2380 if (bParent0 && bParent1)
2413 ERR(
"no context menu!!!\n");
2517 TRACE(
"(%p)\n",
this);
2526 FIXME(
"(%p) stub\n",
this);
2555 FIXME(
"(%p) stub\n",
this);
2562 TRACE(
"(%p)->(state=%x) stub\n",
this, uState);
2587 TRACE(
"(%p)\n",
this);
2605 TRACE(
"(%p)\n",
this);
2653 TRACE(
"(%p)->(%p) vmode=%x flags=%x\n",
this, lpfs,
2665 FIXME(
"(%p) stub\n",
this);
2672 FIXME(
"(%p) stub\n",
this);
2681 TRACE(
"(%p)->(pidl=%p, 0x%08x) stub\n",
this, pidl,
uFlags);
2685 ERR(
"!m_ListView\n");
2701 if (
uFlags & SVSI_SELECT)
2704 lvItem.
state &= ~LVIS_SELECTED;
2706 if (
uFlags & SVSI_FOCUSED)
2709 lvItem.
state &= ~LVIS_FOCUSED;
2713 if (
uFlags & SVSI_DESELECTOTHERS)
2715 lvItem.
state &= ~LVIS_SELECTED;
2717 lvItem.
state &= ~LVIS_FOCUSED;
2724 if (
uFlags & SVSI_ENSUREVISIBLE)
2727 if((
uFlags & SVSI_EDIT) == SVSI_EDIT)
2779 TRACE(
"-- (%p)->(interface=%p)\n",
this, *ppvOut);
2786 TRACE(
"(%p)->(%p), stub\n",
this, pViewMode);
2798 TRACE(
"(%p)->(%u), stub\n",
this, ViewMode);
2824 FIXME(
"ViewMode %d not implemented\n", ViewMode);
2879 TRACE(
"(%p)->(%p)\n",
this, piItem);
2888 TRACE(
"(%p)->(%p)\n",
this, piItem);
2899 ERR(
"!m_ListView\n");
2904 if (lvIndex == -1 || ppt ==
NULL)
2913 TRACE(
"(%p)->(%p)\n",
this, ppt);
2917 ERR(
"!m_ListView\n");
2926 ppt->
x = spacing.
cx;
2927 ppt->
y = spacing.
cy;
2958 if (
dwFlags & SVSI_ENSUREVISIBLE)
2962 if (
dwFlags & SVSI_DESELECTOTHERS)
2974 if ((
dwFlags & SVSI_EDIT) == SVSI_EDIT)
3020 OLEMENUGROUPWIDTHS omw = { { 0, 0, 0, 0, 0, 0 } };
3024 TRACE(
"(%p)->(shlview=%p shlbrs=%p rec=%p hwnd=%p vmode=%x flags=%x)\n",
this, psvPrevious, psb, prcView,
hwnd,
mode,
flags);
3025 if (prcView !=
NULL)
3026 TRACE(
"-- left=%i top=%i right=%i bottom=%i\n", prcView->
left, prcView->
top, prcView->
right, prcView->
bottom);
3032 if (view_flags != SV3CVW3_DEFAULT)
3033 FIXME(
"unsupported view flags 0x%08x\n", view_flags);
3044 else if (
IsEqualIID(*view_id, VID_SmallIcons))
3050 else if (
IsEqualIID(*view_id, VID_Thumbnails))
3054 else if (
IsEqualIID(*view_id, VID_ThumbStrip))
3067 TRACE(
"-- CommDlgBrowser\n");
3090 TRACE(
"-- after fnInsertMenusSB\n");
3100 FIXME(
"(%p)->(%p) stub\n",
this, new_pidl);
3115 FIXME(
"(%p)->(%ld) stub\n",
this,
sort);
3140 TRACE(
"(%p)->(%p %p)\n",
this, pidl,
item);
3143 ERR(
"!m_ListView\n");
3152 TRACE(
"(%p)->(%p %d)\n",
this, pidl,
item);
3158 TRACE(
"(%p)->(%p %p)\n",
this, pidl,
item);
3162 ERR(
"!m_ListView\n");
3195 FIXME(
"(%p)->(%p %p %p) stub\n",
this, pidl_old, pidl_new,
item);
3201 FIXME(
"(%p)->(%p %p) stub\n",
this, pidl,
item);
3262 FIXME(
"(%p)->(%p) stub\n",
this,
pt);
3274 FIXME(
"(%p)->(%p %p) stub\n",
this, pidl,
pt);
3280 FIXME(
"(%p)->(%p) stub\n",
this, drop_target);
3286 FIXME(
"(%p)->(%d) stub\n",
this, move);
3292 FIXME(
"(%p)->(%p) stub\n",
this,
obj);
3298 FIXME(
"(%p)->(%p) stub\n",
this, spacing);
3319 TRACE(
"(%p)->(%p)\n",
this, support);
3325 FIXME(
"(%p)->(%p) stub\n",
this, disp);
3334 FIXME(
"(%p)->(%p(%s) 0x%08x %p %p\n",
3335 this, pguidCmdGroup,
debugstr_guid(pguidCmdGroup), cCmds, prgCmds, pCmdText);
3340 for (
UINT i = 0;
i < cCmds;
i++)
3342 FIXME(
"\tprgCmds[%d].cmdID = %d\n",
i, prgCmds[
i].cmdID);
3343 prgCmds[
i].
cmdf = 0;
3346 return OLECMDERR_E_UNKNOWNGROUP;
3356 FIXME(
"(%p)->(\n\tTarget GUID:%s Command:0x%08x Opt:0x%08x %p %p)\n",
3357 this,
debugstr_guid(pguidCmdGroup), nCmdID, nCmdexecopt, pvaIn, pvaOut);
3360 return OLECMDERR_E_UNKNOWNGROUP;
3367 return OLECMDERR_E_NOTSUPPORTED;
3387 V_I4(pvaOut) = 0x403;
3391 if (
IsEqualIID(*pguidCmdGroup, CGID_Explorer) &&
3393 (nCmdexecopt == 4) && pvaOut)
3396 if (
IsEqualIID(*pguidCmdGroup, CGID_ShellDocView) &&
3401 return OLECMDERR_E_UNKNOWNGROUP;
3415#define SCROLLAREAWIDTH 20
3594 for (
i = 0;
i < nCount; ++
i)
3607 for (
i = nCount - 1;
i >= 0; --
i)
3619 for (
i = 0;
i < nCount; ++
i)
3636 for (
i = nCount - 1;
i >= 0; --
i)
3655 int nPartArray[] = {-1};
3660 int nFileSizePartLength = 125;
3661 const int nLocationPartLength = 150;
3662 const int nRightPartsLength = nFileSizePartLength + nLocationPartLength;
3663 int nObjectsPartLength = nWidth - nRightPartsLength;
3667 if (nObjectsPartLength <= nLocationPartLength)
3668 nObjectsPartLength = nFileSizePartLength = nWidth / 3;
3670 int nPartArray[] = {nObjectsPartLength, nObjectsPartLength + nFileSizePartLength, -1};
3695 INT i1 =
pmap->Lookup(lParam1), i2 =
pmap->Lookup(lParam2);
3711 for (
INT i = 0;
i < nCount; ++
i)
3720 INT iFrom = iItem, iTo = iPosition;
3723 if (iFrom >= nCount)
3731 for (
INT i = iFrom;
i < iTo; ++
i)
3741 for (
INT i = iFrom;
i > iTo; --
i)
3753 for (
INT i = 0;
i < nCount; ++
i)
3821 TRACE(
"(%p)\n",
this);
3833 TRACE(
"(%p)\n",
this);
3844 FIXME(
"Stub: this=%p\n",
this);
3851 FIXME(
"Stub: this=%p\n",
this);
3858 FIXME(
"Stub: this=%p\n",
this);
3865 FIXME(
"Stub: this=%p\n",
this);
3872 FIXME(
"partial stub: %p 0x%08x 0x%08x %p\n",
this, aspects, advf, pAdvSink);
3884 TRACE(
"this=%p pAspects=%p pAdvf=%p ppAdvSink=%p\n",
this, pAspects, pAdvf, ppAdvSink);
3952 return ShellObjectCreatorInit<CDefView>(pFolder,
riid, ppvOut);
3962 TRACE(
"sf=%p pidl=%p cb=%p mode=0x%08x parm=%p\n",