Re: ORA_FFI ->API(FindFirstFile)

From: Ken Niedermeyer <Ken.Niedermeyer_at_boeing.com>
Date: 1997/06/24
Message-ID: <33AFDCA9.1711_at_boeing.com>#1/1


Daniel Poweleit wrote:

>FUNCTION icd_FindFirstFile(fh IN ORA_FFI.FUNCHANDLETYPE,
> lpFileName IN OUT VARCHAR2,
> dwFileAttribute IN OUT >PLS_INTEGER,
> dwCreationTimeL IN OUT >PLS_INTEGER,
> dwCreationTimeH IN OUT >PLS_INTEGER,
> dwLastAccessL IN OUT >PLS_INTEGER,
> dwLastAccessH IN OUT >PLS_INTEGER,
> dwLastWriteL IN OUT >PLS_INTEGER,
> dwLastWriteH IN OUT >PLS_INTEGER,
> nFileSizeH IN OUT PLS_INTEGER,
> nFileSizeL IN OUT PLS_INTEGER,
> dwReserved0 IN OUT PLS_INTEGER,
> dwReserved1 IN OUT PLS_INTEGER,
> cFileName IN OUT VARCHAR2,
> cAlternate IN OUT VARCHAR2)
> RETURN PLS_INTEGER;
> PRAGMA interface (c, icd_FindFirstFile, 11265);> > > ORA_FFI.Register_Return(f3,ORA_FFI.C_INT);
> ORA_FFI.Register_Parameter(f3,ORA_FFI.C_CHAR_PTR);
> ORA_FFI.Register_Parameter(f3,ORA_FFI.C_INT);
> ORA_FFI.Register_Parameter(f3,ORA_FFI.C_INT);
> ORA_FFI.Register_Parameter(f3,ORA_FFI.C_INT);
> ORA_FFI.Register_Parameter(f3,ORA_FFI.C_INT);
> ORA_FFI.Register_Parameter(f3,ORA_FFI.C_INT);
> ORA_FFI.Register_Parameter(f3,ORA_FFI.C_INT);
> ORA_FFI.Register_Parameter(f3,ORA_FFI.C_INT);
> ORA_FFI.Register_Parameter(f3,ORA_FFI.C_INT);
> ORA_FFI.Register_Parameter(f3,ORA_FFI.C_INT);
> ORA_FFI.Register_Parameter(f3,ORA_FFI.C_INT);
> ORA_FFI.Register_Parameter(f3,ORA_FFI.C_INT);
> ORA_FFI.Register_Parameter(f3,ORA_FFI.C_CHAR_PTR);
> ORA_FFI.Register_Parameter(f3,ORA_FFI.C_CHAR_PTR);
> END;
> --
> Daniel Poweleit from Berlin Germany

If you are attempting to return some information back to the calling form, you will need to make the C_INTs C_INT_PTRs. It took me a while to find that little gem out. The biggest thing when using ORA_FFI that I have found (and my experiance is on a SUN SparcStation using C not a windows system using pascal), is that everything needs to line up exactly.

--
Ken Niedermeyer
Boeing Central Information Systems
Ken.Niedermeyer_at_boeing.com
Received on Tue Jun 24 1997 - 00:00:00 CEST

Original text of this message