З WINDOWS CLIPBOARD

Операційна система Microsoft WINDOWS має надзвичайно зручний засіб обміну інформацією між програмами – CLIPBOARD. Цей засіб призначений для обміну як текстовою, так і графічною інформацією. Що мають на увазі під обміном інформацією?

Якщо WINDOWS працює у розширеному режимі, запустивши звичайну DOS-програму у вікні, ви можете виділити будь-яку частину екрана та скопіювати її в CLIPBOARD. Потім вміст CLIPBOARD можна вставити в іншу DOS-програму, якщо вона очікує на введення з клавіатури. Таким чином, організується перенесення текстової інформації з однієї DOS-програми в іншу DOS-програму. Зауважте, що обидві програми можуть не знати про те, що вони працюють у середовищі WINDOWS.

Однак DOS-програма, що працює в середовищі WINDOWS, може сама працювати з CLIPBOARD. При цьому можливий обмін інформацією (текстової чи графічної) між DOS-програмами та програмами WINDOWS.

Знаючи інтерфейс DOS-програми з WINDOWS CLIPBOARD, ви легко зможете створювати DOS-програми, які обмінюються інформацією з програмами WINDOWS. Розкажемо про деякі, найбільш корисні функції, які можуть бути використані для роботи з WINDOWS CLIPBOARD.

Отримати версію WinOldAp

Операційна система WINDOWS містить спеціальні засоби, призначені для роботи під управлінням DOS-програм. У термінології WINDOWS DOS-програми відносяться до так званих старих програм WINDOWS (WINDOWS Old Application). Версію драйвера WINDOWS, що підтримує роботу з програмами WinOldAp, можна дізнатися за допомогою функції 1700h переривання INT 2Fh:

Регістри на вході AX 1700h Регістри на виході: AX 1700h, якщо ця версія WinOldAp не підтримує роботу з CLIPBOARD.

Якщо AX не дорівнює 1700h, то: AL = верхнє значеннявесрії (major version); AH = нижнє значення версії (minor version).

Перед виконанням будь-якої операції з CLIPBOARD необхідно відкрити CLIPBOARD (за аналогією зі звичайним файлом):

Регістри на вході AX 1701h Регістри на виході: AX 0, якщо CLIPBOARD вже відкрито;

не дорівнює 0 якщо операція успішно виконана.

За допомогою цієї функції можна видалити дані із CLIPBOARD:

Регістри на вході AX 1702h Регістри на виході: AX 0, якщо під час операції сталася помилка;

не дорівнює 0 якщо операція успішно виконана.

Записати дані до CLIPBOARD

За допомогою цієї функції DOS-програма може виконати запис даних WINDOWS CLIPBOARD.

Регістри на вході AX 1703h DX Формат даних, що записуються в CLIPBOARD: 01h текст; 02h графіка у форматі bitmap; 03h графіка у форматі metafile picture; 04h SYLK; 05h DIF; 06h графіка у форматі TIFF; 07h текст у кодуванні OEM. ES:BX Покажчик на записувані дані SI:CX Довжина записуваних даних Регістри на виході: AX 0, якщо при виконанні операції сталася помилка;

не дорівнює 0 якщо операція успішно виконана.

За допомогою цієї функції можна записувати як текстові, і графічні дані.

Операційна система WINDOWS використовує відмінну від прийнятого в DOS кодування символів. Кодування WINDOWS називається ANSI-кодуванням, кодування DOS - OEM-кодуванням. Якщо під час запису текстових даних у CLIPBOARD ви задасте кодування OEM (записавши в регістр DX значення 7), одночасно із записом даних автоматично виконуватиметься перекодування з OEM в ANSI.

Користуючись наступною таблицею, ви можете записувати у CLIPBOARD графічні дані у форматі bitmap:

Таблиця 15. Формат CLIPBOARD дляBITMAP-файли.