Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
#define P6_IMPLEMENT_CREATEINSTANCE_NO_AGG (   classname)
Value:
P6R::P6ERR classname::createInstance(P6R::p6ICom *pOuter,const P6REFIID iid,P6R::P6VOID **ppNewComponent) \
{ \
classname *pObj = NULL; \
if(NULL != pOuter) \
return P6R::eNoAgregation; \
if(NULL == ppNewComponent) \
return P6R::eAccessFault; \
*ppNewComponent = NULL; \
if(NULL == (pObj = new (std::nothrow) classname())) { \
*ppNewComponent = NULL; \
return P6R::eNoMemory; \
} \
pObj->addref(); \
if(1 == pObj->m_cRef.value) { \
err = pObj->queryInterface(iid,ppNewComponent); \
} \
else { \
err = eInvalidRefcount; \
} \
pObj->release(); \
return err; \
}
#define P6REFIID
Definition: p6defs.h:197
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:97
P6UINT32 P6ERR
COM err return type see P6ERR.h.
Definition: p6types.h:141
void P6VOID
Definition: p6types.h:109

Definition at line 66 of file p6comhlpr.h.