Schowek: dodawanie innych formatów
W tym temacie wyjaśniono, jak rozwinąć listę obsługiwanych formatów, szczególnie dla obsługi OLE.Temat Schowek: kopiowanie i wkleić danych w tym artykule opisano minimalne wykonania niezbędnych do obsługi kopiowanie i wklejanie ze Schowka.Jeśli to wszystko zaimplementowaniem tylko formaty umieszczone w Schowku są CF_METAFILEPICT, CF_EMBEDSOURCE, CF_OBJECTDESCRIPTORi ewentualnie CF_LINKSOURCE.Większość aplikacji będzie potrzebować więcej formatów w Schowku niż te trzy.
Rejestrowanie niestandardowe formaty
Aby utworzyć własny niestandardowy format, wykonaj tę samą procedurę, należy użyć podczas rejestrowania wszelkich niestandardowy format Schowka: przekazać nazwę formatu, do RegisterClipboardFormat funkcjonować i używać jej wartości zwracanej jako format identyfikatora.
Wprowadzenie do formatów w Schowku
Aby dodać więcej formatów umieszczone w Schowku, należy zastąpić OnGetClipboardData funkcji w klasie pochodzący od którejkolwiek COleClientItem lub COleServerItem (w zależności od tego, czy dane mają być kopiowane jest macierzystym).W tej funkcji należy użyć poniższej procedury.
Aby umieścić formatami w Schowku
Utwórz COleDataSource obiek.
Przejść do funkcji, która dodaje swoje formaty danych w trybie macierzystym do listy obsługiwanych formatów przez wywołanie tego źródła danych COleDataSource::CacheGlobalData.
Dodać standardowych formatów przez wywołanie COleDataSource::CacheGlobalData dla każdego standardowego formatu ma być obsługiwana.
Ta technika jest używana w programie próbki MFC OLE HIERSVR (zbadać OnGetClipboardData funkcji składowej z CServerItem klasy).Jedyna różnica w tym przykładzie jest ten krok trzeci nie jest zaimplementowana, ponieważ HIERSVR obsługuje nie standardowych formatów.