
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_awt_peer_DesktopPeer__
#define __java_awt_peer_DesktopPeer__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Desktop$Action;
      namespace peer
      {
          class DesktopPeer;
      }
    }
    namespace net
    {
        class URI;
    }
  }
}

class java::awt::peer::DesktopPeer : public ::java::lang::Object
{

public:
  virtual void browse(::java::net::URI *) = 0;
  virtual void edit(::java::io::File *) = 0;
  virtual jboolean isSupported(::java::awt::Desktop$Action *) = 0;
  virtual void mail(::java::net::URI *) = 0;
  virtual void mail() = 0;
  virtual void open(::java::io::File *) = 0;
  virtual void print(::java::io::File *) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __java_awt_peer_DesktopPeer__
