static HRESULT WINAPI IFView_GetSelectionMarkedItem(IFolderView *iface, int *item)
{
- IShellViewImpl *This = impl_from_IFolderView(iface);
- FIXME("(%p)->(%p), stub\n", This, item);
- return E_NOTIMPL;
+ IShellViewImpl *This = impl_from_IFolderView(iface);
+
+ TRACE("(%p)->(%p)\n", This, item);
+
+ *item = SendMessageW(This->hWndList, LVM_GETSELECTIONMARK, 0, 0);
+
+ return S_OK;
}
static HRESULT WINAPI IFView_GetFocusedItem(IFolderView *iface, int *item)
{ 0 }
};
+static const struct message folderview_getselectionmarked_seq[] = {
+ { LVM_GETSELECTIONMARK, sent },
+ { 0 }
+};
+
static void test_IShellView_CreateViewWindow(void)
{
IShellFolder *desktop;
IFolderView *fv;
HWND hwnd_view, hwnd_list;
HRESULT hr;
- DWORD ret;
+ INT ret;
POINT pt;
RECT r;
{
/* crashes on Vista and Win2k8 - List not created yet case */
hr = IFolderView_GetSpacing(fv, &pt);
+
+ /* crashes on XP */
+ hr = IFolderView_GetSelectionMarkedItem(fv, NULL);
}
browser = IShellBrowserImpl_Construct();
ok(pt.x == LOWORD(ret) && pt.y == HIWORD(ret), "got (%d, %d)\n", LOWORD(ret), HIWORD(ret));
}
+ /* IFolderView::GetSelectionMarkedItem */
+if (0)
+{
+ /* crashes on XP */
+ hr = IFolderView_GetSelectionMarkedItem(fv, NULL);
+}
+
+ flush_sequences(sequences, NUM_MSG_SEQUENCES);
+ hr = IFolderView_GetSelectionMarkedItem(fv, &ret);
+ ok(hr == S_OK, "got (0x%08x)\n", hr);
+ ok_sequence(sequences, LISTVIEW_SEQ_INDEX, folderview_getselectionmarked_seq,
+ "IFolderView::GetSelectionMarkedItem", FALSE);
+
IShellBrowser_Release(browser);
IFolderView_Release(fv);
IShellView_Release(view);