Everything is in the Zip file!

Before

Code:
Public Function Add(Optional ByVal Relative As Variant, _
                    Optional ByVal Relationship As TvwNodeRelationshipConstants , _
                    Optional ByVal Key As String, _
                    Optional ByVal Text As String, _
                    Optional ByVal Image As Long, _
                    Optional ByVal SelectedImage As Long) As TvwNode
Now

Code:
Public Function Add(Optional ByVal Relative As Variant, _
                    Optional ByVal Relationship As TvwNodeRelationshipConstants = TvwNodeRelationshipNext, _
                    Optional ByVal Key As String, _
                    Optional ByVal Text As String, _
                    Optional ByVal Image As Variant, _
                    Optional ByVal SelectedImage As Variant) As TvwNode
In MainForm

Code:
    TreeView1.Nodes.Add , , , "1", "FOLDER_CLOSE", "FOLDER_OPEN"
    TreeView1.Nodes.Add(1, TvwNodeRelationshipChild, , "1-1", "MAIL", "OPEN").ForeColor = vbBlue
    TreeView1.Nodes.Add(1, TvwNodeRelationshipChild, , "1-2", 1).ForeColor = vbBlue
    TreeView1.Nodes.Add , TvwNodeRelationshipNext, , "2", 1
Code:
?TreeView1.Nodes(1).Image 
FOLDER_CLOSE
?TreeView1.Nodes(1).SelectedImage
FOLDER_OPEN
?TreeView1.Nodes(2).Image 
MAIL
?TreeView1.Nodes(3).Image 
 1
Values ​​"Image" or "SelectedImage" can be either text or numerical form.
This is normal operation.
I wrote a program that uses ONLY key in text form ..