Klasa COleServerItem

Udostępnia interfejs serwera do elementów OLE.

Składnia

class COleServerItem : public CDocItem

Członkowie

Konstruktory chronione

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

Metody publiczne

Nazwa/nazwisko opis
COleServerItem::AddOtherClipboardData Umieszcza formaty prezentacji i konwersji w COleDataSource obiekcie.
COleServerItem::CopyToClipboard Kopiuje element do Schowka.
COleServerItem::D oDragDrop Wykonuje operację przeciągania i upuszczania.
COleServerItem::GetClipboardData Pobiera źródło danych do użycia w transferze danych (przeciągnij i upuść lub Schowek).
COleServerItem::GetDocument Zwraca dokument serwera zawierający element.
COleServerItem::GetEmbedSourceData Pobiera dane CF_EMBEDSOURCE dla elementu OLE.
COleServerItem::GetItemName Zwraca nazwę elementu. Służy tylko do tworzenia połączonych elementów.
COleServerItem::GetLinkSourceData Pobiera dane CF_LINKSOURCE dla elementu OLE.
COleServerItem::GetObjectDescriptorData Pobiera dane CF_OBJECTDESCRIPTOR dla elementu OLE.
COleServerItem::Is Połączenie ed Wskazuje, czy element jest obecnie dołączony do aktywnego kontenera.
COleServerItem::IsLinkedItem Wskazuje, czy element reprezentuje połączony element OLE.
COleServerItem::NotifyChanged Aktualizacje wszystkich kontenerów z automatyczną aktualizacją linków.
COleServerItem::OnDoVerb Wywoływana w celu wykonania zlecenia.
COleServerItem::OnDraw Wywoływana, gdy kontener żąda rysowania elementu; wymagana implementacja.
COleServerItem::OnDrawEx Wywoływane dla wyspecjalizowanego rysunku elementu.
COleServerItem::OnGetClipboardData Wywoływana przez platformę w celu pobrania danych, które zostaną skopiowane do Schowka.
COleServerItem::OnGetExtent Wywoływana przez strukturę w celu pobrania rozmiaru elementu OLE.
COleServerItem::OninitFromData Wywoływana przez platformę w celu zainicjowania elementu OLE przy użyciu określonej zawartości obiektu transferu danych.
COleServerItem::OnQueryUpdateItems Wywoływana w celu określenia, czy jakiekolwiek połączone elementy wymagają aktualizacji.
COleServerItem::OnRenderData Pobiera dane w ramach opóźnionego renderowania.
COleServerItem::OnRenderFileData Pobiera dane do CFile obiektu w ramach opóźnionego renderowania.
COleServerItem::OnrenderGlobalData Pobiera dane do elementu HGLOBAL w ramach opóźnionego renderowania.
COleServerItem::OnSetColorScheme Wywołana w celu ustawienia schematu kolorów elementu.
COleServerItem::OnSetData Wywołana w celu ustawienia danych elementu.
COleServerItem::OnSetExtent Wywoływana przez strukturę w celu ustawienia rozmiaru elementu OLE.
COleServerItem::OnUpdate Wywoływana, gdy część dokumentu, do którego należy element, zostanie zmieniona.
COleServerItem::OnUpdateItems Wywoływana w celu zaktualizowania pamięci podręcznej prezentacji wszystkich elementów w dokumencie serwera.
COleServerItem::SetItemName Ustawia nazwę elementu. Służy tylko do tworzenia połączonych elementów.

Metody chronione

Nazwa/nazwisko opis
COleServerItem::GetDataSource Pobiera obiekt używany do przechowywania formatów konwersji.
COleServerItem::OnHide Wywoływana przez strukturę w celu ukrycia elementu OLE.
COleServerItem::OnOpen Wywoływana przez strukturę w celu wyświetlenia elementu OLE we własnym oknie najwyższego poziomu.
COleServerItem::OnShow Wywoływana, gdy kontener żąda wyświetlenia elementu.

Publiczne elementy członkowskie danych

Nazwa/nazwisko opis
COleServerItem::m_sizeExtent Informuje serwer o tym, ile elementów OLE jest widocznych.

Uwagi

Połączony element może reprezentować niektóre lub wszystkie dokumenty serwera. Element osadzony zawsze reprezentuje cały dokument serwera.

Klasa COleServerItem definiuje kilka funkcji składowych, które można zastąpić, które są wywoływane przez biblioteki linków dynamicznych OLE (DLL), zwykle w odpowiedzi na żądania z aplikacji kontenera. Te funkcje członkowskie umożliwiają aplikacji kontenera manipulowanie elementem pośrednio na różne sposoby, takie jak wyświetlanie go, wykonywanie jego czasowników lub pobieranie danych w różnych formatach.

Aby użyć COleServerItemklasy , utwórz z niej klasę i zaimplementuj funkcje składowe OnDraw i Serialize . Funkcja OnDraw udostępnia metaplikową reprezentację elementu, umożliwiając jej wyświetlanie, gdy aplikacja kontenera otwiera dokument złożony. Funkcja SerializeCObject zapewnia natywną reprezentację elementu, umożliwiając przesyłanie elementu osadzonego między serwerem a aplikacjami kontenera. Element OnGetExtent udostępnia naturalny rozmiar elementu kontenerowi, umożliwiając kontenerowi rozmiar elementu.

