This document is archived and information here might be outdated.  Recommended version.


IByteSwapStreamIO.Write Method (ArcObjects .NET 10.4 SDK)
ArcObjects Library Reference (System)  

IByteSwapStreamIO.Write Method

Perform a write byte swapping to the windows format.

[Visual Basic .NET]
Public Sub Write ( _
    ByVal dataType As esriByteSwapDataType, _
    ByVal pv As IntPtr, _
    ByVal cb As Integer, _
    ByRef pcbWritten As Integer _
)
[C#]
public void Write (
    esriByteSwapDataType dataType,
    IntPtr pv,
    uint cb,
    ref uint pcbWritten
);
[C++]
HRESULT Write(
  esriByteSwapDataType dataType,
  pv* pv,
  Unsigned long cb,
  Unsigned long* pcbWritten
);
[C++]

Parameters dataType [in]
dataType is a parameter of type esriByteSwapDataType pv [in] pv is a parameter of type cb [in] cb is a parameter of type Unsigned long pcbWritten [out] pcbWritten is a parameter of type Unsigned long

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Remarks

DataType [in]

  User specified type of the data to perform swapping on.

pv [in]

  A pointer to the buffer which contains the data that is to be written  

  to the stream object. A valid parameter should be provided.

cb [in]

  The number of bytes of data to attempt to write into the stream. The value

  can be zero.

pcbRead [out]

  A pointer to a ULONG variable that receives the actual number of bytes 

  written to the stream object. It could be set to NULL. In this case,

  the Write method does not provide the number of bytes written.

 

The Write method writes the specified number of bytes of data to the Stream object and performs a byte swapping on it. The number of bytes actually written to the stream is returned in pcbWritten parameter. If the byte count variable (pv) is zero byte, no data is written to the stream, and the Write operation has no effect. 

 

VC++ example:

  // Open the file and set it to be the stream object
  IBlobStreamPtr ipBlobStream(CLSID_FileStream);
  IFilePtr ipFile(ipBlobStream);
  ipFile->Open(L"C:\\fileIn", esriReadOnly);
  IStreamPtr ipStream(ipFile);
  IByteSwapStreamIOPtr ipByteSwapStreamIO (CLSID_ByteSwapStreamIO);   
  ipByteSwapStreamIO->putref_Stream(ipStream); 


  // Get the size of the stream 

  unsigned long size;
  ipBlobStream->get_Size(&size);


  // Read and swap stream

  BYTE pv[14];
  ULONG pcbRead;
  ipByteSwapStreamIO->Read(esriBSDTBYTE, &pv, size, &pcbRead);


  // Open a file to write the stream to

  DeleteFileW(L"C:\\fileOut");
  hr=ipFile->Open(L"C:\\fileOut", esriReadWrite);

 

  // Write to the stream

  ULONG pcbWritten;
  ipByteSwapStreamIO->Write(esriBSDTBYTE, c_pv, size, &pcbWritten);

See Also

IByteSwapStreamIO Interface