Re: MS HELP and Oracle Forms???

From: Sunil Mushran <smushran_at_us.oracle.com>
Date: 1995/11/08
Message-ID: <47ri55$nt3_at_inet-nntp-gw-1.us.oracle.com>#1/1


USERNAME_at_iac.net (USERNAME) wrote:

>Does anyone have experience with integrating MS Help with Oracle Forms
>4.5.5? If so, how did it go? Any tips for me???
 

>Thanks,
 

>tjl_at_iac.net

PL/SQL Block to Winhelp function in package WinHelp: BEGIN
  WinHelp.WinHelp(0, "Help.hlp", 3, 0);
END; Note:
3 <== HELP_CONTENTS (For HELP_CONTEXT set it to 1 and enter the context value as the last param).

The ORAFFI package for WinHelp is as follows:

/***************************************************
** Package : WINHELP
** Function: WINHELP
**   Sample PLSQL package uses ORA_FFI functions to 
** call a function WinHelp in library USER.EXE.
***************************************************/
PACKAGE WinHelp IS
  FUNCTION WinHelp ( hwnd IN PLS_INTEGER, lpszHelpFile IN VARCHAR2,
                     fuCommand IN PLS_INTEGER, dwData IN PLS_INTEGER )
  RETURN PLS_INTEGER;
END WinHelp;

PACKAGE BODY WinHelp IS
  lh_USER ora_ffi.libHandleType;
  fh_WinHelp ora_ffi.funcHandleType;

  FUNCTION i_WinHelp ( funcHandle IN ora_ffi.funcHandleType,

                       hwnd IN PLS_INTEGER, 
                       lpszHelpFile IN OUT VARCHAR2,
                       fuCommand IN PLS_INTEGER,
                       dwData IN PLS_INTEGER )
    RETURN PLS_INTEGER;
    PRAGMA INTERFACE(C,i_WinHelp,11265);

  FUNCTION WinHelp ( hwnd IN PLS_INTEGER, lpszHelpFile IN VARCHAR2,

                     fuCommand IN PLS_INTEGER, dwData IN PLS_INTEGER )
    RETURN PLS_INTEGER IS 
      hwnd_l PLS_INTEGER := hwnd;
      lpszHelpFile_l VARCHAR2(512) := lpszHelpFile;
      fuCommand_l PLS_INTEGER := fuCommand;
      dwData_l PLS_INTEGER := dwData;
      rc PLS_INTEGER;
      BEGIN 
        rc  := i_WinHelp ( fh_WinHelp, hwnd_l, lpszHelpFile_l, 
                           fuCommand_l, dwData_l );
        RETURN (rc);
      END ;

  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_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_LONG );     ora_ffi.register_return ( fh_WinHelp, ORA_FFI.C_INT );

  END WinHelp; Received on Wed Nov 08 1995 - 00:00:00 CET

Original text of this message