This might help, but the final five parameters are to be pointers and the only way to have VB pass a pointer would be in the function definition to use the clause 'ByRef' instead of using 'ByVal'. Having said that though, I suspect that 'String' types in VB are not the same as the 'string' types in C++. AFAIR I had to declare my C routine in the DLL as "pointer to a pointer to a type" in order to get things to work properly. Also I'm not sure whether the WINAPI is a std_call or not. The calling convention is pretty important to get correct for all these things to work. Chris Meech It's much easier to get rich telling people what they want to hear. Chistopher Duncan I can't help getting older, but I refuse to grow up. Roger Wright I've been meaning to change my sig. Thanks! Alvaro Mendez