Klasa COleDocument

Klasa podstawowa dokumentów OLE, które obsługują edycję wizualizacji.

Składnia

class COleDocument : public CDocument

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
COleDocument::COleDocument COleDocument Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
COleDocument::AddItem Dodaje element do listy elementów obsługiwanych przez dokument.
COleDocument::ApplyPrintDevice Ustawia urządzenie docelowe drukowania dla wszystkich elementów klienta w dokumencie.
COleDocument::EnableCompoundFile Powoduje przechowywanie dokumentów przy użyciu formatu pliku OLE Structured Storage.
COleDocument::GetInPlaceActiveItem Zwraca element OLE, który jest obecnie aktywny w miejscu.
COleDocument::GetNextClientItem Pobiera następny element klienta na potrzeby iteracji.
COleDocument::GetNextItem Pobiera następny element dokumentu na potrzeby iteracji.
COleDocument::GetNextServerItem Pobiera następny element serwera na potrzeby iteracji.
COleDocument::GetPrimarySelectedItem Zwraca podstawowy wybrany element OLE w dokumencie.
COleDocument::GetStartPosition Pobiera początkową pozycję, aby rozpocząć iterację.
COleDocument::HasBlankItems Sprawdza puste elementy w dokumencie.
COleDocument::OnShowViews Wywoływana, gdy dokument staje się widoczny lub niewidoczny.
COleDocument::RemoveItem Usuwa element z listy elementów obsługiwanych przez dokument.
COleDocument::UpdateModifiedFlag Oznacza dokument jako zmodyfikowany, jeśli którykolwiek z zawartych elementów OLE został zmodyfikowany.

Metody chronione

Nazwa/nazwisko opis
COleDocument::OnEditChangeIcon Obsługuje zdarzenia w poleceniu menu Zmień ikonę.
COleDocument::OnEditConvert Obsługuje konwersję osadzonego lub połączonego obiektu z jednego typu na inny.
COleDocument::OnEditLinks Obsługuje zdarzenia w poleceniu Łącza w menu Edycja.
COleDocument::OnFileSendMail Wysyła wiadomość e-mail z dołączonym dokumentem.
COleDocument::OnUpdateEditChangeIcon Wywoływana przez platformę w celu zaktualizowania interfejsu użytkownika polecenia dla opcji menu Edytuj/Zmień ikonę.
COleDocument::OnUpdateEditLinksMenu Wywoływana przez platformę w celu zaktualizowania interfejsu użytkownika polecenia dla opcji menu Edytuj/Łącza.
COleDocument::OnUpdateObjectVerbMenu Wywoływana przez platformę w celu zaktualizowania interfejsu użytkownika polecenia dla opcji menu Edit/ ObjectName oraz podmenu Czasownik, do których uzyskiwano dostęp z polecenia Edit/ ObjectName.
COleDocument::OnUpdatePasteLinkMenu Wywoływana przez platformę w celu zaktualizowania interfejsu użytkownika polecenia dla opcji menu Wklej specjalne.
COleDocument::OnUpdatePasteMenu Wywoływana przez platformę w celu zaktualizowania interfejsu użytkownika polecenia dla opcji menu Wklej.

Uwagi

COleDocument pochodzi z CDocumentklasy , która umożliwia aplikacjom OLE korzystanie z architektury dokumentu/widoku udostępnionej przez bibliotekę klas programu Microsoft Foundation.

COleDocument traktuje dokument jako kolekcję obiektów CDocItem do obsługi elementów OLE. Zarówno aplikacje kontenera, jak i serwera wymagają takiej architektury, ponieważ ich dokumenty muszą mieć możliwość przechowywania elementów OLE. Klasy COleServerItem i COleClientItem, które pochodzą z CDocItemklasy , zarządzają interakcjami między aplikacjami i elementami OLE.

Jeśli piszesz prostą aplikację kontenera, utwórz klasę dokumentów z klasy COleDocument. Jeśli piszesz aplikację kontenera, która obsługuje łączenie z elementami osadzonymi zawartymi w jego dokumentach, utwórz klasę dokumentów z COleLinkingDoc. Jeśli piszesz aplikację serwera lub kontener/serwer złożony, utwórz klasę dokumentów z COleServerDoc. COleLinkingDoc i COleServerDoc pochodzą z COleDocumentklasy , więc te klasy dziedziczą wszystkie usługi dostępne w systemach COleDocument i CDocument.

