diff options
Diffstat (limited to 'ext/rpc/com/com_wrapper.h')
| -rw-r--r-- | ext/rpc/com/com_wrapper.h | 39 |
1 files changed, 28 insertions, 11 deletions
diff --git a/ext/rpc/com/com_wrapper.h b/ext/rpc/com/com_wrapper.h index 6c08f26e64..0679cd162b 100644 --- a/ext/rpc/com/com_wrapper.h +++ b/ext/rpc/com/com_wrapper.h @@ -5,21 +5,38 @@ #include "oleauto.h" -typedef struct i_dispatch_ { - int typelib; - int referenced; +typedef struct comval_ { + BOOL typelib; + BOOL enumeration; + int refcount; struct { IDispatch *dispatch; ITypeInfo *typeinfo; + IEnumVARIANT *enumvariant; } i; -} i_dispatch; - -PHPAPI HRESULT php_COM_invoke(i_dispatch *obj, DISPID dispIdMember, WORD wFlags, DISPPARAMS FAR* pDispParams, VARIANT FAR* pVarResult); -PHPAPI HRESULT php_COM_get_ids_of_names(i_dispatch *obj, OLECHAR FAR* FAR* rgszNames, DISPID FAR* rgDispId); -PHPAPI HRESULT php_COM_release(i_dispatch *obj); -PHPAPI HRESULT php_COM_addref(i_dispatch *obj); -PHPAPI HRESULT php_COM_set(i_dispatch *obj, IDispatch FAR* pDisp, int cleanup); -PHPAPI HRESULT php_COM_clone(i_dispatch *obj, i_dispatch *clone, int cleanup); +} comval; + +PHPAPI HRESULT php_COM_invoke(comval *obj, DISPID dispIdMember, WORD wFlags, DISPPARAMS FAR* pDispParams, VARIANT FAR* pVarResult); +PHPAPI HRESULT php_COM_get_ids_of_names(comval *obj, OLECHAR FAR* FAR* rgszNames, DISPID FAR* rgDispId); +PHPAPI HRESULT php_COM_release(comval *obj); +PHPAPI HRESULT php_COM_addref(comval *obj); +PHPAPI HRESULT php_COM_set(comval *obj, IDispatch FAR* pDisp, int cleanup); +PHPAPI HRESULT php_COM_clone(comval *obj, comval *clone, int cleanup); + +#define C_HASTLIB(x) ((x)->typelib) +#define C_HASENUM(x) ((x)->enumeration) +#define C_ISREFD(x) ((x)->refcount) + +#define C_DISPATCH(x) ((x)->i.dispatch) +#define C_TYPEINFO(x) ((x)->i.typeinfo) +#define C_ENUMVARIANT(x) ((x)->i.enumvariant) + +#define C_DISPATCH_VT(x) (C_DISPATCH(x)->lpVtbl) +#define C_TYPEINFO_VT(x) (C_TYPEINFO(x)->lpVtbl) +#define C_ENUMVARIANT_VT(x) (C_ENUMVARIANT(x)->lpVtbl) + +#define C_ADDREF(x) (++((x)->refcount)) +#define C_RELEASE(x) (--((x)->refcount)) #endif /* PHP_WIN32 */ |
