Daffodil,
Here are the answers to your questions on creating a dialog in VC++ .Net that communicates with TestStand:
What kind of project should i create for this?
I would recommend you create a .Net class so it can be called easily from a TestStand step
[How can I] know the mapping between the TestStand types and C++ data types?
The TestStand API will map 1 to 1 in C++ for the most part because the TestStand API is object oriented. Therefore, you can expect to deal with TestStand objects like you would deal with normal C++ objects. If you would like a general map of the containment relationships between the TestStand classes I would recommend you take a look at the Help document called "Using TestStand API Objects".
Can I just access the elements like the way I do in Teststand? (Locals.MyStr...)
Yes, you could do this in C++. You would need to use the GetValxxx and SetValxxx of the PropertyObject class. Most of the classes you will be using during your development will inherit the methods from the PropertyObject class. The GetValxxx and SetValxxx methods will let you reference Properties using search paths you are familiar with such as "Locals.MyStr".
Regards,
Santiago D