enumclipboardformats (user32)
Last changed: -84.245.88.216

.
Summary

C# Signature:

[DllImport("user32.dll", SetLastError=true)]
static extern uint EnumClipboardFormats(uint format);

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

//Displays the id and name of the all the different data formats currently in the clipboard.
//Create a project called ClipBoardTest, a form called Form1 and add two buttons (button1, button2) and two listboxes (listbox1, listbox2).
//Clicking button1 will copy the id and name of all the clipboard formats in the clipboard to listbox1.
//Clicking button2 will copy everything from listbox1 to listbox2. This is useful if you want to
//compare the clipboard formats used by two different applications.

using System;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace ClipBoardTest
{
     public partial class Form1 : Form
     {
     [DllImport("user32.dll")]
     static extern uint EnumClipboardFormats(uint format);

     [DllImport("user32.dll")]
     static extern bool OpenClipboard(IntPtr hWndNewOwner);

     [DllImport("user32.dll")]
     static extern bool CloseClipboard();

     [DllImport("user32.dll")]
     static extern int GetClipboardFormatName(uint format, [Out] StringBuilder lpszFormatName, int cchMaxCount);

     public Form1()
     {
         InitializeComponent();
     }

     private void button1_Click(object sender, EventArgs e)
     {
         OpenClipboard(Handle);

         listBox1.Items.Clear();

         uint LastRetrievedFormat = 0;
         while (0 != (LastRetrievedFormat = EnumClipboardFormats(LastRetrievedFormat)))
         {
         String Description = "[" + LastRetrievedFormat.ToString() + "] \t" + GetClipboardFormatName(LastRetrievedFormat);
         listBox1.Items.Add(Description);
         }

         CloseClipboard();
     }

     private String GetClipboardFormatName(uint ClipboardFormat)
     {
         StringBuilder sb = new StringBuilder(1000);
         GetClipboardFormatName(ClipboardFormat, sb, sb.Capacity);
         return sb.ToString();
     }

     private void button2_Click(object sender, EventArgs e)
     {
         listBox2.Items.Clear();

         foreach (var Item in listBox1.Items)
         {
         listBox2.Items.Add(Item);
         }
     }
     }
}

Alternative Managed API:

Do you know one? Please contribute it!

Documentation