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

#ifndef __gen_nsIDOMDataTransfer_h__
#define __gen_nsIDOMDataTransfer_h__


#ifndef __gen_domstubs_h__
#include "domstubs.h"
#endif

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

class nsIDOMFileList; /* forward declaration */


/* starting interface:    nsIDOMDataTransfer */
#define NS_IDOMDATATRANSFER_IID_STR "655078bf-1675-4aa0-a48d-a133e864ce57"

#define NS_IDOMDATATRANSFER_IID \
  {0x655078bf, 0x1675, 0x4aa0, \
    { 0xa4, 0x8d, 0xa1, 0x33, 0xe8, 0x64, 0xce, 0x57 }}

class NS_NO_VTABLE nsIDOMDataTransfer : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IDOMDATATRANSFER_IID)

  /* attribute DOMString dropEffect; */
  NS_IMETHOD GetDropEffect(nsAString & aDropEffect) = 0;
  NS_IMETHOD SetDropEffect(const nsAString & aDropEffect) = 0;

  /* attribute DOMString effectAllowed; */
  NS_IMETHOD GetEffectAllowed(nsAString & aEffectAllowed) = 0;
  NS_IMETHOD SetEffectAllowed(const nsAString & aEffectAllowed) = 0;

  /* readonly attribute nsIDOMFileList files; */
  NS_IMETHOD GetFiles(nsIDOMFileList * *aFiles) = 0;

  /* void setDragImage (in nsIDOMElement image, in long x, in long y); */
  NS_IMETHOD SetDragImage(nsIDOMElement *image, int32_t x, int32_t y) = 0;

  /* void addElement (in nsIDOMElement element); */
  NS_IMETHOD AddElement(nsIDOMElement *element) = 0;

  /* readonly attribute unsigned long mozItemCount; */
  NS_IMETHOD GetMozItemCount(uint32_t *aMozItemCount) = 0;

  /* attribute DOMString mozCursor; */
  NS_IMETHOD GetMozCursor(nsAString & aMozCursor) = 0;
  NS_IMETHOD SetMozCursor(const nsAString & aMozCursor) = 0;

  /* nsISupports mozTypesAt (in unsigned long index); */
  NS_IMETHOD MozTypesAt(uint32_t index, nsISupports * *_retval) = 0;

  /* readonly attribute boolean mozUserCancelled; */
  NS_IMETHOD GetMozUserCancelled(bool *aMozUserCancelled) = 0;

  /* readonly attribute nsIDOMNode mozSourceNode; */
  NS_IMETHOD GetMozSourceNode(nsIDOMNode * *aMozSourceNode) = 0;

  /* [noscript] attribute unsigned long dropEffectInt; */
  NS_IMETHOD GetDropEffectInt(uint32_t *aDropEffectInt) = 0;
  NS_IMETHOD SetDropEffectInt(uint32_t aDropEffectInt) = 0;

  /* [noscript] attribute unsigned long effectAllowedInt; */
  NS_IMETHOD GetEffectAllowedInt(uint32_t *aEffectAllowedInt) = 0;
  NS_IMETHOD SetEffectAllowedInt(uint32_t aEffectAllowedInt) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIDOMDataTransfer, NS_IDOMDATATRANSFER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIDOMDATATRANSFER \
  NS_IMETHOD GetDropEffect(nsAString & aDropEffect) override; \
  NS_IMETHOD SetDropEffect(const nsAString & aDropEffect) override; \
  NS_IMETHOD GetEffectAllowed(nsAString & aEffectAllowed) override; \
  NS_IMETHOD SetEffectAllowed(const nsAString & aEffectAllowed) override; \
  NS_IMETHOD GetFiles(nsIDOMFileList * *aFiles) override; \
  NS_IMETHOD SetDragImage(nsIDOMElement *image, int32_t x, int32_t y) override; \
  NS_IMETHOD AddElement(nsIDOMElement *element) override; \
  NS_IMETHOD GetMozItemCount(uint32_t *aMozItemCount) override; \
  NS_IMETHOD GetMozCursor(nsAString & aMozCursor) override; \
  NS_IMETHOD SetMozCursor(const nsAString & aMozCursor) override; \
  NS_IMETHOD MozTypesAt(uint32_t index, nsISupports * *_retval) override; \
  NS_IMETHOD GetMozUserCancelled(bool *aMozUserCancelled) override; \
  NS_IMETHOD GetMozSourceNode(nsIDOMNode * *aMozSourceNode) override; \
  NS_IMETHOD GetDropEffectInt(uint32_t *aDropEffectInt) override; \
  NS_IMETHOD SetDropEffectInt(uint32_t aDropEffectInt) override; \
  NS_IMETHOD GetEffectAllowedInt(uint32_t *aEffectAllowedInt) override; \
  NS_IMETHOD SetEffectAllowedInt(uint32_t aEffectAllowedInt) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIDOMDATATRANSFER \
  NS_METHOD GetDropEffect(nsAString & aDropEffect); \
  NS_METHOD SetDropEffect(const nsAString & aDropEffect); \
  NS_METHOD GetEffectAllowed(nsAString & aEffectAllowed); \
  NS_METHOD SetEffectAllowed(const nsAString & aEffectAllowed); \
  NS_METHOD GetFiles(nsIDOMFileList * *aFiles); \
  NS_METHOD SetDragImage(nsIDOMElement *image, int32_t x, int32_t y); \
  NS_METHOD AddElement(nsIDOMElement *element); \
  NS_METHOD GetMozItemCount(uint32_t *aMozItemCount); \
  NS_METHOD GetMozCursor(nsAString & aMozCursor); \
  NS_METHOD SetMozCursor(const nsAString & aMozCursor); \
  NS_METHOD MozTypesAt(uint32_t index, nsISupports * *_retval); \
  NS_METHOD GetMozUserCancelled(bool *aMozUserCancelled); \
  NS_METHOD GetMozSourceNode(nsIDOMNode * *aMozSourceNode); \
  NS_METHOD GetDropEffectInt(uint32_t *aDropEffectInt); \
  NS_METHOD SetDropEffectInt(uint32_t aDropEffectInt); \
  NS_METHOD GetEffectAllowedInt(uint32_t *aEffectAllowedInt); \
  NS_METHOD SetEffectAllowedInt(uint32_t aEffectAllowedInt); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIDOMDATATRANSFER(_to) \
  NS_IMETHOD GetDropEffect(nsAString & aDropEffect) override { return _to GetDropEffect(aDropEffect); } \
  NS_IMETHOD SetDropEffect(const nsAString & aDropEffect) override { return _to SetDropEffect(aDropEffect); } \
  NS_IMETHOD GetEffectAllowed(nsAString & aEffectAllowed) override { return _to GetEffectAllowed(aEffectAllowed); } \
  NS_IMETHOD SetEffectAllowed(const nsAString & aEffectAllowed) override { return _to SetEffectAllowed(aEffectAllowed); } \
  NS_IMETHOD GetFiles(nsIDOMFileList * *aFiles) override { return _to GetFiles(aFiles); } \
  NS_IMETHOD SetDragImage(nsIDOMElement *image, int32_t x, int32_t y) override { return _to SetDragImage(image, x, y); } \
  NS_IMETHOD AddElement(nsIDOMElement *element) override { return _to AddElement(element); } \
  NS_IMETHOD GetMozItemCount(uint32_t *aMozItemCount) override { return _to GetMozItemCount(aMozItemCount); } \
  NS_IMETHOD GetMozCursor(nsAString & aMozCursor) override { return _to GetMozCursor(aMozCursor); } \
  NS_IMETHOD SetMozCursor(const nsAString & aMozCursor) override { return _to SetMozCursor(aMozCursor); } \
  NS_IMETHOD MozTypesAt(uint32_t index, nsISupports * *_retval) override { return _to MozTypesAt(index, _retval); } \
  NS_IMETHOD GetMozUserCancelled(bool *aMozUserCancelled) override { return _to GetMozUserCancelled(aMozUserCancelled); } \
  NS_IMETHOD GetMozSourceNode(nsIDOMNode * *aMozSourceNode) override { return _to GetMozSourceNode(aMozSourceNode); } \
  NS_IMETHOD GetDropEffectInt(uint32_t *aDropEffectInt) override { return _to GetDropEffectInt(aDropEffectInt); } \
  NS_IMETHOD SetDropEffectInt(uint32_t aDropEffectInt) override { return _to SetDropEffectInt(aDropEffectInt); } \
  NS_IMETHOD GetEffectAllowedInt(uint32_t *aEffectAllowedInt) override { return _to GetEffectAllowedInt(aEffectAllowedInt); } \
  NS_IMETHOD SetEffectAllowedInt(uint32_t aEffectAllowedInt) override { return _to SetEffectAllowedInt(aEffectAllowedInt); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIDOMDATATRANSFER(_to) \
  NS_IMETHOD GetDropEffect(nsAString & aDropEffect) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDropEffect(aDropEffect); } \
  NS_IMETHOD SetDropEffect(const nsAString & aDropEffect) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDropEffect(aDropEffect); } \
  NS_IMETHOD GetEffectAllowed(nsAString & aEffectAllowed) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEffectAllowed(aEffectAllowed); } \
  NS_IMETHOD SetEffectAllowed(const nsAString & aEffectAllowed) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEffectAllowed(aEffectAllowed); } \
  NS_IMETHOD GetFiles(nsIDOMFileList * *aFiles) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFiles(aFiles); } \
  NS_IMETHOD SetDragImage(nsIDOMElement *image, int32_t x, int32_t y) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDragImage(image, x, y); } \
  NS_IMETHOD AddElement(nsIDOMElement *element) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddElement(element); } \
  NS_IMETHOD GetMozItemCount(uint32_t *aMozItemCount) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMozItemCount(aMozItemCount); } \
  NS_IMETHOD GetMozCursor(nsAString & aMozCursor) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMozCursor(aMozCursor); } \
  NS_IMETHOD SetMozCursor(const nsAString & aMozCursor) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMozCursor(aMozCursor); } \
  NS_IMETHOD MozTypesAt(uint32_t index, nsISupports * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->MozTypesAt(index, _retval); } \
  NS_IMETHOD GetMozUserCancelled(bool *aMozUserCancelled) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMozUserCancelled(aMozUserCancelled); } \
  NS_IMETHOD GetMozSourceNode(nsIDOMNode * *aMozSourceNode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMozSourceNode(aMozSourceNode); } \
  NS_IMETHOD GetDropEffectInt(uint32_t *aDropEffectInt) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDropEffectInt(aDropEffectInt); } \
  NS_IMETHOD SetDropEffectInt(uint32_t aDropEffectInt) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDropEffectInt(aDropEffectInt); } \
  NS_IMETHOD GetEffectAllowedInt(uint32_t *aEffectAllowedInt) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEffectAllowedInt(aEffectAllowedInt); } \
  NS_IMETHOD SetEffectAllowedInt(uint32_t aEffectAllowedInt) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEffectAllowedInt(aEffectAllowedInt); } 

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

