#ifndef _AO_UTILS_H_INCLUDED #define _AO_UTILS_H_INCLUDED #include "ogr_ao.h" #include // ArcObjects to OGR Geometry Mapping bool AOToOGRGeometry(IGeometryDef* pGeoDef, OGRwkbGeometryType* outOGRType); bool AOGeometryToOGRGeometry(bool forceMulti, esriGeometry::IGeometry* pInAOGeo, OGRSpatialReference* pOGRSR, unsigned char* & pInWorkingBuffer, long & inOutBufferSize, OGRGeometry** ppOutGeometry); //working buffer is an optimization to avoid reallocating mem bool AOToOGRSpatialReference(esriGeometry::ISpatialReference* pSR, OGRSpatialReference** ppSR); bool OGRGeometryToAOGeometry(OGRGeometry* pOGRGeom, esriGeometry::IGeometry** ppGeometry); // ArcObjects to OGR Field Mapping bool AOToOGRFields(IFields* pFields, OGRFeatureDefn* pOGRFeatureDef, std::vector & ogrToESRIFieldMapping); bool AOToOGRFieldType(esriFieldType aoType, OGRFieldType* ogrType); // COM error to OGR bool AOErr(HRESULT hr, std::string desc); // Init driver and check out license bool InitializeDriver(esriLicenseExtensionCode license = (esriLicenseExtensionCode)0); // Exit app and check in license HRESULT ShutdownDriver(esriLicenseExtensionCode license = (esriLicenseExtensionCode)0); // Helper functions to initialize bool InitAttemptWithoutExtension(esriLicenseProductCode product); bool InitAttemptWithExtension(esriLicenseProductCode product, esriLicenseExtensionCode extension); int GetInitedProductCode(); #endif