Bagikan melalui


Metode IDataObject::GetData (objidl.h)

Dipanggil oleh konsumen data untuk mendapatkan data dari objek data sumber. Metode GetData merender data yang dijelaskan dalam struktur FORMATETC yang ditentukan dan mentransfernya melalui struktur STGMEDIUM yang ditentukan. Pemanggil kemudian bertanggung jawab untuk merilis struktur STGMEDIUM .

Sintaks

HRESULT GetData(
  [in]  FORMATETC *pformatetcIn,
  [out] STGMEDIUM *pmedium
);

Parameter

[in] pformatetcIn

Penunjuk ke struktur FORMATETC yang menentukan format, sedang, dan perangkat target untuk digunakan saat meneruskan data. Dimungkinkan untuk menentukan lebih dari satu media dengan menggunakan operator Boolean OR, memungkinkan metode untuk memilih media terbaik di antara yang ditentukan.

[out] pmedium

Pointer ke struktur STGMEDIUM yang menunjukkan media penyimpanan yang berisi data yang dikembalikan melalui anggota tymed-nya, dan tanggung jawab untuk melepaskan media melalui nilai anggota pUnkForRelease - nya. Jika pUnkForRelease adalah NULL, penerima media bertanggung jawab untuk merilisnya; jika tidak, pUnkForRelease menunjuk ke IUnknown pada objek yang sesuai sehingga metode Rilisnya dapat dipanggil. Media harus dialokasikan dan diisi oleh GetData.

Nilai kembali

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

Menampilkan kode Deskripsi
DV_E_LINDEX
Nilai untuk lindex tidak valid; saat ini, hanya -1 yang didukung.
DV_E_FORMATETC
Nilai untuk pformatetcIn tidak valid.
DV_E_TYMED
Nilai tymed tidak valid.
DV_E_DVASPECT
Nilai dwAspect tidak valid.
OLE_E_NOTRUNNING
Aplikasi objek tidak berjalan.
STG_E_MEDIUMFULL
Terjadi kesalahan saat mengalokasikan media.
E_UNEXPECTED
Terjadi kesalahan tidak terduga.
E_INVALIDARG
Nilai dwDirection tidak valid.
E_OUTOFMEMORY
Tidak tersedia cukup memori untuk operasi ini.

Keterangan

Konsumen data memanggil GetData untuk mengambil data dari objek data, yang disampaikan melalui media penyimpanan (didefinisikan melalui struktur STGMEDIUM ).

Catatan untuk Penelepon

Anda dapat menentukan lebih dari satu media tymed yang dapat diterima dengan operator BOolean OR. GetData harus memilih dari nilai OR media yang paling mewakili data, melakukan alokasi, dan menunjukkan tanggung jawab untuk melepaskan media.

Data yang ditransfer di seluruh aliran meluas dari posisi nol penunjuk aliran ke posisi segera sebelum penunjuk aliran saat ini (yaitu, posisi penunjuk aliran saat keluar).

Catatan untuk Pelaksana

GetData harus memeriksa semua bidang dalam struktur FORMATETC . Penting bahwa GetData merender aspek yang diminta dan, jika memungkinkan, gunakan media yang diminta. Jika objek data tidak dapat mematuhi informasi yang ditentukan dalam FORMATETC, metode harus mengembalikan DV_E_FORMATETC. Jika upaya untuk mengalokasikan media gagal, metode harus mengembalikan STG_E_MEDIUMFULL. Penting untuk mengisi semua bidang dalam struktur STGMEDIUM .

Meskipun penelepon dapat menentukan lebih dari satu media untuk mengembalikan data, GetData hanya dapat menyediakan satu media. Jika transfer awal gagal dengan media yang dipilih, metode ini dapat diimplementasikan untuk mencoba salah satu media lain yang ditentukan sebelum mengembalikan kesalahan.

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

Lihat juga

IDataObject