Можно, но плохо, — (*pSrv)->AddRef().
Лучше — CComObject<Class2>::CreateInstance(pSrv) вместо pClass2 = new CComObject<Class2>;
А если не нужен доступ к тем переменным Class2, которые не вынесены в интерфейс, то ещё лучше — CoCreateInstance(...).
Vi2>if ( FAILED(hr) ) Vi2>delete pClass2; Vi2>return hr; Vi2>}
Лучший дар, который мы получили от природы и который лишает нас всякого права жаловаться – это возможность сбежать. /М.Монтень/