Método CBaseAllocator.Alloc
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
O Alloc
método aloca memória para os buffers.
Sintaxe
virtual HRESULT Alloc();
Parâmetros
Esse método não tem parâmetros.
Retornar valor
Retorna um dos seguintes valores HRESULT .
Código de retorno | Descrição |
---|---|
|
Os requisitos de buffer não foram alterados. |
|
Os requisitos de buffer foram alterados. |
|
Os requisitos de buffer não foram definidos. |
Comentários
Esse método é chamado pelo método CBaseAllocator::Commit .
Na classe base, esse método não aloca nenhuma memória. Ele retornará um erro se os requisitos de buffer não tiverem sido definidos, S_FALSE se os requisitos não tiverem sido alterados e S_OK se os requisitos tiverem sido alterados.
Uma classe derivada deve substituir esse método para executar a alocação de memória real. Normalmente, a classe derivada executará as seguintes etapas:
- Chame a implementação da classe base para determinar se a memória realmente precisa ser alocada.
- Alocar memória.
- Crie objetos CMediaSample que contêm partes de memória da etapa 2.
- Adicione cada objeto CMediaSample à lista de exemplos gratuitos (CBaseAllocator::m_lFree).
Para obter um exemplo, consulte CMemAllocator::Alloc.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|