Aby użyć COleDocumentklasy , należy utworzyć z niej klasę i dodać funkcje do zarządzania danymi spoza OLE aplikacji, a także osadzonymi lub połączonymi elementami. Jeśli zdefiniujesz CDocItemklasy pochodne do przechowywania danych natywnych aplikacji, możesz użyć domyślnej implementacji zdefiniowanej przez COleDocument program do przechowywania zarówno danych OLE, jak i innych niż OLE. Możesz również zaprojektować własne struktury danych do przechowywania danych innych niż OLE niezależnie od elementów OLE. Aby uzyskać więcej informacji, zobacz artykuł Containers: Compound Files..

CDocument obsługuje wysyłanie dokumentu pocztą, jeśli istnieje obsługa poczty e-mail (MAPI). COleDocument Program zaktualizował onFileSendMail w celu poprawnego obsługi złożonych dokumentów. Aby uzyskać więcej informacji, zobacz artykuły MAPI i MAPI Support in MFC.

Hierarchia dziedziczenia

Cobject

Ccmdtarget

Cdocument

COleDocument

Wymagania

Nagłówek: afxole.h

COleDocument::AddItem

Wywołaj tę funkcję, aby dodać element do dokumentu.

virtual void AddItem(CDocItem* pItem);

Parametry

pItem
Wskaźnik do dodawanego elementu dokumentu.

Uwagi

Nie trzeba jawnie wywoływać tej funkcji, gdy jest wywoływana przez COleClientItem konstruktora lub COleServerItem akceptującego wskaźnik do dokumentu.

COleDocument::ApplyPrintDevice

Wywołaj tę funkcję, aby zmienić urządzenie print-target dla wszystkich osadzonych elementów COleClientItem w dokumencie kontenera aplikacji.

BOOL ApplyPrintDevice(const DVTARGETDEVICE* ptd);
BOOL ApplyPrintDevice(const PRINTDLG* ppd);

Parametry

Ptd
Wskaźnik do DVTARGETDEVICE struktury danych, która zawiera informacje o nowym urządzeniu docelowym wydruku. Może mieć wartość NULL.

Ppd
Wskaźnik do PRINTDLG struktury danych, która zawiera informacje o nowym urządzeniu docelowym wydruku. Może mieć wartość NULL.

Wartość zwracana

Nonzero, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.

Uwagi

Ta funkcja aktualizuje urządzenie print-target dla wszystkich elementów, ale nie odświeża pamięci podręcznej prezentacji dla tych elementów. Aby zaktualizować pamięć podręczną prezentacji dla elementu, wywołaj metodę COleClientItem::UpdateLink.

Argumenty tej funkcji zawierają informacje używane przez ole do identyfikowania urządzenia docelowego. Struktura PRINTDLG zawiera informacje używane przez system Windows do inicjowania wspólnego okna dialogowego Drukowanie. Gdy użytkownik zamknie okno dialogowe, system Windows zwraca informacje o wyborach użytkownika w tej strukturze. Element m_pd członkowski obiektu CPrintDialog jest strukturą PRINTDLG .

Aby uzyskać więcej informacji, zobacz strukturę PRINTDLG w zestawie Windows SDK.

Aby uzyskać więcej informacji, zobacz strukturę DVTARGETDEVICE w zestawie Windows SDK.

COleDocument::COleDocument

COleDocument Tworzy obiekt.

COleDocument();

COleDocument::EnableCompoundFile

Wywołaj tę funkcję, jeśli chcesz zapisać dokument przy użyciu formatu złożonego pliku.

void EnableCompoundFile(BOOL bEnable = TRUE);

Parametry

bEnable
Określa, czy obsługa plików złożonych jest włączona, czy wyłączona.

Uwagi

Jest to również nazywane magazynem ustrukturyzowanym. Zazwyczaj ta funkcja jest wywoływana z konstruktora klasy -pochodnej COleDocument. Aby uzyskać więcej informacji na temat złożonych dokumentów, zobacz artykuł Kontenery: pliki złożone..

Jeśli ta funkcja składowa nie zostanie wywołana, dokumenty będą przechowywane w formacie pliku nieustrukturyzowanego ("płaskiego").

Po włączeniu lub wyłączeniu obsługi plików złożonych dla dokumentu ustawienie nie powinno być zmieniane w okresie istnienia dokumentu.

COleDocument::GetInPlaceActiveItem

Wywołaj tę funkcję, aby pobrać element OLE, który jest obecnie aktywowany w oknie ramowym zawierającym widok zidentyfikowany przez element pWnd.

