Klasa CDocObjectServer
Implementuje dodatkowe interfejsy OLE potrzebne do utworzenia normalnego COleDocument
serwera na pełnym serwerze DocObject: IOleDocument
, , IOleDocumentView
IOleCommandTarget
i IPrint
.
Składnia
class CDocObjectServer : public CCmdTarget
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CDocObjectServer::CDocObjectServer | CDocObjectServer Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CDocObjectServer::ActivateDocObject | Aktywuje serwer obiektów dokumentu, ale nie wyświetla go. |
Metody chronione
Nazwa/nazwisko | opis |
---|---|
CDocObjectServer::OnActivateView | Wyświetla widok DocObject. |
CDocObjectServer::OnApplyViewState | Przywraca stan widoku DocObject. |
CDocObjectServer::OnSaveViewState | Zapisuje stan widoku DocObject. |
Uwagi
CDocObjectServer
jest uzyskiwany na podstawie CCmdTarget
interfejsów i ściśle współpracuje z COleServerDoc
nim.
Dokument serwera DocObject może zawierać obiekty CDocObjectServerItem , które reprezentują interfejs serwera do elementów DocObject.
Aby dostosować serwer DocObject, utwórz własną klasę z CDocObjectServer
funkcji konfiguracji widoku, OnActivateView, OnApplyViewState i OnSaveViewState. Musisz podać nowe wystąpienie klasy w odpowiedzi na wywołania platformy.
Aby uzyskać więcej informacji na temat obiektów DocObjects, zobacz CDocObjectServerItem i COleCmdUI w dokumentacji MFC.
Hierarchia dziedziczenia
CDocObjectServer
Wymagania
Nagłówek: afxdocob.h
CDocObjectServer::ActivateDocObject
Wywołaj tę funkcję, aby aktywować (ale nie pokazać) serwer obiektów dokumentu.
void ActivateDocObject();
Uwagi
ActivateDocObject
wywołuje IOleDocumentSite
metodę "s ActivateMe
", ale nie wyświetla widoku, ponieważ oczekuje na konkretne instrukcje dotyczące sposobu konfigurowania i wyświetlania widoku, podanego w wywołaniu obiektu CDocObjectServer::OnActivateView.
ActivateDocObject
Razem aktywuj i OnActivateView
wyświetl widok DocObject. Aktywacja obiektu DocObject różni się od innego rodzaju aktywacji OLE w miejscu. Aktywacja obiektu DocObject pomija wyświetlanie obramowań kreskowania i obiektów w miejscu (takich jak uchwyty ustalania rozmiaru), ignoruje funkcje zakresu obiektu i rysuje paski przewijania w prostokątze widoku, a nie rysuje ich poza tym prostokątem (podobnie jak w przypadku normalnej aktywacji w miejscu).
CDocObjectServer::CDocObjectServer
Tworzy i inicjuje CDocObjectServer
obiekt.
explicit CDocObjectServer(
COleServerDoc* pOwner,
LPOLEDOCUMENTSITE pDocSite = NULL);
Parametry
POwner
Wskaźnik do dokumentu lokacji klienta, który jest klientem serwera DocObject.
pDocSite
Wskaźnik do interfejsu IOleDocumentSite
zaimplementowanego przez kontener.
Uwagi
Gdy obiekt DocObject jest aktywny, interfejs OLE lokacji klienta ( IOleDocumentSite
) umożliwia serwerowi DocObject komunikowanie się z klientem (kontenerem). Po aktywowaniu serwera DocObject najpierw sprawdza, czy kontener implementuje IOleDocumentSite
interfejs. Jeśli tak, obiekt COleServerDoc::GetDocObjectServer jest wywoływany, aby sprawdzić, czy kontener obsługuje obiekty DocObjects. Domyślnie GetDocObjectServer
zwraca wartość NULL. Należy przesłonić COleServerDoc::GetDocObjectServer
, aby utworzyć nowy CDocObjectServer
obiekt lub obiekt pochodny własnych, z wskaźnikami do COleServerDoc
kontenera i jego IOleDocumentSite
interfejsem jako argumentami konstruktora.
CDocObjectServer::OnActivateView
Wywołaj tę funkcję, aby wyświetlić widok DocObject.
virtual HRESULT OnActivateView();
Wartość zwracana
Zwraca wartość błędu lub ostrzeżenia. Domyślnie funkcja NOERROR jest zwracana w przypadku powodzenia; w przeciwnym razie E_FAIL.
Uwagi
Ta funkcja tworzy okno ramki w miejscu, rysuje paski przewijania w widoku, konfiguruje menu, które serwer udostępnia z kontenerem, dodaje kontrolki ramek, ustawia aktywny obiekt, a następnie na koniec wyświetla okno ramek w miejscu i ustawia fokus.
CDocObjectServer::OnApplyViewState
Zastąpi tę funkcję, aby przywrócić stan widoku DocObject.
virtual void OnApplyViewState(CArchive& ar);
Parametry
Ar
CArchive
Obiekt, z którego ma być serializować stan widoku.
Uwagi
Ta funkcja jest wywoływana, gdy widok jest wyświetlany po raz pierwszy po utworzeniu wystąpienia. OnApplyViewState
instruuje widok, aby ponownie zainicjować się zgodnie z danymi w CArchive
obiekcie wcześniej zapisanymi za pomocą elementu OnSaveViewState. Widok musi zweryfikować dane w CArchive
obiekcie, ponieważ kontener nie próbuje interpretować danych stanu widoku w żaden sposób.
OnSaveViewState
Służy do przechowywania trwałych informacji specyficznych dla stanu widoku. Jeśli przesłonisz OnSaveViewState
przechowywanie informacji, należy zastąpić OnApplyViewState
te informacje, aby odczytać te informacje i zastosować je do widoku po jej aktywowaniu.
CDocObjectServer::OnSaveViewState
Zastąpij tę funkcję, aby zapisać dodatkowe informacje o stanie widoku DocObject.
virtual void OnSaveViewState(CArchive& ar);
Parametry
Ar
CArchive
Obiekt, do którego jest serializowany stan widoku.
Uwagi
Stan może zawierać właściwości, takie jak typ widoku, współczynnik powiększenia, wstawianie i punkt zaznaczenia itd. Kontener zwykle wywołuje tę funkcję przed dezaktywowaniem widoku. Zapisany stan można później przywrócić za pomocą elementu OnApplyViewState.
OnSaveViewState
Służy do przechowywania trwałych informacji specyficznych dla stanu widoku. Jeśli przesłonisz OnSaveViewState
przechowywanie informacji, należy zastąpić OnApplyViewState
te informacje, aby odczytać te informacje i zastosować je do widoku po jej aktywowaniu.
Zobacz też
Klasa CCmdTarget
Wykres hierarchii
Klasa CDocObjectServerItem