AutoCAD ObjectARX与.NET交互:acmgd.dll类接口详解

需积分: 10 4 下载量 125 浏览量 更新于2024-09-09 收藏 478KB TXT 举报
本文档提供了一份关于Autodesk AutoCAD ObjectARX库中`acmgd.dll`导出的.NET类的详细清单,主要关注`DocumentLockModeWillChangeEventArgs`事件和相关的委托`DocumentLockModeWillChangeEventHandler`。此外,还有一些与异常处理相关的内部类型。 在AutoCAD的.NET API中,`DocumentLockModeWillChangeEventArgs`类是`System.EventArgs`的子类,用于表示文档锁定模式将要改变时的事件参数。这个类包含以下属性: 1. CurrentMode:表示当前文档的锁定模式,类型为`Autodesk.AutoCAD.ApplicationServices.DocumentLockMode`,只读。 2. Document:引用触发事件的文档对象,类型为`Autodesk.AutoCAD.ApplicationServices.Document`,只读。 3. GlobalCommandName:全局命令名称,用于触发模式改变,类型为`System.String`,只读。 4. MyCurrentMode:与`CurrentMode`相似,但可能是针对特定用户或上下文的锁定模式,类型为`Autodesk.AutoCAD.ApplicationServices.DocumentLockMode`,只读。 5. MyNewMode:即将改变到的新锁定模式,类型为`Autodesk.AutoCAD.ApplicationServices.DocumentLockMode`,只读。 `DocumentLockModeWillChangeEventHandler`是一个多播委托,继承自`System.MulticastDelegate`,用于处理`DocumentLockModeWillChange`事件。它定义了以下方法: 1. Invoke:实际执行事件处理的方法,接收`Object`和`DocumentLockModeWillChangeEventArgs`参数。 2. BeginInvoke:启动异步调用事件处理方法,返回`IAsyncResult`。 3. EndInvoke:结束异步调用并返回结果。 4. GetObjectData:序列化委托实例。 5. Clone:创建委托的副本。 6. DynamicInvoke:动态调用委托所引用的方法。 7. Equals、`GetHashCode`、`GetType` 和 `ToString`:标准的重载方法,用于比较、哈希计算、获取类型信息和字符串表示。 此外,还有一些内部分配的结构体,如`$_s__CatchableTypeArray_$_extraBytes_12`、`$_s__CatchableTypeArray_$_extraBytes_8`、`$_s__RTTIBaseClassArray_$_extraBytes_12`、`$_s__RTTIBaseClassArray_$_extraBytes_16`和`$_s__RTTIBaseClassArray_$_extraBytes_20`,这些结构体可能是.NET运行时用于异常处理和运行时类型信息(RTTI)的内部实现细节。它们提供了基本的`Equals`、`GetHashCode`、`GetType`和`ToString`方法,但其具体用途和细节通常不对外公开,属于.NET框架的底层实现。 这份清单揭示了AutoCAD .NET API中与文档锁定模式变更事件处理相关的类和委托,以及一些可能涉及异常处理和类型信息的内部结构。开发人员可以利用这些信息来编写能够监听和响应AutoCAD文档锁定模式变化的代码。