/// <summary> /// Se gatilla para recibir notificaciones en el cambio del estado de la red adhoc (Windows Vista) /// Si ocurre un error se informa en informationNetworkingHandler /// </summary> /// <param name="notifyData">Los datos de notificación</param> /// <param name="adhocNetworkState">El estado de la red adhoc que esta siendo notificado</param> private void WlanAdhocNetworkAction(Wlan.WlanNotificationData notifyData, Wlan.WlanAdhocNetworkState adhocNetworkState) { lock(syncPoint) { try { if ((notifyData.notificationSource.Equals(Wlan.WlanNotificationSource.ACM) && notifyData.NotificationCode.Equals(Wlan.WlanNotificationCodeAcm.AdhocNetworkStateChange))) { if (adhocNetworkState.Equals(Wlan.WlanAdhocNetworkState.Connected)) { if (netData.OpSystem.Equals(OpSystemType.WIN7)) { wifiInformation("connection"); switch (connectionState) { case WifiConnectionState.CONNECTED: { break; } case WifiConnectionState.DISCONNECTED: { connectionState = WifiConnectionState.CONNECTED; break; } case WifiConnectionState.WAINTING: { connectionState = WifiConnectionState.CONNECTED; break; } } } } else if (adhocNetworkState.Equals(Wlan.WlanAdhocNetworkState.Formed)) { if (netData.OpSystem.Equals(OpSystemType.WIN7)) { wifiInformation("alone connection"); switch (connectionState) { case WifiConnectionState.CONNECTED: { //connectionState = WifiConnectionState.WAINTING; break; } case WifiConnectionState.DISCONNECTED: { connectionState = WifiConnectionState.WAINTING; break; } case WifiConnectionState.WAINTING: { break; } } } } } } catch (ThreadAbortException e) { throw e; } catch (Exception e) { wifiInformation("error " + e.Message); } } }