CodeElement a la propriété Members, qui est une collection de CodeElement. CodeElement a une propriété Kind, à partir de laquelle vous pouvez savoir de quel type de membre nous parlons. Ensuite, vous pouvez lancer chaque membre à l'interface appropriée et jeter un coup d'œil. La plupart des sous-classes ont une propriété Type, avec les informations que vous recherchez.
Je dactylographiées cela dans l'éditeur Macro, dans un module:
Public Sub DisplayStuff()
Dim objTextSel As TextSelection
Dim objCodeCls As CodeClass
objTextSel = CType(DTE.ActiveDocument.Selection, TextSelection)
objCodeCls = CType(objTextSel.ActivePoint.CodeElement(vsCMElement.vsCMElementClass), CodeClass)
If objCodeCls Is Nothing Then
MsgBox("Please launch this macro when the cursor is within a class")
Exit Sub
End If
For Each elt As CodeElement2 In objCodeCls.Members
Select Case elt.Kind
Case vsCMElement.vsCMElementVariable
Dim v As CodeVariable2 = CType(elt, CodeVariable2)
MsgBox(v.Name & " is a variable of type " & v.Type.AsString)
Case vsCMElement.vsCMElementProperty
Dim p As CodeProperty2 = CType(elt, CodeProperty2)
MsgBox(p.Name & " is of type " & p.Type.AsString)
End Select
Next
End Sub
Il faut simplement la classe qui est l'endroit où le curseur est dans l'éditeur et affiche les informations de type pour tout champ ou une propriété.