MSStream object

Represents binary data in JavaScript.

Internet Explorer 10

 

Syntax

var stream = stream.DetachStream;

DOM Information

Inheritance Hierarchy

The MSStream does not inherit from any class or interface.

Members

The MSStream object has these types of members:

  • Methods
  • Properties

Methods

The MSStream object has these methods.

Method Description
msClose

Closes the Blob object by releasing the stream held by the Blob and the associated file or memory resource.

msDetachStream

Detaches the IInputStream object from the MSStream in order to use the backing IInputStream object in other WinRT APIs.

 

Properties

The MSStream object has these properties.

Property Description

type

Returns the content type of the object.

 

Remarks

The MSStream object is a Document Object Model (DOM) type that represents a stream of unsized, sequential binary data. You use the MSStream object for data that is streaming over the network which hasn't completed downloaded yet, or as an analogous type to IInputSteam winrt objects. MSStream is backed by IInputStream.

The MSStream object also allows Interop with XHR and HTML tags for the IInputStream WinRT object.

An MSStream is consumed or created in the following areas:

  • XmlHttpRequest (XHR)
  • MSApp.createStreamFromInputStream

You create a Uniform Resource Identifier (URI) for the MSStream object using the window.URL.createObjectURL method. MSStream is intended for a one-time use only; the URI is revoked when it is resolved by the HTML element that is consuming the stream.

Examples

The following shows how to get an MSStream from XMLHttpRequest in ready state 3 which is before the data has been fully downloaded. The example then goes on to show how you could obtain the IInputStream from the MSStream object for use with other WinRT APIs.

var xhrRequest;

function readyStateCallback() {
  if (xhrRequest.readyState == 3 && xhrRequest.status == 200 ) {
    var msstream = xhrRequest.response; // MSStream object
    var stream = msstream.msDetachStream(); // IInputStreamObject
       
    doSomething(stream);
  }
}

function downloadBlob() {          
  xhrRequest = new XMLHttpRequest();

  if (xhrRequest) {
    xhrRequest.open("GET", "https://myserver/myfile", true);
    xhrRequest.responseType = "ms-stream";
    xhrRequest.onreadystatechange = readyStateCallback;
    xhrRequest.send(null);
  }
}