VB5 ActiveX server

I am writing a Delphi 4 application which controls a third-party ActiveX
which was written in VB 5.

There are three problems:

1) Any call I make through the dual interface causes an Access

    I then tried the dispatch interface, where properties and methods
work OK, except ...

2) I can't figure out how to pass a boolean array:

    A server method is declared, in VB:
        GetBits (ByRef  bBits() As Boolean)

    After importing the type library into D4, the dispatch interface
        procedure GetBits(var bBits: {??PSafeArray} OleVariant)

    How do I define the array to be passed?
    Everything I've tried results in 'Invalid Type' error.

3) Delphi 4 Developer's Guide (p. 45-2)  says: 'The names of dual
interfaces start with "I"'.

    Mine doesn't. Does this matter?  The CoClasses are OK.

Item 2, above, has really got me stuck.
Any ideas?  Also, any good places for FAQs like this?