PROCEDURE FFI_USER IS lh_USER ora_ffi.libHandleType; fh_GetActiveWindow ora_ffi.funcHandleType; fh_MessageBox ora_ffi.funcHandleType; fh_WinHelp ora_ffi.funcHandleType; BEGIN BEGIN lh_USER := ora_ffi.find_library('USER.EXE'); EXCEPTION WHEN ora_ffi.FFI_ERROR THEN lh_USER := ora_ffi.load_library(NULL,'USER.EXE'); END ; fh_GetActiveWindow := ora_ffi.register_function(lh_USER,'GetActiveWindow',ora_ffi.PASCAL_STD); ora_ffi.register_return(fh_GetActiveWindow,ORA_FFI.C_INT); fh_MessageBox := ora_ffi.register_function(lh_USER,'MessageBox',ora_ffi.PASCAL_STD); ora_ffi.register_parameter(fh_MessageBox,ORA_FFI.C_INT); ora_ffi.register_parameter(fh_MessageBox,ORA_FFI.C_CHAR_PTR); ora_ffi.register_parameter(fh_MessageBox,ORA_FFI.C_CHAR_PTR); ora_ffi.register_parameter(fh_MessageBox,ORA_FFI.C_INT); ora_ffi.register_return(fh_MessageBox,ORA_FFI.C_INT); fh_WinHelp := ora_ffi.register_function(lh_USER,'WinHelp',ora_ffi.PASCAL_STD); ora_ffi.register_parameter(fh_WinHelp,ORA_FFI.C_INT); ora_ffi.register_parameter(fh_WinHelp,ORA_FFI.C_CHAR_PTR); ora_ffi.register_parameter(fh_WinHelp,ORA_FFI.C_INT); ora_ffi.register_parameter(fh_WinHelp,ORA_FFI.C_CHAR_PTR); ora_ffi.register_return(fh_WinHelp,ORA_FFI.C_INT); END FFI_USER;