Hi, You have an option of passing all the parameters as SafeArray of bytes or you can use the wrapper COM object for the parameters. The second approach is much easier to use but it cost time to create/destroy extra object. As for me if I don't call the function too often I prefer to use a special object for passing parameters. There is an article in MSDN "OLE Q&A" by Don BOX which has more details on the topic... Regards, Alex Gorev, Dundas Software.