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

#ifndef __gen_mozILineTerm_h__
#define __gen_mozILineTerm_h__


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

#ifndef __gen_nsIObserver_h__
#include "nsIObserver.h"
#endif

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

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
#include "nsString.h"
class nsIDOMDocument;
#define MOZLINETERM_CLASSNAME  "LineTerm Component"
#define MOZLINETERM_CONTRACTID "@mozilla.org/xmlterm/lineterm;1"
#define MOZLINETERM_CID                      \
{ /* 0eb82b01-43a2-11d3-8e76-006008948af5 */ \
   0x0eb82b01, 0x43a2, 0x11d3,               \
{0x8e, 0x76, 0x00, 0x60, 0x08, 0x94, 0x8a, 0xf5} }

/* starting interface:    mozILineTerm */
#define MOZILINETERM_IID_STR "0eb82b00-43a2-11d3-8e76-006008948af5"

#define MOZILINETERM_IID \
  {0x0eb82b00, 0x43a2, 0x11d3, \
    { 0x8e, 0x76, 0x00, 0x60, 0x08, 0x94, 0x8a, 0xf5 }}

class NS_NO_VTABLE mozILineTerm : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(MOZILINETERM_IID)

  /** Opens LineTerm, a line-oriented terminal interface (without graphics)
   * @param command name of command to be executed; usually a shell,
   *        e.g., "/bin/sh"; if set to null string, the command name is
   *        determined from the environment variable SHELL (ASCII only)
   * @param initInput initial input string to be transmitted to terminal;
   *        set to null string, if none. (ASCII only)
   * @param promptRegexp command prompt regular expression (for future use);
   *        at the moment, any string terminated by one of the characters
   *        "#$%>?", followed by a space, is assumed to be a prompt
   * @param options LineTerm option bits (usually 0; see lineterm.h)
   * @param processType command shell type; if set to -1, type is determined
   *        from the command name
   * @param domDoc DOM document object associated with the LineTerm
   *        (document.cookie will be defined for this document on return)
   */
  /* void Open (in wstring command, in wstring initInput, in wstring promptRegexp, in PRInt32 options, in PRInt32 processType, in nsIDOMDocument domDoc); */
  NS_IMETHOD Open(const PRUnichar *command, const PRUnichar *initInput, const PRUnichar *promptRegexp, PRInt32 options, PRInt32 processType, nsIDOMDocument *domDoc) = 0;

  /** Closes LineTerm
   * @param aCookie document.cookie string for authentication
   */
  /* void Close (in wstring aCookie); */
  NS_IMETHOD Close(const PRUnichar *aCookie) = 0;

  /** Writes string to LineTerm as if the user had typed it (command input)
   * @param buf string to be transmitted to LineTerm
   * @param aCookie document.cookie string for authentication
   */
  /* void Write (in wstring buf, in wstring aCookie); */
  NS_IMETHOD Write(const PRUnichar *buf, const PRUnichar *aCookie) = 0;

  /** Read output data string and parameters from LineTerm (command output)
   * @param opcodes (output) output data descriptor bits (see lineterm.h)
   * @param opvals (output) output data value(s)
   * @param buf_row (output) row number (>=-1)
   *               (-1 denotes line mode and 0 represents bottom row)
   * @param buf_col (output) column number (>=0)
   * @param aCookie document.cookie string for authentication
   * @return output data string from LineTerm
   */
  /* wstring Read (out PRInt32 opcodes, out PRInt32 opvals, out PRInt32 buf_row, out PRInt32 buf_col, in wstring aCookie); */
  NS_IMETHOD Read(PRInt32 *opcodes, PRInt32 *opvals, PRInt32 *buf_row, PRInt32 *buf_col, const PRUnichar *aCookie, PRUnichar **_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_MOZILINETERM \
  NS_IMETHOD Open(const PRUnichar *command, const PRUnichar *initInput, const PRUnichar *promptRegexp, PRInt32 options, PRInt32 processType, nsIDOMDocument *domDoc); \
  NS_IMETHOD Close(const PRUnichar *aCookie); \
  NS_IMETHOD Write(const PRUnichar *buf, const PRUnichar *aCookie); \
  NS_IMETHOD Read(PRInt32 *opcodes, PRInt32 *opvals, PRInt32 *buf_row, PRInt32 *buf_col, const PRUnichar *aCookie, PRUnichar **_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_MOZILINETERM(_to) \
  NS_IMETHOD Open(const PRUnichar *command, const PRUnichar *initInput, const PRUnichar *promptRegexp, PRInt32 options, PRInt32 processType, nsIDOMDocument *domDoc) { return _to Open(command, initInput, promptRegexp, options, processType, domDoc); } \
  NS_IMETHOD Close(const PRUnichar *aCookie) { return _to Close(aCookie); } \
  NS_IMETHOD Write(const PRUnichar *buf, const PRUnichar *aCookie) { return _to Write(buf, aCookie); } \
  NS_IMETHOD Read(PRInt32 *opcodes, PRInt32 *opvals, PRInt32 *buf_row, PRInt32 *buf_col, const PRUnichar *aCookie, PRUnichar **_retval) { return _to Read(opcodes, opvals, buf_row, buf_col, aCookie, _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_MOZILINETERM(_to) \
  NS_IMETHOD Open(const PRUnichar *command, const PRUnichar *initInput, const PRUnichar *promptRegexp, PRInt32 options, PRInt32 processType, nsIDOMDocument *domDoc) { return !_to ? NS_ERROR_NULL_POINTER : _to->Open(command, initInput, promptRegexp, options, processType, domDoc); } \
  NS_IMETHOD Close(const PRUnichar *aCookie) { return !_to ? NS_ERROR_NULL_POINTER : _to->Close(aCookie); } \
  NS_IMETHOD Write(const PRUnichar *buf, const PRUnichar *aCookie) { return !_to ? NS_ERROR_NULL_POINTER : _to->Write(buf, aCookie); } \
  NS_IMETHOD Read(PRInt32 *opcodes, PRInt32 *opvals, PRInt32 *buf_row, PRInt32 *buf_col, const PRUnichar *aCookie, PRUnichar **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Read(opcodes, opvals, buf_row, buf_col, aCookie, _retval); } 

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

/* Header file */
class _MYCLASS_ : public mozILineTerm
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_MOZILINETERM

  _MYCLASS_();
  virtual ~_MYCLASS_();
  /* additional members */
};

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

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

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

/* void Open (in wstring command, in wstring initInput, in wstring promptRegexp, in PRInt32 options, in PRInt32 processType, in nsIDOMDocument domDoc); */
NS_IMETHODIMP _MYCLASS_::Open(const PRUnichar *command, const PRUnichar *initInput, const PRUnichar *promptRegexp, PRInt32 options, PRInt32 processType, nsIDOMDocument *domDoc)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void Close (in wstring aCookie); */
NS_IMETHODIMP _MYCLASS_::Close(const PRUnichar *aCookie)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void Write (in wstring buf, in wstring aCookie); */
NS_IMETHODIMP _MYCLASS_::Write(const PRUnichar *buf, const PRUnichar *aCookie)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* wstring Read (out PRInt32 opcodes, out PRInt32 opvals, out PRInt32 buf_row, out PRInt32 buf_col, in wstring aCookie); */
NS_IMETHODIMP _MYCLASS_::Read(PRInt32 *opcodes, PRInt32 *opvals, PRInt32 *buf_row, PRInt32 *buf_col, const PRUnichar *aCookie, PRUnichar **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    mozILineTermAux */
#define MOZILINETERMAUX_IID_STR "0eb82b10-43a2-11d3-8e76-006008948af5"

#define MOZILINETERMAUX_IID \
  {0x0eb82b10, 0x43a2, 0x11d3, \
    { 0x8e, 0x76, 0x00, 0x60, 0x08, 0x94, 0x8a, 0xf5 }}

class NS_NO_VTABLE mozILineTermAux : public mozILineTerm {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(MOZILINETERMAUX_IID)

  /** Opens LineTerm, a line-oriented terminal interface (without graphics)
   * @param command name of command to be executed; usually a shell,
   *        e.g., "/bin/sh"; if set to null string, the command name is
   *        determined from the environment variable SHELL
   * @param promptRegexp command prompt regular expression (for future use);
   *        at the moment, any string terminated by one of the characters
   *        "#$%>?", followed by a space, is assumed to be a prompt
   * @param options LineTerm option bits (usually 0; see lineterm.h)
   * @param processType command shell type; if set to -1, type is determined
   *        from the command name
   * @param nRows no. of screen rows
   * @param nCols no. of screen columns
   * @param xPixels screen width in pixels (or 0 if unknown)
   * @param yPixels screen height in pixels (or 0 if unknown)
   * @param domDoc DOM document object associated with the LineTerm
   *        (document.cookie will be defined for this document on return)
   * @param aCookie (output) cookie associated with LineTerm
   */
  /* void openAux (in wstring command, in wstring initInput, in wstring promptRegexp, in PRInt32 options, in PRInt32 processType, in PRInt32 nRows, in PRInt32 nCols, in PRInt32 xPixels, in PRInt32 yPixels, in nsIDOMDocument domDoc, in nsIObserver anObserver, in nsNativeStringRef aCookie); */
  NS_IMETHOD OpenAux(const PRUnichar *command, const PRUnichar *initInput, const PRUnichar *promptRegexp, PRInt32 options, PRInt32 processType, PRInt32 nRows, PRInt32 nCols, PRInt32 xPixels, PRInt32 yPixels, nsIDOMDocument *domDoc, nsIObserver *anObserver, nsString & aCookie) = 0;

  /** Suspend/restores LineTerm operation
   * @param aSuspend suspension state flag
   */
  /* void suspendAux (in boolean suspend); */
  NS_IMETHOD SuspendAux(PRBool suspend) = 0;

  /** Closes LineTerm
   */
  /* void closeAux (); */
  NS_IMETHOD CloseAux(void) = 0;

  /** Close all LineTerms, not just this one
   */
  /* void closeAllAux (); */
  NS_IMETHOD CloseAllAux(void) = 0;

  /** Resizes XMLterm to match a resized window.
   * @param nRows number of rows
   * @param nCols number of columns
   */
  /* void resizeAux (in long nRows, in long nCols); */
  NS_IMETHOD ResizeAux(PRInt32 nRows, PRInt32 nCols) = 0;

  /** Read output data and style strings and parameters from LineTerm
   * @param opcodes (output) output data descriptor bits (see lineterm.h)
   * @param opvals (output) output data value(s)
   * @param buf_row (output) row number (>=-1)
   *                (-1 denotes line mode and 0 represents bottom row)
   * @param buf_col (output) column number (>=0)
   * @param _retval (output) success code
   * @param retstyle (output) output style string
   * @return output data string from LineTerm
   */
  /* void readAux (out long opcodes, out long opvals, out long buf_row, out long buf_col, out wstring retval, out wstring retstyle); */
  NS_IMETHOD ReadAux(PRInt32 *opcodes, PRInt32 *opvals, PRInt32 *buf_row, PRInt32 *buf_col, PRUnichar **retval, PRUnichar **retstyle) = 0;

  /* void getCookie (in nsNativeStringRef aCookie); */
  NS_IMETHOD GetCookie(nsString & aCookie) = 0;

  /* attribute long cursorRow; */
  NS_IMETHOD GetCursorRow(PRInt32 *aCursorRow) = 0;
  NS_IMETHOD SetCursorRow(PRInt32 aCursorRow) = 0;

  /* attribute long cursorColumn; */
  NS_IMETHOD GetCursorColumn(PRInt32 *aCursorColumn) = 0;
  NS_IMETHOD SetCursorColumn(PRInt32 aCursorColumn) = 0;

  /* attribute boolean echoFlag; */
  NS_IMETHOD GetEchoFlag(PRBool *aEchoFlag) = 0;
  NS_IMETHOD SetEchoFlag(PRBool aEchoFlag) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_MOZILINETERMAUX \
  NS_IMETHOD OpenAux(const PRUnichar *command, const PRUnichar *initInput, const PRUnichar *promptRegexp, PRInt32 options, PRInt32 processType, PRInt32 nRows, PRInt32 nCols, PRInt32 xPixels, PRInt32 yPixels, nsIDOMDocument *domDoc, nsIObserver *anObserver, nsString & aCookie); \
  NS_IMETHOD SuspendAux(PRBool suspend); \
  NS_IMETHOD CloseAux(void); \
  NS_IMETHOD CloseAllAux(void); \
  NS_IMETHOD ResizeAux(PRInt32 nRows, PRInt32 nCols); \
  NS_IMETHOD ReadAux(PRInt32 *opcodes, PRInt32 *opvals, PRInt32 *buf_row, PRInt32 *buf_col, PRUnichar **retval, PRUnichar **retstyle); \
  NS_IMETHOD GetCookie(nsString & aCookie); \
  NS_IMETHOD GetCursorRow(PRInt32 *aCursorRow); \
  NS_IMETHOD SetCursorRow(PRInt32 aCursorRow); \
  NS_IMETHOD GetCursorColumn(PRInt32 *aCursorColumn); \
  NS_IMETHOD SetCursorColumn(PRInt32 aCursorColumn); \
  NS_IMETHOD GetEchoFlag(PRBool *aEchoFlag); \
  NS_IMETHOD SetEchoFlag(PRBool aEchoFlag); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_MOZILINETERMAUX(_to) \
  NS_IMETHOD OpenAux(const PRUnichar *command, const PRUnichar *initInput, const PRUnichar *promptRegexp, PRInt32 options, PRInt32 processType, PRInt32 nRows, PRInt32 nCols, PRInt32 xPixels, PRInt32 yPixels, nsIDOMDocument *domDoc, nsIObserver *anObserver, nsString & aCookie) { return _to OpenAux(command, initInput, promptRegexp, options, processType, nRows, nCols, xPixels, yPixels, domDoc, anObserver, aCookie); } \
  NS_IMETHOD SuspendAux(PRBool suspend) { return _to SuspendAux(suspend); } \
  NS_IMETHOD CloseAux(void) { return _to CloseAux(); } \
  NS_IMETHOD CloseAllAux(void) { return _to CloseAllAux(); } \
  NS_IMETHOD ResizeAux(PRInt32 nRows, PRInt32 nCols) { return _to ResizeAux(nRows, nCols); } \
  NS_IMETHOD ReadAux(PRInt32 *opcodes, PRInt32 *opvals, PRInt32 *buf_row, PRInt32 *buf_col, PRUnichar **retval, PRUnichar **retstyle) { return _to ReadAux(opcodes, opvals, buf_row, buf_col, retval, retstyle); } \
  NS_IMETHOD GetCookie(nsString & aCookie) { return _to GetCookie(aCookie); } \
  NS_IMETHOD GetCursorRow(PRInt32 *aCursorRow) { return _to GetCursorRow(aCursorRow); } \
  NS_IMETHOD SetCursorRow(PRInt32 aCursorRow) { return _to SetCursorRow(aCursorRow); } \
  NS_IMETHOD GetCursorColumn(PRInt32 *aCursorColumn) { return _to GetCursorColumn(aCursorColumn); } \
  NS_IMETHOD SetCursorColumn(PRInt32 aCursorColumn) { return _to SetCursorColumn(aCursorColumn); } \
  NS_IMETHOD GetEchoFlag(PRBool *aEchoFlag) { return _to GetEchoFlag(aEchoFlag); } \
  NS_IMETHOD SetEchoFlag(PRBool aEchoFlag) { return _to SetEchoFlag(aEchoFlag); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_MOZILINETERMAUX(_to) \
  NS_IMETHOD OpenAux(const PRUnichar *command, const PRUnichar *initInput, const PRUnichar *promptRegexp, PRInt32 options, PRInt32 processType, PRInt32 nRows, PRInt32 nCols, PRInt32 xPixels, PRInt32 yPixels, nsIDOMDocument *domDoc, nsIObserver *anObserver, nsString & aCookie) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenAux(command, initInput, promptRegexp, options, processType, nRows, nCols, xPixels, yPixels, domDoc, anObserver, aCookie); } \
  NS_IMETHOD SuspendAux(PRBool suspend) { return !_to ? NS_ERROR_NULL_POINTER : _to->SuspendAux(suspend); } \
  NS_IMETHOD CloseAux(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloseAux(); } \
  NS_IMETHOD CloseAllAux(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloseAllAux(); } \
  NS_IMETHOD ResizeAux(PRInt32 nRows, PRInt32 nCols) { return !_to ? NS_ERROR_NULL_POINTER : _to->ResizeAux(nRows, nCols); } \
  NS_IMETHOD ReadAux(PRInt32 *opcodes, PRInt32 *opvals, PRInt32 *buf_row, PRInt32 *buf_col, PRUnichar **retval, PRUnichar **retstyle) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReadAux(opcodes, opvals, buf_row, buf_col, retval, retstyle); } \
  NS_IMETHOD GetCookie(nsString & aCookie) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCookie(aCookie); } \
  NS_IMETHOD GetCursorRow(PRInt32 *aCursorRow) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCursorRow(aCursorRow); } \
  NS_IMETHOD SetCursorRow(PRInt32 aCursorRow) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCursorRow(aCursorRow); } \
  NS_IMETHOD GetCursorColumn(PRInt32 *aCursorColumn) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCursorColumn(aCursorColumn); } \
  NS_IMETHOD SetCursorColumn(PRInt32 aCursorColumn) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCursorColumn(aCursorColumn); } \
  NS_IMETHOD GetEchoFlag(PRBool *aEchoFlag) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEchoFlag(aEchoFlag); } \
  NS_IMETHOD SetEchoFlag(PRBool aEchoFlag) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEchoFlag(aEchoFlag); } 

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

/* Header file */
class _MYCLASS_ : public mozILineTermAux
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_MOZILINETERMAUX

  _MYCLASS_();
  virtual ~_MYCLASS_();
  /* additional members */
};

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

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

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

/* void openAux (in wstring command, in wstring initInput, in wstring promptRegexp, in PRInt32 options, in PRInt32 processType, in PRInt32 nRows, in PRInt32 nCols, in PRInt32 xPixels, in PRInt32 yPixels, in nsIDOMDocument domDoc, in nsIObserver anObserver, in nsNativeStringRef aCookie); */
NS_IMETHODIMP _MYCLASS_::OpenAux(const PRUnichar *command, const PRUnichar *initInput, const PRUnichar *promptRegexp, PRInt32 options, PRInt32 processType, PRInt32 nRows, PRInt32 nCols, PRInt32 xPixels, PRInt32 yPixels, nsIDOMDocument *domDoc, nsIObserver *anObserver, nsString & aCookie)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void suspendAux (in boolean suspend); */
NS_IMETHODIMP _MYCLASS_::SuspendAux(PRBool suspend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void closeAux (); */
NS_IMETHODIMP _MYCLASS_::CloseAux()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void closeAllAux (); */
NS_IMETHODIMP _MYCLASS_::CloseAllAux()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void resizeAux (in long nRows, in long nCols); */
NS_IMETHODIMP _MYCLASS_::ResizeAux(PRInt32 nRows, PRInt32 nCols)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void readAux (out long opcodes, out long opvals, out long buf_row, out long buf_col, out wstring retval, out wstring retstyle); */
NS_IMETHODIMP _MYCLASS_::ReadAux(PRInt32 *opcodes, PRInt32 *opvals, PRInt32 *buf_row, PRInt32 *buf_col, PRUnichar **retval, PRUnichar **retstyle)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCookie (in nsNativeStringRef aCookie); */
NS_IMETHODIMP _MYCLASS_::GetCookie(nsString & aCookie)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long cursorRow; */
NS_IMETHODIMP _MYCLASS_::GetCursorRow(PRInt32 *aCursorRow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetCursorRow(PRInt32 aCursorRow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long cursorColumn; */
NS_IMETHODIMP _MYCLASS_::GetCursorColumn(PRInt32 *aCursorColumn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetCursorColumn(PRInt32 aCursorColumn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean echoFlag; */
NS_IMETHODIMP _MYCLASS_::GetEchoFlag(PRBool *aEchoFlag)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetEchoFlag(PRBool aEchoFlag)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_mozILineTerm_h__ */
