/************************************************************************** * ISF_ControlPanel_fnQueryInterface * * NOTES supports not IPersist/IPersistFolder */ static HRESULT WINAPI ISF_ControlPanel_fnQueryInterface(IShellFolder2 * iface, REFIID riid, LPVOID * ppvObject) { ICPanelImpl *This = (ICPanelImpl *)iface; TRACE("(%p)->(%s,%p)\n", This, shdebugstr_guid(riid), ppvObject); *ppvObject = NULL; if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IShellFolder) || IsEqualIID(riid, &IID_IShellFolder2)) *ppvObject = This; else if (IsEqualIID(riid, &IID_IPersist) || IsEqualIID(riid, &IID_IPersistFolder) || IsEqualIID(riid, &IID_IPersistFolder2)) *ppvObject = _IPersistFolder2_(This); else if (IsEqualIID(riid, &IID_IShellExecuteHookW)) *ppvObject = _IShellExecuteHookW_(This); else if (IsEqualIID(riid, &IID_IShellExecuteHookA)) *ppvObject = _IShellExecuteHookA_(This); if (*ppvObject) { IUnknown_AddRef((IUnknown *)(*ppvObject)); TRACE("-- Interface:(%p)->(%p)\n", ppvObject, *ppvObject); return S_OK; } TRACE("-- Interface: E_NOINTERFACE\n"); return E_NOINTERFACE; }
/************************************************************************** * ISF_Printers_fnQueryInterface * * NOTE does not support IPersist/IPersistFolder */ static HRESULT WINAPI ISF_Printers_fnQueryInterface( IShellFolder2 * iface, REFIID riid, LPVOID * ppvObj) { IGenericSFImpl *This = (IGenericSFImpl *)iface; TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj); *ppvObj = NULL; if (IsEqualIID (riid, &IID_IUnknown) || IsEqualIID (riid, &IID_IShellFolder) || IsEqualIID (riid, &IID_IShellFolder2)) { *ppvObj = _IShellFolder_(This); } else if (IsEqualIID (riid, &IID_IPersist) || IsEqualIID (riid, &IID_IPersistFolder) || IsEqualIID (riid, &IID_IPersistFolder2)) { *ppvObj = _IPersistFolder2_ (This); } if (*ppvObj) { IUnknown_AddRef ((IUnknown *) (*ppvObj)); TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj); return S_OK; } TRACE ("-- Interface: E_NOINTERFACE\n"); return E_NOINTERFACE; }