/* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
mod permission_monitor;
use nserror::{nsresult, NS_OK}; use nsstring::{nsAString, nsString}; use thin_vec::ThinVec; use windows::core::HSTRING; use windows::UI::Notifications::{ToastNotification, ToastNotificationManager}; use windows_collections::IVectorView; use xpcom::{xpcom, xpcom_method};
// SAFETY: The caller is responsible to pass a valid pointer. let result = unsafe { &mut *result };
|| -> windows::core::Result<()> { let history = ToastNotificationManager::History()?; let notifications: IVectorView<ToastNotification> =
history.GetHistoryWithId(&HSTRING::from_wide(&aumid[..]))?;
for n in notifications { let tag = n.Tag()?;
result.push((&tag.to_string()).into());
}
Ok(())
}()
.map_err(|_| nserror::NS_ERROR_UNEXPECTED)
}
}
#[no_mangle] pubextern"C"fn new_windows_alerts_service(
iid: *const xpcom::nsIID,
result: *mut *mut xpcom::reexports::libc::c_void,
) -> nsresult { let service = AlertsServiceRust::allocate(InitAlertsServiceRust {}); // SAFETY: The caller is responsible to pass a valid IID and pointer-to-pointer. unsafe { service.QueryInterface(iid, result) }
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-09-28)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.