Extensions allow you to expand the range of data formats, positioning services, rangefinders, cameras, projections, and datum transformations supported in ArcPad. For example, if your application requires data in an unsupported map projection, you can write an extension to accomplish this. You can also create utility extensions that expose any desired low level functionality, normally accessible only via C or C++ code, to ArcPad scripts. The following extension types are available:
- Layer—Provides a range of support for each new data format, including file identification, layer opening and closing, layer rendering, editing, identifying, and hyperlinking.
- GPS—Provides support for additional global positioning system (GPS) devices that ArcPad does not support out of the box.
- Rangefinder—Provides support for additional laser rangefinders.
- Camera—Provides support for additional cameras.
- Projection—Provides support for additional projections.
- Datum—Provides support for additional datum transformations.
- Utility—Provides support for adding additional tools to several drop-down menus in ArcPad (for example, the Find, Tools, and GPS menus).
Implementing different sets of functions and properties allows you to choose how much support to add. Extensions are always compiled as dynamic-link libraries (DLLs). Once an extension is installed, the new functionality appears as any other built-in functionality in ArcPad.
Extensions are developed as Windows DLLs and are generally written in C or C++. External tools, such as a compiler and debugger, are required to create extensions.
Extensions are usually placed in the system Extensions folder, which is under the ArcPad installation directory in the Program Files area of Windows. You can specify additional extension folders on the Paths page of the ArcPad Options dialog box. To deploy an extension, simply place the .dll file in either the system Extensions folder, or a user-specified extensions folder, and start ArcPad.
The first time you run ArcPad, all extensions are loaded and examined. The ExtensionPrefs.apx file is created and stores a list of the extensions for future use. During future restarts of ArcPad, extensions are loaded based on their settings in ExtensionPrefs.apx. This prevents the need to load unused extensions each time you start ArcPad, saving time and memory.
You can configure which extensions are loaded in ArcPad using the Extensions page of the Advanced Settings dialog box. Updating these settings also updates ExtensionPrefs.apx.
To have ArcPad always load a particular extension on startup, you can manually edit ExtensionPrefs.apx, and add the attribute delayload="false" to the <EXTENSION> element.