进一步的,我们为上图所示的每一个方法和属性填入我们需要的代码。需要注意的是,ICommand的接口下的很多成员我们可以提供空的实现,这样可以避免书写太多的代码。但是有两个成员是我们必须提供实现的,它们是OnCreate以及Category。通过OnCreate我们可以接收系统传入的钩子,从而达到使黑盒模式中的代码有效的目的。而Category属性则可以保证我们在ArcMap中的自定义对话框内可以看到我们所写的这个类。
Private Sub ICommand_OnCreate(ByVal hook As Object)
'Set m_app = hook
Exit Sub
Private Property Get ICommand_Category()AsString
ICommand_Category = "ESRI China Training"
End Property
3.编译动态链接库
最终通过一系列的实现(此过程篇幅较长,再次省略),我们将希望插入的代码添加到这个模块的各个成员中。经过检查无误后,我们将其编译成想要的DLL文件。在VB 6.0的开发环境中选中ESRI自带的插件:ESRI Compile and Register(这个工具由ESRI提供,安装ArcGIS Desktop Develop Kit后可以获得。在\DeveloperKit\Addins文件夹下找到RegisterVBAddIns.EXE可执行程序,安装后即可获得。)。点击后我们可以看到以下的窗体。在左侧窗体中选中您开发的类名,在右侧窗体中选中ESRI MX COMMANDS类别,开始进行编译。