This topic documents a feature of Visual Filters and Transitions, which is deprecated as of Windows Internet Explorer 9 and obsolete as of Internet Explorer 10.
Unpacks the specified number of samples into the supplied buffer in alpha-premultiplied PMARGB32 pixel format. This method only unpacks a single row. Use IDXARGBReadPtr::UnpackRect to unpack multiple rows.
DXPMSAMPLE *UnpackPremult( DXPMSAMPLE *pSamples, ULONG cSamples, BOOL bMove );
- [in] Pointer to the buffer you must supply to store the samples. If the native type of the surface is PMARGB32, this pointer can be NULL. Otherwise it must point to a buffer large enough to hold the samples.
- [in] Number of samples to retrieve.
- [in] Value that specifies whether to advance the horizontal position of the read pointer. Specify TRUE to advance or FALSE to leave the pointer set to the current location.
Returns a pointer to a buffer that contains the unpacked, converted sample data. If pSamples is non-NULL, this is always equal to pSamples. If pSamples is NULL, the returned pointer points to the samples in the surface memory.
This method converts the pixel format of the underlying surface samples to PMARGB32 format before copying them into the buffer that you must supply. If the underlying data is not in alpha-premultiplied format, the samples are converted as they are copied.
If you supply a buffer in the pSamples parameter, the samples are stored in that location, and this method returns a pointer to your buffer.
This method uses the DXPMSAMPLE structure to store color information about the samples.
Note Do not use the returned pointer to modify a read-only surface. Good coding practice for read-locked surfaces is to assign the returned pointer to a constant DXPMSAMPLE pointer.