Aby uzyskać więcej informacji na temat serwerów i powiązanych tematów, zobacz artykuł Serwery: implementowanie serwera i "Tworzenie aplikacji kontenera/serwera" w artykule Kontenery: funkcje zaawansowane.

Hierarchia dziedziczenia

Cobject

Ccmdtarget

Cdocitem

COleServerItem

Wymagania

Nagłówek: afxole.h

COleServerItem::AddOtherClipboardData

Wywołaj tę funkcję, aby umieścić formaty prezentacji i konwersji dla elementu OLE w określonym COleDataSource obiekcie.

void AddOtherClipboardData(COleDataSource* pDataSource);

Parametry

pDataSource
Wskaźnik do COleDataSource obiektu, w którym powinny zostać umieszczone dane.

Uwagi

Aby zapewnić format prezentacji (obraz metapliku) dla elementu, musisz zaimplementować funkcję składową OnDraw . Aby obsługiwać inne formaty konwersji, zarejestruj je przy użyciu obiektu COleDataSource zwróconego przez usługę GetDataSource i zastąp funkcję składową OnRenderData w celu udostępnienia danych w formatach, które chcesz obsługiwać.

COleServerItem::COleServerItem

COleServerItem Tworzy obiekt i dodaje go do kolekcji dokumentów serwera elementów dokumentu.

COleServerItem(
    COleServerDoc* pServerDoc,
    BOOL bAutoDelete);

Parametry

pServerDoc
Wskaźnik do dokumentu, który będzie zawierać nowy element.

bAutoDelete
Flaga wskazująca, czy obiekt można usunąć po zwolnieniu linku. Ustaw wartość FALSE, COleServerItem jeśli obiekt jest integralną częścią danych dokumentu, które należy usunąć. Ustaw wartość TRUE, jeśli obiekt jest strukturą pomocniczą służącą do identyfikowania zakresu w danych dokumentu, które mogą zostać usunięte przez platformę.

COleServerItem::CopyToClipboard

Wywołaj tę funkcję, aby skopiować element OLE do Schowka.

void CopyToClipboard(BOOL bIncludeLink = FALSE);

Parametry

bIncludeLink
Ustaw wartość TRUE, jeśli dane łącza powinny zostać skopiowane do Schowka. Ustaw wartość FALSE, jeśli aplikacja serwera nie obsługuje łączy.

Uwagi

Funkcja używa funkcji składowej OnGetClipboardData , aby utworzyć obiekt COleDataSource zawierający dane elementu OLE w obsługiwanych formatach. Następnie funkcja umieszcza COleDataSource obiekt w Schowku przy użyciu funkcji COleDataSource::SetClipboard . Obiekt COleDataSource zawiera dane natywne elementu i jego reprezentację w formacie CF_METAFILEPICT, a także dane w dowolnych formatach konwersji, które mają być obsługiwane. Aby ta funkcja składowa działała, należy zaimplementować serializacji i OnDraw .

COleServerItem::D oDragDrop

Wywołaj funkcję składową, DoDragDrop aby wykonać operację przeciągania i upuszczania.

DROPEFFECT DoDragDrop(
    LPCRECT lpRectItem,
    CPoint ptOffset,
    BOOL bIncludeLink = FALSE,
    DWORD dwEffects = DROPEFFECT_COPY | DROPEFFECT_MOVE,
    LPCRECT lpRectStartDrag = NULL);

Parametry

lpRectItem
Prostokąt elementu na ekranie w pikselach względem obszaru klienta.

ptOffset
Przesunięcie od lpItemRect , gdzie pozycja myszy znajdowała się w czasie przeciągania.

bIncludeLink
Ustaw wartość TRUE, jeśli dane łącza powinny zostać skopiowane do Schowka. Ustaw wartość FALSE, jeśli aplikacja nie obsługuje linków.

dwEffects
Określa efekty, które źródło przeciągania będzie zezwalać na operację przeciągania (kombinacja polecenia Copy, Move i Link).

lpRectStartDrag
Wskaźnik do prostokąta, który definiuje, gdzie faktycznie rozpoczyna się przeciąganie. Aby uzyskać więcej informacji zobacz następujące sekcji uwag.

Wartość zwracana

Wartość z wyliczenia DROPEFFECT. Jeśli DROPEFFECT_MOVE, oryginalne dane powinny zostać usunięte.

Uwagi

Operacja przeciągania i upuszczania nie rozpoczyna się natychmiast. Czeka, aż kursor myszy opuści prostokąt określony przez lpRectStartDrag lub do momentu, aż zostanie przekazana określona liczba milisekund. Jeśli parametr lpRectStartDrag ma wartość NULL, zostanie użyty domyślny prostokąt, aby przeciąganie rozpoczynało się po przesunięciu kursora myszy o jeden piksel.

Czas opóźnienia jest określany przez ustawienie klucza rejestru. Czas opóźnienia można zmienić, wywołując polecenie CWinApp::WriteProfileString lub CWinApp::WriteProfileInt. Jeśli nie określisz czasu opóźnienia, zostanie użyta wartość domyślna 200 milisekund. Czas opóźnienia przeciągania jest przechowywany w następujący sposób:

  • Czas opóźnienia przeciągania systemu Windows NT jest przechowywany w HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\NT\CurrentVersion\IniFileMapping\win.ini\Windows\DragDelay.

  • Czas opóźnienia przeciągania systemu Windows 3.x jest przechowywany w win. Plik INI w sekcji [Windows}.

  • Czas opóźnienia przeciągania systemu Windows 95/98 jest przechowywany w buforowanej wersji win. INI.

