/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM $SRCDIR/xpcom/ds/nsISupportsPrimitives.idl
 */

#ifndef __gen_nsISupportsPrimitives_h__
#define __gen_nsISupportsPrimitives_h__


#include "nsISupports.h"

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif

/* starting interface:    nsISupportsPrimitive */
#define NS_ISUPPORTSPRIMITIVE_IID_STR "d0d4b136-1dd1-11b2-9371-f0727ef827c0"

#define NS_ISUPPORTSPRIMITIVE_IID \
  {0xd0d4b136, 0x1dd1, 0x11b2, \
    { 0x93, 0x71, 0xf0, 0x72, 0x7e, 0xf8, 0x27, 0xc0 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsPrimitive) nsISupportsPrimitive : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSPRIMITIVE_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsPrimitive;

  enum {
    TYPE_ID MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_ID) = 1U,
    TYPE_CSTRING MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_CSTRING) = 2U,
    TYPE_STRING MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_STRING) = 3U,
    TYPE_PRBOOL MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_PRBOOL) = 4U,
    TYPE_PRUINT8 MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_PRUINT8) = 5U,
    TYPE_PRUINT16 MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_PRUINT16) = 6U,
    TYPE_PRUINT32 MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_PRUINT32) = 7U,
    TYPE_PRUINT64 MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_PRUINT64) = 8U,
    TYPE_PRTIME MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_PRTIME) = 9U,
    TYPE_CHAR MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_CHAR) = 10U,
    TYPE_PRINT16 MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_PRINT16) = 11U,
    TYPE_PRINT32 MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_PRINT32) = 12U,
    TYPE_PRINT64 MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_PRINT64) = 13U,
    TYPE_FLOAT MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_FLOAT) = 14U,
    TYPE_DOUBLE MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_DOUBLE) = 15U,
    TYPE_INTERFACE_POINTER MOZ_BINDING(binding_to, idl, const, XPIDL_nsISupportsPrimitive_TYPE_INTERFACE_POINTER) = 17U
  };

  /* readonly attribute unsigned short type; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPrimitive_type)
  NS_IMETHOD GetType(uint16_t *aType) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSPRIMITIVE \
  NS_IMETHOD GetType(uint16_t *aType) 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_NSISUPPORTSPRIMITIVE \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPrimitive_type)\
  nsresult GetType(uint16_t *aType); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSPRIMITIVE(_to) \
  NS_IMETHOD GetType(uint16_t *aType) override { return _to GetType(aType); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSISUPPORTSPRIMITIVE(_to) \
  NS_IMETHOD GetType(uint16_t *aType) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } 


/* starting interface:    nsISupportsID */
#define NS_ISUPPORTSID_IID_STR "d18290a0-4a1c-11d3-9890-006008962422"

