Freigeben über


ICallFrame::Marshal-Methode (callobj.h)

Marshallt den Aufrufrahmen, indem die erreichbaren Daten in einen flachen Puffer umgewandelt werden, ohne den Frame zu stören.

Syntax

HRESULT Marshal(
  [in]  CALLFRAME_MARSHALCONTEXT *pmshlContext,
  [in]  MSHLFLAGS                mshlflags,
  [in]  PVOID                    pBuffer,
  [in]  ULONG                    cbBuffer,
  [out] ULONG                    *pcbBufferUsed,
  [out] RPCOLEDATAREP            *pdataRep,
  [out] ULONG                    *prpcFlags
);

Parameter

[in] pmshlContext

Ein Zeiger auf die CALLFRAME_MARSHALCONTEXT-Struktur , die Kontextinformationen zur Durchführung des Marshallings enthält.

[in] mshlflags

Flag, das angibt, ob die zu marshallenden Daten zurück an den Clientprozess (normaler Fall) übertragen oder in eine globale Tabelle geschrieben werden sollen, wo sie von mehreren Clients abgerufen werden können. Die möglichen Werte stammen aus der MSHLFLAGS-Enumeration .

[in] pBuffer

Ein Zeiger auf den Puffer, in den die gemarshallten Daten platziert werden sollen.

[in] cbBuffer

Die Größe des Puffers in Bytes.

[out] pcbBufferUsed

Empfängt die Größe des Puffers, der tatsächlich verwendet wurde. Dieser Parameter ist optional.

[out] pdataRep

Empfängt die NDR-Datendarstellung, mit der die Daten gemarshallt wurden. Dieser Parameter ist optional. Weitere Informationen finden Sie unter IRpcChannelBuffer::GetBuffer.

[out] prpcFlags

Empfängt ein RPC-Flag, das dem Aufruf zugeordnet ist. Dieser Parameter ist optional. Weitere Informationen finden Sie unter IRpcChannelBuffer::GetBuffer.

Rückgabewert

Diese Methode kann die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich abgeschlossen.
E_UNEXPECTED
Ein unerwarteter Fehler ist aufgetreten.

Hinweise

Beim Marshallen sind die [In]-Versionen von [in, out]-Parametern vorhanden, und die [out]-Versionen sind nicht definiert. Beim Marshallen von [out]-Parametern sind die Werte gültig.

Wenn diese Methode einen Fehler zurückgibt, kann der Aufrufer ihn nicht sauber. Ressourcen wie z. B. Speicher, der während des versuchten Marshallings vorübergehend zugeordnet wurde, wurden freigegeben.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile callobj.h

Weitere Informationen

ICallFrame