Silverlight 5 WinRT

  public sealed enum CellularClass
  : IComparable, IFormattable, IConvertible
  { None, Gsm, Cdma }

  public sealed class DeleteSmsMessageOperation
  : __ComObject, IAsyncAction, IAsyncInfo
  public virtual AsyncActionCompletedHandler Completed { get; set; }
  public virtual Exception ErrorCode { get; }
  public virtual UInt32 Id { get; }
  public virtual AsyncStatus Status { get; }
  public virtual void Cancel();
  public virtual void Close();
  public virtual void GetResults();
  public virtual void Start();

  public sealed class DeleteSmsMessagesOperation
  : __ComObject, IAsyncAction, IAsyncInfo
  public virtual AsyncActionCompletedHandler Completed { get; set; }
  public virtual Exception ErrorCode { get; }
  public virtual UInt32 Id { get; }
  public virtual AsyncStatus Status { get; }
  public virtual void Cancel();
  public virtual void Close();
  public virtual void GetResults();
  public virtual void Start();

  public sealed class GetSmsDeviceOperation
  : __ComObject, IAsyncOperation`1<ISmsDevice>, IAsyncInfo
  public virtual AsyncOperationCompletedHandler`1<ISmsDevice> Completed { get; set; }
  public virtual Exception ErrorCode { get; }
  public virtual UInt32 Id { get; }
  public virtual AsyncStatus Status { get; }
  public virtual void Cancel();
  public virtual void Close();
  public virtual ISmsDevice GetResults();
  public virtual void Start();

  public sealed class GetSmsMessageOperation
  : __ComObject, IAsyncOperation`1<ISmsMessage>, IAsyncInfo
  public virtual AsyncOperationCompletedHandler`1<ISmsMessage> Completed { get; set; }
  public virtual Exception ErrorCode { get; }
  public virtual UInt32 Id { get; }
  public virtual AsyncStatus Status { get; }
  public virtual void Cancel();
  public virtual void Close();
  public virtual ISmsMessage GetResults();
  public virtual void Start();

  public sealed class GetSmsMessagesOperation
  : __ComObject, IAsyncOperationWithProgress`2<IReadOnlyList`1<ISmsMessage>, Int32>, IAsyncInfo
  public virtual AsyncOperationWithProgressCompletedHandler`2<IReadOnlyList`1<ISmsMessage>, Int32> Completed { get; set; }
  public virtual Exception ErrorCode { get; }
  public virtual UInt32 Id { get; }
  public virtual AsyncOperationProgressHandler`2<IReadOnlyList`1<ISmsMessage>, Int32> Progress { get; set; }
  public virtual AsyncStatus Status { get; }
  public virtual void Cancel();
  public virtual void Close();
  public virtual IReadOnlyList`1<ISmsMessage> GetResults();
  public virtual void Start();

  public abstract interface ISmsBinaryMessage
  : ISmsMessage
  public abstract virtual SmsDataFormat Format { get; set; }
  public abstract virtual Byte GetData();
  public abstract virtual void SetData(Byte value);

  public abstract interface ISmsDevice
 
  public abstract virtual String AccountPhoneNumber { get; }
  public abstract virtual CellularClass CellularClass { get; }
  public abstract virtual SmsDeviceStatus DeviceStatus { get; }
  public abstract virtual SmsDeviceMessageStore MessageStore { get; }
  public abstract virtual UInt32 SignalStrength { get; }
  public abstract virtual event SmsDeviceStatusChangedEventHandler SmsDeviceStatusChanged;
  public abstract virtual event SmsMessageReceivedEventHandler SmsMessageReceived;
  public abstract virtual event SmsSignalStrengthChangedEventHandler SmsSignalStrengthChanged;
  public abstract virtual SmsEncodedLength CalculateLength(SmsTextMessage message);
  public abstract virtual SendSmsMessageOperation SendMessageAsync(ISmsMessage message);

  public abstract interface ISmsDeviceMessageStore
 
  public abstract virtual Boolean IsFull { get; }
  public abstract virtual UInt32 MaxMessages { get; }
  public abstract virtual event MaxMessagesReachedEventHandler MaxMessagesReached;
  public abstract virtual DeleteSmsMessageOperation DeleteMessageAsync(UInt32 messageId);
  public abstract virtual DeleteSmsMessagesOperation DeleteMessagesAsync(SmsMessageFilter messageFilter);
  public abstract virtual GetSmsMessageOperation GetMessageAsync(UInt32 messageId);
  public abstract virtual GetSmsMessagesOperation GetMessagesAsync(SmsMessageFilter messageFilter);

  public abstract interface ISmsMessage
 
  public abstract virtual UInt32 Id { get; }
  public abstract virtual SmsMessageClass MessageClass { get; }
  public abstract virtual SmsMessageStatus Status { get; }

  public abstract interface ISmsMessageReceivedEventArgs
 
  public abstract virtual SmsBinaryMessage BinaryMessage { get; }
  public abstract virtual SmsTextMessage TextMessage { get; }

  public abstract interface ISmsReceivedEventDetails
 
  public abstract virtual String DeviceId { get; }
  public abstract virtual UInt32 MessageIndex { get; }

  public abstract interface ISmsTextMessage
  : ISmsMessage
  public abstract virtual String Body { get; set; }
  public abstract virtual SmsEncoding Encoding { get; set; }
  public abstract virtual String From { get; set; }
  public abstract virtual UInt32 PartCount { get; }
  public abstract virtual UInt32 PartNumber { get; }
  public abstract virtual UInt32 PartReferenceId { get; }
  public abstract virtual DateTimeOffset Timestamp { get; }
  public abstract virtual String To { get; set; }
  public abstract virtual IReadOnlyList`1<ISmsBinaryMessage> ToBinaryMessages(SmsDataFormat format);

  public sealed class MaxMessagesReachedEventHandler
  : MulticastDelegate, ICloneable, ISerializable
  public virtual void Invoke(SmsDeviceMessageStore sender);

  public sealed class SendSmsMessageOperation
  : __ComObject, IAsyncAction, IAsyncInfo
  public virtual AsyncActionCompletedHandler Completed { get; set; }
  public virtual Exception ErrorCode { get; }
  public virtual UInt32 Id { get; }
  public virtual AsyncStatus Status { get; }
  public virtual void Cancel();
  public virtual void Close();
  public virtual void GetResults();
  public virtual void Start();

  public sealed class SmsBinaryMessage
  : __ComObject, ISmsBinaryMessage, ISmsMessage
  public virtual SmsDataFormat Format { get; set; }
  public virtual UInt32 Id { get; }
  public virtual SmsMessageClass MessageClass { get; }
  public virtual SmsMessageStatus Status { get; }
  public virtual Byte GetData();
  public virtual void SetData(Byte value);

  public sealed enum SmsDataFormat
  : IComparable, IFormattable, IConvertible
  { Unknown, CdmaSubmit, GsmSubmit, CdmaDeliver, GsmDeliver }

  public sealed class SmsDevice
  : __ComObject, ISmsDevice
  public virtual String AccountPhoneNumber { get; }
  public virtual CellularClass CellularClass { get; }
  public virtual SmsDeviceStatus DeviceStatus { get; }
  public virtual SmsDeviceMessageStore MessageStore { get; }
  public virtual UInt32 SignalStrength { get; }
  public virtual event SmsDeviceStatusChangedEventHandler SmsDeviceStatusChanged;
  public virtual event SmsMessageReceivedEventHandler SmsMessageReceived;
  public virtual event SmsSignalStrengthChangedEventHandler SmsSignalStrengthChanged;
  public virtual SmsEncodedLength CalculateLength(SmsTextMessage message);
  static public SmsDevice FromId(String deviceInstanceId);
  static public GetSmsDeviceOperation FromIdAsync(String deviceInstanceId);
  static public SmsDevice GetDefault();
  static public GetSmsDeviceOperation GetDefaultAsync();
  static public String GetDeviceSelector();
  public virtual SendSmsMessageOperation SendMessageAsync(ISmsMessage message);

  public sealed class SmsDeviceMessageStore
  : __ComObject, ISmsDeviceMessageStore
  public virtual Boolean IsFull { get; }
  public virtual UInt32 MaxMessages { get; }
  public virtual event MaxMessagesReachedEventHandler MaxMessagesReached;
  public virtual DeleteSmsMessageOperation DeleteMessageAsync(UInt32 messageId);
  public virtual DeleteSmsMessagesOperation DeleteMessagesAsync(SmsMessageFilter messageFilter);
  public virtual GetSmsMessageOperation GetMessageAsync(UInt32 messageId);
  public virtual GetSmsMessagesOperation GetMessagesAsync(SmsMessageFilter messageFilter);

  public sealed enum SmsDeviceStatus
  : IComparable, IFormattable, IConvertible
  { Off, Ready, SimNotInserted, BadSim, DeviceFailure, SubscriptionNotActivated, DeviceLocked, DeviceBlocked }

  public sealed class SmsDeviceStatusChangedEventHandler
  : MulticastDelegate, ICloneable, ISerializable
  public virtual void Invoke(SmsDevice sender);

  public sealed struct SmsEncodedLength
  : ValueType

  public sealed enum SmsEncoding
  : IComparable, IFormattable, IConvertible
  { Unknown, Optimal, Octet, ExtendedProtocol, SevenBitAscii, Ias, Unicode, ShiftJis, Korean, LatinHebrew, Latin, GsmSevenBit, GsmDataCoding }

  public sealed enum SmsMessageClass
  : IComparable, IFormattable, IConvertible
  { None, Class0, Class1, Class2, Class3 }

  public sealed enum SmsMessageFilter
  : IComparable, IFormattable, IConvertible
  { All, Unread, Read, Sent, Draft }

  public sealed class SmsMessageReceivedEventArgs
  : __ComObject, ISmsMessageReceivedEventArgs
  public virtual SmsBinaryMessage BinaryMessage { get; }
  public virtual SmsTextMessage TextMessage { get; }

  public sealed class SmsMessageReceivedEventHandler
  : MulticastDelegate, ICloneable, ISerializable
  public virtual void Invoke(SmsDevice sender, SmsMessageReceivedEventArgs e);

  public sealed enum SmsMessageStatus
  : IComparable, IFormattable, IConvertible
  { Unread, Read, Draft, Sent }

  public sealed enum SmsMessageType
  : IComparable, IFormattable, IConvertible
  { Binary, Text }

  public sealed class SmsReceivedEventDetails
  : __ComObject, ISmsReceivedEventDetails
  public virtual String DeviceId { get; }
  public virtual UInt32 MessageIndex { get; }

  public sealed class SmsSignalStrengthChangedEventHandler
  : MulticastDelegate, ICloneable, ISerializable
  public virtual void Invoke(SmsDevice sender);

  public sealed class SmsTextMessage
  : __ComObject, ISmsTextMessage, ISmsMessage
  public virtual String Body { get; set; }
  public virtual SmsEncoding Encoding { get; set; }
  public virtual String From { get; set; }
  public virtual UInt32 Id { get; }
  public virtual SmsMessageClass MessageClass { get; }
  public virtual UInt32 PartCount { get; }
  public virtual UInt32 PartNumber { get; }
  public virtual UInt32 PartReferenceId { get; }
  public virtual SmsMessageStatus Status { get; }
  public virtual DateTimeOffset Timestamp { get; }
  public virtual String To { get; set; }
  static public SmsTextMessage FromBinaryData(SmsDataFormat format, Byte value);
  static public SmsTextMessage FromBinaryMessage(SmsBinaryMessage binaryMessage);
  public virtual IReadOnlyList`1<ISmsBinaryMessage> ToBinaryMessages(SmsDataFormat format);