/// <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); }
internal static Microsoft.Xna.Framework.Vector2 GetOrigin(object p, object p_2, RegistrationLocation reg) { throw new NotImplementedException(); }