]> granicus.if.org Git - php/commitdiff
fix #22899
authorHarald Radi <phanto@php.net>
Thu, 27 Mar 2003 19:56:09 +0000 (19:56 +0000)
committerHarald Radi <phanto@php.net>
Thu, 27 Mar 2003 19:56:09 +0000 (19:56 +0000)
invoke is called twice

ext/com/COM.c

index 4d41bc7ed9529bd8ec725d21e0d34dbd5f5950b7..cdec124de4dd42553b01bbb72295b41500afbe60 100644 (file)
@@ -124,7 +124,7 @@ PHPAPI HRESULT php_COM_invoke(comval *obj, DISPID dispIdMember, WORD wFlags, DIS
        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);
-                       if (FAILED(hr)) {
+                       if (FAILED(hr) && (hr != DISP_E_EXCEPTION)) {
                                hr = C_DISPATCH_VT(obj)->Invoke(C_DISPATCH(obj), dispIdMember, &IID_NULL, LOCALE_SYSTEM_DEFAULT, wFlags, pDispParams, pVarResult, &ExceptInfo, &ArgErr);
                                if (SUCCEEDED(hr)) {
                                        /*