Aby uzyskać więcej informacji na temat sposobu przechowywania informacji o opóźnieniu przeciągania w rejestrze lub obiekcie . Plik INI, zobacz WriteProfileString w zestawie Windows SDK.

COleServerItem::GetClipboardData

Wywołaj tę funkcję, aby wypełnić określony obiekt COleDataSource wszystkimi danymi, które zostałyby skopiowane do Schowka, jeśli nazwa zostałaby wywołana CopyToClipboard (te same dane również zostaną przeniesione w przypadku wywołania funkcji DoDragDrop).

void GetClipboardData(
    COleDataSource* pDataSource,
    BOOL bIncludeLink = FALSE,
    LPPOINT lpOffset = NULL,
    LPSIZE lpSize = NULL);

Parametry

pDataSource
Wskaźnik do COleDataSource obiektu, który otrzyma dane elementu OLE we wszystkich obsługiwanych formatach.

bIncludeLink
Wartość TRUE, jeśli dane łącza powinny zostać skopiowane do Schowka. FAŁSZ, jeśli aplikacja serwera nie obsługuje linków.

lpOffset
Przesunięcie w pikselach kursora myszy ze źródła obiektu.

lpSize
Rozmiar obiektu w pikselach.

Uwagi

Ta funkcja wywołuje funkcję składową GetEmbedSourceData , aby pobrać dane natywne dla elementu OLE i wywołać funkcję składową AddOtherClipboardData , aby uzyskać format prezentacji i wszystkie obsługiwane formaty konwersji. Jeśli parametr bIncludeLink ma wartość TRUE, funkcja wywołuje również metodę GetLinkSourceData , aby pobrać dane linku dla elementu.

Zastąpi COleDataSource tę funkcję, jeśli chcesz umieścić formaty w obiekcie przed lub po tych formatach dostarczonych przez CopyToClipboardprogram .

COleServerItem::GetDataSource

Wywołaj tę funkcję, aby pobrać obiekt COleDataSource używany do przechowywania formatów konwersji, które obsługuje aplikacja serwera.

COleDataSource* GetDataSource();

Wartość zwracana

Wskaźnik do COleDataSource obiektu używanego do przechowywania formatów konwersji.

Uwagi

Jeśli chcesz, aby aplikacja serwera oferowała dane w różnych formatach podczas operacji transferu danych, zarejestruj te formaty COleDataSource za pomocą obiektu zwróconego przez tę funkcję. Jeśli na przykład chcesz podać CF_TEXT reprezentację elementu OLE dla operacji Schowka lub przeciągania i upuszczania, należy zarejestrować format z COleDataSource obiektem zwracanym przez tę funkcję, a następnie zastąpić OnRenderXxxData funkcję składową, aby podać dane.

COleServerItem::GetDocument

Wywołaj tę funkcję, aby uzyskać wskaźnik do dokumentu zawierającego element.

COleServerDoc* GetDocument() const;

Wartość zwracana

Wskaźnik do dokumentu zawierającego element; Wartość NULL, jeśli element nie jest częścią dokumentu.

Uwagi

Umożliwia to dostęp do dokumentu serwera przekazanego jako argument do konstruktora COleServerItem .

COleServerItem::GetEmbedSourceData

Wywołaj tę funkcję, aby pobrać dane CF_EMBEDSOURCE dla elementu OLE.

void GetEmbedSourceData(LPSTGMEDIUM lpStgMedium);

Parametry

lpStgMedium
Wskaźnik do struktury STGMEDIUM , która będzie otrzymywać dane CF_EMBEDSOURCE dla elementu OLE.

Uwagi

Ten format zawiera dane natywne elementu. Aby ta funkcja działała prawidłowo, musisz zaimplementować Serialize funkcję składową.

Wynik można następnie dodać do źródła danych przy użyciu COleDataSource::CacheDataData. Ta funkcja jest wywoływana automatycznie przez COleServerItem::OnGetClipboardData.

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

COleServerItem::GetItemName

Wywołaj tę funkcję, aby uzyskać nazwę elementu.

const CString& GetItemName() const;

Wartość zwracana

Nazwa elementu.

Uwagi

Zazwyczaj ta funkcja jest wywoływana tylko dla połączonych elementów.

COleServerItem::GetLinkSourceData

Wywołaj tę funkcję, aby pobrać dane CF_LINKSOURCE dla elementu OLE.

BOOL GetLinkSourceData(LPSTGMEDIUM lpStgMedium);

Parametry

lpStgMedium
Wskaźnik do struktury STGMEDIUM , która będzie otrzymywać dane CF_LINKSOURCE dla elementu OLE.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Ten format zawiera identyfikator CLSID opisujący typ elementu OLE oraz informacje potrzebne do zlokalizowania dokumentu zawierającego element OLE.

Wynik można następnie dodać do źródła danych za pomocą COleDataSource::CacheDataData. Ta funkcja jest wywoływana automatycznie przez onGetClipboardData.

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

COleServerItem::GetObjectDescriptorData

Wywołaj tę funkcję, aby pobrać dane CF_OBJECTDESCRIPTOR dla elementu OLE.

