Идентификация в коде производится с использованием точки:
Set pIDArray = pIdentify.Identify(pPoint)
в этом случае для идентификации точки надо точно попасть курсором по идентифицируемой точке, что проблематично.
Возможно для идентификации лучше использовать "область", зависящую от масштаба. Я применяю следующее:
Dim searchDist as Double
Dim pSrchEnv As IEnvelope
Set pSrchEnv = MapControl1.ActiveView.Extent.Envelope
searchDist = MapControl1.Map.MapScale / 750
pSrchEnv.Width = searchDist
pSrchEnv.Height = searchDist
pSrchEnv.CenterAt pPoint
Set pIDArray = pIdentify.Identify(pSrchEnv)
можно жестко прописать дистанцию идентификаци, кроме того в моем примере не учитывается метрическая система (метры, дециметры или ....), которая трансфрормируется с помощью IUnitConverter