Erro não especificado ao chamar o Word CentimetersToPoints via OLE

O seguinte código falha com um erro OLE 800040005 "não especificado" noCentimetersToPoint chamada quando executado em Delphi (XE), a versão VBS ou VBA semelhante passa

var w : OleVariant;

w := CreateOleObject('Word.Application');
w.Visible := true;
Writeln(w.CentimetersToPoints(2.0));

FWIW a biblioteca de tipos dá

/ [id(0x00000173), helpcontext(0x09700173)]
// single CentimetersToPoints([in] single Centimeters);

Por padrão, o Delphi só passa os valores flutuantes como Double, então eu tentei chamarIDispatch.Invoke diretamente e passando o argumento comoVT_R4, mas sem melhores resultados.

edit: versão do VB que funciona (salve em .vbs)

set w = CreateObject("Word.Application")
w.Visible = true
msgbox w.CentimetersToPoints(2.0)

Alguma outra sugestão do que poderia estar dando errado?

questionAnswers(1)

yourAnswerToTheQuestion