This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for

This method is used by an image source to pass image pixel data to the image sink.

Use this method if the pixel data buffer is obtained by some means other than by calling IImageSink::GetPixelDataBuffer.

For best performance it may be best to use IImageSink::GetPixelDataBufferto obtain the buffer. This is because IImageSink::GetPixelDataBufferwill align the buffer on a 128-byte boundary as required by some hardware decoders. If IImageSink::PushPixelDatais used instead, that method will create a separate buffer that is 128-byte aligned and copy the pixel data to it. It does this even if the buffer passed to it by the image source is 128-byte aligned.


HRESULT PushPixelData(
  const RECT*	 
  const BitmapData* 



[in] A pointer to a RECTstructure, specifying the dimensions of the image in pixels.


[in] A pointer to a BitmapDataobject containing the pixel data for the image.


[in] A BOOL value that tells the sink whether this is the last pass over the specified image area.

Set this value to TRUE if this call to IImageSink::PushPixelDatais the last pass; otherwise, set to FALSE.

Return Value

If successful, this method returns S_OK.

This method may return E_NOTIMPL if it fails.


You must call IImageSink::SetPaletteprior to sending data to the sink.

A source should only call this method if the negotiated format returned from IImageSink::BeginSinkwas the image format identifier ImageFormatMemoryBMP. For more information, see Imaging GUIDs.


Header imaging.h
Library Imaging.lib
Windows Embedded CE Windows CE 5.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also