/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * nsIPluginStreamListener * * @status DEPRECATED * * Originally published XPCOM Plugin API is now deprecated * Developers are welcome to use NPAPI, please refer to: * http://mozilla.org/projects/plugins/ */ #include "nsISupports.idl" #include "nspluginroot.idl" #include "nsIPluginStreamInfo.idl" #include "nsIInputStream.idl" %{C++ #include "nsplugindefs.h" %} /** * The nsIPluginStreamListener interface defines the minimum set of functionality that * the browser will support if it allows plugins. Plugins can call QueryInterface * to determine if a plugin manager implements more specific APIs or other * browser interfaces for the plugin to use (e.g. nsINetworkManager). */ [uuid(df055770-5448-11d2-8164-006008119d7a)] interface nsIPluginStreamListener : nsISupports { /** * Notify the observer that the URL has started to load. This method is * called only once, at the beginning of a URL load.

* * @param aPluginInfo - plugin stream info * @return - the return value is currently ignored, in the future * it may be used to cancel the URL load.. */ void onStartBinding(in nsIPluginStreamInfo aPluginInfo); /** * Notify the client that data is available in the input stream. This * method is called whenver data is written into the input stream by the * networking library...

* * @param aPluginInfo - plugin stream info * @param aInputStream - the input stream containing the data. This stream can * be either a blocking or non-blocking stream. * @param aLength - the amount of data that was just pushed into the stream. * @return - the return value is currently ignored. */ void onDataAvailable(in nsIPluginStreamInfo aPluginInfo, in nsIInputStream aInputStream, in unsigned long aLength); /** * Notify the client that data is available in the file. * * @param aPluginInfo - plugin stream info * @param aFileName - the name of the file containing the data * @return - the return value is currently ignored. */ void onFileAvailable(in nsIPluginStreamInfo aPluginInfo, in string aFileName); /** * Notify the observer that the URL has finished loading. This method is * called once when the networking library has finished processing the * URL transaction initiatied via the nsINetService::Open(...) call.

* * This method is called regardless of whether the URL loaded successfully.

* * @param aPluginInfo - plugin stream info * @param aStatus - reason why the stream has been terminated * @return - the return value is currently ignored. */ void onStopBinding(in nsIPluginStreamInfo aPluginInfo, in nsresult aStatus); /** * Gets the type of the stream * * @param aStreamType - the type of the stream */ readonly attribute nsPluginStreamType streamType; };