Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Download Visual Studio Add-In

IMalloc (Interfaces)
 
.
Summary
The IMalloc interface allocates, frees, and manages memory.

C# Definition:

[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("00000002-0000-0000-C000-000000000046")]
interface IMalloc {
    // Allocate a block of memory
    // Return value: a pointer to the allocated memory block.
    [PreserveSig]
    IntPtr Alloc(
       UInt32 cb); // Size, in bytes, of the memory block to be     
             // allocated.

    // Changes the size of a previously allocated memory block.
    // Return value: reallocated memory block
    [PreserveSig]
    IntPtr Realloc(
        IntPtr pv,  // Pointer to the memory block to be reallocated
        UInt32 cb); // Size of the memory block, in bytes, to be
             // reallocated.

    // Free a previously allocated block of memory.
    [PreserveSig]
    void Free(
        IntPtr pv); // Pointer to the memory block to be freed.

    // This method returns the size, in bytes, of a memory block
    // previously
    // allocated with IMalloc::Alloc or IMalloc::Realloc.
    // Return value: The size of the allocated memory block in bytes.
    [PreserveSig]
    UInt32 GetSize(
        IntPtr pv); // Pointer to the memory block for which the size is
            // requested.

    // This method determines whether this allocator was used to allocate
    // the specified block of memory.
    // Return value: 1 - allocated 0 - not allocated by this IMalloc Instance.
    [PreserveSig]
    Int16 DidAlloc(
        IntPtr pv); // Pointer to the memory block

    // Minimizes the heap by releasing unused memory to the operating system.
    [PreserveSig]
    void HeapMinimize();
    }

VB Definition:

<Runtime.InteropServices.ComImport()> _

<Runtime.InteropServices.InterfaceType(Runtime.InteropServices.ComInterfaceType.InterfaceIsIUnknown)> _

<Runtime.InteropServices.Guid("00000002-0000-0000-C000-000000000046")> _

Public Interface IMalloc

    ''' <summary>
    ''' Allocate a block of Memory.
    ''' </summary>
    ''' <param name="cb">Size, in bytes, of the memory block to be allocated.</param>
    ''' <returns>Returns a pointer to the allocated memory block.</returns>
    <Runtime.InteropServices.PreserveSig()> Function Alloc(ByVal cb As UInt32) As IntPtr

    ''' <summary>
    ''' Changes the size of the allocated memory block.
    ''' </summary>
    ''' <param name="pv">Pointer to the memory block to be reallocated.</param>
    ''' <param name="cb">Size of the memory block, in bytes, to be reallocated.</param>
    ''' <returns>Returns the reallocated memory block.</returns>
    <Runtime.InteropServices.PreserveSig()> Function Realloc(ByVal pv As IntPtr, ByVal cb As UInt32) As IntPtr

    ''' <summary>
    ''' Free a previously allocated block of memory.
    ''' </summary>
    ''' <param name="pv">Pointer to the memory block to be freed.</param>
    <Runtime.InteropServices.PreserveSig()> Sub Free(ByVal pv As IntPtr)

    ''' <summary>
    ''' This method returns the size, in bytes, of a memory block previously allocated with IMalloc::Alloc or IMalloc::Realloc.
    ''' </summary>
    ''' <param name="pv">Pointer to the memory block for which the size is requested.</param>
    ''' <returns>Returns the size of the allocated memory block in bytes.</returns>
    <Runtime.InteropServices.PreserveSig()> Function GetSize(ByVal pv As IntPtr) As UInt32

    ''' <summary>
    ''' This method determines whether this allocator was used to allocate the specified block of memory.
    ''' </summary>
    ''' <param name="pv">Pointer to the memory block.</param>
    ''' <returns>1 - allocated 0 - not allocated by this IMalloc Instance.</returns>
    <Runtime.InteropServices.PreserveSig()> Function DidAlloc(ByVal pv As IntPtr) As Int16

    ''' <summary>
    ''' 'Minimizes the heap by releasing unused memory to the operating system.
    ''' </summary>
    <Runtime.InteropServices.PreserveSig()> Sub HeapMinimize()

End Interface

Please edit this page!

Do you have...

  • helpful tips?
  • corrections to the existing content?
  • alternate definitions?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing any supporting types needed.

 
Access PInvoke.net directly from VS:
Terms of Use
Find References
Show Printable Version
Revisions