дык собственно вот он, никаких откровений тут нет:
ILayer* layer; // этот указатель на слой получен ранее
IFeatureLayerPtr featureLayer(layer);
IFeatureCursorPtr featureCursor = featureLayer->Search(NULL, true);
while ((IFeaturePtr feature = featureCursor->NextFeature) != NULL)
{
// здесь делаем что-то полезное
}
причем, если дополнительно получить FeatureClass и все делать через него - будет то же самое
и еще, FeatureClass.FeatureCount вернет количество элементов, соответствующее методу Search.
то есть вроде бы все корректно, но на самом деле возвращаются не все объекты, так как в окне ArcMap я их вижу, выделяю, смотрю атрибуты, а через Search они не приходят