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

#ifndef __gen_flockIPhotoAPIManager_h__
#define __gen_flockIPhotoAPIManager_h__


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

#ifndef __gen_nsISimpleEnumerator_h__
#include "nsISimpleEnumerator.h"
#endif

#ifndef __gen_nsIDOMHTMLElement_h__
#include "nsIDOMHTMLElement.h"
#endif

#ifndef __gen_nsIWritablePropertyBag2_h__
#include "nsIWritablePropertyBag2.h"
#endif

#ifndef __gen_flockIError_h__
#include "flockIError.h"
#endif

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


/* starting interface:    flockIPhotoAPIManagerListener */
#define FLOCKIPHOTOAPIMANAGERLISTENER_IID_STR "90ebb22d-c468-4db2-979d-9c32f5d65d78"

#define FLOCKIPHOTOAPIMANAGERLISTENER_IID \
  {0x90ebb22d, 0xc468, 0x4db2, \
    { 0x97, 0x9d, 0x9c, 0x32, 0xf5, 0xd6, 0x5d, 0x78 }}

class NS_NO_VTABLE flockIPhotoAPIManagerListener : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIPHOTOAPIMANAGERLISTENER_IID)

  /* void onAPIStateChange (in flockIMediaWebService aAPI); */
  NS_IMETHOD OnAPIStateChange(flockIMediaWebService *aAPI) = 0;

  /* void onError (in flockIError aError); */
  NS_IMETHOD OnError(flockIError *aError) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIPHOTOAPIMANAGERLISTENER \
  NS_IMETHOD OnAPIStateChange(flockIMediaWebService *aAPI); \
  NS_IMETHOD OnError(flockIError *aError); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIPHOTOAPIMANAGERLISTENER(_to) \
  NS_IMETHOD OnAPIStateChange(flockIMediaWebService *aAPI) { return _to OnAPIStateChange(aAPI); } \
  NS_IMETHOD OnError(flockIError *aError) { return _to OnError(aError); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIPHOTOAPIMANAGERLISTENER(_to) \
  NS_IMETHOD OnAPIStateChange(flockIMediaWebService *aAPI) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnAPIStateChange(aAPI); } \
  NS_IMETHOD OnError(flockIError *aError) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnError(aError); } 

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

/* Header file */
class _MYCLASS_ : public flockIPhotoAPIManagerListener
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIPHOTOAPIMANAGERLISTENER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, flockIPhotoAPIManagerListener)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

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

