Silverlight 5 WinRT

  public abstract interface IUICommand
 
  public abstract virtual Object Id { get; set; }
  public abstract virtual UICommandInvokedHandler Invoked { get; set; }
  public abstract virtual String Label { get; set; }

  public abstract interface IUICommandFactory
 
  public abstract virtual UICommand Create(String label, UICommandInvokedHandler action);
  public abstract virtual UICommand CreateWithId(String label, UICommandInvokedHandler action, Object commandId);

  public sealed class MessageDialog
  : __ComObject, IMessageDialog
  public virtual IList`1<IUICommand> Commands { get; }
  public virtual String Content { get; set; }
  public virtual Int32 DefaultCommandIndex { get; set; }
  public virtual String Title { get; set; }
  public virtual MessageDialogAsyncOperation ShowAsync();

  public sealed class MessageDialogAsyncOperation
  : __ComObject, IAsyncOperation`1<IUICommand>, IAsyncInfo
  public virtual AsyncOperationCompletedHandler`1<IUICommand> 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 IUICommand GetResults();
  public virtual void Start();

  public sealed enum Placement
  : IComparable, IFormattable, IConvertible
  { Above, Below, Left, Right }

  public sealed class PopupMenu
  : __ComObject, IPopupMenu
  public virtual IList`1<IUICommand> Commands { get; }
  public virtual ShowOperation ShowAsync(Point invocationPoint);
  public virtual ShowOperation ShowForSelectionAsync(Rect selection);
  public virtual ShowOperation ShowForSelectionAsync(Rect selection, Placement preferredPlacement);

  public sealed class ShowOperation
  : __ComObject, IAsyncOperation`1<IUICommand>, IAsyncInfo
  public virtual AsyncOperationCompletedHandler`1<IUICommand> 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 IUICommand GetResults();
  public virtual void Start();

  public sealed class UICommand
  : __ComObject, IUICommand
  public virtual Object Id { get; set; }
  public virtual UICommandInvokedHandler Invoked { get; set; }
  public virtual String Label { get; set; }

  public sealed class UICommandInvokedHandler
  : MulticastDelegate, ICloneable, ISerializable
  public virtual void Invoke(IUICommand command);

  public sealed class UICommandSeparator
  : __ComObject, IUICommand
  public virtual Object Id { get; set; }
  public virtual UICommandInvokedHandler Invoked { get; set; }
  public virtual String Label { get; set; }