CComObject::CreateInstance

이 정적 함수를 새로 만들 수 있습니다 CComObject <Base> 개체의 오버 헤드 없이 CoCreateInstance.

static HRESULT WINAPI CreateInstance(
   CComObject< Base >** pp 
);

매개 변수

  • pp
    [out] 에 대 한 포인터는 CComObject <Base> 포인터.경우 CreateInstance 성공 하지 pp 설정 NULL.

반환 값

표준 HRESULT 값입니다.

설명

따라서 호출, 반환 된 개체 참조 횟수가 0 AddRef 즉시 다음 사용 릴리스 후 참조 개체 포인터를 확보 하기.

Access 개체를 직접 해야 하지 있지만 새 개체의 오버 헤드 없이 만들 하려는 경우 CoCreateInstance를 사용 CComCoClass::CreateInstance 대신 합니다.

예제

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;

요구 사항

헤더: atlcom.h

참고 항목

참조

CComObject 클래스