I've changed the code. The following code should works fine:
IFSelect_ReturnStatus ImportExport::ReadSTEP(const Standard_CString& fileName,
Handle(TopTools_HSequenceOfShape)& sequenceOfShape) {
TopoDS_Shape shape;
STEPControl_Reader reader;
IFSelect_ReturnStatus status = reader.ReadFile(fileName);
if (status == IFSelect_RetDone) {
reader.TransferRoots();
// Collecting resulting entities
int numberOfShapes = reader.NbShapes();
if (numberOfShapes == 0) {
sequenceOfShape.Nullify();
return IFSelect_RetVoid;
} else {
for (int i =1; i<=numberOfShapes; i++) {
shape = reader.Shape(i);
sequenceOfShape->Append(shape);
}
}
} else {
sequenceOfShape.Nullify();
}
return status;
}