Как я могу изменить * тип * содержимого буфера обмена Windows без изменения данных буфера обмена?

1

У меня есть программа, в которой мне удалось скопировать содержимое в формате PDF в буфер обмена, используя некоторые недокументированные функции. К сожалению, эти данные могут быть добавлены даже в программы, которые принимают PDF. Мне удалось использовать эта программа чтобы найти, что его можно вставить, изменив описание (или тип) с «PDF» на «Portable Document Format» (см. скриншот ниже). К сожалению, эта программа также повреждает данные при этом. (Я думаю, что это потому, что данные являются двоичными, а не текстовыми)

Как я могу изменить описание / тип данных буфера обмена Windows без изменения самих (двоичных) данных?

Mathematica graphics

Мой предыдущий связанный вопрос: Как получить доступ к необработанным данным буфера обмена в Windows?

Szabolcs
источник
1
«использование некоторой недокументированной функциональности» - есть причина, по которой она не документирована
Sathyajith Bhat
@Sathya Что плохого в том, чтобы пытаться перепроектировать, как работает программа? Кроме того, мой вопрос не об этой функциональности, а о том, как работает буфер обмена.
Szabolcs

Ответы:

1

Это невозможно. Данные в буфере обмена являются объектами OLE.

kinokijuf
источник
2
Я не знаком с объектами OLE. Можете ли вы уточнить и объяснить, почему невозможно извлечь двоичные данные и повторно вставить их в буфер обмена, используя другой тип? В этом случае кажется, что содержимое буфера обмена - это просто содержимое файла PDF. Эта программа, о которой я упоминал, случайным образом не будет правильно отображать содержимое (см. Пустой скриншот), хотя и сообщает размер данных. Мне нужно заново вставить эти данные в буфер обмена и вызвать его Portable Document Format скорее, чем PDF,
Szabolcs