woot! Thanks Dan.
Just having trouble with the database now, I'm passing in a Database^, this is what I have -
#define GetDb(database) (reinterpret_cast<AcDbDatabase*>(&(database)))
but no worky
this mixed/managed stuff has sooo many subtle tricks to watch out for, I'm almost there though!