ArcObjects libraries exclusively in ArcGIS Desktop


The libraries contained within ArcGIS Desktop are summarized below. Understanding the library structure, their dependencies, and basic functionality will help you as a developer navigate through the components of the ArcGIS Desktop applications.
For a comprehensive discussion on each library, refer to the overview topic for each in the ArcObjects Library Reference section of the help system.
The libraries are discussed in dependency order. The libraries that are common for the entire ArcGIS platform are discussed separately in the topic ArcObjects libraries shared across the ArcGIS platform.
Knowing the library dependency order is important, since it affects the way in which developers interact with the libraries as they develop software. For example, C++ developers must include the type libraries in the library dependency order to ensure correct compilation. Understanding the dependencies also helps when deploying your developments.

Framework

The Framework library provides core components and software interfaces to support user interface components and the ArcGIS applications. A number of the objects in the Framework library are used internally by the ArcGIS applications to support their customization environment. There are a number of helper objects in Framework that developers can use when creating user interfaces for inclusion in one of the ArcGIS applications—ComPropertySheet, ModelessFrame, and MouseCursor are three examples—along with a set of dialog boxes that support common UI operations within an ArcGIS application—ColorSelector and NumberDialog are two commonly used dialog boxes. The Framework library defines the software interfaces that developers use when creating user interfaces for extending the ArcGIS system using property pages and dockable windows. The Framework library is not extended by the developer, but by implementing interfaces defined in the library, developers can extend the ArcGIS architecture with UI components.
The modular architecture of ArcObjects makes a split between UI and non-UI code. The objects that have the GIS functionality do not have UI in the same DLL. The UI is provided by a complementary UI library. This UI library uses framework components, as well as components from its corresponding non-UI library.

GeoDatabaseUI

The GeoDatabaseUI library provides user interfaces, including property pages, to support objects contained in the GeoDatabase library. The library supports a number of dialog boxes that developers can use; TableView, Calculator, and the version dialog boxes are all defined in the library. It is not common for developers to extend this library.

DisplayUI

The DisplayUI library provides user interfaces, including property pages, to support objects contained in the Display library. All the symbols defined in the Display library have their property pages defined in this library. There are dialog boxes to manage styles and symbols in this library. Developers extend this library when they create UIs for corresponding components they have created in the Display library.

OutputUI

The OutputUI library provides user interfaces, including property pages, to support objects contained in the Output library. In addition to the property pages, there are a number of dialog boxes, including the PrintDialog and ExportDialog, available for developers to use. Developers extend this library when they create UIs for corresponding components they have created in the Output library.

Catalog

The Catalog library contains objects and defines interfaces to support data catalogs. The catalog is a representation of persistent data. The data can be both local and remote. By using the objects within the catalog, developers can browse data holdings and, if required, obtain connections to the data. Many of the objects defined in Catalog are referred to as "GX" objects. These GX objects all implement the interface IGxObject. Objects that implement this interface can be manipulated within a catalog. GxFilters, which allow developers to browse for certain types of data, are also defined in this library. Developers commonly extend this library when they want to add catalog support for a data type not already supported by the ArcGIS system.

CatalogUI

The CatalogUI library provides user interfaces, including property pages, to support objects contained in the Catalog library. In addition to the property pages, there are a number of dialog boxes, including the GxDialog, that can be used when interacting with catalogs and their contents. The GxDialog object supports the "Add Data" functionality of the ArcGIS applications. The FindDialog is also implemented by this library. Many of the commands and context menus seen in the ArcCatalog application are defined in this library. Developers extend this library when they create UIs for corresponding components they have created in the Catalog library.
Although implemented in libraries, commands are not exposed directly to developers. Developers obtain references to commands through the hosting application.

CartoUI

The CartoUI library provides user interfaces, including property pages, to support objects contained in the Carto library. In addition to the property pages, there are a number of dialog boxes, including the IdentifyDialog, available for developers to use, although many of the dialog boxes contained in this library are commonly accessed through a property page. Developers extend this library when they create UIs for corresponding components they have created in the Carto library.

DataSourcesRasterUI

The DataSourcesRasterUI library provides user interfaces, including property pages, to support objects contained in the DataSourcesRaster library. In addition to the property pages, there are dialog boxes, including RasterSdeLoader and SidEncoder, available for developers to use. Developers extend this library when they create UIs for corresponding components they have created in the DataSourcesRaster library.

