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?