To whom may know: I am confused about 03_SampleGeometry that comes from Samples on MFC. I find there is usage on "Handle(ISession2D_Curve) aCurve = new ISession2D_Curve(C)". The "ISession2D_Direction" is same. I guess ISession2D_curve in Handle is Isession2D_Curve.h in the folder named inc Isession2D. Is it right? Therefore, using Handle(Issession2D_Curve) is same as Handle(Geom2d_Circle)-This is just comparision. Is it right? If it's right. Can I say that "#ifndef _ISession2D_Curve_HeaderFile" is followed by " #define _ISession2D_Curve_HeaderFile" are to make sure including ISession2D_Curve header file into our program? Thanks for your help.