#ifdef __cplusplus extern "C" { #endif #pragma once #include "hgdalType.h" #include "STDDeletable.h" #include "stdcxxType.h" #define OGRFEATUREDEFN_DECL_VIRT(Type) \ int Type##_GetFieldCount ( Type##_p p );\ OGRFieldDefn_p Type##_GetFieldDefn ( Type##_p p, int i );\ int Type##_GetGeomFieldCount ( Type##_p p ); #define OGRFEATUREDEFN_DECL_NONVIRT(Type) \ #define OGRFEATUREDEFN_DECL_ACCESSOR(Type) \ #define OGRFEATUREDEFN_DEF_VIRT(Type) \ int Type##_GetFieldCount ( Type##_p p ) {\ return ((TYPECASTMETHOD(Type, GetFieldCount, OGRFeatureDefn))(p))->GetFieldCount();\ }\ \ OGRFieldDefn_p Type##_GetFieldDefn ( Type##_p p, int i ) {\ return from_nonconst_to_nonconst((OGRFieldDefn*)((TYPECASTMETHOD(Type, GetFieldDefn, OGRFeatureDefn))(p))->GetFieldDefn(i));\ }\ \ int Type##_GetGeomFieldCount ( Type##_p p ) {\ return ((TYPECASTMETHOD(Type, GetGeomFieldCount, OGRFeatureDefn))(p))->GetGeomFieldCount();\ } #define OGRFEATUREDEFN_DEF_NONVIRT(Type) \ #define OGRFEATUREDEFN_DEF_ACCESSOR(Type) \ DELETABLE_DECL_VIRT(OGRFeatureDefn) OGRFEATUREDEFN_DECL_VIRT(OGRFeatureDefn) OGRFEATUREDEFN_DECL_NONVIRT(OGRFeatureDefn) OGRFEATUREDEFN_DECL_ACCESSOR(OGRFeatureDefn) #ifdef __cplusplus } #endif