3.11.3.1. Creating Object Instance

class IClassFactory : IUnknown
{
  STDMETHOD CreateInstance (IUnknown* pUnkOuter, IID &riid, void **ppv);
  STDMETHOD LockServer (BOOL fLock);
};

CoCreateInstance (
  REFCLSID rclsid,
  LPUNKNOWN pUnkOuter,
  DWORD dwClsContext,
  REFIID riid,
  LPVOID *ppv);

IClassFactory *pCF;
CoGetClassObject (rclsid, dwClsContext, NULL, IID_IClassFactory, &pCF);
hresult = pCF->CreateInstance (pUnkOuter, riid, ppvObj);
pCF->Release ();