I know the extra wrappers look like allot of typing and extra complexity initially, but they really make using the code latter almost brain dead simple and way less typing and way less error prone. it takes memory out of the equation and just shows you what functions it supports, what the arguments are , and in some cases like the enumerations lets you select the argument value you want from a list it automatically displays. Thats the real strength.
I have a lot of respect for what you've done. You clearly know your way around COM and the registry. I think you may be forgetting though that there are thousands of seasoned macro writers out there that know the existing calls and OEM codes and constants almost like the back of their hands. They SHOULD (IMHO) be able to use your automation without learning virtually anything new.
Example:
Your way
ReadDRO(axis_x)
The existing way
getOEMDRO(800)
So imagine one of these seasoned users. S/He's looking to read a DRO. He get's the dropdown and he scrolls through looking for getOEMDRO. It's not there. First thing he's going to say is WTF? Then eventually he realizes he needs to use ReadDRO. Second thing he's going to say is WTF have you changed the name for? We've been using getOEMDRO for donkey's years and now it's called something else... It's then going to get even worse because he's going to type 800 for X only to find it doesn't work.
It seems to me to be a real shame because I think what you've done has value.
So, FWIW - if you must have intellisense, I'd suggest you name the wrappers identically to the existing calls and don't introduce new symbolic constants.
Anyway - it's your gig as they say and these are obviously just my opinions and hope none of this p***es you off..
Thanks for sorting the version issue though - I think that's a great step forward. You obviously know your way around the registry - good work.