I'm trying to create snapping agent, I'm using the standard code from ESRI ArcObject Library, this code works perfectly on VB6/ArcGIS 9.3, but not on VB.net (3.5 SDK) and ArcGIS 10.
The property "SnapAgentCount" is empty :
pSnapEnv.SnapAgentCount = 0
=========================
Public Sub SetBufferSnapClass()
On Error Resume Next
Dim pApp As IApplication, pMap As IMap, pFeatLayer As IFeatureLayer
Dim pEditor As IEditor
Dim pSnapAgent As ISnapAgent
Dim pSnapEnv As ISnapEnvironment
Dim pEditLayers As IEditLayers
Dim pMySnapAgent As BufferSnapPrj.BufferSnap 'use VB6 sample
'Dim pMySnapAgent As BufferSnapVBNet.BufferSnap 'use VB.Net sample
'Dim pMySnapAgent As BufferSnapCS.BufferSnap 'use C# sample
Dim pUID As New UID
Dim Count As Integer, Count2 As Integer
pUID = "esriEditor.Editor"
Set pApp = Application
Set pEditor = pApp.FindExtensionByCLSID(pUID)
Set pEditLayers = pEditor
Set pSnapEnv = pEditor
Set pMap = pEditor.Map
'Find custom snap agent and set is featureclass property
For Count2 = 0 To pMap.LayerCount - 1
If UCase(pMap.Layer(Count2).Name) = "POLES" Then
For Count = 0 To pSnapEnv.SnapAgentCount - 1
Set pSnapAgent = pSnapEnv.SnapAgent(Count)
If pSnapAgent.Name = "Buffer Snap" Then
Set pMySnapAgent = pSnapAgent
Set pFeatLayer = pMap.Layer(Count2)
Set pMySnapAgent.FeatureClass = pFeatLayer.FeatureClass
End If
Next Count
Exit For
End If
Next Count2
End Sub
If I activate "use classic snapping" under options on the Editor toolbar it works!
Is this the only way to do it because I don't want to use the standard Editor ToolBar?