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

#ifndef __gen_flockIMediaItem_h__
#define __gen_flockIMediaItem_h__


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

#ifndef __gen_nsIWritablePropertyBag2_h__
#include "nsIWritablePropertyBag2.h"
#endif

#ifndef __gen_nsIDOMNode_h__
#include "nsIDOMNode.h"
#endif

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


/* starting interface:    flockIMediaItemFormatter */
#define FLOCKIMEDIAITEMFORMATTER_IID_STR "53f8fce0-5175-4753-a931-ceca8f929e0f"

#define FLOCKIMEDIAITEMFORMATTER_IID \
  {0x53f8fce0, 0x5175, 0x4753, \
    { 0xa9, 0x31, 0xce, 0xca, 0x8f, 0x92, 0x9e, 0x0f }}

/**
 * A MediaItemFormatter is an optional helper implemented by a Media Web
 * Service (flockIMediaWebService) to override any formatting required when
 * presenting a Media Item (photo, video).
 *
 * If used, it is passed to the Media Item via its .init() method.
 *
 * If only one or two overrides are needed, it is only necessary to
 * implement those particular overrides; simply set the canBuildxxx property
 * to false for the ones not implemented.
 *
 * To determine what the default implementations produce, see:
 * http://lxr.flock.com/source//flock/mozilla/flock/base/photo/src/flockPhoto.js
 *
 * @see flockIMediaItem
 * @see flockIMediaWebService
 */
class NS_NO_VTABLE NS_SCRIPTABLE flockIMediaItemFormatter : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(FLOCKIMEDIAITEMFORMATTER_IID)

  /** Set to true if buildTooltip() is implemented, else false. */
  /* readonly attribute boolean canBuildTooltip; */
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildTooltip(PRBool *aCanBuildTooltip) = 0;

  /** Set to true if buildHTML() is implemented, else false. */
  /* readonly attribute boolean canBuildHTML; */
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildHTML(PRBool *aCanBuildHTML) = 0;

  /** Set to true if buildLargeHTML() is implemented, else false. */
  /* readonly attribute boolean canBuildLargeHTML; */
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildLargeHTML(PRBool *aCanBuildLargeHTML) = 0;

  /** Set to true if buildBBCode() is implemented, else false. */
  /* readonly attribute boolean canBuildBBCode; */
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildBBCode(PRBool *aCanBuildBBCode) = 0;

  /** Set to true if buildMiniPage() is implemented, else false. */
  /* readonly attribute boolean canBuildMiniPage; */
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildMiniPage(PRBool *aCanBuildMiniPage) = 0;

  /**
   * Implement this if the default XML is not adequate to properly display a
   * Media Bar tooltip for media items shown by your service.
   *
   * @param aMediaItem (in) The flockIMediaItem to be rendered.
   * @return A string that can be parsed as a tooltip DOM node.
   */
  /* AString buildTooltip (in flockIMediaItem aMediaItem); */
  NS_SCRIPTABLE NS_IMETHOD BuildTooltip(flockIMediaItem *aMediaItem, nsAString & _retval) = 0;

  /**
   * Implement this if the default generated HTML anchor element is not
   * adequate to properly show and link back to media on your service.
   *
   * This link should use the mid-size image if one is available.
   *
   * @param aMediaItem (in) The flockIMediaItem to be rendered.
   * @return An HTML string.
   */
  /* AString buildHTML (in flockIMediaItem aMediaItem); */
  NS_SCRIPTABLE NS_IMETHOD BuildHTML(flockIMediaItem *aMediaItem, nsAString & _retval) = 0;

  /**
   * Implement this if the default generated HTML anchor element is not
   * adequate to properly show and link back to media on your service.
   *
   * This link should use the large-size image if one is available.
   *
   * @param aMediaItem (in) The flockIMediaItem to be rendered.
   * @return An HTML string.
   */
  /* AString buildLargeHTML (in flockIMediaItem aMediaItem); */
  NS_SCRIPTABLE NS_IMETHOD BuildLargeHTML(flockIMediaItem *aMediaItem, nsAString & _retval) = 0;

  /**
   * Implement this if the default generated Bulletin Board link text is not
   * adequate to properly represent media on your service.
   *
   * @param aMediaItem (in) The flockIMediaItem to be rendered.
   * @return A text string.
   */
  /* AString buildBBCode (in flockIMediaItem aMediaItem); */
  NS_SCRIPTABLE NS_IMETHOD BuildBBCode(flockIMediaItem *aMediaItem, nsAString & _retval) = 0;

  /**
   * Implement this if the default generated HTML page is not adequate to
   * properly render media from your service.
   *
   * @param aMediaItem (in) The flockIMediaItem to be rendered.
   * @return An HTML string complete with <html>, <head>, and <body> elements.
   */
  /* AString buildMiniPage (in flockIMediaItem aMediaItem); */
  NS_SCRIPTABLE NS_IMETHOD BuildMiniPage(flockIMediaItem *aMediaItem, nsAString & _retval) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(flockIMediaItemFormatter, FLOCKIMEDIAITEMFORMATTER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIMEDIAITEMFORMATTER \
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildTooltip(PRBool *aCanBuildTooltip); \
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildHTML(PRBool *aCanBuildHTML); \
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildLargeHTML(PRBool *aCanBuildLargeHTML); \
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildBBCode(PRBool *aCanBuildBBCode); \
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildMiniPage(PRBool *aCanBuildMiniPage); \
  NS_SCRIPTABLE NS_IMETHOD BuildTooltip(flockIMediaItem *aMediaItem, nsAString & _retval); \
  NS_SCRIPTABLE NS_IMETHOD BuildHTML(flockIMediaItem *aMediaItem, nsAString & _retval); \
  NS_SCRIPTABLE NS_IMETHOD BuildLargeHTML(flockIMediaItem *aMediaItem, nsAString & _retval); \
  NS_SCRIPTABLE NS_IMETHOD BuildBBCode(flockIMediaItem *aMediaItem, nsAString & _retval); \
  NS_SCRIPTABLE NS_IMETHOD BuildMiniPage(flockIMediaItem *aMediaItem, nsAString & _retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIMEDIAITEMFORMATTER(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildTooltip(PRBool *aCanBuildTooltip) { return _to GetCanBuildTooltip(aCanBuildTooltip); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildHTML(PRBool *aCanBuildHTML) { return _to GetCanBuildHTML(aCanBuildHTML); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildLargeHTML(PRBool *aCanBuildLargeHTML) { return _to GetCanBuildLargeHTML(aCanBuildLargeHTML); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildBBCode(PRBool *aCanBuildBBCode) { return _to GetCanBuildBBCode(aCanBuildBBCode); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildMiniPage(PRBool *aCanBuildMiniPage) { return _to GetCanBuildMiniPage(aCanBuildMiniPage); } \
  NS_SCRIPTABLE NS_IMETHOD BuildTooltip(flockIMediaItem *aMediaItem, nsAString & _retval) { return _to BuildTooltip(aMediaItem, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildHTML(flockIMediaItem *aMediaItem, nsAString & _retval) { return _to BuildHTML(aMediaItem, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildLargeHTML(flockIMediaItem *aMediaItem, nsAString & _retval) { return _to BuildLargeHTML(aMediaItem, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildBBCode(flockIMediaItem *aMediaItem, nsAString & _retval) { return _to BuildBBCode(aMediaItem, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildMiniPage(flockIMediaItem *aMediaItem, nsAString & _retval) { return _to BuildMiniPage(aMediaItem, _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_FLOCKIMEDIAITEMFORMATTER(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildTooltip(PRBool *aCanBuildTooltip) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanBuildTooltip(aCanBuildTooltip); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildHTML(PRBool *aCanBuildHTML) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanBuildHTML(aCanBuildHTML); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildLargeHTML(PRBool *aCanBuildLargeHTML) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanBuildLargeHTML(aCanBuildLargeHTML); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildBBCode(PRBool *aCanBuildBBCode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanBuildBBCode(aCanBuildBBCode); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanBuildMiniPage(PRBool *aCanBuildMiniPage) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanBuildMiniPage(aCanBuildMiniPage); } \
  NS_SCRIPTABLE NS_IMETHOD BuildTooltip(flockIMediaItem *aMediaItem, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildTooltip(aMediaItem, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildHTML(flockIMediaItem *aMediaItem, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildHTML(aMediaItem, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildLargeHTML(flockIMediaItem *aMediaItem, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildLargeHTML(aMediaItem, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildBBCode(flockIMediaItem *aMediaItem, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildBBCode(aMediaItem, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildMiniPage(flockIMediaItem *aMediaItem, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildMiniPage(aMediaItem, _retval); } 

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

/* Header file */
class _MYCLASS_ : public flockIMediaItemFormatter
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIMEDIAITEMFORMATTER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* readonly attribute boolean canBuildTooltip; */
NS_IMETHODIMP _MYCLASS_::GetCanBuildTooltip(PRBool *aCanBuildTooltip)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean canBuildHTML; */
NS_IMETHODIMP _MYCLASS_::GetCanBuildHTML(PRBool *aCanBuildHTML)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean canBuildLargeHTML; */
NS_IMETHODIMP _MYCLASS_::GetCanBuildLargeHTML(PRBool *aCanBuildLargeHTML)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean canBuildBBCode; */
NS_IMETHODIMP _MYCLASS_::GetCanBuildBBCode(PRBool *aCanBuildBBCode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean canBuildMiniPage; */
NS_IMETHODIMP _MYCLASS_::GetCanBuildMiniPage(PRBool *aCanBuildMiniPage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString buildTooltip (in flockIMediaItem aMediaItem); */
NS_IMETHODIMP _MYCLASS_::BuildTooltip(flockIMediaItem *aMediaItem, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString buildHTML (in flockIMediaItem aMediaItem); */
NS_IMETHODIMP _MYCLASS_::BuildHTML(flockIMediaItem *aMediaItem, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString buildLargeHTML (in flockIMediaItem aMediaItem); */
NS_IMETHODIMP _MYCLASS_::BuildLargeHTML(flockIMediaItem *aMediaItem, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString buildBBCode (in flockIMediaItem aMediaItem); */
NS_IMETHODIMP _MYCLASS_::BuildBBCode(flockIMediaItem *aMediaItem, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString buildMiniPage (in flockIMediaItem aMediaItem); */
NS_IMETHODIMP _MYCLASS_::BuildMiniPage(flockIMediaItem *aMediaItem, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockIMediaItem */
#define FLOCKIMEDIAITEM_IID_STR "b361f190-9b17-4562-9fab-eb66cb89d814"

#define FLOCKIMEDIAITEM_IID \
  {0xb361f190, 0x9b17, 0x4562, \
    { 0x9f, 0xab, 0xeb, 0x66, 0xcb, 0x89, 0xd8, 0x14 }}

class NS_NO_VTABLE NS_SCRIPTABLE flockIMediaItem : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(FLOCKIMEDIAITEM_IID)

  /**
 * A flockIMediaItem is a representation of a media item (photo, video) from
 * your Media Web Service (flockIMediaWebService). It holds all the attributes
 * necessary to show a media item in any context within Flock, such as
 * in tooltips, links, the blog editor, or a separate window.
 *
 * If the default presentation is not adequate, a service can implement a
 * flockIMediaItemFormatter to override various types of presentation.
 *
 * @see flockIMediaWebService
 * @see flockIMediaItemFormatter
 */
/** Constants for mediaType */
  enum { MEDIA_TYPE_NEWS = 1 };

  enum { MEDIA_TYPE_IMAGE = 2 };

  enum { MEDIA_TYPE_VIDEO = 3 };

  enum { MEDIA_TYPE_PODCAST = 4 };

  /** The shortName of the Media Web Service that produced this Media Item. */
  /* attribute string svcShortName; */
  NS_SCRIPTABLE NS_IMETHOD GetSvcShortName(char * *aSvcShortName) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetSvcShortName(const char * aSvcShortName) = 0;

  /** HREFs to the image in various formats on the host site. */
  /* attribute string thumbnail; */
  NS_SCRIPTABLE NS_IMETHOD GetThumbnail(char * *aThumbnail) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetThumbnail(const char * aThumbnail) = 0;

  /* attribute string midSizePhoto; */
  NS_SCRIPTABLE NS_IMETHOD GetMidSizePhoto(char * *aMidSizePhoto) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMidSizePhoto(const char * aMidSizePhoto) = 0;

  /* attribute string largeSizePhoto; */
  NS_SCRIPTABLE NS_IMETHOD GetLargeSizePhoto(char * *aLargeSizePhoto) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetLargeSizePhoto(const char * aLargeSizePhoto) = 0;

  /** TODO: Analyze these, rationalize them, and document them. */
  /* attribute AUTF8String embedTag; */
  NS_SCRIPTABLE NS_IMETHOD GetEmbedTag(nsACString & aEmbedTag) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetEmbedTag(const nsACString & aEmbedTag) = 0;

  /* attribute string has_miniView; */
  NS_SCRIPTABLE NS_IMETHOD GetHas_miniView(char * *aHas_miniView) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetHas_miniView(const char * aHas_miniView) = 0;

  /* attribute string id; */
  NS_SCRIPTABLE NS_IMETHOD GetId(char * *aId) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetId(const char * aId) = 0;

  /* attribute string is_public; */
  NS_SCRIPTABLE NS_IMETHOD GetIs_public(char * *aIs_public) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetIs_public(const char * aIs_public) = 0;

  /** TODO: deprecate is_video in favour of mediaType */
  /* attribute boolean is_video; */
  NS_SCRIPTABLE NS_IMETHOD GetIs_video(PRBool *aIs_video) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetIs_video(PRBool aIs_video) = 0;

  /* attribute long mediaType; */
  NS_SCRIPTABLE NS_IMETHOD GetMediaType(PRInt32 *aMediaType) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMediaType(PRInt32 aMediaType) = 0;

  /* attribute string lastUpdate; */
  NS_SCRIPTABLE NS_IMETHOD GetLastUpdate(char * *aLastUpdate) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetLastUpdate(const char * aLastUpdate) = 0;

  /* attribute nsIPropertyBag2 metaData; */
  NS_SCRIPTABLE NS_IMETHOD GetMetaData(nsIPropertyBag2 * *aMetaData) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMetaData(nsIPropertyBag2 * aMetaData) = 0;

  /* attribute string icon; */
  NS_SCRIPTABLE NS_IMETHOD GetIcon(char * *aIcon) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetIcon(const char * aIcon) = 0;

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

  /* attribute string uploadDate; */
  NS_SCRIPTABLE NS_IMETHOD GetUploadDate(char * *aUploadDate) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetUploadDate(const char * aUploadDate) = 0;

  /* attribute AUTF8String userid; */
  NS_SCRIPTABLE NS_IMETHOD GetUserid(nsACString & aUserid) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetUserid(const nsACString & aUserid) = 0;

  /* attribute AUTF8String username; */
  NS_SCRIPTABLE NS_IMETHOD GetUsername(nsACString & aUsername) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetUsername(const nsACString & aUsername) = 0;

  /* attribute string webPageUrl; */
  NS_SCRIPTABLE NS_IMETHOD GetWebPageUrl(char * *aWebPageUrl) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetWebPageUrl(const char * aWebPageUrl) = 0;

  /* attribute AUTF8String length_seconds; */
  NS_SCRIPTABLE NS_IMETHOD GetLength_seconds(nsACString & aLength_seconds) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetLength_seconds(const nsACString & aLength_seconds) = 0;

  /* attribute AUTF8String rating_avg; */
  NS_SCRIPTABLE NS_IMETHOD GetRating_avg(nsACString & aRating_avg) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetRating_avg(const nsACString & aRating_avg) = 0;

  /* attribute AUTF8String description; */
  NS_SCRIPTABLE NS_IMETHOD GetDescription(nsACString & aDescription) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetDescription(const nsACString & aDescription) = 0;

  /* attribute AUTF8String comment_count; */
  NS_SCRIPTABLE NS_IMETHOD GetComment_count(nsACString & aComment_count) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetComment_count(const nsACString & aComment_count) = 0;

  /* attribute AUTF8String view_count; */
  NS_SCRIPTABLE NS_IMETHOD GetView_count(nsACString & aView_count) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetView_count(const nsACString & aView_count) = 0;

  /* attribute AUTF8String rating_count; */
  NS_SCRIPTABLE NS_IMETHOD GetRating_count(nsACString & aRating_count) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetRating_count(const nsACString & aRating_count) = 0;

  /**
   * Initialize a new instance.
   *
   * @param aSvcShortName (in) The shortName of the Media Web Service that
   *                           produced this Media Item.
   * @param aFormatter (in) Optional overrides to default rendering; pass null
   *                        if not required.
   */
  /* void init (in AString aSvcShortName, in flockIMediaItemFormatter aFormatter); */
  NS_SCRIPTABLE NS_IMETHOD Init(const nsAString & aSvcShortName, flockIMediaItemFormatter *aFormatter) = 0;

  /**
   * Assemble Media Item attributes into a DOM node suitable for use as a
   * tooltip on the Media Bar.
   *
   * @return An nsIDOMNode that can be inserted into the Media Bar.
   */
  /* nsIDOMNode buildTooltip (); */
  NS_SCRIPTABLE NS_IMETHOD BuildTooltip(nsIDOMNode **_retval) = 0;

  /**
   * Assemble Media Item attributes into an HTML anchor element suitable for
   * using the mid-sized image as a link back to the item on the host site.
   *
   * @return An HTML string.
   */
  /* AString buildHTML (); */
  NS_SCRIPTABLE NS_IMETHOD BuildHTML(nsAString & _retval) = 0;

  /**
   * Assemble Media Item attributes into an HTML anchor element suitable for
   * using the large-sized image as a link back to the item on the host site.
   *
   * @return An HTML string.
   */
  /* AString buildLargeHTML (); */
  NS_SCRIPTABLE NS_IMETHOD BuildLargeHTML(nsAString & _retval) = 0;

  /**
   * Assemble Media Item attributes into a string suitable for use on a
   * bulletin board as a link back to the item on the host site.
   *
   * @return A text string.
   */
  /* AString buildBBCode (); */
  NS_SCRIPTABLE NS_IMETHOD BuildBBCode(nsAString & _retval) = 0;

  /**
   * Assemble Media Item attributes into a minimum complete HTML page suitable
   * for rendering in a new chromeless window.
   *
   * @return An HTML string complete with <html>, <head>, and <body> elements.
   */
  /* AString buildMiniPage (); */
  NS_SCRIPTABLE NS_IMETHOD BuildMiniPage(nsAString & _retval) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(flockIMediaItem, FLOCKIMEDIAITEM_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIMEDIAITEM \
  NS_SCRIPTABLE NS_IMETHOD GetSvcShortName(char * *aSvcShortName); \
  NS_SCRIPTABLE NS_IMETHOD SetSvcShortName(const char * aSvcShortName); \
  NS_SCRIPTABLE NS_IMETHOD GetThumbnail(char * *aThumbnail); \
  NS_SCRIPTABLE NS_IMETHOD SetThumbnail(const char * aThumbnail); \
  NS_SCRIPTABLE NS_IMETHOD GetMidSizePhoto(char * *aMidSizePhoto); \
  NS_SCRIPTABLE NS_IMETHOD SetMidSizePhoto(const char * aMidSizePhoto); \
  NS_SCRIPTABLE NS_IMETHOD GetLargeSizePhoto(char * *aLargeSizePhoto); \
  NS_SCRIPTABLE NS_IMETHOD SetLargeSizePhoto(const char * aLargeSizePhoto); \
  NS_SCRIPTABLE NS_IMETHOD GetEmbedTag(nsACString & aEmbedTag); \
  NS_SCRIPTABLE NS_IMETHOD SetEmbedTag(const nsACString & aEmbedTag); \
  NS_SCRIPTABLE NS_IMETHOD GetHas_miniView(char * *aHas_miniView); \
  NS_SCRIPTABLE NS_IMETHOD SetHas_miniView(const char * aHas_miniView); \
  NS_SCRIPTABLE NS_IMETHOD GetId(char * *aId); \
  NS_SCRIPTABLE NS_IMETHOD SetId(const char * aId); \
  NS_SCRIPTABLE NS_IMETHOD GetIs_public(char * *aIs_public); \
  NS_SCRIPTABLE NS_IMETHOD SetIs_public(const char * aIs_public); \
  NS_SCRIPTABLE NS_IMETHOD GetIs_video(PRBool *aIs_video); \
  NS_SCRIPTABLE NS_IMETHOD SetIs_video(PRBool aIs_video); \
  NS_SCRIPTABLE NS_IMETHOD GetMediaType(PRInt32 *aMediaType); \
  NS_SCRIPTABLE NS_IMETHOD SetMediaType(PRInt32 aMediaType); \
  NS_SCRIPTABLE NS_IMETHOD GetLastUpdate(char * *aLastUpdate); \
  NS_SCRIPTABLE NS_IMETHOD SetLastUpdate(const char * aLastUpdate); \
  NS_SCRIPTABLE NS_IMETHOD GetMetaData(nsIPropertyBag2 * *aMetaData); \
  NS_SCRIPTABLE NS_IMETHOD SetMetaData(nsIPropertyBag2 * aMetaData); \
  NS_SCRIPTABLE NS_IMETHOD GetIcon(char * *aIcon); \
  NS_SCRIPTABLE NS_IMETHOD SetIcon(const char * aIcon); \
  NS_SCRIPTABLE NS_IMETHOD GetTitle(nsACString & aTitle); \
  NS_SCRIPTABLE NS_IMETHOD SetTitle(const nsACString & aTitle); \
  NS_SCRIPTABLE NS_IMETHOD GetUploadDate(char * *aUploadDate); \
  NS_SCRIPTABLE NS_IMETHOD SetUploadDate(const char * aUploadDate); \
  NS_SCRIPTABLE NS_IMETHOD GetUserid(nsACString & aUserid); \
  NS_SCRIPTABLE NS_IMETHOD SetUserid(const nsACString & aUserid); \
  NS_SCRIPTABLE NS_IMETHOD GetUsername(nsACString & aUsername); \
  NS_SCRIPTABLE NS_IMETHOD SetUsername(const nsACString & aUsername); \
  NS_SCRIPTABLE NS_IMETHOD GetWebPageUrl(char * *aWebPageUrl); \
  NS_SCRIPTABLE NS_IMETHOD SetWebPageUrl(const char * aWebPageUrl); \
  NS_SCRIPTABLE NS_IMETHOD GetLength_seconds(nsACString & aLength_seconds); \
  NS_SCRIPTABLE NS_IMETHOD SetLength_seconds(const nsACString & aLength_seconds); \
  NS_SCRIPTABLE NS_IMETHOD GetRating_avg(nsACString & aRating_avg); \
  NS_SCRIPTABLE NS_IMETHOD SetRating_avg(const nsACString & aRating_avg); \
  NS_SCRIPTABLE NS_IMETHOD GetDescription(nsACString & aDescription); \
  NS_SCRIPTABLE NS_IMETHOD SetDescription(const nsACString & aDescription); \
  NS_SCRIPTABLE NS_IMETHOD GetComment_count(nsACString & aComment_count); \
  NS_SCRIPTABLE NS_IMETHOD SetComment_count(const nsACString & aComment_count); \
  NS_SCRIPTABLE NS_IMETHOD GetView_count(nsACString & aView_count); \
  NS_SCRIPTABLE NS_IMETHOD SetView_count(const nsACString & aView_count); \
  NS_SCRIPTABLE NS_IMETHOD GetRating_count(nsACString & aRating_count); \
  NS_SCRIPTABLE NS_IMETHOD SetRating_count(const nsACString & aRating_count); \
  NS_SCRIPTABLE NS_IMETHOD Init(const nsAString & aSvcShortName, flockIMediaItemFormatter *aFormatter); \
  NS_SCRIPTABLE NS_IMETHOD BuildTooltip(nsIDOMNode **_retval); \
  NS_SCRIPTABLE NS_IMETHOD BuildHTML(nsAString & _retval); \
  NS_SCRIPTABLE NS_IMETHOD BuildLargeHTML(nsAString & _retval); \
  NS_SCRIPTABLE NS_IMETHOD BuildBBCode(nsAString & _retval); \
  NS_SCRIPTABLE NS_IMETHOD BuildMiniPage(nsAString & _retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIMEDIAITEM(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetSvcShortName(char * *aSvcShortName) { return _to GetSvcShortName(aSvcShortName); } \
  NS_SCRIPTABLE NS_IMETHOD SetSvcShortName(const char * aSvcShortName) { return _to SetSvcShortName(aSvcShortName); } \
  NS_SCRIPTABLE NS_IMETHOD GetThumbnail(char * *aThumbnail) { return _to GetThumbnail(aThumbnail); } \
  NS_SCRIPTABLE NS_IMETHOD SetThumbnail(const char * aThumbnail) { return _to SetThumbnail(aThumbnail); } \
  NS_SCRIPTABLE NS_IMETHOD GetMidSizePhoto(char * *aMidSizePhoto) { return _to GetMidSizePhoto(aMidSizePhoto); } \
  NS_SCRIPTABLE NS_IMETHOD SetMidSizePhoto(const char * aMidSizePhoto) { return _to SetMidSizePhoto(aMidSizePhoto); } \
  NS_SCRIPTABLE NS_IMETHOD GetLargeSizePhoto(char * *aLargeSizePhoto) { return _to GetLargeSizePhoto(aLargeSizePhoto); } \
  NS_SCRIPTABLE NS_IMETHOD SetLargeSizePhoto(const char * aLargeSizePhoto) { return _to SetLargeSizePhoto(aLargeSizePhoto); } \
  NS_SCRIPTABLE NS_IMETHOD GetEmbedTag(nsACString & aEmbedTag) { return _to GetEmbedTag(aEmbedTag); } \
  NS_SCRIPTABLE NS_IMETHOD SetEmbedTag(const nsACString & aEmbedTag) { return _to SetEmbedTag(aEmbedTag); } \
  NS_SCRIPTABLE NS_IMETHOD GetHas_miniView(char * *aHas_miniView) { return _to GetHas_miniView(aHas_miniView); } \
  NS_SCRIPTABLE NS_IMETHOD SetHas_miniView(const char * aHas_miniView) { return _to SetHas_miniView(aHas_miniView); } \
  NS_SCRIPTABLE NS_IMETHOD GetId(char * *aId) { return _to GetId(aId); } \
  NS_SCRIPTABLE NS_IMETHOD SetId(const char * aId) { return _to SetId(aId); } \
  NS_SCRIPTABLE NS_IMETHOD GetIs_public(char * *aIs_public) { return _to GetIs_public(aIs_public); } \
  NS_SCRIPTABLE NS_IMETHOD SetIs_public(const char * aIs_public) { return _to SetIs_public(aIs_public); } \
  NS_SCRIPTABLE NS_IMETHOD GetIs_video(PRBool *aIs_video) { return _to GetIs_video(aIs_video); } \
  NS_SCRIPTABLE NS_IMETHOD SetIs_video(PRBool aIs_video) { return _to SetIs_video(aIs_video); } \
  NS_SCRIPTABLE NS_IMETHOD GetMediaType(PRInt32 *aMediaType) { return _to GetMediaType(aMediaType); } \
  NS_SCRIPTABLE NS_IMETHOD SetMediaType(PRInt32 aMediaType) { return _to SetMediaType(aMediaType); } \
  NS_SCRIPTABLE NS_IMETHOD GetLastUpdate(char * *aLastUpdate) { return _to GetLastUpdate(aLastUpdate); } \
  NS_SCRIPTABLE NS_IMETHOD SetLastUpdate(const char * aLastUpdate) { return _to SetLastUpdate(aLastUpdate); } \
  NS_SCRIPTABLE NS_IMETHOD GetMetaData(nsIPropertyBag2 * *aMetaData) { return _to GetMetaData(aMetaData); } \
  NS_SCRIPTABLE NS_IMETHOD SetMetaData(nsIPropertyBag2 * aMetaData) { return _to SetMetaData(aMetaData); } \
  NS_SCRIPTABLE NS_IMETHOD GetIcon(char * *aIcon) { return _to GetIcon(aIcon); } \
  NS_SCRIPTABLE NS_IMETHOD SetIcon(const char * aIcon) { return _to SetIcon(aIcon); } \
  NS_SCRIPTABLE NS_IMETHOD GetTitle(nsACString & aTitle) { return _to GetTitle(aTitle); } \
  NS_SCRIPTABLE NS_IMETHOD SetTitle(const nsACString & aTitle) { return _to SetTitle(aTitle); } \
  NS_SCRIPTABLE NS_IMETHOD GetUploadDate(char * *aUploadDate) { return _to GetUploadDate(aUploadDate); } \
  NS_SCRIPTABLE NS_IMETHOD SetUploadDate(const char * aUploadDate) { return _to SetUploadDate(aUploadDate); } \
  NS_SCRIPTABLE NS_IMETHOD GetUserid(nsACString & aUserid) { return _to GetUserid(aUserid); } \
  NS_SCRIPTABLE NS_IMETHOD SetUserid(const nsACString & aUserid) { return _to SetUserid(aUserid); } \
  NS_SCRIPTABLE NS_IMETHOD GetUsername(nsACString & aUsername) { return _to GetUsername(aUsername); } \
  NS_SCRIPTABLE NS_IMETHOD SetUsername(const nsACString & aUsername) { return _to SetUsername(aUsername); } \
  NS_SCRIPTABLE NS_IMETHOD GetWebPageUrl(char * *aWebPageUrl) { return _to GetWebPageUrl(aWebPageUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetWebPageUrl(const char * aWebPageUrl) { return _to SetWebPageUrl(aWebPageUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetLength_seconds(nsACString & aLength_seconds) { return _to GetLength_seconds(aLength_seconds); } \
  NS_SCRIPTABLE NS_IMETHOD SetLength_seconds(const nsACString & aLength_seconds) { return _to SetLength_seconds(aLength_seconds); } \
  NS_SCRIPTABLE NS_IMETHOD GetRating_avg(nsACString & aRating_avg) { return _to GetRating_avg(aRating_avg); } \
  NS_SCRIPTABLE NS_IMETHOD SetRating_avg(const nsACString & aRating_avg) { return _to SetRating_avg(aRating_avg); } \
  NS_SCRIPTABLE NS_IMETHOD GetDescription(nsACString & aDescription) { return _to GetDescription(aDescription); } \
  NS_SCRIPTABLE NS_IMETHOD SetDescription(const nsACString & aDescription) { return _to SetDescription(aDescription); } \
  NS_SCRIPTABLE NS_IMETHOD GetComment_count(nsACString & aComment_count) { return _to GetComment_count(aComment_count); } \
  NS_SCRIPTABLE NS_IMETHOD SetComment_count(const nsACString & aComment_count) { return _to SetComment_count(aComment_count); } \
  NS_SCRIPTABLE NS_IMETHOD GetView_count(nsACString & aView_count) { return _to GetView_count(aView_count); } \
  NS_SCRIPTABLE NS_IMETHOD SetView_count(const nsACString & aView_count) { return _to SetView_count(aView_count); } \
  NS_SCRIPTABLE NS_IMETHOD GetRating_count(nsACString & aRating_count) { return _to GetRating_count(aRating_count); } \
  NS_SCRIPTABLE NS_IMETHOD SetRating_count(const nsACString & aRating_count) { return _to SetRating_count(aRating_count); } \
  NS_SCRIPTABLE NS_IMETHOD Init(const nsAString & aSvcShortName, flockIMediaItemFormatter *aFormatter) { return _to Init(aSvcShortName, aFormatter); } \
  NS_SCRIPTABLE NS_IMETHOD BuildTooltip(nsIDOMNode **_retval) { return _to BuildTooltip(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildHTML(nsAString & _retval) { return _to BuildHTML(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildLargeHTML(nsAString & _retval) { return _to BuildLargeHTML(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildBBCode(nsAString & _retval) { return _to BuildBBCode(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildMiniPage(nsAString & _retval) { return _to BuildMiniPage(_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_FLOCKIMEDIAITEM(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetSvcShortName(char * *aSvcShortName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSvcShortName(aSvcShortName); } \
  NS_SCRIPTABLE NS_IMETHOD SetSvcShortName(const char * aSvcShortName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSvcShortName(aSvcShortName); } \
  NS_SCRIPTABLE NS_IMETHOD GetThumbnail(char * *aThumbnail) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetThumbnail(aThumbnail); } \
  NS_SCRIPTABLE NS_IMETHOD SetThumbnail(const char * aThumbnail) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetThumbnail(aThumbnail); } \
  NS_SCRIPTABLE NS_IMETHOD GetMidSizePhoto(char * *aMidSizePhoto) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidSizePhoto(aMidSizePhoto); } \
  NS_SCRIPTABLE NS_IMETHOD SetMidSizePhoto(const char * aMidSizePhoto) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMidSizePhoto(aMidSizePhoto); } \
  NS_SCRIPTABLE NS_IMETHOD GetLargeSizePhoto(char * *aLargeSizePhoto) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLargeSizePhoto(aLargeSizePhoto); } \
  NS_SCRIPTABLE NS_IMETHOD SetLargeSizePhoto(const char * aLargeSizePhoto) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLargeSizePhoto(aLargeSizePhoto); } \
  NS_SCRIPTABLE NS_IMETHOD GetEmbedTag(nsACString & aEmbedTag) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEmbedTag(aEmbedTag); } \
  NS_SCRIPTABLE NS_IMETHOD SetEmbedTag(const nsACString & aEmbedTag) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEmbedTag(aEmbedTag); } \
  NS_SCRIPTABLE NS_IMETHOD GetHas_miniView(char * *aHas_miniView) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHas_miniView(aHas_miniView); } \
  NS_SCRIPTABLE NS_IMETHOD SetHas_miniView(const char * aHas_miniView) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHas_miniView(aHas_miniView); } \
  NS_SCRIPTABLE NS_IMETHOD GetId(char * *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_SCRIPTABLE NS_IMETHOD SetId(const char * aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetId(aId); } \
  NS_SCRIPTABLE NS_IMETHOD GetIs_public(char * *aIs_public) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIs_public(aIs_public); } \
  NS_SCRIPTABLE NS_IMETHOD SetIs_public(const char * aIs_public) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIs_public(aIs_public); } \
  NS_SCRIPTABLE NS_IMETHOD GetIs_video(PRBool *aIs_video) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIs_video(aIs_video); } \
  NS_SCRIPTABLE NS_IMETHOD SetIs_video(PRBool aIs_video) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIs_video(aIs_video); } \
  NS_SCRIPTABLE NS_IMETHOD GetMediaType(PRInt32 *aMediaType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMediaType(aMediaType); } \
  NS_SCRIPTABLE NS_IMETHOD SetMediaType(PRInt32 aMediaType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMediaType(aMediaType); } \
  NS_SCRIPTABLE NS_IMETHOD GetLastUpdate(char * *aLastUpdate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastUpdate(aLastUpdate); } \
  NS_SCRIPTABLE NS_IMETHOD SetLastUpdate(const char * aLastUpdate) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLastUpdate(aLastUpdate); } \
  NS_SCRIPTABLE NS_IMETHOD GetMetaData(nsIPropertyBag2 * *aMetaData) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMetaData(aMetaData); } \
  NS_SCRIPTABLE NS_IMETHOD SetMetaData(nsIPropertyBag2 * aMetaData) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMetaData(aMetaData); } \
  NS_SCRIPTABLE NS_IMETHOD GetIcon(char * *aIcon) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIcon(aIcon); } \
  NS_SCRIPTABLE NS_IMETHOD SetIcon(const char * aIcon) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIcon(aIcon); } \
  NS_SCRIPTABLE NS_IMETHOD GetTitle(nsACString & aTitle) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTitle(aTitle); } \
  NS_SCRIPTABLE NS_IMETHOD SetTitle(const nsACString & aTitle) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTitle(aTitle); } \
  NS_SCRIPTABLE NS_IMETHOD GetUploadDate(char * *aUploadDate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUploadDate(aUploadDate); } \
  NS_SCRIPTABLE NS_IMETHOD SetUploadDate(const char * aUploadDate) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUploadDate(aUploadDate); } \
  NS_SCRIPTABLE NS_IMETHOD GetUserid(nsACString & aUserid) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserid(aUserid); } \
  NS_SCRIPTABLE NS_IMETHOD SetUserid(const nsACString & aUserid) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUserid(aUserid); } \
  NS_SCRIPTABLE NS_IMETHOD GetUsername(nsACString & aUsername) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUsername(aUsername); } \
  NS_SCRIPTABLE NS_IMETHOD SetUsername(const nsACString & aUsername) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUsername(aUsername); } \
  NS_SCRIPTABLE NS_IMETHOD GetWebPageUrl(char * *aWebPageUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWebPageUrl(aWebPageUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetWebPageUrl(const char * aWebPageUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetWebPageUrl(aWebPageUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetLength_seconds(nsACString & aLength_seconds) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLength_seconds(aLength_seconds); } \
  NS_SCRIPTABLE NS_IMETHOD SetLength_seconds(const nsACString & aLength_seconds) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLength_seconds(aLength_seconds); } \
  NS_SCRIPTABLE NS_IMETHOD GetRating_avg(nsACString & aRating_avg) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRating_avg(aRating_avg); } \
  NS_SCRIPTABLE NS_IMETHOD SetRating_avg(const nsACString & aRating_avg) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRating_avg(aRating_avg); } \
  NS_SCRIPTABLE NS_IMETHOD GetDescription(nsACString & aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescription(aDescription); } \
  NS_SCRIPTABLE NS_IMETHOD SetDescription(const nsACString & aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDescription(aDescription); } \
  NS_SCRIPTABLE NS_IMETHOD GetComment_count(nsACString & aComment_count) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetComment_count(aComment_count); } \
  NS_SCRIPTABLE NS_IMETHOD SetComment_count(const nsACString & aComment_count) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetComment_count(aComment_count); } \
  NS_SCRIPTABLE NS_IMETHOD GetView_count(nsACString & aView_count) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetView_count(aView_count); } \
  NS_SCRIPTABLE NS_IMETHOD SetView_count(const nsACString & aView_count) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetView_count(aView_count); } \
  NS_SCRIPTABLE NS_IMETHOD GetRating_count(nsACString & aRating_count) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRating_count(aRating_count); } \
  NS_SCRIPTABLE NS_IMETHOD SetRating_count(const nsACString & aRating_count) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRating_count(aRating_count); } \
  NS_SCRIPTABLE NS_IMETHOD Init(const nsAString & aSvcShortName, flockIMediaItemFormatter *aFormatter) { return !_to ? NS_ERROR_NULL_POINTER : _to->Init(aSvcShortName, aFormatter); } \
  NS_SCRIPTABLE NS_IMETHOD BuildTooltip(nsIDOMNode **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildTooltip(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildHTML(nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildHTML(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildLargeHTML(nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildLargeHTML(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildBBCode(nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildBBCode(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD BuildMiniPage(nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildMiniPage(_retval); } 

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

/* Header file */
class _MYCLASS_ : public flockIMediaItem
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIMEDIAITEM

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* attribute string svcShortName; */
NS_IMETHODIMP _MYCLASS_::GetSvcShortName(char * *aSvcShortName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetSvcShortName(const char * aSvcShortName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string thumbnail; */
NS_IMETHODIMP _MYCLASS_::GetThumbnail(char * *aThumbnail)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetThumbnail(const char * aThumbnail)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string midSizePhoto; */
NS_IMETHODIMP _MYCLASS_::GetMidSizePhoto(char * *aMidSizePhoto)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetMidSizePhoto(const char * aMidSizePhoto)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string largeSizePhoto; */
NS_IMETHODIMP _MYCLASS_::GetLargeSizePhoto(char * *aLargeSizePhoto)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetLargeSizePhoto(const char * aLargeSizePhoto)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String embedTag; */
NS_IMETHODIMP _MYCLASS_::GetEmbedTag(nsACString & aEmbedTag)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetEmbedTag(const nsACString & aEmbedTag)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string has_miniView; */
NS_IMETHODIMP _MYCLASS_::GetHas_miniView(char * *aHas_miniView)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetHas_miniView(const char * aHas_miniView)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string id; */
NS_IMETHODIMP _MYCLASS_::GetId(char * *aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetId(const char * aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string is_public; */
NS_IMETHODIMP _MYCLASS_::GetIs_public(char * *aIs_public)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIs_public(const char * aIs_public)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean is_video; */
NS_IMETHODIMP _MYCLASS_::GetIs_video(PRBool *aIs_video)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIs_video(PRBool aIs_video)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long mediaType; */
NS_IMETHODIMP _MYCLASS_::GetMediaType(PRInt32 *aMediaType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetMediaType(PRInt32 aMediaType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string lastUpdate; */
NS_IMETHODIMP _MYCLASS_::GetLastUpdate(char * *aLastUpdate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetLastUpdate(const char * aLastUpdate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIPropertyBag2 metaData; */
NS_IMETHODIMP _MYCLASS_::GetMetaData(nsIPropertyBag2 * *aMetaData)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetMetaData(nsIPropertyBag2 * aMetaData)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string icon; */
NS_IMETHODIMP _MYCLASS_::GetIcon(char * *aIcon)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIcon(const char * aIcon)
{
    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 string uploadDate; */
NS_IMETHODIMP _MYCLASS_::GetUploadDate(char * *aUploadDate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetUploadDate(const char * aUploadDate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String userid; */
NS_IMETHODIMP _MYCLASS_::GetUserid(nsACString & aUserid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetUserid(const nsACString & aUserid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String username; */
NS_IMETHODIMP _MYCLASS_::GetUsername(nsACString & aUsername)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetUsername(const nsACString & aUsername)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string webPageUrl; */
NS_IMETHODIMP _MYCLASS_::GetWebPageUrl(char * *aWebPageUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetWebPageUrl(const char * aWebPageUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String length_seconds; */
NS_IMETHODIMP _MYCLASS_::GetLength_seconds(nsACString & aLength_seconds)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetLength_seconds(const nsACString & aLength_seconds)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String rating_avg; */
NS_IMETHODIMP _MYCLASS_::GetRating_avg(nsACString & aRating_avg)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetRating_avg(const nsACString & aRating_avg)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String description; */
NS_IMETHODIMP _MYCLASS_::GetDescription(nsACString & aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDescription(const nsACString & aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String comment_count; */
NS_IMETHODIMP _MYCLASS_::GetComment_count(nsACString & aComment_count)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetComment_count(const nsACString & aComment_count)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String view_count; */
NS_IMETHODIMP _MYCLASS_::GetView_count(nsACString & aView_count)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetView_count(const nsACString & aView_count)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String rating_count; */
NS_IMETHODIMP _MYCLASS_::GetRating_count(nsACString & aRating_count)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetRating_count(const nsACString & aRating_count)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void init (in AString aSvcShortName, in flockIMediaItemFormatter aFormatter); */
NS_IMETHODIMP _MYCLASS_::Init(const nsAString & aSvcShortName, flockIMediaItemFormatter *aFormatter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIDOMNode buildTooltip (); */
NS_IMETHODIMP _MYCLASS_::BuildTooltip(nsIDOMNode **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString buildHTML (); */
NS_IMETHODIMP _MYCLASS_::BuildHTML(nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString buildLargeHTML (); */
NS_IMETHODIMP _MYCLASS_::BuildLargeHTML(nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString buildBBCode (); */
NS_IMETHODIMP _MYCLASS_::BuildBBCode(nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString buildMiniPage (); */
NS_IMETHODIMP _MYCLASS_::BuildMiniPage(nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_flockIMediaItem_h__ */
