Fungsi OleSetClipboard (ole2.h)

Menempatkan penunjuk ke objek data tertentu ke clipboard. Ini membuat objek data dapat diakses oleh fungsi OleGetClipboard .

Sintaks

HRESULT OleSetClipboard(
  [in] LPDATAOBJECT pDataObj
);

Parameter

[in] pDataObj

Penunjuk ke antarmuka IDataObject pada objek data tempat data ditempatkan pada clipboard dapat diperoleh. Parameter ini bisa NULL; dalam hal ini clipboard dikosongkan.

Menampilkan nilai

Fungsi ini mengembalikan S_OK pada keberhasilan. Nilai lain yang mungkin termasuk yang berikut ini.

Menampilkan kode Deskripsi
CLIPBRD_E_CANT_OPEN
Fungsi OpenClipboard yang digunakan dalam OleSetClipboard gagal.
CLIPBRD_E_CANT_EMPTY
Fungsi EmptyClipboard yang digunakan dalam OleSetClipboard gagal.
CLIPBRD_E_CANT_CLOSE
Fungsi CloseClipboard yang digunakan dalam OleSetClipboard gagal.
CLIPBRD_E_CANT_SET
Fungsi SetClipboardData yang digunakan dalam OleSetClipboard gagal.

Keterangan

Jika Anda menulis aplikasi yang dapat bertindak sebagai sumber operasi clipboard, Anda harus melakukan hal berikut:

  • Buat objek data (yang merupakan antarmuka IDataObject ) untuk data yang disalin atau dipotong ke clipboard. Objek ini harus sama dengan objek yang digunakan dalam operasi seret dan letakkan OLE.
  • Panggil OleSetClipboard untuk menempatkan penunjuk IDataObject ke clipboard, sehingga dapat diakses oleh fungsi OleGetClipboard . OleSetClipboard juga memanggil metode IUnknown::AddRef pada objek data Anda.
  • Jika mau, lepaskan objek data setelah Anda menempatkannya di clipboard untuk membebaskan penghitung IUnknown::AddRef di aplikasi Anda.
  • Jika pengguna memotong data (menghapusnya dari dokumen dan meletakkannya ke clipboard), hapus data dari dokumen.
Semua format ditawarkan pada clipboard menggunakan penyajian tertunda (clipboard hanya berisi penunjuk ke objek data kecuali panggilan ke OleFlushClipboard merender data ke clipboard). Format yang diperlukan untuk kompatibilitas OLE 1 disintesis dari format OLE 2 yang ada dan juga diletakkan di clipboard.

Fungsi OleSetClipboard menetapkan kepemilikan clipboard ke handel jendela OLE internal. Jumlah referensi objek data ditingkatkan sebesar 1, untuk mengaktifkan penyajian yang tertunda. Jumlah referensi dikurangi oleh panggilan ke fungsi OleFlushClipboard atau oleh panggilan berikutnya ke OleSetClipboard yang menentukan NULL sebagai nilai parameter (yang menghapus clipboard).

Ketika aplikasi membuka clipboard (baik secara langsung maupun tidak langsung dengan memanggil fungsi OpenClipboard ), clipboard tidak dapat digunakan oleh aplikasi lain hingga ditutup. Jika clipboard saat ini dibuka oleh aplikasi lain, OleSetClipboard gagal. Handel jendela OLE internal memenuhi WM_RENDERFORMAT pesan dengan mendelegasikannya ke implementasi IDataObject pada objek data yang ada di clipboard.

Menentukan NULL sebagai nilai parameter untuk OleSetClipboard mengikat clipboard saat ini. Jika konten clipboard adalah hasil dari panggilan OleSetClipboard sebelumnya dan clipboard telah dirilis, penunjuk IDataObject yang diteruskan ke panggilan sebelumnya dirilis. Pemilik clipboard harus menggunakan ini sebagai sinyal bahwa data yang sebelumnya ditawarkannya tidak lagi ada di clipboard.

Jika Anda perlu meninggalkan data di clipboard setelah aplikasi ditutup, Anda harus memanggil OleFlushClipboard daripada memanggil OleSetClipboard dengan nilai parameter NULL .

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 ole2.h
Pustaka Ole32.lib
DLL Ole32.dll
Set API ext-ms-win-com-ole32-l1-1-5 (diperkenalkan dalam Windows 10, versi 10.0.15063)

Lihat juga

OleFlushClipboard

OleGetClipboard

OleIsCurrentClipboard