ArcCatalogUI

The ArcCatalogUI library provides user interface components specific to the ArcCatalog application. The dialog box IDs for specific ArcCatalog dialog boxes are found in this library. Developers do not extend this library.

ArcCatalog

The ArcCatalog library contains the ArcCatalog application, including the Application and Document objects. Some of the interfaces, such as IGxApplication, are defined in the ArcCatalogUI library. This is because the objects in the ArcCatalogUI library use the IGxApplication interface to interact with the ArcCatalog application. The GxDocument object fires various events during the lifetime of the ArcCatalog application that can be used by developers to synchronize with ArcCatalog events. Developers do not extend this library; instead, they create commands and tools for use within the ArcCatalog application.

ArcMapUI

The ArcMapUI library provides user interface components specific to the ArcMap application. The components contained in this library cannot be used outside the context of ArcMap. The IMxApplication and IMxDocument interfaces are defined in this library, although they are implemented in the ArcMap library. The ArcMap table of contents is implemented in this library, along with many of the commands present in ArcMap. Developers extend this library by creating custom commands and tools for use within the ArcMap application.
As earlier noted, it is advantageous for developers to develop their commands and tools for use within the various ArcGIS controls, as well as the ArcMap application.

ArcMap

The ArcMap library contains the ArcMap application, which is implemented by the Application object. Similar to the ArcCatalog library, the Application object implements interfaces from other libraries; namely, ArcMapUI. The ArcMap application can be programmatically controlled either by developers who write new commands and tools that are included in the application or through OLE automation. When interacting with ArcMap and OLE automation, it is important that all objects used by ArcMap are created within the context of ArcMap. To support this programming model, the application implements the IObjectFactory interface. Developers also use the Application object to work with ArcMap documents, dockable windows, extensions, and the various data windows supported by ArcMap. Developers do not extend this library; instead, they create commands and tools for use within the ArcMap application.

AnimationUI

The AnimationUI library implements user interface functionality that supports animations in ArcMap, ArcGlobe, and ArcScene.

Editor

The Editor library implements the ArcMap object editor. The editor supports the editing of simple features, network features, annotations, and topological features, along with attributes for all these features. The library supports both a user interface and a programming API. The API provided by the Editor is a higher-level API than that of the GeoDatabase library. Developers are encouraged to use the Editor API when editing and manipulating features in the geodatabase. Developers can extend the library with their own editing commands, edit tasks, and snap agents; and for more advanced customization, developers can create extensions to the editor. The object inspector interface is implemented by the Editor library; however, to extend this user interface, a Class extension is implemented by extending the GeoDatabase library for the appropriate data source.

GeoReferenceUI

The GeoReferenceUI library implements commands, tools and Dialogs that expose functionality that is used when rectifying spatial data.

EditorExt

The EditorExt library contains extensions to the ArcMap Editor and components dependent on the Editor. The functionality supported by this library is diverse, with the commonality being its reliance on the Object Editor. The library has functionality and associated UI to support network tracing, database loading, ArcPad® integration, edge matching, and managing map topology within ArcMap. Developers do not commonly extend this library; rather, they create their own editor extensions in their own library.

LocationUI

The LocationUI library provides user interfaces, including property pages, to support objects contained in the Location library. In addition to the property pages, there are a number of dialog boxes, including the EventFinder and AddressLocatorUI, available for developers to use. This library also contains objects that extend other core libraries of the ArcGIS system, such as Catalog, CatalogUI, and CartoUI. Developers extend this library when they create UIs for corresponding components they have created in the Location library.

GeoDatabaseDistributedUI

The GeoDatabaseDistributedUI library provides user interfaces, including property pages and dialog boxes, to support objects contained in the GeoDatabaseDistributed library. Developers do not extend this library.

GeoprocessingUI

