+ ::MoveWindow(m_hWnd, rcNewSize.left, rcNewSize.top, rcNewSize.right - rcNewSize.left, rcNewSize.bottom - rcNewSize.top, FALSE);
+ ::MoveWindow(m_hWndShellView, 0, 0, rcNewSize.right - rcNewSize.left, rcNewSize.bottom - rcNewSize.top, FALSE);
+
+ if (cMonitors != 1)
+ {
+ CAtlList<RECT> list;
+ EnumDisplayMonitors(NULL, NULL, MonitorEnumProc, (LPARAM)&list);
+ RECT* prcWorkAreas = new RECT[list.GetCount()];
+ int i = 0;
+ for (POSITION it = list.GetHeadPosition(); it; list.GetNext(it))
+ prcWorkAreas[i++] = list.GetAt(it);
+
+ HWND hwndListView = FindWindowExW(m_hWndShellView, NULL, WC_LISTVIEW, NULL);
+
+ ::SendMessageW(hwndListView, LVM_SETWORKAREAS , i, (LPARAM)prcWorkAreas);
+ }
+
+#else
+ SystemParametersInfoW(SPI_GETWORKAREA, 0, &rcNewSize, 0);
+ ::MoveWindow(m_hWnd, rcNewSize.left, rcNewSize.top, rcNewSize.right - rcNewSize.left, rcNewSize.bottom - rcNewSize.top, FALSE);
+ ::MoveWindow(m_hWndShellView, 0, 0, rcNewSize.right - rcNewSize.left, rcNewSize.bottom - rcNewSize.top, FALSE);