Enumerasi MSHLFLAGS (wtypesbase.h)
Menentukan mengapa marshaling harus dilakukan.
Sintaks
typedef enum tagMSHLFLAGS {
MSHLFLAGS_NORMAL = 0,
MSHLFLAGS_TABLESTRONG = 1,
MSHLFLAGS_TABLEWEAK = 2,
MSHLFLAGS_NOPING = 4,
MSHLFLAGS_RESERVED1 = 8,
MSHLFLAGS_RESERVED2 = 16,
MSHLFLAGS_RESERVED3 = 32,
MSHLFLAGS_RESERVED4 = 64
} MSHLFLAGS;
Konstanta
MSHLFLAGS_NORMAL Nilai: 0 Marshaling terjadi karena pointer antarmuka sedang diteruskan dari satu proses ke proses lainnya. Ini adalah kasus normal. Paket data yang dihasilkan oleh proses marshaling akan tidak terpecahkan dalam proses tujuan. Paket data marshaled dapat dibatalkan napasnya hanya sekali, atau tidak sama sekali. Jika penerima berhasil membatalkan nama paket data, fungsi CoReleaseMarshalData secara otomatis dipanggil pada paket data sebagai bagian dari proses yang belum dialihkan. Jika penerima tidak atau tidak dapat membatalkan nama paket data, pengirim harus memanggil CoReleaseMarshalData pada paket data. |
MSHLFLAGS_TABLESTRONG Nilai: 1 Marshaling terjadi karena paket data akan disimpan dalam tabel yang dapat diakses secara global dari mana ia dapat dibatalkan napasnya satu atau beberapa kali, atau tidak sama sekali. Kehadiran paket data dalam tabel dihitung sebagai referensi yang kuat untuk antarmuka yang di-marshal, yang berarti bahwa cukup untuk menjaga objek tetap hidup. Ketika paket data dihapus dari tabel, pelaksana tabel harus memanggil fungsi CoReleaseMarshalData pada paket data. MSHLFLAGS_TABLESTRONG digunakan oleh fungsi RegisterDragDrop saat mendaftarkan jendela sebagai target penurunan. Ini membuat jendela tetap terdaftar sebagai target penurunan tidak peduli berapa kali pengguna akhir menyeret ke seluruh jendela. Fungsi RevokeDragDrop memanggil CoReleaseMarshalData. |
MSHLFLAGS_TABLEWEAK Nilai: 2 Marshaling terjadi karena paket data akan disimpan dalam tabel yang dapat diakses secara global dari mana ia dapat dibatalkan napasnya satu atau beberapa kali, atau tidak sama sekali. Namun, keberadaan paket data dalam tabel bertindak sebagai referensi lemah ke antarmuka yang di-marshal, yang berarti bahwa tidak cukup untuk menjaga objek tetap hidup. Ketika paket data dihapus dari tabel, pelaksana tabel harus memanggil fungsi CoReleaseMarshalData pada paket data. MSHLFLAGS_TABLEWEAK biasanya digunakan saat mendaftarkan objek dalam tabel objek yang sedang berjalan (ROT). Ini mencegah entri objek dalam ROT menjaga objek tetap hidup tanpa adanya koneksi lain. Lihat IRunningObjectTable::Register untuk informasi selengkapnya. |
MSHLFLAGS_NOPING Nilai: 4 Menambahkan bendera ini ke marshaling objek asli (dibandingkan dengan marshaling proksi) akan menonaktifkan protokol ping untuk objek tersebut. |
MSHLFLAGS_RESERVED1 Nilai: 8 |
MSHLFLAGS_RESERVED2 Nilai: 16 |
MSHLFLAGS_RESERVED3 Nilai: 32 |
MSHLFLAGS_RESERVED4 Nilai: 64 |
Persyaratan
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Header | wtypesbase.h (termasuk WTypes.h) |
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