Bagikan melalui


Metode ICallFrame::Marshal (callobj.h)

Marshals bingkai panggilan dengan mengubah data yang dapat dijangkau menjadi buffer datar tanpa mengganggu bingkai.

Sintaks

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

Penunjuk ke struktur CALLFRAME_MARSHALCONTEXT yang berisi informasi konteks tentang bagaimana marshalling dilakukan.

[in] mshlflags

Bendera yang menunjukkan apakah data yang akan di-marshalasi akan ditransmisikan kembali ke proses klien - kasus normal - atau ditulis ke tabel global, di mana data tersebut dapat diambil oleh beberapa klien. Nilai yang mungkin berasal dari enumerasi MSHLFLAGS .

[in] pBuffer

Penunjuk ke buffer tempat data marshaled akan ditempatkan.

[in] cbBuffer

Ukuran buffer, dalam byte.

[out] pcbBufferUsed

Menerima ukuran buffer yang benar-benar digunakan. Parameter ini bersifat opsional.

[out] pdataRep

Menerima representasi data NDR yang datanya di-marshalasikan. Parameter ini bersifat opsional. Untuk informasi selengkapnya, lihat IRpcChannelBuffer::GetBuffer.

[out] prpcFlags

Menerima bendera RPC yang terkait dengan panggilan. Parameter ini bersifat opsional. Untuk informasi selengkapnya, lihat IRpcChannelBuffer::GetBuffer.

Menampilkan nilai

Metode ini dapat mengembalikan nilai berikut.

Menampilkan kode Deskripsi
S_OK
Metode berhasil diselesaikan.
E_UNEXPECTED
Terjadi kesalahan tidak terduga.

Keterangan

Saat marshalling versi [In] parameter [in, out] ada, dan versi [out] tidak ditentukan. Saat marshalling [out] parameter, nilainya valid.

Jika metode ini mengembalikan kesalahan, pemanggil tidak akan dapat membersihkannya. Sumber daya seperti memori yang dialokasikan sementara selama percobaan marshalling telah dikosongkan.

Persyaratan

   
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header callobj.h

Lihat juga

ICallFrame