Check out this managed wrapper -:

http://robgarrett.com/cs/blogs/software/archive/2007/02/12/net-wrapper-for-com-elevation.aspx

Encapsulates all the hard stuff for non-C++ and non-COM developers.