From: panhui <panhui@uniontech.com> --- dlls/comdlg32/itemdlg.c | 4 ++++ dlls/comdlg32/tests/itemdlg.c | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/dlls/comdlg32/itemdlg.c b/dlls/comdlg32/itemdlg.c index 830d88bb661..c12ae22e1c7 100644 --- a/dlls/comdlg32/itemdlg.c +++ b/dlls/comdlg32/itemdlg.c @@ -3602,6 +3602,10 @@ static HRESULT WINAPI IServiceProvider_fnQueryService(IServiceProvider *iface, hr = IExplorerBrowser_QueryInterface(This->peb, riid, ppv); else if(IsEqualGUID(guidService, &SID_SExplorerBrowserFrame)) hr = IFileDialog2_QueryInterface(&This->IFileDialog2_iface, riid, ppv); + else if((IsEqualIID(riid, &IID_IFolderView) || IsEqualIID(riid, &IID_IFolderView2)) && This->peb) + { + hr = IExplorerBrowser_GetCurrentView(This->peb, riid, ppv); + } else FIXME("Interface %s requested from unknown service %s\n", debugstr_guid(riid), debugstr_guid(guidService)); diff --git a/dlls/comdlg32/tests/itemdlg.c b/dlls/comdlg32/tests/itemdlg.c index e31ce3592c3..e866458b5d9 100644 --- a/dlls/comdlg32/tests/itemdlg.c +++ b/dlls/comdlg32/tests/itemdlg.c @@ -356,6 +356,8 @@ static BOOL test_instantiation(void) IUnknown *punk, *unk2; HRESULT hr; LONG ref; + IFolderView *pfv; + IFolderView2 *pfv2; /* Instantiate FileOpenDialog */ hr = CoCreateInstance(&CLSID_FileOpenDialog, NULL, CLSCTX_INPROC_SERVER, @@ -413,6 +415,12 @@ static BOOL test_instantiation(void) hr = IServiceProvider_QueryService(psp, &IID_IUnknown, &IID_IUnknown, (void**)&punk); ok(hr == E_NOTIMPL || broken(hr == E_FAIL), "got 0x%08lx (expected E_NOTIMPL)\n", hr); if(SUCCEEDED(hr)) IUnknown_Release(punk); + hr = IServiceProvider_QueryService(psp, &IID_IFolderView, &IID_IFolderView, (void**)&pfv); + ok(hr == E_NOTIMPL || broken(hr == E_FAIL), "got 0x%08lx (expected E_NOTIMPL)\n", hr); + if(SUCCEEDED(hr)) IShellBrowser_Release(pfv); + hr = IServiceProvider_QueryService(psp, &IID_IFolderView, &IID_IFolderView2, (void**)&pfv2); + ok(hr == E_NOTIMPL || broken(hr == E_FAIL), "got 0x%08lx (expected E_NOTIMPL)\n", hr); + if(SUCCEEDED(hr)) IShellBrowser_Release(pfv2); IServiceProvider_Release(psp); } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10193