fallenidol,
Well, if you are talking about just COM, then you can return a regular
pointer-based array. The runtime won't know what to do with this though,
and you will have to do some custom marshalling.
You can also use a SAFEARRAY, which the interop layer will know how to
marshal.
If you are using VB, or some Automation language, then all you have to
do is declare your return value as an array, and .NET should know how to
handle it intrinsically.