Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
| Microsoft DirectShow 9.0 | 
CBaseAllocator::Alloc
The Alloc method allocates memory for the buffers.
Syntax
virtual HRESULT Alloc(void);
Return Value
Returns one of the following HRESULT values.
| Value | Description | 
| S_FALSE | Buffer requirements have not changed. | 
| S_OK | Buffer requirements have changed. | 
| VFW_E_SIZENOTSET | Buffer requirements were not set. | 
Remarks
This method is called by the CBaseAllocator::Commit method.
In the base class, this method does not allocate any memory. It returns an error if the buffer requirements were not set, S_FALSE if the requirements have not changed, and S_OK if the requirements have changed.
A derived class should override this method to perform the actual memory allocation. Typically, the derived class will perform the following steps:
- Call the base class implementation, to determine whether the memory truly needs allocating.
 - Allocate memory.
 - Create CMediaSample objects that contain chunks of memory from step 2.
 - Add each CMediaSample object to the list of free samples (CBaseAllocator::m_lFree).
 
For an example, see CMemAllocator::Alloc.
Requirements
** Header:** Declared in Amfilter.h; include Streams.h.
** Library:** Use Strmbase.lib (retail builds) or Strmbasd.lib (debug builds).
See Also