ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π‘ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’ Ρ‚Π°Π±Π».1 пСрСчислСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΈΠΏ дСскриптора, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SetClipBoardData () для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. НаиболСС распространСнным Ρ‚ΠΈΠΏΠΎΠΌ записСй Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° являСтся Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ памяти, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ GMEM_DDESHARE. Для Π½Π΅Π³ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ примСняСтся простоС ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ HANDLE. ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Ρ‹Π΅ значСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° описаны Π² Ρ„Π°ΠΉΠ»Π΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘Π£Π€Π•Π  ΠžΠ‘ΠœΠ•ΠΠ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Одна ΠΈΠ· Π·Π°Π΄Π°Ρ‡ программиста Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ состоит Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ Windows, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ смоТСт Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, Π½Π΅ ΠΎΡ‰ΡƒΡ‰Π°Ρ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² ΠΈΡ… ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΈ Π²Π½Π΅ΡˆΠ½Π΅ΠΌ Π²ΠΈΠ΄Π΅. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½ΡƒΡŽ срСду ΠΈ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ. Π’ Ρ‚Π°ΠΊΠΎΠΉ срСдС сама собой Π½Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пСрСноса Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ прилоТСниями.

Π‘ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° (clipboard) Windows обСспСчиваСт простой ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ прилоТСниями.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° Π² Π»ΡŽΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ прСдставляСт собой Π½Π°Π±ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ, созданных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, которая помСстила Π΄Π°Π½Π½Ρ‹Π΅ Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ API ΠΈ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π΅Π³ΠΎ содСрТимым. Π‘ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° слуТит СдинствСнным ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ доступа ΠΊ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ.

1. Π€ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. НапримСр, тСкст ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой простыС символы, сгСнСрированныС эмулятором Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Π»ΠΈΠ±ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ примСнСния соврСмСнного ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ тСкстового процСссора. Π”Π°Π½Π½Ρ‹Π΅, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ любой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅ΠΌ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ². Π‘ ΡΡ‚ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ прилоТСния, ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°, ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΈΡ… ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большим числом способов.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΈ считывании ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ прСдоставляСтся Π½Π°Π±ΠΎΡ€ ΠΎΠΏΡ†ΠΈΠΉ. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±ΡƒΡ„Π΅Ρ€Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°.

Когда ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ SetClipboardData () для помСщСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, принято Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ воспроизводит этот Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, Ρ‡Π΅ΠΌ большС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° поддСрТиваСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ‚Π΅ΠΌ Ρ‚ΠΎΡ‡Π½Π΅Π΅ ΠΎΠ½ΠΎ осущСствляСтся ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Windows-прилоТСниями. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большСС число Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ EmptyClipboard (), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π² Π½Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ любого Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SetClipboardData (), называСтся Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° (clipboard owner). (Π’Π΅Ρ€ΠΌΠΈΠ½ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ Ρ‚ΠΎΡ‡Π΅Π½, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ послС помСщСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΎΠ½ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρƒ. Π­Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ срСдС Windows.)

Π”Ρ€ΡƒΠ³ΠΈΠ΅ прилоТСния, ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° (clipboard readers). Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π΅Π³ΠΎ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Windows, СдинствСнной Ρ†Π΅Π»ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся просмотр содСрТимого Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°, называСтся ΠΎΠΊΠ½ΠΎΠΌ просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° (clipboard viewer).

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SetClipboardData (). Π”Π°Π½Π½Ρ‹Π΅, записываСмыС Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ Π² Π±ΡƒΡ„Π΅Ρ€Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. По ΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ EmptyClipboard (), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всС Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΎΡ‚ Π½Π΅ΠΏΠΎΠ΄Ρ…одящих Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³Ρƒ Π±Ρ‹Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ сохранСны. Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ EmptyClipboard () Ρ‚Π°ΠΊΠΆΠ΅ позволяСт старому Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρƒ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всС области памяти, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌ, ΠΏΡƒΡ‚Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСния WM_DESTROYCLIPBOARD.

На Ρ€ΠΈΡ. 1 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π²Ρ‹Π±Ρ€Π°Π» просмотр Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ CF_TEXT, хотя Π²Π»Π°Π΄Π΅Π»Π΅Ρ† воспроизводит Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ‚Ρ€Π΅Ρ… тСкстовых Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ GF_TEXT, CF_OEMTEXT ΠΈ CF_UNICODETEXT.

