shell32: Support IShellView in ::CreateViewObject() for printers folder.
authorNikolay Sivov <nsivov@codeweavers.com>
Fri, 16 Apr 2010 10:35:43 +0000 (14:35 +0400)
committerAlexandre Julliard <julliard@winehq.org>
Fri, 16 Apr 2010 14:24:47 +0000 (16:24 +0200)
dlls/shell32/shfldr_printers.c

index 4c48a1058a2ca75ea213b928978dc7503c89a2e1..77e2439ee930de84a8b8e02748631b862d284bcc 100644 (file)
@@ -156,8 +156,9 @@ static HRESULT WINAPI IShellFolder_Printers_fnCreateViewObject(IShellFolder2 *if
                HWND hwndOwner, REFIID riid, LPVOID *ppvOut)
 {
     IPrintersFolderImpl *This = (IPrintersFolderImpl *)iface;
+    HRESULT hr = E_NOTIMPL;
 
-    FIXME("(%p)->(hwnd=%p,%s,%p) stub\n", This,
+    TRACE("(%p)->(hwnd=%p,%s,%p)\n", This,
           hwndOwner, shdebugstr_guid (riid), ppvOut);
 
     if (!ppvOut)
@@ -165,7 +166,19 @@ static HRESULT WINAPI IShellFolder_Printers_fnCreateViewObject(IShellFolder2 *if
 
     *ppvOut = NULL;
 
-    return E_NOTIMPL;
+    if (IsEqualIID (riid, &IID_IShellView))
+    {
+        IShellView *pShellView = IShellView_Constructor ((IShellFolder *) iface);
+        if (pShellView)
+        {
+            hr = IShellView_QueryInterface (pShellView, riid, ppvOut);
+            IShellView_Release (pShellView);
+        }
+    }
+    else
+        WARN("unsupported interface %s\n", shdebugstr_guid (riid));
+
+    return hr;
 }
 
 static HRESULT WINAPI IShellFolder_Printers_fnGetAttributesOf (IShellFolder2 * iface,