void GetObjectDescriptorData(
    LPPOINT lpOffset,
    LPSIZE lpSize,
    LPSTGMEDIUM lpStgMedium);

Parametry

lpOffset
Przesunięcie kliknięcia myszy w lewym górnym rogu elementu OLE. Może mieć wartość NULL.

lpSize
Rozmiar elementu OLE. Może mieć wartość NULL.

lpStgMedium
Wskaźnik do struktury STGMEDIUM , która będzie otrzymywać dane CF_OBJECTDESCRIPTOR dla elementu OLE.

Uwagi

Informacje są kopiowane do STGMEDIUM struktury wskazywanej przez lpStgMedium. Ten format zawiera informacje potrzebne do okna dialogowego Wklej specjalne.

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

COleServerItem::Is Połączenie ed

Wywołaj tę funkcję, aby sprawdzić, czy element OLE jest połączony.

BOOL IsConnected() const;

Wartość zwracana

Nonzero, jeśli element jest połączony; w przeciwnym razie 0.

Uwagi

Element OLE jest uznawany za połączony, jeśli co najmniej jeden kontener zawiera odwołania do elementu. Element jest połączony, jeśli jego liczba odwołań jest większa niż 0 lub jeśli jest elementem osadzonym.

COleServerItem::IsLinkedItem

Wywołaj tę funkcję, aby sprawdzić, czy element OLE jest elementem połączonym.

BOOL IsLinkedItem() const;

Wartość zwracana

Niezero, jeśli element jest elementem połączonym; w przeciwnym razie 0.

Uwagi

Element jest połączony, jeśli element jest prawidłowy i nie jest zwracany na liście osadzonych elementów dokumentu. Połączony element może być połączony lub nie może być połączony z kontenerem.

Często używa się tej samej klasy zarówno dla elementów połączonych, jak i osadzonych. IsLinkedItem umożliwia zachowanie elementów połączonych w inny sposób niż elementy osadzone, chociaż wiele razy kod jest typowy.

COleServerItem::m_sizeExtent

Ten element członkowski informuje serwer, ile obiektu jest widoczne w dokumencie kontenera.

CSize m_sizeExtent;

Uwagi

Domyślna implementacja elementu OnSetExtent ustawia ten element członkowski.

COleServerItem::NotifyChanged

Wywołaj tę funkcję po zmianie połączonego elementu.

void NotifyChanged(DVASPECT nDrawAspect = DVASPECT_CONTENT);

Parametry

nDrawAspect
Wartość z wyliczenia DVASPECT wskazująca, który aspekt elementu OLE uległ zmianie. Ten parametr może mieć dowolną z następujących wartości:

  • DVASPECT_CONTENT Element jest reprezentowany w taki sposób, że może być wyświetlany jako obiekt osadzony wewnątrz kontenera.

  • DVASPECT_THUMBNAIL Element jest renderowany w reprezentacji "miniatury", aby można było je wyświetlić w narzędziu przeglądania.

  • DVASPECT_ICON Element jest reprezentowany przez ikonę.

  • DVASPECT_DOCPRINT Element jest reprezentowany tak, jakby został wydrukowany przy użyciu polecenia Drukuj z menu Plik.

Uwagi

Jeśli element kontenera jest połączony z dokumentem za pomocą linku automatycznego, element zostanie zaktualizowany w celu odzwierciedlenia zmian. W aplikacjach kontenerów napisanych przy użyciu biblioteki klas programu Microsoft Foundation klasa COleClientItem::OnChange jest wywoływana w odpowiedzi.

COleServerItem::OnDoVerb

Wywoływana przez strukturę w celu wykonania określonego zlecenia.

virtual void OnDoVerb(LONG iVerb);

Parametry

iVerb
Określa czasownik do wykonania. Może to być dowolny z następujących elementów:

Wartość Znaczenie Symbol
0 Primary — Zlecenie OLEIVERB_PRIMARY
1 Czasownik pomocniczy (Brak)
-1 Wyświetlanie elementu do edycji OLEIVERB_SHOW
-2 Edytowanie elementu w osobnym oknie OLEIVERB_OPEN
–3 Ukryj element OLEIVERB_HIDE

Wartość -1 jest zazwyczaj aliasem dla innego zlecenia. Jeśli otwarta edycja nie jest obsługiwana, -2 ma taki sam efekt jak -1. Aby uzyskać dodatkowe wartości, zobacz IOleObject::D oVerb w zestawie Windows SDK.

Uwagi

Jeśli aplikacja kontenera została napisana przy użyciu biblioteki klas programu Microsoft Foundation, ta funkcja jest wywoływana, gdy wywoływana jest funkcja składowa COleClientItem::Activate odpowiedniego COleClientItem obiektu. Domyślna implementacja wywołuje funkcję składową OnShow , jeśli określono czasownik podstawowy lub OLEIVERB_SHOW, Otwórz , jeśli określono czasownik pomocniczy lub OLEIVERB_OPEN, i OnHide , jeśli określono OLEIVERB_HIDE. Domyślna implementacja wywołuje metodę OnShow , jeśli element iVerb nie jest jednym z zleceń wymienionych powyżej.

Zastąpi tę funkcję, jeśli czasownik podstawowy nie wyświetla elementu. Jeśli na przykład element jest nagraniem dźwiękowym, a jego podstawowym czasownikiem jest Play, nie trzeba wyświetlać aplikacji serwera, aby odtworzyć element.

