Export (0) Print
Expand All

IImageDecodeEventSink::GetSurface Method

Returns a drawing surface of the requested size and format.

Syntax


HRESULT GetSurface(
    LONG nWidth,
    LONG nHeight,
    REFGUID bfid,
    ULONG nPasses,
    DWORD dwHints,
    IUnknown **ppSurface
);

Parameters

nWidth
[in] A long integer that specifies width in pixels.
nHeight
[in] A long integer that specifies height in pixels.
bfid
[in] A GUID that specifies the destination format. See IImageDecodeEventSink::OnBeginDecode for a list of supported formats.
nPasses
[in] An unsigned long integer that specifies the number of passes required by interlacing image formats.
dwHints
[in] Any combination of the following flags.
IMGDECODE_HINT_TOPDOWN
The image is drawn from top to bottom.
IMGDECODE_HINT_BOTTOMUP
(Unused) The image is drawn from bottom to top.
IMGDECODE_HINT_FULLWIDTH
The image initially is drawn at full width, instead of by quadrants.
ppSurface
[out] A pointer to a variable of type IUnknown that receives an object that implements the drawing surface.

Return Value

Returns S_OK if successful, or an error value otherwise.

Remarks

The nPasses and dwHints parameter values are optional, and can be ignored by the event sink. Multi-pass decoding is possible even if the nPasses parameter is set to 1. Some event sinks dither RGB-8 images on consecutive calls to IImageDecodeEventSink::OnProgress, if IMGDECODE_HINT_TOPDOWN and IMGDECODE_HINT_FULLWIDTH are passed in dwHints.

If IMGDECODE_EVENT_USEDDRAW is returned by IImageDecodeEventSink::OnBeginDecode in the pdwEvents parameter, then the object returned in the ppSurface parameter provides minimal support for the IDirectDrawSurface interface. You must call Release on the pointer after querying it for the IDirectDrawSurface interface to subtract the additional reference count.

The following seven methods are supported by the drawing surface.

Community Additions

ADD
Show:
© 2014 Microsoft