#define NS_ISUPPORTSID_IID \
  {0xd18290a0, 0x4a1c, 0x11d3, \
    { 0x98, 0x90, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsID) nsISupportsID : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSID_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsID;

  /* attribute nsIDPtr data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsID_data)
  NS_IMETHOD GetData(nsID * * aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsID_data)
  NS_IMETHOD SetData(const nsID * aData) = 0;

  /* string toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsID_toString)
  NS_IMETHOD ToString(char * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSID \
  NS_IMETHOD GetData(nsID * * aData) override; \
  NS_IMETHOD SetData(const nsID * aData) override; \
  NS_IMETHOD ToString(char * *_retval) 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_NSISUPPORTSID \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsID_data)\
  nsresult GetData(nsID * * aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsID_data)\
  nsresult SetData(const nsID * aData); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsID_toString)\
  nsresult ToString(char * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSID(_to) \
  NS_IMETHOD GetData(nsID * * aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(const nsID * aData) override { return _to SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return _to ToString(_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_NSISUPPORTSID(_to) \
  NS_IMETHOD GetData(nsID * * aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(const nsID * aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


/* starting interface:    nsISupportsCString */
#define NS_ISUPPORTSCSTRING_IID_STR "d65ff270-4a1c-11d3-9890-006008962422"

#define NS_ISUPPORTSCSTRING_IID \
  {0xd65ff270, 0x4a1c, 0x11d3, \
    { 0x98, 0x90, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsCString) nsISupportsCString : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSCSTRING_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsCString;

  /* attribute ACString data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsCString_data)
  NS_IMETHOD GetData(nsACString& aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsCString_data)
  NS_IMETHOD SetData(const nsACString& aData) = 0;

  /* string toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsCString_toString)
  NS_IMETHOD ToString(char * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSCSTRING \
  NS_IMETHOD GetData(nsACString& aData) override; \
  NS_IMETHOD SetData(const nsACString& aData) override; \
  NS_IMETHOD ToString(char * *_retval) 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_NSISUPPORTSCSTRING \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsCString_data)\
  nsresult GetData(nsACString& aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsCString_data)\
  nsresult SetData(const nsACString& aData); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsCString_toString)\
  nsresult ToString(char * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSCSTRING(_to) \
  NS_IMETHOD GetData(nsACString& aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(const nsACString& aData) override { return _to SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return _to ToString(_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_NSISUPPORTSCSTRING(_to) \
  NS_IMETHOD GetData(nsACString& aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(const nsACString& aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


/* starting interface:    nsISupportsString */
#define NS_ISUPPORTSSTRING_IID_STR "d79dc970-4a1c-11d3-9890-006008962422"

#define NS_ISUPPORTSSTRING_IID \
  {0xd79dc970, 0x4a1c, 0x11d3, \
    { 0x98, 0x90, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsString) nsISupportsString : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSSTRING_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsString;

  /* attribute AString data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsString_data)
  NS_IMETHOD GetData(nsAString& aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsString_data)
  NS_IMETHOD SetData(const nsAString& aData) = 0;

  /* wstring toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsString_toString)
  NS_IMETHOD ToString(char16_t * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSSTRING \
  NS_IMETHOD GetData(nsAString& aData) override; \
  NS_IMETHOD SetData(const nsAString& aData) override; \
  NS_IMETHOD ToString(char16_t * *_retval) 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_NSISUPPORTSSTRING \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsString_data)\
  nsresult GetData(nsAString& aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsString_data)\
  nsresult SetData(const nsAString& aData); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsString_toString)\
  nsresult ToString(char16_t * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSSTRING(_to) \
  NS_IMETHOD GetData(nsAString& aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(const nsAString& aData) override { return _to SetData(aData); } \
  NS_IMETHOD ToString(char16_t * *_retval) override { return _to ToString(_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_NSISUPPORTSSTRING(_to) \
  NS_IMETHOD GetData(nsAString& aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(const nsAString& aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD ToString(char16_t * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


/* starting interface:    nsISupportsPRBool */
#define NS_ISUPPORTSPRBOOL_IID_STR "ddc3b490-4a1c-11d3-9890-006008962422"

#define NS_ISUPPORTSPRBOOL_IID \
  {0xddc3b490, 0x4a1c, 0x11d3, \
    { 0x98, 0x90, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsPRBool) nsISupportsPRBool : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSPRBOOL_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsPRBool;

  /* attribute boolean data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRBool_data)
  NS_IMETHOD GetData(bool *aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRBool_data)
  NS_IMETHOD SetData(bool aData) = 0;

  /* string toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRBool_toString)
  NS_IMETHOD ToString(char * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSPRBOOL \
  NS_IMETHOD GetData(bool *aData) override; \
  NS_IMETHOD SetData(bool aData) override; \
  NS_IMETHOD ToString(char * *_retval) 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_NSISUPPORTSPRBOOL \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRBool_data)\
  nsresult GetData(bool *aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRBool_data)\
  nsresult SetData(bool aData); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRBool_toString)\
  nsresult ToString(char * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSPRBOOL(_to) \
  NS_IMETHOD GetData(bool *aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(bool aData) override { return _to SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return _to ToString(_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_NSISUPPORTSPRBOOL(_to) \
  NS_IMETHOD GetData(bool *aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(bool aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


/* starting interface:    nsISupportsPRUint8 */
#define NS_ISUPPORTSPRUINT8_IID_STR "dec2e4e0-4a1c-11d3-9890-006008962422"

#define NS_ISUPPORTSPRUINT8_IID \
  {0xdec2e4e0, 0x4a1c, 0x11d3, \
    { 0x98, 0x90, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsPRUint8) nsISupportsPRUint8 : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSPRUINT8_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsPRUint8;

  /* attribute uint8_t data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRUint8_data)
  NS_IMETHOD GetData(uint8_t *aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRUint8_data)
  NS_IMETHOD SetData(uint8_t aData) = 0;

  /* string toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRUint8_toString)
  NS_IMETHOD ToString(char * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSPRUINT8 \
  NS_IMETHOD GetData(uint8_t *aData) override; \
  NS_IMETHOD SetData(uint8_t aData) override; \
  NS_IMETHOD ToString(char * *_retval) 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_NSISUPPORTSPRUINT8 \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRUint8_data)\
  nsresult GetData(uint8_t *aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRUint8_data)\
  nsresult SetData(uint8_t aData); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRUint8_toString)\
  nsresult ToString(char * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSPRUINT8(_to) \
  NS_IMETHOD GetData(uint8_t *aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(uint8_t aData) override { return _to SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return _to ToString(_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_NSISUPPORTSPRUINT8(_to) \
  NS_IMETHOD GetData(uint8_t *aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(uint8_t aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


/* starting interface:    nsISupportsPRUint16 */
#define NS_ISUPPORTSPRUINT16_IID_STR "dfacb090-4a1c-11d3-9890-006008962422"

#define NS_ISUPPORTSPRUINT16_IID \
  {0xdfacb090, 0x4a1c, 0x11d3, \
    { 0x98, 0x90, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsPRUint16) nsISupportsPRUint16 : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSPRUINT16_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsPRUint16;

  /* attribute uint16_t data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRUint16_data)
  NS_IMETHOD GetData(uint16_t *aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRUint16_data)
  NS_IMETHOD SetData(uint16_t aData) = 0;

  /* string toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRUint16_toString)
  NS_IMETHOD ToString(char * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSPRUINT16 \
  NS_IMETHOD GetData(uint16_t *aData) override; \
  NS_IMETHOD SetData(uint16_t aData) override; \
  NS_IMETHOD ToString(char * *_retval) 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_NSISUPPORTSPRUINT16 \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRUint16_data)\
  nsresult GetData(uint16_t *aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRUint16_data)\
  nsresult SetData(uint16_t aData); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRUint16_toString)\
  nsresult ToString(char * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSPRUINT16(_to) \
  NS_IMETHOD GetData(uint16_t *aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(uint16_t aData) override { return _to SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return _to ToString(_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_NSISUPPORTSPRUINT16(_to) \
  NS_IMETHOD GetData(uint16_t *aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(uint16_t aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


/* starting interface:    nsISupportsPRUint32 */
#define NS_ISUPPORTSPRUINT32_IID_STR "e01dc470-4a1c-11d3-9890-006008962422"

#define NS_ISUPPORTSPRUINT32_IID \
  {0xe01dc470, 0x4a1c, 0x11d3, \
    { 0x98, 0x90, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsPRUint32) nsISupportsPRUint32 : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSPRUINT32_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsPRUint32;

  /* attribute uint32_t data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRUint32_data)
  NS_IMETHOD GetData(uint32_t *aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRUint32_data)
  NS_IMETHOD SetData(uint32_t aData) = 0;

  /* string toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRUint32_toString)
  NS_IMETHOD ToString(char * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSPRUINT32 \
  NS_IMETHOD GetData(uint32_t *aData) override; \
  NS_IMETHOD SetData(uint32_t aData) override; \
  NS_IMETHOD ToString(char * *_retval) 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_NSISUPPORTSPRUINT32 \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRUint32_data)\
  nsresult GetData(uint32_t *aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRUint32_data)\
  nsresult SetData(uint32_t aData); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRUint32_toString)\
  nsresult ToString(char * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSPRUINT32(_to) \
  NS_IMETHOD GetData(uint32_t *aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(uint32_t aData) override { return _to SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return _to ToString(_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_NSISUPPORTSPRUINT32(_to) \
  NS_IMETHOD GetData(uint32_t *aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(uint32_t aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


/* starting interface:    nsISupportsPRUint64 */
#define NS_ISUPPORTSPRUINT64_IID_STR "e13567c0-4a1c-11d3-9890-006008962422"

#define NS_ISUPPORTSPRUINT64_IID \
  {0xe13567c0, 0x4a1c, 0x11d3, \
    { 0x98, 0x90, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsPRUint64) nsISupportsPRUint64 : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSPRUINT64_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsPRUint64;

  /* attribute uint64_t data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRUint64_data)
  NS_IMETHOD GetData(uint64_t *aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRUint64_data)
  NS_IMETHOD SetData(uint64_t aData) = 0;

  /* string toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRUint64_toString)
  NS_IMETHOD ToString(char * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSPRUINT64 \
  NS_IMETHOD GetData(uint64_t *aData) override; \
  NS_IMETHOD SetData(uint64_t aData) override; \
  NS_IMETHOD ToString(char * *_retval) 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_NSISUPPORTSPRUINT64 \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRUint64_data)\
  nsresult GetData(uint64_t *aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRUint64_data)\
  nsresult SetData(uint64_t aData); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRUint64_toString)\
  nsresult ToString(char * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSPRUINT64(_to) \
  NS_IMETHOD GetData(uint64_t *aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(uint64_t aData) override { return _to SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return _to ToString(_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_NSISUPPORTSPRUINT64(_to) \
  NS_IMETHOD GetData(uint64_t *aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(uint64_t aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


/* starting interface:    nsISupportsPRTime */
#define NS_ISUPPORTSPRTIME_IID_STR "e2563630-4a1c-11d3-9890-006008962422"

#define NS_ISUPPORTSPRTIME_IID \
  {0xe2563630, 0x4a1c, 0x11d3, \
    { 0x98, 0x90, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsPRTime) nsISupportsPRTime : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSPRTIME_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsPRTime;

  /* attribute PRTime data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRTime_data)
  NS_IMETHOD GetData(PRTime *aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRTime_data)
  NS_IMETHOD SetData(PRTime aData) = 0;

  /* string toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRTime_toString)
  NS_IMETHOD ToString(char * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSPRTIME \
  NS_IMETHOD GetData(PRTime *aData) override; \
  NS_IMETHOD SetData(PRTime aData) override; \
  NS_IMETHOD ToString(char * *_retval) 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_NSISUPPORTSPRTIME \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRTime_data)\
  nsresult GetData(PRTime *aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRTime_data)\
  nsresult SetData(PRTime aData); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRTime_toString)\
  nsresult ToString(char * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSPRTIME(_to) \
  NS_IMETHOD GetData(PRTime *aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(PRTime aData) override { return _to SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return _to ToString(_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_NSISUPPORTSPRTIME(_to) \
  NS_IMETHOD GetData(PRTime *aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(PRTime aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


/* starting interface:    nsISupportsChar */
#define NS_ISUPPORTSCHAR_IID_STR "e2b05e40-4a1c-11d3-9890-006008962422"

#define NS_ISUPPORTSCHAR_IID \
  {0xe2b05e40, 0x4a1c, 0x11d3, \
    { 0x98, 0x90, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsChar) nsISupportsChar : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSCHAR_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsChar;

  /* attribute char data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsChar_data)
  NS_IMETHOD GetData(char *aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsChar_data)
  NS_IMETHOD SetData(char aData) = 0;

  /* string toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsChar_toString)
  NS_IMETHOD ToString(char * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSCHAR \
  NS_IMETHOD GetData(char *aData) override; \
  NS_IMETHOD SetData(char aData) override; \
  NS_IMETHOD ToString(char * *_retval) 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_NSISUPPORTSCHAR \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsChar_data)\
  nsresult GetData(char *aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsChar_data)\
  nsresult SetData(char aData); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsChar_toString)\
  nsresult ToString(char * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSCHAR(_to) \
  NS_IMETHOD GetData(char *aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(char aData) override { return _to SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return _to ToString(_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_NSISUPPORTSCHAR(_to) \
  NS_IMETHOD GetData(char *aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(char aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


/* starting interface:    nsISupportsPRInt16 */
#define NS_ISUPPORTSPRINT16_IID_STR "e30d94b0-4a1c-11d3-9890-006008962422"

#define NS_ISUPPORTSPRINT16_IID \
  {0xe30d94b0, 0x4a1c, 0x11d3, \
    { 0x98, 0x90, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsPRInt16) nsISupportsPRInt16 : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSPRINT16_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsPRInt16;

  /* attribute int16_t data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRInt16_data)
  NS_IMETHOD GetData(int16_t *aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRInt16_data)
  NS_IMETHOD SetData(int16_t aData) = 0;

  /* string toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRInt16_toString)
  NS_IMETHOD ToString(char * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSPRINT16 \
  NS_IMETHOD GetData(int16_t *aData) override; \
  NS_IMETHOD SetData(int16_t aData) override; \
  NS_IMETHOD ToString(char * *_retval) 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_NSISUPPORTSPRINT16 \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRInt16_data)\
  nsresult GetData(int16_t *aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRInt16_data)\
  nsresult SetData(int16_t aData); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRInt16_toString)\
  nsresult ToString(char * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSPRINT16(_to) \
  NS_IMETHOD GetData(int16_t *aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(int16_t aData) override { return _to SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return _to ToString(_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_NSISUPPORTSPRINT16(_to) \
  NS_IMETHOD GetData(int16_t *aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(int16_t aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


/* starting interface:    nsISupportsPRInt32 */
#define NS_ISUPPORTSPRINT32_IID_STR "e36c5250-4a1c-11d3-9890-006008962422"

#define NS_ISUPPORTSPRINT32_IID \
  {0xe36c5250, 0x4a1c, 0x11d3, \
    { 0x98, 0x90, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsPRInt32) nsISupportsPRInt32 : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSPRINT32_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsPRInt32;

  /* attribute int32_t data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRInt32_data)
  NS_IMETHOD GetData(int32_t *aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRInt32_data)
  NS_IMETHOD SetData(int32_t aData) = 0;

  /* string toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRInt32_toString)
  NS_IMETHOD ToString(char * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSPRINT32 \
  NS_IMETHOD GetData(int32_t *aData) override; \
  NS_IMETHOD SetData(int32_t aData) override; \
  NS_IMETHOD ToString(char * *_retval) 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_NSISUPPORTSPRINT32 \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRInt32_data)\
  nsresult GetData(int32_t *aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRInt32_data)\
  nsresult SetData(int32_t aData); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRInt32_toString)\
  nsresult ToString(char * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSPRINT32(_to) \
  NS_IMETHOD GetData(int32_t *aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(int32_t aData) override { return _to SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return _to ToString(_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_NSISUPPORTSPRINT32(_to) \
  NS_IMETHOD GetData(int32_t *aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(int32_t aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


/* starting interface:    nsISupportsPRInt64 */
#define NS_ISUPPORTSPRINT64_IID_STR "e3cb0ff0-4a1c-11d3-9890-006008962422"

#define NS_ISUPPORTSPRINT64_IID \
  {0xe3cb0ff0, 0x4a1c, 0x11d3, \
    { 0x98, 0x90, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsPRInt64) nsISupportsPRInt64 : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSPRINT64_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsPRInt64;

  /* attribute int64_t data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRInt64_data)
  NS_IMETHOD GetData(int64_t *aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRInt64_data)
  NS_IMETHOD SetData(int64_t aData) = 0;

  /* string toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRInt64_toString)
  NS_IMETHOD ToString(char * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSPRINT64 \
  NS_IMETHOD GetData(int64_t *aData) override; \
  NS_IMETHOD SetData(int64_t aData) override; \
  NS_IMETHOD ToString(char * *_retval) 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_NSISUPPORTSPRINT64 \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsPRInt64_data)\
  nsresult GetData(int64_t *aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsPRInt64_data)\
  nsresult SetData(int64_t aData); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsPRInt64_toString)\
  nsresult ToString(char * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSPRINT64(_to) \
  NS_IMETHOD GetData(int64_t *aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(int64_t aData) override { return _to SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return _to ToString(_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_NSISUPPORTSPRINT64(_to) \
  NS_IMETHOD GetData(int64_t *aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(int64_t aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


/* starting interface:    nsISupportsFloat */
#define NS_ISUPPORTSFLOAT_IID_STR "abeaa390-4ac0-11d3-baea-00805f8a5dd7"

#define NS_ISUPPORTSFLOAT_IID \
  {0xabeaa390, 0x4ac0, 0x11d3, \
    { 0xba, 0xea, 0x00, 0x80, 0x5f, 0x8a, 0x5d, 0xd7 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsFloat) nsISupportsFloat : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSFLOAT_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsFloat;

  /* attribute float data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsFloat_data)
  NS_IMETHOD GetData(float *aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsFloat_data)
  NS_IMETHOD SetData(float aData) = 0;

  /* string toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsFloat_toString)
  NS_IMETHOD ToString(char * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSFLOAT \
  NS_IMETHOD GetData(float *aData) override; \
  NS_IMETHOD SetData(float aData) override; \
  NS_IMETHOD ToString(char * *_retval) 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_NSISUPPORTSFLOAT \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsFloat_data)\
  nsresult GetData(float *aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsFloat_data)\
  nsresult SetData(float aData); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsFloat_toString)\
  nsresult ToString(char * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSFLOAT(_to) \
  NS_IMETHOD GetData(float *aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(float aData) override { return _to SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return _to ToString(_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_NSISUPPORTSFLOAT(_to) \
  NS_IMETHOD GetData(float *aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(float aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


/* starting interface:    nsISupportsDouble */
#define NS_ISUPPORTSDOUBLE_IID_STR "b32523a0-4ac0-11d3-baea-00805f8a5dd7"

#define NS_ISUPPORTSDOUBLE_IID \
  {0xb32523a0, 0x4ac0, 0x11d3, \
    { 0xba, 0xea, 0x00, 0x80, 0x5f, 0x8a, 0x5d, 0xd7 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsDouble) nsISupportsDouble : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSDOUBLE_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsDouble;

  /* attribute double data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsDouble_data)
  NS_IMETHOD GetData(double *aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsDouble_data)
  NS_IMETHOD SetData(double aData) = 0;

  /* string toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsDouble_toString)
  NS_IMETHOD ToString(char * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSDOUBLE \
  NS_IMETHOD GetData(double *aData) override; \
  NS_IMETHOD SetData(double aData) override; \
  NS_IMETHOD ToString(char * *_retval) 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_NSISUPPORTSDOUBLE \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsDouble_data)\
  nsresult GetData(double *aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsDouble_data)\
  nsresult SetData(double aData); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsDouble_toString)\
  nsresult ToString(char * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSDOUBLE(_to) \
  NS_IMETHOD GetData(double *aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(double aData) override { return _to SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return _to ToString(_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_NSISUPPORTSDOUBLE(_to) \
  NS_IMETHOD GetData(double *aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(double aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD ToString(char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


/* starting interface:    nsISupportsInterfacePointer */
#define NS_ISUPPORTSINTERFACEPOINTER_IID_STR "995ea724-1dd1-11b2-9211-c21bdd3e7ed0"

#define NS_ISUPPORTSINTERFACEPOINTER_IID \
  {0x995ea724, 0x1dd1, 0x11b2, \
    { 0x92, 0x11, 0xc2, 0x1b, 0xdd, 0x3e, 0x7e, 0xd0 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsISupportsInterfacePointer) nsISupportsInterfacePointer : public nsISupportsPrimitive {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISUPPORTSINTERFACEPOINTER_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsISupportsInterfacePointer;

  /* attribute nsISupports data; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsInterfacePointer_data)
  NS_IMETHOD GetData(nsISupports **aData) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsInterfacePointer_data)
  NS_IMETHOD SetData(nsISupports *aData) = 0;

  /* attribute nsIDPtr dataIID; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsInterfacePointer_dataIID)
  NS_IMETHOD GetDataIID(nsID * * aDataIID) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsInterfacePointer_dataIID)
  NS_IMETHOD SetDataIID(const nsID * aDataIID) = 0;

  /* string toString (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsInterfacePointer_toString)
  NS_IMETHOD ToString(char * *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISUPPORTSINTERFACEPOINTER \
  NS_IMETHOD GetData(nsISupports **aData) override; \
  NS_IMETHOD SetData(nsISupports *aData) override; \
  NS_IMETHOD GetDataIID(nsID * * aDataIID) override; \
  NS_IMETHOD SetDataIID(const nsID * aDataIID) override; \
  NS_IMETHOD ToString(char * *_retval) 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_NSISUPPORTSINTERFACEPOINTER \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsInterfacePointer_data)\
  nsresult GetData(nsISupports **aData); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsInterfacePointer_data)\
  nsresult SetData(nsISupports *aData); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsISupportsInterfacePointer_dataIID)\
  nsresult GetDataIID(nsID * * aDataIID); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsISupportsInterfacePointer_dataIID)\
  nsresult SetDataIID(const nsID * aDataIID); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsISupportsInterfacePointer_toString)\
  nsresult ToString(char * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISUPPORTSINTERFACEPOINTER(_to) \
  NS_IMETHOD GetData(nsISupports **aData) override { return _to GetData(aData); } \
  NS_IMETHOD SetData(nsISupports *aData) override { return _to SetData(aData); } \
  NS_IMETHOD GetDataIID(nsID * * aDataIID) override { return _to GetDataIID(aDataIID); } \
  NS_IMETHOD SetDataIID(const nsID * aDataIID) override { return _to SetDataIID(aDataIID); } \
  NS_IMETHOD ToString(char * *_retval) override { return _to ToString(_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_NSISUPPORTSINTERFACEPOINTER(_to) \
  NS_IMETHOD GetData(nsISupports **aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
  NS_IMETHOD SetData(nsISupports *aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetData(aData); } \
  NS_IMETHOD GetDataIID(nsID * * aDataIID) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDataIID(aDataIID); } \
  NS_IMETHOD SetDataIID(const nsID * aDataIID) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDataIID(aDataIID); } \
  NS_IMETHOD ToString(char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } 


#endif /* __gen_nsISupportsPrimitives_h__ */
