About the Server spatial query server object extension Sample
[C#]
SOEPropertyPage.cs
using System; using System.Collections.Generic; using System.Text; namespace SOEUtilities { /// <summary> /// Class to simplify implementation of a custom SOE property page for ArcCatalog. Abstracts away COM registration and members that /// are unnecessary in a custom property page implemenation. /// </summary> [System.Runtime.InteropServices.GuidAttribute("5514323A-02F8-48d3-B7BA-5BF07AD36F49")] public abstract class SOEPropertyPage : ESRI.ArcGIS.Framework.IComPropertyPage, ESRI.ArcGIS.CatalogUI.IAGSSOEParameterPage { #region Component Category Registration [System.Runtime.InteropServices.ComRegisterFunction()] [System.Runtime.InteropServices.ComVisible(false)] static void RegisterFunction(Type registerType) { string regKey = string.Format("HKEY_CLASSES_ROOT\\CLSID\\{{{0}}}", registerType.GUID); ESRI.ArcGIS.ADF.CATIDs.AGSSOEParameterPages.Register(regKey); } [System.Runtime.InteropServices.ComUnregisterFunction()] [System.Runtime.InteropServices.ComVisible(false)] static void UnregisterFunction(Type registerType) { string regKey = string.Format("HKEY_CLASSES_ROOT\\CLSID\\{{{0}}}", registerType.GUID); ESRI.ArcGIS.ADF.CATIDs.AGSSOEParameterPages.Unregister(regKey); } #endregion #region IComPropertyPage Members #region Abstract (Must Implement) Members - PageSite, Activate, Show, Hide public abstract ESRI.ArcGIS.Framework.IComPropertyPageSite PageSite { set; } public abstract int Activate(); public abstract void Show(); public abstract void Hide(); #endregion #region Virtual (Overrideable) Methods - Height, Deactivate public virtual int Height { get { return 0; } } public virtual void Deactivate() { } #endregion #region Non-Overridable Members - Not Invoked by ArcCatalog public bool IsPageDirty { get { return false; } } public string Title { get { return null; } set { } } public int Priority { get { return 0; } set { } } public string HelpFile { get { return null; } } public int Width { get { return 0; } } public void Apply() { } public void Cancel() { } public int get_HelpContextID(int controlID) { return 0; } public void SetObjects(ESRI.ArcGIS.esriSystem.ISet objects) { } public bool Applies(ESRI.ArcGIS.esriSystem.ISet objects) { return false; } #endregion #endregion #region IAGSSOEParameterPage Members - All must be implemented public abstract ESRI.ArcGIS.esriSystem.IPropertySet ServerObjectProperties { get; set; } public abstract ESRI.ArcGIS.esriSystem.IPropertySet ExtensionProperties { get; set; } public abstract string ServerObjectExtensionType { get; } public abstract string ServerObjectType { get; } #endregion } }
[Visual Basic .NET]
SOEPropertyPage.vb
Imports Microsoft.VisualBasic Imports System Imports System.Collections.Generic Imports System.Text Namespace SOEUtilities ''' <summary> ''' Class to simplify implementation of a custom SOE property page for ArcCatalog. Abstracts away COM registration and members that ''' are unnecessary in a custom property page implemenation. ''' </summary> <System.Runtime.InteropServices.Guid("B1F2FD28-04AB-4653-8C5F-7C65B355AC1D")> _ Public MustInherit Class SOEPropertyPage Implements ESRI.ArcGIS.Framework.IComPropertyPage, ESRI.ArcGIS.CatalogUI.IAGSSOEParameterPage #Region "Component Category Registration" <System.Runtime.InteropServices.ComRegisterFunction(), System.Runtime.InteropServices.ComVisible(False)> _ Private Shared Sub RegisterFunction(ByVal registerType As Type) Dim regKey As String = String.Format("HKEY_CLASSES_ROOT\CLSID\{{{0}}}", registerType.GUID) ESRI.ArcGIS.ADF.CATIDs.AGSSOEParameterPages.Register(regKey) End Sub <System.Runtime.InteropServices.ComUnregisterFunction(), System.Runtime.InteropServices.ComVisible(False)> _ Private Shared Sub UnregisterFunction(ByVal registerType As Type) Dim regKey As String = String.Format("HKEY_CLASSES_ROOT\CLSID\{{{0}}}", registerType.GUID) ESRI.ArcGIS.ADF.CATIDs.AGSSOEParameterPages.Unregister(regKey) End Sub #End Region #Region "IComPropertyPage Members" #Region "Abstract (Must Implement) Members - PageSite, Activate, Show, Hide" Public MustOverride WriteOnly Property PageSite() As ESRI.ArcGIS.Framework.IComPropertyPageSite Implements ESRI.ArcGIS.Framework.IComPropertyPage.PageSite Public MustOverride Function Activate() As Integer Implements ESRI.ArcGIS.Framework.IComPropertyPage.Activate Public MustOverride Sub Show() Implements ESRI.ArcGIS.Framework.IComPropertyPage.Show Public MustOverride Sub Hide() Implements ESRI.ArcGIS.Framework.IComPropertyPage.Hide #End Region #Region "Virtual (Overrideable) Methods - Height, Deactivate" Public Overridable ReadOnly Property Height() As Integer Implements ESRI.ArcGIS.Framework.IComPropertyPage.Height Get Return 0 End Get End Property Public Overridable Sub Deactivate() Implements ESRI.ArcGIS.Framework.IComPropertyPage.Deactivate End Sub #End Region #Region "Non-Overridable Members - Not Invoked by ArcCatalog" Public ReadOnly Property IsPageDirty() As Boolean Implements ESRI.ArcGIS.Framework.IComPropertyPage.IsPageDirty Get Return False End Get End Property Public Property Title() As String Implements ESRI.ArcGIS.Framework.IComPropertyPage.Title Get Return Nothing End Get Set(ByVal value As String) End Set End Property Public Property Priority() As Integer Implements ESRI.ArcGIS.Framework.IComPropertyPage.Priority Get Return 0 End Get Set(ByVal value As Integer) End Set End Property Public ReadOnly Property HelpFile() As String Implements ESRI.ArcGIS.Framework.IComPropertyPage.HelpFile Get Return Nothing End Get End Property Public ReadOnly Property Width() As Integer Implements ESRI.ArcGIS.Framework.IComPropertyPage.Width Get Return 0 End Get End Property Public Sub Apply() Implements ESRI.ArcGIS.Framework.IComPropertyPage.Apply End Sub Public Sub Cancel() Implements ESRI.ArcGIS.Framework.IComPropertyPage.Cancel End Sub Public ReadOnly Property HelpContextID(ByVal controlID As Integer) As Integer Implements ESRI.ArcGIS.Framework.IComPropertyPage.HelpContextID Get Return 0 End Get End Property 'Public Function get_HelpContextID(ByVal controlID As Integer) As Integer Implements ESRI.ArcGIS.Framework.IComPropertyPage ' Return 0 'End Function Public Sub SetObjects(ByVal objects As ESRI.ArcGIS.esriSystem.ISet) Implements ESRI.ArcGIS.Framework.IComPropertyPage.SetObjects End Sub Public Function Applies(ByVal objects As ESRI.ArcGIS.esriSystem.ISet) As Boolean Implements ESRI.ArcGIS.Framework.IComPropertyPage.Applies Return False End Function #End Region #End Region #Region "IAGSSOEParameterPage Members - All must be implemented" Public MustOverride Property ServerObjectProperties() As ESRI.ArcGIS.esriSystem.IPropertySet Implements ESRI.ArcGIS.CatalogUI.IAGSSOEParameterPage.ServerObjectProperties Public MustOverride Property ExtensionProperties() As ESRI.ArcGIS.esriSystem.IPropertySet Implements ESRI.ArcGIS.CatalogUI.IAGSSOEParameterPage.ExtensionProperties Public MustOverride ReadOnly Property ServerObjectExtensionType() As String Implements ESRI.ArcGIS.CatalogUI.IAGSSOEParameterPage.ServerObjectExtensionType Public MustOverride ReadOnly Property ServerObjectType() As String Implements ESRI.ArcGIS.CatalogUI.IAGSSOEParameterPage.ServerObjectType #End Region End Class End Namespace