/* Header file */
class nsDOMDataTransfer : public nsIDOMDataTransfer
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIDOMDATATRANSFER

  nsDOMDataTransfer();

private:
  ~nsDOMDataTransfer();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsDOMDataTransfer, nsIDOMDataTransfer)

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

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

/* attribute DOMString dropEffect; */
NS_IMETHODIMP nsDOMDataTransfer::GetDropEffect(nsAString & aDropEffect)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDOMDataTransfer::SetDropEffect(const nsAString & aDropEffect)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute DOMString effectAllowed; */
NS_IMETHODIMP nsDOMDataTransfer::GetEffectAllowed(nsAString & aEffectAllowed)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDOMDataTransfer::SetEffectAllowed(const nsAString & aEffectAllowed)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIDOMFileList files; */
NS_IMETHODIMP nsDOMDataTransfer::GetFiles(nsIDOMFileList * *aFiles)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setDragImage (in nsIDOMElement image, in long x, in long y); */
NS_IMETHODIMP nsDOMDataTransfer::SetDragImage(nsIDOMElement *image, int32_t x, int32_t y)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addElement (in nsIDOMElement element); */
NS_IMETHODIMP nsDOMDataTransfer::AddElement(nsIDOMElement *element)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long mozItemCount; */
NS_IMETHODIMP nsDOMDataTransfer::GetMozItemCount(uint32_t *aMozItemCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute DOMString mozCursor; */
NS_IMETHODIMP nsDOMDataTransfer::GetMozCursor(nsAString & aMozCursor)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDOMDataTransfer::SetMozCursor(const nsAString & aMozCursor)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsISupports mozTypesAt (in unsigned long index); */
NS_IMETHODIMP nsDOMDataTransfer::MozTypesAt(uint32_t index, nsISupports * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean mozUserCancelled; */
NS_IMETHODIMP nsDOMDataTransfer::GetMozUserCancelled(bool *aMozUserCancelled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIDOMNode mozSourceNode; */
NS_IMETHODIMP nsDOMDataTransfer::GetMozSourceNode(nsIDOMNode * *aMozSourceNode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] attribute unsigned long dropEffectInt; */
NS_IMETHODIMP nsDOMDataTransfer::GetDropEffectInt(uint32_t *aDropEffectInt)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDOMDataTransfer::SetDropEffectInt(uint32_t aDropEffectInt)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] attribute unsigned long effectAllowedInt; */
NS_IMETHODIMP nsDOMDataTransfer::GetEffectAllowedInt(uint32_t *aEffectAllowedInt)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDOMDataTransfer::SetEffectAllowedInt(uint32_t aEffectAllowedInt)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIDOMDataTransfer_h__ */
