Schowek: korzystanie z mechanizmu schowka OLE

OLE używa standardowych formatów i niektórych formatów specyficzne dla OLE do przesyłania danych do Schowka.

Gdy wyciąć lub skopiować dane z aplikacji, dane są przechowywane w Schowku do wykorzystania później w operacje wklejania.Te dane są w różnych formatach.Podczas użytkownik decyduje się wkleić danych ze Schowka, aplikacji można wybrać, który z tych formatów, aby użyć.Można zapisać aplikacji wybierz format, który dostarcza najwięcej informacji, chyba że użytkownik wyraźnie poprosi o określonym formacie, użyciu polecenia Wklej specjalnie.Przed kontynuowaniem warto przeczytać obiekty danych i źródeł danych (OLE) tematy.Opisują one podstawy jak roboczego transfery danych i sposobów ich implementacji w aplikacji.

Windows definiuje liczbę standardowych formatów, które mogą być używane do przesyłania danych do Schowka.Należą do nich metapliki, tekst, map bitowych i innych.OLE definiuje liczbę specyficznych OLE formatów, jak również.Dla aplikacji, które potrzebują więcej szczegółów niż podana przez te standardowe formaty to dobry pomysł, aby zarejestrować własne niestandardowe formaty Schowka.Użyj funkcji Win32 API RegisterClipboardFormat w tym celu.

Na przykład program Microsoft Excel rejestruje format niestandardowy dla arkuszy kalkulacyjnych.Ten format zajmuje znacznie więcej informacji niż, na przykład, czy mapy bitowej.Gdy te dane mają być wklejone do aplikacji, która obsługuje format arkusza kalkulacyjnego, wszystkie formuły i wartości z arkusza kalkulacyjnego są zachowywane i mogą być aktualizowane w razie potrzeby.Program Microsoft Excel umieszcza również dane w Schowku w formatach tak, że mogą być wklejane jako element OLE.Każdy kontener dokumentu OLE można wklejać te informacje jako osadzony element.Ten element osadzony można zmienić za pomocą programu Microsoft Excel.W Schowku znajduje się również proste mapa bitowa obrazu zaznaczonego zakresu w arkuszu kalkulacyjnym.To również można wkleić do kontenery OLE dokumentu lub edytory map bitowych, takie jak farby.W przypadku mapy bitowej jednak nie jest sposobem operowania na danych arkusza kalkulacyjnego.

Aby pobrać maksymalną ilość informacji ze Schowka, aplikacje należy sprawdzić dla tych formatów niestandardowych przed wklejeniem danych ze Schowka.

Na przykład aby włączyć polecenie Wytnij, możesz pisać program obsługi postać zbliżoną do następującej:

void CMyListView::OnEditCut()
{
   // Create an OLE data source on the heap
   COleDataSource* pData = new COleDataSource;
   // Get the currently selected data
   HGLOBAL hGlob = GlobalAlloc(GMEM_FIXED, 64);
   strcpy_s((char*)hGlob, 64, "Current selection\r\n");
   // For the appropriate data formats...
   pData->CacheGlobalData( CF_TEXT, hGlob );
   // The Clipboard now owns the allocated memory 
   // and will delete this data object 
   // when new data is put on the Clipboard
   pData->SetClipboard();
}

O czym chcesz się dowiedzieć więcej?

Zobacz też

Koncepcje

Schowek