Aby uzyskać więcej informacji, zobacz IOleObject::D oVerb w zestawie Windows SDK.

COleServerItem::OnDraw

Wywoływana przez platformę w celu renderowania elementu OLE w metapliku.

virtual BOOL OnDraw(
    CDC* pDC,
    CSize& rSize) = 0;

Parametry

Pdc
Wskaźnik do obiektu CDC , na którym ma być narysowyny element. Kontekst wyświetlania jest automatycznie połączony z kontekstem wyświetlania atrybutu, dzięki czemu można wywołać funkcje atrybutów, chociaż spowoduje to, że metaplik jest specyficzny dla urządzenia.

rSize
Rozmiar w jednostkach HIMETRIC, w których ma być rysowanie metapliku.

Wartość zwracana

Nonzero, jeśli element został pomyślnie narysowany; w przeciwnym razie 0.

Uwagi

Reprezentacja metapliku elementu OLE służy do wyświetlania elementu w aplikacji kontenera. Jeśli aplikacja kontenera została napisana przy użyciu biblioteki klas programu Microsoft Foundation, metaplik jest używany przez funkcję składową Draw odpowiedniego obiektu COleClientItem . Nie ma implementacji domyślnej. Tę funkcję należy zastąpić, aby narysować element do określonego kontekstu urządzenia.

COleServerItem::OnDrawEx

Wywoływana przez strukturę dla całego rysunku.

virtual BOOL OnDrawEx(
    CDC* pDC,
    DVASPECT nDrawAspect,
    CSize& rSize);

Parametry

Pdc
Wskaźnik do obiektu CDC , na którym ma być narysowyny element. Kontroler domeny jest automatycznie połączony z kontrolerem domeny atrybutu, dzięki czemu można wywołać funkcje atrybutów, chociaż spowoduje to, że metaplik jest specyficzny dla urządzenia.

nDrawAspect
Wartość z wyliczenia DVASPECT. Ten parametr może mieć dowolną z następujących wartości:

  • DVASPECT_CONTENT Element jest reprezentowany w taki sposób, że może być wyświetlany jako obiekt osadzony wewnątrz kontenera.

  • DVASPECT_THUMBNAIL Element jest renderowany w reprezentacji "miniatury", aby można było je wyświetlić w narzędziu przeglądania.

  • DVASPECT_ICON Element jest reprezentowany przez ikonę.

  • DVASPECT_DOCPRINT Element jest reprezentowany tak, jakby został wydrukowany przy użyciu polecenia Drukuj z menu Plik.

rSize
Rozmiar elementu w jednostkach HIMETRIC.

Wartość zwracana

Nonzero, jeśli element został pomyślnie narysowany; w przeciwnym razie 0.

Uwagi

Domyślna implementacja wywołuje metodę OnDraw DVASPECT równą DVASPECT_CONTENT; w przeciwnym razie kończy się niepowodzeniem.

Zastąpi tę funkcję, aby udostępnić dane prezentacji dla aspektów innych niż DVASPECT_CONTENT, takich jak DVASPECT_ICON lub DVASPECT_THUMBNAIL.

COleServerItem::OnGetClipboardData

Wywoływana przez platformę COleDataSource w celu pobrania obiektu zawierającego wszystkie dane umieszczone w Schowku przez wywołanie funkcji składowej CopyToClipboard .

virtual COleDataSource* OnGetClipboardData(
    BOOL bIncludeLink,
    LPPOINT lpOffset,
    LPSIZE lpSize);

Parametry

bIncludeLink
Ustaw wartość TRUE, jeśli dane łącza powinny zostać skopiowane do Schowka. Ustaw wartość FALSE, jeśli aplikacja serwera nie obsługuje łączy.

lpOffset
Przesunięcie kursora myszy ze źródła obiektu w pikselach.

lpSize
Rozmiar obiektu w pikselach.

Wartość zwracana

Wskaźnik do obiektu COleDataSource zawierającego dane Schowka.

Uwagi

Domyślna implementacja tej funkcji wywołuje metodę GetClipboardData.

COleServerItem::OnGetExtent

Wywoływana przez strukturę w celu pobrania rozmiaru elementu OLE w jednostkach HIMETRIC.

virtual BOOL OnGetExtent(
    DVASPECT nDrawAspect,
    CSize& rSize);

Parametry

nDrawAspect
Określa aspekt elementu OLE, którego granice mają zostać pobrane. Ten parametr może mieć dowolną z następujących wartości:

  • DVASPECT_CONTENT Element jest reprezentowany w taki sposób, że może być wyświetlany jako obiekt osadzony wewnątrz kontenera.

  • DVASPECT_THUMBNAIL Element jest renderowany w reprezentacji "miniatury", aby można było je wyświetlić w narzędziu przeglądania.

  • DVASPECT_ICON Element jest reprezentowany przez ikonę.

  • DVASPECT_DOCPRINT Element jest reprezentowany tak, jakby został wydrukowany przy użyciu polecenia Drukuj z menu Plik.

