On 7/17/2010 19:08, David Hedberg wrote:
  static HRESULT WINAPI IFView_SetCurrentViewMode(IFolderView *iface, UINT mode)
  {
-       IShellViewImpl *This = impl_from_IFolderView(iface);
-       FIXME("(%p)->(%u), stub\n", This, mode);
-       return E_NOTIMPL;
+        IShellViewImpl *This = impl_from_IFolderView(iface);
+        RECT rc;
+        TRACE("(%p)->(%u), stub\n", This, mode);
+
+        if((mode<  FVM_FIRST || mode>  FVM_LAST)&&
+           (mode != FVM_AUTO))
+            return E_INVALIDARG;
+
+        /* Destroy the previous listview */
+        ShellView_DestroyView(This);
+
+        /* Change the viewmode */
+        This->FolderSettings.ViewMode = mode;
+
+        /* Create a new listview */
+        ShellView_CreateView(This);
+
+        /* Size the new listview properly. */
+        GetClientRect(This->hWnd,&rc);
+        MoveWindow(This->hWndList, 0, 0, rc.right, rc.bottom, TRUE);
+
+        return S_OK;
  }
Why do you think you should destroy Listview here? It's not obvious at all. I think it's only about changing style.



Reply via email to