Почему Swing clipboard.getAvailableDataFlavors возвращает меньше параметров, чем WinAPI EnumClipboardFormats?

Учитывая тот же контент в системном буфере обмена, я запускаю следующие фрагменты:

Для C ++:

if (OpenClipboard(NULL)) {
for (int i = 0;;) {
i = EnumClipboardFormats(i);
if (i == 0)
break;
GetClipboardFormatName(i, buf, sizeof(buf)/sizeof(buf[0]));
printf("%+09d\t%s\n", i, buf);
}
CloseClipboard();
}

Для Java (в апплете):

Toolkit toolkit = Toolkit.getDefaultToolkit();
Clipboard clipboard = toolkit.getSystemClipboard();
for (DataFlavor df : clipboard.getAvailableDataFlavors()) {
System.out.println(df.getHumanPresentableName() + " " + df.getMimeType());
}

Удивительно для меня, но оба возвращают различное количество доступных форматов, и те, которые я получаю, по-видимому, также различны, например. определенный пользовательский формат данных интерпретируется как Java-изображение x-java, хотя это определенно не картинка какого-либо вида.

Кто-нибудь знает, почему это так или как я могу настроить это поведение?
По сути, я хотел бы получить доступ к данным в пользовательских форматах через буфер обмена в Java, но, похоже, это не сработает сразу.

UPD:
Вот пример выходных данных, которые дают два фрагмента для рассматриваемого пользовательского формата данных:

C ++

+00049654       MDLSK
+00049156       Native
+00049155       OwnerLink
+00000003       OwnerLink
+00000014       OwnerLink

Джава

image/x-java-image image/x-java-image; class=java.awt.Image

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector