Share via


CreateObjrefMoniker-Funktion (objbase.h)

Erstellt einen OBJREF-Moniker basierend auf einem Zeiger auf ein -Objekt.

Syntax

HRESULT CreateObjrefMoniker(
  [in, optional] LPUNKNOWN punk,
  [out]          LPMONIKER *ppmk
);

Parameter

[in, optional] punk

Ein Zeiger auf die IUnknown-Schnittstelle für das Objekt, das der Moniker darstellen soll.

[out] ppmk

Adresse eines Zeigers auf die IMoniker-Schnittstelle auf dem erstellten OBJREF-Moniker.

Rückgabewert

Diese Funktion kann die Standardrückgabewerte E_OUTOFMEMORY, E_UNEXPECTED und S_OK zurückgeben.

Hinweise

Clients verwenden OBJREF-Moniker, um einen gemarshallten Zeiger auf ein ausgeführtes Objekt im Adressraum des Servers abzurufen.

Der Server ruft in der Regel CreateObjrefMoniker auf, um einen OBJREF-Moniker zu erstellen, ruft dann IMoniker::GetDisplayName auf und gibt schließlich den Moniker frei. Der Anzeigename für einen OBJREF-Moniker hat folgende Form:

OBJREF:nnnnnnnnn

Dabei ist nnnnnnn eine beliebig lange Base64-Codierung, die den Computerstandort, den Prozessendpunkt und die Schnittstellenzeiger-ID (IPID) des ausgeführten Objekts kapselt.

Der Anzeigename kann dann als Text an den Client übertragen werden. Der Anzeigename kann sich beispielsweise auf einer HTML-Seite befinden, die vom Client heruntergeladen wird.

Der Client kann den Anzeigenamen an MkParseDisplayName übergeben, wodurch basierend auf dem Anzeigenamen ein OBJREF-Moniker erstellt wird. Ein Aufruf der monikers IMoniker::BindToObject-Methode ruft dann einen gemarshallten Zeiger auf die ausgeführte instance auf dem Server ab.

Beispielsweise kann eine serverseitige COM-Komponente, die in einer aktiven Serverseite enthalten ist, einen OBJREF-Moniker erstellen, dessen Anzeigenamen abrufen und den Anzeigenamen in die HTML-Ausgabe schreiben, die an den Clientbrowser gesendet wird. Ein Skript, das auf clientseitiger Seite ausgeführt wird, kann den Anzeigenamen verwenden, um Zugriff auf das ausgeführte Objekt selbst zu erhalten. Ein clientseitiges Visual Basic-Skript für instance könnte den Anzeigenamen in einer Variablen namens strMyName speichern und diese Zeile enthalten:

objMyInstance = GetObject(strMyName)

Die Skript-Engine führt intern die Aufrufe von MkParseDisplayName und IMoniker::BindToObject durch, und das Skript kann dann objMyInstance verwenden, um direkt auf das ausgeführte Objekt zu verweisen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile objbase.h
Bibliothek Ole32.lib
DLL Ole32.dll
APIs ext-ms-win-com-ole32-l1-1-5 (eingeführt in Windows 10, Version 10.0.15063)

Weitere Informationen

Imoniker