30#define ACRX_CMD_TRANSPARENT 0x00000001
31#define ACRX_CMD_USEPICKSET 0x00000002
32#define ACRX_CMD_REDRAW 0x00000004
33#define ACRX_CMD_NOPERSPECTIVE 0x00000008
34#define ACRX_CMD_NOMULTIPLE 0x00000010
35#define ACRX_CMD_NOTILEMODE 0x00000020
36#define ACRX_CMD_NOPAPERSPACE 0x00000040
37#define ACRX_CMD_PLOTONLY 0x00000080
38#define ACRX_CMD_NOOEM 0x00000100
39#define ACRX_CMD_UNDEFINED 0x00000200
40#define ACRX_CMD_INPROGRESS 0x00000400
41#define ACRX_CMD_DEFUN 0x00000800
42#define ACRX_CMD_NONEWSTACK 0x00001000
43#define ACRX_CMD_NOINTERNALLOCK 0x00002000
44#define ACRX_CMD_DOCREADLOCK 0x00004000
45#define ACRX_CMD_DOCEXCLUSIVELOCK 0x00008000
46#define ACRX_CMD_SESSION 0x00010000
47#define ACRX_CMD_INTERRUPTIBLE 0x00400000
48#define ACRX_CMD_NOHISTORY 0x00800000
49#define ACRX_CMD_NO_UNDO_MARKER 0x01000000
50#define ACRX_CMD_NOBEDIT 0x02000000
52#define ADUI_DOCK_CS_STDMOUSECLICKS 0x00000001
53#define ADUI_DOCK_CS_DESTROY_ON_CLOSE 0x00000002
54#define ADUI_DOCK_NF_SIZECHANGED 0x00000001
55#define ADUI_DOCK_NF_STATECHANGED 0x00000002
56#define ADUI_DOCK_NF_FRAMECHANGED 0x00000002
57#define ID_ADUI_ALLOWDOCK 0x00001001
58#define ID_ADUI_HIDEBAR 0x00001002
61#define AC_ES_STRING 0x00000001
62#define AC_ES_ANGLE 0x00000002
63#define AC_ES_VAL_ONKILLFOCUS 0x00000004
64#define AC_ES_CONV_ONKILLFOCUS 0x00000008
65#define AC_ES_NUMERIC 0x00000010
66#define AC_ES_SYMBOL 0x00000020
67#define AC_ES_SHOW_ERRMSG 0x00000040
68#define AC_ES_NOBLANK 0x00000080
69#define AC_ES_NOZERO 0x00000100
70#define AC_ES_NONEGATIVE 0x00000400
71#define AC_ES_INRANGE 0x00000800
95#define RTMODELESS 5027
97#define RTLONG_PTR 5030
100#define WM_ACAD_MFC_BASE (1000)
101#define WM_ACAD_KEEPFOCUS (WM_ACAD_MFC_BASE + 1)
106#define RTMEMERR (-5000)
107#define RTERROR (-5001)
110#define RTFAIL (-5004)
111#define RTKWORD (-5005)
112#define RTINPUTTRUNCATED (-5008)
116#define DLG_ALLDONE -1
118#define DLG_M_ENABLE ((short) 0)
119#define DLG_M_DISABLE ((short) 1)
120#define DLG_M_SETFOCUS ((short) 2)
121#define DLG_M_SETSEL ((short) 3)
122#define DLG_M_FLIP ((short) 4)
124#define MODE_ENABLE DLG_M_ENABLE
125#define MODE_DISABLE DLG_M_DISABLE
126#define MODE_SETFOCUS DLG_M_SETFOCUS
127#define MODE_SETSEL DLG_M_SETSEL
128#define MODE_FLIP DLG_M_FLIP
131#define DLGCANCEL DLG_CANCEL
132#define DLGALLDONE DLG_ALLDONE
135#define NULLCB ((CLIENTFUNC) 0)
136#define PAUSE _T("\\")
137#define ACDB_LAYOUT_DICTIONARY _T("ACAD_LAYOUT")
139#define TILE_STR_LIMIT 2035
142#define CTRL_LOST_FOCUS 2
144#define CTRL_DOUBLE_CLICK 4
146#define CBR_SELECT CTRL_SELECT
147#define CBR_DOUBLE_CLICK CTRL_DOUBLE_CLICK
148#define CBR_DRAG CTRL_DRAG
149#define CBR_LOST_FOCUS CTRL_LOST_FOCUS
151#define ACSB_NOBORDERS 0x0001
152#define ACSB_INACTIVE 0x0002
153#define ACSB_STRETCH 0x0004
154#define ACSB_ACTIVE 0x0008
155#define ACSB_COMMAND 0x0010
156#define ACSB_POPUP 0x0020
157#define ACSB_DIVIDER 0x0040
158#define ACSB_SUBDIVIDER 0x0080
160#define ACSB_POPOUT ACSB_INACTIVE
161#define ACSB_NORMAL ACSB_ACTIVE
205#define FRX_STATIC_CHECK(CLASS_NAME) \
206 if (CLASS_NAME::gpDesc) { \
207 AcRxClass *pClass = \
208 (AcRxClass*)((AcRxDictionary*)acrxSysRegistry() \
209 ->at(ACRX_CLASS_DICTIONARY))->at(ACRX_T(#CLASS_NAME)); \
211 if (CLASS_NAME::gpDesc == pClass) \
214 acrx_abort(ACRX_T("Class mismatch")); \
218#ifndef ACRX_STATIC_CHECK
219#define ACRX_STATIC_CHECK FRX_STATIC_CHECK
223#define AC_IMPLEMENT_EXTENSION_MODULE( module ) \
224 CAcExtensionModule module;\
225 CAcExtensionModule& CAcModuleResourceOverride::m_Module = module;
228#define ads_printf acutPrintf
229#define ads_sslength acedSSLength
230#define ads_ssname acedSSName
231#define ads_regapp acdbRegApp
232#define ads_command acedCommand
233#define ads_entget acdbEntGet
234#define ads_buildlist acutBuildList
235#define ads_getvar acedGetVar
236#define ads_trans acedTrans
237#define ads_entlast acdbEntLast
238#define ads_ssadd acedSSAdd
239#define ads_ssfree acedSSFree
240#define ads_draggen acedDragGen
241#define ads_relrb acutRelRb
242#define acrxServiceDictionary acrxServiceDictionaryImp()
243#define acdbGetCurViewportObjectId acedGetCurViewportObjectId
244#define ACRX_CMD_MODAL 0
245#define ads_defun acedDefun
246#define ads_regfunc acedRegFunc
247#define ads_initget acedInitGet
248#define ads_getpoint acedGetPoint
249#define ads_setvar acedSetVar
250#define ads_polar acutPolar
251#define ads_getappname acedGetAppName
252#define ads_retnil acedRetNil
253#define ads_retint acedRetInt
254#define ads_retlist acedRetList
255#define ads_getsym acedGetSym
256#define ads_alert acedAlert
257#define ads_findfile acedFindFile
258#define ads_angle acutAngle
259#define ads_newrb acutNewRb
260#define ads_redraw acedRedraw
261#define ads_usrbrk acedUsrBrk
262#define ads_grdraw acedGrDraw
263#define ads_invoke acedInvoke
264#define ads_rtos acdbRToS
265#define ads_entdel acdbEntDel
266#define ads_ssget acedSSGet
267#define ads_tblsearch acdbTblSearch
268#define ads_tblnext acdbTblNext
269#define ads_getangle acedGetAngle
270#define ads_menucmd acedMenuCmd
271#define ads_getinput acedGetInput
272#define ads_grtext acedGrText
273#define ads_getstring acedGetString
274#define ads_getreal acedGetReal
275#define ads_getint acedGetInt
276#define ads_entsel acedEntSel
277#define ads_entupd acdbEntUpd
278#define ads_arxload acedArxLoad
279#define ads_fail acdbFail
280#define ads_grread acedGrRead
281#define ads_getfiled acedGetFileD
282#define ads_retvoid acedRetVoid
283#define ads_getfuncode acedGetFunCode
284#define ads_undef acedUndef
285#define ads_angtos acdbAngToS
286#define ads_handent acdbHandEnt
287#define ads_arxunload acedArxUnload
288#define ads_entgetx acdbEntGetX
289#define ads_entnext acdbEntNext
290#define ads_textbox acedTextBox
291#define ads_getcorner acedGetCorner
292#define ads_entmake acdbEntMake
293#define ads_entmod acdbEntMod
294#define ads_arxloaded acedArxLoaded
295#define ads_getdist acedGetDist
296#define ads__msize acad__msize
297#define ads_agetcfg acedGetCfg
298#define ads_agetenv acedGetEnv
299#define ads_angtof acdbAngToF
300#define ads_asetcfg acedSetCfg
301#define ads_asetenv acedSetEnv
302#define ads_calloc acad_calloc
303#define ads_cmd acedCmd
304#define ads_cvunit acutCvUnit
305#define ads_dictadd acdbDictAdd
306#define ads_dictnext acdbDictNext
307#define ads_dictremove acdbDictRemove
308#define ads_dictrename acdbDictRename
309#define ads_dictsearch acdbDictSearch
310#define ads_distance acutDistance
311#define ads_distof acdbDisToF
312#define ads_entmakex acdbEntMakeX
313#define ads_findtrustedfile acedFindTrustedFile
314#define ads_fnsplit acedFNSplit
315#define ads_free acad_free
316#define ads_getargs acedGetArgs
317#define ads_getcfg acedGetCfg
318#define ads_getcname acedGetCName
319#define ads_getdist acedGetDist
320#define ads_getenv acedGetEnv
321#define ads_getkword acedGetKword
322#define ads_getorient acedGetOrient
323#define ads_graphscr acedGraphScr
324#define ads_grvecs acedGrVecs
325#define ads_help acedHelp
326#define ads_inters acdbInters
327#define ads_isalnum acutIsAlNum
328#define ads_isalpha acutIsAlpha
329#define ads_iscntrl acutIsCntrl
330#define ads_isdigit acutIsDigit
331#define ads_isgraph acutIsGraph
332#define ads_islower acutIsLower
333#define ads_isprint acutIsPrint
334#define ads_ispunct acutIsPunct
335#define ads_isspace acutIsSpace
336#define ads_isupper acutIsUpper
337#define ads_isxdigit acutIsXDigit
338#define ads_malloc acad_malloc
339#define ads_name_clear(name) name[0]=name[1]=0
340#define ads_name_equal(name1,name2) (name1[0]==name2[0]&&name1[1]==name2[1])
341#define ads_name_nil(name) (name[0]==0&&name[1]==0)
342#define ads_namedobjdict acdbNamedObjDict
343#define ads_nentsel acedNEntSel
344#define ads_nentselp acedNEntSelP
345#define ads_nentselpex acedNEntSelPEx
346#define ads_osnap acedOsnap
347#define ads_prompt acedPrompt
348#define ads_putsym acedPutSym
349#define ads_rangtof acdbRawAngToF
350#define ads_rangtos acdbRawAngToS
351#define ads_realloc acad_realloc
352#define ads_regappx acdbRegApp
353#define ads_retname acedRetName
354#define ads_retpoint acedRetPoint
355#define ads_retreal acedRetReal
356#define ads_retstr acedRetStr
357#define ads_rett acedRetT
358#define ads_retval acedRetVal
359#define ads_setcfg acedSetCfg
360#define ads_setenv acedSetEnv
361#define ads_setfunhelp acedSetFunHelp
362#define ads_setview acedSetView
363#define ads_snvalid acdbSNValid
364#define ads_ssdel acedSSDel
365#define ads_ssgetfirst acedSSGetFirst
366#define ads_ssGetKwordCallbackPtr acedSSGetKwordCallbackPtr
367#define ads_ssGetOtherCallbackPtr acedSSGetOtherCallbackPtr
368#define ads_ssmemb acedSSMemb
369#define ads_ssnamex acedSSNameX
370#define ads_sssetfirst acedSSSetFirst
371#define ads_ssSetKwordCallbackPtr acedSSSetKwordCallbackPtr
372#define ads_ssSetOtherCallbackPtr acedSSSetOtherCallbackPtr
373#define ads_strdup acad__strdup
374#define ads_tablet acedTablet
375#define ads_tblobjname acdbTblObjName
376#define ads_textpage acedTextPage
377#define ads_textscr acedTextScr
378#define ads_tolower acutToLower
379#define ads_toupper acutToUpper
380#define ads_update acedUpdate
381#define ads_vports acedVports
382#define ads_wcmatch acutWcMatch
383#define ads_xdroom acdbXdRoom
384#define ads_xdsize acdbXdSize
385#define ads_xformss acedXformSS
386#define ads_xstrcase acdbXStrCase
387#define ads_xstrsave acdbXStrSave
389#define adsw_hwndAcad adsw_acadMainWnd()
392#define RSG_NONULL 0x001
393#define RSG_NOZERO 0x002
394#define RSG_NONEG 0x004
395#define RSG_NOLIM 0x008
396#define RSG_GETZ 0x010
397#define RSG_DASH 0x020
399#define RSG_OTHER 0x080
400#define RSG_BUTTON 0x10000000
401#define RSG_NOBUTTON 0x20000000
402#define RSG_DDISTFIRST 0x100
403#define RSG_TRACKUCS 0x200
404#define RSG_NOORTHOZ 0x400
405#define RSG_NOOSNAP 0x800
407#define eOkTest(x) ((x) == Acad::eOk)
410#ifndef ACED_ARXCOMMAND_ENTRY_PRAGMA
413#define ACED_ARXCOMMAND_ENTRY_PRAGMA( group, globCmd ) __pragma( comment( linker, "/include:___pFXARXCommand_" #group #globCmd ) );
414#elif defined(_M_IA64)
415#define ACED_ARXCOMMAND_ENTRY_PRAGMA( group, globCmd ) __pragma( comment( linker, "/include:__pFXARXCommand_" #group #globCmd ) );
416#elif defined(_M_AMD64)
417#define ACED_ARXCOMMAND_ENTRY_PRAGMA( group, globCmd ) __pragma( comment( linker, "/include:__pFXARXCommand_" #group #globCmd ) );
419#error Unknown Platform. define ACED_ARXCOMMAND_ENTRY_PRAGMA
424#define ACED_ARXCOMMAND_ENTRY_AUTO( classname, group, globCmd, locCmd, cmdFlags, UIContext ) \
425 __declspec(selectany) _FXARX_COMMAND_ENTRY __FXARXCommand_##group##globCmd = { _T(#group), _T(#globCmd), _T(#locCmd), cmdFlags, classname::##group ##globCmd, UIContext }; \
426 extern "C" __declspec(allocate("FXARX_COMMAND$__m")) __declspec(selectany) _FXARX_COMMAND_ENTRY* const __pFXARXCommand_##group##globCmd = &__FXARXCommand_##group##globCmd; \
427 ACED_ARXCOMMAND_ENTRY_PRAGMA( group, globCmd )
430#ifndef ACED_ADSSYMBOL_ENTRY_PRAGMA
432#define ACED_ADSSYMBOL_ENTRY_PRAGMA(name) __pragma(comment(linker, "/include:__pFXARXADSSymbols_" #name)) ;
433#elif defined(_M_IA64)
434#define ACED_ADSSYMBOL_ENTRY_PRAGMA(name) __pragma(comment(linker, "/include:__pFXARXADSSymbols_" #name)) ;
435#elif defined(_M_AMD64)
436#define ACED_ADSSYMBOL_ENTRY_PRAGMA(name) __pragma(comment(linker, "/include:__pFXARXADSSymbols_" #name)) ;
438#error Unknown Platform. define ACED_ADSSYMBOL_ENTRY_PRAGMA
442#define ACED_ADSSYMBOL_ENTRY_AUTO(classname, name, regFunc) \
443 __declspec(selectany) _FXARXADSSYMBOL_ENTRY __FXARXADSSymbols_##name = { _RXST(#name), classname::ads_ ##name, regFunc, -1 } ; \
444 extern "C" __declspec(allocate("FXARX_ADSSYMBOLS$__m")) __declspec(selectany) _FXARXADSSYMBOL_ENTRY* const __pFXARXADSSymbols_##name = &__FXARXADSSymbols_##name ; \
445 ACED_ADSSYMBOL_ENTRY_PRAGMA(name)
447#define ACED_ADSCOMMAND_ENTRY_AUTO(classname, name, regFunc) \
448 __declspec(selectany) _FXARXADSSYMBOL_ENTRY __FXARXADSSymbols_##name = { _RXST("c:") _RXST(#name), classname::ads_ ##name, regFunc, -1 } ; \
449 extern "C" __declspec(allocate("FXARX_ADSSYMBOLS$__m")) __declspec(selectany) _FXARXADSSYMBOL_ENTRY* const __pFXARXADSSymbols_##name = &__FXARXADSSymbols_##name ; \
450 ACED_ADSSYMBOL_ENTRY_PRAGMA(name)
454#define IMPLEMENT_FRX_APIVERSION( ) \
455extern "C" __declspec(dllexport) void frxGetAPIVersion(int& nMajorVersion, int& nMinorVersion) \
457 nMajorVersion = FRX_MAJOR_VERSION; \
458 nMinorVersion = FRX_MINOR_VERSION; \
462#define RSG_DDISTFIRST 0x100
464#define ACRX_T(param_1) _T(param_1)
465#define _RXST(param_1) _T(param_1)
467#define ACRX_MAX_CMDNAME_LEN 254
471#define DBCURVE_METHODS \
472 virtual int isClosed(void)const ; \
473 virtual int isPeriodic(void)const ; \
474 virtual int isPlanar(void)const ; \
475 virtual Acad::ErrorStatus getPlane( AcGePlane &, AcDb::Planarity &)const ; \
476 virtual Acad::ErrorStatus getStartParam(double &)const ; \
477 virtual Acad::ErrorStatus getEndParam(double &)const ; \
478 virtual Acad::ErrorStatus getStartPoint( AcGePoint3d &)const ; \
479 virtual Acad::ErrorStatus getEndPoint( AcGePoint3d &)const ; \
480 virtual Acad::ErrorStatus getPointAtParam(double, AcGePoint3d &)const ; \
481 virtual Acad::ErrorStatus getParamAtPoint( AcGePoint3d const &,double &)const ; \
482 virtual Acad::ErrorStatus getDistAtParam(double,double &)const ; \
483 virtual Acad::ErrorStatus getParamAtDist(double,double &)const ; \
484 virtual Acad::ErrorStatus getDistAtPoint( AcGePoint3d const &,double &)const; \
485 virtual Acad::ErrorStatus getPointAtDist(double, AcGePoint3d &)const ; \
486 virtual Acad::ErrorStatus getFirstDeriv( AcGePoint3d const &, AcGeVector3d &)const ; \
487 virtual Acad::ErrorStatus getFirstDeriv(double, AcGeVector3d &)const ; \
488 virtual Acad::ErrorStatus getSecondDeriv( AcGePoint3d const &, AcGeVector3d &)const ; \
489 virtual Acad::ErrorStatus getSecondDeriv(double, AcGeVector3d &)const ; \
490 virtual Acad::ErrorStatus getClosestPointTo( AcGePoint3d const &, AcGePoint3d &,int = 0 )const ; \
491 virtual Acad::ErrorStatus getClosestPointTo( AcGePoint3d const &, AcGeVector3d const &, AcGePoint3d &,int = 0 )const ; \
492 virtual Acad::ErrorStatus getOrthoProjectedCurve( AcGePlane const &, AcDbCurve * &)const ; \
493 virtual Acad::ErrorStatus getOffsetCurves(double, AcDbVoidPtrArray &)const ; \
494 virtual Acad::ErrorStatus getSpline( AcDbSpline * &)const ; \
495 virtual Acad::ErrorStatus getSplitCurves( AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d> > const &, AcDbVoidPtrArray &)const ; \
496 virtual Acad::ErrorStatus getSplitCurves( AcGeDoubleArray const &, AcDbVoidPtrArray &)const ; \
497 virtual Acad::ErrorStatus extend(double); \
498 virtual Acad::ErrorStatus extend(int, AcGePoint3d const &); \
499 virtual Acad::ErrorStatus getArea(double &)const ; \
500 virtual Acad::ErrorStatus getProjectedCurve( AcGePlane const &, AcGeVector3d const &, AcDbCurve * &)const ;
502#define acdbTransactionManager acdbTransactionManagerPtr()
503#define acrxKernel acrxKernelPtr()
504#define acrxClassDictionary acrxClassDictionaryPtr()
505#define acapLongTransactionManager acapLongTransactionManagerPtr()
506#define acrxEvent acrxEventPtr()
507#define acDocManager acDocManagerPtr()
508#define acedRegCmds acedRegCmdsPtr()
509#define acedEditor acedEditorPtr()
510#define acrxDynamicLinker acrxDynamicLinkerPtr()
511#define actrTransactionManager actrTransactionManagerPtr()
513#define ACDB_PAPER_SPACE _T("*Paper_Space" )
514#define ACDB_MODEL_SPACE _T("*Model_Space" )
516#define ACDB_NULL_HANDLE _T("ACDB_NULL_HANDLE")
518#define ACRX_CLASS_DICTIONARY _T("ClassDictionary")
519#define ACRX_DYNAMIC_LINKER _T("DynamicLinker")
520#define ACRX_SERVICE_DICTIONARY _T("ServiceDictionary")
521#define ACRX_KERNEL_SERVICES _T("KernelServices")
522#define ACRX_PROTOCOL_REACTOR_MANAGER _T("ProtocolReactorManager")
523#define ACRX_COMMAND_DOCK _T("ACAD_REGISTERED_COMMANDS")
524#define ACED_SERVICES _T("AcEdServices")
525#define ACED_EDITOR_OBJ _T("AcEditor")
526#define ACRX_EVENT_OBJ _T("AcRxEvent")
530#define OL_ENAMEVALID 2
533#define OL_EBDEVALID 5
534#define OL_EXDEVALID 6
535#define OL_ENTSELPICK 7
539#define OL_EDELVPORT 11
540#define OL_EACQPLINE 12
546#define OL_ETBLNAME 18
549#define OL_ENONZERO 21
555#define OL_EMMCOLOR 27
556#define OL_EMMSTYLE 28
557#define OL_EMMSHAPE 29
558#define OL_EMMFTYPE 30
561#define OL_EMODHAND 33
562#define OL_EMODVPVIS 34
565#define OL_EMKPLINE 37
566#define OL_EMKCMPLX 38
567#define OL_EMKBNAME 39
568#define OL_EMKBFLAG 40
569#define OL_EMKDBNAME 41
571#define OL_EMKNOBNM 43
572#define OL_EMKNOBFLG 44
574#define OL_EMKBLOCK 46
575#define OL_EMKMANDF 47
576#define OL_EMMXDTYPE 48
577#define OL_EMMXDNEST 49
578#define OL_EMMXDAPPID 50
579#define OL_EMMXDSIZE 51
580#define OL_ENTSELNULL 52
581#define OL_EMXDAPPID 53
582#define OL_EMMVPORT 54
597#define OL_TABNOCAL 69
600#define OL_ENULLPTR 72
605#define OL_EVERSION 77
608#define OL_ENOTLOADED 80
610#define OL_EXFMVALID 82
613#define OL_NONDIALOG 85
615#define OL_EBADTYPE 93
616#define OL_EBADVPID 94
617#define OL_EBADVIEW 95
620#define OL_EBADSSMOD 98
621#define OL_EARGMATCH 99
622#define OL_SVRECURSE 100
623#define OL_MODOPEN 101
624#define OL_NOTENTITY 102
625#define OL_BADPLMOD 103
626#define OL_BADCTLSTR 104
627#define OL_EXDICT_PR 105
628#define OL_FNOTFOUND 106
629#define OL_NOFREEDB 107
630#define OL_CREAWIN 108
631#define OL_INVNAME 109
632#define OL_FALOPEN 110
634#define OL_FLOCKED 112
635#define OL_READFLX 113
636#define OL_SAVEFLX 114
637#define OL_FNOOPEN 115
641#define OL_FLXEXIST 119
642#define OL_NOFLXNAME 120
643#define OL_INVMODE 121
644#define OL_INTERROR 122
645#define OL_DBNOPEN 123
647#define OL_ENTCREATE 125
648#define OL_TBLEXIST 126
649#define OL_ENTNOTEX 127
650#define OL_DASHLEN 128
651#define OL_MAX1004 129
652#define OL_VPORTID 130
653#define OL_AMODVID 131
654#define OL_AMODC70 132
655#define OL_AFRICLAY 133
657#define OL_DBEMPTY 135
658#define OL_ARENEBAS 136
660#define OL_FILEOPEN 138
661#define OL_TBLEMPTY 140
663#define OL_DRAGEXIST 142
664#define OL_OUTSIDE 143
666#define OL_RECURSIV 145
670#define OL_STRINGLEN 149
671#define OL_ACTMODEL 150
672#define OL_OLELENGTH 151
676#define MAX_OL_ERRNO 151
680#define kLoadADSMsg kLoadDwgMsg
684#define kUnloadADSMsg kUnloadDwgMsg
687#define acdbNameEqual(name1, name2) (name1[0]==name2[0] && name1[1]==name2[1])
688#define acdbNameClear(name) name[0] = name[1] = 0
692#define ads_name_set(from, to) (memcpy(to, from, sizeof(ads_name)))
693#define ads_point_set(from,to) (memcpy(to, from, sizeof(ads_point)))
695#define ads_name_set(from, to) (*(to)= *(from), (to)[1]=(from)[1])
696#define ads_point_set(from, to) (*(to)= *(from), (to)[1]=(from)[1], (to)[2]=(from)[2])
699#define acdbNameSet ads_name_set
700#define acdbPointSet ads_point_set
703#define ACRX_PE_PTR(Param1,Param2) Param2::cast(Param1->queryX(Param2::desc()))
704#define ACRX_X_CALL(Param1,Param2) Param2::cast(Param1->x(Param2::desc()))
706#define ACDB_ANNOTATIONSCALES_COLLECTION acdbAnnotationScaleCollectionName()
708#define eOkCheck(param) (param)
709#define eOkVerify(param) ((param) == Acad::eOk)
713template <
class Class,
class Parent>
717 if (pClass == Class::desc())
723 pObj = Class::desc()->getX(pClass);
725 pObj =
pThis->Parent::queryX(pClass);
730template <
class Class>
734 if (pClass == Class::desc())
740 pObj = Class::desc()->getX(pClass);
748#define ACDB_DECLARE_MEMBERS( classname ) \
750 friend class AcDbSystemInternals; \
752 classname (AcDbSystemInternals*); \
754 ACRX_DECLARE_MEMBERS( classname )
756#define ACRX_DECLARE_MEMBERS( classname ) \
757 virtual AcRxClass * isA( void )const; \
758 static AcRxClass * gpDesc; \
759 static AcRxClass * __cdecl desc( void );\
760 static classname* cast( AcRxObject const * pObject ) \
762 if ( 0 != pObject && pObject->isKindOf( classname::desc() ) ) \
763 return( const_cast<classname*>( static_cast<const classname*>(pObject) ) ); \
767 static void __cdecl rxInit( void ); \
768 static void __cdecl rxInit( FxARXAppNameChangeFuncPtr );\
769 static void __cdecl rxUninit( void );\
770 virtual AcRxObject* queryX(const AcRxClass* protocolClass) const;
775#define AUTO_INIT_INVOKE(classname) AutoInitializer::Add(static_cast< void( * )( ) >( &classname::rxInit ), &classname::rxUninit)
778#define AUTO_INIT_DEFAULT(classname) AUTO_INIT_INVOKE(classname)
780#define AUTO_INIT_DEFAULT(classname) nullptr
783#define ACRX_DEFINE_MEMBERS_BASE( autoinit, classname ) \
784 AcRxClass* classname::gpDesc = autoinit(classname); \
785 AcRxClass* classname::isA() const \
789 AcRxClass* classname::desc(void) \
793 AcRxDictionary* pDict = (AcRxDictionary*) acrxSysRegistry()->at( ACRX_CLASS_DICTIONARY ); \
794 gpDesc = (AcRxClass*) pDict->at( _T(#classname) ); \
798 void classname::rxUninit() \
800 deleteAcRxClassImp( classname::desc() ); \
804#define ACRX_DEFINE_MEMBERS_IMPL( autoinit, classname ) \
805 ACRX_DEFINE_MEMBERS_BASE( autoinit, classname ) \
806 AcRxObject* classname::queryX(const AcRxClass* pClass) const \
808 return acQueryXImpl<classname>(this, pClass); \
811#define ACRX_DEFINE_MEMBERS( classname ) \
812ACRX_DEFINE_MEMBERS_IMPL( AUTO_INIT_DEFAULT, classname )
814#define ACRX_DEFINE_MEMBERS_AUTO( classname ) \
815ACRX_DEFINE_MEMBERS_IMPL( AUTO_INIT_INVOKE, classname )
817#define FXARX_CHECK( classname ) \
820 AcRxDictionary* pDict = (AcRxDictionary*) acrxSysRegistry()->at( ACRX_CLASS_DICTIONARY ); \
821 AcRxClass *pClass = (AcRxClass*) pDict->at( _T(#classname) ); \
824 if ( gpDesc == pClass ) \
827 throw Acad::eNotApplicable; \
832#define ACRX_NO_CONS_DEFINE_MEMBERS_IMPL( autoinit, classname, parentclass ) \
833 ACRX_DEFINE_MEMBERS_BASE( autoinit, classname ); \
834 void classname::rxInit() \
836 FXARX_CHECK( classname ); \
837 gpDesc = newAcRxClass( _T(#classname), _T(#parentclass) ); \
839 AcRxObject* classname::queryX(const AcRxClass* pClass) const \
841 return acQueryXImpl<classname, parentclass>(this, pClass); \
844#define ACRX_NO_CONS_DEFINE_MEMBERS( classname, parentclass ) \
845ACRX_NO_CONS_DEFINE_MEMBERS_IMPL(AUTO_INIT_DEFAULT, classname, parentclass)
847#define ACRX_NO_CONS_DEFINE_MEMBERS_AUTO( classname, parentclass ) \
848ACRX_NO_CONS_DEFINE_MEMBERS_IMPL(AUTO_INIT_INVOKE, classname, parentclass)
850#define ACRX_CONS_DEFINE_MEMBERS_IMPL( autoinit, classname, parentclass, dwgver ) \
851 ACRX_DEFINE_MEMBERS_BASE(autoinit, classname); \
852 static AcRxObject * make##classname() \
854 return new classname(); \
856 void classname::rxInit() \
858 FXARX_CHECK( classname ); \
859 gpDesc = newAcRxClass( _T(#classname), _T(#parentclass), dwgver, &make##classname ); \
861 AcRxObject* classname::queryX(const AcRxClass* pClass) const \
863 return acQueryXImpl<classname, parentclass>(this, pClass); \
866#define ACRX_CONS_DEFINE_MEMBERS( classname, parentclass, dwgver ) \
867ACRX_CONS_DEFINE_MEMBERS_IMPL(AUTO_INIT_DEFAULT, classname, parentclass, dwgver)
869#define ACRX_CONS_DEFINE_MEMBERS_AUTO( classname, parentclass, dwgver ) \
870ACRX_CONS_DEFINE_MEMBERS_IMPL(AUTO_INIT_INVOKE, classname, parentclass, dwgver)
872#define ACRX_DXF_DEFINE_MEMBERS_IMPL( autoinit, classname, parentclass, dwgver, maintver, proxyflags, dxfname, appname ) \
873 ACRX_DEFINE_MEMBERS_BASE( autoinit, classname ); \
874 static AcRxObject * make##classname() \
876 return new classname(); \
878 void classname::rxInit() \
880 FXARX_CHECK( classname ); \
881 gpDesc = newAcRxClass( _T(#classname), _T(#parentclass), dwgver, maintver, proxyflags, &make##classname, _T(#dxfname), _T(#appname) ); \
883 void classname::rxInit( FxARXAppNameChangeFuncPtr pfn ) \
885 FXARX_CHECK( classname ); \
886 gpDesc = newAcRxClass( _T(#classname), _T(#parentclass), dwgver, maintver, proxyflags, &make##classname, _T(#dxfname), _T(#appname), pfn ); \
888 AcRxObject* classname::queryX(const AcRxClass* pClass) const \
890 return acQueryXImpl<classname, parentclass>(this, pClass); \
893#define ACRX_DXF_DEFINE_MEMBERS( classname, parentclass, dwgver, maintver, proxyflags, dxfname, appname ) \
894ACRX_DXF_DEFINE_MEMBERS_IMPL(AUTO_INIT_DEFAULT, classname, parentclass, dwgver, maintver, proxyflags, dxfname, appname)
896#define ACRX_DXF_DEFINE_MEMBERS_AUTO( classname, parentclass, dwgver, maintver, proxyflags, dxfname, appname ) \
897ACRX_DXF_DEFINE_MEMBERS_IMPL(AUTO_INIT_INVOKE, classname, parentclass, dwgver, maintver, proxyflags, dxfname, appname)
ARX_API class AcRxClass * newAcRxClass(wchar_t const *, wchar_t const *, int=0, class AcRxObject *(__cdecl *)(void)=0, wchar_t const *=0, wchar_t const *=0)
ARX_API AcRxDictionary * acrxSysRegistry()
ARX_API void deleteAcRxClassImp(class AcRxClass *)
void(* FxARXAppNameChangeFuncPtr)(const AcRxClass *param_1, ACHAR *¶m_2, int param_3)
ARX_API void acrx_abort(const ACHAR *format,...)
AcRxObject * acQueryXImpl(const Class *pThis, const AcRxClass *pClass)