This topic is relevant for the following:
Product(s): ArcGIS Desktop: All
Version(s): 9.0, 9.1, 9.2
Language(s): VB6, VC++
Experience level(s): Intermediate to advanced
This introductory section shows you an overview of the aims of Extending ArcObjects and lists prerequisites for readers.
'Developing objects' provides indepth coverage of many technical issues which are common to many areas of custom object creation, for example object oriented programming techniques, creating objects which are clonable and persistable, and creating custom property pages. It is not intended to provide complete technical information from beginner level, but to provide some context for working with the examples in this book.
The main part of Extending ArcObjects presents a series of example projects, showing you how to create custom objects for the ArcGIS framework. These examples cover a wide range of likely customization tasks you may undertake. For each example, the structure and rationale is described with reference to particular coding issues.
'Extending the user interface' provides examples of the basic user interface custom components such as commands and tools, and more complex examples such as dockable windows.
'Creating cartography' shows you how to create custom objects for the ArcMap environment, such as custom layers, elements, and map surrounds.
'Extending the display' shows you how to extend the display capabilities of ArcMap by drawing features and elements with custom symbols, renderers and colors.
'Adapting the catalog' shows you how to create custom catalog objects to allow you to browse and investigate your own data sources.
'Customizing the geodatabase' demonstrates examples of how you can extend the ArcObjects components that manage geographic data.
'Extending the Editor' shows you a number of ways you can plug in custom objects to the Editor framework, creating new edit commands and tasks, and UI components.
In addition, a Bibliography of useful references used throughout Extending ArcObjects.
The topic Editing IDL provides advice on writing interfaces using IDL for cross-language use.
And finally, the topic Geodatabase modeling with UML describes how to use Computer-Aided Software Engineering (CASE) tools to model custom objects in the geodatabase.
Throughout these topics, in which code extracts have been edited for brevity, an ellipsis is used to indicate missing lines of code.Each example is available as source code, which can be found with the other ArcObjects samples in your developer kit installation. They are installed to the 'Extending_ArcObjects' folder, arranged by chapter.
There are some language-related limitations when implementing objects, and some examples used in Extending ArcObjects are limited to VC++ only. More information on the reasons behind these limitations can be found in 'Choosing a development environment'.
Technical details that apply to any language implementation are generally described with reference to VB example code throughout this book, as it is expected that VC++ programmers should be able to interpret this more readily than VB programmers could interpret VC++. Details specific to a particular language will be described with reference to code examples in that language.
Each example in this book implements one or more interfaces defined in the ESRI object libraries. However, to add the user-defined functionality required by each example, many examples also include user-defined interfaces. For VC++ classes, COM members can only be defined by use of an interface. For VB classes, an interface is generally defined in a separate class and implemented in the target class.