Al utilizar IMap.get_Layers puede suministrar un UID con el tipo previsto, por ejemplo:
UID pFeatureLayersUID = new UIDClass();
pFeatureLayersUID.Value = "{40A9E885-5533-11d0-98BE-00805F7CED21}";
IEnumLayer pMapLayers = gMap.get_Layers(pFeatureLayersUID, true);
Obtendrá todas las capas de características (Vector) en su mapa actual recursivamente... normalmente obtendría todas sus capas vectoriales, luego todas sus capas rasterizadas pero supongo que puede obtener todo sus capas y se ramifican en consecuencia...
Para saber cuáles son hay que utilizar las coclas de ILayer (hay bastantes):
ILayer pLayer = pMapLayers.Next();
if (pLayer.Valid) // important, make sure it's not broken
{
if (pLayer is IFeatureLayer)
{
}
else if (pLayer is IRasterLayer)
{
}
}