CreateIconFromResource (user32)
Last changed: -94.233.13.80

.
Summary

C# Signature:

[DllImport("user32.dll")]
static extern IntPtr CreateIconFromResource(byte[] presbits, uint dwResSize, bool fIcon, uint dwVer);

VB.NET Signature:

<DllImport("user32.dll")> _
Private Shared Function CreateIconFromResource(presbits As Byte(), dwResSize As UInteger, fIcon As Boolean, dwVer As UInteger) As IntPtr
End Function

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

Please add some!

Alternative Managed API:

Do you know one? Please contribute it!

Documentation

// this is a previouslly released item

// used for loading animated mouse cursors from file loading example provided below in my new improved class

public class AdvancedCursors

{

    [DllImport("User32.dll")]
    private static extern IntPtr LoadCursorFromFile(String str);

    public static Cursor Create(string filename)
    {
    IntPtr hCursor = LoadCursorFromFile(filename);

    if (!IntPtr.Zero.Equals(hCursor))
    {
        return new Cursor(hCursor);
    }
    else
    {
        throw new ApplicationException("Could not create cursor from file " + filename);
    }
    }

}

// from resouces modification here is : byte[] variable resource in the call

// modified class by Yvan Genesse

public class AdvancedCursorsFromEmbededResources

{

    // created by Yvan Genesse November 29 2010

    // C# example tested in MS Visual Studio 2010 Ultimate version
    // University Student in E-Business @ Laurentian University

    // in your form code
    /*
    try
    {
    // from file
    //this.Cursor = AdvancedCursors.Create(Path.Combine(Application.StartupPath, "flower_anim.ani"));
    // from resouces   modification here is :   byte[] resource in the call
    byte[] Embeded_Cursor_Resource = Properties.Resources.flower_anim;  // the animate cursor desired
    this.Cursor = AdvancedCursorsFromEmbededResources.Create(Embeded_Cursor_Resource);
    }
    catch (Exception err)
    {
    MessageBox.Show(err.Message);
    }

    */

    [DllImport("user32.dll")]
    static extern IntPtr CreateIconFromResource(byte[] presbits, uint dwResSize, bool fIcon, uint dwVer);

    // modification here is :   byte[] resource in the call      
    public static Cursor Create( byte[] resource)
    {
        IntPtr hCursor;

        //byte[] resource = Properties.Resources.flower_anim;

           hCursor = CreateIconFromResource(resource, (uint)resource.Length, false, 0x00030000);

        if (!IntPtr.Zero.Equals(hCursor))
            {
                // all is good
                    return new Cursor(hCursor);
       }
            else
           {  // resource wrong type or memory error ocurred
        // normally this resource exists since you had to put  Properties.Resources. and a resource would appear and you selected it
              throw new ApplicationException("Could not create cursor from Embeded resource ");
            }        
    }    

}