Klasa COleServerItem
Udostępnia interfejs serwera do elementów OLE.
Składnia
class COleServerItem : public CDocItem
Elementy członkowskie
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::IsConnected | Wskazuje, czy element jest obecnie dołączony do aktywnego kontenera. |
COleServerItem::IsLinkedItem | Wskazuje, czy element reprezentuje połączony element OLE. |
COleServerItem::NotifyChanged | Aktualizuje wszystkie kontenery za pomocą automatycznej aktualizacji 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ć COleServerItem
klasy , 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 Serialize
CObject
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
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 folderze 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 CopyToClipboard
program .
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::IsConnected
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 OnRenderGlobalData
wartość . Jeśli dane są w pliku lub mają zmienny rozmiar, przesłoń OnRenderFileData
wartość .
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