зеркало из https://github.com/mozilla/gecko-dev.git
63 строки
2.4 KiB
Plaintext
63 строки
2.4 KiB
Plaintext
#include "nsIStreamListener.idl"
|
|
#include "nsIInputStream.idl"
|
|
#include "nsIURI.idl"
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// STREAM CONVERTER USERS
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
// There are currently two ways to use a stream converter:
|
|
// 1. SYNCRONOUS. Stream to Stream.
|
|
// You can supply the service with a stream of type X
|
|
// and it will convert it to your desired output type and return
|
|
// a converted stream to you.
|
|
//
|
|
//
|
|
// 3. ASYNCRONOUS. nsIStreamListener to nsIStreamListener
|
|
// You can supply data directly to the converter by calling it's
|
|
// nsIStreamListener::OnDataAvailable() method. It will then
|
|
// convert that data from type X to your desired output type and
|
|
// return converted data to you via the nsIStreamListener you passed
|
|
// in by calling its OnDataAvailable() method.
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// STREAM CONVERTER SUPPLIERS
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Registering a stream converter.
|
|
// Stream converter registration is a two step process. First of all the stream
|
|
// converter implementation must register itself with the component manager using
|
|
// a progid in the format below. Second, the stream converter must add the progid
|
|
// to the registry.
|
|
//
|
|
// Stream converter progid format (the stream converter root key is defined in this
|
|
// file):
|
|
//
|
|
// Software/Netscape/streamconv/?from=FROM_MIME_TYPE?to=TO_MIME_TYPE
|
|
|
|
[scriptable, uuid(46484B30-3BD2-11d3-A16C-0050041CAF44)]
|
|
interface nsIStreamConverter : nsIStreamListener {
|
|
|
|
// SYNCRONOUS VERSION
|
|
|
|
// Converts aFromStream of type aFromType, to a resulting stream of type aToType.
|
|
// Use this when you have a stream as input.
|
|
nsIInputStream Convert(in nsIInputStream aFromStream,
|
|
in wstring aFromType,
|
|
in wstring aToType,
|
|
in nsISupports aCtxt);
|
|
|
|
// ASYNCRONOUS VERSION
|
|
|
|
// Converts data arriving via the converter's nsIStreamListener::OnDataAvailable() method
|
|
// from type aFromType to aToType pushing the converted data out to the caller via
|
|
// aListener::OnDataAvailable().
|
|
void AsyncConvertData(in wstring aFromType,
|
|
in wstring aToType,
|
|
in nsIStreamListener aListener,
|
|
in nsISupports aCtxt);
|
|
};
|
|
|
|
%{C++
|
|
#define NS_ISTREAMCONVERTER_KEY "Software/Netscape/streamconv/"
|
|
%} |