MFCopyImage function (mfapi.h)

Copies an image or image plane from one buffer to another.


  [in] BYTE       *pDest,
  [in] LONG       lDestStride,
  [in] const BYTE *pSrc,
  [in] LONG       lSrcStride,
  [in] DWORD      dwWidthInBytes,
  [in] DWORD      dwLines


[in] pDest

Pointer to the start of the first row of pixels in the destination buffer.

[in] lDestStride

Stride of the destination buffer, in bytes.

[in] pSrc

Pointer to the start of the first row of pixels in the source image.

[in] lSrcStride

Stride of the source image, in bytes.

[in] dwWidthInBytes

Width of the image, in bytes.

[in] dwLines

Number of rows of pixels to copy.

Return value

If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.


This function copies a single plane of the image. For planar YUV formats, you must call the function once for each plane. In this case, pDest and pSrc must point to the start of each plane.

This function is optimized if the MMX, SSE, or SSE2 instruction sets are available on the processor. The function performs a non-temporal store (the data is written to memory directly without polluting the cache).

Note  Prior to Windows 7, this function was exported from evr.dll. Starting in Windows 7, this function is exported from mfplat.dll, and evr.dll exports a stub function that calls into mfplat.dll. For more information, see Library Changes in Windows 7.


Requirement Value
Minimum supported client Windows Vista [desktop apps | UWP apps]
Minimum supported server Windows Server 2008 [desktop apps | UWP apps]
Target Platform Windows
Header mfapi.h
Library Evr.lib
DLL Mfplat.dll

See also

Image Stride

Media Foundation Functions

Media Types