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

#ifndef __gen_nsIMsgSearchAdapter_h__
#define __gen_nsIMsgSearchAdapter_h__


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

#ifndef __gen_nsMsgSearchCore_h__
#include "nsMsgSearchCore.h"
#endif

#ifndef __gen_nsIMsgSearchScopeTerm_h__
#include "nsIMsgSearchScopeTerm.h"
#endif

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

/* starting interface:    nsIMsgSearchAdapter */
#define NS_IMSGSEARCHADAPTER_IID_STR "66f4b80c-0fb5-11d3-a515-0060b0fc04b7"

#define NS_IMSGSEARCHADAPTER_IID \
  {0x66f4b80c, 0x0fb5, 0x11d3, \
    { 0xa5, 0x15, 0x00, 0x60, 0xb0, 0xfc, 0x04, 0xb7 }}

class NS_NO_VTABLE nsIMsgSearchAdapter : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGSEARCHADAPTER_IID)

  /* void ValidateTerms (); */
  NS_IMETHOD ValidateTerms(void) = 0;

  /* void Search (out boolean done); */
  NS_IMETHOD Search(PRBool *done) = 0;

  /* void SendUrl (); */
  NS_IMETHOD SendUrl(void) = 0;

  /* void CurrentUrlDone (in long exitCode); */
  NS_IMETHOD CurrentUrlDone(PRInt32 exitCode) = 0;

  /* void AddHit (in nsMsgKey key); */
  NS_IMETHOD AddHit(nsMsgKey key) = 0;

  /* void AddResultElement (in nsIMsgDBHdr aHdr); */
  NS_IMETHOD AddResultElement(nsIMsgDBHdr *aHdr) = 0;

  /* [noscript] void OpenResultElement (in nsMsgResultElement element); */
  NS_IMETHOD OpenResultElement(nsMsgResultElement *element) = 0;

  /* [noscript] void ModifyResultElement (in nsMsgResultElement element, in nsMsgSearchValue value); */
  NS_IMETHOD ModifyResultElement(nsMsgResultElement *element, nsMsgSearchValue * value) = 0;

  /* readonly attribute string encoding; */
  NS_IMETHOD GetEncoding(char * *aEncoding) = 0;

  /* [noscript] nsIMsgFolder FindTargetFolder ([const] in nsMsgResultElement element); */
  NS_IMETHOD FindTargetFolder(const nsMsgResultElement *element, nsIMsgFolder **_retval) = 0;

  /* void Abort (); */
  NS_IMETHOD Abort(void) = 0;

  /* void getSearchCharsets (out wstring srcCharset, out wstring destCharset); */
  NS_IMETHOD GetSearchCharsets(PRUnichar **srcCharset, PRUnichar **destCharset) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGSEARCHADAPTER \
  NS_IMETHOD ValidateTerms(void); \
  NS_IMETHOD Search(PRBool *done); \
  NS_IMETHOD SendUrl(void); \
  NS_IMETHOD CurrentUrlDone(PRInt32 exitCode); \
  NS_IMETHOD AddHit(nsMsgKey key); \
  NS_IMETHOD AddResultElement(nsIMsgDBHdr *aHdr); \
  NS_IMETHOD OpenResultElement(nsMsgResultElement *element); \
  NS_IMETHOD ModifyResultElement(nsMsgResultElement *element, nsMsgSearchValue * value); \
  NS_IMETHOD GetEncoding(char * *aEncoding); \
  NS_IMETHOD FindTargetFolder(const nsMsgResultElement *element, nsIMsgFolder **_retval); \
  NS_IMETHOD Abort(void); \
  NS_IMETHOD GetSearchCharsets(PRUnichar **srcCharset, PRUnichar **destCharset); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGSEARCHADAPTER(_to) \
  NS_IMETHOD ValidateTerms(void) { return _to ValidateTerms(); } \
  NS_IMETHOD Search(PRBool *done) { return _to Search(done); } \
  NS_IMETHOD SendUrl(void) { return _to SendUrl(); } \
  NS_IMETHOD CurrentUrlDone(PRInt32 exitCode) { return _to CurrentUrlDone(exitCode); } \
  NS_IMETHOD AddHit(nsMsgKey key) { return _to AddHit(key); } \
  NS_IMETHOD AddResultElement(nsIMsgDBHdr *aHdr) { return _to AddResultElement(aHdr); } \
  NS_IMETHOD OpenResultElement(nsMsgResultElement *element) { return _to OpenResultElement(element); } \
  NS_IMETHOD ModifyResultElement(nsMsgResultElement *element, nsMsgSearchValue * value) { return _to ModifyResultElement(element, value); } \
  NS_IMETHOD GetEncoding(char * *aEncoding) { return _to GetEncoding(aEncoding); } \
  NS_IMETHOD FindTargetFolder(const nsMsgResultElement *element, nsIMsgFolder **_retval) { return _to FindTargetFolder(element, _retval); } \
  NS_IMETHOD Abort(void) { return _to Abort(); } \
  NS_IMETHOD GetSearchCharsets(PRUnichar **srcCharset, PRUnichar **destCharset) { return _to GetSearchCharsets(srcCharset, destCharset); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGSEARCHADAPTER(_to) \
  NS_IMETHOD ValidateTerms(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ValidateTerms(); } \
  NS_IMETHOD Search(PRBool *done) { return !_to ? NS_ERROR_NULL_POINTER : _to->Search(done); } \
  NS_IMETHOD SendUrl(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->SendUrl(); } \
  NS_IMETHOD CurrentUrlDone(PRInt32 exitCode) { return !_to ? NS_ERROR_NULL_POINTER : _to->CurrentUrlDone(exitCode); } \
  NS_IMETHOD AddHit(nsMsgKey key) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddHit(key); } \
  NS_IMETHOD AddResultElement(nsIMsgDBHdr *aHdr) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddResultElement(aHdr); } \
  NS_IMETHOD OpenResultElement(nsMsgResultElement *element) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenResultElement(element); } \
  NS_IMETHOD ModifyResultElement(nsMsgResultElement *element, nsMsgSearchValue * value) { return !_to ? NS_ERROR_NULL_POINTER : _to->ModifyResultElement(element, value); } \
  NS_IMETHOD GetEncoding(char * *aEncoding) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEncoding(aEncoding); } \
  NS_IMETHOD FindTargetFolder(const nsMsgResultElement *element, nsIMsgFolder **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindTargetFolder(element, _retval); } \
  NS_IMETHOD Abort(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Abort(); } \
  NS_IMETHOD GetSearchCharsets(PRUnichar **srcCharset, PRUnichar **destCharset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSearchCharsets(srcCharset, destCharset); } 

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

/* Header file */
class nsMsgSearchAdapter : public nsIMsgSearchAdapter
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGSEARCHADAPTER

  nsMsgSearchAdapter();

private:
  ~nsMsgSearchAdapter();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgSearchAdapter, nsIMsgSearchAdapter)

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

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

/* void ValidateTerms (); */
NS_IMETHODIMP nsMsgSearchAdapter::ValidateTerms()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void Search (out boolean done); */
NS_IMETHODIMP nsMsgSearchAdapter::Search(PRBool *done)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SendUrl (); */
NS_IMETHODIMP nsMsgSearchAdapter::SendUrl()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void CurrentUrlDone (in long exitCode); */
NS_IMETHODIMP nsMsgSearchAdapter::CurrentUrlDone(PRInt32 exitCode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void AddHit (in nsMsgKey key); */
NS_IMETHODIMP nsMsgSearchAdapter::AddHit(nsMsgKey key)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void AddResultElement (in nsIMsgDBHdr aHdr); */
NS_IMETHODIMP nsMsgSearchAdapter::AddResultElement(nsIMsgDBHdr *aHdr)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void OpenResultElement (in nsMsgResultElement element); */
NS_IMETHODIMP nsMsgSearchAdapter::OpenResultElement(nsMsgResultElement *element)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void ModifyResultElement (in nsMsgResultElement element, in nsMsgSearchValue value); */
NS_IMETHODIMP nsMsgSearchAdapter::ModifyResultElement(nsMsgResultElement *element, nsMsgSearchValue * value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute string encoding; */
NS_IMETHODIMP nsMsgSearchAdapter::GetEncoding(char * *aEncoding)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] nsIMsgFolder FindTargetFolder ([const] in nsMsgResultElement element); */
NS_IMETHODIMP nsMsgSearchAdapter::FindTargetFolder(const nsMsgResultElement *element, nsIMsgFolder **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void Abort (); */
NS_IMETHODIMP nsMsgSearchAdapter::Abort()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getSearchCharsets (out wstring srcCharset, out wstring destCharset); */
NS_IMETHODIMP nsMsgSearchAdapter::GetSearchCharsets(PRUnichar **srcCharset, PRUnichar **destCharset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgSearchAdapter_h__ */
