Udostępnij za pośrednictwem


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.

9s5z33c4.collapse_all(pl-pl,VS.110).gifDostarczanie 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.

9s5z33c4.collapse_all(pl-pl,VS.110).gifDostarczanie 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:

  1. Tworzenie COleDataObject obiektu i FORMATETC struktury.

  2. Wywołanie obiektu danych AttachClipboard funkcji składowej, aby skojarzyć obiektu danych z danych w Schowku.

  3. 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.

9s5z33c4.collapse_all(pl-pl,VS.110).gifCo chcesz wiedzieć więcej?

Zobacz też

Informacje

Klasa COleDataObject

Klasa COleDataSource

Koncepcje

Obiekty danych i źródeł danych (OLE)