/* void onAPIStateChange (in flockIMediaWebService aAPI); */
NS_IMETHODIMP _MYCLASS_::OnAPIStateChange(flockIMediaWebService *aAPI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onError (in flockIError aError); */
NS_IMETHODIMP _MYCLASS_::OnError(flockIError *aError)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockIPhotoAPIManager */
#define FLOCKIPHOTOAPIMANAGER_IID_STR "a9911f5e-2efa-4ae8-9a8e-43bf66d69512"

#define FLOCKIPHOTOAPIMANAGER_IID \
  {0xa9911f5e, 0x2efa, 0x4ae8, \
    { 0x9a, 0x8e, 0x43, 0xbf, 0x66, 0xd6, 0x95, 0x12 }}

class NS_NO_VTABLE flockIPhotoAPIManager : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIPHOTOAPIMANAGER_IID)

  /* readonly attribute boolean hasNewMedia; */
  NS_IMETHOD GetHasNewMedia(PRBool *aHasNewMedia) = 0;

  /* readonly attribute nsISimpleEnumerator services; */
  NS_IMETHOD GetServices(nsISimpleEnumerator * *aServices) = 0;

  /* void addListener (in flockIPhotoAPIManagerListener aListener); */
  NS_IMETHOD AddListener(flockIPhotoAPIManagerListener *aListener) = 0;

  /* void doLogin (in AString aAccountURN); */
  NS_IMETHOD DoLogin(const nsAString & aAccountURN) = 0;

  /* void doLogout (in ACString aShortname); */
  NS_IMETHOD DoLogout(const nsACString & aShortname) = 0;

  /* flockIMediaWebService getAPIFromShortname (in ACString aShortname); */
  NS_IMETHOD GetAPIFromShortname(const nsACString & aShortname, flockIMediaWebService **_retval) = 0;

  /* flockIMediaWebService getDefaultService (); */
  NS_IMETHOD GetDefaultService(flockIMediaWebService **_retval) = 0;

  /* void processPhotoStream (in AString aQueryUrn, in nsISimpleEnumerator aEnum, in boolean bMarkUnseen); */
  NS_IMETHOD ProcessPhotoStream(const nsAString & aQueryUrn, nsISimpleEnumerator *aEnum, PRBool bMarkUnseen) = 0;

  /* boolean destroyPhotos (in AString aQueryUrn); */
  NS_IMETHOD DestroyPhotos(const nsAString & aQueryUrn, PRBool *_retval) = 0;

  /* void removeListener (in flockIPhotoAPIManagerListener aListener); */
  NS_IMETHOD RemoveListener(flockIPhotoAPIManagerListener *aListener) = 0;

  /* void setDefaultService (in ACString aShortname); */
  NS_IMETHOD SetDefaultService(const nsACString & aShortname) = 0;

  /**
   * Handles retrieving the content url and title.
   *
   * @param aSrc (in) Source element.
   * @param aProp (in) Container for retrieved property results.
   * @returns true if a service handled the request.
   */
  /* boolean getSharingContent (in nsIDOMHTMLElement aSrc, in nsIWritablePropertyBag2 aProp); */
  NS_IMETHOD GetSharingContent(nsIDOMHTMLElement *aSrc, nsIWritablePropertyBag2 *aProp, PRBool *_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIPHOTOAPIMANAGER \
  NS_IMETHOD GetHasNewMedia(PRBool *aHasNewMedia); \
  NS_IMETHOD GetServices(nsISimpleEnumerator * *aServices); \
  NS_IMETHOD AddListener(flockIPhotoAPIManagerListener *aListener); \
  NS_IMETHOD DoLogin(const nsAString & aAccountURN); \
  NS_IMETHOD DoLogout(const nsACString & aShortname); \
  NS_IMETHOD GetAPIFromShortname(const nsACString & aShortname, flockIMediaWebService **_retval); \
  NS_IMETHOD GetDefaultService(flockIMediaWebService **_retval); \
  NS_IMETHOD ProcessPhotoStream(const nsAString & aQueryUrn, nsISimpleEnumerator *aEnum, PRBool bMarkUnseen); \
  NS_IMETHOD DestroyPhotos(const nsAString & aQueryUrn, PRBool *_retval); \
  NS_IMETHOD RemoveListener(flockIPhotoAPIManagerListener *aListener); \
  NS_IMETHOD SetDefaultService(const nsACString & aShortname); \
  NS_IMETHOD GetSharingContent(nsIDOMHTMLElement *aSrc, nsIWritablePropertyBag2 *aProp, PRBool *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIPHOTOAPIMANAGER(_to) \
  NS_IMETHOD GetHasNewMedia(PRBool *aHasNewMedia) { return _to GetHasNewMedia(aHasNewMedia); } \
  NS_IMETHOD GetServices(nsISimpleEnumerator * *aServices) { return _to GetServices(aServices); } \
  NS_IMETHOD AddListener(flockIPhotoAPIManagerListener *aListener) { return _to AddListener(aListener); } \
  NS_IMETHOD DoLogin(const nsAString & aAccountURN) { return _to DoLogin(aAccountURN); } \
  NS_IMETHOD DoLogout(const nsACString & aShortname) { return _to DoLogout(aShortname); } \
  NS_IMETHOD GetAPIFromShortname(const nsACString & aShortname, flockIMediaWebService **_retval) { return _to GetAPIFromShortname(aShortname, _retval); } \
  NS_IMETHOD GetDefaultService(flockIMediaWebService **_retval) { return _to GetDefaultService(_retval); } \
  NS_IMETHOD ProcessPhotoStream(const nsAString & aQueryUrn, nsISimpleEnumerator *aEnum, PRBool bMarkUnseen) { return _to ProcessPhotoStream(aQueryUrn, aEnum, bMarkUnseen); } \
  NS_IMETHOD DestroyPhotos(const nsAString & aQueryUrn, PRBool *_retval) { return _to DestroyPhotos(aQueryUrn, _retval); } \
  NS_IMETHOD RemoveListener(flockIPhotoAPIManagerListener *aListener) { return _to RemoveListener(aListener); } \
  NS_IMETHOD SetDefaultService(const nsACString & aShortname) { return _to SetDefaultService(aShortname); } \
  NS_IMETHOD GetSharingContent(nsIDOMHTMLElement *aSrc, nsIWritablePropertyBag2 *aProp, PRBool *_retval) { return _to GetSharingContent(aSrc, aProp, _retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIPHOTOAPIMANAGER(_to) \
  NS_IMETHOD GetHasNewMedia(PRBool *aHasNewMedia) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHasNewMedia(aHasNewMedia); } \
  NS_IMETHOD GetServices(nsISimpleEnumerator * *aServices) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServices(aServices); } \
  NS_IMETHOD AddListener(flockIPhotoAPIManagerListener *aListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddListener(aListener); } \
  NS_IMETHOD DoLogin(const nsAString & aAccountURN) { return !_to ? NS_ERROR_NULL_POINTER : _to->DoLogin(aAccountURN); } \
  NS_IMETHOD DoLogout(const nsACString & aShortname) { return !_to ? NS_ERROR_NULL_POINTER : _to->DoLogout(aShortname); } \
  NS_IMETHOD GetAPIFromShortname(const nsACString & aShortname, flockIMediaWebService **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAPIFromShortname(aShortname, _retval); } \
  NS_IMETHOD GetDefaultService(flockIMediaWebService **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultService(_retval); } \
  NS_IMETHOD ProcessPhotoStream(const nsAString & aQueryUrn, nsISimpleEnumerator *aEnum, PRBool bMarkUnseen) { return !_to ? NS_ERROR_NULL_POINTER : _to->ProcessPhotoStream(aQueryUrn, aEnum, bMarkUnseen); } \
  NS_IMETHOD DestroyPhotos(const nsAString & aQueryUrn, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->DestroyPhotos(aQueryUrn, _retval); } \
  NS_IMETHOD RemoveListener(flockIPhotoAPIManagerListener *aListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveListener(aListener); } \
  NS_IMETHOD SetDefaultService(const nsACString & aShortname) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultService(aShortname); } \
  NS_IMETHOD GetSharingContent(nsIDOMHTMLElement *aSrc, nsIWritablePropertyBag2 *aProp, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSharingContent(aSrc, aProp, _retval); } 

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

/* Header file */
class _MYCLASS_ : public flockIPhotoAPIManager
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIPHOTOAPIMANAGER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, flockIPhotoAPIManager)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

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