rSize
Odwołanie do CSize obiektu, który otrzyma rozmiar elementu OLE.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Jeśli aplikacja kontenera została napisana przy użyciu biblioteki klas programu Microsoft Foundation, ta funkcja jest wywoływana, gdy wywoływana jest funkcja składowa GetExtent odpowiedniego COleClientItem obiektu. Domyślna implementacja nic nie robi. Musisz go zaimplementować samodzielnie. Zastąpi tę funkcję, jeśli chcesz wykonać specjalne przetwarzanie podczas obsługi żądania rozmiaru elementu OLE.

COleServerItem::OnHide

Wywoływana przez strukturę w celu ukrycia elementu OLE.

virtual void OnHide();

Uwagi

Domyślne wywołania .COleServerDoc::OnShowDocument( FALSE ) Funkcja powiadamia również kontener, że element OLE został ukryty. Zastąpi tę funkcję, jeśli chcesz wykonać specjalne przetwarzanie podczas ukrywania elementu OLE.

COleServerItem::OninitFromData

Wywoływana przez platformę w celu zainicjowania elementu OLE przy użyciu zawartości obiektu pDataObject.

virtual BOOL OnInitFromData(
    COleDataObject* pDataObject,
    BOOL bCreation);

Parametry

pDataObject
Wskaźnik do obiektu danych OLE zawierającego dane w różnych formatach na potrzeby inicjowania elementu OLE.

bCreation
Wartość TRUE, jeśli funkcja jest wywoływana w celu zainicjowania nowo utworzonego elementu OLE przez aplikację kontenera. FALSE, jeśli funkcja jest wywoływana w celu zastąpienia zawartości już istniejącego elementu OLE.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Jeśli wartość bCreation ma wartość TRUE, ta funkcja jest wywoływana, jeśli kontener implementuje nowy obiekt na podstawie bieżącego zaznaczenia. Wybrane dane są używane podczas tworzenia nowego elementu OLE. Na przykład podczas wybierania zakresu komórek w programie arkusza kalkulacyjnego, a następnie utworzenia wykresu na podstawie wartości w wybranym zakresie za pomocą wstaw nowego obiektu. Domyślna implementacja nic nie robi. Zastąpij tę funkcję, aby wybrać akceptowalny format spośród tych oferowanych przez obiekt pDataObject i zainicjować element OLE na podstawie podanych danych. Jest to zaawansowane przesłonięcia.

Aby uzyskać więcej informacji, zobacz IOleObject::InitFromData w zestawie Windows SDK.

COleServerItem::OnOpen

Wywoływana przez platformę w celu wyświetlenia elementu OLE w osobnym wystąpieniu aplikacji serwera, a nie w miejscu.

virtual void OnOpen();

Uwagi

Domyślna implementacja aktywuje pierwsze okno ramki z wyświetlonym dokumentem zawierającym element OLE; Jeśli aplikacja jest mini-serwerem, domyślna implementacja pokazuje okno główne. Funkcja powiadamia również kontener, że element OLE został otwarty.

Zastąpi tę funkcję, jeśli chcesz wykonać specjalne przetwarzanie podczas otwierania elementu OLE. Jest to szczególnie typowe w przypadku elementów połączonych, w których chcesz ustawić wybór na link po jego otwarciu.

Aby uzyskać więcej informacji, zobacz IOleClientSite::OnShowWindow w zestawie WINDOWS SDK.

COleServerItem::OnQueryUpdateItems

Wywoływana przez platformę w celu określenia, czy jakiekolwiek połączone elementy w bieżącym dokumencie serwera są nieaktualne.

virtual BOOL OnQueryUpdateItems();

Wartość zwracana

Nonzero, jeśli dokument zawiera elementy wymagające aktualizacji; 0, jeśli wszystkie elementy są aktualne.

Uwagi

Element jest nieaktualny, jeśli jego dokument źródłowy został zmieniony, ale połączony element nie został zaktualizowany w celu odzwierciedlenia zmian w dokumencie.

COleServerItem::OnRenderData

Wywoływana przez platformę w celu pobrania danych w określonym formacie.

virtual BOOL OnRenderData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium);

Parametry

lpFormatEtc
Wskazuje strukturę FORMATETC określającą format, w którym są żądane informacje.

lpStgMedium
Wskazuje strukturę STGMEDIUM, w której dane mają być zwracane.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Określony format jest wcześniej umieszczony w COleDataSource obiekcie przy użyciu funkcji elementu członkowskiego DelayRenderData lub DelayRenderFileData na potrzeby opóźnionego renderowania. Domyślna implementacja tej funkcji wywołuje odpowiednio wartość OnRenderFileData lub OnRenderGlobalData, jeśli podany nośnik magazynu jest plikiem lub pamięcią. Jeśli żaden z tych formatów nie zostanie podany, domyślna implementacja zwraca wartość 0 i nic nie robi.

Jeśli lpStgMedium-tymed> jest TYMED_NULL, STGMEDIUM powinno zostać przydzielone i wypełnione zgodnie z wartością lpFormatEtc-tymed.> Jeśli nie TYMED_NULL, plik STGMEDIUM powinien zostać wypełniony danymi.

Jest to zaawansowane przesłonięcia. Zastąpi tę funkcję, aby udostępnić dane w żądanym formacie i nośniku. W zależności od danych możesz zastąpić jedną z pozostałych wersji tej funkcji. Jeśli dane są małe i stałe, zastąpij OnRenderGlobalDatawartość . Jeśli dane są w pliku lub mają zmienny rozmiar, przesłoń OnRenderFileDatawartość .

