*Map activex mousedown Lparameters button, shift, x, y With this pt = .ToMapPoint(x, y) && Point where clicked pt1 = .ToMapPoint(0, 0) && Upper left corner pt2 = .ToMapPoint(.Width, .Height) && Bottom right oRect = .TrackPolygon && Track a rectangle lnA = oRect.Area && Get area of rect lnP = oRect.Perimeter && Get perimeter of rect pt3 = oRect.Center && Get center point messagebox( "Coordinates (map units): " + chr(13)+chr(10)+; "Clicked :"+transform(pt.X) + "," +transform(pt.Y)+ chr(13)+chr(10)+; "Upper-left :"+transform(pt1.X) + "," +transform(pt1.Y)+ chr(13)+chr(10)+; "Bottom-Right :"+transform(pt2.X) + "," +transform(pt2.Y)+ chr(13)+chr(10)+; "Rectangle :"+chr(13)+chr(10)+; " Area :"+transform(lnA)+chr(13)+chr(10)+; " Perimeter :"+transform(lnP)+chr(13)+chr(10)+; " Center at :"++transform(pt3.X) + "," +transform(pt3.Y) ) endwithDirectly browsing a shp file lowlevel would be too cumbersome IMHO. As long as you have the shape you could get its properties (points, parts, intersection, center, depth etc) through object model. Also you could query if your x,y is in your map space using IsPointIn. To do that create a polygon same as your map.extent (which in fact a rectangle), create a point object with x,y set to your x,y than execute oPoly.IsPointIn(point).