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

#ifndef __gen_nsIMsgSearchAdapter_h__
#define __gen_nsIMsgSearchAdapter_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.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 "0b09078b-e0cd-440a-afee-01f45808ee74"

#define NS_IMSGSEARCHADAPTER_IID \
  {0x0b09078b, 0xe0cd, 0x440a, \
    { 0xaf, 0xee, 0x01, 0xf4, 0x58, 0x08, 0xee, 0x74 }}

class NS_NO_VTABLE nsIMsgSearchAdapter : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGSEARCHADAPTER_IID)

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

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

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

  /* void CurrentUrlDone (in nsresult exitCode); */
  NS_IMETHOD CurrentUrlDone(nsresult 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 AString srcCharset, out AString destCharset); */
  NS_IMETHOD GetSearchCharsets(nsAString & srcCharset, nsAString & destCharset) = 0;

  /* void clearScope (); */
  NS_IMETHOD ClearScope(void) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgSearchAdapter, NS_IMSGSEARCHADAPTER_IID)

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

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIMSGSEARCHADAPTER \
  NS_METHOD ValidateTerms(void); \
  NS_METHOD Search(bool *done); \
  NS_METHOD SendUrl(void); \
  NS_METHOD CurrentUrlDone(nsresult exitCode); \
  NS_METHOD AddHit(nsMsgKey key); \
  NS_METHOD AddResultElement(nsIMsgDBHdr *aHdr); \
  NS_METHOD OpenResultElement(nsMsgResultElement *element); \
  NS_METHOD ModifyResultElement(nsMsgResultElement *element, nsMsgSearchValue *value); \
  NS_METHOD GetEncoding(char * *aEncoding); \
  NS_METHOD FindTargetFolder(const nsMsgResultElement *element, nsIMsgFolder * *_retval); \
  NS_METHOD Abort(void); \
  NS_METHOD GetSearchCharsets(nsAString & srcCharset, nsAString & destCharset); \
  NS_METHOD ClearScope(void); 

/* 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) override { return _to ValidateTerms(); } \
  NS_IMETHOD Search(bool *done) override { return _to Search(done); } \
  NS_IMETHOD SendUrl(void) override { return _to SendUrl(); } \
  NS_IMETHOD CurrentUrlDone(nsresult exitCode) override { return _to CurrentUrlDone(exitCode); } \
  NS_IMETHOD AddHit(nsMsgKey key) override { return _to AddHit(key); } \
  NS_IMETHOD AddResultElement(nsIMsgDBHdr *aHdr) override { return _to AddResultElement(aHdr); } \
  NS_IMETHOD OpenResultElement(nsMsgResultElement *element) override { return _to OpenResultElement(element); } \
  NS_IMETHOD ModifyResultElement(nsMsgResultElement *element, nsMsgSearchValue *value) override { return _to ModifyResultElement(element, value); } \
  NS_IMETHOD GetEncoding(char * *aEncoding) override { return _to GetEncoding(aEncoding); } \
  NS_IMETHOD FindTargetFolder(const nsMsgResultElement *element, nsIMsgFolder * *_retval) override { return _to FindTargetFolder(element, _retval); } \
  NS_IMETHOD Abort(void) override { return _to Abort(); } \
  NS_IMETHOD GetSearchCharsets(nsAString & srcCharset, nsAString & destCharset) override { return _to GetSearchCharsets(srcCharset, destCharset); } \
  NS_IMETHOD ClearScope(void) override { return _to ClearScope(); } 

/* 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) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ValidateTerms(); } \
  NS_IMETHOD Search(bool *done) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Search(done); } \
  NS_IMETHOD SendUrl(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SendUrl(); } \
  NS_IMETHOD CurrentUrlDone(nsresult exitCode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CurrentUrlDone(exitCode); } \
  NS_IMETHOD AddHit(nsMsgKey key) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddHit(key); } \
  NS_IMETHOD AddResultElement(nsIMsgDBHdr *aHdr) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddResultElement(aHdr); } \
  NS_IMETHOD OpenResultElement(nsMsgResultElement *element) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenResultElement(element); } \
  NS_IMETHOD ModifyResultElement(nsMsgResultElement *element, nsMsgSearchValue *value) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ModifyResultElement(element, value); } \
  NS_IMETHOD GetEncoding(char * *aEncoding) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEncoding(aEncoding); } \
  NS_IMETHOD FindTargetFolder(const nsMsgResultElement *element, nsIMsgFolder * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FindTargetFolder(element, _retval); } \
  NS_IMETHOD Abort(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Abort(); } \
  NS_IMETHOD GetSearchCharsets(nsAString & srcCharset, nsAString & destCharset) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSearchCharsets(srcCharset, destCharset); } \
  NS_IMETHOD ClearScope(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearScope(); } 

#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_ISUPPORTS(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(bool *done)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* void CurrentUrlDone (in nsresult exitCode); */
NS_IMETHODIMP nsMsgSearchAdapter::CurrentUrlDone(nsresult 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 AString srcCharset, out AString destCharset); */
NS_IMETHODIMP nsMsgSearchAdapter::GetSearchCharsets(nsAString & srcCharset, nsAString & destCharset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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


#endif /* __gen_nsIMsgSearchAdapter_h__ */
