It seams that Delphi instead of EDT_XXXXX enums sends something else to IrrPascal.dll

Something that I don't understand... if I write code like this
Code:
constructor TIrrDevice.Create(driverType: VIDEO_DRIVER_TYPE; Width: Integer;
  Height: Integer; bits: Integer; fullscreen: Boolean; stencilbuffer: Boolean;
  vsync: Boolean; reciver: IIrrEventReceiver);
begin
  inherited Create(device_createDevice(EDT_OPENGL, Width, Height, bits,
    fullscreen, stencilbuffer, vsync), False, False);

  if GetIrrObject = nil then
    raise Exception.Create('Error creating Irrlicht Device');
    
  EventReceiver := reciver;
  FResizeAble := False;
  FWindowCaption := '';
end;
notice that EDT_OPENGL is set as the first parameter to device_createDevice function, everything is working just right but if I write driverType wrong value is passed to IrrPascal.dll

I really don't know what to do. Does Delphi requires some special way of sending and receiving enums to and from dlls with cdecl calling convention?