virtual COleClientItem* GetInPlaceActiveItem(CWnd* pWnd);

Parametry

Pwnd
Wskaźnik do okna, w którym jest wyświetlany dokument kontenera.

Wartość zwracana

Wskaźnik do pojedynczego aktywnego elementu OLE w miejscu; Wartość NULL, jeśli nie ma obecnie elementu OLE w stanie "aktywne w miejscu".

COleDocument::GetNextClientItem

Wywołaj tę funkcję wielokrotnie, aby uzyskać dostęp do każdego elementu klienta w dokumencie.

COleClientItem* GetNextClientItem(POSITION& pos) const;

Parametry

Poz
Odwołanie do wartości POSITION ustawionej przez poprzednie wywołanie metody GetNextClientItem; wartość początkowa jest zwracana przez funkcję składową GetStartPosition .

Wartość zwracana

Wskaźnik do następnego elementu klienta w dokumencie lub wartość NULL, jeśli nie ma więcej elementów klienta.

Uwagi

Po każdym wywołaniu wartość pos jest ustawiana dla następnego elementu w dokumencie, który może lub nie jest elementem klienta.

Przykład

// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
COleClientItem* pItem;
CString strType;
while ((pItem = pDoc->GetNextClientItem(pos)) != NULL)
{
   // Use pItem
   pItem->GetUserType(USERCLASSTYPE_FULL, strType);
   TRACE(strType);
}

COleDocument::GetNextItem

Wywołaj tę funkcję wielokrotnie, aby uzyskać dostęp do każdego z elementów w dokumencie.

virtual CDocItem* GetNextItem(POSITION& pos) const;

Parametry

Poz
Odwołanie do wartości POSITION ustawionej przez poprzednie wywołanie metody GetNextItem; wartość początkowa jest zwracana przez funkcję składową GetStartPosition .

Wartość zwracana

Wskaźnik do elementu dokumentu w określonej pozycji.

Uwagi

Po każdym wywołaniu wartość pos jest ustawiona na wartość POSITION następnego elementu w dokumencie. Jeśli pobrany element jest ostatnim elementem w dokumencie, nowa wartość wierszy ma wartość NULL.

Przykład

// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
CDocItem* pItem;
CString strType;
while (pos != NULL)
{
   pItem = pDoc->GetNextItem(pos);
   // Use pItem
   if (pItem->IsKindOf(RUNTIME_CLASS(COleClientItem)))
   {
      ((COleClientItem*)pItem)->GetUserType(USERCLASSTYPE_FULL, strType);
      TRACE(strType);
   }
}

COleDocument::GetNextServerItem

Wywołaj tę funkcję wielokrotnie, aby uzyskać dostęp do każdego z elementów serwera w dokumencie.

COleServerItem* GetNextServerItem(POSITION& pos) const;

Parametry

Poz
Odwołanie do wartości POSITION ustawionej przez poprzednie wywołanie metody GetNextServerItem; wartość początkowa jest zwracana przez funkcję składową GetStartPosition .

Wartość zwracana

Wskaźnik do następnego elementu serwera w dokumencie lub wartość NULL, jeśli nie ma więcej elementów serwera.

Uwagi

Po każdym wywołaniu wartość pos jest ustawiana dla następnego elementu w dokumencie, który może lub nie jest elementem serwera.

Przykład

// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
COleServerItem* pItem;
while ((pItem = pDoc->GetNextServerItem(pos)) != NULL)
{
   // Use pItem
}

COleDocument::GetPrimarySelectedItem

Wywoływana przez strukturę w celu pobrania aktualnie wybranego elementu OLE w określonym widoku.

virtual COleClientItem* GetPrimarySelectedItem(CView* pView);

Parametry

Widok pView
Wskaźnik do aktywnego obiektu widoku wyświetlającego dokument.

Wartość zwracana

Wskaźnik do pojedynczego, wybranego elementu OLE; Wartość NULL, jeśli nie wybrano żadnych elementów OLE lub jeśli wybrano więcej niż jeden element.

Uwagi

Domyślna implementacja wyszukuje listę zawartych elementów OLE dla pojedynczego wybranego elementu i zwraca do niego wskaźnik. Jeśli nie wybrano żadnego elementu lub jeśli jest zaznaczony więcej niż jeden element, funkcja zwraca wartość NULL. Aby ta funkcja działała, należy zastąpić CView::IsSelected funkcję składową w klasie widoków. Zastąpi tę funkcję, jeśli masz własną metodę przechowywania zawartych elementów OLE.

COleDocument::GetStartPosition

