Help implementing my own IWebBrowser2 object

Hi!
    i'm trying to implement my own IWebBrowser2 object to use
as a way to capture calls to a WebBrowser control methods.
I'm deriving from TAutoIntfObject (whics does implements IDispatch,
that is the type required to pass in the NewWindow2 event)

Here is the relevant source code

unit wbwrapper;

uses
  Windows, ComObj, ActiveX, SHDocVw_TLB;

  TWbWrapper = class( TAutoIntfObject, IUnknown, IWebBrowser2 )
  private
     fwb : TWebBrowser
  public

// Here was the declaration of all the IWebBrowser2 members
 .....

    constructor CreateFrom( aSource : TWebBrowser );
  end;

implementation

{ Twbwrapper }

constructor Twbwrapper.CreateFrom( aSource : TWebBrowser );
var
  ShDocVWLib : ITypeLib;
begin
  OleCheck( LoadRegTypeLib( LIBID_SHDocVw, 1, 1, 0, ShDocVWLib ) );
  inherited Create( ShDocVWLib, IWebBrowser2 );
  fwb := aSource;
end;

{ And here goes the dummy IWebBrowser2 members implementation}
 ....

end:

then, in my browser form goes the newwindow implementation

procedure TForm1.wbNewWindow2(Sender: TObject; var ppDisp: IDispatch;
  var Cancel: WordBool);
var
   f : TForm1;
begin
   f :=   TForm1.Create(Application);
   ppDisp := TWBWrapper.CreateFrom(f.wb);
end;

in efect, the TWBWrapper methods are called, but finally I obtain an error
with the message:  "No such interface supported". I interpret that the
calling browser hasn't found the right interface implemented, but IT IS
IWebBrowser2 complaint!

What I'm doing wrong?

Thanks in advance

Agustin