Marshaling char** parameters isn't easy, and probably not worthwhile. I would recommend any of three alternatives: 1. implement the functionality directly in C# 2. call an existing native function of a lower level, e.g. dealing with just one device at a time (pass a StringBuilder to be filled) 3. pass a StringBuilder instance with sufficient capacity, and store the device names in there, separated by some character, say a semi-colon; upon return call ToString() and Split(';') on it. :)
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
Local announcement (Antwerp region): Lange Wapper? Neen!