Metode IOleLink::BindToSource (oleidl.h)

Mengaktifkan koneksi ke sumber tautan dengan mengikat moniker yang disimpan dalam objek tertaut.

Sintaks

HRESULT BindToSource(
  [in] DWORD    bindflags,
  [in] IBindCtx *pbc
);

Parameter

[in] bindflags

Menentukan cara melanjutkan jika sumber tautan memiliki CLSID yang berbeda dari terakhir kali terikat. Jika parameter ini nol dan CLSID berbeda, metode gagal dan mengembalikan OLE_E_CLASSDIFF. Jika nilai OLELINKBIND_EVENIFCLASSDIFF dari enumerasi OLELINKBIND ditentukan dan CLSID berbeda, metode berhasil mengikat dan memperbarui CLSID yang disimpan dalam objek tertaut.

[in] pbc

Penunjuk ke antarmuka IBindCtx pada konteks ikatan yang akan digunakan dalam operasi pengikatan ini. Parameter ini bisa NULL. Konteks ikatan menyimpan objek yang terikat selama proses pengikatan, berisi parameter yang berlaku untuk semua operasi menggunakan konteks ikatan, dan menyediakan sarana di mana implementasi pengikatan harus mengambil informasi tentang lingkungannya. Untuk informasi selengkapnya, lihat IBindCtx.

Mengembalikan nilai

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

Menampilkan kode Deskripsi
OLE_E_CLASSDIFF
Sumber tautan tidak terikat karena CLSID-nya telah berubah. Kesalahan ini dikembalikan hanya jika bendera OLELINKBIND_EVENIFCLASSDIFF tidak ditentukan dalam parameter bindflags .
MK_E_NOOBJECT
Sumber tautan tidak dapat ditemukan atau (jika moniker sumber tautan adalah komposit) beberapa objek perantara yang diidentifikasi dalam komposit tidak dapat ditemukan.
E_UNSPEC
Moniker tautan adalah NULL.
 

Mengikat moniker mungkin memerlukan panggilan fungsi CreateBindCtx ; oleh karena itu, metode ini dapat mengembalikan kesalahan yang dihasilkan oleh CreateBindCtx.

Keterangan

Catatan untuk Penelepon

Biasanya, aplikasi kontainer Anda tidak perlu memanggil metode IOleLink::BindToSource secara langsung. Jika perlu mengaktifkan koneksi ke sumber tautan, kontainer Anda biasanya memanggil IOleObject::D oVerb, IOleObject::Update, atau IOleLink::Update. Implementasi objek tertaut dari metode ini memanggil IOleLink::BindToSource. Kontainer Anda juga dapat memanggil fungsi OleRun , yang memanggil IOleLink::BindToSource saat dipanggil pada objek tertaut.

Dalam setiap contoh yang tercantum sebelumnya, di mana IOleLink::BindToSource dipanggil secara tidak langsung, parameter bindflags diatur ke nol. Akibatnya, panggilan ini dapat gagal dengan kesalahan OLE_E_CLASSDIFF jika kelas sumber tautan berbeda dari yang terakhir kali objek tertaut terikat. Ini bisa terjadi, misalnya, jika sumber tautan asli adalah spreadsheet Lotus yang disematkan yang kemudian dikonversi pengguna akhir (menggunakan kotak dialog Ubah Jenis) ke lembar bentang Excel.

Jika Anda ingin kontainer Anda mengikat meskipun sumber tautan sekarang memiliki CLSID yang berbeda, Anda dapat memanggil IOleLink::BindToSource secara langsung dan menentukan OLELINKBIND_EVENIFCLASSDIFF untuk parameter bindflags. Panggilan ini mengikat ke sumber tautan dan memperbarui CLSID objek tautan. Atau, kontainer Anda dapat menghapus tautan yang ada dan menggunakan fungsi OleCreateLink untuk membuat objek tertaut baru.

Catatan untuk Pelaksana

Objek yang ditautkan menyimpan penunjuk antarmuka ke sumber tautan yang diperoleh selama pengikatan.

Implementasi IOleLink::BindToSource objek yang ditautkan pertama-tama mencoba mengikat menggunakan moniker yang terdiri dari moniker dokumen majemuk yang terdiri dari moniker relatif sumber tautan. Jika berhasil, ini memperbarui moniker absolut tautan. Jika tidak, ia mencoba mengikat menggunakan moniker absolut, memperbarui moniker relatif jika berhasil.

Jika IOleLink::BindToSource mengikat ke sumber tautan, IOleContainer::LockContainer dokumen majemuk akan tetap aktif saat sumber tautan berjalan. IOleLink::BindToSource juga memanggil IOleObject::Advise dan IDataObject::D Advise implementasi sumber tautan untuk menyiapkan koneksi penasihat. Implementasi IOleLink::UnbindSource membuka kunci kontainer dan menghapus koneksi saran.

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

Lihat juga

IDataObject::D Advise

IOleContainer::LockContainer

IOleLink

IOleLink::UnbindSource

IOleLink::Update

IOleObject::Advise

IOleObject::D oVerb

IOleObject::Update

OleRun