Wywołaj tę funkcję, aby uzyskać pozycję pierwszego elementu w dokumencie.

virtual POSITION GetStartPosition() const;

Wartość zwracana

Wartość POZYCJI, która może służyć do rozpoczęcia iteracji po elementach dokumentu; Wartość NULL, jeśli dokument nie ma elementów.

Uwagi

Przekaż wartość zwróconą do GetNextItem, GetNextClientItemlub GetNextServerItem.

COleDocument::HasBlankItems

Wywołaj tę funkcję, aby określić, czy dokument zawiera jakiekolwiek puste elementy.

BOOL HasBlankItems() const;

Wartość zwracana

Nonzero, jeśli dokument zawiera jakiekolwiek puste elementy; w przeciwnym razie 0.

Uwagi

Pusty element jest elementem, którego prostokąt jest pusty.

COleDocument::OnEditChangeIcon

Wyświetla okno dialogowe Ikona zmiany OLE i zmienia ikonę reprezentującą aktualnie wybrany element OLE na ikonę wybraną przez użytkownika w oknie dialogowym.

afx_msg void OnEditChangeIcon();

Uwagi

OnEditChangeIcon Tworzy i uruchamia okno dialogowe Zmień ikonę COleChangeIconDialog .

COleDocument::OnEditConvert

Wyświetla okno dialogowe Konwertowanie OLE i konwertuje lub aktywuje aktualnie wybrany element OLE zgodnie z wyborami użytkownika w oknie dialogowym.

afx_msg void OnEditConvert();

Uwagi

OnEditConvert program tworzy i uruchamia COleConvertDialog okno dialogowe Konwertuj.

Przykładem konwersji jest konwertowanie dokumentu programu Microsoft Word na dokument programu Word.

Wyświetla okno dialogowe Edytowanie/łącza OLE.

afx_msg void OnEditLinks();

Uwagi

OnEditLinks Tworzy i uruchamia COleLinksDialog okno dialogowe Łącza, które umożliwia użytkownikowi zmianę połączonych obiektów.

COleDocument::OnFileSendMail

Wysyła wiadomość za pośrednictwem hosta poczty rezydentnej (jeśli istnieje) z dokumentem jako załącznikiem.

afx_msg void OnFileSendMail();

Uwagi

OnFileSendMail wywołania OnSaveDocument serializowania (zapisywania) dokumentów bez tytułu i modyfikacji do pliku tymczasowego, który następnie jest wysyłany za pośrednictwem poczty elektronicznej. Jeśli dokument nie został zmodyfikowany, plik tymczasowy nie jest wymagany; oryginał jest wysyłany. OnFileSendMail ładuje bibliotekę MAPI32.DLL, jeśli nie została jeszcze załadowana.

W przeciwieństwie do implementacji OnFileSendMail dla CDocumentprogramu ta funkcja obsługuje pliki złożone poprawnie.

Aby uzyskać więcej informacji, zobacz tematy MAPI i obsługa MAPI w artykułach MFC.

COleDocument::OnShowViews

Struktura wywołuje tę funkcję po zmianie stanu widoczności dokumentu.

virtual void OnShowViews(BOOL bVisible);

Parametry

bVisible
Wskazuje, czy dokument stał się widoczny, czy niewidoczny.

Uwagi

Domyślna wersja tej funkcji nic nie robi. Zastąpi go, jeśli aplikacja musi wykonać jakiekolwiek specjalne przetwarzanie, gdy widoczność dokumentu ulegnie zmianie.

COleDocument::OnUpdateEditChangeIcon

Wywoływana przez platformę w celu zaktualizowania polecenia Zmień ikonę w menu Edycja.

afx_msg void OnUpdateEditChangeIcon(CCmdUI* pCmdUI);

Parametry

pCmdUI
Wskaźnik do CCmdUI struktury reprezentującej menu, które wygenerowało polecenie aktualizacji. Procedura obsługi aktualizacji wywołuje Enable funkcję CCmdUI składową struktury za pośrednictwem narzędzia pCmdUI w celu zaktualizowania interfejsu użytkownika.

Uwagi

OnUpdateEditChangeIcon aktualizuje interfejs użytkownika polecenia w zależności od tego, czy w dokumencie istnieje prawidłowa ikona. Zastąpi tę funkcję, aby zmienić zachowanie.

COleDocument::OnUpdateEditLinksMenu

Wywoływana przez platformę w celu zaktualizowania polecenia Łącza w menu Edycja.

