COM (Common Object Model) is a standard method for modern Microsoft operating systems for sharing binary code across different applications and languages without sharing the actual source code. COM is a language independent object model that defines a binary interface standard. This standard specifies that the modules must be compiled using a specific structure, and that the COM object interfaces must be organized in a specific manner. The binary standard allows the DLLs to be used by most programming languages.
A component is a reuseable piece of software in binary form that can, with relatively little effort, be linked into other components. The Prometheus COM can therefore be integrated into other applications such as Pandora, Burn-P3 or SFMS.
-Reuseability of the component objects -Interoperability of the binary standard -Allowance for distributed capabilities
Prometheus is engineered using 5 separate object-oriented COMs. These are called the low-level interfaces. They include:
The Prometheus COM combines all of the low-level COMs to provide a high-level procedural interface that is easier for programmers to learn, understand and use. The COM is intended to be used by agencies interested in developing their own Fire Growth Model with a different user interface, or integrating the Prometheus Fire Growth Model into other applications. Additionally, the Microsoft Interop technology now allows modern .Net applications to use the high-level COM interface.
#define PROMETHEUSCOM_VERSION 205
#define PROMETHEUSCOM_RELEASEDATE 206
#define PROMETHEUSCOM_SCENARIO_PRIMARYSTREAM_INDEX 207
#define ERROR_GRID_UNINITIALIZED ((HRESULT)(12000 | ERROR_SEVERITY_WARNING))
#define ERROR_GRID_INITIALIZED ((HRESULT)(12001 | ERROR_SEVERITY_WARNING))
#define ERROR_GRID_LOCATION_OUT_OF_RANGE ((HRESULT)(12002 | ERROR_SEVERITY_WARNING))
#define ERROR_GRID_TIME_OUT_OF_RANGE ((HRESULT)(12003 | ERROR_SEVERITY_WARNING))
#define SUCCESS_GRID_DATA_UPDATED ((HRESULT)(12004))
#define ERROR_GRID_WEATHER_NOT_IMPLEMENTED ((HRESULT)(12005 | ERROR_SEVERITY_WARNING))
#define ERROR_GRID_WEATHER_INVALID_DATES ((HRESULT)(12006 | ERROR_SEVERITY_WARNING))
#define SUCCESS_GRID_TOTAL_AREA ((HRESULT)(12007))
#define SUCCESS_RETURNING_DEFAULTS ((HRESULT)(12008))
#define SUCCESS_RETURNING_CALCED_SLOPE ((HRESULT)(12009))
#define ERROR_GRID_WEATHER_NO_DATA ((HRESULT)(12010 | ERROR_SEVERITY_WARNING))
#define SUCCESS_GRID_IMPORT_CONTAINED_ONLY_NODATA ((HRESULT)(12011))
#define SUCCESS_GRID_IMPORT_CONTAINED_NODATA ((HRESULT)(12012))
#define ERROR_PROJECTION_UNKNOWN ((HRESULT)(12020 | ERROR_SEVERITY_WARNING))
#define ERROR_GRID_NO_DATA ((HRESULT)(12013 | ERROR_SEVERITY_WARNING))
#define ERROR_GRID_PRIMARY_STREAM_UNSPECIFIED ((HRESULT)(12014 | ERROR_SEVERITY_WARNING))
#define ERROR_GRID_WEATHERSTATIONS_TOO_CLOSE ((HRESULT)(12016 | ERROR_SEVERITY_WARNING))
#define ERROR_GRID_WEATHERSTREAM_TIME_OVERLAPS ((HRESULT)(12017 | ERROR_SEVERITY_WARNING))
#define ERROR_GRID_WEATHER_STATION_ALREADY_PRESENT ((HRESULT)(12018 | ERROR_SEVERITY_WARNING))
#define ERROR_FIREBREAK_NOT_FOUND ((HRESULT)(12050 | ERROR_SEVERITY_WARNING))
#define SUCCESS_FUELS_FUEL_ALREADY_ADDED ((HRESULT)(12500))
#define ERROR_FUELS_FILEINDEX_ALREADY_ASSIGNED ((HRESULT)(12501 | ERROR_SEVERITY_WARNING))
#define ERROR_FUELS_FUEL_UNKNOWN ((HRESULT)(12502 | ERROR_SEVERITY_WARNING))
#define ERROR_FUELS_FUEL_USED ((HRESULT)(12503 | ERROR_SEVERITY_WARNING))
#define ERROR_FUELS_FUEL_KNOWN ((HRESULT)(12504 | ERROR_SEVERITY_WARNING))
#define ERROR_FIRE_IGNITION_TYPE_UNKNOWN ((HRESULT)(12100 | ERROR_SEVERITY_WARNING))
#define SUCCESS_FIRE_NOT_STARTED ((HRESULT)(12102))
#define SUCCESS_FIRE_BURNED_OUT ((HRESULT)(12103))
#define ERROR_FIRE_INVALID_TIME ((HRESULT)(12104 | ERROR_SEVERITY_WARNING))
#define ERROR_FIRE_STAT_UNKNOWN ((HRESULT)(12105 | ERROR_SEVERITY_WARNING))
#define SUCCESS_FIRE_NO_HISTORY ((HRESULT)(12106))
#define ERROR_SCENARIO_FIRE_ALREADY_ADDED ((HRESULT)(12200 | ERROR_SEVERITY_WARNING))
#define ERROR_SCENARIO_FIRE_UNKNOWN ((HRESULT)(12201 | ERROR_SEVERITY_WARNING))
#define ERROR_SCENARIO_FIRE_KNOWN ((HRESULT)(12217 | ERROR_SEVERITY_WARNING))
#define ERROR_SCENARIO_NO_FIRES ((HRESULT)(12202 | ERROR_SEVERITY_WARNING))
#define ERROR_SCENARIO_OPTION_INVALID ((HRESULT)(12203 | ERROR_SEVERITY_WARNING))
#define ERROR_SCENARIO_BAD_TIMES ((HRESULT)(12204 | ERROR_SEVERITY_WARNING))
#define ERROR_SCENARIO_BAD_TIMESTEPS ((HRESULT)(12212 | ERROR_SEVERITY_WARNING))
#define ERROR_SCENARIO_INVALID_BURNCONDITIONS ((HRESULT)(12218 | ERROR_SEVERITY_WARNING))
#define ERROR_SCENARIO_BAD_STATE ((HRESULT)(12205 | ERROR_SEVERITY_WARNING))
#define SUCCESS_SCENARIO_SIMULATION_RESET ((HRESULT)(12206))
#define SUCCESS_SCENARIO_SIMULATION_RUNNING ((HRESULT)(12207))
#define ERROR_SCENARIO_SIMULATION_RUNNING ((HRESULT)(SUCCESS_SCENARIO_SIMULATION_RUNNING | ERROR_SEVERITY_WARNING))
#define SUCCESS_SCENARIO_SIMULATION_COMPLETE ((HRESULT)(12208))
#define ERROR_SCENARIO_VECTORENGINE_ALREADY_ADDED ((HRESULT)(12209 | ERROR_SEVERITY_WARNING))
#define ERROR_SCENARIO_VECTORENGINE_UNKNOWN ((HRESULT)(12210 | ERROR_SEVERITY_WARNING))
#define ERROR_SCENARIO_VECTORENGINE_KNOWN ((HRESULT)(12211 | ERROR_SEVERITY_WARNING))
#define ERROR_SCENARIO_WEATHERGRID_UNKNOWN ((HRESULT)(12216 | ERROR_SEVERITY_WARNING))
#define ERROR_SCENARIO_UNKNOWN ((HRESULT)(12214 | ERROR_SEVERITY_WARNING))
#define ERROR_SCENARIO_KNOWN ((HRESULT)(12215 | ERROR_SEVERITY_WARNING))
#define ERROR_WEATHER_STREAM_ALREADY_ADDED ((HRESULT)(12300 | ERROR_SEVERITY_WARNING))
#define ERROR_WEATHER_STREAM_UNKNOWN ((HRESULT)(12301 | ERROR_SEVERITY_WARNING))
#define ERROR_WEATHER_STREAM_NOT_ASSIGNED ((HRESULT)(12302 | ERROR_SEVERITY_WARNING))
#define ERROR_WEATHER_STREAM_ALREADY_ASSIGNED ((HRESULT)(12303 | ERROR_SEVERITY_WARNING))
#define ERROR_WEATHER_STATION_ALREADY_PRESENT ((HRESULT)(12304 | ERROR_SEVERITY_WARNING))
#define ERROR_SCENARIO_MULTIPLE_WS_GRIDS ((HRESULT)(12307 | ERROR_SEVERITY_WARNING))
#define ERROR_SCENARIO_MULTIPLE_WD_GRIDS ((HRESULT)(12308 | ERROR_SEVERITY_WARNING))
#define ERROR_WEATHER_OPTION_INVALID ((HRESULT)(12305 | ERROR_SEVERITY_WARNING))
#define ERROR_WEATHER_STATION_UNKNOWN ((HRESULT)(12306 | ERROR_SEVERITY_WARNING))
#define ERROR_POINT_NOT_IN_FIRE ((HRESULT)(12400 | ERROR_SEVERITY_WARNING))
#define ERROR_FILE_FORMAT_INVALID ((HRESULT)(12500 | ERROR_SEVERITY_WARNING))
#define SUCCESS_STATE_OBJECT_UNLOCKED ((HRESULT)12600)
#define SUCCESS_STATE_OBJECT_LOCKED_WRITE ((HRESULT)12601)
#define SUCCESS_STATE_OBJECT_LOCKED_READ ((HRESULT)12602)
#define SUCCESS_STATE_OBJECT_LOCKED_SCENARIO ((HRESULT)12603)
#define ERROR_GRIDFILTER_UNKNOWN ((HRESULT)(12700 | ERROR_SEVERITY_WARNING))
#define ERROR_GRIDFILTER_KNOWN ((HRESULT)(12701 | ERROR_SEVERITY_WARNING))
#define ERROR_WEATHER_STREAM_ATTEMPT_PREPEND ((HRESULT)(12800 | ERROR_SEVERITY_WARNING))
#define ERROR_WEATHER_STREAM_ATTEMPT_APPEND ((HRESULT)(12801 | ERROR_SEVERITY_WARNING))
#define ERROR_WEATHER_STREAM_ATTEMPT_OVERWRITE ((HRESULT)(12802 | ERROR_SEVERITY_WARNING))
#define ERROR_DATA_NOT_UNIQUE ((HRESULT)(12900 | ERROR_SEVERITY_WARNING)) // error condition that occurs when the data specified is not unique
#define ERROR_NAME_NOT_UNIQUE ((HRESULT)(12901 | ERROR_SEVERITY_WARNING)) // error condition that occurs when the name specified is not unique
#define ERROR_SECTOR_INVALID_INDEX ((HRESULT)(12902 | ERROR_SEVERITY_WARNING)) // error condition that occurs when the sector index specified is out of range
#define ERROR_SECTOR_TOO_SMALL ((HRESULT)(12903 | ERROR_SEVERITY_WARNING)) // error condition that occurs when the sector angle specified span an angle less than MINIMUM_SECTOR_ANGLE
#define ERROR_SPEED_OUT_OF_RANGE ((HRESULT)(12904 | ERROR_SEVERITY_WARNING)) // error condition that occurs when the wind speed specified is out of range
#define ERROR_GRID_SIZE_INCORRECT ((HRESULT)(12905 | ERROR_SEVERITY_WARNING))
The Prometheus application and COM setup are integrated into one install program. Both the Prometheus application and Prometheus COM are now automatically installed. Previously, users were prompted to enter a Prometheus COM license when installing the Prometheus COM; this is no longer the case.
If a very old version of Prometheus (or PrometheusCOM) is currently installed, it is recommended to first uninstall before loading a current version.
A license (software key) is no longer required to use the Prometheus COM. Any previously installed Prometheus COM license is stored in the computer registry in the following folder:
This entry is no longer used and can be removed, if desired.