public RegistrationEventsSink( OnRegisterModeAvailableHandler registeModeAvailableCallback, OnRegisterStateChangeHandler registerStateCallback, OnPacketServiceStateChangeHandler packetServiceStateCallback, OnSetRegisterModeCompleteHandler setRegisterModeCallback, IConnectionPoint connectionPoint) { m_OnRegisterModeAvailableCallback = new WeakReference <OnRegisterModeAvailableHandler>(registeModeAvailableCallback); m_OnRegisterStateChangeCallback = new WeakReference <OnRegisterStateChangeHandler>(registerStateCallback); m_onPacketServiceStateChangeCallback = new WeakReference <OnPacketServiceStateChangeHandler>(packetServiceStateCallback); m_onSetRegisterModeCompleteCallback = new WeakReference <OnSetRegisterModeCompleteHandler>(setRegisterModeCallback); m_ConnectionPoint = connectionPoint; m_ConnectionPoint.Advise(this, out m_AdviseCookie); }
private void InitializeEventHandlers() { try { // Get the interface m_MbnInterface = m_MbnInterfaceManager.GetInterface(selectedInterfaceId); m_MbnConnection = m_MbnInterface.GetConnection(); m_MbnDeviceServicesContext = m_MbnDeviceServicesManager.GetDeviceServicesContext(m_MbnInterface.InterfaceID); // 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_OnSetCommandCompleteEventDelegate = new OnSetCommandCompleteHandler(ProcessOnSetCommandComplete); m_OnCloseCommandSessionEventDelegate = new OnCloseCommandSessionCompleteHandler(ProcessOnCloseCommandSessionComplete); m_DeviceServicesEventsSink = new DeviceServicesEventsSink( m_OnOpenCommandSessionCompleteEventDelegate, m_OnQueryCommandCompleteEventDelegate, m_OnCloseCommandSessionEventDelegate, m_OnSetCommandCompleteEventDelegate, GetMbnDeviceServicesEventsConnectionPoint()); } //Register for IMbnRegistrationEvents if (m_RegistrationEventsSink == null) { m_OnRegisterModeAvailableHandlerEventDelegate = new OnRegisterModeAvailableHandler(ProcessOnRegisterModeAvailable); m_OnRegisterStateChangeHandlerEventDelegate = new OnRegisterStateChangeHandler(ProcessOnRegisterStateChange); m_OnPacketServiceStateChangeHandlerEventDelegate = new OnPacketServiceStateChangeHandler(ProcessOnPacketServiceStateChange); m_OnSetRegisterModeCompleteHandlerEventDelegate = new OnSetRegisterModeCompleteHandler(ProcessOnSetRegisterModeComplete); m_RegistrationEventsSink = new RegistrationEventsSink( m_OnRegisterModeAvailableHandlerEventDelegate, m_OnRegisterStateChangeHandlerEventDelegate, m_OnPacketServiceStateChangeHandlerEventDelegate, m_OnSetRegisterModeCompleteHandlerEventDelegate, GetRegisterEventsConnectionPoint()); } if (m_InterfaceEventsSink == null) { OnEmergencyModeChangeHandlerEventDelegate = new OnEmergencyModeChangeHandler(ProcessOnEmergencyModeChange); OnHomeProviderAvailableHandlerEventDelegate = new OnHomeProviderAvailableHandler(ProcessOnHomeProviderAvailable); OnInterfaceCapabilityAvailableHandlerEventDelegate = new OnInterfaceCapabilityAvailableHandler(ProcessOnInterfaceCapabilityAvailable); OnPreferredProvidersChangeHandlerEventDelegate = new OnPreferredProvidersChangeHandler(ProcessOnPreferredProvidersChange); OnReadyStateChangeHandlerEventDelegate = new OnReadyStateChangeHandler(ProcessOnReadyStateChange); OnScanNetworkCompleteHandlerEventDelegate = new OnScanNetworkCompleteHandler(ProcessOnScanNetworkComplete); OnSetPreferredProvidersCompleteHandlerEventDelegate = new OnSetPreferredProvidersCompleteHandler(ProcessOnSetPreferredProvidersComplete); OnSubscriberInformationChangeHandlerEventDelegate = new OnSubscriberInformationChangeHandler(ProcessOnSubscriberInformationChange); m_InterfaceEventsSink = new InterfaceEventsSink( OnEmergencyModeChangeHandlerEventDelegate, OnHomeProviderAvailableHandlerEventDelegate, OnInterfaceCapabilityAvailableHandlerEventDelegate, OnPreferredProvidersChangeHandlerEventDelegate, OnReadyStateChangeHandlerEventDelegate, OnScanNetworkCompleteHandlerEventDelegate, OnSetPreferredProvidersCompleteHandlerEventDelegate, OnSubscriberInformationChangeHandlerEventDelegate, GetInterfaceEventsConnectionPoint()); } } catch (Exception e) { MessageBox.Show(ParseExceptionCode(e)); } }