/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM nsIRegistryDataSource.idl
 */

#ifndef __gen_nsIRegistryDataSource_h__
#define __gen_nsIRegistryDataSource_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIFile; /* forward declaration */


/* starting interface:    nsIRegistryDataSource */
#define NS_IREGISTRYDATASOURCE_IID_STR "8fa81100-6f88-11d3-be43-00104bde6048"

#define NS_IREGISTRYDATASOURCE_IID \
  {0x8fa81100, 0x6f88, 0x11d3, \
    { 0xbe, 0x43, 0x00, 0x10, 0x4b, 0xde, 0x60, 0x48 }}

class NS_NO_VTABLE nsIRegistryDataSource : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IREGISTRYDATASOURCE_IID)

  enum { ApplicationComponentRegistry = 1 };

  /**
     * Open and initialize the registry viewer
     */
  /* void open (in nsIFile aFile); */
  NS_IMETHOD Open(nsIFile *aFile) = 0;

  /**
     * Open a stock registry
     */
  /* void openWellKnownRegistry (in long aID); */
  NS_IMETHOD OpenWellKnownRegistry(PRInt32 aID) = 0;

  /**
     * Open the profile registry
     */
  /* void openDefaultRegistry (); */
  NS_IMETHOD OpenDefaultRegistry(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIREGISTRYDATASOURCE \
  NS_IMETHOD Open(nsIFile *aFile); \
  NS_IMETHOD OpenWellKnownRegistry(PRInt32 aID); \
  NS_IMETHOD OpenDefaultRegistry(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIREGISTRYDATASOURCE(_to) \
  NS_IMETHOD Open(nsIFile *aFile) { return _to Open(aFile); } \
  NS_IMETHOD OpenWellKnownRegistry(PRInt32 aID) { return _to OpenWellKnownRegistry(aID); } \
  NS_IMETHOD OpenDefaultRegistry(void) { return _to OpenDefaultRegistry(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIREGISTRYDATASOURCE(_to) \
  NS_IMETHOD Open(nsIFile *aFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->Open(aFile); } \
  NS_IMETHOD OpenWellKnownRegistry(PRInt32 aID) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenWellKnownRegistry(aID); } \
  NS_IMETHOD OpenDefaultRegistry(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenDefaultRegistry(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsRegistryDataSource : public nsIRegistryDataSource
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIREGISTRYDATASOURCE

  nsRegistryDataSource();
  virtual ~nsRegistryDataSource();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsRegistryDataSource, nsIRegistryDataSource)

nsRegistryDataSource::nsRegistryDataSource()
{
  NS_INIT_ISUPPORTS();
  /* member initializers and constructor code */
}

nsRegistryDataSource::~nsRegistryDataSource()
{
  /* destructor code */
}

/* void open (in nsIFile aFile); */
NS_IMETHODIMP nsRegistryDataSource::Open(nsIFile *aFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void openWellKnownRegistry (in long aID); */
NS_IMETHODIMP nsRegistryDataSource::OpenWellKnownRegistry(PRInt32 aID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void openDefaultRegistry (); */
NS_IMETHODIMP nsRegistryDataSource::OpenDefaultRegistry()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

// {8FA81101-6F88-11d3-BE43-00104BDE6048}
#define NS_REGISTRYVIEWER_CID \
{ 0x8fa81101, 0x6f88, 0x11d3, { 0xbe, 0x43, 0x0, 0x10, 0x4b, 0xde, 0x60, 0x48 } }

#endif /* __gen_nsIRegistryDataSource_h__ */
