Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
cefb25c7
Commit
cefb25c7
authored
Nov 01, 2009
by
Jacek Caban
Committed by
Alexandre Julliard
Nov 03, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mshtml: Added InvokeEx(DISPATCH_PROPERTYPUT|DISPATCH_PROPERTYPUTREF) implementation.
parent
007b3982
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
44 additions
and
6 deletions
+44
-6
dispex.c
dlls/mshtml/dispex.c
+8
-0
script.c
dlls/mshtml/tests/script.c
+36
-6
No files found.
dlls/mshtml/dispex.c
View file @
cefb25c7
...
...
@@ -870,7 +870,15 @@ static HRESULT WINAPI DispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, LCID lc
}
case
DISPATCH_PROPERTYGET
:
return
VariantCopy
(
pvarRes
,
var
);
case
DISPATCH_PROPERTYPUT
|
DISPATCH_PROPERTYPUTREF
:
case
DISPATCH_PROPERTYPUT
:
if
(
pdp
->
cArgs
!=
1
||
(
pdp
->
cNamedArgs
==
1
&&
*
pdp
->
rgdispidNamedArgs
!=
DISPID_PROPERTYPUT
)
||
pdp
->
cNamedArgs
>
1
)
{
FIXME
(
"invalid args
\n
"
);
return
E_INVALIDARG
;
}
TRACE
(
"put %s
\n
"
,
debugstr_variant
(
pdp
->
rgvarg
));
VariantClear
(
var
);
return
VariantCopy
(
var
,
pdp
->
rgvarg
);
default:
...
...
dlls/mshtml/tests/script.c
View file @
cefb25c7
...
...
@@ -817,13 +817,13 @@ static HRESULT WINAPI ActiveScriptParse_AddScriptlet(IActiveScriptParse *iface,
return
E_NOTIMPL
;
}
static
HRESULT
dispex_propput
(
IDispatchEx
*
obj
,
DISPID
id
,
VARIANT
*
var
)
static
HRESULT
dispex_propput
(
IDispatchEx
*
obj
,
DISPID
id
,
DWORD
flags
,
VARIANT
*
var
)
{
DISPID
propput_arg
=
DISPID_PROPERTYPUT
;
DISPPARAMS
dp
=
{
var
,
&
propput_arg
,
1
,
1
};
EXCEPINFO
ei
=
{
0
};
return
IDispatchEx_InvokeEx
(
obj
,
id
,
LOCALE_NEUTRAL
,
DISPATCH_PROPERTYPUT
,
&
dp
,
NULL
,
&
ei
,
NULL
);
return
IDispatchEx_InvokeEx
(
obj
,
id
,
LOCALE_NEUTRAL
,
DISPATCH_PROPERTYPUT
|
flags
,
&
dp
,
NULL
,
&
ei
,
NULL
);
}
static
void
test_func
(
IDispatchEx
*
obj
)
...
...
@@ -871,7 +871,7 @@ static void test_func(IDispatchEx *obj)
V_VT
(
&
var
)
=
VT_I4
;
V_I4
(
&
var
)
=
100
;
hres
=
dispex_propput
(
obj
,
id
,
&
var
);
hres
=
dispex_propput
(
obj
,
id
,
0
,
&
var
);
ok
(
hres
==
E_NOTIMPL
,
"InvokeEx failed: %08x
\n
"
,
hres
);
IDispatchEx_Release
(
dispex
);
...
...
@@ -890,7 +890,7 @@ static void test_nextdispid(IDispatchEx *dispex)
SysFreeString
(
name
);
V_VT
(
&
var
)
=
VT_EMPTY
;
hres
=
dispex_propput
(
dispex
,
dyn_id
,
&
var
);
hres
=
dispex_propput
(
dispex
,
dyn_id
,
0
,
&
var
);
while
(
last_id
!=
dyn_id
)
{
hres
=
IDispatchEx_GetNextDispID
(
dispex
,
fdexEnumAll
,
last_id
,
&
id
);
...
...
@@ -976,7 +976,7 @@ static HRESULT WINAPI ActiveScriptParse_ParseScriptText(IActiveScriptParse *ifac
V_VT
(
&
var
)
=
VT_I4
;
V_I4
(
&
var
)
=
100
;
hres
=
dispex_propput
(
document
,
id
,
&
var
);
hres
=
dispex_propput
(
document
,
id
,
0
,
&
var
);
ok
(
hres
==
S_OK
,
"InvokeEx failed: %08x
\n
"
,
hres
);
tmp
=
SysAllocString
(
testW
);
...
...
@@ -990,7 +990,37 @@ static HRESULT WINAPI ActiveScriptParse_ParseScriptText(IActiveScriptParse *ifac
hres
=
IDispatchEx_InvokeEx
(
document
,
id
,
LOCALE_NEUTRAL
,
INVOKE_PROPERTYGET
,
&
dp
,
&
var
,
&
ei
,
NULL
);
ok
(
hres
==
S_OK
,
"InvokeEx failed: %08x
\n
"
,
hres
);
ok
(
V_VT
(
&
var
)
==
VT_I4
,
"V_VT(var)=%d
\n
"
,
V_VT
(
&
var
));
ok
(
V_I4
(
&
var
)
==
100
,
"V_I4(&var) == NULL
\n
"
);
ok
(
V_I4
(
&
var
)
==
100
,
"V_I4(&var) = %d
\n
"
,
V_I4
(
&
var
));
V_VT
(
&
var
)
=
VT_I4
;
V_I4
(
&
var
)
=
200
;
hres
=
dispex_propput
(
document
,
id
,
DISPATCH_PROPERTYPUTREF
,
&
var
);
ok
(
hres
==
S_OK
,
"InvokeEx failed: %08x
\n
"
,
hres
);
VariantInit
(
&
var
);
memset
(
&
dp
,
0
,
sizeof
(
dp
));
memset
(
&
ei
,
0
,
sizeof
(
ei
));
hres
=
IDispatchEx_InvokeEx
(
document
,
id
,
LOCALE_NEUTRAL
,
INVOKE_PROPERTYGET
,
&
dp
,
&
var
,
&
ei
,
NULL
);
ok
(
hres
==
S_OK
,
"InvokeEx failed: %08x
\n
"
,
hres
);
ok
(
V_VT
(
&
var
)
==
VT_I4
,
"V_VT(var)=%d
\n
"
,
V_VT
(
&
var
));
ok
(
V_I4
(
&
var
)
==
200
,
"V_I4(&var) = %d
\n
"
,
V_I4
(
&
var
));
memset
(
&
dp
,
0
,
sizeof
(
dp
));
memset
(
&
ei
,
0
,
sizeof
(
ei
));
V_VT
(
&
var
)
=
VT_I4
;
V_I4
(
&
var
)
=
300
;
dp
.
cArgs
=
1
;
dp
.
rgvarg
=
&
var
;
hres
=
IDispatchEx_InvokeEx
(
document
,
id
,
LOCALE_NEUTRAL
,
INVOKE_PROPERTYPUT
,
&
dp
,
NULL
,
&
ei
,
NULL
);
ok
(
hres
==
S_OK
,
"InvokeEx failed: %08x
\n
"
,
hres
);
VariantInit
(
&
var
);
memset
(
&
dp
,
0
,
sizeof
(
dp
));
memset
(
&
ei
,
0
,
sizeof
(
ei
));
hres
=
IDispatchEx_InvokeEx
(
document
,
id
,
LOCALE_NEUTRAL
,
INVOKE_PROPERTYGET
,
&
dp
,
&
var
,
&
ei
,
NULL
);
ok
(
hres
==
S_OK
,
"InvokeEx failed: %08x
\n
"
,
hres
);
ok
(
V_VT
(
&
var
)
==
VT_I4
,
"V_VT(var)=%d
\n
"
,
V_VT
(
&
var
));
ok
(
V_I4
(
&
var
)
==
300
,
"V_I4(&var) = %d
\n
"
,
V_I4
(
&
var
));
unk
=
(
void
*
)
0xdeadbeef
;
hres
=
IDispatchEx_GetNameSpaceParent
(
window_dispex
,
&
unk
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment