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

#ifndef __gen_calIItemBase_h__
#define __gen_calIItemBase_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 nsISimpleEnumerator; /* forward declaration */

class nsIVariant; /* forward declaration */

class nsIPropertyBag; /* forward declaration */

class calICalendar; /* forward declaration */

class calIDateTime; /* forward declaration */

class calIDuration; /* forward declaration */

class calIRecurrenceInfo; /* forward declaration */

class calIAttendee; /* forward declaration */

class calIAttachment; /* forward declaration */

class calIIcalComponent; /* forward declaration */

class calIRelation; /* forward declaration */


/* starting interface:    calIItemBase */
#define CALIITEMBASE_IID_STR "c2a21f8c-9de6-47d5-912b-d1c423ea5f2e"

#define CALIITEMBASE_IID \
  {0xc2a21f8c, 0x9de6, 0x47d5, \
    { 0x91, 0x2b, 0xd1, 0xc4, 0x23, 0xea, 0x5f, 0x2e }}

class NS_NO_VTABLE calIItemBase : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CALIITEMBASE_IID)

  /* readonly attribute boolean isMutable; */
  NS_IMETHOD GetIsMutable(PRBool *aIsMutable) = 0;

  /* void makeImmutable (); */
  NS_IMETHOD MakeImmutable(void) = 0;

  /* calIItemBase clone (); */
  NS_IMETHOD Clone(calIItemBase **_retval) = 0;

  /**
   * Hash Id that incorporates the item's UID, RECURRENCE-ID and calendar.id
   * to be used for lookup of items that come from different calendars.
   * Setting either id, recurrenceId or the calendar attribute leads to
   * a recomputation of hashId.
   *
   * @attention Individual implementors of calIItemBase must stick to the
   *            same algorithm that base/src/calItemBase.js uses.
   */
  /* readonly attribute AUTF8String hashId; */
  NS_IMETHOD GetHashId(nsACString & aHashId) = 0;

  /**
   * Checks whether the argument object refers the same calendar item as
   * this one, by testing both the id and recurrenceId property.  This 
   *
   * @arg aItem     the item to compare against this one
   *
   * @return        true if both ids match, false otherwise
   */
  /* boolean hasSameIds (in calIItemBase aItem); */
  NS_IMETHOD HasSameIds(calIItemBase *aItem, PRBool *_retval) = 0;

  /* attribute PRUint32 generation; */
  NS_IMETHOD GetGeneration(PRUint32 *aGeneration) = 0;
  NS_IMETHOD SetGeneration(PRUint32 aGeneration) = 0;

  /* readonly attribute calIDateTime creationDate; */
  NS_IMETHOD GetCreationDate(calIDateTime * *aCreationDate) = 0;

  /* readonly attribute calIDateTime lastModifiedTime; */
  NS_IMETHOD GetLastModifiedTime(calIDateTime * *aLastModifiedTime) = 0;

  /* readonly attribute calIDateTime stampTime; */
  NS_IMETHOD GetStampTime(calIDateTime * *aStampTime) = 0;

  /* void updateStampTime (); */
  NS_IMETHOD UpdateStampTime(void) = 0;

  /* attribute calICalendar calendar; */
  NS_IMETHOD GetCalendar(calICalendar * *aCalendar) = 0;
  NS_IMETHOD SetCalendar(calICalendar * aCalendar) = 0;

  /* attribute AUTF8String id; */
  NS_IMETHOD GetId(nsACString & aId) = 0;
  NS_IMETHOD SetId(const nsACString & aId) = 0;

  /* attribute AUTF8String title; */
  NS_IMETHOD GetTitle(nsACString & aTitle) = 0;
  NS_IMETHOD SetTitle(const nsACString & aTitle) = 0;

  /* attribute short priority; */
  NS_IMETHOD GetPriority(PRInt16 *aPriority) = 0;
  NS_IMETHOD SetPriority(PRInt16 aPriority) = 0;

  /* attribute AUTF8String privacy; */
  NS_IMETHOD GetPrivacy(nsACString & aPrivacy) = 0;
  NS_IMETHOD SetPrivacy(const nsACString & aPrivacy) = 0;

  /* attribute AUTF8String status; */
  NS_IMETHOD GetStatus(nsACString & aStatus) = 0;
  NS_IMETHOD SetStatus(const nsACString & aStatus) = 0;

  /* attribute AUTF8String icalString; */
  NS_IMETHOD GetIcalString(nsACString & aIcalString) = 0;
  NS_IMETHOD SetIcalString(const nsACString & aIcalString) = 0;

  /* attribute calIIcalComponent icalComponent; */
  NS_IMETHOD GetIcalComponent(calIIcalComponent * *aIcalComponent) = 0;
  NS_IMETHOD SetIcalComponent(calIIcalComponent * aIcalComponent) = 0;

  /**
   * The amount of time from the date (specified by alarmRelated) to offset
   * the alarm's firing time by
   */
  /* attribute calIDuration alarmOffset; */
  NS_IMETHOD GetAlarmOffset(calIDuration * *aAlarmOffset) = 0;
  NS_IMETHOD SetAlarmOffset(calIDuration * aAlarmOffset) = 0;

  /**
   * One of the ALARM_RELATED constants below.  
   */
  /* attribute unsigned long alarmRelated; */
  NS_IMETHOD GetAlarmRelated(PRUint32 *aAlarmRelated) = 0;
  NS_IMETHOD SetAlarmRelated(PRUint32 aAlarmRelated) = 0;

  /**
   * Corresponds to an alarmOffset that should be based off of the startDate or
   * entryDate (for events and tasks, respectively)
   */
  enum { ALARM_RELATED_START = 0U };

  /**
   * Corresponds to an alarmOffset that should be based off of the endDate or
   * dueDate (for events and tasks, respectively)
   */
  enum { ALARM_RELATED_END = 1U };

  /* attribute calIDateTime alarmLastAck; */
  NS_IMETHOD GetAlarmLastAck(calIDateTime * *aAlarmLastAck) = 0;
  NS_IMETHOD SetAlarmLastAck(calIDateTime * aAlarmLastAck) = 0;

  /* attribute calIRecurrenceInfo recurrenceInfo; */
  NS_IMETHOD GetRecurrenceInfo(calIRecurrenceInfo * *aRecurrenceInfo) = 0;
  NS_IMETHOD SetRecurrenceInfo(calIRecurrenceInfo * aRecurrenceInfo) = 0;

  /* readonly attribute calIDateTime recurrenceStartDate; */
  NS_IMETHOD GetRecurrenceStartDate(calIDateTime * *aRecurrenceStartDate) = 0;

  /* readonly attribute nsISimpleEnumerator propertyEnumerator; */
  NS_IMETHOD GetPropertyEnumerator(nsISimpleEnumerator * *aPropertyEnumerator) = 0;

  /* boolean hasProperty (in AString name); */
  NS_IMETHOD HasProperty(const nsAString & name, PRBool *_retval) = 0;

  /* nsIVariant getProperty (in AString name); */
  NS_IMETHOD GetProperty(const nsAString & name, nsIVariant **_retval) = 0;

  /* void setProperty (in AString name, in nsIVariant value); */
  NS_IMETHOD SetProperty(const nsAString & name, nsIVariant *value) = 0;

  /* void deleteProperty (in AString name); */
  NS_IMETHOD DeleteProperty(const nsAString & name) = 0;

  /* boolean isPropertyPromoted (in AString name); */
  NS_IMETHOD IsPropertyPromoted(const nsAString & name, PRBool *_retval) = 0;

  /**
   * Returns a particular parameter value for a property, or null if the 
   * parameter does not exist.  If the property does not exist, throws.
   *
   * @param aPropertyName  the name of the property
   * @param aParameterName the name of the parameter on the property
   */
  /* AString getPropertyParameter (in AString aPropertyName, in AString aParameterName); */
  NS_IMETHOD GetPropertyParameter(const nsAString & aPropertyName, const nsAString & aParameterName, nsAString & _retval) = 0;

  /**
   * The organizer (originator) of the item.  We will likely not
   * honour or preserve all fields in the calIAttendee passed around here.
   * A base class like calIPerson might be more appropriate here, if we ever
   * grow one.
   */
  /* attribute calIAttendee organizer; */
  NS_IMETHOD GetOrganizer(calIAttendee * *aOrganizer) = 0;
  NS_IMETHOD SetOrganizer(calIAttendee * aOrganizer) = 0;

  /* void getAttendees (out PRUint32 count, [array, size_is (count), retval] out calIAttendee attendees); */
  NS_IMETHOD GetAttendees(PRUint32 *count, calIAttendee ***attendees) = 0;

  /**
   * getAttendeeById's matching is done in a case-insensitive manner to handle
   * places where "MAILTO:" or similar properties are capitalized arbitrarily
   * by different calendar clients.
   */
  /* calIAttendee getAttendeeById (in AUTF8String id); */
  NS_IMETHOD GetAttendeeById(const nsACString & id, calIAttendee **_retval) = 0;

  /* void removeAttendee (in calIAttendee attendee); */
  NS_IMETHOD RemoveAttendee(calIAttendee *attendee) = 0;

  /* void addAttendee (in calIAttendee attendee); */
  NS_IMETHOD AddAttendee(calIAttendee *attendee) = 0;

  /* void removeAllAttendees (); */
  NS_IMETHOD RemoveAllAttendees(void) = 0;

  /* void getAttachments (out PRUint32 count, [array, size_is (count), retval] out calIAttachment attachments); */
  NS_IMETHOD GetAttachments(PRUint32 *count, calIAttachment ***attachments) = 0;

  /* void removeAttachment (in calIAttachment attachment); */
  NS_IMETHOD RemoveAttachment(calIAttachment *attachment) = 0;

  /* void addAttachment (in calIAttachment attachment); */
  NS_IMETHOD AddAttachment(calIAttachment *attachment) = 0;

  /* void removeAllAttachments (); */
  NS_IMETHOD RemoveAllAttachments(void) = 0;

  /**
   * Gets the array of categories this item belongs to.
   */
  /* void getCategories (out PRUint32 aCount, [array, size_is (aCount), retval] out wstring aCategories); */
  NS_IMETHOD GetCategories(PRUint32 *aCount, PRUnichar ***aCategories) = 0;

  /**
   * Sets the array of categories this item belongs to.
   */
  /* void setCategories (in PRUint32 aCount, [array, size_is (aCount)] in wstring aCategories); */
  NS_IMETHOD SetCategories(PRUint32 aCount, const PRUnichar **aCategories) = 0;

  /**
   * This gives back every relation where the item is neighter the owner of the
   * relation nor the referred relation
   */
  /* void getRelations (out PRUint32 count, [array, size_is (count), retval] out calIRelation relations); */
  NS_IMETHOD GetRelations(PRUint32 *count, calIRelation ***relations) = 0;

  /**
   * Removes the relation for this item and the referred item
   */
  /* void removeRelation (in calIRelation relation); */
  NS_IMETHOD RemoveRelation(calIRelation *relation) = 0;

  /**
   * Removes every relation for this item (in this items and also where it is referred
   */
  /* void removeAllRelations (); */
  NS_IMETHOD RemoveAllRelations(void) = 0;

  /**
   * Adds a relation to the item
   */
  /* void addRelation (in calIRelation relation); */
  NS_IMETHOD AddRelation(calIRelation *relation) = 0;

  /**
   * Return a list of occurrences of this item between the given dates.  The items
   * returned are the same type as this one, as proxies.
   */
  /* void getOccurrencesBetween (in calIDateTime aStartDate, in calIDateTime aEndDate, out PRUint32 aCount, [array, size_is (aCount), retval] out calIItemBase aOccurrences); */
  NS_IMETHOD GetOccurrencesBetween(calIDateTime *aStartDate, calIDateTime *aEndDate, PRUint32 *aCount, calIItemBase ***aOccurrences) = 0;

  /**
   * If this item is a proxy or overridden item, parentItem will point upwards
   * to our parent.  Otherwise, it will point to this.
   * parentItem can thus always be used for modifyItem() calls
   * to providers.
   */
  /* attribute calIItemBase parentItem; */
  NS_IMETHOD GetParentItem(calIItemBase * *aParentItem) = 0;
  NS_IMETHOD SetParentItem(calIItemBase * aParentItem) = 0;

  /**
   * The recurrence ID, a.k.a. DTSTART-of-calculated-occurrence,
   * or null if this isn't an occurrence.
   * Be conservative about setting this. It isn't marked as such, but
   * consider it as readonly.
   */
  /* attribute calIDateTime recurrenceId; */
  NS_IMETHOD GetRecurrenceId(calIDateTime * *aRecurrenceId) = 0;
  NS_IMETHOD SetRecurrenceId(calIDateTime * aRecurrenceId) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CALIITEMBASE \
  NS_IMETHOD GetIsMutable(PRBool *aIsMutable); \
  NS_IMETHOD MakeImmutable(void); \
  NS_IMETHOD Clone(calIItemBase **_retval); \
  NS_IMETHOD GetHashId(nsACString & aHashId); \
  NS_IMETHOD HasSameIds(calIItemBase *aItem, PRBool *_retval); \
  NS_IMETHOD GetGeneration(PRUint32 *aGeneration); \
  NS_IMETHOD SetGeneration(PRUint32 aGeneration); \
  NS_IMETHOD GetCreationDate(calIDateTime * *aCreationDate); \
  NS_IMETHOD GetLastModifiedTime(calIDateTime * *aLastModifiedTime); \
  NS_IMETHOD GetStampTime(calIDateTime * *aStampTime); \
  NS_IMETHOD UpdateStampTime(void); \
  NS_IMETHOD GetCalendar(calICalendar * *aCalendar); \
  NS_IMETHOD SetCalendar(calICalendar * aCalendar); \
  NS_IMETHOD GetId(nsACString & aId); \
  NS_IMETHOD SetId(const nsACString & aId); \
  NS_IMETHOD GetTitle(nsACString & aTitle); \
  NS_IMETHOD SetTitle(const nsACString & aTitle); \
  NS_IMETHOD GetPriority(PRInt16 *aPriority); \
  NS_IMETHOD SetPriority(PRInt16 aPriority); \
  NS_IMETHOD GetPrivacy(nsACString & aPrivacy); \
  NS_IMETHOD SetPrivacy(const nsACString & aPrivacy); \
  NS_IMETHOD GetStatus(nsACString & aStatus); \
  NS_IMETHOD SetStatus(const nsACString & aStatus); \
  NS_IMETHOD GetIcalString(nsACString & aIcalString); \
  NS_IMETHOD SetIcalString(const nsACString & aIcalString); \
  NS_IMETHOD GetIcalComponent(calIIcalComponent * *aIcalComponent); \
  NS_IMETHOD SetIcalComponent(calIIcalComponent * aIcalComponent); \
  NS_IMETHOD GetAlarmOffset(calIDuration * *aAlarmOffset); \
  NS_IMETHOD SetAlarmOffset(calIDuration * aAlarmOffset); \
  NS_IMETHOD GetAlarmRelated(PRUint32 *aAlarmRelated); \
  NS_IMETHOD SetAlarmRelated(PRUint32 aAlarmRelated); \
  NS_IMETHOD GetAlarmLastAck(calIDateTime * *aAlarmLastAck); \
  NS_IMETHOD SetAlarmLastAck(calIDateTime * aAlarmLastAck); \
  NS_IMETHOD GetRecurrenceInfo(calIRecurrenceInfo * *aRecurrenceInfo); \
  NS_IMETHOD SetRecurrenceInfo(calIRecurrenceInfo * aRecurrenceInfo); \
  NS_IMETHOD GetRecurrenceStartDate(calIDateTime * *aRecurrenceStartDate); \
  NS_IMETHOD GetPropertyEnumerator(nsISimpleEnumerator * *aPropertyEnumerator); \
  NS_IMETHOD HasProperty(const nsAString & name, PRBool *_retval); \
  NS_IMETHOD GetProperty(const nsAString & name, nsIVariant **_retval); \
  NS_IMETHOD SetProperty(const nsAString & name, nsIVariant *value); \
  NS_IMETHOD DeleteProperty(const nsAString & name); \
  NS_IMETHOD IsPropertyPromoted(const nsAString & name, PRBool *_retval); \
  NS_IMETHOD GetPropertyParameter(const nsAString & aPropertyName, const nsAString & aParameterName, nsAString & _retval); \
  NS_IMETHOD GetOrganizer(calIAttendee * *aOrganizer); \
  NS_IMETHOD SetOrganizer(calIAttendee * aOrganizer); \
  NS_IMETHOD GetAttendees(PRUint32 *count, calIAttendee ***attendees); \
  NS_IMETHOD GetAttendeeById(const nsACString & id, calIAttendee **_retval); \
  NS_IMETHOD RemoveAttendee(calIAttendee *attendee); \
  NS_IMETHOD AddAttendee(calIAttendee *attendee); \
  NS_IMETHOD RemoveAllAttendees(void); \
  NS_IMETHOD GetAttachments(PRUint32 *count, calIAttachment ***attachments); \
  NS_IMETHOD RemoveAttachment(calIAttachment *attachment); \
  NS_IMETHOD AddAttachment(calIAttachment *attachment); \
  NS_IMETHOD RemoveAllAttachments(void); \
  NS_IMETHOD GetCategories(PRUint32 *aCount, PRUnichar ***aCategories); \
  NS_IMETHOD SetCategories(PRUint32 aCount, const PRUnichar **aCategories); \
  NS_IMETHOD GetRelations(PRUint32 *count, calIRelation ***relations); \
  NS_IMETHOD RemoveRelation(calIRelation *relation); \
  NS_IMETHOD RemoveAllRelations(void); \
  NS_IMETHOD AddRelation(calIRelation *relation); \
  NS_IMETHOD GetOccurrencesBetween(calIDateTime *aStartDate, calIDateTime *aEndDate, PRUint32 *aCount, calIItemBase ***aOccurrences); \
  NS_IMETHOD GetParentItem(calIItemBase * *aParentItem); \
  NS_IMETHOD SetParentItem(calIItemBase * aParentItem); \
  NS_IMETHOD GetRecurrenceId(calIDateTime * *aRecurrenceId); \
  NS_IMETHOD SetRecurrenceId(calIDateTime * aRecurrenceId); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CALIITEMBASE(_to) \
  NS_IMETHOD GetIsMutable(PRBool *aIsMutable) { return _to GetIsMutable(aIsMutable); } \
  NS_IMETHOD MakeImmutable(void) { return _to MakeImmutable(); } \
  NS_IMETHOD Clone(calIItemBase **_retval) { return _to Clone(_retval); } \
  NS_IMETHOD GetHashId(nsACString & aHashId) { return _to GetHashId(aHashId); } \
  NS_IMETHOD HasSameIds(calIItemBase *aItem, PRBool *_retval) { return _to HasSameIds(aItem, _retval); } \
  NS_IMETHOD GetGeneration(PRUint32 *aGeneration) { return _to GetGeneration(aGeneration); } \
  NS_IMETHOD SetGeneration(PRUint32 aGeneration) { return _to SetGeneration(aGeneration); } \
  NS_IMETHOD GetCreationDate(calIDateTime * *aCreationDate) { return _to GetCreationDate(aCreationDate); } \
  NS_IMETHOD GetLastModifiedTime(calIDateTime * *aLastModifiedTime) { return _to GetLastModifiedTime(aLastModifiedTime); } \
  NS_IMETHOD GetStampTime(calIDateTime * *aStampTime) { return _to GetStampTime(aStampTime); } \
  NS_IMETHOD UpdateStampTime(void) { return _to UpdateStampTime(); } \
  NS_IMETHOD GetCalendar(calICalendar * *aCalendar) { return _to GetCalendar(aCalendar); } \
  NS_IMETHOD SetCalendar(calICalendar * aCalendar) { return _to SetCalendar(aCalendar); } \
  NS_IMETHOD GetId(nsACString & aId) { return _to GetId(aId); } \
  NS_IMETHOD SetId(const nsACString & aId) { return _to SetId(aId); } \
  NS_IMETHOD GetTitle(nsACString & aTitle) { return _to GetTitle(aTitle); } \
  NS_IMETHOD SetTitle(const nsACString & aTitle) { return _to SetTitle(aTitle); } \
  NS_IMETHOD GetPriority(PRInt16 *aPriority) { return _to GetPriority(aPriority); } \
  NS_IMETHOD SetPriority(PRInt16 aPriority) { return _to SetPriority(aPriority); } \
  NS_IMETHOD GetPrivacy(nsACString & aPrivacy) { return _to GetPrivacy(aPrivacy); } \
  NS_IMETHOD SetPrivacy(const nsACString & aPrivacy) { return _to SetPrivacy(aPrivacy); } \
  NS_IMETHOD GetStatus(nsACString & aStatus) { return _to GetStatus(aStatus); } \
  NS_IMETHOD SetStatus(const nsACString & aStatus) { return _to SetStatus(aStatus); } \
  NS_IMETHOD GetIcalString(nsACString & aIcalString) { return _to GetIcalString(aIcalString); } \
  NS_IMETHOD SetIcalString(const nsACString & aIcalString) { return _to SetIcalString(aIcalString); } \
  NS_IMETHOD GetIcalComponent(calIIcalComponent * *aIcalComponent) { return _to GetIcalComponent(aIcalComponent); } \
  NS_IMETHOD SetIcalComponent(calIIcalComponent * aIcalComponent) { return _to SetIcalComponent(aIcalComponent); } \
  NS_IMETHOD GetAlarmOffset(calIDuration * *aAlarmOffset) { return _to GetAlarmOffset(aAlarmOffset); } \
  NS_IMETHOD SetAlarmOffset(calIDuration * aAlarmOffset) { return _to SetAlarmOffset(aAlarmOffset); } \
  NS_IMETHOD GetAlarmRelated(PRUint32 *aAlarmRelated) { return _to GetAlarmRelated(aAlarmRelated); } \
  NS_IMETHOD SetAlarmRelated(PRUint32 aAlarmRelated) { return _to SetAlarmRelated(aAlarmRelated); } \
  NS_IMETHOD GetAlarmLastAck(calIDateTime * *aAlarmLastAck) { return _to GetAlarmLastAck(aAlarmLastAck); } \
  NS_IMETHOD SetAlarmLastAck(calIDateTime * aAlarmLastAck) { return _to SetAlarmLastAck(aAlarmLastAck); } \
  NS_IMETHOD GetRecurrenceInfo(calIRecurrenceInfo * *aRecurrenceInfo) { return _to GetRecurrenceInfo(aRecurrenceInfo); } \
  NS_IMETHOD SetRecurrenceInfo(calIRecurrenceInfo * aRecurrenceInfo) { return _to SetRecurrenceInfo(aRecurrenceInfo); } \
  NS_IMETHOD GetRecurrenceStartDate(calIDateTime * *aRecurrenceStartDate) { return _to GetRecurrenceStartDate(aRecurrenceStartDate); } \
  NS_IMETHOD GetPropertyEnumerator(nsISimpleEnumerator * *aPropertyEnumerator) { return _to GetPropertyEnumerator(aPropertyEnumerator); } \
  NS_IMETHOD HasProperty(const nsAString & name, PRBool *_retval) { return _to HasProperty(name, _retval); } \
  NS_IMETHOD GetProperty(const nsAString & name, nsIVariant **_retval) { return _to GetProperty(name, _retval); } \
  NS_IMETHOD SetProperty(const nsAString & name, nsIVariant *value) { return _to SetProperty(name, value); } \
  NS_IMETHOD DeleteProperty(const nsAString & name) { return _to DeleteProperty(name); } \
  NS_IMETHOD IsPropertyPromoted(const nsAString & name, PRBool *_retval) { return _to IsPropertyPromoted(name, _retval); } \
  NS_IMETHOD GetPropertyParameter(const nsAString & aPropertyName, const nsAString & aParameterName, nsAString & _retval) { return _to GetPropertyParameter(aPropertyName, aParameterName, _retval); } \
  NS_IMETHOD GetOrganizer(calIAttendee * *aOrganizer) { return _to GetOrganizer(aOrganizer); } \
  NS_IMETHOD SetOrganizer(calIAttendee * aOrganizer) { return _to SetOrganizer(aOrganizer); } \
  NS_IMETHOD GetAttendees(PRUint32 *count, calIAttendee ***attendees) { return _to GetAttendees(count, attendees); } \
  NS_IMETHOD GetAttendeeById(const nsACString & id, calIAttendee **_retval) { return _to GetAttendeeById(id, _retval); } \
  NS_IMETHOD RemoveAttendee(calIAttendee *attendee) { return _to RemoveAttendee(attendee); } \
  NS_IMETHOD AddAttendee(calIAttendee *attendee) { return _to AddAttendee(attendee); } \
  NS_IMETHOD RemoveAllAttendees(void) { return _to RemoveAllAttendees(); } \
  NS_IMETHOD GetAttachments(PRUint32 *count, calIAttachment ***attachments) { return _to GetAttachments(count, attachments); } \
  NS_IMETHOD RemoveAttachment(calIAttachment *attachment) { return _to RemoveAttachment(attachment); } \
  NS_IMETHOD AddAttachment(calIAttachment *attachment) { return _to AddAttachment(attachment); } \
  NS_IMETHOD RemoveAllAttachments(void) { return _to RemoveAllAttachments(); } \
  NS_IMETHOD GetCategories(PRUint32 *aCount, PRUnichar ***aCategories) { return _to GetCategories(aCount, aCategories); } \
  NS_IMETHOD SetCategories(PRUint32 aCount, const PRUnichar **aCategories) { return _to SetCategories(aCount, aCategories); } \
  NS_IMETHOD GetRelations(PRUint32 *count, calIRelation ***relations) { return _to GetRelations(count, relations); } \
  NS_IMETHOD RemoveRelation(calIRelation *relation) { return _to RemoveRelation(relation); } \
  NS_IMETHOD RemoveAllRelations(void) { return _to RemoveAllRelations(); } \
  NS_IMETHOD AddRelation(calIRelation *relation) { return _to AddRelation(relation); } \
  NS_IMETHOD GetOccurrencesBetween(calIDateTime *aStartDate, calIDateTime *aEndDate, PRUint32 *aCount, calIItemBase ***aOccurrences) { return _to GetOccurrencesBetween(aStartDate, aEndDate, aCount, aOccurrences); } \
  NS_IMETHOD GetParentItem(calIItemBase * *aParentItem) { return _to GetParentItem(aParentItem); } \
  NS_IMETHOD SetParentItem(calIItemBase * aParentItem) { return _to SetParentItem(aParentItem); } \
  NS_IMETHOD GetRecurrenceId(calIDateTime * *aRecurrenceId) { return _to GetRecurrenceId(aRecurrenceId); } \
  NS_IMETHOD SetRecurrenceId(calIDateTime * aRecurrenceId) { return _to SetRecurrenceId(aRecurrenceId); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_CALIITEMBASE(_to) \
  NS_IMETHOD GetIsMutable(PRBool *aIsMutable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsMutable(aIsMutable); } \
  NS_IMETHOD MakeImmutable(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->MakeImmutable(); } \
  NS_IMETHOD Clone(calIItemBase **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Clone(_retval); } \
  NS_IMETHOD GetHashId(nsACString & aHashId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHashId(aHashId); } \
  NS_IMETHOD HasSameIds(calIItemBase *aItem, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->HasSameIds(aItem, _retval); } \
  NS_IMETHOD GetGeneration(PRUint32 *aGeneration) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGeneration(aGeneration); } \
  NS_IMETHOD SetGeneration(PRUint32 aGeneration) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetGeneration(aGeneration); } \
  NS_IMETHOD GetCreationDate(calIDateTime * *aCreationDate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCreationDate(aCreationDate); } \
  NS_IMETHOD GetLastModifiedTime(calIDateTime * *aLastModifiedTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastModifiedTime(aLastModifiedTime); } \
  NS_IMETHOD GetStampTime(calIDateTime * *aStampTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStampTime(aStampTime); } \
  NS_IMETHOD UpdateStampTime(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->UpdateStampTime(); } \
  NS_IMETHOD GetCalendar(calICalendar * *aCalendar) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCalendar(aCalendar); } \
  NS_IMETHOD SetCalendar(calICalendar * aCalendar) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCalendar(aCalendar); } \
  NS_IMETHOD GetId(nsACString & aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD SetId(const nsACString & aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetId(aId); } \
  NS_IMETHOD GetTitle(nsACString & aTitle) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTitle(aTitle); } \
  NS_IMETHOD SetTitle(const nsACString & aTitle) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTitle(aTitle); } \
  NS_IMETHOD GetPriority(PRInt16 *aPriority) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPriority(aPriority); } \
  NS_IMETHOD SetPriority(PRInt16 aPriority) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPriority(aPriority); } \
  NS_IMETHOD GetPrivacy(nsACString & aPrivacy) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPrivacy(aPrivacy); } \
  NS_IMETHOD SetPrivacy(const nsACString & aPrivacy) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPrivacy(aPrivacy); } \
  NS_IMETHOD GetStatus(nsACString & aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD SetStatus(const nsACString & aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStatus(aStatus); } \
  NS_IMETHOD GetIcalString(nsACString & aIcalString) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIcalString(aIcalString); } \
  NS_IMETHOD SetIcalString(const nsACString & aIcalString) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIcalString(aIcalString); } \
  NS_IMETHOD GetIcalComponent(calIIcalComponent * *aIcalComponent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIcalComponent(aIcalComponent); } \
  NS_IMETHOD SetIcalComponent(calIIcalComponent * aIcalComponent) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIcalComponent(aIcalComponent); } \
  NS_IMETHOD GetAlarmOffset(calIDuration * *aAlarmOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAlarmOffset(aAlarmOffset); } \
  NS_IMETHOD SetAlarmOffset(calIDuration * aAlarmOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAlarmOffset(aAlarmOffset); } \
  NS_IMETHOD GetAlarmRelated(PRUint32 *aAlarmRelated) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAlarmRelated(aAlarmRelated); } \
  NS_IMETHOD SetAlarmRelated(PRUint32 aAlarmRelated) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAlarmRelated(aAlarmRelated); } \
  NS_IMETHOD GetAlarmLastAck(calIDateTime * *aAlarmLastAck) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAlarmLastAck(aAlarmLastAck); } \
  NS_IMETHOD SetAlarmLastAck(calIDateTime * aAlarmLastAck) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAlarmLastAck(aAlarmLastAck); } \
  NS_IMETHOD GetRecurrenceInfo(calIRecurrenceInfo * *aRecurrenceInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecurrenceInfo(aRecurrenceInfo); } \
  NS_IMETHOD SetRecurrenceInfo(calIRecurrenceInfo * aRecurrenceInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRecurrenceInfo(aRecurrenceInfo); } \
  NS_IMETHOD GetRecurrenceStartDate(calIDateTime * *aRecurrenceStartDate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecurrenceStartDate(aRecurrenceStartDate); } \
  NS_IMETHOD GetPropertyEnumerator(nsISimpleEnumerator * *aPropertyEnumerator) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPropertyEnumerator(aPropertyEnumerator); } \
  NS_IMETHOD HasProperty(const nsAString & name, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->HasProperty(name, _retval); } \
  NS_IMETHOD GetProperty(const nsAString & name, nsIVariant **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProperty(name, _retval); } \
  NS_IMETHOD SetProperty(const nsAString & name, nsIVariant *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProperty(name, value); } \
  NS_IMETHOD DeleteProperty(const nsAString & name) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteProperty(name); } \
  NS_IMETHOD IsPropertyPromoted(const nsAString & name, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsPropertyPromoted(name, _retval); } \
  NS_IMETHOD GetPropertyParameter(const nsAString & aPropertyName, const nsAString & aParameterName, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPropertyParameter(aPropertyName, aParameterName, _retval); } \
  NS_IMETHOD GetOrganizer(calIAttendee * *aOrganizer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOrganizer(aOrganizer); } \
  NS_IMETHOD SetOrganizer(calIAttendee * aOrganizer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOrganizer(aOrganizer); } \
  NS_IMETHOD GetAttendees(PRUint32 *count, calIAttendee ***attendees) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttendees(count, attendees); } \
  NS_IMETHOD GetAttendeeById(const nsACString & id, calIAttendee **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttendeeById(id, _retval); } \
  NS_IMETHOD RemoveAttendee(calIAttendee *attendee) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAttendee(attendee); } \
  NS_IMETHOD AddAttendee(calIAttendee *attendee) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddAttendee(attendee); } \
  NS_IMETHOD RemoveAllAttendees(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAllAttendees(); } \
  NS_IMETHOD GetAttachments(PRUint32 *count, calIAttachment ***attachments) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttachments(count, attachments); } \
  NS_IMETHOD RemoveAttachment(calIAttachment *attachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAttachment(attachment); } \
  NS_IMETHOD AddAttachment(calIAttachment *attachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddAttachment(attachment); } \
  NS_IMETHOD RemoveAllAttachments(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAllAttachments(); } \
  NS_IMETHOD GetCategories(PRUint32 *aCount, PRUnichar ***aCategories) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCategories(aCount, aCategories); } \
  NS_IMETHOD SetCategories(PRUint32 aCount, const PRUnichar **aCategories) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCategories(aCount, aCategories); } \
  NS_IMETHOD GetRelations(PRUint32 *count, calIRelation ***relations) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRelations(count, relations); } \
  NS_IMETHOD RemoveRelation(calIRelation *relation) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveRelation(relation); } \
  NS_IMETHOD RemoveAllRelations(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAllRelations(); } \
  NS_IMETHOD AddRelation(calIRelation *relation) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddRelation(relation); } \
  NS_IMETHOD GetOccurrencesBetween(calIDateTime *aStartDate, calIDateTime *aEndDate, PRUint32 *aCount, calIItemBase ***aOccurrences) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOccurrencesBetween(aStartDate, aEndDate, aCount, aOccurrences); } \
  NS_IMETHOD GetParentItem(calIItemBase * *aParentItem) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParentItem(aParentItem); } \
  NS_IMETHOD SetParentItem(calIItemBase * aParentItem) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetParentItem(aParentItem); } \
  NS_IMETHOD GetRecurrenceId(calIDateTime * *aRecurrenceId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecurrenceId(aRecurrenceId); } \
  NS_IMETHOD SetRecurrenceId(calIDateTime * aRecurrenceId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRecurrenceId(aRecurrenceId); } 

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

