Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
We have an OLE server we've developed with Delphi (C++ builder actually). It has some methods with optional parameters. The ones with explicit defaults are fine, but the Type Library Editor does not allow a default for object (pointer) parameters (presumably because it knows they should be NULL). These parameters are causing problems with Win32::OLE in perl.
Here are the Win32::OLE->LastError()s for a method with an optional 2nd parameter:
$OleObj->Method($strFirstArg) gives: Win32::OLE(0.1709) error 0x80020005: "Type mismatch" in METHOD/PROPERTYGET "ExportIntegrationByCells" argument 1 $OleObj->Method($strFirstArg, undef) gives: Win32::OLE(0.1709) error 0x80020005: "Type mismatch" in METHOD/PROPERTYGET "ExportIntegrationByCells" argument 2 $OleObj->Method($strFirstArg, {Parameter2Name => undef}) gives: Win32::OLE(0.1709) error 0x80020005: "Type mismatch" in METHOD/PROPERTYGET "ExportIntegrationByCells" argument "Paramet +er2Name"
The hideous VB script manages if I put a Nothing as the 2nd argument, surely Perl should do better ;-?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: OLE optional parameter required
by jand (Friar) on Mar 02, 2010 at 08:28 UTC | |
by Anonymous Monk on Mar 02, 2010 at 22:12 UTC | |
by jand (Friar) on Mar 03, 2010 at 09:17 UTC |