Klasa CDocObjectServer

Implementuje dodatkowe interfejsy OLE potrzebne do utworzenia normalnego COleDocument serwera na pełnym serwerze DocObject: IOleDocument, , IOleDocumentViewIOleCommandTargeti IPrint.

Składnia

class CDocObjectServer : public CCmdTarget

Członkowie

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

Cobject

Ccmdtarget

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 IOleDocumentSitemetodę "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