We came up with a easier solution that feeds our needs:
//
// --- create reference to ArcMap document
//
IDocument doc = arcMapDoc.Document;
//
// --- QI to IMXDocument
//
IMxDocument mxDoc = doc as IMxDocument;
//
// --- create reference to focus map
//
IMap map = mxDoc.ActiveView.FocusMap;
//
// --- create layers enumeration
//
IEnumLayer layerEnum = map.get_Layers(null, true);
//
// --- retrieve first layer
//
ILayer layer = layerEnum.Next() as ILayer;
//
// --- loop while layer is valid
//
while (layer != null)
{
//
// --- QI to data layer
//
IDataLayer2 dataLayer = layer as IDataLayer2;
//
// --- test for valid data layer
//
if (dataLayer != null)
{
//
// --- QI to dataset name
//
IDatasetName2 datasetName = dataLayer.DataSourceName as IDatasetName2;
MessageBox.Show("DataSet Name: " + datasetName.Name.ToString());
//
// --- test for valid dataset name
//
if (datasetName != null)
{