It's C, not C#.
Code:
typedef unsigned long  uLong; /* 32 bits or more */
You can cast it to/from VB6 Long (signed long) without data loss.
1-st variant is correct.