nsISHistory.idl
上传用户:goldcmy89
上传日期:2017-12-03
资源大小:2246k
文件大小:7k
源码类别:

PlugIns编程

开发平台:

Visual C++

  1. /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
  2. /* ***** BEGIN LICENSE BLOCK *****
  3.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  4.  *
  5.  * The contents of this file are subject to the Mozilla Public License Version
  6.  * 1.1 (the "License"); you may not use this file except in compliance with
  7.  * the License. You may obtain a copy of the License at
  8.  * http://www.mozilla.org/MPL/
  9.  *
  10.  * Software distributed under the License is distributed on an "AS IS" basis,
  11.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  12.  * for the specific language governing rights and limitations under the
  13.  * License.
  14.  *
  15.  * The Original Code is mozilla.org code.
  16.  *
  17.  * The Initial Developer of the Original Code is
  18.  * Netscape Communications Corporation.
  19.  * Portions created by the Initial Developer are Copyright (C) 1999
  20.  * the Initial Developer. All Rights Reserved.
  21.  *
  22.  * Contributor(s):
  23.  *   Radha Kulkarni (radha@netscape.com)
  24.  *
  25.  * Alternatively, the contents of this file may be used under the terms of
  26.  * either of the GNU General Public License Version 2 or later (the "GPL"),
  27.  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  28.  * in which case the provisions of the GPL or the LGPL are applicable instead
  29.  * of those above. If you wish to allow use of your version of this file only
  30.  * under the terms of either the GPL or the LGPL, and not to allow others to
  31.  * use your version of this file under the terms of the MPL, indicate your
  32.  * decision by deleting the provisions above and replace them with the notice
  33.  * and other provisions required by the GPL or the LGPL. If you do not delete
  34.  * the provisions above, a recipient may use your version of this file under
  35.  * the terms of any one of the MPL, the GPL or the LGPL.
  36.  *
  37.  * ***** END LICENSE BLOCK ***** */
  38. #include "nsISupports.idl"
  39. interface nsIHistoryEntry;
  40. interface nsISHistoryListener;
  41. interface nsISimpleEnumerator;
  42. /**
  43.  * An interface to the primary properties of the Session History
  44.  * component. In an embedded browser environment, the nsIWebBrowser
  45.  * object creates an instance of session history for each open window.
  46.  * A handle to the session history object can be obtained from
  47.  * nsIWebNavigation. In a non-embedded situation, the  owner of the
  48.  * session history component must create a instance of it and set
  49.  * it in the nsIWebNavigation object.
  50.  * This interface is accessible from javascript. 
  51.  *
  52.  * @status FROZEN
  53.  */
  54.  
  55. %{C++
  56. #define NS_SHISTORY_CID 
  57. {0x7294fe9c, 0x14d8, 0x11d5, {0x98, 0x82, 0x00, 0xC0, 0x4f, 0xa0, 0x2f, 0x40}}
  58. #define NS_SHISTORY_CONTRACTID "@mozilla.org/browser/shistory;1"
  59. %}
  60. [scriptable, uuid(7294FE9B-14D8-11D5-9882-00C04FA02F40)]
  61. interface nsISHistory: nsISupports
  62. {
  63.   /**
  64.    * A readonly property of the interface that returns 
  65.    * the number of toplevel documents currently available
  66.    * in session history.
  67.    */
  68.    readonly attribute long count;
  69.   /**
  70.    * A readonly property of the interface that returns 
  71.    * the index of the current document in session history.
  72.    */
  73.    readonly attribute long index;
  74.   /**
  75.    * A read/write property of the interface, used to Get/Set
  76.    * the maximum number of toplevel documents, session history 
  77.    * can hold for each instance. 
  78.    */
  79.    attribute long maxLength;
  80.   /**
  81.    * Called to obtain handle to the history entry at a
  82.    * given index.
  83.    *
  84.    * @param index             The index value whose entry is requested.
  85.    * @param modifyIndex       A boolean flag that indicates if the current
  86.    *                          index of session history should be modified 
  87.    *                          to the parameter index.
  88.    *
  89.    * @return                  <code>NS_OK</code> history entry for 
  90.    *                          the index is obtained successfully.
  91.    *                          <code>NS_ERROR_FAILURE</code> Error in obtaining
  92.    *                          history entry for the given index.
  93.    */
  94.    nsIHistoryEntry getEntryAtIndex(in long index, in boolean modifyIndex);
  95.   /**
  96.    * Called to purge older documents from history.
  97.    * Documents can be removed from session history for various 
  98.    * reasons. For example to  control memory usage of the browser, to 
  99.    * prevent users from loading documents from history, to erase evidence of
  100.    * prior page loads etc...
  101.    *
  102.    * @param numEntries        The number of toplevel documents to be
  103.    *                          purged from history. During purge operation,
  104.    *                          the latest documents are maintained and older 
  105.    *                          'numEntries' documents are removed from history.
  106.    * @throws                  <code>NS_SUCCESS_LOSS_OF_INSIGNIFICANT_DATA</code> Purge was vetod.
  107.    * @throws                  <code>NS_ERROR_FAILURE</code> numEntries is
  108.    *                          invalid or out of bounds with the size of history.
  109.    *                          
  110.    */
  111.    void PurgeHistory(in long numEntries);
  112.   /**
  113.    * Called to register a listener for the session history component.
  114.    * Listeners are notified when pages are loaded or purged from history.
  115.    * 
  116.    * @param aListener         Listener object to be notified for all
  117.    *                          page loads that initiate in session history.
  118.    *
  119.    * @note                    A listener object must implement 
  120.    *                          nsISHistoryListener and nsSupportsWeakReference
  121.    *
  122.    * @see nsISHistoryListener
  123.    * @see nsSupportsWeakReference
  124.    */
  125.    void addSHistoryListener(in nsISHistoryListener aListener);
  126.   /**
  127.    * Called to remove a listener for the session history component.
  128.    * Listeners are notified when pages are loaded from history.
  129.    * 
  130.    * @param aListener         Listener object to be removed from 
  131.    *                          session history.
  132.    *
  133.    * @note                    A listener object must implement 
  134.    *                          nsISHistoryListener and nsSupportsWeakReference
  135.    * @see nsISHistoryListener
  136.    * @see nsSupportsWeakReference
  137.    */ 
  138.    void removeSHistoryListener(in nsISHistoryListener aListener);
  139.   /**
  140.    * Called to obtain a enumerator for all the  documents stored in 
  141.    * session history. The enumerator object thus returned by this method
  142.    * can be traversed using nsISimpleEnumerator. 
  143.    *
  144.    * @note  To access individual history entries of the enumerator, perform the
  145.    *        following steps:
  146.    *        1) Call nsISHistory->GetSHistoryEnumerator() to obtain handle 
  147.    *           the nsISimpleEnumerator object.
  148.    *        2) Use nsISimpleEnumerator->GetNext() on the object returned
  149.    *           by step #1 to obtain handle to the next object in the list. 
  150.    *           The object returned by this step is of type nsISupports.
  151.    *        3) Perform a QueryInterface on the object returned by step #2 
  152.    *           to nsIHistoryEntry.
  153.    *        4) Use nsIHistoryEntry to access properties of each history entry. 
  154.    *
  155.    * @see nsISimpleEnumerator
  156.    * @see nsIHistoryEntry
  157.    * @see QueryInterface()
  158.    * @see do_QueryInterface()
  159.    */
  160.    readonly attribute nsISimpleEnumerator SHistoryEnumerator;
  161. };