scrrun: Implement Clone() for folder collection.

This commit is contained in:
Nikolay Sivov 2014-01-08 12:37:17 +04:00 committed by Alexandre Julliard
parent c1b7a075ca
commit 844aa7959e
2 changed files with 4 additions and 6 deletions

View file

@ -144,6 +144,7 @@ static inline HRESULT create_error(DWORD err)
static HRESULT create_folder(const WCHAR*, IFolder**); static HRESULT create_folder(const WCHAR*, IFolder**);
static HRESULT create_file(BSTR, IFile**); static HRESULT create_file(BSTR, IFile**);
static HRESULT create_foldercoll_enum(struct foldercollection*, IUnknown**);
static inline BOOL is_dir_data(const WIN32_FIND_DATAW *data) static inline BOOL is_dir_data(const WIN32_FIND_DATAW *data)
{ {
@ -569,8 +570,8 @@ static HRESULT WINAPI foldercoll_enumvariant_Reset(IEnumVARIANT *iface)
static HRESULT WINAPI foldercoll_enumvariant_Clone(IEnumVARIANT *iface, IEnumVARIANT **pclone) static HRESULT WINAPI foldercoll_enumvariant_Clone(IEnumVARIANT *iface, IEnumVARIANT **pclone)
{ {
struct enumvariant *This = impl_from_IEnumVARIANT(iface); struct enumvariant *This = impl_from_IEnumVARIANT(iface);
FIXME("(%p)->(%p): stub\n", This, pclone); TRACE("(%p)->(%p)\n", This, pclone);
return E_NOTIMPL; return create_foldercoll_enum(This->data.u.foldercoll.coll, (IUnknown**)pclone);
} }
static const IEnumVARIANTVtbl foldercollenumvariantvtbl = { static const IEnumVARIANTVtbl foldercollenumvariantvtbl = {
@ -583,7 +584,7 @@ static const IEnumVARIANTVtbl foldercollenumvariantvtbl = {
foldercoll_enumvariant_Clone foldercoll_enumvariant_Clone
}; };
static HRESULT create_foldercoll_enum(struct foldercollection *collection, IUnknown **newenum) HRESULT create_foldercoll_enum(struct foldercollection *collection, IUnknown **newenum)
{ {
struct enumvariant *This; struct enumvariant *This;

View file

@ -863,12 +863,9 @@ static void test_FolderCollection(void)
/* clone enumerator */ /* clone enumerator */
hr = IEnumVARIANT_Clone(enumvar, &clone); hr = IEnumVARIANT_Clone(enumvar, &clone);
todo_wine
ok(hr == S_OK, "got 0x%08x\n", hr); ok(hr == S_OK, "got 0x%08x\n", hr);
if (hr == S_OK) {
ok(clone != enumvar, "got %p, %p\n", enumvar, clone); ok(clone != enumvar, "got %p, %p\n", enumvar, clone);
IEnumVARIANT_Release(clone); IEnumVARIANT_Release(clone);
}
hr = IEnumVARIANT_Reset(enumvar); hr = IEnumVARIANT_Reset(enumvar);
ok(hr == S_OK, "got 0x%08x\n", hr); ok(hr == S_OK, "got 0x%08x\n", hr);