summaryrefslogtreecommitdiff
path: root/ext/com/COM.c
diff options
context:
space:
mode:
authorHarald Radi <phanto@php.net>2001-08-14 13:38:36 +0000
committerHarald Radi <phanto@php.net>2001-08-14 13:38:36 +0000
commited126f68d5359a5f5ca7c7e86fcc66a0019d567c (patch)
tree38e0a351f47e50717b6da36fcbaf962b729c6a2f /ext/com/COM.c
parent4e89fa671e8570eaa505cc3f2f839bf863586e72 (diff)
downloadphp-git-ed126f68d5359a5f5ca7c7e86fcc66a0019d567c.tar.gz
fixed com_invoke retval
Diffstat (limited to 'ext/com/COM.c')
-rw-r--r--ext/com/COM.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/com/COM.c b/ext/com/COM.c
index 47bf78aa92..d411026e10 100644
--- a/ext/com/COM.c
+++ b/ext/com/COM.c
@@ -109,6 +109,7 @@ PHPAPI HRESULT php_COM_invoke(comval *obj, DISPID dispIdMember, WORD wFlags, DIS
EXCEPINFO ExceptInfo;
*ErrString = NULL;
+ /* @todo use DispInvoke here ? */
if (C_ISREFD(obj)) {
if (C_HASTLIB(obj)) {
hr = C_TYPEINFO_VT(obj)->Invoke(C_TYPEINFO(obj), C_DISPATCH(obj), dispIdMember, wFlags, pDispParams, pVarResult, &ExceptInfo, &ArgErr);
@@ -153,8 +154,7 @@ PHPAPI HRESULT php_COM_invoke(comval *obj, DISPID dispIdMember, WORD wFlags, DIS
}
}
- if (!pVarResult) {
- VariantInit(pVarResult);
+ if (pVarResult && (V_VT(pVarResult) == VT_EMPTY)) {
V_VT(pVarResult) = VT_I4;
V_I4(pVarResult) = hr;
}