#include <iostream.h>
#include <math.h>
-extern "C" { /* this should be included in the includes itself !! */
-
#include "php.h"
#include "php_ini.h"
-}
-
#include "conversion.h"
#include "unknwn.h"
LPOLESTR ole_clsid;
char *clsid_str;
- StringFromCLSID(clsid, &ole_clsid);
+ StringFromCLSID(&clsid, &ole_clsid);
clsid_str = php_OLECHAR_to_char(ole_clsid, NULL, 0, codepage);
LocalFree(ole_clsid);
static void php_idispatch_destructor(zend_rsrc_list_entry *rsrc)
{
IDispatch *i_dispatch = (IDispatch *)rsrc->ptr;
- i_dispatch->Release();
+
+ i_dispatch->lpVtbl->Release(i_dispatch);
}
static PHP_INI_MH(OnTypelibFileChange)
/* obtain IDispatch */
if (!server_name) {
- hr = CoCreateInstance(clsid, NULL, CLSCTX_SERVER, IID_IDispatch, (LPVOID *) &i_dispatch);
+ hr = CoCreateInstance(&clsid, NULL, CLSCTX_SERVER, &IID_IDispatch, (LPVOID *) &i_dispatch);
} else {
COSERVERINFO server_info;
MULTI_QI pResults;
pResults.pIID = &IID_IDispatch;
pResults.pItf = NULL;
pResults.hr = S_OK;
- hr=CoCreateInstanceEx(clsid, NULL, CLSCTX_SERVER, &server_info, 1, &pResults);
+ hr=CoCreateInstanceEx(&clsid, NULL, CLSCTX_SERVER, &server_info, 1, &pResults);
if (SUCCEEDED(hr)) {
hr = pResults.hr;
i_dispatch = (IDispatch *) pResults.pItf;
funcname = php_char_to_OLECHAR(function_name->value.str.val, function_name->value.str.len, codepage);
- hr = i_dispatch->GetIDsOfNames(IID_NULL, &funcname, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
+ hr = i_dispatch->lpVtbl->GetIDsOfNames(i_dispatch, &IID_NULL, &funcname, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
if (FAILED(hr)) {
error_message = php_COM_error_message(hr);
dispparams.cArgs = arg_count;
dispparams.cNamedArgs = 0;
- hr = i_dispatch->Invoke(dispid, IID_NULL,
+ hr = i_dispatch->lpVtbl->Invoke(i_dispatch, dispid, &IID_NULL,
LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD|DISPATCH_PROPERTYGET,
&dispparams, var_result, NULL, NULL);
function_name.type = IS_STRING;
retval = do_COM_invoke(i_dispatch, &function_name, var_result, &arg_property, 1);
if (cleanup) {
- i_dispatch->Release();
+ i_dispatch->lpVtbl->Release(i_dispatch);
}
return retval;
}
/* obtain property handler */
propname = php_char_to_OLECHAR(arg_property->value.str.val, arg_property->value.str.len, codepage);
- hr = i_dispatch->GetIDsOfNames(IID_NULL, &propname, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
+ hr = i_dispatch->lpVtbl->GetIDsOfNames(i_dispatch, &IID_NULL, &propname, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
if (FAILED(hr)) {
error_message = php_COM_error_message(hr);
LocalFree(error_message);
efree(propname);
if (cleanup) {
- i_dispatch->Release();
+ i_dispatch->lpVtbl->Release(i_dispatch);
}
return FAILURE;
}
dispparams.cArgs = 0;
dispparams.cNamedArgs = 0;
- hr = i_dispatch->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET, &dispparams, var_result, NULL, 0);
+ hr = i_dispatch->lpVtbl->Invoke(i_dispatch, dispid, &IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET, &dispparams, var_result, NULL, 0);
if (FAILED(hr)) {
error_message = php_COM_error_message(hr);
LocalFree(error_message);
efree(propname);
if (cleanup) {
- i_dispatch->Release();
+ i_dispatch->lpVtbl->Release(i_dispatch);
}
return FAILURE;
}
efree(propname);
if (cleanup) {
- i_dispatch->Release();
+ i_dispatch->lpVtbl->Release(i_dispatch);
}
return SUCCESS;
}
/* obtain property handler */
propname = php_char_to_OLECHAR(arg_property->value.str.val, arg_property->value.str.len, codepage);
- hr = i_dispatch->GetIDsOfNames(IID_NULL, &propname, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
+ hr = i_dispatch->lpVtbl->GetIDsOfNames(i_dispatch, &IID_NULL, &propname, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
if (FAILED(hr)) {
error_message = php_COM_error_message(hr);
dispparams.cArgs = 1;
dispparams.cNamedArgs = 1;
- hr = i_dispatch->Invoke(dispid, IID_NULL,
+ hr = i_dispatch->lpVtbl->Invoke(i_dispatch, dispid, &IID_NULL,
LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYPUT,
&dispparams, NULL, NULL, 0);
if (FAILED(hr)) {
dispparams.cArgs = 0;
dispparams.cNamedArgs = 0;
- hr = i_dispatch->Invoke(dispid, IID_NULL,
+ hr = i_dispatch->lpVtbl->Invoke(i_dispatch, dispid, &IID_NULL,
LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET,
&dispparams, &var_result, NULL, 0);
return FAILURE;
}
- interfaces = TypeLib->GetTypeInfoCount();
+ interfaces = TypeLib->lpVtbl->GetTypeInfoCount(TypeLib);
- TypeLib->GetTypeComp(&TypeComp);
+ TypeLib->lpVtbl->GetTypeComp(TypeLib, &TypeComp);
for (i=0; i<interfaces; i++) {
TYPEKIND pTKind;
- TypeLib->GetTypeInfoType(i, &pTKind);
+ TypeLib->lpVtbl->GetTypeInfoType(TypeLib, i, &pTKind);
if (pTKind==TKIND_ENUM) {
ITypeInfo *TypeInfo;
VARDESC *pVarDesc;
efree(EnumId);
#endif
- TypeLib->GetTypeInfo(i, &TypeInfo);
+ TypeLib->lpVtbl->GetTypeInfo(TypeLib, i, &TypeInfo);
j=0;
- while (TypeInfo->GetVarDesc(j, &pVarDesc)==S_OK) {
+ while (TypeInfo->lpVtbl->GetVarDesc(TypeInfo, j, &pVarDesc)==S_OK) {
BSTR bstr_ids;
char *ids;
zend_constant c;
- TypeInfo->GetNames(pVarDesc->memid, &bstr_ids, 1, &NameCount);
+ TypeInfo->lpVtbl->GetNames(TypeInfo, pVarDesc->memid, &bstr_ids, 1, &NameCount);
if (NameCount!=1) {
j++;
continue;
/*printf("%s -> %ld\n", ids, pVarDesc->lpvarValue->lVal);*/
j++;
}
- TypeInfo->Release();
+ TypeInfo->lpVtbl->Release(TypeInfo);
}
}
- TypeLib->Release();
+ TypeLib->lpVtbl->Release(TypeLib);
efree(p);
return SUCCESS;
}
#include <iostream.h>
#include <math.h>
-extern "C" { /* this should be included in the includes itself !! */
-
#include "php.h"
#include "php_ini.h"
-}
-
#include "conversion.h"
#include "unknwn.h"
LPOLESTR ole_clsid;
char *clsid_str;
- StringFromCLSID(clsid, &ole_clsid);
+ StringFromCLSID(&clsid, &ole_clsid);
clsid_str = php_OLECHAR_to_char(ole_clsid, NULL, 0, codepage);
LocalFree(ole_clsid);
static void php_idispatch_destructor(zend_rsrc_list_entry *rsrc)
{
IDispatch *i_dispatch = (IDispatch *)rsrc->ptr;
- i_dispatch->Release();
+
+ i_dispatch->lpVtbl->Release(i_dispatch);
}
static PHP_INI_MH(OnTypelibFileChange)
/* obtain IDispatch */
if (!server_name) {
- hr = CoCreateInstance(clsid, NULL, CLSCTX_SERVER, IID_IDispatch, (LPVOID *) &i_dispatch);
+ hr = CoCreateInstance(&clsid, NULL, CLSCTX_SERVER, &IID_IDispatch, (LPVOID *) &i_dispatch);
} else {
COSERVERINFO server_info;
MULTI_QI pResults;
pResults.pIID = &IID_IDispatch;
pResults.pItf = NULL;
pResults.hr = S_OK;
- hr=CoCreateInstanceEx(clsid, NULL, CLSCTX_SERVER, &server_info, 1, &pResults);
+ hr=CoCreateInstanceEx(&clsid, NULL, CLSCTX_SERVER, &server_info, 1, &pResults);
if (SUCCEEDED(hr)) {
hr = pResults.hr;
i_dispatch = (IDispatch *) pResults.pItf;
funcname = php_char_to_OLECHAR(function_name->value.str.val, function_name->value.str.len, codepage);
- hr = i_dispatch->GetIDsOfNames(IID_NULL, &funcname, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
+ hr = i_dispatch->lpVtbl->GetIDsOfNames(i_dispatch, &IID_NULL, &funcname, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
if (FAILED(hr)) {
error_message = php_COM_error_message(hr);
dispparams.cArgs = arg_count;
dispparams.cNamedArgs = 0;
- hr = i_dispatch->Invoke(dispid, IID_NULL,
+ hr = i_dispatch->lpVtbl->Invoke(i_dispatch, dispid, &IID_NULL,
LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD|DISPATCH_PROPERTYGET,
&dispparams, var_result, NULL, NULL);
function_name.type = IS_STRING;
retval = do_COM_invoke(i_dispatch, &function_name, var_result, &arg_property, 1);
if (cleanup) {
- i_dispatch->Release();
+ i_dispatch->lpVtbl->Release(i_dispatch);
}
return retval;
}
/* obtain property handler */
propname = php_char_to_OLECHAR(arg_property->value.str.val, arg_property->value.str.len, codepage);
- hr = i_dispatch->GetIDsOfNames(IID_NULL, &propname, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
+ hr = i_dispatch->lpVtbl->GetIDsOfNames(i_dispatch, &IID_NULL, &propname, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
if (FAILED(hr)) {
error_message = php_COM_error_message(hr);
LocalFree(error_message);
efree(propname);
if (cleanup) {
- i_dispatch->Release();
+ i_dispatch->lpVtbl->Release(i_dispatch);
}
return FAILURE;
}
dispparams.cArgs = 0;
dispparams.cNamedArgs = 0;
- hr = i_dispatch->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET, &dispparams, var_result, NULL, 0);
+ hr = i_dispatch->lpVtbl->Invoke(i_dispatch, dispid, &IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET, &dispparams, var_result, NULL, 0);
if (FAILED(hr)) {
error_message = php_COM_error_message(hr);
LocalFree(error_message);
efree(propname);
if (cleanup) {
- i_dispatch->Release();
+ i_dispatch->lpVtbl->Release(i_dispatch);
}
return FAILURE;
}
efree(propname);
if (cleanup) {
- i_dispatch->Release();
+ i_dispatch->lpVtbl->Release(i_dispatch);
}
return SUCCESS;
}
/* obtain property handler */
propname = php_char_to_OLECHAR(arg_property->value.str.val, arg_property->value.str.len, codepage);
- hr = i_dispatch->GetIDsOfNames(IID_NULL, &propname, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
+ hr = i_dispatch->lpVtbl->GetIDsOfNames(i_dispatch, &IID_NULL, &propname, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
if (FAILED(hr)) {
error_message = php_COM_error_message(hr);
dispparams.cArgs = 1;
dispparams.cNamedArgs = 1;
- hr = i_dispatch->Invoke(dispid, IID_NULL,
+ hr = i_dispatch->lpVtbl->Invoke(i_dispatch, dispid, &IID_NULL,
LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYPUT,
&dispparams, NULL, NULL, 0);
if (FAILED(hr)) {
dispparams.cArgs = 0;
dispparams.cNamedArgs = 0;
- hr = i_dispatch->Invoke(dispid, IID_NULL,
+ hr = i_dispatch->lpVtbl->Invoke(i_dispatch, dispid, &IID_NULL,
LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET,
&dispparams, &var_result, NULL, 0);
return FAILURE;
}
- interfaces = TypeLib->GetTypeInfoCount();
+ interfaces = TypeLib->lpVtbl->GetTypeInfoCount(TypeLib);
- TypeLib->GetTypeComp(&TypeComp);
+ TypeLib->lpVtbl->GetTypeComp(TypeLib, &TypeComp);
for (i=0; i<interfaces; i++) {
TYPEKIND pTKind;
- TypeLib->GetTypeInfoType(i, &pTKind);
+ TypeLib->lpVtbl->GetTypeInfoType(TypeLib, i, &pTKind);
if (pTKind==TKIND_ENUM) {
ITypeInfo *TypeInfo;
VARDESC *pVarDesc;
efree(EnumId);
#endif
- TypeLib->GetTypeInfo(i, &TypeInfo);
+ TypeLib->lpVtbl->GetTypeInfo(TypeLib, i, &TypeInfo);
j=0;
- while (TypeInfo->GetVarDesc(j, &pVarDesc)==S_OK) {
+ while (TypeInfo->lpVtbl->GetVarDesc(TypeInfo, j, &pVarDesc)==S_OK) {
BSTR bstr_ids;
char *ids;
zend_constant c;
- TypeInfo->GetNames(pVarDesc->memid, &bstr_ids, 1, &NameCount);
+ TypeInfo->lpVtbl->GetNames(TypeInfo, pVarDesc->memid, &bstr_ids, 1, &NameCount);
if (NameCount!=1) {
j++;
continue;
/*printf("%s -> %ld\n", ids, pVarDesc->lpvarValue->lVal);*/
j++;
}
- TypeInfo->Release();
+ TypeInfo->lpVtbl->Release(TypeInfo);
}
}
- TypeLib->Release();
+ TypeLib->lpVtbl->Release(TypeLib);
efree(p);
return SUCCESS;
}