共用方式為


IVMRSurfaceAllocator9::GetSurface method (vmr9.h)

[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

The GetSurface method gets a Direct3D surface from the allocator-presenter.

Syntax

HRESULT GetSurface(
  [in]  DWORD_PTR         dwUserID,
  [in]  DWORD             SurfaceIndex,
  [in]  DWORD             SurfaceFlags,
  [out] IDirect3DSurface9 **lplpSurface
);

Parameters

[in] dwUserID

Application-defined identifier. This value is the same value that the application passed to the IVMRSurfaceAllocatorNotify9::AdviseSurfaceAllocator method in the dwUserID parameter.

[in] SurfaceIndex

Specifies the index of the surface to retrieve.

[in] SurfaceFlags

Reserved.

[out] lplpSurface

Receives a pointer to the IDirect3DSurface9 interface. The caller must release the interface.

Return value

The method returns an HRESULT. Possible values include those in the following table.

Return code Description
S_OK
The method succeeded.

Remarks

Include DShow.h and D3d9.h before Vmr9.h.

Requirements

Requirement Value
Minimum supported client Windows XP with SP2 [desktop apps only]
Minimum supported server Windows Server 2003 R2 [desktop apps only]
Target Platform Windows
Header vmr9.h
Library Strmiids.lib

See also

Error and Success Codes

IVMRSurfaceAllocator9 Interface

Supplying a Custom Allocator-Presenter for VMR-9

Using the Video Mixing Renderer