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

#ifndef __gen_flockIImageTransformService_h__
#define __gen_flockIImageTransformService_h__


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

#ifndef __gen_nsIURI_h__
#include "nsIURI.h"
#endif

#ifndef __gen_nsIInputStream_h__
#include "nsIInputStream.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

/* starting interface:    flockIImageTransformOps */
#define FLOCKIIMAGETRANSFORMOPS_IID_STR "f298760d-e6aa-4f4d-8923-bba602bdee99"

#define FLOCKIIMAGETRANSFORMOPS_IID \
  {0xf298760d, 0xe6aa, 0x4f4d, \
    { 0x89, 0x23, 0xbb, 0xa6, 0x02, 0xbd, 0xee, 0x99 }}

class NS_NO_VTABLE flockIImageTransformOps : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIIMAGETRANSFORMOPS_IID)

  /* readonly attribute nsIURI URI; */
  NS_IMETHOD GetURI(nsIURI * *aURI) = 0;

  /* readonly attribute string format; */
  NS_IMETHOD GetFormat(char * *aFormat) = 0;

  /* readonly attribute PRInt32 width; */
  NS_IMETHOD GetWidth(PRInt32 *aWidth) = 0;

  /* readonly attribute PRInt32 height; */
  NS_IMETHOD GetHeight(PRInt32 *aHeight) = 0;

  /* void setDimensions (in PRUint32 width, in PRUint32 height); */
  NS_IMETHOD SetDimensions(PRUint32 width, PRUint32 height) = 0;

  /* void translate (in double tx, in double ty); */
  NS_IMETHOD Translate(double tx, double ty) = 0;

  /* void scale (in double sx, in double sy); */
  NS_IMETHOD Scale(double sx, double sy) = 0;

  /* void rotate (in double angle); */
  NS_IMETHOD Rotate(double angle) = 0;

  /* void reset (); */
  NS_IMETHOD Reset(void) = 0;

  /* nsIInputStream saveToStream (in ACString format, in AString options); */
  NS_IMETHOD SaveToStream(const nsACString & format, const nsAString & options, nsIInputStream **_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIIMAGETRANSFORMOPS \
  NS_IMETHOD GetURI(nsIURI * *aURI); \
  NS_IMETHOD GetFormat(char * *aFormat); \
  NS_IMETHOD GetWidth(PRInt32 *aWidth); \
  NS_IMETHOD GetHeight(PRInt32 *aHeight); \
  NS_IMETHOD SetDimensions(PRUint32 width, PRUint32 height); \
  NS_IMETHOD Translate(double tx, double ty); \
  NS_IMETHOD Scale(double sx, double sy); \
  NS_IMETHOD Rotate(double angle); \
  NS_IMETHOD Reset(void); \
  NS_IMETHOD SaveToStream(const nsACString & format, const nsAString & options, nsIInputStream **_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIIMAGETRANSFORMOPS(_to) \
  NS_IMETHOD GetURI(nsIURI * *aURI) { return _to GetURI(aURI); } \
  NS_IMETHOD GetFormat(char * *aFormat) { return _to GetFormat(aFormat); } \
  NS_IMETHOD GetWidth(PRInt32 *aWidth) { return _to GetWidth(aWidth); } \
  NS_IMETHOD GetHeight(PRInt32 *aHeight) { return _to GetHeight(aHeight); } \
  NS_IMETHOD SetDimensions(PRUint32 width, PRUint32 height) { return _to SetDimensions(width, height); } \
  NS_IMETHOD Translate(double tx, double ty) { return _to Translate(tx, ty); } \
  NS_IMETHOD Scale(double sx, double sy) { return _to Scale(sx, sy); } \
  NS_IMETHOD Rotate(double angle) { return _to Rotate(angle); } \
  NS_IMETHOD Reset(void) { return _to Reset(); } \
  NS_IMETHOD SaveToStream(const nsACString & format, const nsAString & options, nsIInputStream **_retval) { return _to SaveToStream(format, options, _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_FLOCKIIMAGETRANSFORMOPS(_to) \
  NS_IMETHOD GetURI(nsIURI * *aURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetURI(aURI); } \
  NS_IMETHOD GetFormat(char * *aFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFormat(aFormat); } \
  NS_IMETHOD GetWidth(PRInt32 *aWidth) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWidth(aWidth); } \
  NS_IMETHOD GetHeight(PRInt32 *aHeight) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHeight(aHeight); } \
  NS_IMETHOD SetDimensions(PRUint32 width, PRUint32 height) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDimensions(width, height); } \
  NS_IMETHOD Translate(double tx, double ty) { return !_to ? NS_ERROR_NULL_POINTER : _to->Translate(tx, ty); } \
  NS_IMETHOD Scale(double sx, double sy) { return !_to ? NS_ERROR_NULL_POINTER : _to->Scale(sx, sy); } \
  NS_IMETHOD Rotate(double angle) { return !_to ? NS_ERROR_NULL_POINTER : _to->Rotate(angle); } \
  NS_IMETHOD Reset(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Reset(); } \
  NS_IMETHOD SaveToStream(const nsACString & format, const nsAString & options, nsIInputStream **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->SaveToStream(format, options, _retval); } 

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

/* Header file */
class _MYCLASS_ : public flockIImageTransformOps
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIIMAGETRANSFORMOPS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* readonly attribute nsIURI URI; */
NS_IMETHODIMP _MYCLASS_::GetURI(nsIURI * *aURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute string format; */
NS_IMETHODIMP _MYCLASS_::GetFormat(char * *aFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRInt32 width; */
NS_IMETHODIMP _MYCLASS_::GetWidth(PRInt32 *aWidth)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRInt32 height; */
NS_IMETHODIMP _MYCLASS_::GetHeight(PRInt32 *aHeight)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setDimensions (in PRUint32 width, in PRUint32 height); */
NS_IMETHODIMP _MYCLASS_::SetDimensions(PRUint32 width, PRUint32 height)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void translate (in double tx, in double ty); */
NS_IMETHODIMP _MYCLASS_::Translate(double tx, double ty)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void scale (in double sx, in double sy); */
NS_IMETHODIMP _MYCLASS_::Scale(double sx, double sy)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void rotate (in double angle); */
NS_IMETHODIMP _MYCLASS_::Rotate(double angle)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void reset (); */
NS_IMETHODIMP _MYCLASS_::Reset()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIInputStream saveToStream (in ACString format, in AString options); */
NS_IMETHODIMP _MYCLASS_::SaveToStream(const nsACString & format, const nsAString & options, nsIInputStream **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockIImageTransformListener */
#define FLOCKIIMAGETRANSFORMLISTENER_IID_STR "432607db-5fc2-4cfd-ba37-76819f951465"

#define FLOCKIIMAGETRANSFORMLISTENER_IID \
  {0x432607db, 0x5fc2, 0x4cfd, \
    { 0xba, 0x37, 0x76, 0x81, 0x9f, 0x95, 0x14, 0x65 }}

class NS_NO_VTABLE flockIImageTransformListener : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIIMAGETRANSFORMLISTENER_IID)

  /* void onImageTransformOpsReady (in flockIImageTransformOps ops); */
  NS_IMETHOD OnImageTransformOpsReady(flockIImageTransformOps *ops) = 0;

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

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIIMAGETRANSFORMLISTENER \
  NS_IMETHOD OnImageTransformOpsReady(flockIImageTransformOps *ops); \
  NS_IMETHOD OnError(flockIError *error); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIIMAGETRANSFORMLISTENER(_to) \
  NS_IMETHOD OnImageTransformOpsReady(flockIImageTransformOps *ops) { return _to OnImageTransformOpsReady(ops); } \
  NS_IMETHOD OnError(flockIError *error) { return _to OnError(error); } 

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

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

/* Header file */
class _MYCLASS_ : public flockIImageTransformListener
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIIMAGETRANSFORMLISTENER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* void onImageTransformOpsReady (in flockIImageTransformOps ops); */
NS_IMETHODIMP _MYCLASS_::OnImageTransformOpsReady(flockIImageTransformOps *ops)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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


/* starting interface:    flockIImageTransformService */
#define FLOCKIIMAGETRANSFORMSERVICE_IID_STR "25f9e9b6-1994-4328-b906-85937158b0c2"

#define FLOCKIIMAGETRANSFORMSERVICE_IID \
  {0x25f9e9b6, 0x1994, 0x4328, \
    { 0xb9, 0x06, 0x85, 0x93, 0x71, 0x58, 0xb0, 0xc2 }}

class NS_NO_VTABLE flockIImageTransformService : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIIMAGETRANSFORMSERVICE_IID)

  /* void loadImage (in nsIURI uri, in flockIImageTransformListener listener); */
  NS_IMETHOD LoadImage(nsIURI *uri, flockIImageTransformListener *listener) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIIMAGETRANSFORMSERVICE \
  NS_IMETHOD LoadImage(nsIURI *uri, flockIImageTransformListener *listener); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIIMAGETRANSFORMSERVICE(_to) \
  NS_IMETHOD LoadImage(nsIURI *uri, flockIImageTransformListener *listener) { return _to LoadImage(uri, listener); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIIMAGETRANSFORMSERVICE(_to) \
  NS_IMETHOD LoadImage(nsIURI *uri, flockIImageTransformListener *listener) { return !_to ? NS_ERROR_NULL_POINTER : _to->LoadImage(uri, listener); } 

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

/* Header file */
class _MYCLASS_ : public flockIImageTransformService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIIMAGETRANSFORMSERVICE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* void loadImage (in nsIURI uri, in flockIImageTransformListener listener); */
NS_IMETHODIMP _MYCLASS_::LoadImage(nsIURI *uri, flockIImageTransformListener *listener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

#define FLOCK_IMAGETRANSFORMSERVICE_CID            \
{ /* 7bfbd247-bc17-4955-9055-3b34a7e0e8b3 */       \
  0x7bfbd247,                                      \
  0xbc17,                                          \
  0x4955,                                          \
  {0x90, 0x55, 0x3b, 0x34, 0xa7, 0xe0, 0xe8, 0xb3} \
}
#define FLOCK_IMAGETRANSFORMSERVICE_CONTRACTID "@flock.com/image-transform-service;1"
#define FLOCK_IMAGETRANSFORMSERVICE_CLASSNAME "Flock Image Transform Service"

#endif /* __gen_flockIImageTransformService_h__ */
