Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Setelah objek data atau sumber data dibuat, Anda dapat melakukan sejumlah operasi umum pada data, seperti menyisipkan dan menghapus data, menghitung format tempat data berada, dan banyak lagi. Artikel ini menjelaskan teknik yang diperlukan untuk menyelesaikan operasi yang paling umum. Topik meliputi:
Menyisipkan Data ke Dalam Sumber Data
Bagaimana data disisipkan ke dalam sumber data tergantung pada apakah data disediakan segera atau sesuai permintaan, dan di media mana data disediakan. Kemungkinannya adalah sebagai berikut.
Segera Menyediakan Data (Penyajian Langsung)
Panggil
COleDataSource::CacheGlobalDataberulang kali untuk setiap format Clipboard tempat Anda menyediakan data. Teruskan format Clipboard yang akan digunakan, handel ke memori yang berisi data dan, secara opsional, struktur FORMATETC yang menjelaskan data.-atau-
Jika Anda ingin bekerja langsung dengan struktur STGMEDIUM , Anda memanggil
COleDataSource::CacheDataalih-alihCOleDataSource::CacheGlobalDatadalam opsi di atas.
Menyediakan Data sesuai Permintaan (Penyajian Tertunda)
Ini adalah topik lanjutan.
Panggil
COleDataSource::DelayRenderDataberulang kali untuk setiap format Clipboard tempat Anda menyediakan data. Teruskan format Clipboard yang akan digunakan dan, secara opsional, struktur FORMATETC yang menjelaskan data. Ketika data diminta, kerangka akan memanggilCOleDataSource::OnRenderData, yang harus Anda ganti.-atau-
Jika Anda menggunakan
CFileobjek untuk menyediakan data, panggilCOleDataSource::DelayRenderFileDataalih-alihCOleDataSource::DelayRenderDatadi opsi sebelumnya. Ketika data diminta, kerangka akan memanggilCOleDataSource::OnRenderFileData, yang harus Anda ganti.
Menentukan Format yang Tersedia dalam Objek Data
Sebelum aplikasi memungkinkan pengguna menempelkan data ke dalamnya, pengguna perlu mengetahui apakah ada format di Clipboard yang dapat ditanganinya. Untuk melakukan ini, aplikasi Anda harus melakukan hal berikut:
Buat
COleDataObjectobjek dan struktur FORMATETC .Panggil fungsi anggota objek
AttachClipboarddata untuk mengaitkan objek data dengan data di Clipboard.Lakukan salah satu hal berikut ini:
Panggil fungsi anggota objek
IsDataAvailabledata jika hanya ada satu atau dua format yang Anda butuhkan. Ini akan menghemat waktu Anda jika data di Clipboard mendukung format yang jauh lebih banyak daripada aplikasi Anda.-atau-
Panggil fungsi anggota objek
BeginEnumFormatsdata untuk mulai menghitung format yang tersedia di Clipboard. Kemudian panggilGetNextFormathingga Clipboard mengembalikan format yang didukung aplikasi Anda atau tidak ada lagi format.
Jika Anda menggunakan ON_UPDATE_COMMAND_UI, Anda sekarang dapat mengaktifkan Tempel dan, mungkin, Tempel item Khusus pada menu Edit. Untuk melakukan ini, panggil CMenu::EnableMenuItem atau CCmdUI::Enable. Untuk informasi selengkapnya tentang aplikasi kontainer apa yang harus dilakukan dengan item menu dan kapan, lihat Menu dan Sumber Daya: Penambahan Kontainer.
Mengambil Data dari Objek Data
Setelah Anda memutuskan format data, semua yang tersisa adalah mengambil data dari objek data. Untuk melakukan ini, pengguna memutuskan tempat meletakkan data, dan aplikasi memanggil fungsi yang sesuai. Data akan tersedia di salah satu media berikut:
| Menengah | Fungsi untuk memanggil |
|---|---|
Memori Global (HGLOBAL) |
COleDataObject::GetGlobalData |
File (CFile) |
COleDataObject::GetFileData |
Struktur STGMEDIUM (IStorage) |
COleDataObject::GetData |
Umumnya, media akan ditentukan bersama dengan format Clipboard-nya. Misalnya, objek CF_EMBEDDEDSTRUCT selalu dalam IStorage media yang memerlukan struktur STGMEDIUM . Oleh karena itu, Anda akan menggunakan GetData karena itu adalah satu-satunya fungsi ini yang dapat menerima struktur STGMEDIUM .
Untuk kasus di mana format Clipboard berada dalam medium IStream atau HGLOBAL, kerangka kerja dapat menyediakan penunjuk CFile yang mereferensikan data. Aplikasi kemudian dapat menggunakan file yang dibaca untuk mendapatkan data dengan cara yang sama seperti mungkin mengimpor data dari file. Pada dasarnya, ini adalah antarmuka sisi klien untuk rutinitas OnRenderData dan OnRenderFileData di sumber data.
Pengguna sekarang dapat menyisipkan data ke dalam dokumen seperti untuk data lain dalam format yang sama.
Apa yang ingin Anda ketahui lebih lanjut tentang
Clipboard
Lihat juga
Objek Data dan Sumber Data (OLE)
Kelas COleDataObject
Kelas COleDataSource