Metode IDataObject::EnumFormatEtc (objidl.h)
Membuat objek untuk menghitung format yang didukung oleh objek data.
Sintaks
HRESULT EnumFormatEtc(
[in] DWORD dwDirection,
[out] IEnumFORMATETC **ppenumFormatEtc
);
Parameter
[in] dwDirection
Arah data. Nilai yang mungkin berasal dari enumerasi DATADIR .
Nilai DATADIR_GET menghitung format yang dapat diteruskan ke panggilan ke IDataObject::GetData. Nilai DATADIR_SET menghitung format yang dapat diteruskan ke panggilan ke IDataObject::SetData.
[out] ppenumFormatEtc
Penunjuk ke variabel penunjuk IEnumFORMATETC yang menerima penunjuk antarmuka ke objek enumerator baru.
Nilai kembali
Metode ini mengembalikan S_OK pada keberhasilan. Nilai lain yang mungkin termasuk yang berikut ini.
Menampilkan kode | Deskripsi |
---|---|
|
DwDirection yang disediakan tidak valid. |
|
Tidak tersedia cukup memori untuk operasi ini. |
|
Arah yang ditentukan oleh dwDirection tidak didukung. |
|
Meminta agar OLE menghitung format dari registri. |
Keterangan
EnumFormatEtc membuat objek enumerator yang dapat digunakan untuk menentukan semua cara objek data dapat menjelaskan data dalam struktur FORMATETC , dan menyediakan penunjuk ke antarmuka IEnumFORMATETC-nya . Ini adalah salah satu antarmuka enumerator standar.
Catatan untuk Penelepon
Setelah mendapatkan penunjuk, pemanggil dapat menghitung struktur FORMATETC dengan memanggil metode enumerasi IEnumFORMATETC. Karena format dapat berubah dari waktu ke waktu, tidak ada jaminan bahwa format enumerasi saat ini didukung karena format dapat berubah dari waktu ke waktu. Dengan demikian, aplikasi harus memperlakukan enumerasi sebagai petunjuk dari jenis format yang dapat diteruskan. Pemanggil bertanggung jawab untuk memanggil Rilis ketika selesai dengan enumerator.EnumFormatEtc dipanggil ketika salah satu tindakan berikut terjadi:
- Aplikasi memanggil OleSetClipboard. OLE harus menentukan data apa yang akan ditempatkan pada clipboard dan apakah perlu menempatkan format kompatibilitas OLE 1 pada clipboard.
- Data sedang ditempelkan dari clipboard atau dihilangkan. Aplikasi menggunakan format pertama yang dapat diterima.
- Kotak dialog Tempel Spesial ditampilkan. Aplikasi target membangun daftar format dari entri FORMATETC .
Catatan untuk Pelaksana
Format dapat didaftarkan secara statis dalam registri atau secara dinamis selama inisialisasi objek. Jika objek memiliki daftar format yang tidak berubah dan format ini terdaftar dalam registri, OLE menyediakan implementasi objek enumerasi FORMATETC yang dapat menghitung format yang terdaftar di bawah CLSID tertentu dalam registri. Penunjuk ke antarmuka IEnumFORMATETC-nya tersedia melalui panggilan ke fungsi pembantu OleRegEnumFormatEtc. Oleh karena itu, dalam situasi ini, Anda dapat menerapkan metode EnumFormatEtc hanya dengan panggilan ke fungsi ini.Aplikasi EXE dapat secara efektif melakukan hal yang sama dengan menerapkan metode untuk mengembalikan nilai OLE_S_USEREG. Nilai pengembalian ini menginstruksikan handler objek default untuk memanggil OleRegEnumFormatEtc. Aplikasi objek yang diimplementasikan sebagai aplikasi objek DLL tidak dapat mengembalikan OLE_S_USEREG, jadi harus memanggil OleRegEnumFormatEtc secara langsung.
Format privat dapat dijumlahkan untuk objek OLE 1, jika terdaftar dengan kunci RequestDataFormats atau SetDataFormats di registri. Selain itu, format privat dapat dijumlahkan untuk objek OLE (semua versi setelah OLE 1), jika terdaftar dengan kunci GetDataFormats atau SetDataFormats.
Untuk objek OLE 1 yang servernya tidak memiliki informasi RequestDataFormats atau SetDataFormats yang terdaftar dalam registri, panggilan ke EnumFormatEtc yang melewati DATADIR_GET hanya menghitung format asli dan metafile, terlepas dari apakah mereka mendukung format ini atau yang lain. Memanggil EnumFormatEtc yang melewati DATADIR_SET pada objek tersebut hanya menghitung asli, terlepas dari apakah objek mendukung diatur dengan format lain.
Struktur FORMATETC yang dikembalikan oleh enumerasi biasanya menunjukkan perangkat target NULL (ptd). Ini sesuai karena, tidak seperti anggota FORMATETC lainnya, perangkat target tidak berpartisipasi dalam keputusan objek apakah dapat menerima atau memberikan data dalam panggilan SetData atau GetData.
Anggota FORMATETC yang ditiru sering menunjukkan bahwa lebih dari satu jenis media penyimpanan dapat diterima. Anda harus selalu menutupi dan menguji ini dengan menggunakan operator Boolean OR.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | objidl.h |