VB6 allows for the definition of User Defined Data Types which are really a Structure of VB6 Native Variable Data Types.
The structure is defined through the TYPE statement which acts as a template.
Private Type udt_MyTypeAddress
strMyName as String
strMyStreet as String
strMyCityCode as String
strMyCity as String
End Type
The user definded variable you want to use in your program must then be defined as any other variable:
Dim udtAddress as udt_MyTypeAddress
From now on you can do anything you want (well almost anything) with the variable udtAddress: you can assign values to it, you can pass it to procedures, and so on ...
If, on the other hand, you want to define new native variables, such as TwentyBitsInteger, which acts as a signed Integer but with a 20-bit length, you can as far as I know NOT do it.
_________________________________
In theory, there is no difference between theory and practice. In practice, there is. [attributed to Yogi Berra]