public InterfaceManagerEventsSink( OnInterfaceArrivalHandler arrivalCallback, OnInterfaceRemovalHandler removalCallback, IConnectionPoint connectionPoint) { m_ArrivalCallback = new WeakReference<OnInterfaceArrivalHandler>(arrivalCallback); m_RemovalCallback = new WeakReference<OnInterfaceRemovalHandler>(removalCallback); m_ConnectionPoint = connectionPoint; m_ConnectionPoint.Advise(this, out m_AdviseCookie); }
public InterfaceManagerEventsSink( OnInterfaceArrivalHandler arrivalCallback, OnInterfaceRemovalHandler removalCallback, IConnectionPoint connectionPoint) { m_ArrivalCallback = new WeakReference <OnInterfaceArrivalHandler>(arrivalCallback); m_RemovalCallback = new WeakReference <OnInterfaceRemovalHandler>(removalCallback); m_ConnectionPoint = connectionPoint; m_ConnectionPoint.Advise(this, out m_AdviseCookie); }
// Register for notifications private void RegisterForNotifications() { try { if (m_MbnInterface == null) { // Get the interface m_MbnInterface = GetFirstInterface(); } if (m_MbnConnection == null) { m_MbnConnection = m_MbnInterface.GetConnection(); } if (m_MbnDeviceServicesContext == null) { m_MbnDeviceServicesContext = m_MbnDeviceServicesManager.GetDeviceServicesContext(m_MbnInterface.InterfaceID); } // Register for IMbnInterfaceManagerEvents if (m_InterfaceManagerEventsSink == null) { m_OnInterfaceArrivalEventDelegate = new OnInterfaceArrivalHandler(ProcessOnInterfaceArrival); m_OnInterfaceRemovalEventDelegate = new OnInterfaceRemovalHandler(ProcessOnInterfaceRemoval); m_InterfaceManagerEventsSink = new InterfaceManagerEventsSink(m_OnInterfaceArrivalEventDelegate, m_OnInterfaceRemovalEventDelegate, GetMbnInterfaceManagerEventsConnectionPoint()); } // Register for IMbnPinManagerEvents if (m_PinManagerEventsSink == null) { m_OnGetPinStateCompleteEventDelegate = new OnGetPinStateCompleteHandler(ProcessOnGetPinStateCompleteHandlerEvt); m_PinManagerEventsSink = new PinManagerEventsSink(m_OnGetPinStateCompleteEventDelegate, GetMbnPinManagerEventsConnectionPoint()); } // Register for IMbnPinEvents if (m_PinEventsSink == null) { m_OnEnterCompleteEventDelegate = new OnEnterCompleteHandler(ProcessOnEnterComplete); m_PinEventsSink = new PinEventsSink(m_OnEnterCompleteEventDelegate, GetMbnPinEventsConnectionPoint()); } // Register for IMbnConnectionEvents if (m_ConnectionEventsSink == null) { m_OnConnectCompleteEventDelegate = new OnConnectCompleteHandler(ProcessOnConnectComplete); m_OnDisconnectCompleteEventDelegate = new OnDisconnectCompleteHandler(ProcessOnDisconnectComplete); m_ConnectionEventsSink = new ConnectionEventsSink(m_OnConnectCompleteEventDelegate, m_OnDisconnectCompleteEventDelegate, GetMbnConnectionEventsConnectionPoint()); } // Register for IMbnDeviceServicesEvents if (m_DeviceServicesEventsSink == null) { m_OnOpenCommandSessionCompleteEventDelegate = new OnOpenCommandSessionCompleteHandler(ProcessOnOpenCommandSessionComplete); m_OnQueryCommandCompleteEventDelegate = new OnQueryCommandCompleteHandler(ProcessOnQueryCommandComplete); m_OnCloseCommandSessionEventDelegate = new OnCloseCommandSessionCompleteHandler(ProcessOnCloseCommandSessionComplete); m_DeviceServicesEventsSink = new DeviceServicesEventsSink( m_OnOpenCommandSessionCompleteEventDelegate, m_OnQueryCommandCompleteEventDelegate, m_OnCloseCommandSessionEventDelegate, GetMbnDeviceServicesEventsConnectionPoint()); } } catch (Exception e) { rootPage.NotifyUser(ParseExceptionCode(e), NotifyType.ErrorMessage); } }
private void RegisterForNotifications() { try { if (m_MbnInterface == null) { m_MbnInterface = GetFirstInterface(); } if (m_MbnConnection == null) { m_MbnConnection = m_MbnInterface.GetConnection(); } if (m_MbnDeviceServicesContext == null) { m_MbnDeviceServicesContext = m_MbnDeviceServicesManager.GetDeviceServicesContext(m_MbnInterface.InterfaceID); } // Register for IMbnInterfaceManagerEvents if (m_InterfaceManagerEventsSink == null) { m_OnInterfaceArrivalEventDelegate = new OnInterfaceArrivalHandler(ProcessOnInterfaceArrival); m_OnInterfaceRemovalEventDelegate = new OnInterfaceRemovalHandler(ProcessOnInterfaceRemoval); m_InterfaceManagerEventsSink = new InterfaceManagerEventsSink(m_OnInterfaceArrivalEventDelegate, m_OnInterfaceRemovalEventDelegate, GetMbnInterfaceManagerEventsConnectionPoint()); } // Register for IMbnPinManagerEvents if (m_PinManagerEventsSink == null) { m_OnGetPinStateCompleteEventDelegate = new OnGetPinStateCompleteHandler(ProcessOnGetPinStateCompleteHandlerEvt); m_PinManagerEventsSink = new PinManagerEventsSink(m_OnGetPinStateCompleteEventDelegate, GetMbnPinManagerEventsConnectionPoint()); } // Register for IMbnPinEvents if (m_PinEventsSink == null) { m_OnEnterCompleteEventDelegate = new OnEnterCompleteHandler(ProcessOnEnterComplete); m_PinEventsSink = new PinEventsSink(m_OnEnterCompleteEventDelegate, GetMbnPinEventsConnectionPoint()); } // Register for IMbnConnectionEvents if (m_ConnectionEventsSink == null) { m_OnConnectCompleteEventDelegate = new OnConnectCompleteHandler(ProcessOnConnectComplete); m_OnDisconnectCompleteEventDelegate = new OnDisconnectCompleteHandler(ProcessOnDisconnectComplete); m_ConnectionEventsSink = new ConnectionEventsSink(m_OnConnectCompleteEventDelegate, m_OnDisconnectCompleteEventDelegate, GetMbnConnectionEventsConnectionPoint()); } // Register for IMbnDeviceServicesEvents if (m_DeviceServicesEventsSink == null) { m_OnOpenCommandSessionCompleteEventDelegate = new OnOpenCommandSessionCompleteHandler(ProcessOnOpenCommandSessionComplete); m_OnQueryCommandCompleteEventDelegate = new OnQueryCommandCompleteHandler(ProcessOnQueryCommandComplete); m_OnCloseCommandSessionEventDelegate = new OnCloseCommandSessionCompleteHandler(ProcessOnCloseCommandSessionComplete); m_DeviceServicesEventsSink = new DeviceServicesEventsSink( m_OnOpenCommandSessionCompleteEventDelegate, m_OnQueryCommandCompleteEventDelegate, m_OnCloseCommandSessionEventDelegate, GetMbnDeviceServicesEventsConnectionPoint()); } } catch (Exception e) { rootPage.NotifyUser(ParseExceptionCode(e), NotifyType.ErrorMessage); } }