25#ifndef _ODDBDWGCLASSDEF_H_INCLUDED_
26#define _ODDBDWGCLASSDEF_H_INCLUDED_
34# define __DUMMY_( a,b,c,d,e,f,g,h,i )
35# define CLASSDEF(DWGTYPE,ClassName, BaseClassName,DwgVer,MaintVer,DxfName,AppName,ProxyFlags,CustomFlags)\
36 kDwgId_OdDb##ClassName = DWGTYPE,
51#define DWGMAP_DECLARE_MEMBERS(ClassName) \
53 ClassName(OdDbObjectImpl* pImpl); \
57 static OdSmartPtr<ClassName> cast(const OdRxObject* pObj) { \
59 return OdSmartPtr<ClassName>(((ClassName*)pObj->queryX(ClassName::desc())), kOdRxObjAttach); \
60 return (ClassName*)0; \
66 static OdRxClass* desc() { return g_odDbRegistredDwgClasses[kDwgId_##ClassName]; } \
71 virtual OdRxClass* isA() const; \
75 virtual OdRxObject* queryX(const OdRxClass* protocolClass) const; \
79 static OdRxObjectPtr pseudoConstructor(); \
83 static OdSmartPtr<ClassName> createObject() \
84 { if (desc()) return desc()->create(); throw OdError("OdDb" #ClassName "is not loaded"); } \
87 static void rxInit(); \
88 static void rxInit(AppNameChangeFuncPtr appNameChangeFunc); \
91 static void rxUninit()
#define TOOLKIT_EXPORT_GLOBAL
TOOLKIT_EXPORT OdRxClass *const & oddbDwgClassMapDesc(OdUInt16 nDwgType)
TOOLKIT_EXPORT_GLOBAL OdRxClass * g_odDbRegistredDwgClasses[kOdDbDwgClassMapSize_WithProxy]
@ kOdDbDwgClassMapSize_WithProxy