The GeoprocessingUI library provides user interfaces, including property pages, to support objects contained in the Geoprocessing library. In addition to the property pages, there are a number of dialog boxes available for developers to use. Developers extend this library when they create UIs for corresponding components they have created in the Geoprocessing library. In addition to the normal property pages created to support objects in a non-UI library, it is possible that new ActiveX controls will be required to support data types used by geoprocessing tools. The ActiveX controls are used by the geoprocessing dialog boxes when requesting the parameters for a geoprocessing tool from users. This library contains all the parameter controls required by the geoprocessing tools defined in the Geoprocessing library.
As earlier noted, it is advantageous for developers to develop their commands and tools for use within the various ArcGIS controls, as well as the ArcMap application.

OutputExtensions

The OutputExtensions library extends the core output functionality with more advanced output capabilities. The ArcPress™ printing engine is implemented by this library. This library is not extended by developers. Depending on the components used from the library, an extension license may be required.

OutputExtensionsUI

The OutputExtensionsUI library provides user interfaces, including property pages, to support objects contained in the OutputExtensions library. Developers do not extend this library. Depending on the components used from the library, an extension license may be required.
Within ArcGIS Desktop it is not uncommon to see extensions broken up into non-UI and UI libraries; OutputExtensions and Publisher are two such examples.

DataSourcesSMUUI

The DataSourcesSMUUI library contains the extension object for the Street Map USA ArcMap Extension. The DataSourcesFile library uses this UI library for checking out the appropriate StreetMap extension license when the user accesses StreetMap data within ArcGIS.

ArcScan

The ArcScan library supports the ArcScan™ raster-to-vector conversion extension to ArcMap, along with its associated user interface components, commands, and tools. The ArcScan extension object, Vectorization, is implemented by this library. Developers do not extend this library. An ArcScan extension license is required to work with objects in this library.

NetworkAnalystUI

The NetworkAnalystUI library provides user interfaces, including property pages, to support objects contained in the NetworkAnalyst library. The library also contains a comprehensive set of geoprocessing tools that expose the NetworkAnalyst library functionality for use within the geoprocessing framework. The NetworkAnalyst Extension object is implemented by this library. Developers extend this library when they create UIs or geoprocessing functions for corresponding components they have created in the NetworkAnalyst library. An ArcGIS Network Analyst license is required to work with objects in this library.

SpatialAnalystUI

The SpatialAnalystUI library provides user interfaces, including property pages, to support objects contained in the SpatialAnalyst library. The library also contains a comprehensive set of geoprocessing tools that expose the SpatialAnalyst library functionality for use within the geoprocessing framework. The SpatialAnalyst Extension object is implemented by this library. Developers extend this library when they create UIs or geoprocessing functions for corresponding components they have created in the SpatialAnalyst library. An ArcGIS Spatial Analyst license is required to work with objects in this library.

SchematicUI

The SchematicUI library provides user interfaces to support objects contained in the Schematic library. The ArcMap and ArcCatalog Schematic Extension object is implemented by this library. Developers extend this library when they create UI functions for custom components they have created in the Schematic library.
A Schematics extension is required to work with objects in this library.

3DAnalystUI

The 3DAnalystUI library provides user interfaces, including property pages, to support objects contained in the 3DAnalyst library. The library also contains a comprehensive set of geoprocessing tools that expose the 3DAnalyst library functionality for use within the geoprocessing framework. The 3DAnalyst Extension object is implemented by this library. Developers extend this library when they create UIs or geoprocessing functions for corresponding components they have created in the 3DAnalyst library. A 3D Analyst license is required to work with objects in this library.

ArcScene

The ArcScene library contains the ArcScene™ application, along with its associated user interface components, commands, and tools. The ArcScene Application and SxDocument objects are both defined and implemented by this library. Developers can use the Application object when customizing the ArcScene application or working with one of the ArcScene extensions. Developers extend this library by creating commands, tools, and extensions for use within the ArcScene application. A 3D Analyst license is required to work with objects in this library.
Similar to developing tools for ArcMap, developers should develop commands and tools that work in both the ArcScene application and the SceneControl developer component.

GlobeCoreUI

The GlobeCoreUI library provides user interface components specific to the ArcGlobe™ application. The library also provides property pages for objects contained in the GlobeCore library. It is not common for developers to extend this library. A 3D Analyst extension license is required to work with objects in this library.

ArcGlobe

