Error no especificado al llamar a Word CentimetersToPoints a través de OLE
El siguiente código falla con un error OLE 800040005 "no especificado" en elCentimetersToPoint
llamada cuando se ejecuta en Delphi (XE), la versión de VBS o VBA similar pasa
var w : OleVariant;
w := CreateOleObject('Word.Application');
w.Visible := true;
Writeln(w.CentimetersToPoints(2.0));
FWIW la biblioteca de tipos da
/ [id(0x00000173), helpcontext(0x09700173)]
// single CentimetersToPoints([in] single Centimeters);
De forma predeterminada, Delphi solo pasa los valores flotantes como Doble, así que intenté llamarIDispatch.Invoke
directamente y pasando el argumento comoVT_R4
, pero sin mejores resultados.
edición: versión de VB que funciona (guardar en .vbs)
set w = CreateObject("Word.Application")
w.Visible = true
msgbox w.CentimetersToPoints(2.0)
¿Alguna otra sugerencia de lo que podría salir mal?