Função CoTaskMemRealloc (combaseapi.h)

Altera o tamanho de um bloco alocado anteriormente da memória da tarefa.

Sintaxe

LPVOID CoTaskMemRealloc(
  [in, optional] LPVOID pv,
  [in]           SIZE_T cb
);

Parâmetros

[in, optional] pv

Um ponteiro para o bloco de memória a ser realocado. Esse parâmetro pode ser NULL, conforme discutido em Comentários.

[in] cb

O tamanho do bloco de memória a ser realocado, em bytes. Esse parâmetro pode ser 0, conforme discutido em Comentários.

Retornar valor

Se a função for bem-sucedida, ela retornará o bloco de memória realocada. Caso contrário, ele retornará NULL.

Comentários

Essa função altera o tamanho de um bloco de memória alocado anteriormente da mesma forma que IMalloc::Realloc . Não é necessário chamar a função CoGetMalloc para obter um ponteiro para o alocador OLE antes de chamar CoTaskMemRealloc.

O parâmetro pv aponta para o início do bloco de memória. Se pv for NULL, CoTaskMemRealloc alocará um novo bloco de memória da mesma forma que a função CoTaskMemAlloc . Se pv não for NULL, ele deverá ser um ponteiro retornado por uma chamada anterior para CoTaskMemAlloc.

O parâmetro cb especifica o tamanho do novo bloco. O conteúdo do bloco fica inalterado até o menor dos tamanhos novos e antigos, embora o novo bloco possa estar em um local diferente. Como o novo bloco pode estar em um local de memória diferente, não há garantia de que o ponteiro retornado por CoTaskMemRealloc seja o ponteiro passado pelo argumento pv . Se pv não for NULL e cb for 0, a memória apontada por pv será liberada.

CoTaskMemRealloc retorna um ponteiro nulo para o bloco de memória realocado (e possivelmente movido). O valor retornado será NULL se o tamanho for 0 e o argumento buffer não for NULL ou se não houver memória suficiente disponível para expandir o bloco para o tamanho especificado. No primeiro caso, o bloco original é liberado; no segundo caso, o bloco original é inalterado.

O espaço de armazenamento ao qual o valor retornado apontou com certeza estará alinhado de modo adequado para armazenamento de qualquer tipo de objeto. Para obter um ponteiro para um tipo diferente de void, use uma conversão de tipo no valor retornado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho combaseapi.h (inclua Objbase.h)
Biblioteca Ole32.lib
DLL Ole32.dll

Confira também

Cotaskmemalloc

Cotaskmemfree

IMalloc::Realloc