/// <summary>
        /// Actually performs unregistration. The ComUnregisterFunction decorated method will call this function
        /// internally with the flag appropriate for the operating system processor architecture.
        /// However, this function can also be called manually if needed.
        /// </summary>
        /// <param name="type">The type of object to unregister, this must be a SharpShellServer derived class.</param>
        /// <param name="registrationType">Type of the registration to unregister.</param>
        /// <param name="registrationLocation">Location of the registration.</param>
        internal static void DoUnregister(Type type, RegistrationType registrationType, RegistrationLocation registrationLocation)
        {
            //  Get the assoication data.
            var assocationAttributes = type.GetCustomAttributes(typeof(COMServerAssociationAttribute), true)
                                       .OfType <COMServerAssociationAttribute>().ToList();

            //  Get the server type.
            var serverType = ServerTypeAttribute.GetServerType(type);

            //  Unregister the server associations, if there are any.
            if (assocationAttributes.Any())
            {
                ServerRegistrationManager.UnregisterServerAssociations(
                    type.GUID, serverType, type.Name, assocationAttributes, registrationType, registrationLocation);
            }

            //  Execute the custom unregister function, if there is one.
            CustomUnregisterFunctionAttribute.ExecuteIfExists(type, registrationType);
        }
示例#2
0
 internal static Microsoft.Xna.Framework.Vector2 GetOrigin(object p, object p_2, RegistrationLocation reg)
 {
     throw new NotImplementedException();
 }