Author: tfaber
Date: Fri Apr 8 08:30:09 2016
New Revision: 71116
URL:
http://svn.reactos.org/svn/reactos?rev=71116&view=rev
Log:
[SHELL32]
- Add stubs for the shell dispatch object, CShell, and its relatives. Patch by Mark
Jansen.
[SHELL32_WINETEST]
- We no longer need to skip test_ParseName and test_Verbs thanks to Mark's work.
CORE-6892
ROSTESTS-209
Added:
trunk/reactos/dll/win32/shell32/CFolder.cpp (with props)
trunk/reactos/dll/win32/shell32/CFolder.h (with props)
trunk/reactos/dll/win32/shell32/CFolderItemVerbs.cpp (with props)
trunk/reactos/dll/win32/shell32/CFolderItemVerbs.h (with props)
trunk/reactos/dll/win32/shell32/CFolderItems.cpp (with props)
trunk/reactos/dll/win32/shell32/CFolderItems.h (with props)
trunk/reactos/dll/win32/shell32/CShell.cpp (with props)
trunk/reactos/dll/win32/shell32/CShell.h (with props)
trunk/reactos/dll/win32/shell32/res/rgs/shell.rgs (with props)
Modified:
trunk/reactos/dll/win32/shell32/CMakeLists.txt
trunk/reactos/dll/win32/shell32/precomp.h
trunk/reactos/dll/win32/shell32/rgs_res.rc
trunk/reactos/dll/win32/shell32/shell32.cpp
trunk/reactos/dll/win32/shell32/shresdef.h
trunk/rostests/winetests/shell32/shelldispatch.c
Added: trunk/reactos/dll/win32/shell32/CFolder.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CFolder.…
==============================================================================
--- trunk/reactos/dll/win32/shell32/CFolder.cpp (added)
+++ trunk/reactos/dll/win32/shell32/CFolder.cpp [iso-8859-1] Fri Apr 8 08:30:09 2016
@@ -0,0 +1,186 @@
+/*
+ * Folder implementation
+ *
+ * Copyright 2015 Mark Jansen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "precomp.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(shell);
+
+
+CFolder::CFolder()
+{
+}
+
+CFolder::~CFolder()
+{
+}
+
+void CFolder::Init(LPITEMIDLIST idlist)
+{
+ m_idlist.Attach(idlist);
+}
+
+// *** IDispatch methods ***
+HRESULT STDMETHODCALLTYPE CFolder::GetTypeInfoCount(UINT *pctinfo)
+{
+ TRACE("(%p, %p)\n", this, pctinfo);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo
**ppTInfo)
+{
+ TRACE("(%p, %lu, %lu, %p)\n", this, iTInfo, lcid, ppTInfo);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT
cNames, LCID lcid, DISPID *rgDispId)
+{
+ TRACE("(%p, %s, %p, %lu, %lu, %p)\n", this, wine_dbgstr_guid(&riid),
rgszNames, cNames, lcid, rgDispId);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid,
WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT
*puArgErr)
+{
+ TRACE("(%p, %lu, %s, %lu, %lu, %p, %p, %p, %p)\n", this, dispIdMember,
wine_dbgstr_guid(&riid), lcid, (DWORD)wFlags,
+ pDispParams, pVarResult, pExcepInfo, puArgErr);
+ return E_NOTIMPL;
+}
+
+
+// *** Folder methods ***
+HRESULT STDMETHODCALLTYPE CFolder::get_Title(BSTR *pbs)
+{
+ TRACE("(%p, %p)\n", this, pbs);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::get_Application(IDispatch **ppid)
+{
+ TRACE("(%p, %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::get_Parent(IDispatch **ppid)
+{
+ TRACE("(%p %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::get_ParentFolder(Folder **ppsf)
+{
+ TRACE("(%p, %p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::Items(FolderItems **ppid)
+{
+ TRACE("(%p, %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::ParseName(BSTR bName, FolderItem **ppid)
+{
+ TRACE("(%p, %s, %p)\n", this, wine_dbgstr_w(bName), ppid);
+
+ CComPtr<IShellFolder> psfDesktop;
+
+ HRESULT hr = SHGetDesktopFolder(&psfDesktop);
+ if (FAILED_UNEXPECTEDLY(hr))
+ return hr;
+
+ CComPtr<IShellFolder> psfCurrent;
+ hr = psfDesktop->BindToObject(m_idlist, NULL, IID_PPV_ARG(IShellFolder,
&psfCurrent));
+ if (FAILED_UNEXPECTEDLY(hr))
+ return hr;
+
+ CComHeapPtr<ITEMIDLIST_RELATIVE> relativePidl;
+ hr = psfCurrent->ParseDisplayName(NULL, NULL, bName, NULL, &relativePidl,
NULL);
+ if (!SUCCEEDED(hr))
+ return S_FALSE;
+
+ CFolderItem* item = new CComObject<CFolderItem>();
+ item->AddRef();
+ item->Init(ILCombine(m_idlist, relativePidl));
+ *ppid = item;
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::NewFolder(BSTR bName, VARIANT vOptions)
+{
+ TRACE("(%p, %s, %s)\n", this, wine_dbgstr_w(bName),
wine_dbgstr_variant(&vOptions));
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::MoveHere(VARIANT vItem, VARIANT vOptions)
+{
+ TRACE("(%p, %s, %s)\n", this, wine_dbgstr_variant(&vItem),
wine_dbgstr_variant(&vOptions));
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::CopyHere(VARIANT vItem, VARIANT vOptions)
+{
+ TRACE("(%p, %s, %s)\n", this, wine_dbgstr_variant(&vItem),
wine_dbgstr_variant(&vOptions));
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::GetDetailsOf(VARIANT vItem, int iColumn, BSTR *pbs)
+{
+ TRACE("(%p, %s, %i, %p)\n", this, wine_dbgstr_variant(&vItem), iColumn,
pbs);
+ return E_NOTIMPL;
+}
+
+
+// *** Folder2 methods ***
+HRESULT STDMETHODCALLTYPE CFolder::get_Self(FolderItem **ppfi)
+{
+ TRACE("(%p, %p)\n", this, ppfi);
+ if (!ppfi)
+ return E_POINTER;
+ CFolderItem* item = new CComObject<CFolderItem>();
+ item->AddRef();
+ item->Init(ILClone(m_idlist));
+ *ppfi = item;
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::get_OfflineStatus(LONG *pul)
+{
+ TRACE("(%p, %p)\n", this, pul);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::Synchronize()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::get_HaveToShowWebViewBarricade(VARIANT_BOOL
*pbHaveToShowWebViewBarricade)
+{
+ TRACE("(%p, %p)\n", this, pbHaveToShowWebViewBarricade);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolder::DismissedWebViewBarricade()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+
Propchange: trunk/reactos/dll/win32/shell32/CFolder.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/dll/win32/shell32/CFolder.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CFolder.…
==============================================================================
--- trunk/reactos/dll/win32/shell32/CFolder.h (added)
+++ trunk/reactos/dll/win32/shell32/CFolder.h [iso-8859-1] Fri Apr 8 08:30:09 2016
@@ -0,0 +1,77 @@
+/*
+ * Folder implementation
+ *
+ * Copyright 2015 Mark Jansen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _FOLDER_H_
+#define _FOLDER_H_
+
+
+class CFolder:
+ public CComCoClass<CFolder>,
+ public CComObjectRootEx<CComMultiThreadModelNoCS>,
+ public Folder2
+{
+private:
+ CComHeapPtr<ITEMIDLIST> m_idlist;
+
+public:
+ CFolder();
+ ~CFolder();
+
+ void Init(LPITEMIDLIST idlist);
+
+ // *** IDispatch methods ***
+ virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT *pctinfo);
+ virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo
**ppTInfo);
+ virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames,
UINT cNames, LCID lcid, DISPID *rgDispId);
+ virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispIdMember, REFIID riid, LCID lcid,
WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT
*puArgErr);
+
+
+ // *** Folder methods ***
+ virtual HRESULT STDMETHODCALLTYPE get_Title(BSTR *pbs);
+ virtual HRESULT STDMETHODCALLTYPE get_Application(IDispatch **ppid);
+ virtual HRESULT STDMETHODCALLTYPE get_Parent(IDispatch **ppid);
+ virtual HRESULT STDMETHODCALLTYPE get_ParentFolder(Folder **ppsf);
+ virtual HRESULT STDMETHODCALLTYPE Items(FolderItems **ppid);
+ virtual HRESULT STDMETHODCALLTYPE ParseName(BSTR bName, FolderItem **ppid);
+ virtual HRESULT STDMETHODCALLTYPE NewFolder(BSTR bName, VARIANT vOptions);
+ virtual HRESULT STDMETHODCALLTYPE MoveHere(VARIANT vItem, VARIANT vOptions);
+ virtual HRESULT STDMETHODCALLTYPE CopyHere(VARIANT vItem, VARIANT vOptions);
+ virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(VARIANT vItem, int iColumn, BSTR
*pbs);
+
+ // *** Folder2 methods ***
+ virtual HRESULT STDMETHODCALLTYPE get_Self(FolderItem **ppfi);
+ virtual HRESULT STDMETHODCALLTYPE get_OfflineStatus(LONG *pul);
+ virtual HRESULT STDMETHODCALLTYPE Synchronize();
+ virtual HRESULT STDMETHODCALLTYPE get_HaveToShowWebViewBarricade(VARIANT_BOOL
*pbHaveToShowWebViewBarricade);
+ virtual HRESULT STDMETHODCALLTYPE DismissedWebViewBarricade();
+
+DECLARE_NOT_AGGREGATABLE(CFolder)
+DECLARE_PROTECT_FINAL_CONSTRUCT()
+
+BEGIN_COM_MAP(CFolder)
+ COM_INTERFACE_ENTRY_IID(IID_Folder2, Folder2)
+ COM_INTERFACE_ENTRY_IID(IID_Folder, Folder)
+ COM_INTERFACE_ENTRY_IID(IID_IDispatch, IDispatch)
+END_COM_MAP()
+
+};
+
+
+#endif
Propchange: trunk/reactos/dll/win32/shell32/CFolder.h
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/dll/win32/shell32/CFolderItemVerbs.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CFolderI…
==============================================================================
--- trunk/reactos/dll/win32/shell32/CFolderItemVerbs.cpp (added)
+++ trunk/reactos/dll/win32/shell32/CFolderItemVerbs.cpp [iso-8859-1] Fri Apr 8 08:30:09
2016
@@ -0,0 +1,181 @@
+/*
+ * FolderItemVerb(s) implementation
+ *
+ * Copyright 2015 Mark Jansen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "precomp.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(shell);
+
+
+CFolderItemVerb::CFolderItemVerb()
+{
+}
+
+CFolderItemVerb::~CFolderItemVerb()
+{
+}
+
+//void CFolderItemVerb::Init(LPITEMIDLIST idlist)
+//{
+// m_idlist.Attach(idlist);
+//}
+
+// *** IDispatch methods ***
+HRESULT STDMETHODCALLTYPE CFolderItemVerb::GetTypeInfoCount(UINT *pctinfo)
+{
+ TRACE("(%p, %p)\n", this, pctinfo);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItemVerb::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo
**ppTInfo)
+{
+ TRACE("(%p, %lu, %lu, %p)\n", this, iTInfo, lcid, ppTInfo);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItemVerb::GetIDsOfNames(REFIID riid, LPOLESTR
*rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
+{
+ TRACE("(%p, %s, %p, %lu, %lu, %p)\n", this, wine_dbgstr_guid(&riid),
rgszNames, cNames, lcid, rgDispId);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItemVerb::Invoke(DISPID dispIdMember, REFIID riid, LCID
lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
+{
+ TRACE("(%p, %lu, %s, %lu, %lu, %p, %p, %p, %p)\n", this, dispIdMember,
wine_dbgstr_guid(&riid), lcid, (DWORD)wFlags,
+ pDispParams, pVarResult, pExcepInfo, puArgErr);
+ return E_NOTIMPL;
+}
+
+// *** FolderItemVerb methods ***
+
+HRESULT STDMETHODCALLTYPE CFolderItemVerb::get_Application(IDispatch **ppid)
+{
+ TRACE("(%p, %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItemVerb::get_Parent(IDispatch **ppid)
+{
+ TRACE("(%p, %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItemVerb::get_Name(BSTR *pbs)
+{
+ TRACE("(%p, %p)\n", this, pbs);
+ if (!pbs)
+ return E_POINTER;
+ // Terminating item:
+ *pbs = SysAllocString(L"");
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItemVerb::DoIt()
+{
+ TRACE("(%p, %p)\n", this);
+ return E_NOTIMPL;
+}
+
+
+
+
+
+
+CFolderItemVerbs::CFolderItemVerbs()
+{
+}
+
+CFolderItemVerbs::~CFolderItemVerbs()
+{
+}
+
+//void CFolderItemVerbs::Init(LPITEMIDLIST idlist)
+//{
+// m_idlist.Attach(idlist);
+//}
+
+// *** IDispatch methods ***
+HRESULT STDMETHODCALLTYPE CFolderItemVerbs::GetTypeInfoCount(UINT *pctinfo)
+{
+ TRACE("(%p, %p)\n", this, pctinfo);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItemVerbs::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo
**ppTInfo)
+{
+ TRACE("(%p, %lu, %lu, %p)\n", this, iTInfo, lcid, ppTInfo);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItemVerbs::GetIDsOfNames(REFIID riid, LPOLESTR
*rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
+{
+ TRACE("(%p, %s, %p, %lu, %lu, %p)\n", this, wine_dbgstr_guid(&riid),
rgszNames, cNames, lcid, rgDispId);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItemVerbs::Invoke(DISPID dispIdMember, REFIID riid, LCID
lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
+{
+ TRACE("(%p, %lu, %s, %lu, %lu, %p, %p, %p, %p)\n", this, dispIdMember,
wine_dbgstr_guid(&riid), lcid, (DWORD)wFlags,
+ pDispParams, pVarResult, pExcepInfo, puArgErr);
+ return E_NOTIMPL;
+}
+
+// *** FolderItemVerbs methods ***
+HRESULT STDMETHODCALLTYPE CFolderItemVerbs::get_Count(LONG *plCount)
+{
+ TRACE("(%p, %p)\n", this, plCount);
+ if (!plCount)
+ return E_POINTER;
+ *plCount = 0;
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItemVerbs::get_Application(IDispatch **ppid)
+{
+ TRACE("(%p, %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItemVerbs::get_Parent(IDispatch **ppid)
+{
+ TRACE("(%p, %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItemVerbs::Item(VARIANT index, FolderItemVerb **ppid)
+{
+ TRACE("(%p, %s, %p)\n", this, wine_dbgstr_variant(&index), ppid);
+ if (!ppid)
+ return E_POINTER;
+
+ /* FIXME! */
+ CFolderItemVerb* verb = new CComObject<CFolderItemVerb>();
+ verb->AddRef();
+ *ppid = verb;
+
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItemVerbs::_NewEnum(IUnknown **ppunk)
+{
+ TRACE("(%p, %p)\n", this, ppunk);
+ return E_NOTIMPL;
+}
+
+
Propchange: trunk/reactos/dll/win32/shell32/CFolderItemVerbs.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/dll/win32/shell32/CFolderItemVerbs.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CFolderI…
==============================================================================
--- trunk/reactos/dll/win32/shell32/CFolderItemVerbs.h (added)
+++ trunk/reactos/dll/win32/shell32/CFolderItemVerbs.h [iso-8859-1] Fri Apr 8 08:30:09
2016
@@ -0,0 +1,97 @@
+/*
+ * FolderItemVerb(s) implementation
+ *
+ * Copyright 2015 Mark Jansen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _FOLDERITEMVERBS_H_
+#define _FOLDERITEMVERBS_H_
+
+class CFolderItemVerb:
+ public CComCoClass<CFolderItemVerb>,
+ public CComObjectRootEx<CComMultiThreadModelNoCS>,
+ public FolderItemVerb
+{
+private:
+
+public:
+ CFolderItemVerb();
+ ~CFolderItemVerb();
+
+ //void Init(LPITEMIDLIST idlist);
+
+
+ // *** IDispatch methods ***
+ virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT *pctinfo);
+ virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo
**ppTInfo);
+ virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames,
UINT cNames, LCID lcid, DISPID *rgDispId);
+ virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispIdMember, REFIID riid, LCID lcid,
WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT
*puArgErr);
+
+ // *** FolderItemVerb methods ***
+ virtual HRESULT STDMETHODCALLTYPE get_Application(IDispatch **ppid);
+ virtual HRESULT STDMETHODCALLTYPE get_Parent(IDispatch **ppid);
+ virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR *pbs);
+ virtual HRESULT STDMETHODCALLTYPE DoIt();
+
+
+DECLARE_NOT_AGGREGATABLE(CFolderItemVerb)
+DECLARE_PROTECT_FINAL_CONSTRUCT()
+
+BEGIN_COM_MAP(CFolderItemVerb)
+ COM_INTERFACE_ENTRY_IID(IID_FolderItemVerb, FolderItemVerb)
+ COM_INTERFACE_ENTRY_IID(IID_IDispatch, IDispatch)
+END_COM_MAP()
+};
+
+
+class CFolderItemVerbs:
+ public CComCoClass<CFolderItemVerbs>,
+ public CComObjectRootEx<CComMultiThreadModelNoCS>,
+ public FolderItemVerbs
+{
+private:
+
+public:
+ CFolderItemVerbs();
+ ~CFolderItemVerbs();
+
+ //void Init(LPITEMIDLIST idlist);
+
+
+ // *** IDispatch methods ***
+ virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT *pctinfo);
+ virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo
**ppTInfo);
+ virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames,
UINT cNames, LCID lcid, DISPID *rgDispId);
+ virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispIdMember, REFIID riid, LCID lcid,
WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT
*puArgErr);
+
+ // *** FolderItemVerbs methods ***
+ virtual HRESULT STDMETHODCALLTYPE get_Count(LONG *plCount);
+ virtual HRESULT STDMETHODCALLTYPE get_Application(IDispatch **ppid);
+ virtual HRESULT STDMETHODCALLTYPE get_Parent(IDispatch **ppid);
+ virtual HRESULT STDMETHODCALLTYPE Item(VARIANT index, FolderItemVerb **ppid);
+ virtual HRESULT STDMETHODCALLTYPE _NewEnum(IUnknown **ppunk);
+
+DECLARE_NOT_AGGREGATABLE(CFolderItemVerbs)
+DECLARE_PROTECT_FINAL_CONSTRUCT()
+
+BEGIN_COM_MAP(CFolderItemVerbs)
+ COM_INTERFACE_ENTRY_IID(IID_FolderItemVerbs, FolderItemVerbs)
+ COM_INTERFACE_ENTRY_IID(IID_IDispatch, IDispatch)
+END_COM_MAP()
+};
+
+#endif
Propchange: trunk/reactos/dll/win32/shell32/CFolderItemVerbs.h
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/dll/win32/shell32/CFolderItems.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CFolderI…
==============================================================================
--- trunk/reactos/dll/win32/shell32/CFolderItems.cpp (added)
+++ trunk/reactos/dll/win32/shell32/CFolderItems.cpp [iso-8859-1] Fri Apr 8 08:30:09
2016
@@ -0,0 +1,250 @@
+/*
+ * FolderItem(s) implementation
+ *
+ * Copyright 2015 Mark Jansen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "precomp.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(shell);
+
+
+CFolderItem::CFolderItem()
+{
+}
+
+CFolderItem::~CFolderItem()
+{
+}
+
+void CFolderItem::Init(LPITEMIDLIST idlist)
+{
+ m_idlist.Attach(idlist);
+}
+
+// *** IDispatch methods ***
+HRESULT STDMETHODCALLTYPE CFolderItem::GetTypeInfoCount(UINT *pctinfo)
+{
+ TRACE("(%p, %p)\n", this, pctinfo);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo
**ppTInfo)
+{
+ TRACE("(%p, %lu, %lu, %p)\n", this, iTInfo, lcid, ppTInfo);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames,
UINT cNames, LCID lcid, DISPID *rgDispId)
+{
+ TRACE("(%p, %s, %p, %lu, %lu, %p)\n", this, wine_dbgstr_guid(&riid),
rgszNames, cNames, lcid, rgDispId);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::Invoke(DISPID dispIdMember, REFIID riid, LCID
lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
+{
+ TRACE("(%p, %lu, %s, %lu, %lu, %p, %p, %p, %p)\n", this, dispIdMember,
wine_dbgstr_guid(&riid), lcid, (DWORD)wFlags,
+ pDispParams, pVarResult, pExcepInfo, puArgErr);
+ return E_NOTIMPL;
+}
+
+// *** FolderItem methods ***
+HRESULT STDMETHODCALLTYPE CFolderItem::get_Application(IDispatch **ppid)
+{
+ TRACE("(%p, %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::get_Parent(IDispatch **ppid)
+{
+ TRACE("(%p, %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::get_Name(BSTR *pbs)
+{
+ TRACE("(%p, %p)\n", this, pbs);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::put_Name(BSTR bs)
+{
+ TRACE("(%p, %s)\n", this, wine_dbgstr_w(bs));
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::get_Path(BSTR *pbs)
+{
+ CComPtr<IShellFolder> psfDesktop;
+
+ HRESULT hr = SHGetDesktopFolder(&psfDesktop);
+ if (!SUCCEEDED(hr))
+ return hr;
+
+ STRRET strret;
+ hr = psfDesktop->GetDisplayNameOf(m_idlist, SHGDN_FORPARSING, &strret);
+ if (FAILED_UNEXPECTEDLY(hr))
+ return hr;
+
+ return StrRetToBSTR(&strret, NULL, pbs);
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::get_GetLink(IDispatch **ppid)
+{
+ TRACE("(%p, %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::get_GetFolder(IDispatch **ppid)
+{
+ TRACE("(%p, %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::get_IsLink(VARIANT_BOOL *pb)
+{
+ TRACE("(%p, %p)\n", this, pb);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::get_IsFolder(VARIANT_BOOL *pb)
+{
+ TRACE("(%p, %p)\n", this, pb);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::get_IsFileSystem(VARIANT_BOOL *pb)
+{
+ TRACE("(%p, %p)\n", this, pb);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::get_IsBrowsable(VARIANT_BOOL *pb)
+{
+ TRACE("(%p, %p)\n", this, pb);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::get_ModifyDate(DATE *pdt)
+{
+ TRACE("(%p, %p)\n", this, pdt);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::put_ModifyDate(DATE dt)
+{
+ TRACE("(%p, %f)\n", this, dt);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::get_Size(LONG *pul)
+{
+ TRACE("(%p, %p)\n", this, pul);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::get_Type(BSTR *pbs)
+{
+ TRACE("(%p, %p)\n", this, pbs);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::Verbs(FolderItemVerbs **ppfic)
+{
+ if(!ppfic)
+ return E_POINTER;
+ CFolderItemVerbs* verbs = new CComObject<CFolderItemVerbs>();
+ verbs->AddRef();
+ *ppfic = verbs;
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItem::InvokeVerb(VARIANT vVerb)
+{
+ TRACE("(%p, %s)\n", this, wine_dbgstr_variant(&vVerb));
+ return E_NOTIMPL;
+}
+
+
+
+
+
+CFolderItems::CFolderItems()
+{
+}
+
+CFolderItems::~CFolderItems()
+{
+}
+
+// *** IDispatch methods ***
+HRESULT STDMETHODCALLTYPE CFolderItems::GetTypeInfoCount(UINT *pctinfo)
+{
+ TRACE("(%p, %p)\n", this, pctinfo);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItems::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo
**ppTInfo)
+{
+ TRACE("(%p, %lu, %lu, %p)\n", this, iTInfo, lcid, ppTInfo);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItems::GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames,
UINT cNames, LCID lcid, DISPID *rgDispId)
+{
+ TRACE("(%p, %s, %p, %lu, %lu, %p)\n", this, wine_dbgstr_guid(&riid),
rgszNames, cNames, lcid, rgDispId);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItems::Invoke(DISPID dispIdMember, REFIID riid, LCID
lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
+{
+ TRACE("(%p, %lu, %s, %lu, %lu, %p, %p, %p, %p)\n", this, dispIdMember,
wine_dbgstr_guid(&riid), lcid, (DWORD)wFlags,
+ pDispParams, pVarResult, pExcepInfo, puArgErr);
+ return E_NOTIMPL;
+}
+
+// *** FolderItems methods ***
+HRESULT STDMETHODCALLTYPE CFolderItems::get_Count(long *plCount)
+{
+ TRACE("(%p, %p)\n", this, plCount);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItems::get_Application(IDispatch **ppid)
+{
+ TRACE("(%p, %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItems::get_Parent(IDispatch **ppid)
+{
+ TRACE("(%p, %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItems::Item(VARIANT index, FolderItem **ppid)
+{
+ TRACE("(%p, %s, %p)\n", this, wine_dbgstr_variant(&index), ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CFolderItems::_NewEnum(IUnknown **ppunk)
+{
+ TRACE("(%p, %p)\n", this, ppunk);
+ return E_NOTIMPL;
+}
+
Propchange: trunk/reactos/dll/win32/shell32/CFolderItems.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/dll/win32/shell32/CFolderItems.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CFolderI…
==============================================================================
--- trunk/reactos/dll/win32/shell32/CFolderItems.h (added)
+++ trunk/reactos/dll/win32/shell32/CFolderItems.h [iso-8859-1] Fri Apr 8 08:30:09 2016
@@ -0,0 +1,108 @@
+/*
+ * FolderItem(s) implementation
+ *
+ * Copyright 2015 Mark Jansen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _FOLDERITEM_H_
+#define _FOLDERITEM_H_
+
+
+class CFolderItem:
+ public CComCoClass<CFolderItem>,
+ public CComObjectRootEx<CComMultiThreadModelNoCS>,
+ public FolderItem
+{
+private:
+ CComHeapPtr<ITEMIDLIST> m_idlist;
+
+public:
+ CFolderItem();
+ ~CFolderItem();
+
+ void Init(LPITEMIDLIST idlist);
+
+
+ // *** IDispatch methods ***
+ virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT *pctinfo);
+ virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo
**ppTInfo);
+ virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames,
UINT cNames, LCID lcid, DISPID *rgDispId);
+ virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispIdMember, REFIID riid, LCID lcid,
WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT
*puArgErr);
+
+ // *** FolderItem methods ***
+ virtual HRESULT STDMETHODCALLTYPE get_Application(IDispatch **ppid);
+ virtual HRESULT STDMETHODCALLTYPE get_Parent(IDispatch **ppid);
+ virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR *pbs);
+ virtual HRESULT STDMETHODCALLTYPE put_Name(BSTR bs);
+ virtual HRESULT STDMETHODCALLTYPE get_Path(BSTR *pbs);
+ virtual HRESULT STDMETHODCALLTYPE get_GetLink(IDispatch **ppid);
+ virtual HRESULT STDMETHODCALLTYPE get_GetFolder(IDispatch **ppid);
+ virtual HRESULT STDMETHODCALLTYPE get_IsLink(VARIANT_BOOL *pb);
+ virtual HRESULT STDMETHODCALLTYPE get_IsFolder(VARIANT_BOOL *pb);
+ virtual HRESULT STDMETHODCALLTYPE get_IsFileSystem(VARIANT_BOOL *pb);
+ virtual HRESULT STDMETHODCALLTYPE get_IsBrowsable(VARIANT_BOOL *pb);
+ virtual HRESULT STDMETHODCALLTYPE get_ModifyDate(DATE *pdt);
+ virtual HRESULT STDMETHODCALLTYPE put_ModifyDate(DATE dt);
+ virtual HRESULT STDMETHODCALLTYPE get_Size(LONG *pul);
+ virtual HRESULT STDMETHODCALLTYPE get_Type(BSTR *pbs);
+ virtual HRESULT STDMETHODCALLTYPE Verbs(FolderItemVerbs **ppfic);
+ virtual HRESULT STDMETHODCALLTYPE InvokeVerb(VARIANT vVerb);
+
+
+DECLARE_NOT_AGGREGATABLE(CFolderItem)
+DECLARE_PROTECT_FINAL_CONSTRUCT()
+
+BEGIN_COM_MAP(CFolderItem)
+ COM_INTERFACE_ENTRY_IID(IID_FolderItem, FolderItem)
+ COM_INTERFACE_ENTRY_IID(IID_IDispatch, IDispatch)
+END_COM_MAP()
+};
+
+class CFolderItems:
+ public CComCoClass<CFolderItems>,
+ public CComObjectRootEx<CComMultiThreadModelNoCS>,
+ public FolderItems
+{
+private:
+
+public:
+ CFolderItems();
+ ~CFolderItems();
+
+ // *** IDispatch methods ***
+ virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT *pctinfo);
+ virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo
**ppTInfo);
+ virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames,
UINT cNames, LCID lcid, DISPID *rgDispId);
+ virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispIdMember, REFIID riid, LCID lcid,
WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT
*puArgErr);
+
+ // *** FolderItems methods ***
+ virtual HRESULT STDMETHODCALLTYPE get_Count(long *plCount);
+ virtual HRESULT STDMETHODCALLTYPE get_Application(IDispatch **ppid);
+ virtual HRESULT STDMETHODCALLTYPE get_Parent(IDispatch **ppid);
+ virtual HRESULT STDMETHODCALLTYPE Item(VARIANT index, FolderItem **ppid);
+ virtual HRESULT STDMETHODCALLTYPE _NewEnum(IUnknown **ppunk);
+
+DECLARE_NOT_AGGREGATABLE(CFolderItems)
+DECLARE_PROTECT_FINAL_CONSTRUCT()
+
+BEGIN_COM_MAP(CFolderItems)
+ COM_INTERFACE_ENTRY_IID(IID_FolderItems, FolderItems)
+ COM_INTERFACE_ENTRY_IID(IID_IDispatch, IDispatch)
+END_COM_MAP()
+};
+
+#endif
Propchange: trunk/reactos/dll/win32/shell32/CFolderItems.h
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/reactos/dll/win32/shell32/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CMakeLis…
==============================================================================
--- trunk/reactos/dll/win32/shell32/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/CMakeLists.txt [iso-8859-1] Fri Apr 8 08:30:09 2016
@@ -58,6 +58,10 @@
CDefaultContextMenu.cpp
COpenWithMenu.cpp
CNewMenu.cpp
+ CShell.cpp
+ CFolder.cpp
+ CFolderItems.cpp
+ CFolderItemVerbs.cpp
precomp.h)
add_library(shell32 SHARED
@@ -83,7 +87,7 @@
set_module_type(shell32 win32dll UNICODE)
target_link_libraries(shell32 shellmenu shelldesktop atlnew wine uuid recyclebin)
-add_delay_importlibs(shell32 uxtheme ole32 userenv version fmifs shdocvw comctl32
browseui shlwapi comdlg32)
+add_delay_importlibs(shell32 uxtheme ole32 oleaut32 userenv version fmifs shdocvw
comctl32 browseui shlwapi comdlg32)
add_importlibs(shell32 advapi32 gdi32 user32 powrprof devmgr winspool winmm mpr msvcrt
kernel32 ntdll)
add_pch(shell32 precomp.h SOURCE)
add_cd_file(TARGET shell32 DESTINATION reactos/system32 FOR all)
Added: trunk/reactos/dll/win32/shell32/CShell.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CShell.c…
==============================================================================
--- trunk/reactos/dll/win32/shell32/CShell.cpp (added)
+++ trunk/reactos/dll/win32/shell32/CShell.cpp [iso-8859-1] Fri Apr 8 08:30:09 2016
@@ -0,0 +1,344 @@
+/*
+ * IShellDispatch implementation
+ *
+ * Copyright 2015 Mark Jansen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "precomp.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(shell);
+
+
+CShell::CShell()
+{
+}
+
+CShell::~CShell()
+{
+}
+
+
+// *** IDispatch methods ***
+HRESULT STDMETHODCALLTYPE CShell::GetTypeInfoCount(UINT *pctinfo)
+{
+ TRACE("(%p, %p)\n", this, pctinfo);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo
**ppTInfo)
+{
+ TRACE("(%p, %lu, %lu, %p)\n", this, iTInfo, lcid, ppTInfo);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT
cNames, LCID lcid, DISPID *rgDispId)
+{
+ TRACE("(%p, %s, %p, %lu, %lu, %p)\n", this, wine_dbgstr_guid(&riid),
rgszNames, cNames, lcid, rgDispId);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid,
WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT
*puArgErr)
+{
+ TRACE("(%p, %lu, %s, %lu, %lu, %p, %p, %p, %p)\n", this, dispIdMember,
wine_dbgstr_guid(&riid), lcid, (DWORD)wFlags,
+ pDispParams, pVarResult, pExcepInfo, puArgErr);
+ return E_NOTIMPL;
+}
+
+
+// *** IShellDispatch methods ***
+HRESULT STDMETHODCALLTYPE CShell::get_Application(IDispatch **ppid)
+{
+ TRACE("(%p, %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::get_Parent(IDispatch **ppid)
+{
+ TRACE("(%p, %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT VariantToIdlist(VARIANT* var, LPITEMIDLIST* idlist)
+{
+ HRESULT hr = S_FALSE;
+ if(V_VT(var) == VT_I4)
+ {
+ hr = SHGetSpecialFolderLocation(NULL, V_I4(var), idlist);
+ }
+ else if(V_VT(var) == VT_BSTR)
+ {
+ hr = SHILCreateFromPathW(V_BSTR(var), idlist, NULL);
+ }
+ return hr;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::NameSpace(VARIANT vDir, Folder **ppsdf)
+{
+ TRACE("(%p, %s, %p)\n", this, debugstr_variant(&vDir), ppsdf);
+ if (!ppsdf)
+ return E_POINTER;
+ *ppsdf = NULL;
+ LPITEMIDLIST idlist = NULL;
+ HRESULT hr = VariantToIdlist(&vDir, &idlist);
+ if (!SUCCEEDED(hr) || !idlist)
+ return S_FALSE;
+ CFolder* fld = new CComObject<CFolder>();
+ fld->Init(idlist);
+ *ppsdf = fld;
+ fld->AddRef();
+ return hr;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::BrowseForFolder(LONG Hwnd, BSTR Title, LONG Options,
VARIANT RootFolder, Folder **ppsdf)
+{
+ TRACE("(%p, %lu, %ls, %lu, %s, %p)\n", this, Hwnd, Title, Options,
debugstr_variant(&RootFolder), ppsdf);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::Windows(IDispatch **ppid)
+{
+ TRACE("(%p, %p)\n", this, ppid);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::Open(VARIANT vDir)
+{
+ TRACE("(%p, %s)\n", this, debugstr_variant(&vDir));
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::Explore(VARIANT vDir)
+{
+ TRACE("(%p, %s)\n", this, debugstr_variant(&vDir));
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::MinimizeAll()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::UndoMinimizeALL()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::FileRun()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::CascadeWindows()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::TileVertically()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::TileHorizontally()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::ShutdownWindows()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::Suspend()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::EjectPC()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::SetTime()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::TrayProperties()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::Help()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::FindFiles()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::FindComputer()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::RefreshMenu()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::ControlPanelItem(BSTR szDir)
+{
+ TRACE("(%p, %ls)\n", this, szDir);
+ return E_NOTIMPL;
+}
+
+
+// *** IShellDispatch2 methods ***
+HRESULT STDMETHODCALLTYPE CShell::IsRestricted(BSTR group, BSTR restriction, LONG
*value)
+{
+ TRACE("(%p, %ls, %ls, %p)\n", this, group, restriction, value);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::ShellExecute(BSTR file, VARIANT args, VARIANT dir,
VARIANT op, VARIANT show)
+{
+ TRACE("(%p, %ls, %s, %s, %s, %s)\n", this, file,
debugstr_variant(&args), debugstr_variant(&dir), debugstr_variant(&op),
debugstr_variant(&show));
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::FindPrinter(BSTR name, BSTR location, BSTR model)
+{
+ TRACE("(%p, %ls, %ls, %ls)\n", this, name, location, model);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::GetSystemInformation(BSTR name, VARIANT *ret)
+{
+ TRACE("(%p, %ls, %p)\n", this, name, ret);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::ServiceStart(BSTR service, VARIANT persistent, VARIANT
*ret)
+{
+ TRACE("(%p, %ls, %s, %p)\n", this, service,
wine_dbgstr_variant(&persistent), ret);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::ServiceStop(BSTR service, VARIANT persistent, VARIANT
*ret)
+{
+ TRACE("(%p, %ls, %s, %p)\n", this, service,
wine_dbgstr_variant(&persistent), ret);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::IsServiceRunning(BSTR service, VARIANT *running)
+{
+ TRACE("(%p, %ls, %p)\n", this, service, running);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::CanStartStopService(BSTR service, VARIANT *ret)
+{
+ TRACE("(%p, %ls, %p)\n", this, service, ret);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::ShowBrowserBar(BSTR clsid, VARIANT show, VARIANT *ret)
+{
+ TRACE("(%p, %ls, %s, %p)\n", this, clsid, wine_dbgstr_variant(&show),
ret);
+ return E_NOTIMPL;
+}
+
+
+// *** IShellDispatch3 methods ***
+HRESULT STDMETHODCALLTYPE CShell::AddToRecent(VARIANT file, BSTR category)
+{
+ TRACE("(%p, %s, %ls)\n", this, wine_dbgstr_variant(&file), category);
+ return E_NOTIMPL;
+}
+
+
+// *** IShellDispatch4 methods ***
+HRESULT STDMETHODCALLTYPE CShell::WindowsSecurity()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::ToggleDesktop()
+{
+ TRACE("(%p)\n", this);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::ExplorerPolicy(BSTR policy, VARIANT *value)
+{
+ TRACE("(%p, %ls, %p)\n", this, policy, value);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::GetSetting(LONG setting, VARIANT_BOOL *result)
+{
+ TRACE("(%p, %lu, %p)\n", this, setting, result);
+ return E_NOTIMPL;
+}
+
+
+// *** IObjectSafety methods ***
+HRESULT STDMETHODCALLTYPE CShell::GetInterfaceSafetyOptions(REFIID riid, DWORD
*pdwSupportedOptions, DWORD *pdwEnabledOptions)
+{
+ TRACE("(%p, %s, %p, %p)\n", this, wine_dbgstr_guid(&riid),
pdwSupportedOptions, pdwEnabledOptions);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::SetInterfaceSafetyOptions(REFIID riid, DWORD
dwOptionSetMask, DWORD dwEnabledOptions)
+{
+ TRACE("(%p, %s, %lu, %lu)\n", this, wine_dbgstr_guid(&riid),
dwOptionSetMask, dwEnabledOptions);
+ return E_NOTIMPL;
+}
+
+
+// *** IObjectWithSite methods ***
+HRESULT STDMETHODCALLTYPE CShell::SetSite(IUnknown *pUnkSite)
+{
+ TRACE("(%p, %p)\n", this, pUnkSite);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CShell::GetSite(REFIID riid, PVOID *ppvSite)
+{
+ TRACE("(%p, %s, %p)\n", this, wine_dbgstr_guid(&riid), ppvSite);
+ return E_NOTIMPL;
+}
+
+
Propchange: trunk/reactos/dll/win32/shell32/CShell.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/dll/win32/shell32/CShell.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CShell.h…
==============================================================================
--- trunk/reactos/dll/win32/shell32/CShell.h (added)
+++ trunk/reactos/dll/win32/shell32/CShell.h [iso-8859-1] Fri Apr 8 08:30:09 2016
@@ -0,0 +1,115 @@
+/*
+ * IShellDispatch implementation
+ *
+ * Copyright 2015 Mark Jansen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _SHELL_H_
+#define _SHELL_H_
+
+#undef ShellExecute
+
+class CShell:
+ public CComCoClass<CShell, &CLSID_Shell>,
+ public CComObjectRootEx<CComMultiThreadModelNoCS>,
+ public IShellDispatch4,
+ public IObjectSafety,
+ public IObjectWithSite
+{
+private:
+
+public:
+ CShell();
+ ~CShell();
+
+ // *** IDispatch methods ***
+ virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT *pctinfo);
+ virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo
**ppTInfo);
+ virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames,
UINT cNames, LCID lcid, DISPID *rgDispId);
+ virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispIdMember, REFIID riid, LCID lcid,
WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT
*puArgErr);
+
+ // *** IShellDispatch methods ***
+ virtual HRESULT STDMETHODCALLTYPE get_Application(IDispatch **ppid);
+ virtual HRESULT STDMETHODCALLTYPE get_Parent(IDispatch **ppid);
+ virtual HRESULT STDMETHODCALLTYPE NameSpace(VARIANT vDir, Folder **ppsdf);
+ virtual HRESULT STDMETHODCALLTYPE BrowseForFolder(LONG Hwnd, BSTR Title, LONG
Options, VARIANT RootFolder, Folder **ppsdf);
+ virtual HRESULT STDMETHODCALLTYPE Windows(IDispatch **ppid);
+ virtual HRESULT STDMETHODCALLTYPE Open(VARIANT vDir);
+ virtual HRESULT STDMETHODCALLTYPE Explore(VARIANT vDir);
+ virtual HRESULT STDMETHODCALLTYPE MinimizeAll();
+ virtual HRESULT STDMETHODCALLTYPE UndoMinimizeALL();
+ virtual HRESULT STDMETHODCALLTYPE FileRun();
+ virtual HRESULT STDMETHODCALLTYPE CascadeWindows();
+ virtual HRESULT STDMETHODCALLTYPE TileVertically();
+ virtual HRESULT STDMETHODCALLTYPE TileHorizontally();
+ virtual HRESULT STDMETHODCALLTYPE ShutdownWindows();
+ virtual HRESULT STDMETHODCALLTYPE Suspend();
+ virtual HRESULT STDMETHODCALLTYPE EjectPC();
+ virtual HRESULT STDMETHODCALLTYPE SetTime();
+ virtual HRESULT STDMETHODCALLTYPE TrayProperties();
+ virtual HRESULT STDMETHODCALLTYPE Help();
+ virtual HRESULT STDMETHODCALLTYPE FindFiles();
+ virtual HRESULT STDMETHODCALLTYPE FindComputer();
+ virtual HRESULT STDMETHODCALLTYPE RefreshMenu();
+ virtual HRESULT STDMETHODCALLTYPE ControlPanelItem(BSTR szDir);
+
+ // *** IShellDispatch2 methods ***
+ virtual HRESULT STDMETHODCALLTYPE IsRestricted(BSTR group, BSTR restriction, LONG
*value);
+ virtual HRESULT STDMETHODCALLTYPE ShellExecute(BSTR file, VARIANT args, VARIANT dir,
VARIANT op, VARIANT show);
+ virtual HRESULT STDMETHODCALLTYPE FindPrinter(BSTR name, BSTR location, BSTR model);
+ virtual HRESULT STDMETHODCALLTYPE GetSystemInformation(BSTR name, VARIANT *ret);
+ virtual HRESULT STDMETHODCALLTYPE ServiceStart(BSTR service, VARIANT persistent,
VARIANT *ret);
+ virtual HRESULT STDMETHODCALLTYPE ServiceStop(BSTR service, VARIANT persistent,
VARIANT *ret);
+ virtual HRESULT STDMETHODCALLTYPE IsServiceRunning(BSTR service, VARIANT *running);
+ virtual HRESULT STDMETHODCALLTYPE CanStartStopService(BSTR service, VARIANT *ret);
+ virtual HRESULT STDMETHODCALLTYPE ShowBrowserBar(BSTR clsid, VARIANT show, VARIANT
*ret);
+
+ // *** IShellDispatch3 methods ***
+ virtual HRESULT STDMETHODCALLTYPE AddToRecent(VARIANT file, BSTR category);
+
+ // *** IShellDispatch4 methods ***
+ virtual HRESULT STDMETHODCALLTYPE WindowsSecurity();
+ virtual HRESULT STDMETHODCALLTYPE ToggleDesktop();
+ virtual HRESULT STDMETHODCALLTYPE ExplorerPolicy(BSTR policy, VARIANT *value);
+ virtual HRESULT STDMETHODCALLTYPE GetSetting(LONG setting, VARIANT_BOOL *result);
+
+ // *** IObjectSafety methods ***
+ virtual HRESULT STDMETHODCALLTYPE GetInterfaceSafetyOptions(REFIID riid, DWORD
*pdwSupportedOptions, DWORD *pdwEnabledOptions);
+ virtual HRESULT STDMETHODCALLTYPE SetInterfaceSafetyOptions(REFIID riid, DWORD
dwOptionSetMask, DWORD dwEnabledOptions);
+
+ // *** IObjectWithSite methods ***
+ virtual HRESULT STDMETHODCALLTYPE SetSite(IUnknown *pUnkSite);
+ virtual HRESULT STDMETHODCALLTYPE GetSite(REFIID riid, PVOID *ppvSite);
+
+
+DECLARE_REGISTRY_RESOURCEID(IDR_SHELL)
+DECLARE_NOT_AGGREGATABLE(CShell)
+
+DECLARE_PROTECT_FINAL_CONSTRUCT()
+
+BEGIN_COM_MAP(CShell)
+ COM_INTERFACE_ENTRY_IID(IID_IShellDispatch4, IShellDispatch4)
+ COM_INTERFACE_ENTRY_IID(IID_IShellDispatch3, IShellDispatch3)
+ COM_INTERFACE_ENTRY_IID(IID_IShellDispatch2, IShellDispatch2)
+ COM_INTERFACE_ENTRY_IID(IID_IShellDispatch, IShellDispatch)
+ COM_INTERFACE_ENTRY_IID(IID_IDispatch, IDispatch)
+ COM_INTERFACE_ENTRY_IID(IID_IObjectSafety, IObjectSafety)
+ COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite)
+END_COM_MAP()
+};
+
+#endif /* _SHELL_H_ */
Propchange: trunk/reactos/dll/win32/shell32/CShell.h
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/reactos/dll/win32/shell32/precomp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/precomp.…
==============================================================================
--- trunk/reactos/dll/win32/shell32/precomp.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/precomp.h [iso-8859-1] Fri Apr 8 08:30:09 2016
@@ -30,6 +30,7 @@
#include <atlwin.h>
#include <powrprof.h>
#include <winnetwk.h>
+#include <objsafe.h>
#include <comctl32_undoc.h>
#include <shlguid_undoc.h>
@@ -49,6 +50,10 @@
#include "shfldr.h"
#include "CShellItem.h"
#include "CShellLink.h"
+#include "CFolderItemVerbs.h"
+#include "CFolderItems.h"
+#include "CFolder.h"
+#include "CShell.h"
#include "CDropTargetHelper.h"
#include "folders/CFSFolder.h"
#include "folders/CDrivesFolder.h"
Added: trunk/reactos/dll/win32/shell32/res/rgs/shell.rgs
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/res/rgs/…
==============================================================================
--- trunk/reactos/dll/win32/shell32/res/rgs/shell.rgs (added)
+++ trunk/reactos/dll/win32/shell32/res/rgs/shell.rgs [iso-8859-1] Fri Apr 8 08:30:09
2016
@@ -0,0 +1,13 @@
+HKCR
+{
+ NoRemove CLSID
+ {
+ ForceRemove {13709620-C279-11CE-A49E-444553540000} = s 'Shell Automation
Service'
+ {
+ InprocServer32 = s '%MODULE%'
+ {
+ val ThreadingModel = s 'Apartment'
+ }
+ }
+ }
+}
Propchange: trunk/reactos/dll/win32/shell32/res/rgs/shell.rgs
------------------------------------------------------------------------------
svn:eol-style = CRLF
Modified: trunk/reactos/dll/win32/shell32/rgs_res.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/rgs_res.…
==============================================================================
--- trunk/reactos/dll/win32/shell32/rgs_res.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/rgs_res.rc [iso-8859-1] Fri Apr 8 08:30:09 2016
@@ -26,3 +26,4 @@
IDR_EXEDROPHANDLER REGISTRY "res/rgs/exedrophandler.rgs"
IDR_MERGEDFOLDER REGISTRY "res/rgs/mergedfolder.rgs"
IDR_REBARBANDSITE REGISTRY "res/rgs/rebarbandsite.rgs"
+IDR_SHELL REGISTRY "res/rgs/shell.rgs"
Modified: trunk/reactos/dll/win32/shell32/shell32.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shell32.…
==============================================================================
--- trunk/reactos/dll/win32/shell32/shell32.cpp [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/shell32.cpp [iso-8859-1] Fri Apr 8 08:30:09 2016
@@ -196,6 +196,7 @@
OBJECT_ENTRY(CLSID_ShellDesktop, CDesktopFolder)
OBJECT_ENTRY(CLSID_ShellItem, CShellItem)
OBJECT_ENTRY(CLSID_ShellLink, CShellLink)
+ OBJECT_ENTRY(CLSID_Shell, CShell)
OBJECT_ENTRY(CLSID_DragDropHelper, CDropTargetHelper)
OBJECT_ENTRY(CLSID_ControlPanel, CControlPanelFolder)
OBJECT_ENTRY(CLSID_MyDocuments, CMyDocsFolder)
Modified: trunk/reactos/dll/win32/shell32/shresdef.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shresdef…
==============================================================================
--- trunk/reactos/dll/win32/shell32/shresdef.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/shresdef.h [iso-8859-1] Fri Apr 8 08:30:09 2016
@@ -649,3 +649,4 @@
#define IDR_QUERYASSOCIATIONS 152
#define IDR_MERGEDFOLDER 153
#define IDR_REBARBANDSITE 154
+#define IDR_SHELL 155
Modified: trunk/rostests/winetests/shell32/shelldispatch.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/shell32/shelldi…
==============================================================================
--- trunk/rostests/winetests/shell32/shelldispatch.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/shell32/shelldispatch.c [iso-8859-1] Fri Apr 8 08:30:09
2016
@@ -880,16 +880,19 @@
init_function_pointers();
test_namespace();
test_service();
-
+#ifdef __REACTOS__
if (!winetest_interactive)
- skip("ROSTESTS-209: Skipping test_ShellFolderViewDual(),
test_ShellWindows(), test_ParseName() and test_Verbs().\n");
+ skip("ROSTESTS-209: Skipping test_ShellFolderViewDual() and
test_ShellWindows().\n");
else
{
- test_ShellFolderViewDual();
- test_ShellWindows();
- test_ParseName();
- test_Verbs();
- }
+#endif
+ test_ShellFolderViewDual();
+ test_ShellWindows();
+#ifdef __REACTOS__
+ }
+#endif
+ test_ParseName();
+ test_Verbs();
test_ShellExecute();