internal override int[] ClipboardAvailableFormats(IntPtr handle) {
DataFormats.Format f;
int[] result;
f = DataFormats.Format.List;
if (XGetSelectionOwner(DisplayHandle, CLIPBOARD) == IntPtr.Zero) {
return null;
}
Clipboard.Formats = new ArrayList();
while (f != null) {
XConvertSelection(DisplayHandle, CLIPBOARD, (IntPtr)f.Id, (IntPtr)f.Id, FosterParent, IntPtr.Zero);
Clipboard.Enumerating = true;
while (Clipboard.Enumerating) {
UpdateMessageQueue(null);
}
f = f.Next;
}
result = new int[Clipboard.Formats.Count];
for (int i = 0; i < Clipboard.Formats.Count; i++) {
result[i] = ((IntPtr)Clipboard.Formats[i]).ToInt32 ();
}
Clipboard.Formats = null;
return result;
}