Fungsi CoGetMarshalSizeMax (combaseapi.h)
Mengembalikan batas atas pada jumlah byte yang diperlukan untuk marshal penunjuk antarmuka yang ditentukan ke objek yang ditentukan.
Sintaks
HRESULT CoGetMarshalSizeMax(
[out] ULONG *pulSize,
[in] REFIID riid,
[in] LPUNKNOWN pUnk,
[in] DWORD dwDestContext,
[in, optional] LPVOID pvDestContext,
[in] DWORD mshlflags
);
Parameter
[out] pulSize
Penunjuk ke nilai terikat atas pada ukuran, dalam byte, paket data yang akan ditulis ke aliran marshaling. Jika parameter ini adalah 0, ukuran paket tidak diketahui.
[in] riid
Referensi ke pengidentifikasi antarmuka yang penunjuknya akan dirusak. Antarmuka ini harus berasal dari antarmuka IUnknown .
[in] pUnk
Penunjuk ke antarmuka yang akan dijadikan marshal. Antarmuka ini harus berasal dari antarmuka IUnknown .
[in] dwDestContext
Konteks tujuan di mana antarmuka yang ditentukan akan dilepaskan namanya. Nilai untuk dwDestContext berasal dari enumerasi MSHCTX.
[in, optional] pvDestContext
Parameter ini dicadangkan dan harus NULL.
[in] mshlflags
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 berasal dari enumerasi MSHLFLAGS.
Nilai kembali
Fungsi ini dapat mengembalikan nilai pengembalian standar E_UNEXPECTED, serta nilai berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Batas atas berhasil dikembalikan. |
|
Sebelum fungsi ini dapat dipanggil, fungsi CoInitialize atau OleInitialize harus dipanggil. |
Keterangan
Fungsi ini melakukan tugas-tugas berikut:
- Mengkueri objek untuk penunjuk IMarshal atau, jika objek tidak mengimplementasikan IMarshal, mendapatkan penunjuk ke marshaler standar COM.
- Menggunakan penunjuk yang diperoleh dalam item sebelumnya, memanggil IMarshal::GetMarshalSizeMax.
- Menambahkan ke nilai yang dikembalikan oleh panggilan ke GetMarshalSizeMax ukuran header data marshaling dan, mungkin, bahwa dari proxy CLSID untuk mendapatkan ukuran maksimum dalam byte dari jumlah data yang akan ditulis ke aliran marshaling.
Nilai yang dikembalikan oleh metode ini dijamin valid hanya selama status internal objek yang di-marshal tidak berubah. Oleh karena itu, marshaling aktual harus dilakukan segera setelah fungsi ini kembali, atau stub menjalankan risiko bahwa objek, karena beberapa perubahan status, mungkin memerlukan lebih banyak memori untuk marshal daripada yang ditunjukkan awalnya.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows 2000 Server [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | combaseapi.h (termasuk Objbase.h) |
Pustaka | Ole32.lib |
DLL | Ole32.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk