Click here to Skip to main content
15,891,908 members
Articles / Desktop Programming / Win32

.NET Shell Extensions - Shell Property Sheets

Rate me:
Please Sign up or sign in to vote.
5.00/5 (18 votes)
7 Apr 2013CPOL7 min read 93.2K   3K   47  
Use .NET to rapidly build Shell Property Sheets
using System;
using System.Collections.Generic;

namespace SharpShell.ServerRegistration
{
    /// <summary>
    /// Represents registration info for a server.
    /// </summary>
    public class ShellExtensionRegistrationInfo
    {
        internal ShellExtensionRegistrationInfo()
        {
            
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="ShellExtensionRegistrationInfo"/> class.
        /// </summary>
        /// <param name="serverRegistationType">Type of the server registation.</param>
        /// <param name="serverCLSID">The server CLSID.</param>
        public ShellExtensionRegistrationInfo(ServerRegistationType serverRegistationType, Guid serverCLSID)
        {
            ServerRegistationType = serverRegistationType;
            ServerCLSID = serverCLSID;
        }

        /// <summary>
        /// The class registrations.
        /// </summary>
        internal readonly List<ClassRegistration> classRegistrations = new List<ClassRegistration>();

        /// <summary>
        /// Gets the server CLSID.
        /// </summary>
        public Guid ServerCLSID { get; internal set; }

        /// <summary>
        /// Gets the type of the shell extension.
        /// </summary>
        /// <value>
        /// The type of the shell extension.
        /// </value>
        public ShellExtensionType ShellExtensionType { get; internal set; }

        /// <summary>
        /// Gets the display name.
        /// </summary>
        /// <value>
        /// The display name.
        /// </value>
        public string DisplayName { get; internal set; }

        /// <summary>
        /// Gets the server path.
        /// </summary>
        public string ServerPath { get; internal set; }

        /// <summary>
        /// Gets the threading model.
        /// </summary>
        public string ThreadingModel { get; internal set; }

        /// <summary>
        /// Gets the assembly version.
        /// </summary>
        public string AssemblyVersion { get; internal set; }

        /// <summary>
        /// Gets the assembly.
        /// </summary>
        public string Assembly { get; internal set; }

        /// <summary>
        /// Gets the class.
        /// </summary>
        public string Class { get; internal set; }

        /// <summary>
        /// Gets the runtime version.
        /// </summary>
        public string RuntimeVersion { get; internal set; }

        /// <summary>
        /// Gets the codebase path.
        /// </summary>
        public string CodeBase { get; internal set; }

        /// <summary>
        /// Gets the type of the server registation.
        /// </summary>
        /// <value>
        /// The type of the server registation.
        /// </value>
        public ServerRegistationType ServerRegistationType { get; internal set; }

        /// <summary>
        /// Gets the class registrations.
        /// </summary>
        /// <value>
        /// The class registrations.
        /// </value>
        public IEnumerable<ClassRegistration> ClassRegistrations { get { return classRegistrations; } } 
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
United Kingdom United Kingdom
Follow my blog at www.dwmkerr.com and find out about my charity at www.childrenshomesnepal.org.

Comments and Discussions