On 7/17/2010 19:45, David Hedberg wrote:
On Sat, Jul 17, 2010 at 5:30 PM, Nikolay Sivovnsivov@codeweavers.com wrote:
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.
Seems I've managed to miss LVM_SETVIEW, I'll try again.
It's not a good idea cause it's only supported for comctl32 version 6.0 with a SxS manifest and I think Vista could work fine with IFolderView that creates a view based on v.5 control.
Anyway, you could test if it does send LVM_SETVIEW or not by subclassing Listview like it's done in control tests.