The ArcGlobe library contains the ArcGlobe application, along with its associated user interface components, commands, and tools. The ArcGlobe Application and GMxDocument objects are both defined and implemented by this library. Developers can use the Application object when customizing the ArcGlobe application or working with one of the ArcGlobe extensions. Developers extend this library by creating commands, tools, and extensions for use within the ArcGlobe application. A 3D Analyst license is required to work with objects in this library.
Similar to developing tools for ArcScene, developers should develop commands and tools that work in both the ArcGlobe application and the GlobeControl developer component.

Publisher

The Publisher library implements the non-UI functionality of the Publisher extension to ArcGIS. The PublisherEngine and PackagerEngine objects support the publishing of PMF files and the subsequent packaging of the published map files. Developers do not extend this library. An ArcGIS Publisher extension license is required to work with objects in this library.

PublisherControls

The ArcReaderControl library contains two ActiveX controls (the ArcReaderControl and ArcReaderGlobeControl). The two controls can be used to create custom ArcReader applications. The encapsulated ArcObjects are not accessible using this control. The functionality supported by the control is similar to that of ArcReader with the addition of query features. Developers do not extend this library.

PublisherUI

The PublisherUI library provides user interfaces, including property pages along with ArcCatalog and ArcMap commands, to support objects contained in the Publisher library. Developers do not extend this library. An ArcGIS Publisher extension license is required to work with objects in this library.

MaplexUI

The MaplexUI library mainly provides user interfaces, including property pages along with commands and tools, to support objects contained in the Maplex library. Additionally, the MaplexUI library contains the MaplexExtension object, which is used by the applications to establish licensing for the product. You utilize this object to initialize the Maplex extension for use. Developers do not extend this library.

TrackingAnalystUI

The TrackingAnalystUI library provides user interfaces, including property pages, along with commands and tools, to support objects contained in the TrackingAnalyst library. Developers do not extend this library. A Tracking Analyst extension license is required to work with objects in this library.

SurveyExt

The SurveyExt (Survey Extension) library handles the core objects used to manage survey data and survey processes. The system allows angle and distance measurements observed using field survey equipment to be processed in order to generate computed coordinates. The objects in this library are data objects and data management objects. Data management objects are manifested through ArcCatalog as survey-specific datasets, projects, and folders and through ArcMap as survey layers and a Survey Explorer UI. The fundamental survey data objects with which users interact are survey points, coordinates, simple measurements, composite measurements, and computations. These objects are persisted as rows in a set of tables that represent the survey dataset. These tables are called survey classes. Each row in the table is called a survey object. A computation is a survey process that is persisted in a computation survey class. Each has a signature behavior, makes reference to survey points and measurements, and generates coordinates based on the observation values held by the reference objects. Two examples of a computation are a traverse and a least-squares adjustment.
The SurveyExt library is the set of primitive objects that forms the foundation for the objects in the SurveyPkgs and SurveyDataEx libraries.

SurveyPkgs

The SurveyPkgs (Survey Packages) library provides a set of concrete worker objects and object classes that are built from the base classes of the SurveyExt library. There are three survey packages provided with Survey Analyst in ArcGIS 9. They are the Point, TPS (total station), and COGO packages. The existing survey packages can be extended and customized, and new survey packages can be created. To create your own survey package, you need to aggregate the core Survey Analyst objects from the SurveyExt library. To do this, a programming language that supports aggregation is required. VB does not support aggregation, but C++ does. Survey packages may depend on each other in a hierarchical manner. For instance, instead of defining their own point and coordinate data types, the COGO and TPS packages use the point and coordinate data types of the point package.

SurveyDataEx

The SurveyDataEx (Survey Data Exchange) library handles the core objects used to import and export survey data to and from data collector observation files, ASCII files, and other sources. The objects in this library are used to ensure data integrity when merging imported data with preexisting data in a survey dataset. Data exchange objects may be used through ArcCatalog and ArcMap or instantiated and executed through standalone applications.
The fundamental survey data exchange objects with which users interact are survey converters. These objects are registered in two component categories: ESRI Survey Analyst Survey Import Converters and ESRI Survey Analyst Survey Export Converters. Custom survey converters must also be registered in these component categories.
The core ArcGIS Survey Analyst extension supports the following import converters: Configurable ASCII coordinate importer, Geodimeter, Geo Serial Interface, Tripod Data Systems, and Sokkia SDR. In addition, its export converters allow the transfer of coordinates into these same formats.