The object and variable declarations are the following:
FdoIGeometryCapabilities * geometryCapabilities;
GisInt32 numGeometryTypes = 0;
GisGeometryType * geometryTypes;
GisInt32 numGeometryComponnentTypes = 0;
GisGeometryComponentType * geometryComponentTypes;
GisInt32 dimensionalities = 0;
The method calls are the following:
geometryCapabilities = connection->GetGeometryCapabilities();
geometryTypes = geometryCapabilities->
GetGeometryTypes(numGeometryTypes);
// loop through geometryTypes
geometryComponentTypes = geometryCapabilities->
GetGeometryComponentTypes(numGeometryComponentTypes);
// loop through geometryComponentTypes
dimensionalities = geometryCapabilities->GetDimensionalities();
// GisDimensinality_XY is 0 and so is always a given
if (dimensionalities & GisDimensionality_Z) {
// do whatever
}
if (dimensionalities & GisDimensionality_M) {
// do whatever
}