CComObject::CreateInstance
Bu statik işlevi, yeni bir oluşturmanıza olanak tanır CComObject <Base> yük bindirmeden nesne CoCreateInstance.
static HRESULT WINAPI CreateInstance(
CComObject< Base >** pp
);
Parametreler
- pp
[Çıkış] Bir işaretçi bir CComObject <Base> işaretçisi.CreateInstance İşe yaramadıysa, pp ayarlamak null.
Dönüş Değeri
Standart bir HRESULT değeri.
Notlar
Döndürülen nesnesi başvuru sayısı sıfır varsa, bu nedenle arama AddRef hemen sonra kullanın yayın İşiniz bitince nesne işaretçisi üzerinde başvuru boşaltmak için.
Nesneyi doğrudan erişim değildir ancak yük bindirmeden yeni bir nesne oluşturmak istiyorsanız CoCreateInstance, kullanma CComCoClass::CreateInstance onun yerine.
Örnek
class ATL_NO_VTABLE CMyCircle :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CMyCircle, &CLSID_MyCircle>,
public IDispatchImpl<IMyCircle, &IID_IMyCircle, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
CMyCircle()
{
}
DECLARE_REGISTRY_RESOURCEID(IDR_MYCIRCLE)
DECLARE_NOT_AGGREGATABLE(CMyCircle)
BEGIN_COM_MAP(CMyCircle)
COM_INTERFACE_ENTRY(IMyCircle)
COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()
DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct()
{
return S_OK;
}
void FinalRelease()
{
}
public:
public:
STDMETHOD(get_XCenter)(double* pVal);
};
// Create a local instance of COM object CMyCircle.
double x;
CComObject<CMyCircle>* pCircle;
HRESULT hRes = CComObject<CMyCircle>::CreateInstance(&pCircle);
ATLASSERT(SUCCEEDED(hRes));
// Increment reference count immediately
pCircle->AddRef();
// Access method of COM object
hRes = pCircle->get_XCenter(&x);
// Decrement reference count when done
pCircle->Release();
pCircle = NULL;
Gereksinimler
Başlık: atlcom.h