昔試したことがあるけど、c_inline_cでAPIが呼べます。
ていうかコンパイル過程で途中Cに直す時ソースがそのまま挿入されるだけ…。

MessageBox(Wnd: POINTER; Text, Title: String; Flags: Integer): Integer is
local
 TextC: POINTER;
 TitleC: POINTER;
do
 TextC := Text.to_external;
 TitleC := Title.to_external;
 c_inline_c("R = MessageBox(a1, _TextC, _TitleC, a4);");
end;

Eiffelは型名のエイリアスとか使えないので、不便極まりないです。
少しだけ格闘して、実用のこと考えて無い言語と思い見限りましたもの。

-- 私が何か見落としているだけかも