public void UnhookGlobal(GlobalCallback cb) { lock (gmutex) { if (glook.ContainsKey(cb)) { var cc = glook[cb]; base.UnhookGlobal(cc); glook.Remove(cb); } } }
public void HookGlobal(GlobalCallback cb) { lock (gmutex) { Dispatcher <object> .GlobalCallback cc = (string s, object _) => { cb(s); }; lock (gmutex) { glook.Add(cb, cc); base.HookGlobal(cc); } } }
/// <summary> /// Registers the event specified by name /// </summary> public static void Register(string name, GlobalCallback callback) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(@"name"); } if (callback == null) { throw new ArgumentNullException("callback"); } List <GlobalCallback> callbacks = (List <GlobalCallback>)m_Callbacks[name]; if (callbacks == null) { callbacks = new List <GlobalCallback>(); m_Callbacks.Add(name, callbacks); } callbacks.Add(callback); }
/// <summary> /// Unregisters the event specified by name /// </summary> public static void UnRegister(string name, GlobalCallback callback) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(@"name"); } if (callback == null) { throw new ArgumentNullException("callback"); } List <GlobalCallback> callbacks = (List <GlobalCallback>)m_Callbacks[name]; if (callbacks != null) { callbacks.Remove(callback); } else { throw GlobalEventInternal.ShowUnregisterException(name); } }