Nikolay Sivov : wshom.ocx: Fix IWshShell3 definition.
Alexandre Julliard
julliard at winehq.org
Fri Dec 30 10:27:05 CST 2011
Module: wine
Branch: master
Commit: bf0e3a58517147d8711a1a757fe4dcd2d40a068c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bf0e3a58517147d8711a1a757fe4dcd2d40a068c
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Fri Dec 30 13:40:13 2011 +0300
wshom.ocx: Fix IWshShell3 definition.
---
dlls/wshom.ocx/shell.c | 72 +++++++++++++++++-
dlls/wshom.ocx/wshom.idl | 184 +++++++++++++++++++++++++++++++++++++++++++---
2 files changed, 241 insertions(+), 15 deletions(-)
diff --git a/dlls/wshom.ocx/shell.c b/dlls/wshom.ocx/shell.c
index 68f14b8..857a48d 100644
--- a/dlls/wshom.ocx/shell.c
+++ b/dlls/wshom.ocx/shell.c
@@ -61,7 +61,6 @@ static ULONG WINAPI WshShell3_Release(IWshShell3 *iface)
static HRESULT WINAPI WshShell3_GetTypeInfoCount(IWshShell3 *iface, UINT *pctinfo)
{
TRACE("(%p)\n", pctinfo);
-
*pctinfo = 1;
return S_OK;
}
@@ -112,19 +111,73 @@ static HRESULT WINAPI WshShell3_Invoke(IWshShell3 *iface, DISPID dispIdMember, R
static HRESULT WINAPI WshShell3_get_SpecialFolders(IWshShell3 *iface, IWshCollection **out_Folders)
{
- FIXME("(%p)\n", out_Folders);
+ FIXME("(%p): stub\n", out_Folders);
return E_NOTIMPL;
}
static HRESULT WINAPI WshShell3_get_Environment(IWshShell3 *iface, VARIANT *Type, IWshEnvironment **out_Env)
{
- FIXME("(%p %p)\n", Type, out_Env);
+ FIXME("(%p %p): stub\n", Type, out_Env);
return E_NOTIMPL;
}
static HRESULT WINAPI WshShell3_Run(IWshShell3 *iface, BSTR Command, VARIANT *WindowStyle, VARIANT *WaitOnReturn, int *out_ExitCode)
{
- FIXME("(%p %p %p)\n", WindowStyle, WaitOnReturn, out_ExitCode);
+ FIXME("(%p %p %p): stub\n", WindowStyle, WaitOnReturn, out_ExitCode);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WshShell3_Popup(IWshShell3 *iface, BSTR Text, VARIANT* SecondsToWait, VARIANT *Title, VARIANT *Type, int *button)
+{
+ FIXME("(%s %p %p %p %p): stub\n", debugstr_w(Text), SecondsToWait, Title, Type, button);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WshShell3_CreateShortcut(IWshShell3 *iface, BSTR PathLink, IDispatch** out_Shortcut)
+{
+ FIXME("(%s %p): stub\n", debugstr_w(PathLink), out_Shortcut);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WshShell3_ExpandEnvironmentStrings(IWshShell3 *iface, BSTR Src, BSTR* out_Dst)
+{
+ FIXME("(%s %p): stub\n", debugstr_w(Src), out_Dst);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WshShell3_RegRead(IWshShell3 *iface, BSTR Name, VARIANT* out_Value)
+{
+ FIXME("(%s %p): stub\n", debugstr_w(Name), out_Value);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WshShell3_RegWrite(IWshShell3 *iface, BSTR Name, VARIANT *Value, VARIANT *Type)
+{
+ FIXME("(%s %p %p): stub\n", debugstr_w(Name), Value, Type);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WshShell3_RegDelete(IWshShell3 *iface, BSTR Name)
+{
+ FIXME("(%s): stub\n", debugstr_w(Name));
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WshShell3_LogEvent(IWshShell3 *iface, VARIANT *Type, BSTR Message, BSTR Target, VARIANT_BOOL *out_Success)
+{
+ FIXME("(%p %s %s %p): stub\n", Type, debugstr_w(Message), debugstr_w(Target), out_Success);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WshShell3_AppActivate(IWshShell3 *iface, VARIANT *App, VARIANT *Wait, VARIANT_BOOL *out_Success)
+{
+ FIXME("(%p %p %p): stub\n", App, Wait, out_Success);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WshShell3_SendKeys(IWshShell3 *iface, BSTR Keys, VARIANT *Wait)
+{
+ FIXME("(%s %p): stub\n", debugstr_w(Keys), Wait);
return E_NOTIMPL;
}
@@ -138,7 +191,16 @@ static const IWshShell3Vtbl WshShell3Vtbl = {
WshShell3_Invoke,
WshShell3_get_SpecialFolders,
WshShell3_get_Environment,
- WshShell3_Run
+ WshShell3_Run,
+ WshShell3_Popup,
+ WshShell3_CreateShortcut,
+ WshShell3_ExpandEnvironmentStrings,
+ WshShell3_RegRead,
+ WshShell3_RegWrite,
+ WshShell3_RegDelete,
+ WshShell3_LogEvent,
+ WshShell3_AppActivate,
+ WshShell3_SendKeys
};
static IWshShell3 WshShell3 = { &WshShell3Vtbl };
diff --git a/dlls/wshom.ocx/wshom.idl b/dlls/wshom.ocx/wshom.idl
index a7dcb3a..8d0b8e1 100644
--- a/dlls/wshom.ocx/wshom.idl
+++ b/dlls/wshom.ocx/wshom.idl
@@ -17,6 +17,7 @@
*/
import "oaidl.idl";
+cpp_quote("#undef ExpandEnvironmentStrings")
[
helpstring("Windows Script Host Object Model"),
@@ -27,6 +28,61 @@ library IWshRuntimeLibrary
{
importlib("stdole2.tlb");
+ typedef enum {
+ WshRunning = 0,
+ WshFinished,
+ WshFailed
+ } WshExecStatus;
+
+ [
+ uuid(53bad8c1-e718-11cf-893d-00a0c9054228),
+ odl,
+ hidden,
+ dual,
+ nonextensible,
+ oleautomation
+ ]
+ interface ITextStream : IDispatch {
+ [id(0x2710), propget]
+ HRESULT Line([out, retval] long* Line);
+
+ [id(0xfffffdef), propget]
+ HRESULT Column([out, retval] long* Column);
+
+ [id(0x2712), propget]
+ HRESULT AtEndOfStream([out, retval] VARIANT_BOOL* EOS);
+
+ [id(0x2713), propget]
+ HRESULT AtEndOfLine([out, retval] VARIANT_BOOL* EOL);
+
+ [id(0x2714)]
+ HRESULT Read([in] long Characters, [out, retval] BSTR* Text);
+
+ [id(0x2715)]
+ HRESULT ReadLine([out, retval] BSTR* Text);
+
+ [id(0x2716)]
+ HRESULT ReadAll([out, retval] BSTR* Text);
+
+ [id(0x2717)]
+ HRESULT Write([in] BSTR Text);
+
+ [id(0x2718)]
+ HRESULT WriteLine([in, optional, defaultvalue("")] BSTR Text);
+
+ [id(0x2719)]
+ HRESULT WriteBlankLines([in] long Lines);
+
+ [id(0x271a)]
+ HRESULT Skip([in] long Characters);
+
+ [id(0x271b)]
+ HRESULT SkipLine();
+
+ [id(0x271c)]
+ HRESULT Close();
+ };
+
[
uuid(f935dc27-1cf0-11d0-adb9-00c04fd58a0b),
odl,
@@ -80,27 +136,135 @@ library IWshRuntimeLibrary
}
[
- uuid(41904400-be18-11d3-a28b-00104bd35090),
+ uuid(08fed190-be19-11d3-a28b-00104bd35090),
odl,
dual,
oleautomation
]
- interface IWshShell3 : IDispatch {
+ interface IWshExec : IDispatch {
+ [id(0x0001), propget]
+ HRESULT Status([out, retval] WshExecStatus* Status);
+
+ [id(0x0003), propget]
+ HRESULT StdIn([out, retval] ITextStream** stream);
+
+ [id(0x0004), propget]
+ HRESULT StdOut([out, retval] ITextStream** stream);
+
+ [id(0x0005), propget]
+ HRESULT StdErr([out, retval] ITextStream** stream);
+
+ [id(0x0006), propget]
+ HRESULT ProcessID([out, retval] long* pid);
+
+ [id(0x0007), propget]
+ HRESULT ExitCode([out, retval] long* ExitCode);
+
+ [id(0x0008)]
+ HRESULT Terminate();
+ };
+
+ [
+ uuid(f935dc21-1cf0-11d0-adb9-00c04fd58a0b),
+ odl,
+ dual,
+ oleautomation,
+ hidden
+ ]
+ interface IWshShell : IDispatch {
[id(0x0064), propget]
- HRESULT SpecialFolders([out, retval] IWshCollection **out_Folders);
+ HRESULT SpecialFolders([out, retval] IWshCollection** out_Folders);
[id(0x00c8), propget]
HRESULT Environment(
- [in, optional] VARIANT *Type,
- [out, retval] IWshEnvironment **out_Env);
+ [in, optional] VARIANT* Type,
+ [out, retval] IWshEnvironment** out_Env);
[id(0x03e8)]
HRESULT Run(
- [in] BSTR Command,
- [in, optional] VARIANT *WindowStyle,
- [in, optional] VARIANT *WaitOnReturn,
- [out, retval] int *out_ExitCode);
- }
+ [in] BSTR Command,
+ [in, optional] VARIANT* WindowStyle,
+ [in, optional] VARIANT* WaitOnReturn,
+ [out, retval] int* out_ExitCode);
+
+ [id(0x03e9)]
+ HRESULT Popup(
+ [in] BSTR Text,
+ [in, optional] VARIANT* SecondsToWait,
+ [in, optional] VARIANT* Title,
+ [in, optional] VARIANT* Type,
+ [out, retval] int* out_Button);
+
+ [id(0x03ea)]
+ HRESULT CreateShortcut(
+ [in] BSTR PathLink,
+ [out, retval] IDispatch** out_Shortcut);
+
+ [id(0x03ee)]
+ HRESULT ExpandEnvironmentStrings(
+ [in] BSTR Src,
+ [out, retval] BSTR* out_Dst);
+
+ [id(0x07d0)]
+ HRESULT RegRead(
+ [in] BSTR Name,
+ [out, retval] VARIANT* out_Value);
+
+ [id(0x07d1)]
+ HRESULT RegWrite(
+ [in] BSTR Name,
+ [in] VARIANT* Value,
+ [in, optional] VARIANT* Type);
+
+ [id(0x07d2)]
+ HRESULT RegDelete([in] BSTR Name);
+ };
+
+ [
+ uuid(24be5a30-edfe-11d2-b933-00104b365c9f),
+ odl,
+ dual,
+ oleautomation,
+ hidden
+ ]
+ interface IWshShell2 : IWshShell {
+ [id(0x0bb8)]
+ HRESULT LogEvent(
+ [in] VARIANT* Type,
+ [in] BSTR Message,
+ [in, optional, defaultvalue("")] BSTR Target,
+ [out, retval] VARIANT_BOOL* out_Success);
+
+ [id(0x0bc2)]
+ HRESULT AppActivate(
+ [in] VARIANT* App,
+ [in, optional] VARIANT* Wait,
+ [out, retval] VARIANT_BOOL* out_Success);
+
+ [id(0x0bc3)]
+ HRESULT SendKeys(
+ [in] BSTR Keys,
+ [in, optional] VARIANT* Wait);
+ };
+
+ [
+ uuid(41904400-be18-11d3-a28b-00104bd35090),
+ odl,
+ dual,
+ oleautomation
+ ]
+ interface IWshShell3 : IWshShell2 {
+ [id(0x0bc4)]
+ HRESULT Exec(
+ [in] BSTR Command,
+ [out, retval] IWshExec** out_Exec);
+
+ [id(0x0bc5), propget]
+ HRESULT CurrentDirectory([out, retval] BSTR* out_Directory);
+
+ [id(0x0bc5), propput]
+ HRESULT CurrentDirectory([in] BSTR out_Directory);
+ };
[
uuid(24be5a31-edfe-11d2-b933-00104b365c9f),
More information about the wine-cvs
mailing list