/* readonly attribute boolean hasNewMedia; */
NS_IMETHODIMP _MYCLASS_::GetHasNewMedia(PRBool *aHasNewMedia)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsISimpleEnumerator services; */
NS_IMETHODIMP _MYCLASS_::GetServices(nsISimpleEnumerator * *aServices)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addListener (in flockIPhotoAPIManagerListener aListener); */
NS_IMETHODIMP _MYCLASS_::AddListener(flockIPhotoAPIManagerListener *aListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void doLogin (in AString aAccountURN); */
NS_IMETHODIMP _MYCLASS_::DoLogin(const nsAString & aAccountURN)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void doLogout (in ACString aShortname); */
NS_IMETHODIMP _MYCLASS_::DoLogout(const nsACString & aShortname)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* flockIMediaWebService getAPIFromShortname (in ACString aShortname); */
NS_IMETHODIMP _MYCLASS_::GetAPIFromShortname(const nsACString & aShortname, flockIMediaWebService **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* flockIMediaWebService getDefaultService (); */
NS_IMETHODIMP _MYCLASS_::GetDefaultService(flockIMediaWebService **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void processPhotoStream (in AString aQueryUrn, in nsISimpleEnumerator aEnum, in boolean bMarkUnseen); */
NS_IMETHODIMP _MYCLASS_::ProcessPhotoStream(const nsAString & aQueryUrn, nsISimpleEnumerator *aEnum, PRBool bMarkUnseen)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean destroyPhotos (in AString aQueryUrn); */
NS_IMETHODIMP _MYCLASS_::DestroyPhotos(const nsAString & aQueryUrn, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeListener (in flockIPhotoAPIManagerListener aListener); */
NS_IMETHODIMP _MYCLASS_::RemoveListener(flockIPhotoAPIManagerListener *aListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setDefaultService (in ACString aShortname); */
NS_IMETHODIMP _MYCLASS_::SetDefaultService(const nsACString & aShortname)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean getSharingContent (in nsIDOMHTMLElement aSrc, in nsIWritablePropertyBag2 aProp); */
NS_IMETHODIMP _MYCLASS_::GetSharingContent(nsIDOMHTMLElement *aSrc, nsIWritablePropertyBag2 *aProp, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_flockIPhotoAPIManager_h__ */
