feat: finish highlevel unregister
This commit is contained in:
@@ -485,7 +485,31 @@ impl Program {
|
|||||||
/// No matter whether there is registration of this application,
|
/// No matter whether there is registration of this application,
|
||||||
/// this function always make sure that there is no registration after running this function.
|
/// this function always make sure that there is no registration after running this function.
|
||||||
pub fn unregister(&mut self, scope: Scope) -> Result<(), ProgramError> {
|
pub fn unregister(&mut self, scope: Scope) -> Result<(), ProgramError> {
|
||||||
todo!()
|
// Delete App Paths subkey
|
||||||
|
debug_println!("Deleting App Paths subkey...");
|
||||||
|
self.app_paths_key.delete(scope)?;
|
||||||
|
|
||||||
|
// Delete Applications subkey
|
||||||
|
debug_println!("Deleting Applications subkey...");
|
||||||
|
self.applications_key.delete(scope)?;
|
||||||
|
|
||||||
|
// According to Microsoft document, when uninstalling application,
|
||||||
|
// it is enough that only delete ProgId keys.
|
||||||
|
// Programmer doesn't need to edit something in Ext keys.
|
||||||
|
// So we delete ProgId subkeys one by one in there.
|
||||||
|
debug_println!("Adding ProgId subkey...");
|
||||||
|
for program_progid_key in &mut self.ext_keys {
|
||||||
|
let progid_key = &mut program_progid_key.progid_key;
|
||||||
|
|
||||||
|
// Delete ProgId subkey
|
||||||
|
debug_println!("Deleting ProgId \"{0}\" subkey...", progid_key.inner().to_string());
|
||||||
|
progid_key.delete(scope)?;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Everything is okey.
|
||||||
|
// Notify changes and return
|
||||||
|
win32::utilities::notify_assoc_changed();
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Check whether this application has been registered in given view.
|
/// Check whether this application has been registered in given view.
|
||||||
|
|||||||
Reference in New Issue
Block a user