Shortly after posting the original entry I thought of a better way to create a CComSafeArray with standard containers. Fifteen minutes later - much less time than it took to write the blog post! - I had working code.
Because I want to get some sleep now I'll have to post the code later. In the meantime I want you to think about it!
OK, you want a hint? How do you normally copy containers - say from a list to a vector?
In part 2b I'll show you how to write very similar code that works for CComSafeArrays.