zeev            Tue Feb 20 14:32:28 2001 EDT

  Modified files:              
    /php4/ext/com       COM.c 
  Log:
  Fix Win32 build
  
  
Index: php4/ext/com/COM.c
diff -u php4/ext/com/COM.c:1.4 php4/ext/com/COM.c:1.5
--- php4/ext/com/COM.c:1.4      Sun Feb 18 08:49:05 2001
+++ php4/ext/com/COM.c  Tue Feb 20 14:32:28 2001
@@ -59,13 +59,9 @@
 #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"
 
@@ -125,7 +121,7 @@
        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);
 
@@ -135,7 +131,8 @@
 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)
@@ -270,7 +267,7 @@
 
        /* 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;
@@ -283,7 +280,7 @@
                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;
@@ -318,7 +315,7 @@
 
        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);
@@ -340,7 +337,7 @@
        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);
 
@@ -414,7 +411,7 @@
                        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;
                }
@@ -435,7 +432,7 @@
        /* 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);
@@ -443,7 +440,7 @@
                LocalFree(error_message);
                efree(propname);
                if (cleanup) {
-                       i_dispatch->Release();
+                       i_dispatch->lpVtbl->Release(i_dispatch);
                }
                return FAILURE;
        }
@@ -451,7 +448,7 @@
        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);
@@ -459,14 +456,14 @@
                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;
 }
@@ -487,7 +484,7 @@
        /* 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);
@@ -504,7 +501,7 @@
        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)) {
@@ -518,7 +515,7 @@
        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);
 
@@ -802,13 +799,13 @@
                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;
@@ -824,15 +821,15 @@
                        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;
@@ -848,12 +845,12 @@
                                /*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;
 }



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to