Commit 4ecb339f authored by Michał Ziętek's avatar Michał Ziętek Committed by Alexandre Julliard

wscript: Implemented Host_get_ScriptFullName.

parent bf331f8d
...@@ -176,8 +176,11 @@ static HRESULT WINAPI Host_get_ScriptName(IHost *iface, BSTR *out_ScriptName) ...@@ -176,8 +176,11 @@ static HRESULT WINAPI Host_get_ScriptName(IHost *iface, BSTR *out_ScriptName)
static HRESULT WINAPI Host_get_ScriptFullName(IHost *iface, BSTR *out_ScriptFullName) static HRESULT WINAPI Host_get_ScriptFullName(IHost *iface, BSTR *out_ScriptFullName)
{ {
WINE_FIXME("(%p)\n", out_ScriptFullName); WINE_TRACE("(%p)\n", out_ScriptFullName);
return E_NOTIMPL;
if(!(*out_ScriptFullName = SysAllocString(scriptFullName)))
return E_OUTOFMEMORY;
return S_OK;
} }
static HRESULT WINAPI Host_get_Arguments(IHost *iface, IArguments2 **out_Arguments) static HRESULT WINAPI Host_get_Arguments(IHost *iface, IArguments2 **out_Arguments)
......
...@@ -62,6 +62,7 @@ DEFINE_EXPECT(reportSuccess); ...@@ -62,6 +62,7 @@ DEFINE_EXPECT(reportSuccess);
#define DISPID_TESTOBJ_WSCRIPTFULLNAME 10003 #define DISPID_TESTOBJ_WSCRIPTFULLNAME 10003
#define DISPID_TESTOBJ_WSCRIPTPATH 10004 #define DISPID_TESTOBJ_WSCRIPTPATH 10004
#define DISPID_TESTOBJ_WSCRIPTSCRIPTNAME 10005 #define DISPID_TESTOBJ_WSCRIPTSCRIPTNAME 10005
#define DISPID_TESTOBJ_WSCRIPTSCRIPTFULLNAME 10006
#define TESTOBJ_CLSID "{178fc166-f585-4e24-9c13-4bb7faf80646}" #define TESTOBJ_CLSID "{178fc166-f585-4e24-9c13-4bb7faf80646}"
...@@ -152,6 +153,8 @@ static HRESULT WINAPI Dispatch_GetIDsOfNames(IDispatch *iface, REFIID riid, ...@@ -152,6 +153,8 @@ static HRESULT WINAPI Dispatch_GetIDsOfNames(IDispatch *iface, REFIID riid,
rgDispId[i] = DISPID_TESTOBJ_WSCRIPTPATH; rgDispId[i] = DISPID_TESTOBJ_WSCRIPTPATH;
}else if(!strcmp_wa(rgszNames[i], "wscriptScriptName")) { }else if(!strcmp_wa(rgszNames[i], "wscriptScriptName")) {
rgDispId[i] = DISPID_TESTOBJ_WSCRIPTSCRIPTNAME; rgDispId[i] = DISPID_TESTOBJ_WSCRIPTSCRIPTNAME;
}else if(!strcmp_wa(rgszNames[i], "wscriptScriptFullName")) {
rgDispId[i] = DISPID_TESTOBJ_WSCRIPTSCRIPTFULLNAME;
}else { }else {
ok(0, "unexpected name %s\n", wine_dbgstr_w(rgszNames[i])); ok(0, "unexpected name %s\n", wine_dbgstr_w(rgszNames[i]));
return DISP_E_UNKNOWNNAME; return DISP_E_UNKNOWNNAME;
...@@ -246,6 +249,22 @@ static HRESULT WINAPI Dispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REF ...@@ -246,6 +249,22 @@ static HRESULT WINAPI Dispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REF
return E_OUTOFMEMORY; return E_OUTOFMEMORY;
break; break;
} }
case DISPID_TESTOBJ_WSCRIPTSCRIPTFULLNAME:
{
char fullPath[MAX_PATH];
long res;
ok(wFlags == INVOKE_PROPERTYGET, "wFlags = %x\n", wFlags);
ok(pdp->cArgs == 0, "cArgs = %d\n", pdp->cArgs);
ok(!pdp->cNamedArgs, "cNamedArgs = %d\n", pdp->cNamedArgs);
V_VT(pVarResult) = VT_BSTR;
res = GetFullPathNameA(script_name, sizeof(fullPath)/sizeof(WCHAR), fullPath, NULL);
if(!res || res > sizeof(fullPath)/sizeof(WCHAR))
return E_FAIL;
if(!(V_BSTR(pVarResult) = SysAllocString(a2bstr(fullPath))))
return E_OUTOFMEMORY;
break;
}
default: default:
ok(0, "unexpected dispIdMember %d\n", dispIdMember); ok(0, "unexpected dispIdMember %d\n", dispIdMember);
return E_NOTIMPL; return E_NOTIMPL;
......
...@@ -31,5 +31,6 @@ ok(typeof(WScript.BuildVersion) === "number", "typeof(WScript.BuldVersion) = " + ...@@ -31,5 +31,6 @@ ok(typeof(WScript.BuildVersion) === "number", "typeof(WScript.BuldVersion) = " +
ok(WScript.FullName === winetest.wscriptFullName, "WScript.FullName = ", WScript.FullName); ok(WScript.FullName === winetest.wscriptFullName, "WScript.FullName = ", WScript.FullName);
ok(WScript.Path === winetest.wscriptPath, "WScript.Path = ", WScript.Path); ok(WScript.Path === winetest.wscriptPath, "WScript.Path = ", WScript.Path);
ok(WScript.ScriptName === winetest.wscriptScriptName, "WScript.ScriptName = " + WScript.ScriptName); ok(WScript.ScriptName === winetest.wscriptScriptName, "WScript.ScriptName = " + WScript.ScriptName);
ok(WScript.ScriptFullName === winetest.wscriptScriptFullName, "WScript.ScriptFullName = " + WScript.ScriptFullName);
winetest.reportSuccess(); winetest.reportSuccess();
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment