COleServerItem-Klasse
Stellt die Serverschnittstelle zu OLE-Elementen bereit.
Syntax
class COleServerItem : public CDocItem
Member
Geschützte Konstruktoren
Name | Beschreibung |
---|---|
COleServerItem::COleServerItem | Erstellt ein COleServerItem -Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
COleServerItem::AddOtherClipboardData | Platziert Präsentations- und Konvertierungsformate in einem COleDataSource Objekt. |
COleServerItem::CopyToClipboard | Kopiert das Element in die Zwischenablage. |
COleServerItem::D oDragDrop | Führt einen Drag-and-Drop-Vorgang aus. |
COleServerItem::GetClipboardData | Ruft die Datenquelle für die Verwendung in der Datenübertragung ab (Ziehen und Ablegen oder Zwischenablage). |
COleServerItem::GetDocument | Gibt das Serverdokument zurück, das das Element enthält. |
COleServerItem::GetEmbedSourceData | Ruft die CF_EMBEDSOURCE Daten für ein OLE-Element ab. |
COleServerItem::GetItemName | Gibt den Namen des Elements zurück. Wird nur für verknüpfte Elemente verwendet. |
COleServerItem::GetLinkSourceData | Ruft die CF_LINKSOURCE Daten für ein OLE-Element ab. |
COleServerItem::GetObjectDescriptorData | Ruft die CF_OBJECTDESCRIPTOR Daten für ein OLE-Element ab. |
COleServerItem::IsConnected | Gibt an, ob das Element derzeit an einen aktiven Container angefügt ist. |
COleServerItem::IsLinkedItem | Gibt an, ob das Element ein verknüpftes OLE-Element darstellt. |
COleServerItem::NotifyChanged | Aktualisiert alle Container mit automatischer Linkaktualisierung. |
COleServerItem::OnDoVerb | Wird aufgerufen, um ein Verb auszuführen. |
COleServerItem::OnDraw | Wird aufgerufen, wenn der Container anfordert, das Element zu zeichnen; Implementierung erforderlich. |
COleServerItem::OnDrawEx | Für spezielle Elementzeichnung aufgerufen. |
COleServerItem::OnGetClipboardData | Vom Framework aufgerufen, um die Daten abzurufen, die in die Zwischenablage kopiert werden. |
COleServerItem::OnGetExtent | Vom Framework aufgerufen, um die Größe des OLE-Elements abzurufen. |
COleServerItem::OnInitFromData | Wird vom Framework aufgerufen, um ein OLE-Element mithilfe des Inhalts des angegebenen Datenübertragungsobjekts zu initialisieren. |
COleServerItem::OnQueryUpdateItems | Wird aufgerufen, um festzustellen, ob verknüpfte Elemente aktualisiert werden müssen. |
COleServerItem::OnRenderData | Ruft Daten als Teil des verzögerten Renderings ab. |
COleServerItem::OnRenderFileData | Ruft Daten als Teil des verzögerten Renderings in ein CFile Objekt ab. |
COleServerItem::OnRenderGlobalData | Ruft Daten als Teil des verzögerten Renderings in ein HGLOBAL ab. |
COleServerItem::OnSetColorScheme | Wird aufgerufen, um das Farbschema des Elements festzulegen. |
COleServerItem::OnSetData | Wird aufgerufen, um die Daten des Elements festzulegen. |
COleServerItem::OnSetExtent | Vom Framework aufgerufen, um die Größe des OLE-Elements festzulegen. |
COleServerItem::OnUpdate | Wird aufgerufen, wenn ein Teil des Dokuments, in das das Element gehört, geändert wird. |
COleServerItem::OnUpdateItems | Wird aufgerufen, um den Präsentationscache aller Elemente im Serverdokument zu aktualisieren. |
COleServerItem::SetItemName | Legt den Namen des Elements fest. Wird nur für verknüpfte Elemente verwendet. |
Geschützte Methoden
Name | Beschreibung |
---|---|
COleServerItem::GetDataSource | Ruft das Objekt ab, das zum Speichern von Konvertierungsformaten verwendet wird. |
COleServerItem::OnHide | Vom Framework aufgerufen, um das OLE-Element auszublenden. |
COleServerItem::OnOpen | Wird vom Framework aufgerufen, um das OLE-Element in einem eigenen Fenster der obersten Ebene anzuzeigen. |
COleServerItem::OnShow | Wird aufgerufen, wenn der Container anfordert, das Element anzuzeigen. |
Öffentliche Datenmember
Name | Beschreibung |
---|---|
COleServerItem::m_sizeExtent | Informiert den Server darüber, wie viel des OLE-Elements sichtbar ist. |
Hinweise
Ein verknüpftes Element kann einige oder alle eines Serverdokuments darstellen. Ein eingebettetes Element stellt immer ein gesamtes Serverdokument dar.
Die COleServerItem
Klasse definiert mehrere überschreibbare Memberfunktionen, die von den DYNAMIC Link Libraries (DLLs) des OLE-Systems aufgerufen werden, in der Regel als Reaktion auf Anforderungen von der Containeranwendung. Diese Memberfunktionen ermöglichen es der Containeranwendung, das Element indirekt auf verschiedene Weise zu bearbeiten, z. B. durch Anzeigen, Ausführen der Verben oder Abrufen der Daten in verschiedenen Formaten.
Um eine Klasse zu verwenden COleServerItem
, leiten Sie eine Klasse davon ab, und implementieren Sie die Memberfunktionen OnDraw und Serialisieren . Die OnDraw
Funktion stellt die Metadateidarstellung eines Elements bereit, sodass es angezeigt werden kann, wenn eine Containeranwendung ein zusammengesetztes Dokument öffnet. Die Serialize
Funktion stellt CObject
die systemeigene Darstellung eines Elements bereit, sodass ein eingebettetes Element zwischen server- und containeranwendungen übertragen werden kann. OnGetExtent stellt die natürliche Größe des Elements für den Container bereit, sodass der Container das Element vergrößern kann.
Weitere Informationen zu Servern und verwandten Themen finden Sie im Artikel "Server: Implementieren eines Servers und "Erstellen einer Container-/Serveranwendung" im Artikel "Container: Erweiterte Features".
Vererbungshierarchie
COleServerItem
Anforderungen
Kopfzeile: afxole.h
COleServerItem::AddOtherClipboardData
Rufen Sie diese Funktion auf, um die Präsentations- und Konvertierungsformate für das OLE-Element im angegebenen COleDataSource
Objekt zu platzieren.
void AddOtherClipboardData(COleDataSource* pDataSource);
Parameter
pDataSource
Zeigen Sie auf das COleDataSource
Objekt, in dem die Daten platziert werden sollen.
Hinweise
Sie müssen die OnDraw-Memberfunktion implementiert haben, um das Präsentationsformat (ein Metadateibild) für das Element bereitzustellen. Um andere Konvertierungsformate zu unterstützen, registrieren Sie sie mithilfe des von GetDataSource zurückgegebenen COleDataSource-Objekts, und überschreiben Sie die OnRenderData-Memberfunktion, um Daten in den Formaten bereitzustellen, die Sie unterstützen möchten.
COleServerItem::COleServerItem
Erstellt ein COleServerItem
Objekt und fügt es der Auflistung von Dokumentelementen des Serverdokuments hinzu.
COleServerItem(
COleServerDoc* pServerDoc,
BOOL bAutoDelete);
Parameter
pServerDoc
Zeigen Sie auf das Dokument, das das neue Element enthält.
bAutoDelete
Flag, das angibt, ob das Objekt gelöscht werden kann, wenn ein Link zu dem Objekt freigegeben wird. Legen Sie diesen Wert auf FALSE fest, wenn das COleServerItem
Objekt ein integraler Bestandteil der Daten Ihres Dokuments ist, die Sie löschen müssen. Legen Sie diesen Wert auf TRUE fest, wenn es sich bei dem Objekt um eine sekundäre Struktur handelt, die verwendet wird, um einen Bereich in den Daten Ihres Dokuments zu identifizieren, die vom Framework gelöscht werden können.
COleServerItem::CopyToClipboard
Rufen Sie diese Funktion auf, um das OLE-Element in die Zwischenablage zu kopieren.
void CopyToClipboard(BOOL bIncludeLink = FALSE);
Parameter
bIncludeLink
Legen Sie diesen Wert auf TRUE fest, wenn Verknüpfungsdaten in die Zwischenablage kopiert werden sollen. Legen Sie diesen Wert auf FALSE fest, wenn die Serveranwendung keine Links unterstützt.
Hinweise
Die Funktion verwendet die OnGetClipboardData-Memberfunktion , um ein COleDataSource-Objekt zu erstellen, das die Daten des OLE-Elements in den unterstützten Formaten enthält. Anschließend platziert die Funktion das COleDataSource
Objekt in der Zwischenablage mithilfe der COleDataSource::SetClipboard-Funktion . Das COleDataSource
Objekt enthält die systemeigenen Daten des Elements und seine Darstellung im CF_METAFILEPICT Format sowie Daten in allen Konvertierungsformaten, die Sie unterstützen möchten. Sie müssen Serialisieren und OnDraw implementiert haben, damit diese Memberfunktion funktioniert.
COleServerItem::D oDragDrop
Rufen Sie die DoDragDrop
Memberfunktion auf, um einen Drag-and-Drop-Vorgang auszuführen.
DROPEFFECT DoDragDrop(
LPCRECT lpRectItem,
CPoint ptOffset,
BOOL bIncludeLink = FALSE,
DWORD dwEffects = DROPEFFECT_COPY | DROPEFFECT_MOVE,
LPCRECT lpRectStartDrag = NULL);
Parameter
lpRectItem
Das Rechteck des Elements auf dem Bildschirm relativ zum Clientbereich in Pixel.
ptOffset
Der Offset von lpItemRect , bei dem sich die Mausposition zum Zeitpunkt des Ziehens befand.
bIncludeLink
Legen Sie diesen Wert auf TRUE fest, wenn Verknüpfungsdaten in die Zwischenablage kopiert werden sollen. Legen Sie ihn auf FALSE fest, wenn Ihre Anwendung Keine Links unterstützt.
dwEffects
Bestimmt die Effekte, die die Ziehquelle im Ziehvorgang zulässt (eine Kombination aus Kopieren, Verschieben und Verknüpfen).
lpRectStartDrag
Zeiger auf das Rechteck, das definiert, wo der Ziehvorgang tatsächlich beginnt. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
Rückgabewert
Ein Wert aus der DROPEFFECT-Aufzählung. Wenn es DROPEFFECT_MOVE ist, sollten die ursprünglichen Daten entfernt werden.
Hinweise
Der Drag-and-Drop-Vorgang wird nicht sofort gestartet. Es wartet, bis der Mauscursor das durch lpRectStartDrag angegebene Rechteck verlässt oder bis eine angegebene Anzahl von Millisekunden übergeben wurde. Wenn lpRectStartDrag NULL ist, wird ein Standardrechteck verwendet, sodass das Ziehen gestartet wird, wenn der Mauscursor ein Pixel bewegt.
Die Verzögerungszeit wird durch eine Registrierungsschlüsseleinstellung angegeben. Sie können die Verzögerungszeit ändern, indem Sie CWinApp::WriteProfileString oder CWinApp::WriteProfileInt aufrufen. Wenn Sie die Verzögerungszeit nicht angeben, wird ein Standardwert von 200 Millisekunden verwendet. Die Verzögerungszeit des Ziehens wird wie folgt gespeichert:
Die Verzögerungszeit des Windows NT-Ziehens wird in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\NT\CurrentVersion\IniFileMapping\win.ini\Windows\DragDelay gespeichert.
Die Verzögerungszeit von Windows 3.x wird im WIN gespeichert. INI-Datei unter dem Abschnitt [Windows}
Windows 95/98 Ziehverzögerungszeit wird in einer zwischengespeicherten Version von WIN gespeichert. INI.
Weitere Informationen dazu, wie Ziehverzögerungsinformationen entweder in der Registrierung oder in der Registrierung gespeichert werden. INI-Datei finden Sie unter WriteProfileString im Windows SDK.
COleServerItem::GetClipboardData
Rufen Sie diese Funktion auf, um das angegebene COleDataSource-Objekt mit allen Daten zu füllen, die in die Zwischenablage kopiert würden, wenn Sie "CopyToClipboard" aufgerufen haben (die gleichen Daten würden auch übertragen, wenn Sie DoDragDrop genannt haben).
void GetClipboardData(
COleDataSource* pDataSource,
BOOL bIncludeLink = FALSE,
LPPOINT lpOffset = NULL,
LPSIZE lpSize = NULL);
Parameter
pDataSource
Zeigen Sie auf das COleDataSource
Objekt, das die DATEN des OLE-Elements in allen unterstützten Formaten empfängt.
bIncludeLink
TRUE, wenn Verknüpfungsdaten in die Zwischenablage kopiert werden sollen. FALSE, wenn die Serveranwendung Keine Links unterstützt.
lpOffset
Der Offset (in Pixel) des Mauscursors vom Ursprung des Objekts.
lpSize
Die Größe des Objekts in Pixel.
Hinweise
Diese Funktion ruft die GetEmbedSourceData-Memberfunktion auf, um die systemeigenen Daten für das OLE-Element abzurufen, und ruft die AddOtherClipboardData-Memberfunktion auf, um das Präsentationsformat und alle unterstützten Konvertierungsformate abzurufen. Wenn bIncludeLink TRUE ist, ruft die Funktion auch GetLinkSourceData auf, um die Verknüpfungsdaten für das Element abzurufen.
Überschreiben Sie diese Funktion, wenn Sie Formate in ein COleDataSource
Objekt vor oder nach diesen formaten einfügen möchten, die von CopyToClipboard
.
COleServerItem::GetDataSource
Rufen Sie diese Funktion auf, um das COleDataSource-Objekt abzurufen, das zum Speichern der von der Serveranwendung unterstützten Konvertierungsformate verwendet wird.
COleDataSource* GetDataSource();
Rückgabewert
Ein Zeiger auf das Objekt, das COleDataSource
zum Speichern der Konvertierungsformate verwendet wird.
Hinweise
Wenn Ihre Serveranwendung Daten in einer Vielzahl von Formaten während der Datenübertragung anbieten soll, registrieren Sie diese Formate mit dem COleDataSource
von dieser Funktion zurückgegebenen Objekt. Wenn Sie z. B. eine CF_TEXT Darstellung des OLE-Elements für Zwischenablage- oder Drag-and-Drop-Vorgänge bereitstellen möchten, registrieren Sie das Format beim COleDataSource
zurückgegebenen Objekt, und überschreiben Sie dann die OnRenderXxxData
Memberfunktion, um die Daten bereitzustellen.
COleServerItem::GetDocument
Rufen Sie diese Funktion auf, um einen Zeiger auf das Dokument abzurufen, das das Element enthält.
COleServerDoc* GetDocument() const;
Rückgabewert
Ein Zeiger auf das Dokument, das das Element enthält; NULL, wenn das Element nicht Teil eines Dokuments ist.
Hinweise
Dies ermöglicht den Zugriff auf das Serverdokument, das Sie als Argument an den COleServerItem
Konstruktor übergeben haben.
COleServerItem::GetEmbedSourceData
Rufen Sie diese Funktion auf, um die CF_EMBEDSOURCE Daten für ein OLE-Element abzurufen.
void GetEmbedSourceData(LPSTGMEDIUM lpStgMedium);
Parameter
lpStgMedium
Zeiger auf die STGMEDIUM-Struktur , die die CF_EMBEDSOURCE Daten für das OLE-Element empfängt.
Hinweise
Dieses Format enthält die systemeigenen Daten des Elements. Sie müssen die Serialize
Memberfunktion implementiert haben, damit diese Funktion ordnungsgemäß funktioniert.
Das Ergebnis kann dann mithilfe von COleDataSource::CacheData zu einer Datenquelle hinzugefügt werden. Diese Funktion wird automatisch von COleServerItem::OnGetClipboardData aufgerufen.
Weitere Informationen finden Sie unter STGMEDIUM im Windows SDK.
COleServerItem::GetItemName
Rufen Sie diese Funktion auf, um den Namen des Elements abzurufen.
const CString& GetItemName() const;
Rückgabewert
Name des Elements.
Hinweise
Normalerweise rufen Sie diese Funktion nur für verknüpfte Elemente auf.
COleServerItem::GetLinkSourceData
Rufen Sie diese Funktion auf, um die CF_LINKSOURCE Daten für ein OLE-Element abzurufen.
BOOL GetLinkSourceData(LPSTGMEDIUM lpStgMedium);
Parameter
lpStgMedium
Zeiger auf die STGMEDIUM-Struktur , die die CF_LINKSOURCE Daten für das OLE-Element empfängt.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Dieses Format enthält die CLSID, die den Typ des OLE-Elements und die Informationen beschreibt, die zum Suchen des Dokuments mit dem OLE-Element erforderlich sind.
Das Ergebnis kann dann einer Datenquelle mit COleDataSource::CacheData hinzugefügt werden. Diese Funktion wird automatisch von OnGetClipboardData aufgerufen.
Weitere Informationen finden Sie unter STGMEDIUM im Windows SDK.
COleServerItem::GetObjectDescriptorData
Rufen Sie diese Funktion auf, um die CF_OBJECTDESCRIPTOR Daten für ein OLE-Element abzurufen.
void GetObjectDescriptorData(
LPPOINT lpOffset,
LPSIZE lpSize,
LPSTGMEDIUM lpStgMedium);
Parameter
lpOffset
Offset des Mausklicks aus der oberen linken Ecke des OLE-Elements. Kann den Wert NULL haben.
lpSize
Größe des OLE-Elements. Kann den Wert NULL haben.
lpStgMedium
Zeiger auf die STGMEDIUM-Struktur , die die CF_OBJECTDESCRIPTOR Daten für das OLE-Element empfängt.
Hinweise
Die Informationen werden in die Struktur kopiert, auf die STGMEDIUM
lpStgMedium verweist. Dieses Format enthält die informationen, die für das Dialogfeld "Inhalte einfügen" erforderlich sind.
Weitere Informationen finden Sie unter STGMEDIUM im Windows SDK.
COleServerItem::IsConnected
Rufen Sie diese Funktion auf, um festzustellen, ob das OLE-Element verbunden ist.
BOOL IsConnected() const;
Rückgabewert
Nonzero, wenn das Element verbunden ist; andernfalls 0.
Hinweise
Ein OLE-Element wird als verbunden betrachtet, wenn mindestens ein Container Verweise auf das Element enthält. Ein Element ist verbunden, wenn die Referenzanzahl größer als 0 ist oder wenn es sich um ein eingebettetes Element handelt.
COleServerItem::IsLinkedItem
Rufen Sie diese Funktion auf, um festzustellen, ob das OLE-Element ein verknüpftes Element ist.
BOOL IsLinkedItem() const;
Rückgabewert
Nonzero, wenn das Element ein verknüpftes Element ist; andernfalls 0.
Hinweise
Ein Element ist verknüpft, wenn das Element gültig ist und nicht in der Liste der eingebetteten Elemente des Dokuments zurückgegeben wird. Ein verknüpftes Element kann oder nicht mit einem Container verbunden sein.
Es ist üblich, die gleiche Klasse sowohl für verknüpfte als auch für eingebettete Elemente zu verwenden. IsLinkedItem
Ermöglicht es Ihnen, verknüpfte Elemente anders zu gestalten als eingebettete Elemente, obwohl häufig der Code häufig verwendet wird.
COleServerItem::m_sizeExtent
Dieses Element teilt dem Server mit, wie viel des Objekts im Containerdokument sichtbar ist.
CSize m_sizeExtent;
Hinweise
Die Standardimplementierung von OnSetExtent legt diesen Member fest.
COleServerItem::NotifyChanged
Rufen Sie diese Funktion auf, nachdem das verknüpfte Element geändert wurde.
void NotifyChanged(DVASPECT nDrawAspect = DVASPECT_CONTENT);
Parameter
nDrawAspect
Ein Wert aus der DVASPECT-Aufzählung, der angibt, welcher Aspekt des OLE-Elements geändert wurde. Dieser Parameter kann einen der folgenden Werte annehmen:
DVASPECT_CONTENT Element wird so dargestellt, dass es als eingebettetes Objekt innerhalb des Containers angezeigt werden kann.
DVASPECT_THUMBNAIL Element wird in einer "Miniaturansicht"-Darstellung gerendert, sodass es in einem Browsertool angezeigt werden kann.
DVASPECT_ICON Element wird durch ein Symbol dargestellt.
DVASPECT_DOCPRINT Element wird so dargestellt, als ob es mit dem Befehl "Drucken" aus dem Menü "Datei" gedruckt wurde.
Hinweise
Wenn ein Containerelement mit dem Dokument mit einem automatischen Link verknüpft ist, wird das Element aktualisiert, um die Änderungen widerzuspiegeln. In Containeranwendungen, die mit der Microsoft Foundation Class Library geschrieben wurden, wird COleClientItem::OnChange als Antwort aufgerufen.
COleServerItem::OnDoVerb
Vom Framework aufgerufen, um das angegebene Verb auszuführen.
virtual void OnDoVerb(LONG iVerb);
Parameter
iVerb
Gibt das auszuführende Verb an. Dies kann eine der folgenden Aktionen sein:
Wert | Bedeutung | Symbol |
---|---|---|
0 | Primäres Verb | OLEIVERB_PRIMARY |
1 | Sekundäres Verb | (Keine) |
- 1 | Element zum Bearbeiten anzeigen | OLEIVERB_SHOW |
- 2 | Element in separatem Fenster bearbeiten | OLEIVERB_OPEN |
- 3 | Element ausblenden | OLEIVERB_HIDE |
Der -1-Wert ist in der Regel ein Alias für ein anderes Verb. Wenn die Bearbeitung nicht unterstützt wird, hat -2 die gleiche Wirkung wie -1. Weitere Werte finden Sie unter "IOleObject::D oVerb " im Windows SDK.
Hinweise
Wenn die Containeranwendung mit der Microsoft Foundation Class Library geschrieben wurde, wird diese Funktion aufgerufen, wenn die COleClientItem::Activate-Memberfunktion des entsprechenden COleClientItem
Objekts aufgerufen wird. Die Standardimplementierung ruft die OnShow-Memberfunktion auf, wenn das primäre Verb oder OLEIVERB_SHOW angegeben ist, OnOpen, wenn das sekundäre Verb oder OLEIVERB_OPEN angegeben ist, und OnHide, wenn OLEIVERB_HIDE angegeben wird. Die Standardimplementierung ruft auf OnShow
, wenn iVerb keins der oben aufgeführten Verben ist.
Überschreiben Sie diese Funktion, wenn das primäre Verb das Element nicht enthält. Wenn es sich bei dem Element beispielsweise um eine Soundaufzeichnung handelt und das primäre Verb "Wiedergeben" lautet, müssten Sie die Serveranwendung nicht anzeigen, um das Element wiederzugeben.
Weitere Informationen finden Sie unter "IOleObject::D oVerb " im Windows SDK.
COleServerItem::OnDraw
Vom Framework aufgerufen, um das OLE-Element in einer Metadatei zu rendern.
virtual BOOL OnDraw(
CDC* pDC,
CSize& rSize) = 0;
Parameter
pDC
Ein Zeiger auf das CDC-Objekt , auf dem das Element gezeichnet werden soll. Der Anzeigekontext wird automatisch mit dem Attributanzeigekontext verbunden, sodass Sie Attributfunktionen aufrufen können, obwohl dies die Metadatei gerätespezifisch macht.
rSize
Größe in HIMETRIC-Einheiten, in denen die Metadatei gezeichnet werden soll.
Rückgabewert
Nonzero, wenn das Element erfolgreich gezeichnet wurde; andernfalls 0.
Hinweise
Die Metadateidarstellung des OLE-Elements wird verwendet, um das Element in der Containeranwendung anzuzeigen. Wenn die Containeranwendung mit der Microsoft Foundation Class Library geschrieben wurde, wird die Metadatei von der Draw-Memberfunktion des entsprechenden COleClientItem-Objekts verwendet. Es ist keine Standardimplementierung vorhanden. Sie müssen diese Funktion außer Kraft setzen, um das Element in den angegebenen Gerätekontext zu zeichnen.
COleServerItem::OnDrawEx
Wird vom Framework für alle Zeichnungen aufgerufen.
virtual BOOL OnDrawEx(
CDC* pDC,
DVASPECT nDrawAspect,
CSize& rSize);
Parameter
pDC
Ein Zeiger auf das CDC-Objekt , auf dem das Element gezeichnet werden soll. Der DC wird automatisch mit dem Attribut DC verbunden, sodass Sie Attributfunktionen aufrufen können, obwohl dies die Metadatei gerätespezifisch machen würde.
nDrawAspect
Ein Wert aus der DVASPECT-Aufzählung. Dieser Parameter kann einen der folgenden Werte annehmen:
DVASPECT_CONTENT Element wird so dargestellt, dass es als eingebettetes Objekt innerhalb des Containers angezeigt werden kann.
DVASPECT_THUMBNAIL Element wird in einer "Miniaturansicht"-Darstellung gerendert, sodass es in einem Browsertool angezeigt werden kann.
DVASPECT_ICON Element wird durch ein Symbol dargestellt.
DVASPECT_DOCPRINT Element wird so dargestellt, als ob es mit dem Befehl "Drucken" aus dem Menü "Datei" gedruckt wurde.
rSize
Größe des Elements in HIMETRIC-Einheiten.
Rückgabewert
Nonzero, wenn das Element erfolgreich gezeichnet wurde; andernfalls 0.
Hinweise
Die Standardimplementierung wird aufgerufen OnDraw
, wenn DVASPECT gleich DVASPECT_CONTENT ist. Andernfalls schlägt sie fehl.
Überschreiben Sie diese Funktion, um Präsentationsdaten für andere Aspekte als DVASPECT_CONTENT bereitzustellen, z. B. DVASPECT_ICON oder DVASPECT_THUMBNAIL.
COleServerItem::OnGetClipboardData
Wird vom Framework aufgerufen, um ein COleDataSource
Objekt abzurufen, das alle Daten enthält, die durch einen Aufruf der CopyToClipboard-Memberfunktion in der Zwischenablage platziert würden.
virtual COleDataSource* OnGetClipboardData(
BOOL bIncludeLink,
LPPOINT lpOffset,
LPSIZE lpSize);
Parameter
bIncludeLink
Legen Sie diesen Wert auf TRUE fest, wenn Verknüpfungsdaten in die Zwischenablage kopiert werden sollen. Legen Sie diesen Wert auf FALSE fest, wenn die Serveranwendung keine Links unterstützt.
lpOffset
Der Offset des Mauscursors vom Ursprung des Objekts in Pixeln.
lpSize
Die Größe des Objekts in Pixel.
Rückgabewert
Ein Zeiger auf ein COleDataSource-Objekt , das die Zwischenablagedaten enthält.
Hinweise
Die Standardimplementierung dieser Funktion ruft GetClipboardData auf.
COleServerItem::OnGetExtent
Vom Framework aufgerufen, um die Größe des OLE-Elements in HIMETRIC-Einheiten abzurufen.
virtual BOOL OnGetExtent(
DVASPECT nDrawAspect,
CSize& rSize);
Parameter
nDrawAspect
Gibt den Aspekt des OLE-Elements an, dessen Grenzen abgerufen werden sollen. Dieser Parameter kann einen der folgenden Werte annehmen:
DVASPECT_CONTENT Element wird so dargestellt, dass es als eingebettetes Objekt innerhalb des Containers angezeigt werden kann.
DVASPECT_THUMBNAIL Element wird in einer "Miniaturansicht"-Darstellung gerendert, sodass es in einem Browsertool angezeigt werden kann.
DVASPECT_ICON Element wird durch ein Symbol dargestellt.
DVASPECT_DOCPRINT Element wird so dargestellt, als ob es mit dem Befehl "Drucken" aus dem Menü "Datei" gedruckt wurde.
rSize
Verweisen auf ein CSize
Objekt, das die Größe des OLE-Elements erhält.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Wenn die Containeranwendung mit der Microsoft Foundation Class Library geschrieben wurde, wird diese Funktion aufgerufen, wenn die GetExtent-Memberfunktion des entsprechenden COleClientItem
Objekts aufgerufen wird. Bei der Standardimplementierung wird keine Aktion ausgeführt. Sie müssen sie selbst implementieren. Überschreiben Sie diese Funktion, wenn Sie beim Behandeln einer Anforderung für die Größe des OLE-Elements eine spezielle Verarbeitung durchführen möchten.
COleServerItem::OnHide
Vom Framework aufgerufen, um das OLE-Element auszublenden.
virtual void OnHide();
Hinweise
Die Standardaufrufe COleServerDoc::OnShowDocument( FALSE )
. Die Funktion benachrichtigt außerdem den Container, dass das OLE-Element ausgeblendet wurde. Überschreiben Sie diese Funktion, wenn Sie beim Ausblenden eines OLE-Elements eine spezielle Verarbeitung durchführen möchten.
COleServerItem::OnInitFromData
Wird vom Framework aufgerufen, um ein OLE-Element mithilfe des Inhalts von pDataObject zu initialisieren.
virtual BOOL OnInitFromData(
COleDataObject* pDataObject,
BOOL bCreation);
Parameter
pDataObject
Zeiger auf ein OLE-Datenobjekt, das Daten in verschiedenen Formaten zum Initialisieren des OLE-Elements enthält.
bCreation
TRUE, wenn die Funktion aufgerufen wird, um ein OLE-Element zu initialisieren, das neu von einer Containeranwendung erstellt wird. FALSE, wenn die Funktion aufgerufen wird, um den Inhalt eines bereits vorhandenen OLE-Elements zu ersetzen.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Wenn "bCreation " WAHR ist, wird diese Funktion aufgerufen, wenn ein Container "Neues Objekt einfügen" basierend auf der aktuellen Auswahl implementiert. Die ausgewählten Daten werden beim Erstellen des neuen OLE-Elements verwendet. Wenn Sie beispielsweise einen Zellbereich in einem Tabellenkalkulationsprogramm auswählen und dann das Neue Objekt einfügen verwenden, um ein Diagramm basierend auf den Werten im ausgewählten Bereich zu erstellen. Bei der Standardimplementierung wird keine Aktion ausgeführt. Überschreiben Sie diese Funktion, um ein akzeptables Format aus den von pDataObject angebotenen Formaten auszuwählen und das OLE-Element basierend auf den bereitgestellten Daten zu initialisieren. Dies ist eine erweiterte Außerkraftsetzung.
Weitere Informationen finden Sie unter "IOleObject::InitFromData " im Windows SDK.
COleServerItem::OnOpen
Wird vom Framework aufgerufen, um das OLE-Element in einer separaten Instanz der Serveranwendung anzuzeigen, anstatt an Ort und Stelle.
virtual void OnOpen();
Hinweise
Die Standardimplementierung aktiviert das erste Framefenster, in dem das Dokument mit dem OLE-Element angezeigt wird. Wenn die Anwendung ein Miniserver ist, zeigt die Standardimplementierung das Hauptfenster an. Die Funktion benachrichtigt außerdem den Container, dass das OLE-Element geöffnet wurde.
Überschreiben Sie diese Funktion, wenn Sie beim Öffnen eines OLE-Elements eine spezielle Verarbeitung durchführen möchten. Dies gilt insbesondere für verknüpfte Elemente, bei denen Sie die Auswahl beim Öffnen auf den Link festlegen möchten.
Weitere Informationen finden Sie unter "IOleClientSite::OnShowWindow " im Windows SDK.
COleServerItem::OnQueryUpdateItems
Wird vom Framework aufgerufen, um zu bestimmen, ob verknüpfte Elemente im aktuellen Serverdokument veraltet sind.
virtual BOOL OnQueryUpdateItems();
Rückgabewert
Nonzero, wenn das Dokument Elemente enthält, die Aktualisierungen benötigen; 0, wenn alle Elemente auf dem neuesten Stand sind.
Hinweise
Ein Element ist veraltet, wenn das Quelldokument geändert wurde, das verknüpfte Element jedoch nicht aktualisiert wurde, um die Änderungen im Dokument widerzuspiegeln.
COleServerItem::OnRenderData
Vom Framework aufgerufen, um Daten im angegebenen Format abzurufen.
virtual BOOL OnRenderData(
LPFORMATETC lpFormatEtc,
LPSTGMEDIUM lpStgMedium);
Parameter
lpFormatEtc
Verweist auf die FORMATTC-Struktur , die das Format angibt, in dem Informationen angefordert werden.
lpStgMedium
Verweist auf eine STGMEDIUM-Struktur , in der die Daten zurückgegeben werden sollen.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Das angegebene Format ist eine zuvor im COleDataSource
Objekt platzierte Elementfunktion DelayRenderData oder DelayRenderFileData für das verzögerte Rendering. Die Standardimplementierung dieser Funktion ruft OnRenderFileData oder OnRenderGlobalData auf, wenn das angegebene Speichermedium entweder eine Datei oder ein Speicher ist. Wenn keines dieser Formate bereitgestellt wird, gibt die Standardimplementierung "0" zurück und führt nichts aus.
Wenn lpStgMedium-tymed> TYMED_NULL ist, sollte das STGMEDIUM gemäß der Angabe von lpFormatEtc-tymed> zugeordnet und ausgefüllt werden. Wenn nicht TYMED_NULL, sollte das STGMEDIUM mit den Daten ausgefüllt werden.
Dies ist eine erweiterte Außerkraftsetzung. Überschreiben Sie diese Funktion, um Ihre Daten im angeforderten Format und Medium bereitzustellen. Je nach Ihren Daten sollten Sie stattdessen eine der anderen Versionen dieser Funktion außer Kraft setzen. Wenn Ihre Daten klein und in der Größe festgelegt sind, überschreiben OnRenderGlobalData
Sie dies. Wenn sich Die Daten in einer Datei befinden oder eine variable Größe aufweisen, überschreiben OnRenderFileData
Sie diese.
Weitere Informationen finden Sie unter "IDataObject::GetData", "STGMEDIUM", "FORMATETC" und "TYMED " im Windows SDK.
COleServerItem::OnRenderFileData
Wird vom Framework aufgerufen, um Daten im angegebenen Format abzurufen, wenn das Speichermedium eine Datei ist.
virtual BOOL OnRenderFileData(
LPFORMATETC lpFormatEtc,
CFile* pFile);
Parameter
lpFormatEtc
Verweist auf die FORMATTC-Struktur , die das Format angibt, in dem Informationen angefordert werden.
pFile
Verweist auf ein CFile
Objekt, in dem die Daten gerendert werden sollen.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Das angegebene Format ist eines, das COleDataSource
zuvor im Objekt platziert wurde, indem die DelayRenderData-Memberfunktion für das verzögerte Rendering verwendet wird. Die Standardimplementierung dieser Funktion gibt einfach FALSE zurück.
Dies ist eine erweiterte Außerkraftsetzung. Überschreiben Sie diese Funktion, um Ihre Daten im angeforderten Format und Medium bereitzustellen. Je nach Ihren Daten sollten Sie stattdessen eine der anderen Versionen dieser Funktion außer Kraft setzen. Wenn Sie mehrere Speichermedien behandeln möchten, überschreiben Sie OnRenderData. Wenn sich Ihre Daten in einer Datei befinden oder eine variable Größe aufweisen, überschreiben Sie OnRenderFileData.
Weitere Informationen finden Sie unter "IDataObject::GetData " und "FORMATETC " im Windows SDK.
COleServerItem::OnRenderGlobalData
Wird vom Framework aufgerufen, um Daten im angegebenen Format abzurufen, wenn das angegebene Speichermedium globaler Speicher ist.
virtual BOOL OnRenderGlobalData(
LPFORMATETC lpFormatEtc,
HGLOBAL* phGlobal);
Parameter
lpFormatEtc
Verweist auf die FORMATTC-Struktur , die das Format angibt, in dem Informationen angefordert werden.
phGlobal
Verweist auf ein Handle auf den globalen Speicher, in dem die Daten zurückgegeben werden sollen. Wenn kein Arbeitsspeicher zugewiesen wurde, kann dieser Parameter NULL sein.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Das angegebene Format ist eines, das COleDataSource
zuvor im Objekt platziert wurde, indem die DelayRenderData-Memberfunktion für das verzögerte Rendering verwendet wird. Die Standardimplementierung dieser Funktion gibt einfach FALSE zurück.
Wenn phGlobal NULL ist, sollte ein neuer HGLOBAL zugeordnet und in phGlobal zurückgegeben werden. Andernfalls sollte der von phGlobal angegebene HGLOBAL mit den Daten gefüllt werden. Die Im HGLOBAL platzierte Datenmenge darf die aktuelle Größe des Speicherblocks nicht überschreiten. Außerdem kann der Block nicht in eine größere Größe umgestellt werden.
Dies ist eine erweiterte Außerkraftsetzung. Überschreiben Sie diese Funktion, um Ihre Daten im angeforderten Format und Medium bereitzustellen. Je nach Ihren Daten sollten Sie stattdessen eine der anderen Versionen dieser Funktion außer Kraft setzen. Wenn Sie mehrere Speichermedien behandeln möchten, überschreiben Sie OnRenderData. Wenn sich Ihre Daten in einer Datei befinden oder eine variable Größe aufweisen, überschreiben Sie OnRenderFileData.
Weitere Informationen finden Sie unter "IDataObject::GetData " und "FORMATETC " im Windows SDK.
COleServerItem::OnSetColorScheme
Vom Framework aufgerufen, um eine Farbpalette anzugeben, die beim Bearbeiten des OLE-Elements verwendet werden soll.
virtual BOOL OnSetColorScheme(const LOGPALETTE* lpLogPalette);
Parameter
lpLogPalette
Zeiger auf eine Windows LOGPALETTE-Struktur .
Rückgabewert
Nonzero, wenn die Farbpalette verwendet wird; andernfalls 0.
Hinweise
Wenn die Containeranwendung mithilfe der Microsoft Foundation Class Library geschrieben wurde, wird diese Funktion aufgerufen, wenn die Funktion "IOleObject::SetColorScheme " des entsprechenden COleClientItem
Objekts aufgerufen wird. Die Standardimplementierung gibt FALSE zurück. Überschreiben Sie diese Funktion, wenn Sie die empfohlene Palette verwenden möchten. Die Serveranwendung ist nicht erforderlich, um die vorgeschlagene Palette zu verwenden.
Weitere Informationen finden Sie unter "IOleObject::SetColorScheme " im Windows SDK.
COleServerItem::OnSetData
Vom Framework aufgerufen, um die Daten des OLE-Elements durch die angegebenen Daten zu ersetzen.
virtual BOOL OnSetData(
LPFORMATETC lpFormatEtc,
LPSTGMEDIUM lpStgMedium,
BOOL bRelease);
Parameter
lpFormatEtc
Zeigen Sie auf eine FORMATTC-Struktur , die das Format der Daten angibt.
lpStgMedium
Zeiger auf eine STGMEDIUM-Struktur , in der sich die Daten befinden.
bRelease
Gibt an, wer nach Abschluss des Funktionsaufrufs über den Besitz des Speichermediums verfügt. Der Anrufer entscheidet, wer für die Freigabe der im Auftrag des Speichermediums zugewiesenen Ressourcen verantwortlich ist. Der Aufrufer führt dies durch Festlegen von bRelease aus. Wenn bRelease nicht null ist, übernimmt das Serverelement den Besitz, wobei das Medium freigegeben wird, wenn es die Verwendung abgeschlossen hat. Wenn bRelease 0 ist, behält der Aufrufer den Besitz bei, und das Serverelement kann das Speichermedium nur für die Dauer des Anrufs verwenden.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Das Serverelement übernimmt erst dann den Besitz der Daten, wenn es erfolgreich abgerufen wurde. Das heißt, es übernimmt keinen Besitz, wenn er "0" zurückgibt. Wenn die Datenquelle den Besitz übernimmt, wird das Speichermedium durch Aufrufen der ReleaseStgMedium-Funktion freigegeben.
Bei der Standardimplementierung wird keine Aktion ausgeführt. Überschreiben Sie diese Funktion, um die Daten des OLE-Elements durch die angegebenen Daten zu ersetzen. Dies ist eine erweiterte Außerkraftsetzung.
Weitere Informationen finden Sie unter STGMEDIUM, FORMATETC und ReleaseStgMedium im Windows SDK.
COleServerItem::OnSetExtent
Wird vom Framework aufgerufen, um dem OLE-Element mitzuteilen, wie viel Speicherplatz für es im Containerdokument verfügbar ist.
virtual BOOL OnSetExtent(
DVASPECT nDrawAspect,
const CSize& size);
Parameter
nDrawAspect
Gibt den Aspekt des OLE-Elements an, dessen Grenzen angegeben werden. Dieser Parameter kann einen der folgenden Werte annehmen:
DVASPECT_CONTENT Element wird so dargestellt, dass es als eingebettetes Objekt innerhalb des Containers angezeigt werden kann.
DVASPECT_THUMBNAIL Element wird in einer "Miniaturansicht"-Darstellung gerendert, sodass es in einem Browsertool angezeigt werden kann.
DVASPECT_ICON Element wird durch ein Symbol dargestellt.
DVASPECT_DOCPRINT Element wird so dargestellt, als ob es mit dem Befehl "Drucken" aus dem Menü "Datei" gedruckt wurde.
size
Eine CSize-Struktur , die die neue Größe des OLE-Elements angibt.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Wenn die Containeranwendung mit der Microsoft Foundation Class Library geschrieben wurde, wird diese Funktion aufgerufen, wenn die SetExtent-Memberfunktion des entsprechenden COleClientItem
Objekts aufgerufen wird. Die Standardimplementierung legt den m_sizeExtent Member auf die angegebene Größe fest, wenn nDrawAspect DVASPECT_CONTENT ist. Andernfalls wird 0 zurückgegeben. Überschreiben Sie diese Funktion, um eine spezielle Verarbeitung durchzuführen, wenn Sie die Größe des Elements ändern.
COleServerItem::OnShow
Vom Framework aufgerufen, um die Serveranwendung anzuweisen, das OLE-Element an Ort und Stelle anzuzeigen.
virtual void OnShow();
Hinweise
Diese Funktion wird in der Regel aufgerufen, wenn der Benutzer der Containeranwendung ein Element erstellt oder ein Verb wie "Bearbeiten" ausführt, für das das Element angezeigt werden muss. Die standardmäßige Implementierung versucht die direkte Aktivierung. Wenn dies fehlschlägt, ruft die Funktion die OnOpen
Memberfunktion auf, um das OLE-Element in einem separaten Fenster anzuzeigen.
Überschreiben Sie diese Funktion, wenn Sie eine spezielle Verarbeitung ausführen möchten, wenn ein OLE-Element angezeigt wird.
COleServerItem::OnUpdate
Wird vom Framework aufgerufen, wenn ein Element geändert wurde.
virtual void OnUpdate(
COleServerItem* pSender,
LPARAM lHint,
CObject* pHint,
DVASPECT nDrawAspect);
Parameter
pSender
Zeigen Sie auf das Element, das das Dokument geändert hat. Kann den Wert NULL haben.
lHint
Enthält Informationen zur Änderung.
pHint
Zeigen Sie auf ein Objekt, das Informationen zur Änderung speichert.
nDrawAspect
Ein Wert aus der DVASPECT-Aufzählung. Dieser Parameter kann einen der folgenden Werte aufweisen:
DVASPECT_CONTENT Element wird so dargestellt, dass es als eingebettetes Objekt innerhalb des Containers angezeigt werden kann.
DVASPECT_THUMBNAIL Element wird in einer "Miniaturansicht"-Darstellung gerendert, sodass es in einem Browsertool angezeigt werden kann.
DVASPECT_ICON Element wird durch ein Symbol dargestellt.
DVASPECT_DOCPRINT Element wird so dargestellt, als ob es mit dem Befehl "Drucken" aus dem Menü "Datei" gedruckt wurde.
Hinweise
Die Standardimplementierung ruft NotifyChanged unabhängig vom Hinweis oder Absender auf.
COleServerItem::OnUpdateItems
Vom Framework aufgerufen, um alle Elemente im Serverdokument zu aktualisieren.
virtual void OnUpdateItems();
Hinweise
Die Standardimplementierung ruft UpdateLink für alle COleClientItem
Objekte im Dokument auf.
COleServerItem::SetItemName
Rufen Sie diese Funktion auf, wenn Sie ein verknüpftes Element erstellen, um seinen Namen festzulegen.
void SetItemName(LPCTSTR lpszItemName);
Parameter
lpszItemName
Zeigen Sie auf den neuen Namen des Elements.
Hinweise
Der Name muss innerhalb des Dokuments eindeutig sein. Wenn eine Serveranwendung aufgerufen wird, um ein verknüpftes Element zu bearbeiten, verwendet die Anwendung diesen Namen, um das Element zu finden. Sie müssen diese Funktion nicht für eingebettete Elemente aufrufen.
Siehe auch
MFC-Beispiel HIERSVR
CDocItem-Klasse
Hierarchiediagramm
COleClientItem-Klasse
COleServerDoc-Klasse
COleTemplateServer-Klasse