Udostępnij za pośrednictwem


Schowek: dodawanie innych formatów

W tym temacie wyjaśniono, jak rozszerzyć listę obsługiwanych formatów, szczególnie w przypadku obsługi ole. Schowek tematu : Kopiowanie i wklejanie danych opisuje minimalną implementację niezbędną do obsługi kopiowania i wklejania ze Schowka. Jeśli wszystko jest implementowane, jedynymi formatami umieszczonymi w Schowku są CF_METAFILEPICT, CF_EMBEDSOURCE, CF_OBJECTDESCRIPTOR i prawdopodobnie CF_LINKSOURCE. Większość aplikacji będzie potrzebować więcej formatów w Schowku niż te trzy.

Rejestrowanie formatów niestandardowych

Aby utworzyć własne formaty niestandardowe, wykonaj tę samą procedurę, której należy użyć podczas rejestrowania dowolnego niestandardowego formatu Schowka: przekaż nazwę formatu do funkcji RegisterClipboardFormat i użyj jej wartości zwracanej jako identyfikatora formatu.

Umieszczanie formatów w Schowku

Aby dodać więcej formatów do tych umieszczonych w Schowku, należy zastąpić OnGetClipboardData funkcję w klasie pochodzącej z COleClientItem klasy lub COleServerItem (w zależności od tego, czy dane do skopiowania są natywne). W tej funkcji należy użyć poniższej procedury.

Aby umieścić formaty w Schowku

  1. Utwórz COleDataSource obiekt.

  2. Przekaż to źródło danych do funkcji, która dodaje natywne formaty danych do listy obsługiwanych formatów, wywołując funkcję COleDataSource::CacheGlobalData.

  3. Dodaj standardowe formaty, wywołując COleDataSource::CacheGlobalData każdy standardowy format, który chcesz obsługiwać.

Ta technika jest używana w przykładowym programie MFC OLE HIERSVR (zbadaj OnGetClipboardData funkcję składową klasy CServerItem ). Jedyną różnicą w tym przykładzie jest to, że krok trzeci nie jest zaimplementowany, ponieważ HIERSVR nie obsługuje żadnych innych formatów standardowych.

Co chcesz dowiedzieć się więcej o

Zobacz też

Schowek: korzystanie z mechanizmu schowka OLE