How to highlight a whole object preserving 3d rendering?

I'd like to highlight a 3d object like a box changing his color but preserving his 3d rendering.
Using the AIS_Shape.SetHighlightMode(1) the object is Highlighted with one flatten color for all the faces, but I'd like to highlight the object preserving the normal light reflection as the object is displayed in his normal with its material but with the highlight color.
Anyone know how to change the highlight render for the object to preserve the normal light reflection?

In the image there is first the box in his normal mode, second the box with the system highlight, and third as I'd like to make the highlight of the object.

Attachments: 
Sharjith Naramparambath's picture

You need to derive a class from AIS_Shape or AIS_InteractiveObject and override the ComputeSelection method and then use that class to display the object. See the User_Cylinder code in the MFC Samples, you will get some idea.