Función CoTaskMemRealloc (combaseapi.h)

Cambia el tamaño de un bloque de memoria de tarea asignado previamente.

Sintaxis

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

Parámetros

[in, optional] pv

Puntero al bloque de memoria que se va a reasignar. Este parámetro puede ser NULL, como se describe en Comentarios.

[in] cb

Tamaño del bloque de memoria que se va a reasignar, en bytes. Este parámetro puede ser 0, como se describe en Comentarios.

Valor devuelto

Si la función se realiza correctamente, devuelve el bloque de memoria reasignado. De lo contrario, devuelve NULL.

Comentarios

Esta función cambia el tamaño de un bloque de memoria asignado previamente de la misma manera que lo hace IMalloc::Realloc . No es necesario llamar a la función CoGetMalloc para obtener un puntero al asignador OLE antes de llamar a CoTaskMemRealloc.

El parámetro pv apunta al principio del bloque de memoria. Si pv es NULL, CoTaskMemRealloc asigna un nuevo bloque de memoria de la misma manera que la función CoTaskMemAlloc . Si pv no es NULL, debe ser un puntero devuelto por una llamada anterior a CoTaskMemAlloc.

El parámetro cb especifica el tamaño del nuevo bloque. El contenido del bloque es igual hasta el más pequeño de los tamaños nuevo y antiguo, aunque el bloque nuevo puede estar en otra ubicación. Dado que el nuevo bloque puede estar en una ubicación de memoria diferente, no se garantiza que el puntero devuelto por CoTaskMemRealloc sea el puntero pasado por el argumento pv . Si pv no es NULL y cb es 0, se libera la memoria a la que apunta pv .

CoTaskMemRealloc devuelve un puntero void al bloque de memoria reasignado (y posiblemente movido). El valor devuelto es NULL si el tamaño es 0 y el argumento del búfer no es NULL o si no hay suficiente memoria disponible para expandir el bloque al tamaño especificado. En el primer caso, se libera el bloque original; en el segundo caso, el bloque original no cambia.

Se garantiza que el espacio de almacenamiento al que apunta el valor devuelto esté alineado correctamente para el almacenamiento de todo tipo de objeto. Para obtener un puntero a un tipo distinto de void, use una conversión de tipo en el valor devuelto.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado combaseapi.h (incluya Objbase.h)
Library Ole32.lib
Archivo DLL Ole32.dll

Consulte también

CoTaskMemAlloc

CoTaskMemFree

IMalloc::Realloc