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

#ifndef __gen_calICalendarACLManager_h__
#define __gen_calICalendarACLManager_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 nsIMsgIdentity; /* forward declaration */

class nsIURI; /* forward declaration */

class calICalendar; /* forward declaration */

class calIItemBase; /* forward declaration */

class calIOperationListener; /* forward declaration */

class calIItemACLEntry; /* forward declaration */


/* starting interface:    calICalendarACLManager */
#define CALICALENDARACLMANAGER_IID_STR "a64bd8a0-e9f0-4f64-928a-1c98861e4703"

#define CALICALENDARACLMANAGER_IID \
  {0xa64bd8a0, 0xe9f0, 0x4f64, \
    { 0x92, 0x8a, 0x1c, 0x98, 0x86, 0x1e, 0x47, 0x03 }}

class NS_NO_VTABLE calICalendarACLManager : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(CALICALENDARACLMANAGER_IID)

  /* void getCalendarEntry (in calICalendar aCalendar, in calIOperationListener aListener); */
  NS_IMETHOD GetCalendarEntry(calICalendar *aCalendar, calIOperationListener *aListener) = 0;

  /* calIItemACLEntry getItemEntry (in calIItemBase aItem); */
  NS_IMETHOD GetItemEntry(calIItemBase *aItem, calIItemACLEntry * *_retval) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(calICalendarACLManager, CALICALENDARACLMANAGER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CALICALENDARACLMANAGER \
  NS_IMETHOD GetCalendarEntry(calICalendar *aCalendar, calIOperationListener *aListener) override; \
  NS_IMETHOD GetItemEntry(calIItemBase *aItem, calIItemACLEntry * *_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_CALICALENDARACLMANAGER \
  NS_METHOD GetCalendarEntry(calICalendar *aCalendar, calIOperationListener *aListener); \
  NS_METHOD GetItemEntry(calIItemBase *aItem, calIItemACLEntry * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CALICALENDARACLMANAGER(_to) \
  NS_IMETHOD GetCalendarEntry(calICalendar *aCalendar, calIOperationListener *aListener) override { return _to GetCalendarEntry(aCalendar, aListener); } \
  NS_IMETHOD GetItemEntry(calIItemBase *aItem, calIItemACLEntry * *_retval) override { return _to GetItemEntry(aItem, _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_CALICALENDARACLMANAGER(_to) \
  NS_IMETHOD GetCalendarEntry(calICalendar *aCalendar, calIOperationListener *aListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCalendarEntry(aCalendar, aListener); } \
  NS_IMETHOD GetItemEntry(calIItemBase *aItem, calIItemACLEntry * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetItemEntry(aItem, _retval); } 

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

/* Header file */
class _MYCLASS_ : public calICalendarACLManager
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CALICALENDARACLMANAGER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(_MYCLASS_, calICalendarACLManager)

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

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

/* void getCalendarEntry (in calICalendar aCalendar, in calIOperationListener aListener); */
NS_IMETHODIMP _MYCLASS_::GetCalendarEntry(calICalendar *aCalendar, calIOperationListener *aListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* calIItemACLEntry getItemEntry (in calIItemBase aItem); */
NS_IMETHODIMP _MYCLASS_::GetItemEntry(calIItemBase *aItem, calIItemACLEntry * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    calICalendarACLEntry */
#define CALICALENDARACLENTRY_IID_STR "f3da7954-52a4-45a9-bd7d-96c518133d0c"

#define CALICALENDARACLENTRY_IID \
  {0xf3da7954, 0x52a4, 0x45a9, \
    { 0xbd, 0x7d, 0x96, 0xc5, 0x18, 0x13, 0x3d, 0x0c }}

class NS_NO_VTABLE calICalendarACLEntry : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(CALICALENDARACLENTRY_IID)

  /* readonly attribute calICalendarACLManager aclManager; */
  NS_IMETHOD GetAclManager(calICalendarACLManager * *aAclManager) = 0;

  /* readonly attribute boolean hasAccessControl; */
  NS_IMETHOD GetHasAccessControl(bool *aHasAccessControl) = 0;

  /* readonly attribute boolean userIsOwner; */
  NS_IMETHOD GetUserIsOwner(bool *aUserIsOwner) = 0;

  /* readonly attribute boolean userCanAddItems; */
  NS_IMETHOD GetUserCanAddItems(bool *aUserCanAddItems) = 0;

  /* readonly attribute boolean userCanDeleteItems; */
  NS_IMETHOD GetUserCanDeleteItems(bool *aUserCanDeleteItems) = 0;

  /* void getUserAddresses (out uint32_t aCount, [array, size_is (aCount), retval] out wstring aAddresses); */
  NS_IMETHOD GetUserAddresses(uint32_t *aCount, char16_t * **aAddresses) = 0;

  /* void getUserIdentities (out uint32_t aCount, [array, size_is (aCount), retval] out nsIMsgIdentity aIdentities); */
  NS_IMETHOD GetUserIdentities(uint32_t *aCount, nsIMsgIdentity * **aIdentities) = 0;

  /* void getOwnerIdentities (out uint32_t aCount, [array, size_is (aCount), retval] out nsIMsgIdentity aIdentities); */
  NS_IMETHOD GetOwnerIdentities(uint32_t *aCount, nsIMsgIdentity * **aIdentities) = 0;

  /* void refresh (); */
  NS_IMETHOD Refresh(void) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(calICalendarACLEntry, CALICALENDARACLENTRY_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CALICALENDARACLENTRY \
  NS_IMETHOD GetAclManager(calICalendarACLManager * *aAclManager) override; \
  NS_IMETHOD GetHasAccessControl(bool *aHasAccessControl) override; \
  NS_IMETHOD GetUserIsOwner(bool *aUserIsOwner) override; \
  NS_IMETHOD GetUserCanAddItems(bool *aUserCanAddItems) override; \
  NS_IMETHOD GetUserCanDeleteItems(bool *aUserCanDeleteItems) override; \
  NS_IMETHOD GetUserAddresses(uint32_t *aCount, char16_t * **aAddresses) override; \
  NS_IMETHOD GetUserIdentities(uint32_t *aCount, nsIMsgIdentity * **aIdentities) override; \
  NS_IMETHOD GetOwnerIdentities(uint32_t *aCount, nsIMsgIdentity * **aIdentities) override; \
  NS_IMETHOD Refresh(void) 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_CALICALENDARACLENTRY \
  NS_METHOD GetAclManager(calICalendarACLManager * *aAclManager); \
  NS_METHOD GetHasAccessControl(bool *aHasAccessControl); \
  NS_METHOD GetUserIsOwner(bool *aUserIsOwner); \
  NS_METHOD GetUserCanAddItems(bool *aUserCanAddItems); \
  NS_METHOD GetUserCanDeleteItems(bool *aUserCanDeleteItems); \
  NS_METHOD GetUserAddresses(uint32_t *aCount, char16_t * **aAddresses); \
  NS_METHOD GetUserIdentities(uint32_t *aCount, nsIMsgIdentity * **aIdentities); \
  NS_METHOD GetOwnerIdentities(uint32_t *aCount, nsIMsgIdentity * **aIdentities); \
  NS_METHOD Refresh(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CALICALENDARACLENTRY(_to) \
  NS_IMETHOD GetAclManager(calICalendarACLManager * *aAclManager) override { return _to GetAclManager(aAclManager); } \
  NS_IMETHOD GetHasAccessControl(bool *aHasAccessControl) override { return _to GetHasAccessControl(aHasAccessControl); } \
  NS_IMETHOD GetUserIsOwner(bool *aUserIsOwner) override { return _to GetUserIsOwner(aUserIsOwner); } \
  NS_IMETHOD GetUserCanAddItems(bool *aUserCanAddItems) override { return _to GetUserCanAddItems(aUserCanAddItems); } \
  NS_IMETHOD GetUserCanDeleteItems(bool *aUserCanDeleteItems) override { return _to GetUserCanDeleteItems(aUserCanDeleteItems); } \
  NS_IMETHOD GetUserAddresses(uint32_t *aCount, char16_t * **aAddresses) override { return _to GetUserAddresses(aCount, aAddresses); } \
  NS_IMETHOD GetUserIdentities(uint32_t *aCount, nsIMsgIdentity * **aIdentities) override { return _to GetUserIdentities(aCount, aIdentities); } \
  NS_IMETHOD GetOwnerIdentities(uint32_t *aCount, nsIMsgIdentity * **aIdentities) override { return _to GetOwnerIdentities(aCount, aIdentities); } \
  NS_IMETHOD Refresh(void) override { return _to Refresh(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_CALICALENDARACLENTRY(_to) \
  NS_IMETHOD GetAclManager(calICalendarACLManager * *aAclManager) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAclManager(aAclManager); } \
  NS_IMETHOD GetHasAccessControl(bool *aHasAccessControl) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHasAccessControl(aHasAccessControl); } \
  NS_IMETHOD GetUserIsOwner(bool *aUserIsOwner) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserIsOwner(aUserIsOwner); } \
  NS_IMETHOD GetUserCanAddItems(bool *aUserCanAddItems) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserCanAddItems(aUserCanAddItems); } \
  NS_IMETHOD GetUserCanDeleteItems(bool *aUserCanDeleteItems) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserCanDeleteItems(aUserCanDeleteItems); } \
  NS_IMETHOD GetUserAddresses(uint32_t *aCount, char16_t * **aAddresses) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserAddresses(aCount, aAddresses); } \
  NS_IMETHOD GetUserIdentities(uint32_t *aCount, nsIMsgIdentity * **aIdentities) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserIdentities(aCount, aIdentities); } \
  NS_IMETHOD GetOwnerIdentities(uint32_t *aCount, nsIMsgIdentity * **aIdentities) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOwnerIdentities(aCount, aIdentities); } \
  NS_IMETHOD Refresh(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Refresh(); } 

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

/* Header file */
class _MYCLASS_ : public calICalendarACLEntry
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CALICALENDARACLENTRY

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(_MYCLASS_, calICalendarACLEntry)

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

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

/* readonly attribute calICalendarACLManager aclManager; */
NS_IMETHODIMP _MYCLASS_::GetAclManager(calICalendarACLManager * *aAclManager)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean hasAccessControl; */
NS_IMETHODIMP _MYCLASS_::GetHasAccessControl(bool *aHasAccessControl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean userIsOwner; */
NS_IMETHODIMP _MYCLASS_::GetUserIsOwner(bool *aUserIsOwner)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean userCanAddItems; */
NS_IMETHODIMP _MYCLASS_::GetUserCanAddItems(bool *aUserCanAddItems)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean userCanDeleteItems; */
NS_IMETHODIMP _MYCLASS_::GetUserCanDeleteItems(bool *aUserCanDeleteItems)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getUserAddresses (out uint32_t aCount, [array, size_is (aCount), retval] out wstring aAddresses); */
NS_IMETHODIMP _MYCLASS_::GetUserAddresses(uint32_t *aCount, char16_t * **aAddresses)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getUserIdentities (out uint32_t aCount, [array, size_is (aCount), retval] out nsIMsgIdentity aIdentities); */
NS_IMETHODIMP _MYCLASS_::GetUserIdentities(uint32_t *aCount, nsIMsgIdentity * **aIdentities)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getOwnerIdentities (out uint32_t aCount, [array, size_is (aCount), retval] out nsIMsgIdentity aIdentities); */
NS_IMETHODIMP _MYCLASS_::GetOwnerIdentities(uint32_t *aCount, nsIMsgIdentity * **aIdentities)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void refresh (); */
NS_IMETHODIMP _MYCLASS_::Refresh()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    calIItemACLEntry */
#define CALIITEMACLENTRY_IID_STR "4d0b7ced-8c57-4efa-87e7-8dd5b7481312"

#define CALIITEMACLENTRY_IID \
  {0x4d0b7ced, 0x8c57, 0x4efa, \
    { 0x87, 0xe7, 0x8d, 0xd5, 0xb7, 0x48, 0x13, 0x12 }}

class NS_NO_VTABLE calIItemACLEntry : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(CALIITEMACLENTRY_IID)

  /* readonly attribute calICalendarACLEntry calendarEntry; */
  NS_IMETHOD GetCalendarEntry(calICalendarACLEntry * *aCalendarEntry) = 0;

  /* readonly attribute boolean userCanModify; */
  NS_IMETHOD GetUserCanModify(bool *aUserCanModify) = 0;

  /* readonly attribute boolean userCanRespond; */
  NS_IMETHOD GetUserCanRespond(bool *aUserCanRespond) = 0;

  /* readonly attribute boolean userCanViewAll; */
  NS_IMETHOD GetUserCanViewAll(bool *aUserCanViewAll) = 0;

  /* readonly attribute boolean userCanViewDateAndTime; */
  NS_IMETHOD GetUserCanViewDateAndTime(bool *aUserCanViewDateAndTime) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(calIItemACLEntry, CALIITEMACLENTRY_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CALIITEMACLENTRY \
  NS_IMETHOD GetCalendarEntry(calICalendarACLEntry * *aCalendarEntry) override; \
  NS_IMETHOD GetUserCanModify(bool *aUserCanModify) override; \
  NS_IMETHOD GetUserCanRespond(bool *aUserCanRespond) override; \
  NS_IMETHOD GetUserCanViewAll(bool *aUserCanViewAll) override; \
  NS_IMETHOD GetUserCanViewDateAndTime(bool *aUserCanViewDateAndTime) 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_CALIITEMACLENTRY \
  NS_METHOD GetCalendarEntry(calICalendarACLEntry * *aCalendarEntry); \
  NS_METHOD GetUserCanModify(bool *aUserCanModify); \
  NS_METHOD GetUserCanRespond(bool *aUserCanRespond); \
  NS_METHOD GetUserCanViewAll(bool *aUserCanViewAll); \
  NS_METHOD GetUserCanViewDateAndTime(bool *aUserCanViewDateAndTime); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CALIITEMACLENTRY(_to) \
  NS_IMETHOD GetCalendarEntry(calICalendarACLEntry * *aCalendarEntry) override { return _to GetCalendarEntry(aCalendarEntry); } \
  NS_IMETHOD GetUserCanModify(bool *aUserCanModify) override { return _to GetUserCanModify(aUserCanModify); } \
  NS_IMETHOD GetUserCanRespond(bool *aUserCanRespond) override { return _to GetUserCanRespond(aUserCanRespond); } \
  NS_IMETHOD GetUserCanViewAll(bool *aUserCanViewAll) override { return _to GetUserCanViewAll(aUserCanViewAll); } \
  NS_IMETHOD GetUserCanViewDateAndTime(bool *aUserCanViewDateAndTime) override { return _to GetUserCanViewDateAndTime(aUserCanViewDateAndTime); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_CALIITEMACLENTRY(_to) \
  NS_IMETHOD GetCalendarEntry(calICalendarACLEntry * *aCalendarEntry) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCalendarEntry(aCalendarEntry); } \
  NS_IMETHOD GetUserCanModify(bool *aUserCanModify) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserCanModify(aUserCanModify); } \
  NS_IMETHOD GetUserCanRespond(bool *aUserCanRespond) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserCanRespond(aUserCanRespond); } \
  NS_IMETHOD GetUserCanViewAll(bool *aUserCanViewAll) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserCanViewAll(aUserCanViewAll); } \
  NS_IMETHOD GetUserCanViewDateAndTime(bool *aUserCanViewDateAndTime) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserCanViewDateAndTime(aUserCanViewDateAndTime); } 

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

/* Header file */
class _MYCLASS_ : public calIItemACLEntry
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CALIITEMACLENTRY

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(_MYCLASS_, calIItemACLEntry)

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

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

/* readonly attribute calICalendarACLEntry calendarEntry; */
NS_IMETHODIMP _MYCLASS_::GetCalendarEntry(calICalendarACLEntry * *aCalendarEntry)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean userCanModify; */
NS_IMETHODIMP _MYCLASS_::GetUserCanModify(bool *aUserCanModify)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean userCanRespond; */
NS_IMETHODIMP _MYCLASS_::GetUserCanRespond(bool *aUserCanRespond)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean userCanViewAll; */
NS_IMETHODIMP _MYCLASS_::GetUserCanViewAll(bool *aUserCanViewAll)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean userCanViewDateAndTime; */
NS_IMETHODIMP _MYCLASS_::GetUserCanViewDateAndTime(bool *aUserCanViewDateAndTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_calICalendarACLManager_h__ */