ΠšΠ»ΠΈΠ΅Π½Ρ‚ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, Π½ΠΎ Π΄Π»Ρ вставки Π΄Π°Π½Π½Ρ‹Ρ… Π΅ΠΌΡƒ Π±ΠΎΠ»Π΅Π΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ CF_TEXT.

Π’ Ρ‚Π°Π±Π».1 пСрСчислСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΈΠΏ дСскриптора, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SetClipBoardData () для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. НаиболСС распространСнным Ρ‚ΠΈΠΏΠΎΠΌ записСй Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° являСтся Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ памяти, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ GMEM_DDESHARE. Для Π½Π΅Π³ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ примСняСтся простоС ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ HANDLE. ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Ρ‹Π΅ значСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° описаны Π² Ρ„Π°ΠΉΠ»Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² winuser. h Π²ΠΌΠ΅ΡΡ‚Π΅ с ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ интСрфСйс Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°.

Π’Π°Π±Π»ΠΈΡ†Π° 1

ΠŸΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°

Π’ΠΈΠΏ дСскриптора

ОписаниС Π΄Π°Π½Π½Ρ‹Ρ…

CF_BITMAP

HBITMAP

Π”Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π½Π°Π±ΠΎΡ€ Π±ΠΈΡ‚ΠΎΠ².

CF_DSPENHMETAFILE

HENHMETAFILE

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚Π°Ρ„Π°ΠΉΠ», ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ для прилоТСния.

CF_DSPMETAFILEPICT

HANDLE

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ памяти, содСрТащий структуру METAFILEPICT, которая являСтся ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠΉ для прилоТСния.

CF_DSPTEXT

HANDLE

ΠŸΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ для прилоТСния тСкст.

CF_DSPBITMAP

НВIВМАР

РастровоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌ для прилоТСния. Π­Ρ‚ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ экзСмплярами ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ прилоТСния. Для опрСдСлСния Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ GetClipboardOwner ().

CF_ENHMETAFILE

HENHMETAFILE

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚Π°Ρ„Π°ΠΉΠ».

CF_GDIOBJFIRST

HGDIOBJ

ΠžΠΏΠΈΡΠ°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ сквозного Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° (throughclipboard), прСдставлСнныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ GDI (Graphic Device Interface — интСрфСйсом графичСских устройств). ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ EmptyClipboard () для уничтоТСния Π΄Π°Π½Π½Ρ‹Ρ… этого Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция DeleteObject ().

CF_METFILEPICT

HANDLE

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ памяти, содСрТащий структуру METAFILEPICT.

CF_OEMTEXT

HANDLE

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌΡƒΡŽ Π½ΡƒΠ»Π΅ΠΌ строку символов Π½Π°Π±ΠΎΡ€Π° OEM. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ символов Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки (CR/LF).

CF_OWNERDISPLAY

NULL

Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π»Π°Π΄Π΅Π»Π΅Ρ† Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π·Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ обновляСт ΠΎΠΊΠ½Π° просмотрС Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°. Окно просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° отправляСт Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρƒ сообщСния WM_ASKCBFORMATNAME, WM_PAINTCLIPBOARD, WM_HSCROLLCLIPBOARD, WM_SIZECLIPBOARD ΠΈ WM_VSCROLLCLIPBOARD.

ΠΎΡ‚ CF_PRIVATEFIRST Π΄ΠΎ CF_PRIVATELAST

Π­Ρ‚ΠΎΡ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°. Windows Π½Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ этими Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ. Π’Π»Π°Π΄Π΅Π»Π΅Ρ† Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ рСсурсам" Ρ‡Π΅Ρ€Π΅Π· сообщСниС WM_DESTROYCLBOARD.

CF_RBIFF

HANDLE

БлоТная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ CF_WAVE.

CF_TEXT

HANDLE

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ памяти, содСрТащий строку символов, Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌΡƒΡŽ Π½ΡƒΠ»Π΅ΠΌ. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ символов Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки (CR/LF).

CF_TIFF

HANDLE

Π€ΠΎΡ€ΠΌΠ°Ρ‚ дСскриптора Ρ„Π°ΠΉΠ»Π° изобраТСния.

