Metode IDataObject::GetDataHere (objidl.h)

Dipanggil oleh konsumen data untuk mendapatkan data dari objek data sumber. Metode ini berbeda dari metode GetData karena pemanggil harus mengalokasikan dan membebaskan media penyimpanan yang ditentukan.

Sintaks

HRESULT GetDataHere(
  [in]      FORMATETC *pformatetc,
  [in, out] STGMEDIUM *pmedium
);

Parameter

[in] pformatetc

Penunjuk ke struktur FORMATETC yang menentukan format, sedang, dan perangkat target untuk digunakan saat meneruskan data. Hanya satu media yang dapat ditentukan dalam tymed, dan hanya nilai berikut yang valid: TYMED_ISTORAGE, TYMED_ISTREAM, TYMED_HGLOBAL, atau TYMED_FILE.

[in, out] pmedium

Penunjuk ke struktur STGMEDIUM yang mendefinisikan media penyimpanan yang berisi data yang ditransfer. Media harus dialokasikan oleh penelepon dan diisi oleh GetDataHere. Pemanggil juga harus membebaskan media. Implementasi metode ini harus selalu menyediakan nilai NULL untuk anggota punkForRelease dari struktur STGMEDIUM tempat parameter ini menunjuk.

Menampilkan nilai

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 pformatetc 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
Parameter dwDirection tidak valid.
E_OUTOFMEMORY
Tidak tersedia cukup memori untuk operasi ini.

Keterangan

Metode GetDataHere mirip dengan IDataObject::GetData, kecuali bahwa pemanggil harus mengalokasikan dan membebaskan media yang ditentukan dalam pmedium. GetDataHere merender data yang dijelaskan dalam struktur FORMATETC dan menyalin data ke dalam struktur STGMEDIUM yang disediakan pemanggil. Misalnya, jika media TYMED_HGLOBAL, metode ini tidak dapat mengubah ukuran sedang atau mengalokasikan hGlobal baru.

Beberapa media tidak sesuai dalam panggilan ke GetDataHere, termasuk jenis GDI seperti metafiles. Metode GetDataHere tidak dapat memasukkan data ke dalam metafile yang disediakan pemanggil. Secara umum, satu-satunya media penyimpanan yang perlu didukung dalam metode ini adalah TYMED_ISTORAGE, TYMED_ISTREAM, dan TYMED_FILE.

Ketika media transfer adalah aliran, OLE membuat asumsi tentang di mana data dikembalikan dan posisi penunjuk pencarian aliran. Dalam panggilan GetData , data yang dikembalikan berasal dari posisi aliran nol hingga tepat sebelum penunjuk pencarian aliran saat ini (yaitu, posisi saat keluar). Untuk GetDataHere, data yang dikembalikan berasal dari posisi aliran saat masuk tepat sebelum posisi saat keluar.

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 objidl.h

Lihat juga

IDataObject