ArcObjects Library Reference  

CreateBookmark

About the Add a custom bookmarks MultiItem to the ToolbarControl Sample

[C#]

CreateBookmark.cs

using System;
using System.Runtime.InteropServices;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.ADF.BaseClasses;

namespace MultiItemBookmarks
{
    [ComVisible(false)]
	public sealed class CreateBookmark : BaseCommand
	{
		private IHookHelper m_HookHelper = new HookHelperClass();

		public CreateBookmark()
		{
			base.m_caption = "Create...";
			base.m_category = "Developer Samples";
			base.m_enabled = true;
			base.m_message = "Creates a spatial bookmark based upon the current extent";
			base.m_name = "Create...";
			base.m_toolTip = "Create spatial bookmark";
		}
	
		public override void OnCreate(object hook)
		{
			m_HookHelper.Hook = hook;
		}
	
	
		public override void OnClick()
		{
			//Get a name for bookmark from the user
			frmBookmark frm = new frmBookmark();
			frm.ShowDialog();
			int check = frm.Check; 
			string sName = "";	
	
			//OK button pressed					
			if (check == 1)
			{
				sName = frm.Bookmark;
			}
			if (sName == "") return;
			

			//Get the focus map 
			IActiveView activeView = (IActiveView) m_HookHelper.FocusMap;

			//Create a new bookmark 
			IAOIBookmark bookmark = new AOIBookmarkClass();
			//Set the location to the current extent of the focus map
			bookmark.Location = activeView.Extent;
			//Set the bookmark name
			bookmark.Name = sName;

			//Get the bookmark collection of the focus map
			IMapBookmarks mapBookmarks = (IMapBookmarks) m_HookHelper.FocusMap;
			//Add the bookmark to the bookmarks collection
			mapBookmarks.AddBookmark(bookmark);
		}
	}
}

[Visual Basic .NET]

CreateBookmark.vb

Option Strict Off
Option Explicit On 

Imports ESRI.ArcGIS.Controls
Imports ESRI.ArcGIS.Carto
Imports ESRI.ArcGIS.ADF.BaseClasses

Friend Class CreateBookmarkCommand
    Inherits BaseCommand

    Private m_HookHelper As IHookHelper

	Public Sub New()
        MyBase.New()

        m_HookHelper = New HookHelperClass
        MyBase.m_caption = "Create..."
        MyBase.m_category = "Developer Samples"
        MyBase.m_enabled = True
        MyBase.m_message = "Creates a spatial bookmark based upon the current extent"
        MyBase.m_name = "Create..."
        MyBase.m_toolTip = "Create spatial bookmark"
	End Sub
	
    Protected Overrides Sub Finalize()
        m_HookHelper = Nothing
        MyBase.Finalize()
    End Sub

    Public Overrides Sub OnCreate(ByVal hook As Object)
        m_HookHelper.Hook = hook
    End Sub

    Public Overrides Sub OnClick()
        'Get a name for bookmark from the user
        Dim sName As String
        sName = InputBox("Bookmark Name", "Spatial Bookmark")
        If Trim(sName) = "" Then Exit Sub

        'Get the focus map
        Dim pActiveView As IActiveView
        pActiveView = m_HookHelper.FocusMap

        'Create a new bookmark
        Dim pBookmark As IAOIBookmark
        pBookmark = New AOIBookmarkClass
        'Set the location to the current extent of the focus map
        pBookmark.Location = pActiveView.Extent
        'Set the bookmark name
        pBookmark.Name = sName

        'Get the bookmark collection of the focus map
        Dim pMapBookmarks As IMapBookmarks
        pMapBookmarks = m_HookHelper.FocusMap
        'Add the bookmark to the bookmarks collection
        pMapBookmarks.AddBookmark(pBookmark)
    End Sub
End Class