CF_UNCODETEXT

HANDLE

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ памяти, содСрТащий Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌΡƒΡŽ Π½ΡƒΠ»Π΅ΠΌ строку Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚Π½ΠΎΠ³ΠΎ глобального ΠΊΠΎΠ΄Π° символов Unicode.

CF_WAVE

HANDLE

Бтандартная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Wave-Ρ„Π°ΠΉΠ»ΠΎΠ².

2. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° Π² ΡΡ€Π΅Π΄Π΅ Windows

БистСма Windows управляСт содСрТимым ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°. Windows сохраняСт Π΄Π°Π½Π½Ρ‹Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄ΠΈΠ½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, записанныС Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Windows управляСт ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°. Π”Π°Π½Π½Ρ‹Π΅, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ Π² Π±ΡƒΡ„Π΅Ρ€Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ сохранСнии Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ EmptyClipboard () для очистки всСго содСрТимого Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°.

Windows удаляСт элСмСнты Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° ΠΏΡƒΡ‚Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ²Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ удалСния. Π’Ρ‹Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°.

НапримСр, для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² GDI Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ DeleteObject (), для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² памяти примСняСтся функция GlobalFree () ΠΈ Ρ‚. Π΄.

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· ΡΡ‚ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ» слуТат ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°. Как Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Windows Π½Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌΠΈ Π² ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°. ЀактичСски, ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ. Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌΠΈ Π² ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ эти Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚.

3. ВоспроизвСдСниС Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° большого количСства Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° сопряТСна с Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π² ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ, Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ графичСскиС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ bitmap-изобраТСния ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚Π°Ρ„Π°ΠΉΠ»Ρ‹. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ GDI-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π·Π°Ρ‚Ρ€Π°Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠ°ΠΌΡΡ‚ΠΈ. НС ΠΈΠΌΠ΅Π΅Ρ‚ смысла ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Ссли ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся.

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, API-интСрфСйсы Win32 ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ простой ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ помСщСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ сгСнСрирован запрос Π½Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π­Ρ‚ΠΎ называСтся воспроизвСдСниСм с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ (delayed rendering). Для Π΅Π³ΠΎ задСйствования достаточно ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ дСскриптора Ρ‚ΠΈΠΏΠ° HANDLE Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° ΠΏΡ€ΠΈ установкС Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SetClipboardData (). Если ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ воспроизвСдСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, отправляСтся сообщСниС WM_RENDERFORMAT с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ wParam, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚.

ВоспроизвСдСниС с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ экономит врСмя ΠΈ Ρ€Π΅ΡΡƒΡ€ΡΡ‹. ЕдинствСнный нСдостаток ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ систСма ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ послС запроса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° Π²ΡΡ‚Π°Π²ΠΊΡƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя затрачиваСтся Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ воспроизвСдСниС с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ считаСтся Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ Π² ΡΠ»ΡƒΡ‡Π°Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ большого количСства Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², Π»ΠΈΠ±ΠΎ Ρ‚Π° ΠΎΡ‚сутствии Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, часто Π±Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π²Ρ‹Ρ€Π΅Π·Π°ΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Π½ΠΎ Π½Π΅ Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ воспроизвСдСния с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ слуТат Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ClipboardFormatAvailable () ΠΈ GetPriorityClipboardFormat ().

Π€ΠΎΡ€ΠΌΠ°Ρ‚ CF_OWNERDISPLAY

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° CF_OWNERDISPLAY Π²ΠΎΠ·Π»Π°Π³Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ отобраТСния Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° Π½Π° Π΅Π³ΠΎ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°. Π’Π»Π°Π΄Π΅Π»Π΅Ρ† Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ сообщСний, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… измСнСния клиСнтской области Π² ΠΎΠΊΠ½Π΅ просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°. Π­Ρ‚ΠΈ сообщСния свСдСны Π² Ρ‚Π°Π±Π».2.

Одним ΠΈΠ· Π½Π°Π³Π»ΡΠ΄Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° CF_OWNERDISPLAY слуТит ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Clipbook — ΠΎΠΊΠ½ΠΎ просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° Windows, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ распознаСт, казалось Π±Ρ‹ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ количСство Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ². На ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Clipbook прСдоставляСт свою ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, способСн ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ содСрТимоС Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅. ЕдинствСнноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ для Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° составляСт ΠΎΠΊΠ½ΠΎ, Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹Π΅. Однако это Π½Π΅ Π²Π½ΠΎΡΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Π°Π±Π»ΠΈΡ†Π° 2