afx_msg void OnUpdateEditLinksMenu(CCmdUI* pCmdUI);

Parametry

pCmdUI
Wskaźnik do CCmdUI struktury reprezentującej menu, które wygenerowało polecenie aktualizacji. Procedura obsługi aktualizacji wywołuje Enable funkcję CCmdUI składową struktury za pośrednictwem narzędzia pCmdUI w celu zaktualizowania interfejsu użytkownika.

Uwagi

Począwszy od pierwszego elementu OLE w dokumencie, uzyskuje dostęp do każdego elementu, sprawdza, OnUpdateEditLinksMenu czy element jest łączem, a jeśli jest to link, włącza polecenie Łącza. Zastąpi tę funkcję, aby zmienić zachowanie.

COleDocument::OnUpdateObjectVerbMenu

Wywoływana przez platformę w celu zaktualizowania polecenia ObjectName w menu Edycja i podmenu czasownika dostępnego z polecenia ObjectName, gdzie ObjectName jest nazwą obiektu OLE osadzonego w dokumencie.

afx_msg void OnUpdateObjectVerbMenu(CCmdUI* pCmdUI);

Parametry

pCmdUI
Wskaźnik do CCmdUI struktury reprezentującej menu, które wygenerowało polecenie aktualizacji. Procedura obsługi aktualizacji wywołuje Enable funkcję CCmdUI składową struktury za pośrednictwem narzędzia pCmdUI w celu zaktualizowania interfejsu użytkownika.

Uwagi

OnUpdateObjectVerbMenuaktualizuje interfejs użytkownika polecenia ObjectName w zależności od tego, czy w dokumencie istnieje prawidłowy obiekt. Jeśli obiekt istnieje, polecenie ObjectName w menu Edycja jest włączone. Po wybraniu tego polecenia menu zostanie wyświetlony podmenu Czasownik. Podmenu Czasownik zawiera wszystkie polecenia zlecenia dostępne dla obiektu, takie jak Edytuj, Właściwości itd. Zastąpi tę funkcję, aby zmienić zachowanie.

COleDocument::OnUpdatePasteLinkMenu

Wywoływana przez strukturę w celu określenia, czy połączony element OLE można wkleić ze Schowka.

afx_msg void OnUpdatePasteLinkMenu(CCmdUI* pCmdUI);

Parametry

pCmdUI
Wskaźnik do CCmdUI struktury reprezentującej menu, które wygenerowało polecenie aktualizacji. Procedura obsługi aktualizacji wywołuje Enable funkcję CCmdUI składową struktury za pośrednictwem narzędzia pCmdUI w celu zaktualizowania interfejsu użytkownika.

Uwagi

Polecenie menu Wklej specjalne jest włączone lub wyłączone w zależności od tego, czy element można wkleić do dokumentu, czy nie.

COleDocument::OnUpdatePasteMenu

Wywoływana przez strukturę w celu określenia, czy osadzony element OLE można wkleić ze Schowka.

afx_msg void OnUpdatePasteMenu(CCmdUI* pCmdUI);

Parametry

pCmdUI
Wskaźnik do CCmdUI struktury reprezentującej menu, które wygenerowało polecenie aktualizacji. Procedura obsługi aktualizacji wywołuje Enable funkcję CCmdUI składową struktury za pośrednictwem narzędzia pCmdUI w celu zaktualizowania interfejsu użytkownika.

Uwagi

Polecenie i przycisk menu Wklej są włączone lub wyłączone w zależności od tego, czy element można wkleić do dokumentu, czy nie.

COleDocument::RemoveItem

Wywołaj tę funkcję, aby usunąć element z dokumentu.

virtual void RemoveItem(CDocItem* pItem);

Parametry

pItem
Wskaźnik do elementu dokumentu do usunięcia.

Uwagi

Zazwyczaj nie trzeba jawnie wywoływać tej funkcji; jest wywoływana przez destruktory dla COleClientItem i COleServerItem.

COleDocument::UpdateModifiedFlag

Wywołaj tę funkcję, aby oznaczyć dokument jako zmodyfikowany, jeśli którykolwiek z zawartych elementów OLE został zmodyfikowany.

virtual void UpdateModifiedFlag();

Uwagi

Dzięki temu platforma może monitować użytkownika o zapisanie dokumentu przed zamknięciem, nawet jeśli dane natywne w dokumencie nie zostały zmodyfikowane.

Zobacz też

Przykładowy KONTENER MFC
Przykład MFCBIND
Klasa CDocument
Wykres hierarchii