Klasa COleDocument
Klasa podstawowa dokumentów OLE, które obsługują edycję wizualizacji.
Składnia
class COleDocument : public CDocument
Elementy członkowskie
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 CDocument
klasy , 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 CDocItem
klasy , 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 COleDocument
klasy , więc te klasy dziedziczą wszystkie usługi dostępne w systemach COleDocument
i CDocument
.
Aby użyć COleDocument
klasy , 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 CDocItem
klasy 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
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
pozytyw
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
pozytyw
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
pozytyw
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
, GetNextClientItem
lub 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.
COleDocument::OnEditLinks
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 MAPI32.DLL, jeśli nie został jeszcze załadowany.
W przeciwieństwie do implementacji OnFileSendMail
dla CDocument
programu 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
OnUpdateObjectVerbMenu
aktualizuje 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