БообщСния, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹Π΅ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° для отобраТСния Π΄Π°Π½Π½Ρ‹Ρ…

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

WM_ASKCBFORMATNAME

ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠΊΠ½ΠΎ просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ имя Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. Π’Π»Π°Π΄Π΅Π»Π΅Ρ† Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°ΠΉΡ‚Ρ‹ wParam Π² Π±ΡƒΡ„Π΅Ρ€, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ lPrarm.

WM_PAINTCLIPBOARD

ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° клиСнтская ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΎΠΊΠ½Π° Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ обновлСния. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ wParam являСтся дСскриптором ΠΎΠΊΠ½Π° просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ lParam являСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° PAINTSTRUCT.

WM_SIZECLIPBOARD

ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° клиСнтской области ΠΎΠΊΠ½Π° просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ wParam являСтся дСскриптором ΠΎΠΊΠ½Π° просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ lParam — ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ RECT.

WM_HSCROLLCLIPBOARD ΠΈ WM_VSCROLLCLIPBOARD

ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ΅ клиСнтской области ΠΎΠΊΠ½Π° просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ wParam являСтся дСскриптором ΠΎΠΊΠ½Π° просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°. МладшСС слово ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° lParam ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ запроса полосы ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ wParam Π² ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠΈ WM_HSCROLL ΠΈΠ»ΠΈ WM_VSCROLL). Π‘Ρ‚Π°Ρ€ΡˆΠ΅Π΅ слово ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° lParam ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π±Π΅Π³ΡƒΠ½ΠΊΠ° Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° полоса ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ SB_THUMBPOSITION.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° CF_OWNERDISPLAY обСспСчиваСт Π½Π°ΠΈΠ²Ρ‹ΡΡˆΡƒΡŽ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ разнообразия всСх Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π° ΠΈΡ… ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ источник Π΄Π°Π½Π½Ρ‹Ρ…. Если ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ зарСгистрированный), сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π΅ возмоТности отобраТСния Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½Π΅ прилоТСния:

— ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ;

— Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°.

4. Окна просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° Окно просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° прСдставляСт собой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для просмотра содСрТимого Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠΊΠ½Π° просмотра ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ мноТСство Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², Π½ΠΎ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ зарСгистрированныС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹. Π’ ΡΡ‚ΠΎΠΉ связи ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠΊΠ½ΠΎ просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° Π½Π΅ Π²Π»Π°Π΄Π΅Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ управляСт. ВрСбования ΠΊ ΠΎΠΊΠ½Ρƒ просмотра:

1. Окно просмотра Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ случаС Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ запись Π² ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°.

2. Окно просмотра Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ элСмСнт содСрТимого Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ.

3. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π»ΡŽΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ нСсколько ΠΎΠΊΠΎΠ½ просмотра ΠΈ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ посрСдством связанного списка ΠΎΠΊΠΎΠ½ просмотра, создаваСмая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ соглашСниям:

— Π‘ΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SetClipboardViewer (), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅. Windows ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½ΠΎ просмотра ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠΆΠ΅ установлСнными.

— ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ сообщСния WM_DRAWCLIPBOARD ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΎΠΊΠ½Ρƒ просмотра Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΊΠ½Π° просмотра Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ.

— ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ сообщСния WM_CHANGECBCHAIN ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΎΠΊΠ½Ρƒ просмотра Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΎΠΊΠΎΠ½ просмотра Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½Π°.

— ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ сообщСния WM_CHANGECBCHAIN для удалСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ½Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ IParam содСрТит Π½ΠΎΠ²Ρ‹ΠΉ дСскриптор ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ½Π° Π² ΡΠ»ΡƒΡ‡Π°Π΅ удалСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ, ΠΎΠΊΠ½Π° просмотра.

— Π”ля удалСния ΠΎΠΊΠ½Π° просмотра ΠΈΠ· Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ слСдуСт Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ChangeClipboardChain () с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ сохранСнного значСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ½Π°.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