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?

Respuestas a la pregunta(1)

Su respuesta a la pregunta