What is the difference between virtual object wizard and Gui map config.
You might start by opening each tool, then clicking the Help button and reading the introductory paragraphs. (Sorry if that seems to be an unfriendly answer, but it seems to me if you do this it will be pretty self-evident. If not, then come back here with specific points of confusion and we'll try to answer them.)
[i]...Sound trumpets! Every trumpet in the host! / Sixty thousand, on these words, sound, so high the mountains sound, and the valleys resound.</i] (The Song of Roland)
The virtual object is very obvious thing - you just "mark" rectangle in your window (by coordinates) and say - "it's push butoon (or table, or checkbox)". GUI Map configuration is not so obvious and I'm not sure it can't be understood from manual at once (though, to RTFM is really good idea [img]images/icons/wink.gif[/img] ).
To understand GUI Map configuration you should understand how WinRunner (and most other testing tools) learns GUI objects. Most GUI objects in Windows are really windows (from OS's point of view) - checkboxes, listboxes, treeviews - all they are just customized windows. There is no standard way to determine the window type - is it checkbox, pushbutton or dialog window. To determine window (object) type, testing tool uses its Class Name. All the objects in Windows are instances of some class and this class has it's name. Objects with same class name are of the same type. Now the idea of GUI Mapping is obvious - map Class Name to standard obect (window) type. The problem is that different environments have classes for the same object types that behaves themselves (on OS level) in different ways, so not always mapping will work. If it will not, you have either to write own DLLs to handle such objects (and use it to customize WinRunner object handling - it's really a huge amount of work - like writing your own WR Add-in) or use Virtual Objects (not so interesting but _sometimes_ it may be somewhat useful).
For me, Virtual Objects may be usefull in the only one case - when you have possibility to declare them DYNAMICALLY. To do that you should know coordinates. The example is when you define virtual object for some text in the window - you can get it's coordinates with win_find_text, after that it's only question of technique...