Похоже, что отложенный рендеринг может быть в силе. Вы, наверное, видели это в таких приложениях, как Excel, Word, Outlook или практически в любой большой программе для рисования. Вы копируете, и когда вы закрываете приложение, появляется что-то вроде: «Вы поместили большой объем данных в буфер обмена, хотите ли вы сделать его доступным для других программ?». Это потому, что копирование было выполнено с «отложенным рендерингом», а данные на самом деле не находятся в буфере обмена. В буфере обмена есть только пустые маркеры, и если / когда что-то действительно требуется вставить (особенно в экзотических или дорогих форматах, таких как WKS1, SYLK, EMF, HTML и т. Д.), Приложение должно произвести его на месте. Таким образом, после завершения работы эти приложения действительно просто заботятся об этих невыполненных обязательствах, потому что они не будут готовы ответить на сообщения WM_RenderFormat после того, как они исчезнут.
Я ожидаю, что в вашей среде ruby используется отложенный рендеринг даже для простых форматов, таких как CF_TEXT, и вместо того, чтобы обновлять буфер обмена полностью заполненными данными (что молча делают многие приложения), они просто поражают. Или, может быть, они оставляют нулевые ручки там. Запуск старого средства просмотра буфера обмена XP покажет вам разницу между действительно пустым буфером обмена и тем, который считает, что у него есть текст (TEXT отображается в списке доступных форматов), но на самом деле просто содержит нулевые маркеры.