Christian Graus wrote: You can only pass a limited number of parameters on a COM interface, and the only way to pass COM objects is as an IUnkown * ( and maybe IDispatch *, I forget ). Actually, you can pass anything as long as the midl-compiler knows about it. I.e. anything declared within the same idl file or imported from another idl-file. -- This space for rent.