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