Hi,
I am trying to connect to a COM component using PHP, but keep on recieving an "Unexpected error has occured" message.
The COM component code is
Option Explicit
Public Enum ApplicationErr
Unexpected = Error.Unexpected
End Enum
Private Const m_csClassName As String = "XYZ.Application"
Public Sub Initialize(ByVal udl As String, ByVal log)
On Error GoTo ErrInitialize
Dim enumErrorCode As xyzError
enumErrorCode = Success
Dim oObjectContext As ObjectContext
Set oObjectContext = GetObjectContext()
oObjectContext("Session")("ConString") = "FILE NAME=" & App.Path & "\" & udl
oObjectContext("Session")("ErrLog") = App.Path & "\" & log
ExitInitialize:
On Error Resume Next
Set oObjectContext = Nothing
If enumErrorCode <> Success Then
On Error GoTo 0
Call Err.Raise(enumErrorCode, m_csClassName, GetErrorDescription(enumErrorCode))
End If
Exit Sub
ErrInitialize:
If Err.Source = m_csClassName Then
enumErrorCode = Err.Number
Else
enumErrorCode = Unexpected
End If
If Not (Err.Source = "XYZ.Application" And Err.Number = XYZ.ApplicationErr.Unexpected) Then Call LogError(m_csClassName & ".Initialize")
Resume ExitInitialize
End Sub
The PHP code used is :
<?php
try {
$udl = new VARIANT("XYZ.udl",VT_BSTR);
$errorlog = new VARIANT("ErrorLog.txt",VT_BSTR);
$Q = new COM("XYZ.Application") or die("Cannot start XYZ");
$lUserId = $Q->Initialize($udl,$errorlog);
echo $lUserId;
}
catch (com_exception $e)
{
$lUserId = array('errorCode' => $e->getCode(),
'errorMessage' => $e->getMessage(),
'errorFile' => $e->getFile(),
'errorLine' => $e->getLine());
}
echo "<pre>";
print_r($lUserId);
echo "</pre>";
?>
It always generates an exception. Can someone please help me resolve this issue.
Also could it be a Type mismatch error?
thanks.