Aby uzyskać więcej informacji, zobacz IDataObject::GetData, STGMEDIUM, FORMATETC i TYMED w zestawie WINDOWS SDK.

COleServerItem::OnRenderFileData

Wywoływana przez platformę w celu pobrania danych w określonym formacie, gdy nośnik magazynu jest plikiem.

virtual BOOL OnRenderFileData(
    LPFORMATETC lpFormatEtc,
    CFile* pFile);

Parametry

lpFormatEtc
Wskazuje strukturę FORMATETC określającą format, w którym są żądane informacje.

plik pFile
CFile Wskazuje obiekt, w którym dane mają być renderowane.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Określony format jest wcześniej umieszczony w COleDataSource obiekcie przy użyciu funkcji składowej DelayRenderData na potrzeby opóźnionego renderowania. Domyślna implementacja tej funkcji po prostu zwraca wartość FALSE.

Jest to zaawansowane przesłonięcia. Zastąpi tę funkcję, aby udostępnić dane w żądanym formacie i nośniku. W zależności od danych warto zastąpić jedną z pozostałych wersji tej funkcji. Jeśli chcesz obsługiwać wiele nośników magazynu, zastąp wartość OnRenderData. Jeśli dane są w pliku lub mają zmienny rozmiar, zastąp wartość OnRenderFileData.

Aby uzyskać więcej informacji, zobacz IDataObject::GetData i FORMATETC w zestawie Windows SDK.

COleServerItem::OnrenderGlobalData

Wywoływana przez platformę w celu pobrania danych w określonym formacie, gdy określony nośnik magazynu jest pamięcią globalną.

virtual BOOL OnRenderGlobalData(
    LPFORMATETC lpFormatEtc,
    HGLOBAL* phGlobal);

Parametry

lpFormatEtc
Wskazuje strukturę FORMATETC określającą format, w którym są żądane informacje.

phGlobal
Wskazuje dojście do pamięci globalnej, w której dane mają być zwracane. Jeśli pamięć nie została przydzielona, ten parametr może mieć wartość NULL.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Określony format jest wcześniej umieszczony w COleDataSource obiekcie przy użyciu funkcji składowej DelayRenderData na potrzeby opóźnionego renderowania. Domyślna implementacja tej funkcji po prostu zwraca wartość FALSE.

Jeśli fraza phGlobal ma wartość NULL, należy przydzielić i zwrócić nową frazę HGLOBAL. W przeciwnym razie parametr HGLOBAL określony przez frazę phGlobal powinien być wypełniony danymi. Ilość danych umieszczonych w HGLOBAL nie może przekraczać bieżącego rozmiaru bloku pamięci. Ponadto nie można ponownie przydzielić bloku do większego rozmiaru.

Jest to zaawansowane przesłonięcia. Zastąpi tę funkcję, aby udostępnić dane w żądanym formacie i nośniku. W zależności od danych możesz zastąpić jedną z pozostałych wersji tej funkcji. Jeśli chcesz obsługiwać wiele nośników magazynu, zastąp wartość OnRenderData. Jeśli dane są w pliku lub mają zmienny rozmiar, zastąp wartość OnRenderFileData.

Aby uzyskać więcej informacji, zobacz IDataObject::GetData i FORMATETC w zestawie Windows SDK.

COleServerItem::OnSetColorScheme

Wywoływana przez platformę w celu określenia palety kolorów, która ma być używana podczas edytowania elementu OLE.

virtual BOOL OnSetColorScheme(const LOGPALETTE* lpLogPalette);

Parametry

lpLogPalette
Wskaźnik do struktury LOGPALETTE systemu Windows.

Wartość zwracana

Niezerowe, jeśli jest używana paleta kolorów; w przeciwnym razie 0.

Uwagi

Jeśli aplikacja kontenera została napisana przy użyciu biblioteki klas programu Microsoft Foundation, ta funkcja jest wywoływana, gdy wywoływana jest funkcja IOleObject::SetColorScheme odpowiedniego COleClientItem obiektu. Domyślna implementacja zwraca wartość FALSE. Zastąpi tę funkcję, jeśli chcesz użyć zalecanej palety. Aplikacja serwera nie jest wymagana do korzystania z sugerowanej palety.

Aby uzyskać więcej informacji, zobacz IOleObject::SetColorScheme w zestawie Windows SDK.

COleServerItem::OnSetData

Wywoływana przez strukturę w celu zastąpienia danych elementu OLE określonymi danymi.

virtual BOOL OnSetData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium,
    BOOL bRelease);

Parametry

lpFormatEtc
Wskaźnik do struktury FORMATETC określający format danych.

lpStgMedium
Wskaźnik do struktury STGMEDIUM , w której znajdują się dane.

Brelease
Wskazuje, kto ma własność nośnika magazynu po zakończeniu wywołania funkcji. Wywołujący decyduje, kto jest odpowiedzialny za wydawanie zasobów przydzielonych w imieniu nośnika magazynu. Obiekt wywołujący robi to, ustawiając wartość bRelease. Jeśli wersja bRelease nie jestzerowa, element serwera przejmuje własność, zwalniając nośnik po zakończeniu korzystania z niego. Gdy element bRelease ma wartość 0, obiekt wywołujący zachowuje własność, a element serwera może używać nośnika magazynu tylko przez czas trwania wywołania.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Element serwera nie przejmuje własności danych, dopóki nie zostanie pomyślnie uzyskany. Oznacza to, że nie przejmuje własności, jeśli zwraca wartość 0. Jeśli źródło danych przejmuje własność, zwalnia nośnik magazynu przez wywołanie funkcji ReleaseStgMedium .

