- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here is the applicable interface generated by the module wizard for calling the tree ocx
FUNCTION $TreeView_AddNode($OBJECT, mCaption, mLevel, mIsParent, mBefore, mAfter, mSelectNode, $STATUS)
!DEC$ ATTRIBUTES DLLEXPORT :: $TreeView_AddNode
IMPLICIT NONE
INTEGER*4, INTENT(IN) :: $OBJECT ! Object Pointer
!DEC$ ATTRIBUTES VALUE :: $OBJECT
CHARACTER*(*), INTENT(IN) :: mCaption ! BSTR
!DEC$ ATTRIBUTES REFERENCE :: mCaption
INTEGER*2, INTENT(IN) :: mLevel
!DEC$ ATTRIBUTES REFERENCE :: mLevel
LOGICAL*2, INTENT(IN) :: mIsParent
!DEC$ ATTRIBUTES REFERENCE :: mIsParent
TYPE (VARIANT), INTENT(IN) :: mBefore
!DEC$ ATTRIBUTES REFERENCE :: mBefore
TYPE (VARIANT), INTENT(IN) :: mAfter
!DEC$ ATTRIBUTES REFERENCE :: mAfter
TYPE (VARIANT), INTENT(INOUT), VOLATILE :: mSelectNode
!DEC$ ATTRIBUTES REFERENCE :: mSelectNode
INTEGER*4, INTENT(OUT), OPTIONAL :: $STATUS ! Method status
!DEC$ ATTRIBUTES REFERENCE :: $STATUS
INTEGER*4 $$STATUS
INTEGER*4 invokeargs
TYPE (VARIANT), VOLATILE :: $RETURN
TYPE (VARIANT) $TreeView_AddNode
invokeargs = AUTOALLOCATEINVOKEARGS()
CALL AUTOADDARG(invokeargs, '$RETURN', $RETURN, .TRUE.)
CALL AUTOADDARG(invokeargs, '$ARG1', mCaption, .FALSE., VT_BSTR)
CALL AUTOADDARG(invokeargs, '$ARG2', mLevel)
CALL AUTOADDARG(invokeargs, '$ARG3', mIsParent)
CALL AUTOADDARG(invokeargs, '$ARG4', mBefore, .FALSE.)
CALL AUTOADDARG(invokeargs, '$ARG5', mAfter, .FALSE.)
CALL AUTOADDARG(invokeargs, '$ARG6', mSelectNode, .FALSE.)
$$STATUS = AUTOINVOKE($OBJECT, 1610809738, invokeargs)
IF (PRESENT($STATUS)) $STATUS = $$STATUS
$TreeView_AddNode = $RETURN
CALL AUTODEALLOCATEINVOKEARGS (invokeargs)
END FUNCTION $TreeView_AddNode
Here is the the sample vb code to call.
TreeView1.AddNode "Top", 0, False
Note that the parameters mBefore, mAfter, mSelectNode are missing. $status is irrelevant
Another sample vb call
TreeView1.AddNode "after" + Str(TreeView1.Count + 1), Level, False, , TreeView1.selecteditem
Note the void parameter.
Have tried.
type (variant) xxx,mBefore, mAfter, mSelectNode
mBefore%vt=vt_null
mAfter%vt=vt_null
mSelectNode%vt=vt_null
Fortran code
XXX=$TreeView_AddNode(obj,'top'C, INT2(0), .TRUE._2, mBefore, mAfter, mSelectNode, STATUS)
have also tried vt_void and vt_empty.
Question how do I duplicate the vb call in fortran.
What do I use for the null parameters.
FUNCTION $TreeView_AddNode($OBJECT, mCaption, mLevel, mIsParent, mBefore, mAfter, mSelectNode, $STATUS)
!DEC$ ATTRIBUTES DLLEXPORT :: $TreeView_AddNode
IMPLICIT NONE
INTEGER*4, INTENT(IN) :: $OBJECT ! Object Pointer
!DEC$ ATTRIBUTES VALUE :: $OBJECT
CHARACTER*(*), INTENT(IN) :: mCaption ! BSTR
!DEC$ ATTRIBUTES REFERENCE :: mCaption
INTEGER*2, INTENT(IN) :: mLevel
!DEC$ ATTRIBUTES REFERENCE :: mLevel
LOGICAL*2, INTENT(IN) :: mIsParent
!DEC$ ATTRIBUTES REFERENCE :: mIsParent
TYPE (VARIANT), INTENT(IN) :: mBefore
!DEC$ ATTRIBUTES REFERENCE :: mBefore
TYPE (VARIANT), INTENT(IN) :: mAfter
!DEC$ ATTRIBUTES REFERENCE :: mAfter
TYPE (VARIANT), INTENT(INOUT), VOLATILE :: mSelectNode
!DEC$ ATTRIBUTES REFERENCE :: mSelectNode
INTEGER*4, INTENT(OUT), OPTIONAL :: $STATUS ! Method status
!DEC$ ATTRIBUTES REFERENCE :: $STATUS
INTEGER*4 $$STATUS
INTEGER*4 invokeargs
TYPE (VARIANT), VOLATILE :: $RETURN
TYPE (VARIANT) $TreeView_AddNode
invokeargs = AUTOALLOCATEINVOKEARGS()
CALL AUTOADDARG(invokeargs, '$RETURN', $RETURN, .TRUE.)
CALL AUTOADDARG(invokeargs, '$ARG1', mCaption, .FALSE., VT_BSTR)
CALL AUTOADDARG(invokeargs, '$ARG2', mLevel)
CALL AUTOADDARG(invokeargs, '$ARG3', mIsParent)
CALL AUTOADDARG(invokeargs, '$ARG4', mBefore, .FALSE.)
CALL AUTOADDARG(invokeargs, '$ARG5', mAfter, .FALSE.)
CALL AUTOADDARG(invokeargs, '$ARG6', mSelectNode, .FALSE.)
$$STATUS = AUTOINVOKE($OBJECT, 1610809738, invokeargs)
IF (PRESENT($STATUS)) $STATUS = $$STATUS
$TreeView_AddNode = $RETURN
CALL AUTODEALLOCATEINVOKEARGS (invokeargs)
END FUNCTION $TreeView_AddNode
Here is the the sample vb code to call.
TreeView1.AddNode "Top", 0, False
Note that the parameters mBefore, mAfter, mSelectNode are missing. $status is irrelevant
Another sample vb call
TreeView1.AddNode "after" + Str(TreeView1.Count + 1), Level, False, , TreeView1.selecteditem
Note the void parameter.
Have tried.
type (variant) xxx,mBefore, mAfter, mSelectNode
mBefore%vt=vt_null
mAfter%vt=vt_null
mSelectNode%vt=vt_null
Fortran code
XXX=$TreeView_AddNode(obj,'top'C, INT2(0), .TRUE._2, mBefore, mAfter, mSelectNode, STATUS)
have also tried vt_void and vt_empty.
Question how do I duplicate the vb call in fortran.
What do I use for the null parameters.
Link Copied
0 Replies

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page