Bagikan melalui


Fungsi OleGetClipboardWithEnterpriseInfo (ole2.h)

Mengaktifkan Windows Information Protection dicerahkan
aplikasi untuk mengambil IDataObject dari Clipboard OLE
disertai dengan windows Information Protection informasi tentang data dan
aplikasi sumber. Informasi ini memungkinkan
aplikasi yang tercerahkan untuk mengambil alih tanggung jawab untuk menerapkan Windows Information Protection
kebijakan, termasuk menerbangkan perintah UI yang sesuai, dan
mengaudit kasus di mana pengguna secara eksplisit menyetujui penyalinan
data perusahaan ke dalam konteks pribadi.

Jika aplikasi panggilan tidak dicerahkan, atau
dikonfigurasi sebagai "tidak diizinkan" untuk mengakses data perusahaan,
maka panggilan ini bertingkah persis seperti OleGetClipboard - menerapkan kebijakan sebelum memutuskan IDataObject apa yang akan dikembalikan,
dan menyediakan string kosong sebagai output.

Sintaks

HRESULT OleGetClipboardWithEnterpriseInfo(
  [out] IDataObject **dataObject,
  [out] PWSTR       *dataEnterpriseId,
  [out] PWSTR       *sourceDescription,
  [out] PWSTR       *targetDescription,
  [out] PWSTR       *dataDescription
);

Parameter

[out] dataObject

Alamat variabel penunjuk IDataObject yang menerima penunjuk antarmuka ke objek data clipboard.

[out] dataEnterpriseId

Id perusahaan aplikasi yang mengatur data clipboard. Jika data bersifat pribadi, ini akan menjadi string kosong.

[out] sourceDescription

Deskripsi aplikasi yang mengatur clipboard.

[out] targetDescription

Deskripsi aplikasi penelepon yang akan digunakan dalam audit.

[out] dataDescription

Deskripsi objek data yang akan digunakan dalam audit.

Nilai kembali

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 OleFlushClipboard gagal.
CLIPBRD_E_CANT_CLOSE
Fungsi CloseClipboard yang digunakan dalam OleFlushClipboard gagal.

Keterangan

Hati Data clipboard tidak tepercaya. Uraikan data dengan hati-hati sebelum menggunakannya di aplikasi Anda.
 
Jika Anda menulis aplikasi yang dapat menerima data dari clipboard, panggil fungsi OleGetClipboardWithEnterpriseInfo untuk mendapatkan pointer ke antarmuka IDataObject yang dapat Anda gunakan untuk mengambil konten clipboard.

OleGetClipboardWithEnterpriseInfo menangani tiga kasus:

  • Aplikasi yang menempatkan data pada clipboard dengan fungsi OleSetClipboard masih berjalan.
  • Aplikasi yang menempatkan data pada clipboard dengan fungsi OleSetClipboard kemudian disebut fungsi OleFlushClipboard .
  • Ada data dari aplikasi non-OLE di clipboard.
Dalam kasus pertama, objek data clipboard yang dikembalikan oleh OleGetClipboardWithEnterpriseInfo dapat meneruskan panggilan seperlunya ke objek data asli yang ditempatkan di clipboard dan, dengan demikian, dapat berpotensi melakukan panggilan RPC.

Dalam kasus kedua, OLE membuat objek data default dan mengembalikannya kepada pengguna. Karena data di clipboard berasal dari panggilan OleSetClipboard , objek data yang disediakan OLE berisi informasi yang lebih akurat tentang jenis data pada clipboard. Secara khusus, media asli (TYMED) tempat data ditawarkan diketahui. Dengan demikian, jika aplikasi sumber data menawarkan format clipboard tertentu, misalnya cfFOO, pada objek penyimpanan dan memanggil fungsi OleFlushClipboard , objek penyimpanan disalin ke dalam memori dan handel memori hglobal dimasukkan ke clipboard. Kemudian, ketika fungsi OleGetClipboardWithEnterpriseInfo membuat objek data defaultnya, hglobal dari clipboard kembali menjadi objek IStorage . Selain itu, enumerator FORMATETC dan metode IDataObject::QueryGetData semuanya akan menunjukkan dengan benar bahwa format clipboard asli (cfFOO) kembali tersedia di TYMED_ISTORAGE.

Dalam kasus ketiga, OLE masih membuat objek data default, tetapi tidak ada informasi khusus tentang data dalam format clipboard (terutama untuk format Clipboard yang ditentukan aplikasi). Dengan demikian, jika media penyimpanan berbasis hGlobal dimasukkan ke clipboard secara langsung oleh panggilan ke fungsi SetClipboardData , enumerator FORMATETC dan metode IDataObject::QueryGetData tidak akan menunjukkan bahwa data tersedia pada media penyimpanan. Namun, panggilan ke metode IDataObject::GetData untuk TYMED_ISTORAGE akan berhasil. Karena keterbatasan ini, sangat disarankan agar aplikasi yang sadar OLE berinteraksi dengan clipboard menggunakan fungsi clipboard OLE.

Objek data clipboard yang dibuat oleh fungsi OleGetClipboardWithEnterpriseInfo memiliki implementasi IDataObject yang cukup luas. Objek data yang disediakan OLE dapat mengonversi data format clipboard OLE 1 menjadi representasi yang diharapkan oleh pemanggil OLE 2. Selain itu, setiap data terstruktur tersedia pada media terstruktur atau datar apa pun, dan data datar apa pun tersedia pada media datar apa pun. Namun, objek GDI (seperti metafiles dan bitmap) hanya tersedia di media masing-masing.

Perhatikan bahwa anggota yang ditiru dari struktur FORMATETC yang digunakan dalam enumerator FORMATETC berisi penyatuan media yang didukung. Aplikasi yang mencari informasi tertentu (seperti apakah CF_TEXT tersedia di TYMED_HGLOBAL) harus melakukan bitmasking yang sesuai saat memeriksa nilai ini.

Jika Anda memanggil fungsi OleGetClipboardWithEnterpriseInfo , Anda hanya boleh berpegang pada IDataObject yang dikembalikan untuk waktu yang sangat singkat. Ini mengonsumsi sumber daya dalam aplikasi yang menawarkannya.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10 [khusus aplikasi desktop]
Server minimum yang didukung Windows Server 2016 [hanya aplikasi desktop]
Target Platform Windows
Header ole2.h
Pustaka Ole32.lib
DLL Ole32.dll

Lihat juga

OleGetClipboard

OleSetClipboard