Randy,
the (vla-*) stuff is just ActiveX in lispy clothes. There is NO lisp specific help for this, you use the VBA/ActiveX developers guide and work out (either thru trial & error *ACK* or by searching and studying other's code). Since you do have a strong VBA background, it should be quite easy for you to pickup. I went from lisp to trying to use the ActiveX stuff and was really lost. I went and learned VBA and it all fell into place.
Some things for you to play with. With MANY of the methods & properties, using a different format can help reduce those safe-arrays & variants. I will almost always try to return a list or usable value first, then resort to the conversion process if it doesn't work. For example, if you use this to get the DBProperties:
(vla-getDynamicBlockProperties blk)
it returns a safearray (I think, I'm not on a pc with Autocad to verify what I'm posting....but it should be pretty close), as will this:
(vlax-invoke-method blk 'getDynamicBlockProperties)
However, this will (should that is, again I cannot test right now) return a basic list that you can loop through without any conversions:
(vlax-invoke blk 'getDynamicBlockProperties)
Just knowing that can save a lot of time in the future. The same thing applies with (vlax-get) & (vlax-put) for properties.
Make sense?