cout << ">>CreateIFoo() --> ";
printf(">>CreateIFoo() --> ");
CreateIFoo( void** result )    // a typical factory function (that calls AddRef)  {    cout << ">>CreateIFoo() --> ";    IFoo* foop = new IFoo;    cout << "IFoo@" << STATIC_CAST(void*, foop) << endl;    foop->AddRef();    *result = foop;    cout << "<<CreateIFoo()" << endl;    return 0;  }