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

CreateILockBytesOnHGlobal (ole32)
 
.
Summary
The CreateILockBytesOnHGlobal function creates a byte array object, using global memory as the physical device, which is intended to be the compound file foundation. This object supports a COM implementation of the ILockBytes interface.

C# Signature:

    /// <summary>
    /// The CreateILockBytesOnHGlobal function creates a byte array object,
    /// using global memory as the physical device, which is intended to be the
    /// compound file foundation. This object supports a COM implementation of the
    /// ILockBytes interface.
    /// </summary>
    ///
    /// <param name="hGlobal">The memory handle allocated by the GlobalAlloc function.
    /// The handle must be allocated as moveable and nondiscardable. If the handle is
    /// shared between processes, it must also be allocated as shared. New handles should
    /// be allocated with a size of zero. If hGlobal is NULL, CreateILockBytesOnHGlobal
    /// internally allocates a new shared memory block of size zero.</param>
    ///
    /// <param name="fDeleteOnRelease">A flag that specifies whether the underlying handle
    /// for this byte array object should be automatically freed when the object is released.
    /// If set to FALSE, the caller must free the hGlobal after the final release. If set
    /// to TRUE, the final release will automatically free the hGlobal parameter.</param>
    ///
    /// <param name="ppLkbyt">The address of ILockBytes pointer variable that receives the
    /// interface pointer to the new byte array object.</param>
    ///
    /// <returns>This function supports the standard return values E_INVALIDARG and E_OUTOFMEMORY, as well as the following:
    /// S_OK: The byte array object was created successfully.</returns>
    [DllImport ("ole32.dll")]
    public extern static int CreateILockBytesOnHGlobal(IntPtr hGlobal, [MarshalAs(UnmanagedType.Bool)] bool fDeleteOnRelease, out ILockBytes ppLkbyt);

or

[DllImport("ole32.dll",
    EntryPoint="CreateILockBytesOnHGlobal",
    ExactSpelling=true, PreserveSig=true, CharSet=CharSet.Ansi,
    CallingConvention=CallingConvention.StdCall)]
static extern int CreateILockBytesOnHGlobal(IntPtr /* HGLOBAL */ hGlobal, bool fDeleteOnRelease, [MarshalAs(UnmanagedType.Interface)]out object /* ILockBytes** */ ppLkbyt);

VB.NET Signature:

Public Class Win32

    <DllImport("ole32.dll")> _
    Public Shared Function CreateILockBytesOnHGlobal(ByVal hGlobal As IntPtr, _
                              ByVal fDeleteOnRelease As Boolean, _
                              <Out()> ByRef ppLkbyt As IlockBytes) _
                              As Integer
    End Function

End Class

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

With VB.NET,

Dim lockbytes As IlockBytes = Nothing

Dim hr As Integer

hr = Win32.CreateILockBytesOnHGlobal(IntPtr.Zero, True, lockbytes)

Alternative Managed API:

Do you know one? Please contribute it!

Documentation

Please edit this page!

Do you have...

  • helpful tips or sample code to share for using this API in managed code?
  • corrections to the existing content?
  • variations of the signature you want to share?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).

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