Obiekty danych i źródeł danych: manipulowanie
Po utworzeniu obiektu danych lub źródła danych można wykonywać wiele typowych operacji na danych, takich jak wstawianie i usuwanie danych wyliczanie formaty, które dane są w i więcej.W tym artykule opisano niezbędne do ukończenia operacji najczęściej technik.Tematy obejmują:
Wstawianie danych do źródła danych
Określenia formaty dostępne w obiekcie danych
Pobieranie danych z obiektu danych
Wstawianie danych do źródła danych
Sposób wstawiania danych do źródła danych zależy od tego, czy dane są dostarczane natychmiast lub na żądanie i które jest dostarczane.Dostępne są następujące możliwości.
Dostarczanie danych natychmiast (natychmiastowe renderowania)
Wywołanie COleDataSource::CacheGlobalData wielokrotnie dla każdego formatu schowka, w którym są dostarczająca dane.Przekazać format schowka mają być używane dojście do pamięci, zawierające dane i, opcjonalnie, FORMATETC strukturę opisu danych.
- lub -
Jeśli chcesz pracować bezpośrednio z STGMEDIUM struktur, call COleDataSource::CacheData zamiast COleDataSource::CacheGlobalData w powyższej opcji.
Dostarczanie danych na żądanie (opóźnione renderowania)
Jest to temat zaawansowany.
Wywołanie COleDataSource::DelayRenderData wielokrotnie dla każdego formatu schowka, w którym są dostarczająca dane.Przekazać formatu schowka do i, opcjonalnie, FORMATETC strukturę opisu danych.Żądanie danych będzie wywoływać ramach COleDataSource::OnRenderData, który należy zastąpić.
- lub -
Jeśli korzystasz z CFile obiektu do dostarczania danych, call COleDataSource::DelayRenderFileData zamiast COleDataSource::DelayRenderData w poprzedniej opcji.Żądanie danych będzie wywoływać ramach COleDataSource::OnRenderFileData, który należy zastąpić.
Określenia formaty dostępne w obiekcie danych
Aplikacja zezwala użytkownikowi na wkleić dane do niego, należy wiedzieć, jeśli są formatami w Schowku można ją obsługiwać.Aby to zrobić, aplikacja powinna wykonaj następujące czynności:
Tworzenie COleDataObject obiektu i FORMATETC struktury.
Wywołanie obiektu danych AttachClipboard funkcji składowej, aby skojarzyć obiektu danych z danych w Schowku.
Wykonaj jedną z następujących czynności:
Wywołanie obiektu danych IsDataAvailable funkcji składowej, jeśli istnieje tylko jeden lub dwa formaty można konieczne.Pozwoli to zaoszczędzić czas w przypadkach, gdy dane w Schowku obsługuje znacznie więcej formatów niż aplikacja.
- lub -
Wywołanie obiektu danych BeginEnumFormats Członkowskie funkcji, aby rozpocząć wyliczanie formaty dostępne w Schowku.Następnie wywołać GetNextFormat do Schowka zwraca format aplikacja obsługuje lub nie istnieją żadne więcej formatów.
Jeśli używasz ON_UPDATE_COMMAND_UI, można teraz włączyć Wklej i ewentualnie Wklejanie specjalne elementy w menu Edycja.Aby to zrobić, call CMenu::EnableMenuItem lub CCmdUI::Enable.Aby uzyskać więcej informacji o kontenerze, jakie aplikacje powinny z elementów menu i kiedy, zobacz menu i zasobów: kontener uzupełnień.
Pobieranie danych z obiektu danych
Po określeniu formatu danych, pozostaje do pobierania danych z obiektu danych.Aby to zrobić, użytkownik zdecyduje się gdzie umieścić dane, a aplikacja wywołuje odpowiednią funkcję.Dane będą dostępne w jednym z następujących nośniki informacji:
Średni |
Funkcji do wywołania |
---|---|
Globalne pamięci (HGLOBAL) |
COleDataObject::GetGlobalData |
File (CFile) |
COleDataObject::GetFileData |
STGMEDIUM struktury (IStorage) |
COleDataObject::GetData |
Powszechnie zostaną określone nośnik, wraz z jego format Schowka.Na przykład CF_EMBEDDEDSTRUCT obiektu jest zawsze w IStorage nośnik, który wymaga STGMEDIUM struktury.W związku z tym, należy użyć GetData , ponieważ jest tylko jeden z tych funkcji, które mogą akceptować STGMEDIUM struktury.
W przypadkach, gdy format Schowka jest w IStream lub HGLOBAL ramach średnim, można zapewnić CFile wskaźnik, który odwołuje się do danych.Aplikacji można użyć pliku odczytu, aby pobrać dane w bardzo w ten sam sposób, jak go może importować dane z pliku.Zasadniczo jest to interfejs po stronie klienta, aby OnRenderData i OnRenderFileData procedur w źródle danych.
Użytkownik może teraz Wstaw dane do dokumentu, podobnie jak dla innych danych w formacie.