Use the getSubentPathsAtGsMarker() function to obtain the subentity for the GS marker returned by the acedSSNameX() function. The complete syntax for this function is
virtual Acad::ErrorStatus AcDbEntity::getSubentPathsAtGsMarker( AcDb::SubentType type, int gsMark, const AcGePoint3d& pickPoint, const AcGeMatrix3d& viewXform, int& numPaths, AcDbFullSubentPath*& subentPaths int numInserts = 0, AcDbObjectId* entAndInsertStack = NULL) const;
The first argument to this function is the type of subentity you're interested in (vertex, edge, or face). In the example code in Highlighting the Subentity the first call to this function specifies kEdgeSubentType because you're going to highlight the corresponding edge. The second call to the getSubentPathsAtGsMarker() function specifies kFaceSubentType because you're going to highlight each face associated with the selected subentity.
The pickPoint and viewXform arguments are used as additional input for some entities (such as mlines) when the GS marker alone does not provide enough information to return the subentity paths. In the example code in Highlighting the Subentity they are not used.
The numInserts and entAndInsertStack arguments are used for nested inserts. Both the acedNEntSel() and acedNEntSelP() functions return the name of the leaf-level entity, plus a stack of inserts.