Functions


CoTaskMemAlloc Function

Allocates a block of task memory in the same way that IMalloc::Alloc does.

Syntax

C++
LPVOID CoTaskMemAlloc(
  __in  SIZE_T cb
);

Parameters

cb [in]

The size of the memory block to be allocated, in bytes.

Return Value

If the function succeeds, it returns the allocated memory block. Otherwise, it returns NULL.

Remarks

CoTaskMemAlloc uses the default allocator to allocate a memory block in the same way that IMalloc::Alloc does. It is not necessary to call the CoGetMalloc function before calling CoTaskMemAlloc.

The initial contents of the returned memory block are undefined – there is no guarantee that the block has been initialized. The allocated block may be larger than cb bytes because of the space required for alignment and for maintenance information.

If cb is 0, CoTaskMemAlloc allocates a zero-length item and returns a valid pointer to that item. If there is insufficient memory available, CoTaskMemAlloc returns NULL. Applications should always check the return value from this function, even when requesting small amounts of memory, because there is no guarantee that the memory will be allocated.

Requirements

Minimum supported clientWindows 2000 Professional
Minimum supported serverWindows 2000 Server
HeaderObjbase.h
LibraryOle32.lib
DLLOle32.dll

See Also

CoTaskMemFree
CoTaskMemRealloc
IMalloc::Alloc

Send comments about this topic to Microsoft

Build date: 11/12/2009

Tags :


Community Content

dmex
vb.net syntax
<DllImport("ole32.dll")> Public Shared Function CoTaskMemAlloc(ByVal cb As Integer) As IntPtr
End Function
Tags :

dmex
C# syntax
[DllImport("ole32.dll")]
internal static extern IntPtr CoTaskMemAlloc(int cb);
Tags :

joechung
Why P/Invoke?
Why bother with those P/Invoke methods when you can just call Marshal.AllocCoTaskMem?
Tags : c# vb.net syntax

Page view tracker