2 * Copyright 2011 Jacek Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #include "wshom_private.h"
22 #include "wine/debug.h"
24 WINE_DEFAULT_DEBUG_CHANNEL(wshom
);
26 static HRESULT WINAPI
WshShell3_QueryInterface(IWshShell3
*iface
, REFIID riid
, void **ppv
)
28 if(IsEqualGUID(riid
, &IID_IUnknown
)) {
29 TRACE("(IID_IUnknown %p)\n", ppv
);
31 }else if(IsEqualGUID(riid
, &IID_IDispatch
)) {
32 TRACE("(IID_IDispatch %p)\n", ppv
);
34 }else if(IsEqualGUID(riid
, &IID_IWshShell3
)) {
35 TRACE("(IID_IWshShell3 %p)\n", ppv
);
38 FIXME("Unknown iface %s\n", debugstr_guid(riid
));
43 IUnknown_AddRef((IUnknown
*)*ppv
);
47 static ULONG WINAPI
WshShell3_AddRef(IWshShell3
*iface
)
53 static ULONG WINAPI
WshShell3_Release(IWshShell3
*iface
)
59 static HRESULT WINAPI
WshShell3_GetTypeInfoCount(IWshShell3
*iface
, UINT
*pctinfo
)
61 TRACE("(%p)\n", pctinfo
);
67 static HRESULT WINAPI
WshShell3_GetTypeInfo(IWshShell3
*iface
, UINT iTInfo
, LCID lcid
, ITypeInfo
**ppTInfo
)
69 FIXME("(%u %u %p)\n", iTInfo
, lcid
, ppTInfo
);
73 static HRESULT WINAPI
WshShell3_GetIDsOfNames(IWshShell3
*iface
, REFIID riid
, LPOLESTR
*rgszNames
,
74 UINT cNames
, LCID lcid
, DISPID
*rgDispId
)
76 FIXME("(%s %p %u %u %p)\n", debugstr_guid(riid
), rgszNames
, cNames
, lcid
, rgDispId
);
80 static HRESULT WINAPI
WshShell3_Invoke(IWshShell3
*iface
, DISPID dispIdMember
, REFIID riid
, LCID lcid
,
81 WORD wFlags
, DISPPARAMS
*pDispParams
, VARIANT
*pVarResult
, EXCEPINFO
*pExcepInfo
, UINT
*puArgErr
)
83 FIXME("(%d %s %d %d %p %p %p %p)\n", dispIdMember
, debugstr_guid(riid
),
84 lcid
, wFlags
, pDispParams
, pVarResult
, pExcepInfo
, puArgErr
);
88 static HRESULT WINAPI
WshShell3_get_SpecialFolders(IWshShell3
*iface
, IWshCollection
**out_Folders
)
90 FIXME("(%p)\n", out_Folders
);
94 static HRESULT WINAPI
WshShell3_get_Environment(IWshShell3
*iface
, VARIANT
*Type
, IWshEnvironment
**out_Env
)
96 FIXME("(%p %p)\n", Type
, out_Env
);
100 static HRESULT WINAPI
WshShell3_Run(IWshShell3
*iface
, BSTR Command
, VARIANT
*WindowStyle
, VARIANT
*WaitOnReturn
, int *out_ExitCode
)
102 FIXME("(%p %p %p)\n", WindowStyle
, WaitOnReturn
, out_ExitCode
);
106 static const IWshShell3Vtbl WshShell3Vtbl
= {
107 WshShell3_QueryInterface
,
110 WshShell3_GetTypeInfoCount
,
111 WshShell3_GetTypeInfo
,
112 WshShell3_GetIDsOfNames
,
114 WshShell3_get_SpecialFolders
,
115 WshShell3_get_Environment
,
119 static IWshShell3 WshShell3
= { &WshShell3Vtbl
};
121 HRESULT WINAPI
WshShellFactory_CreateInstance(IClassFactory
*iface
, IUnknown
*outer
, REFIID riid
, void **ppv
)
123 TRACE("(%p %s %p)\n", outer
, debugstr_guid(riid
), ppv
);
125 return IWshShell3_QueryInterface(&WshShell3
, riid
, ppv
);