Clipboard

3 отговора 124 прегледа
#1

Clipboard

Значи...
имам една програмка, която искам да взима съдържанието на клипборда, да маже по него и накрая да възстанови изходното му състояние. При мазането и възстановяването всичко си работи, но когато се опитам да взема съдържанието, се получават странни неща:


::OpenClipboard(NULL);

UINT nFormat = 0;
nFormat = EnumClipboardFormats(nFormat);
if (!nFormat)
{
return;
}
m_nClipboardFormat = nFormat;

HANDLE hClipboardValue = ::GetClipboardData(nFormat);
if (!hClipboardValue)
{
return;
}

UINT nSize = LocalSize(hClipboardValue);
m_hClipboardData = LocalAlloc(0, nSize);
if (NULL != m_hClipboardData)
memcpy(m_hClipboardData, hClipboardValue, nSize);
::CloseClipboard();


ако в клипборда е имало текст, всичко си работи нормално (оттук и ресторването). ако обаче има някакъв битмап, започват да се случват разни работи - понякога
LocalSize връща 0, друг път EnumClipboardFormats връщат някакви безумни стойности, които не съществуват в никоя документация (може и да са някакви допълнително регистрирани), а не смея да пробвам с wave.
някой има ли идея на какво се дължи това и евентуално как да се оправи

стой та гледай
Отговор
в отговор на lndependent #2

Re: Clipboard

По рано бях писал една програма която в част от кода си правеше следното:
1. Взима съдържанието на клипборда /независимо какво е/.
2. Записва нещо друго в клипборда.
3.По - късно връща старото съдържание без никаква промяна.

Спомням си че като правех тази част първо се мъчех с обикновенните клипборд функции, но имах доста проблеми /подобни на твоите/.
Накрая смених всичко с използване на OLE клипборда и всичко си дойде на
мястото.

Ако искаш за справка мога да ти пратя тази част от кода/много е малка/.
Ползва се MFC, но доколкото знам си работила с нея.

Поздрави от Бургас.
Отговор
в отговор на pbourgas #3

Re: Clipboard

пратих ти бележка

стой та гледай
Отговор
в отговор на lndependent #4

Re: Clipboard

Извинявай, че не ти отговорих веднага, но още не съм свикнал с новите
начини за комуникация.
Даже да си призная, като реша да пратя на някой съобщение, все още
първото нещо за което се сещам е да чукам по тръбите на парното.

Изпратих ти отговор.

Поздрави от Бургас.

Редактирано от pbourgas на

Отговор