Domyślna implementacja nic nie robi. Zastąp tę funkcję, aby zastąpić dane elementu OLE określonymi danymi. Jest to zaawansowane przesłonięcia.

Aby uzyskać więcej informacji, zobacz STGMEDIUM, FORMATETC i ReleaseStgMedium w zestawie SDK systemu Windows.

COleServerItem::OnSetExtent

Wywoływana przez platformę, aby poinformować element OLE, ile miejsca jest dostępne w dokumencie kontenera.

virtual BOOL OnSetExtent(
    DVASPECT nDrawAspect,
    const CSize& size);

Parametry

nDrawAspect
Określa aspekt elementu OLE, którego granice są określone. Ten parametr może mieć dowolną z następujących wartości:

  • DVASPECT_CONTENT Element jest reprezentowany w taki sposób, że może być wyświetlany jako obiekt osadzony wewnątrz kontenera.

  • DVASPECT_THUMBNAIL Element jest renderowany w reprezentacji "miniatury", aby można było je wyświetlić w narzędziu przeglądania.

  • DVASPECT_ICON Element jest reprezentowany przez ikonę.

  • DVASPECT_DOCPRINT Element jest reprezentowany tak, jakby został wydrukowany przy użyciu polecenia Drukuj z menu Plik.

Rozmiar
Struktura CSize określająca nowy rozmiar elementu OLE.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Jeśli aplikacja kontenera została napisana przy użyciu biblioteki klas programu Microsoft Foundation, ta funkcja jest wywoływana, gdy wywoływana jest funkcja składowa SetExtent odpowiedniego COleClientItem obiektu. Domyślna implementacja ustawia element członkowski m_sizeExtent na określony rozmiar, jeśli nDrawAspect jest DVASPECT_CONTENT; w przeciwnym razie zwraca wartość 0. Zastąpi tę funkcję w celu wykonania specjalnego przetwarzania podczas zmiany rozmiaru elementu.

COleServerItem::OnShow

Wywoływana przez platformę w celu poinstruowania aplikacji serwera o wyświetlaniu elementu OLE.

virtual void OnShow();

Uwagi

Ta funkcja jest zwykle wywoływana, gdy użytkownik aplikacji kontenera tworzy element lub wykonuje zlecenie, takie jak Edycja, które wymaga wyświetlenia elementu. Domyślna implementacja próbuje aktywować w miejscu. Jeśli to się nie powiedzie, funkcja wywołuje OnOpen funkcję składową, aby wyświetlić element OLE w osobnym oknie.

Zastąpi tę funkcję, jeśli chcesz wykonać specjalne przetwarzanie po wyświetleniu elementu OLE.

COleServerItem::OnUpdate

Wywoływana przez strukturę, gdy element został zmodyfikowany.

virtual void OnUpdate(
    COleServerItem* pSender,
    LPARAM lHint,
    CObject* pHint,
    DVASPECT nDrawAspect);

Parametry

pSender
Wskaźnik do elementu, który zmodyfikował dokument. Może mieć wartość NULL.

Lhint
Zawiera informacje o modyfikacji.

Phint
Wskaźnik do obiektu przechowującego informacje o modyfikacji.

nDrawAspect
Wartość z wyliczenia DVASPECT. Ten parametr może mieć dowolną z następujących wartości:

  • DVASPECT_CONTENT Element jest reprezentowany w taki sposób, że może być wyświetlany jako obiekt osadzony wewnątrz kontenera.

  • DVASPECT_THUMBNAIL Element jest renderowany w reprezentacji "miniatury", aby można było je wyświetlić w narzędziu przeglądania.

  • DVASPECT_ICON Element jest reprezentowany przez ikonę.

  • DVASPECT_DOCPRINT Element jest reprezentowany tak, jakby został wydrukowany przy użyciu polecenia Drukuj z menu Plik.

Uwagi

Domyślna implementacja wywołuje metodę NotifyChanged niezależnie od wskazówki lub nadawcy.

COleServerItem::OnUpdateItems

Wywoływana przez platformę w celu zaktualizowania wszystkich elementów w dokumencie serwera.

virtual void OnUpdateItems();

Uwagi

Domyślna implementacja wywołuje element UpdateLink dla wszystkich COleClientItem obiektów w dokumencie.

COleServerItem::SetItemName

Wywołaj tę funkcję podczas tworzenia połączonego elementu, aby ustawić jego nazwę.

void SetItemName(LPCTSTR lpszItemName);

Parametry

lpszItemName
Wskaźnik do nowej nazwy elementu.

Uwagi

Nazwa musi być unikatowa w dokumencie. Gdy aplikacja serwera jest wywoływana w celu edytowania połączonego elementu, aplikacja używa tej nazwy do znalezienia elementu. Nie trzeba wywoływać tej funkcji dla elementów osadzonych.

Zobacz też

Przykład MFC HIERSVR
Klasa CDocItem
Wykres hierarchii
Klasa COleClientItem
Klasa COleServerDoc
Klasa COleTemplateServer