/* Header file */
class _MYCLASS_ : public calIItemBase
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CALIITEMBASE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* readonly attribute boolean isMutable; */
NS_IMETHODIMP _MYCLASS_::GetIsMutable(PRBool *aIsMutable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void makeImmutable (); */
NS_IMETHODIMP _MYCLASS_::MakeImmutable()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* calIItemBase clone (); */
NS_IMETHODIMP _MYCLASS_::Clone(calIItemBase **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AUTF8String hashId; */
NS_IMETHODIMP _MYCLASS_::GetHashId(nsACString & aHashId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean hasSameIds (in calIItemBase aItem); */
NS_IMETHODIMP _MYCLASS_::HasSameIds(calIItemBase *aItem, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 generation; */
NS_IMETHODIMP _MYCLASS_::GetGeneration(PRUint32 *aGeneration)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetGeneration(PRUint32 aGeneration)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute calIDateTime creationDate; */
NS_IMETHODIMP _MYCLASS_::GetCreationDate(calIDateTime * *aCreationDate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute calIDateTime lastModifiedTime; */
NS_IMETHODIMP _MYCLASS_::GetLastModifiedTime(calIDateTime * *aLastModifiedTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute calIDateTime stampTime; */
NS_IMETHODIMP _MYCLASS_::GetStampTime(calIDateTime * *aStampTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void updateStampTime (); */
NS_IMETHODIMP _MYCLASS_::UpdateStampTime()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute calICalendar calendar; */
NS_IMETHODIMP _MYCLASS_::GetCalendar(calICalendar * *aCalendar)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetCalendar(calICalendar * aCalendar)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String id; */
NS_IMETHODIMP _MYCLASS_::GetId(nsACString & aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetId(const nsACString & aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String title; */
NS_IMETHODIMP _MYCLASS_::GetTitle(nsACString & aTitle)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTitle(const nsACString & aTitle)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute short priority; */
NS_IMETHODIMP _MYCLASS_::GetPriority(PRInt16 *aPriority)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetPriority(PRInt16 aPriority)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String privacy; */
NS_IMETHODIMP _MYCLASS_::GetPrivacy(nsACString & aPrivacy)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetPrivacy(const nsACString & aPrivacy)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String status; */
NS_IMETHODIMP _MYCLASS_::GetStatus(nsACString & aStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetStatus(const nsACString & aStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String icalString; */
NS_IMETHODIMP _MYCLASS_::GetIcalString(nsACString & aIcalString)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIcalString(const nsACString & aIcalString)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute calIIcalComponent icalComponent; */
NS_IMETHODIMP _MYCLASS_::GetIcalComponent(calIIcalComponent * *aIcalComponent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIcalComponent(calIIcalComponent * aIcalComponent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute calIDuration alarmOffset; */
NS_IMETHODIMP _MYCLASS_::GetAlarmOffset(calIDuration * *aAlarmOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAlarmOffset(calIDuration * aAlarmOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long alarmRelated; */
NS_IMETHODIMP _MYCLASS_::GetAlarmRelated(PRUint32 *aAlarmRelated)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAlarmRelated(PRUint32 aAlarmRelated)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute calIDateTime alarmLastAck; */
NS_IMETHODIMP _MYCLASS_::GetAlarmLastAck(calIDateTime * *aAlarmLastAck)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAlarmLastAck(calIDateTime * aAlarmLastAck)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute calIRecurrenceInfo recurrenceInfo; */
NS_IMETHODIMP _MYCLASS_::GetRecurrenceInfo(calIRecurrenceInfo * *aRecurrenceInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetRecurrenceInfo(calIRecurrenceInfo * aRecurrenceInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute calIDateTime recurrenceStartDate; */
NS_IMETHODIMP _MYCLASS_::GetRecurrenceStartDate(calIDateTime * *aRecurrenceStartDate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsISimpleEnumerator propertyEnumerator; */
NS_IMETHODIMP _MYCLASS_::GetPropertyEnumerator(nsISimpleEnumerator * *aPropertyEnumerator)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean hasProperty (in AString name); */
NS_IMETHODIMP _MYCLASS_::HasProperty(const nsAString & name, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIVariant getProperty (in AString name); */
NS_IMETHODIMP _MYCLASS_::GetProperty(const nsAString & name, nsIVariant **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setProperty (in AString name, in nsIVariant value); */
NS_IMETHODIMP _MYCLASS_::SetProperty(const nsAString & name, nsIVariant *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteProperty (in AString name); */
NS_IMETHODIMP _MYCLASS_::DeleteProperty(const nsAString & name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean isPropertyPromoted (in AString name); */
NS_IMETHODIMP _MYCLASS_::IsPropertyPromoted(const nsAString & name, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getPropertyParameter (in AString aPropertyName, in AString aParameterName); */
NS_IMETHODIMP _MYCLASS_::GetPropertyParameter(const nsAString & aPropertyName, const nsAString & aParameterName, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute calIAttendee organizer; */
NS_IMETHODIMP _MYCLASS_::GetOrganizer(calIAttendee * *aOrganizer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetOrganizer(calIAttendee * aOrganizer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getAttendees (out PRUint32 count, [array, size_is (count), retval] out calIAttendee attendees); */
NS_IMETHODIMP _MYCLASS_::GetAttendees(PRUint32 *count, calIAttendee ***attendees)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* calIAttendee getAttendeeById (in AUTF8String id); */
NS_IMETHODIMP _MYCLASS_::GetAttendeeById(const nsACString & id, calIAttendee **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAttendee (in calIAttendee attendee); */
NS_IMETHODIMP _MYCLASS_::RemoveAttendee(calIAttendee *attendee)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addAttendee (in calIAttendee attendee); */
NS_IMETHODIMP _MYCLASS_::AddAttendee(calIAttendee *attendee)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAllAttendees (); */
NS_IMETHODIMP _MYCLASS_::RemoveAllAttendees()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getAttachments (out PRUint32 count, [array, size_is (count), retval] out calIAttachment attachments); */
NS_IMETHODIMP _MYCLASS_::GetAttachments(PRUint32 *count, calIAttachment ***attachments)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAttachment (in calIAttachment attachment); */
NS_IMETHODIMP _MYCLASS_::RemoveAttachment(calIAttachment *attachment)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addAttachment (in calIAttachment attachment); */
NS_IMETHODIMP _MYCLASS_::AddAttachment(calIAttachment *attachment)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAllAttachments (); */
NS_IMETHODIMP _MYCLASS_::RemoveAllAttachments()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCategories (out PRUint32 aCount, [array, size_is (aCount), retval] out wstring aCategories); */
NS_IMETHODIMP _MYCLASS_::GetCategories(PRUint32 *aCount, PRUnichar ***aCategories)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setCategories (in PRUint32 aCount, [array, size_is (aCount)] in wstring aCategories); */
NS_IMETHODIMP _MYCLASS_::SetCategories(PRUint32 aCount, const PRUnichar **aCategories)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getRelations (out PRUint32 count, [array, size_is (count), retval] out calIRelation relations); */
NS_IMETHODIMP _MYCLASS_::GetRelations(PRUint32 *count, calIRelation ***relations)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeRelation (in calIRelation relation); */
NS_IMETHODIMP _MYCLASS_::RemoveRelation(calIRelation *relation)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAllRelations (); */
NS_IMETHODIMP _MYCLASS_::RemoveAllRelations()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addRelation (in calIRelation relation); */
NS_IMETHODIMP _MYCLASS_::AddRelation(calIRelation *relation)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getOccurrencesBetween (in calIDateTime aStartDate, in calIDateTime aEndDate, out PRUint32 aCount, [array, size_is (aCount), retval] out calIItemBase aOccurrences); */
NS_IMETHODIMP _MYCLASS_::GetOccurrencesBetween(calIDateTime *aStartDate, calIDateTime *aEndDate, PRUint32 *aCount, calIItemBase ***aOccurrences)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute calIItemBase parentItem; */
NS_IMETHODIMP _MYCLASS_::GetParentItem(calIItemBase * *aParentItem)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetParentItem(calIItemBase * aParentItem)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute calIDateTime recurrenceId; */
NS_IMETHODIMP _MYCLASS_::GetRecurrenceId(calIDateTime * *aRecurrenceId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetRecurrenceId(calIDateTime * aRecurrenceId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_calIItemBase_h__ */
