!
! ********************************************************************
! *                                                                  *
! *  Copyright 2001 Compaq Computer Corporation                      *
! *                                                                  *
! *  Compaq and the Compaq logo are trademarks of Compaq Information *
! *  Technologies Group, L.P.                                        *
! *                                                                  *
! *  Confidential computer software. Valid license from Compaq       *
! *  required for possession, use or copying. Consistent with FAR    *
! *  12.211 and 12.212, Commercial Computer Software, Computer       *
! *  Software Documentation, and Technical Data for Commercial Items *
! *  are licensed to the U.S. Government under vendor's standard     *
! *  commercial license.                                             *
! *                                                                  *
! ********************************************************************
!
!

MODULE DFAUTO
!dec$objcomment lib: "dfauto.lib"
      USE DFCOMTY
      IMPLICIT NONE
! Automation functions
    INTERFACE
    ! Method invocation arguments
        INTEGER*4 FUNCTION AUTOALLOCATEINVOKEARGS ()
        !DEC$ ATTRIBUTES DEFAULT :: AUTOALLOCATEINVOKEARGS
        END FUNCTION AUTOALLOCATEINVOKEARGS

        SUBROUTINE AUTODEALLOCATEINVOKEARGS (invoke_args)
        !DEC$ ATTRIBUTES DEFAULT :: AUTODEALLOCATEINVOKEARGS
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
        END SUBROUTINE AUTODEALLOCATEINVOKEARGS

    ! Properties
        INTEGER*4 FUNCTION AUTOSETPROPERTYINVOKEARGS(idispatch, invoke_args)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYINVOKEARGS
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
        END FUNCTION AUTOSETPROPERTYINVOKEARGS
                                                         
        INTEGER*4 FUNCTION AUTOGETPROPERTYINVOKEARGS(idispatch, invoke_args)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYINVOKEARGS
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
        END FUNCTION AUTOGETPROPERTYINVOKEARGS
                                                         
        INTEGER*4 FUNCTION AUTOSETPROPERTYBYID(idispatch, memid, invoke_args)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYBYID
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
        END FUNCTION AUTOSETPROPERTYBYID
                                                         
        INTEGER*4 FUNCTION AUTOGETPROPERTYBYID(idispatch, memid, invoke_args)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYBYID
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
        END FUNCTION AUTOGETPROPERTYBYID
      
    ! Exception information 
        SUBROUTINE AUTOGETEXCEPTINFO (invoke_args, code, source, description, &
              help_file, help_context, scode)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETEXCEPTINFO
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          INTEGER*2,     INTENT(OUT)          :: code 
          !DEC$ ATTRIBUTES REFERENCE          :: code
          CHARACTER*(*), INTENT(OUT)          :: source 
          !DEC$ ATTRIBUTES REFERENCE          :: source
          CHARACTER*(*), INTENT(OUT)          :: description 
          !DEC$ ATTRIBUTES REFERENCE          :: description
          CHARACTER*(*), INTENT(OUT)          :: help_file 
          !DEC$ ATTRIBUTES REFERENCE          :: help_file
          INTEGER*4,     INTENT(OUT)          :: help_context 
          !DEC$ ATTRIBUTES REFERENCE          :: help_context
          INTEGER*4,     INTENT(OUT)          :: scode 
          !DEC$ ATTRIBUTES REFERENCE          :: scode
        END SUBROUTINE AUTOGETEXCEPTINFO
                                                                 
      END INTERFACE

    ! AUTOINVOKE generic interface
      INTERFACE AUTOINVOKE
        INTEGER*4 FUNCTION AUTOINVOKEBYNAME(idispatch, name, invoke_args)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOINVOKEBYNAME
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
        END FUNCTION AUTOINVOKEBYNAME
        ! NOTE:  When using AUTOINVOKEBYID, all calls to AUTOADDARG
        !        must use positional arguments (i.e. "$ARGnn")
        INTEGER*4 FUNCTION AUTOINVOKEBYID(idispatch, memid, invoke_args)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOINVOKEBYID
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
        END FUNCTION AUTOINVOKEBYID
      END INTERFACE

    ! AUTOSETPROPERTY generic interface
      INTERFACE AUTOSETPROPERTY
        INTEGER*4 FUNCTION AUTOSETPROPERTYINTEGER2(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYINTEGER2
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*2,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYINTEGER2
        INTEGER*4 FUNCTION AUTOSETPROPERTYINTEGER2ARRAY(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYINTEGER2ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*2, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYINTEGER2ARRAY
        INTEGER*4 FUNCTION AUTOSETPROPERTYINTEGER4(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYINTEGER4
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*4,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYINTEGER4
        INTEGER*4 FUNCTION AUTOSETPROPERTYINTEGER4ARRAY(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYINTEGER4ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*4, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYINTEGER4ARRAY
        INTEGER*4 FUNCTION AUTOSETPROPERTYREAL4(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYREAL4
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*4,        INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYREAL4
        INTEGER*4 FUNCTION AUTOSETPROPERTYREAL4ARRAY(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYREAL4ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*4, DIMENSION(:), INTENT(IN)    :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYREAL4ARRAY
        INTEGER*4 FUNCTION AUTOSETPROPERTYREAL8(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYREAL8
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*8,        INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYREAL8
        INTEGER*4 FUNCTION AUTOSETPROPERTYREAL8ARRAY(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYREAL8ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*8, DIMENSION(:), INTENT(IN)    :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYREAL8ARRAY
        INTEGER*4 FUNCTION AUTOSETPROPERTYLOGICAL2(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYLOGICAL2
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*2,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYLOGICAL2
        INTEGER*4 FUNCTION AUTOSETPROPERTYLOGICAL2ARRAY(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYLOGICAL2ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*2, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYLOGICAL2ARRAY
        INTEGER*4 FUNCTION AUTOSETPROPERTYLOGICAL4(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYLOGICAL4
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*4,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYLOGICAL4
        INTEGER*4 FUNCTION AUTOSETPROPERTYLOGICAL4ARRAY(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYLOGICAL4ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*4, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYLOGICAL4ARRAY
        INTEGER*4 FUNCTION AUTOSETPROPERTYCHARACTER(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYCHARACTER
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          CHARACTER*(*), INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYCHARACTER
        INTEGER*4 FUNCTION AUTOSETPROPERTYCHARACTERARRAY(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYCHARACTERARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          CHARACTER*(*), DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYCHARACTERARRAY
        INTEGER*4 FUNCTION AUTOSETPROPERTYBYIDINTEGER2(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYBYIDINTEGER2
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          INTEGER*2,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYBYIDINTEGER2
        INTEGER*4 FUNCTION AUTOSETPROPERTYBYIDINTEGER2ARRAY(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYBYIDINTEGER2ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          INTEGER*2, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYBYIDINTEGER2ARRAY
        INTEGER*4 FUNCTION AUTOSETPROPERTYBYIDINTEGER4(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYBYIDINTEGER4
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          INTEGER*4,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYBYIDINTEGER4
        INTEGER*4 FUNCTION AUTOSETPROPERTYBYIDINTEGER4ARRAY(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYBYIDINTEGER4ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          INTEGER*4, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYBYIDINTEGER4ARRAY
        INTEGER*4 FUNCTION AUTOSETPROPERTYBYIDREAL4(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYBYIDREAL4
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          REAL*4,        INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYBYIDREAL4
        INTEGER*4 FUNCTION AUTOSETPROPERTYBYIDREAL4ARRAY(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYBYIDREAL4ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          REAL*4, DIMENSION(:), INTENT(IN)    :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYBYIDREAL4ARRAY
        INTEGER*4 FUNCTION AUTOSETPROPERTYBYIDREAL8(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYBYIDREAL8
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          REAL*8,        INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYBYIDREAL8
        INTEGER*4 FUNCTION AUTOSETPROPERTYBYIDREAL8ARRAY(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYBYIDREAL8ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          REAL*8, DIMENSION(:), INTENT(IN)    :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYBYIDREAL8ARRAY
        INTEGER*4 FUNCTION AUTOSETPROPERTYBYIDLOGICAL2(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYBYIDLOGICAL2
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          LOGICAL*2,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYBYIDLOGICAL2
        INTEGER*4 FUNCTION AUTOSETPROPERTYBYIDLOGICAL2ARRAY(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYBYIDLOGICAL2ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          LOGICAL*2, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYBYIDLOGICAL2ARRAY
        INTEGER*4 FUNCTION AUTOSETPROPERTYBYIDLOGICAL4(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYBYIDLOGICAL4
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          LOGICAL*4,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYBYIDLOGICAL4
        INTEGER*4 FUNCTION AUTOSETPROPERTYBYIDLOGICAL4ARRAY(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYBYIDLOGICAL4ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          LOGICAL*4, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYBYIDLOGICAL4ARRAY
        INTEGER*4 FUNCTION AUTOSETPROPERTYBYIDCHARACTER(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYBYIDCHARACTER
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          CHARACTER*(*), INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYBYIDCHARACTER
        INTEGER*4 FUNCTION AUTOSETPROPERTYBYIDCHARACTERARRAY(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOSETPROPERTYBYIDCHARACTERARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          CHARACTER*(*), DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOSETPROPERTYBYIDCHARACTERARRAY
      END INTERFACE

    ! AUTOGETPROPERTY generic interface
      INTERFACE AUTOGETPROPERTY
        INTEGER*4 FUNCTION AUTOGETPROPERTYINTEGER2(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYINTEGER2
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*2,     INTENT(OUT)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYINTEGER2
        INTEGER*4 FUNCTION AUTOGETPROPERTYINTEGER2ARRAY(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYINTEGER2ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*2, DIMENSION(:), INTENT(OUT):: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYINTEGER2ARRAY
        INTEGER*4 FUNCTION AUTOGETPROPERTYINTEGER4(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYINTEGER4
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*4,     INTENT(OUT)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYINTEGER4
        INTEGER*4 FUNCTION AUTOGETPROPERTYINTEGER4ARRAY(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYINTEGER4ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*4, DIMENSION(:), INTENT(OUT):: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYINTEGER4ARRAY
        INTEGER*4 FUNCTION AUTOGETPROPERTYREAL4(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYREAL4
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*4,        INTENT(OUT)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYREAL4
        INTEGER*4 FUNCTION AUTOGETPROPERTYREAL4ARRAY(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYREAL4ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*4, DIMENSION(:), INTENT(OUT)   :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYREAL4ARRAY
        INTEGER*4 FUNCTION AUTOGETPROPERTYREAL8(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYREAL8
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*8,        INTENT(OUT)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYREAL8
        INTEGER*4 FUNCTION AUTOGETPROPERTYREAL8ARRAY(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYREAL8ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*8, DIMENSION(:), INTENT(OUT)   :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYREAL8ARRAY
        INTEGER*4 FUNCTION AUTOGETPROPERTYLOGICAL2(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYLOGICAL2
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*2,     INTENT(OUT)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYLOGICAL2
        INTEGER*4 FUNCTION AUTOGETPROPERTYLOGICAL2ARRAY(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYLOGICAL2ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*2, DIMENSION(:), INTENT(OUT):: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYLOGICAL2ARRAY
        INTEGER*4 FUNCTION AUTOGETPROPERTYLOGICAL4(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYLOGICAL4
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*4,     INTENT(OUT)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYLOGICAL4
        INTEGER*4 FUNCTION AUTOGETPROPERTYLOGICAL4ARRAY(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYLOGICAL4ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*4, DIMENSION(:), INTENT(OUT):: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYLOGICAL4ARRAY
        INTEGER*4 FUNCTION AUTOGETPROPERTYCHARACTER(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYCHARACTER
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          CHARACTER*(*), INTENT(OUT)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYCHARACTER
        INTEGER*4 FUNCTION AUTOGETPROPERTYCHARACTERARRAY(idispatch, name, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYCHARACTERARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          CHARACTER*(*), DIMENSION(:), INTENT(OUT):: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYCHARACTERARRAY
        INTEGER*4 FUNCTION AUTOGETPROPERTYBYIDINTEGER2(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYBYIDINTEGER2
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          INTEGER*2,     INTENT(OUT)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYBYIDINTEGER2
        INTEGER*4 FUNCTION AUTOGETPROPERTYBYIDINTEGER2ARRAY(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYBYIDINTEGER2ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          INTEGER*2, DIMENSION(:), INTENT(OUT):: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYBYIDINTEGER2ARRAY
        INTEGER*4 FUNCTION AUTOGETPROPERTYBYIDINTEGER4(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYBYIDINTEGER4
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          INTEGER*4,     INTENT(OUT)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYBYIDINTEGER4
        INTEGER*4 FUNCTION AUTOGETPROPERTYBYIDINTEGER4ARRAY(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYBYIDINTEGER4ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          INTEGER*4, DIMENSION(:), INTENT(OUT):: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYBYIDINTEGER4ARRAY
        INTEGER*4 FUNCTION AUTOGETPROPERTYBYIDREAL4(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYBYIDREAL4
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          REAL*4,        INTENT(OUT)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYBYIDREAL4
        INTEGER*4 FUNCTION AUTOGETPROPERTYBYIDREAL4ARRAY(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYBYIDREAL4ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          REAL*4, DIMENSION(:), INTENT(OUT)   :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYBYIDREAL4ARRAY
        INTEGER*4 FUNCTION AUTOGETPROPERTYBYIDREAL8(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYBYIDREAL8
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          REAL*8,        INTENT(OUT)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYBYIDREAL8
        INTEGER*4 FUNCTION AUTOGETPROPERTYBYIDREAL8ARRAY(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYBYIDREAL8ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          REAL*8, DIMENSION(:), INTENT(OUT)   :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYBYIDREAL8ARRAY
        INTEGER*4 FUNCTION AUTOGETPROPERTYBYIDLOGICAL2(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYBYIDLOGICAL2
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          LOGICAL*2,     INTENT(OUT)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYBYIDLOGICAL2
        INTEGER*4 FUNCTION AUTOGETPROPERTYBYIDLOGICAL2ARRAY(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYBYIDLOGICAL2ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          LOGICAL*2, DIMENSION(:), INTENT(OUT):: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYBYIDLOGICAL2ARRAY
        INTEGER*4 FUNCTION AUTOGETPROPERTYBYIDLOGICAL4(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYBYIDLOGICAL4
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          LOGICAL*4,     INTENT(OUT)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYBYIDLOGICAL4
        INTEGER*4 FUNCTION AUTOGETPROPERTYBYIDLOGICAL4ARRAY(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYBYIDLOGICAL4ARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          LOGICAL*4, DIMENSION(:), INTENT(OUT):: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYBYIDLOGICAL4ARRAY
        INTEGER*4 FUNCTION AUTOGETPROPERTYBYIDCHARACTER(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYBYIDCHARACTER
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          CHARACTER*(*), INTENT(OUT)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYBYIDCHARACTER
        INTEGER*4 FUNCTION AUTOGETPROPERTYBYIDCHARACTERARRAY(idispatch, memid, value, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOGETPROPERTYBYIDCHARACTERARRAY
          INTEGER*4,     INTENT(IN)           :: idispatch 
          !DEC$ ATTRIBUTES VALUE              :: idispatch
          INTEGER*4,     INTENT(IN)           :: memid 
          !DEC$ ATTRIBUTES VALUE              :: memid
          CHARACTER*(*), DIMENSION(:), INTENT(OUT) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END FUNCTION AUTOGETPROPERTYBYIDCHARACTERARRAY
      END INTERFACE
    
    ! AUTOADDARG generic interface
      INTEGER, PARAMETER :: AUTO_ARG_IN     = 1
      INTEGER, PARAMETER :: AUTO_ARG_OUT    = 2
      INTEGER, PARAMETER :: AUTO_ARG_INOUT  = 3
      !  Deprecated
      INTEGER, PARAMETER :: AUTO_ARG_OLDOUT = 4

      INTERFACE AUTOADDARG
        SUBROUTINE AUTOADDARG2INTEGER2 (invoke_args, name, value, intent_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARG2INTEGER2
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*2,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER,       INTENT(IN)           :: intent_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: intent_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARG2INTEGER2
        !  AUTOADDARGINTEGER2 has been deprecated 
        SUBROUTINE AUTOADDARGINTEGER2 (invoke_args, name, value, output_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARGINTEGER2
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*2,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          LOGICAL,       INTENT(IN), OPTIONAL :: output_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: output_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARGINTEGER2
        SUBROUTINE AUTOADDARG2INTEGER2ARRAY (invoke_args, name, value, intent_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARG2INTEGER2ARRAY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*2, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER,       INTENT(IN)           :: intent_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: intent_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARG2INTEGER2ARRAY
        !  AUTOADDARGINTEGER2ARRAY has been deprecated 
        SUBROUTINE AUTOADDARGINTEGER2ARRAY (invoke_args, name, value, output_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARGINTEGER2ARRAY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*2, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          LOGICAL,       INTENT(IN), OPTIONAL :: output_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: output_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARGINTEGER2ARRAY
        SUBROUTINE AUTOADDARG2INTEGER4 (invoke_args, name, value, intent_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARG2INTEGER4
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*4,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER,       INTENT(IN)           :: intent_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: intent_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARG2INTEGER4
        !  AUTOADDARGINTEGER4 has been deprecated 
        SUBROUTINE AUTOADDARGINTEGER4 (invoke_args, name, value, output_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARGINTEGER4
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*4,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          LOGICAL,       INTENT(IN), OPTIONAL :: output_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: output_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARGINTEGER4
        SUBROUTINE AUTOADDARG2INTEGER4ARRAY (invoke_args, name, value, intent_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARG2INTEGER4ARRAY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*4, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER,       INTENT(IN)           :: intent_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: intent_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARG2INTEGER4ARRAY
        !  AUTOADDARGINTEGER4ARRAY has been deprecated 
        SUBROUTINE AUTOADDARGINTEGER4ARRAY (invoke_args, name, value, output_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARGINTEGER4ARRAY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          INTEGER*4, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          LOGICAL,       INTENT(IN), OPTIONAL :: output_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: output_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARGINTEGER4ARRAY
        SUBROUTINE AUTOADDARG2REAL4 (invoke_args, name, value, intent_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARG2REAL4
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*4,        INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER,       INTENT(IN)           :: intent_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: intent_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARG2REAL4
        !  AUTOADDARGREAL4 has been deprecated 
        SUBROUTINE AUTOADDARGREAL4 (invoke_args, name, value, output_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARGREAL4
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*4,        INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          LOGICAL,       INTENT(IN), OPTIONAL :: output_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: output_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARGREAL4
        SUBROUTINE AUTOADDARG2REAL4ARRAY (invoke_args, name, value, intent_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARG2REAL4ARRAY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*4, DIMENSION(:), INTENT(IN)    :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER,       INTENT(IN)           :: intent_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: intent_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARG2REAL4ARRAY
        !  AUTOADDARGREAL4ARRAY has been deprecated 
        SUBROUTINE AUTOADDARGREAL4ARRAY (invoke_args, name, value, output_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARGREAL4ARRAY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*4, DIMENSION(:), INTENT(IN)    :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          LOGICAL,       INTENT(IN), OPTIONAL :: output_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: output_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARGREAL4ARRAY
        SUBROUTINE AUTOADDARG2REAL8 (invoke_args, name, value, intent_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARG2REAL8
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*8,        INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER,       INTENT(IN)           :: intent_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: intent_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARG2REAL8
        !  AUTOADDARGREAL8 has been deprecated 
        SUBROUTINE AUTOADDARGREAL8 (invoke_args, name, value, output_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARGREAL8
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*8,        INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          LOGICAL,       INTENT(IN), OPTIONAL :: output_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: output_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARGREAL8
        SUBROUTINE AUTOADDARG2REAL8ARRAY (invoke_args, name, value, intent_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARG2REAL8ARRAY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*8, DIMENSION(:), INTENT(IN)    :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER,       INTENT(IN)           :: intent_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: intent_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARG2REAL8ARRAY
        !  AUTOADDARGREAL8ARRAY has been deprecated 
        SUBROUTINE AUTOADDARGREAL8ARRAY (invoke_args, name, value, output_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARGREAL8ARRAY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          REAL*8, DIMENSION(:), INTENT(IN)    :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          LOGICAL,       INTENT(IN), OPTIONAL :: output_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: output_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARGREAL8ARRAY
        SUBROUTINE AUTOADDARG2LOGICAL2 (invoke_args, name, value, intent_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARG2LOGICAL2
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*2,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER,       INTENT(IN)           :: intent_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: intent_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARG2LOGICAL2
        !  AUTOADDARGLOGICAL2 has been deprecated 
        SUBROUTINE AUTOADDARGLOGICAL2 (invoke_args, name, value, output_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARGLOGICAL2
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*2,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          LOGICAL,       INTENT(IN), OPTIONAL :: output_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: output_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARGLOGICAL2
        SUBROUTINE AUTOADDARG2LOGICAL2ARRAY (invoke_args, name, value, intent_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARG2LOGICAL2ARRAY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*2, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER,       INTENT(IN)           :: intent_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: intent_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARG2LOGICAL2ARRAY
        !  AUTOADDARGLOGICAL2ARRAY has been deprecated 
        SUBROUTINE AUTOADDARGLOGICAL2ARRAY (invoke_args, name, value, output_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARGLOGICAL2ARRAY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*2, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          LOGICAL,       INTENT(IN), OPTIONAL :: output_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: output_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARGLOGICAL2ARRAY
        SUBROUTINE AUTOADDARG2LOGICAL4 (invoke_args, name, value, intent_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARG2LOGICAL4
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*4,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER,       INTENT(IN)           :: intent_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: intent_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARG2LOGICAL4
        !  AUTOADDARGLOGICAL4 has been deprecated 
        SUBROUTINE AUTOADDARGLOGICAL4 (invoke_args, name, value, output_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARGLOGICAL4
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*4,     INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          LOGICAL,       INTENT(IN), OPTIONAL :: output_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: output_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARGLOGICAL4
        SUBROUTINE AUTOADDARG2LOGICAL4ARRAY (invoke_args, name, value, intent_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARG2LOGICAL4ARRAY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*4, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER,       INTENT(IN)           :: intent_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: intent_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARG2LOGICAL4ARRAY
        !  AUTOADDARGLOGICAL4ARRAY has been deprecated 
        SUBROUTINE AUTOADDARGLOGICAL4ARRAY (invoke_args, name, value, output_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARGLOGICAL4ARRAY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          LOGICAL*4, DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          LOGICAL,       INTENT(IN), OPTIONAL :: output_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: output_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARGLOGICAL4ARRAY
        SUBROUTINE AUTOADDARG2CHARACTER (invoke_args, name, value, intent_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARG2CHARACTER
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          CHARACTER*(*), INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER,       INTENT(IN)           :: intent_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: intent_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARG2CHARACTER
        !  AUTOADDARGCHARACTER has been deprecated 
        SUBROUTINE AUTOADDARGCHARACTER (invoke_args, name, value, output_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARGCHARACTER
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          CHARACTER*(*), INTENT(IN)           :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          LOGICAL,       INTENT(IN), OPTIONAL :: output_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: output_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARGCHARACTER
        SUBROUTINE AUTOADDARG2CHARACTERARRAY (invoke_args, name, value, intent_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARG2CHARACTERARRAY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          CHARACTER*(*), DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER,       INTENT(IN)           :: intent_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: intent_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARG2CHARACTERARRAY
        !  AUTOADDARGCHARACTERARRAY has been deprecated 
        SUBROUTINE AUTOADDARGCHARACTERARRAY (invoke_args, name, value, output_arg, type)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARGCHARACTERARRAY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          CHARACTER*(*), DIMENSION(:), INTENT(IN) :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          LOGICAL,       INTENT(IN), OPTIONAL :: output_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: output_arg
          INTEGER*2,     INTENT(IN), OPTIONAL :: type 
          !DEC$ ATTRIBUTES REFERENCE          :: type
        END SUBROUTINE AUTOADDARGCHARACTERARRAY
        SUBROUTINE AUTOADDARG2VARIANT (invoke_args, name, value, intent_arg)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARG2VARIANT
          USE DFCOMTY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          TYPE (VARIANT), INTENT(IN)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          INTEGER,       INTENT(IN)           :: intent_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: intent_arg
        END SUBROUTINE AUTOADDARG2VARIANT
        !  AUTOADDARGVARIANT has been deprecated 
        SUBROUTINE AUTOADDARGVARIANT (invoke_args, name, value, output_arg)
        !DEC$ ATTRIBUTES DEFAULT :: AUTOADDARGVARIANT
          USE DFCOMTY
          INTEGER*4,     INTENT(IN)           :: invoke_args 
          !DEC$ ATTRIBUTES VALUE              :: invoke_args
          CHARACTER*(*), INTENT(IN)           :: name 
          !DEC$ ATTRIBUTES REFERENCE          :: name
          TYPE (VARIANT), INTENT(IN)          :: value 
          !DEC$ ATTRIBUTES REFERENCE          :: value
          LOGICAL,       INTENT(IN), OPTIONAL :: output_arg 
          !DEC$ ATTRIBUTES REFERENCE          :: output_arg
        END SUBROUTINE AUTOADDARGVARIANT
      END INTERFACE
END MODULE DFAUTO
