mirror of
https://github.com/php/php-src.git
synced 2025-08-20 01:14:28 +02:00
Fix Win32 build
This commit is contained in:
parent
df868616aa
commit
a3775357ec
2 changed files with 48 additions and 54 deletions
|
@ -59,13 +59,9 @@
|
||||||
#include <iostream.h>
|
#include <iostream.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
extern "C" { /* this should be included in the includes itself !! */
|
|
||||||
|
|
||||||
#include "php.h"
|
#include "php.h"
|
||||||
#include "php_ini.h"
|
#include "php_ini.h"
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "conversion.h"
|
#include "conversion.h"
|
||||||
#include "unknwn.h"
|
#include "unknwn.h"
|
||||||
|
|
||||||
|
@ -125,7 +121,7 @@ static char *php_string_from_clsid(const CLSID clsid)
|
||||||
LPOLESTR ole_clsid;
|
LPOLESTR ole_clsid;
|
||||||
char *clsid_str;
|
char *clsid_str;
|
||||||
|
|
||||||
StringFromCLSID(clsid, &ole_clsid);
|
StringFromCLSID(&clsid, &ole_clsid);
|
||||||
clsid_str = php_OLECHAR_to_char(ole_clsid, NULL, 0, codepage);
|
clsid_str = php_OLECHAR_to_char(ole_clsid, NULL, 0, codepage);
|
||||||
LocalFree(ole_clsid);
|
LocalFree(ole_clsid);
|
||||||
|
|
||||||
|
@ -135,7 +131,8 @@ static char *php_string_from_clsid(const CLSID clsid)
|
||||||
static void php_idispatch_destructor(zend_rsrc_list_entry *rsrc)
|
static void php_idispatch_destructor(zend_rsrc_list_entry *rsrc)
|
||||||
{
|
{
|
||||||
IDispatch *i_dispatch = (IDispatch *)rsrc->ptr;
|
IDispatch *i_dispatch = (IDispatch *)rsrc->ptr;
|
||||||
i_dispatch->Release();
|
|
||||||
|
i_dispatch->lpVtbl->Release(i_dispatch);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PHP_INI_MH(OnTypelibFileChange)
|
static PHP_INI_MH(OnTypelibFileChange)
|
||||||
|
@ -270,7 +267,7 @@ PHP_FUNCTION(COM_load)
|
||||||
|
|
||||||
/* obtain IDispatch */
|
/* obtain IDispatch */
|
||||||
if (!server_name) {
|
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 {
|
} else {
|
||||||
COSERVERINFO server_info;
|
COSERVERINFO server_info;
|
||||||
MULTI_QI pResults;
|
MULTI_QI pResults;
|
||||||
|
@ -283,7 +280,7 @@ PHP_FUNCTION(COM_load)
|
||||||
pResults.pIID = &IID_IDispatch;
|
pResults.pIID = &IID_IDispatch;
|
||||||
pResults.pItf = NULL;
|
pResults.pItf = NULL;
|
||||||
pResults.hr = S_OK;
|
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)) {
|
if (SUCCEEDED(hr)) {
|
||||||
hr = pResults.hr;
|
hr = pResults.hr;
|
||||||
i_dispatch = (IDispatch *) pResults.pItf;
|
i_dispatch = (IDispatch *) pResults.pItf;
|
||||||
|
@ -318,7 +315,7 @@ int do_COM_invoke(IDispatch *i_dispatch, pval *function_name, VARIANTARG *var_re
|
||||||
|
|
||||||
funcname = php_char_to_OLECHAR(function_name->value.str.val, function_name->value.str.len, codepage);
|
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)) {
|
if (FAILED(hr)) {
|
||||||
error_message = php_COM_error_message(hr);
|
error_message = php_COM_error_message(hr);
|
||||||
|
@ -340,7 +337,7 @@ int do_COM_invoke(IDispatch *i_dispatch, pval *function_name, VARIANTARG *var_re
|
||||||
dispparams.cArgs = arg_count;
|
dispparams.cArgs = arg_count;
|
||||||
dispparams.cNamedArgs = 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_METHOD|DISPATCH_PROPERTYGET,
|
LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD|DISPATCH_PROPERTYGET,
|
||||||
&dispparams, var_result, NULL, NULL);
|
&dispparams, var_result, NULL, NULL);
|
||||||
|
|
||||||
|
@ -414,7 +411,7 @@ static int do_COM_offget(VARIANTARG *var_result, VARIANTARG *array, pval *arg_pr
|
||||||
function_name.type = IS_STRING;
|
function_name.type = IS_STRING;
|
||||||
retval = do_COM_invoke(i_dispatch, &function_name, var_result, &arg_property, 1);
|
retval = do_COM_invoke(i_dispatch, &function_name, var_result, &arg_property, 1);
|
||||||
if (cleanup) {
|
if (cleanup) {
|
||||||
i_dispatch->Release();
|
i_dispatch->lpVtbl->Release(i_dispatch);
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -435,7 +432,7 @@ static int do_COM_propget(VARIANTARG *var_result, IDispatch *i_dispatch, pval *a
|
||||||
/* obtain property handler */
|
/* obtain property handler */
|
||||||
propname = php_char_to_OLECHAR(arg_property->value.str.val, arg_property->value.str.len, codepage);
|
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)) {
|
if (FAILED(hr)) {
|
||||||
error_message = php_COM_error_message(hr);
|
error_message = php_COM_error_message(hr);
|
||||||
|
@ -443,7 +440,7 @@ static int do_COM_propget(VARIANTARG *var_result, IDispatch *i_dispatch, pval *a
|
||||||
LocalFree(error_message);
|
LocalFree(error_message);
|
||||||
efree(propname);
|
efree(propname);
|
||||||
if (cleanup) {
|
if (cleanup) {
|
||||||
i_dispatch->Release();
|
i_dispatch->lpVtbl->Release(i_dispatch);
|
||||||
}
|
}
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
@ -451,7 +448,7 @@ static int do_COM_propget(VARIANTARG *var_result, IDispatch *i_dispatch, pval *a
|
||||||
dispparams.cArgs = 0;
|
dispparams.cArgs = 0;
|
||||||
dispparams.cNamedArgs = 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)) {
|
if (FAILED(hr)) {
|
||||||
error_message = php_COM_error_message(hr);
|
error_message = php_COM_error_message(hr);
|
||||||
|
@ -459,14 +456,14 @@ static int do_COM_propget(VARIANTARG *var_result, IDispatch *i_dispatch, pval *a
|
||||||
LocalFree(error_message);
|
LocalFree(error_message);
|
||||||
efree(propname);
|
efree(propname);
|
||||||
if (cleanup) {
|
if (cleanup) {
|
||||||
i_dispatch->Release();
|
i_dispatch->lpVtbl->Release(i_dispatch);
|
||||||
}
|
}
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
efree(propname);
|
efree(propname);
|
||||||
if (cleanup) {
|
if (cleanup) {
|
||||||
i_dispatch->Release();
|
i_dispatch->lpVtbl->Release(i_dispatch);
|
||||||
}
|
}
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -487,7 +484,7 @@ static void do_COM_propput(pval *return_value, IDispatch *i_dispatch, pval *arg_
|
||||||
/* obtain property handler */
|
/* obtain property handler */
|
||||||
propname = php_char_to_OLECHAR(arg_property->value.str.val, arg_property->value.str.len, codepage);
|
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)) {
|
if (FAILED(hr)) {
|
||||||
error_message = php_COM_error_message(hr);
|
error_message = php_COM_error_message(hr);
|
||||||
|
@ -504,7 +501,7 @@ static void do_COM_propput(pval *return_value, IDispatch *i_dispatch, pval *arg_
|
||||||
dispparams.cArgs = 1;
|
dispparams.cArgs = 1;
|
||||||
dispparams.cNamedArgs = 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,
|
LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYPUT,
|
||||||
&dispparams, NULL, NULL, 0);
|
&dispparams, NULL, NULL, 0);
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
|
@ -518,7 +515,7 @@ static void do_COM_propput(pval *return_value, IDispatch *i_dispatch, pval *arg_
|
||||||
dispparams.cArgs = 0;
|
dispparams.cArgs = 0;
|
||||||
dispparams.cNamedArgs = 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,
|
LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET,
|
||||||
&dispparams, &var_result, NULL, 0);
|
&dispparams, &var_result, NULL, 0);
|
||||||
|
|
||||||
|
@ -802,13 +799,13 @@ static int php_COM_load_typelib(char *typelib_name, int mode)
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
interfaces = TypeLib->GetTypeInfoCount();
|
interfaces = TypeLib->lpVtbl->GetTypeInfoCount(TypeLib);
|
||||||
|
|
||||||
TypeLib->GetTypeComp(&TypeComp);
|
TypeLib->lpVtbl->GetTypeComp(TypeLib, &TypeComp);
|
||||||
for (i=0; i<interfaces; i++) {
|
for (i=0; i<interfaces; i++) {
|
||||||
TYPEKIND pTKind;
|
TYPEKIND pTKind;
|
||||||
|
|
||||||
TypeLib->GetTypeInfoType(i, &pTKind);
|
TypeLib->lpVtbl->GetTypeInfoType(TypeLib, i, &pTKind);
|
||||||
if (pTKind==TKIND_ENUM) {
|
if (pTKind==TKIND_ENUM) {
|
||||||
ITypeInfo *TypeInfo;
|
ITypeInfo *TypeInfo;
|
||||||
VARDESC *pVarDesc;
|
VARDESC *pVarDesc;
|
||||||
|
@ -824,15 +821,15 @@ static int php_COM_load_typelib(char *typelib_name, int mode)
|
||||||
efree(EnumId);
|
efree(EnumId);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TypeLib->GetTypeInfo(i, &TypeInfo);
|
TypeLib->lpVtbl->GetTypeInfo(TypeLib, i, &TypeInfo);
|
||||||
|
|
||||||
j=0;
|
j=0;
|
||||||
while (TypeInfo->GetVarDesc(j, &pVarDesc)==S_OK) {
|
while (TypeInfo->lpVtbl->GetVarDesc(TypeInfo, j, &pVarDesc)==S_OK) {
|
||||||
BSTR bstr_ids;
|
BSTR bstr_ids;
|
||||||
char *ids;
|
char *ids;
|
||||||
zend_constant c;
|
zend_constant c;
|
||||||
|
|
||||||
TypeInfo->GetNames(pVarDesc->memid, &bstr_ids, 1, &NameCount);
|
TypeInfo->lpVtbl->GetNames(TypeInfo, pVarDesc->memid, &bstr_ids, 1, &NameCount);
|
||||||
if (NameCount!=1) {
|
if (NameCount!=1) {
|
||||||
j++;
|
j++;
|
||||||
continue;
|
continue;
|
||||||
|
@ -848,12 +845,12 @@ static int php_COM_load_typelib(char *typelib_name, int mode)
|
||||||
/*printf("%s -> %ld\n", ids, pVarDesc->lpvarValue->lVal);*/
|
/*printf("%s -> %ld\n", ids, pVarDesc->lpvarValue->lVal);*/
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
TypeInfo->Release();
|
TypeInfo->lpVtbl->Release(TypeInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TypeLib->Release();
|
TypeLib->lpVtbl->Release(TypeLib);
|
||||||
efree(p);
|
efree(p);
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,13 +59,9 @@
|
||||||
#include <iostream.h>
|
#include <iostream.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
extern "C" { /* this should be included in the includes itself !! */
|
|
||||||
|
|
||||||
#include "php.h"
|
#include "php.h"
|
||||||
#include "php_ini.h"
|
#include "php_ini.h"
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "conversion.h"
|
#include "conversion.h"
|
||||||
#include "unknwn.h"
|
#include "unknwn.h"
|
||||||
|
|
||||||
|
@ -125,7 +121,7 @@ static char *php_string_from_clsid(const CLSID clsid)
|
||||||
LPOLESTR ole_clsid;
|
LPOLESTR ole_clsid;
|
||||||
char *clsid_str;
|
char *clsid_str;
|
||||||
|
|
||||||
StringFromCLSID(clsid, &ole_clsid);
|
StringFromCLSID(&clsid, &ole_clsid);
|
||||||
clsid_str = php_OLECHAR_to_char(ole_clsid, NULL, 0, codepage);
|
clsid_str = php_OLECHAR_to_char(ole_clsid, NULL, 0, codepage);
|
||||||
LocalFree(ole_clsid);
|
LocalFree(ole_clsid);
|
||||||
|
|
||||||
|
@ -135,7 +131,8 @@ static char *php_string_from_clsid(const CLSID clsid)
|
||||||
static void php_idispatch_destructor(zend_rsrc_list_entry *rsrc)
|
static void php_idispatch_destructor(zend_rsrc_list_entry *rsrc)
|
||||||
{
|
{
|
||||||
IDispatch *i_dispatch = (IDispatch *)rsrc->ptr;
|
IDispatch *i_dispatch = (IDispatch *)rsrc->ptr;
|
||||||
i_dispatch->Release();
|
|
||||||
|
i_dispatch->lpVtbl->Release(i_dispatch);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PHP_INI_MH(OnTypelibFileChange)
|
static PHP_INI_MH(OnTypelibFileChange)
|
||||||
|
@ -270,7 +267,7 @@ PHP_FUNCTION(COM_load)
|
||||||
|
|
||||||
/* obtain IDispatch */
|
/* obtain IDispatch */
|
||||||
if (!server_name) {
|
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 {
|
} else {
|
||||||
COSERVERINFO server_info;
|
COSERVERINFO server_info;
|
||||||
MULTI_QI pResults;
|
MULTI_QI pResults;
|
||||||
|
@ -283,7 +280,7 @@ PHP_FUNCTION(COM_load)
|
||||||
pResults.pIID = &IID_IDispatch;
|
pResults.pIID = &IID_IDispatch;
|
||||||
pResults.pItf = NULL;
|
pResults.pItf = NULL;
|
||||||
pResults.hr = S_OK;
|
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)) {
|
if (SUCCEEDED(hr)) {
|
||||||
hr = pResults.hr;
|
hr = pResults.hr;
|
||||||
i_dispatch = (IDispatch *) pResults.pItf;
|
i_dispatch = (IDispatch *) pResults.pItf;
|
||||||
|
@ -318,7 +315,7 @@ int do_COM_invoke(IDispatch *i_dispatch, pval *function_name, VARIANTARG *var_re
|
||||||
|
|
||||||
funcname = php_char_to_OLECHAR(function_name->value.str.val, function_name->value.str.len, codepage);
|
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)) {
|
if (FAILED(hr)) {
|
||||||
error_message = php_COM_error_message(hr);
|
error_message = php_COM_error_message(hr);
|
||||||
|
@ -340,7 +337,7 @@ int do_COM_invoke(IDispatch *i_dispatch, pval *function_name, VARIANTARG *var_re
|
||||||
dispparams.cArgs = arg_count;
|
dispparams.cArgs = arg_count;
|
||||||
dispparams.cNamedArgs = 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_METHOD|DISPATCH_PROPERTYGET,
|
LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD|DISPATCH_PROPERTYGET,
|
||||||
&dispparams, var_result, NULL, NULL);
|
&dispparams, var_result, NULL, NULL);
|
||||||
|
|
||||||
|
@ -414,7 +411,7 @@ static int do_COM_offget(VARIANTARG *var_result, VARIANTARG *array, pval *arg_pr
|
||||||
function_name.type = IS_STRING;
|
function_name.type = IS_STRING;
|
||||||
retval = do_COM_invoke(i_dispatch, &function_name, var_result, &arg_property, 1);
|
retval = do_COM_invoke(i_dispatch, &function_name, var_result, &arg_property, 1);
|
||||||
if (cleanup) {
|
if (cleanup) {
|
||||||
i_dispatch->Release();
|
i_dispatch->lpVtbl->Release(i_dispatch);
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -435,7 +432,7 @@ static int do_COM_propget(VARIANTARG *var_result, IDispatch *i_dispatch, pval *a
|
||||||
/* obtain property handler */
|
/* obtain property handler */
|
||||||
propname = php_char_to_OLECHAR(arg_property->value.str.val, arg_property->value.str.len, codepage);
|
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)) {
|
if (FAILED(hr)) {
|
||||||
error_message = php_COM_error_message(hr);
|
error_message = php_COM_error_message(hr);
|
||||||
|
@ -443,7 +440,7 @@ static int do_COM_propget(VARIANTARG *var_result, IDispatch *i_dispatch, pval *a
|
||||||
LocalFree(error_message);
|
LocalFree(error_message);
|
||||||
efree(propname);
|
efree(propname);
|
||||||
if (cleanup) {
|
if (cleanup) {
|
||||||
i_dispatch->Release();
|
i_dispatch->lpVtbl->Release(i_dispatch);
|
||||||
}
|
}
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
@ -451,7 +448,7 @@ static int do_COM_propget(VARIANTARG *var_result, IDispatch *i_dispatch, pval *a
|
||||||
dispparams.cArgs = 0;
|
dispparams.cArgs = 0;
|
||||||
dispparams.cNamedArgs = 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)) {
|
if (FAILED(hr)) {
|
||||||
error_message = php_COM_error_message(hr);
|
error_message = php_COM_error_message(hr);
|
||||||
|
@ -459,14 +456,14 @@ static int do_COM_propget(VARIANTARG *var_result, IDispatch *i_dispatch, pval *a
|
||||||
LocalFree(error_message);
|
LocalFree(error_message);
|
||||||
efree(propname);
|
efree(propname);
|
||||||
if (cleanup) {
|
if (cleanup) {
|
||||||
i_dispatch->Release();
|
i_dispatch->lpVtbl->Release(i_dispatch);
|
||||||
}
|
}
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
efree(propname);
|
efree(propname);
|
||||||
if (cleanup) {
|
if (cleanup) {
|
||||||
i_dispatch->Release();
|
i_dispatch->lpVtbl->Release(i_dispatch);
|
||||||
}
|
}
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -487,7 +484,7 @@ static void do_COM_propput(pval *return_value, IDispatch *i_dispatch, pval *arg_
|
||||||
/* obtain property handler */
|
/* obtain property handler */
|
||||||
propname = php_char_to_OLECHAR(arg_property->value.str.val, arg_property->value.str.len, codepage);
|
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)) {
|
if (FAILED(hr)) {
|
||||||
error_message = php_COM_error_message(hr);
|
error_message = php_COM_error_message(hr);
|
||||||
|
@ -504,7 +501,7 @@ static void do_COM_propput(pval *return_value, IDispatch *i_dispatch, pval *arg_
|
||||||
dispparams.cArgs = 1;
|
dispparams.cArgs = 1;
|
||||||
dispparams.cNamedArgs = 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,
|
LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYPUT,
|
||||||
&dispparams, NULL, NULL, 0);
|
&dispparams, NULL, NULL, 0);
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
|
@ -518,7 +515,7 @@ static void do_COM_propput(pval *return_value, IDispatch *i_dispatch, pval *arg_
|
||||||
dispparams.cArgs = 0;
|
dispparams.cArgs = 0;
|
||||||
dispparams.cNamedArgs = 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,
|
LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET,
|
||||||
&dispparams, &var_result, NULL, 0);
|
&dispparams, &var_result, NULL, 0);
|
||||||
|
|
||||||
|
@ -802,13 +799,13 @@ static int php_COM_load_typelib(char *typelib_name, int mode)
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
interfaces = TypeLib->GetTypeInfoCount();
|
interfaces = TypeLib->lpVtbl->GetTypeInfoCount(TypeLib);
|
||||||
|
|
||||||
TypeLib->GetTypeComp(&TypeComp);
|
TypeLib->lpVtbl->GetTypeComp(TypeLib, &TypeComp);
|
||||||
for (i=0; i<interfaces; i++) {
|
for (i=0; i<interfaces; i++) {
|
||||||
TYPEKIND pTKind;
|
TYPEKIND pTKind;
|
||||||
|
|
||||||
TypeLib->GetTypeInfoType(i, &pTKind);
|
TypeLib->lpVtbl->GetTypeInfoType(TypeLib, i, &pTKind);
|
||||||
if (pTKind==TKIND_ENUM) {
|
if (pTKind==TKIND_ENUM) {
|
||||||
ITypeInfo *TypeInfo;
|
ITypeInfo *TypeInfo;
|
||||||
VARDESC *pVarDesc;
|
VARDESC *pVarDesc;
|
||||||
|
@ -824,15 +821,15 @@ static int php_COM_load_typelib(char *typelib_name, int mode)
|
||||||
efree(EnumId);
|
efree(EnumId);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TypeLib->GetTypeInfo(i, &TypeInfo);
|
TypeLib->lpVtbl->GetTypeInfo(TypeLib, i, &TypeInfo);
|
||||||
|
|
||||||
j=0;
|
j=0;
|
||||||
while (TypeInfo->GetVarDesc(j, &pVarDesc)==S_OK) {
|
while (TypeInfo->lpVtbl->GetVarDesc(TypeInfo, j, &pVarDesc)==S_OK) {
|
||||||
BSTR bstr_ids;
|
BSTR bstr_ids;
|
||||||
char *ids;
|
char *ids;
|
||||||
zend_constant c;
|
zend_constant c;
|
||||||
|
|
||||||
TypeInfo->GetNames(pVarDesc->memid, &bstr_ids, 1, &NameCount);
|
TypeInfo->lpVtbl->GetNames(TypeInfo, pVarDesc->memid, &bstr_ids, 1, &NameCount);
|
||||||
if (NameCount!=1) {
|
if (NameCount!=1) {
|
||||||
j++;
|
j++;
|
||||||
continue;
|
continue;
|
||||||
|
@ -848,12 +845,12 @@ static int php_COM_load_typelib(char *typelib_name, int mode)
|
||||||
/*printf("%s -> %ld\n", ids, pVarDesc->lpvarValue->lVal);*/
|
/*printf("%s -> %ld\n", ids, pVarDesc->lpvarValue->lVal);*/
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
TypeInfo->Release();
|
TypeInfo->lpVtbl->Release(TypeInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TypeLib->Release();
|
TypeLib->lpVtbl->Release(TypeLib);
|
||||||
efree(p);
|
efree(p);
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue