
Originally Posted by
TTn
Firehacker or Trick, how do I use TipGetArgCount?
Code:
Option Explicit
Private Declare Function EbGetExecutingProj Lib "vba6" ( _
ByRef cProject As IUnknown) As Long
Private Declare Function TipGetFunctionId Lib "vba6" ( _
ByVal cProj As IUnknown, _
ByVal bstrName As Long, _
ByVal bstrId As Long) As Long
Private Declare Function TipGetFuncInfo Lib "vba6" ( _
ByVal cProj As IUnknown, _
ByVal bstrId As Long, _
ByRef pFuncInfo As Long) As Long
Private Declare Function TipGetArgCount Lib "vba6" ( _
ByVal pFuncInfo As Long, _
ByRef lCount As Long) As Long
Private Declare Function TipGetArgType Lib "vba6" ( _
ByVal pFuncInfo As Long, _
ByVal lIndex As Long, _
ByRef lType As Long) As Long
Private Declare Sub TipReleaseFuncInfo Lib "vba6" ( _
ByVal pFuncInfo As Long)
Sub Main()
Dim cProj As IUnknown
Dim sFnId As String
Dim pFnInfo As Long
Dim lArgs As Long
Dim lIndex As Long
Dim lType As Long
EbGetExecutingProj cProj
TipGetFunctionId cProj, StrPtr("foo"), VarPtr(sFnId)
TipGetFuncInfo cProj, StrPtr(sFnId), pFnInfo
TipGetArgCount pFnInfo, lArgs
For lIndex = 0 To lArgs
' // 0 - return type
TipGetArgType pFnInfo, lIndex, lType
Debug.Print lType
Next
TipReleaseFuncInfo pFnInfo
End Sub
Public Function foo( _
ByVal lArg1 As Long, _
ByVal vArg2 As Variant, _
ByVal sArg3 As String) As Boolean
End Function