public DeviceServicesEventsSink( OnOpenCommandSessionCompleteHandler onOpenDataSessionCallback, OnQueryCommandCompleteHandler onQueryCommandCallback, OnCloseCommandSessionCompleteHandler onCloseCommandCallback, OnSetCommandCompleteHandler onSetCommandCallback, IConnectionPoint connectionPoint) { m_OnOpenCommandSessionCallback = new WeakReference <OnOpenCommandSessionCompleteHandler>(onOpenDataSessionCallback); m_OnQueryCommandCallback = new WeakReference <OnQueryCommandCompleteHandler>(onQueryCommandCallback); m_OnCloseCommandCallback = new WeakReference <OnCloseCommandSessionCompleteHandler>(onCloseCommandCallback); m_OnSetCommandCallback = new WeakReference <OnSetCommandCompleteHandler>(onSetCommandCallback); 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)); } }