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

EnumClipboardFormats (user32)
 
.
Summary

C# Signature:

[DllImport("user32.dll", SetLastError=true)]
[DllImport("user32.dll")]
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);
         StringBuilder sb = new StringBuilder();
         GetClipboardFormatName(ClipboardFormat, sb, 1000);
         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

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