IReconcilableObject::Metode rekonsiliasi (reconcil.h)
Merekonsiliasi status objek dengan satu atau beberapa objek lainnya. Rekonsiliasi memperbarui status internal objek dengan menggabungkan status semua objek untuk membentuk status gabungan.
Sintaks
HRESULT Reconcile(
IReconcileInitiator *pInitiator,
DWORD dwFlags,
HWND hwndOwner,
HWND hwndProgressFeedback,
ULONG ulcInput,
IMoniker **rgpmkOtherInput,
PLONG plOutIndex,
IStorage *pstgNewResidues,
PVOID pvReserved
);
Parameter
pInitiator
Jenis: IReconcileInitiator*
Alamat antarmuka IReconcileInitiator untuk inisiator proses rekonsiliasi. Parameter ini tidak boleh NULL.
dwFlags
Jenis: DWORD
Bendera kontrol untuk rekonsiliasi. Parameter ini mungkin nol atau kombinasi dari nilai-nilai ini:
RECONCILEF_FEEDBACKWINDOWVALID
Parameter hwndProgressFeedback valid.
RECONCILEF_MAYBOTHERUSER
Pendamping koper dapat meminta interaksi pengguna jika diperlukan. Tanpa nilai ini, interaksi pengguna tidak diizinkan. Parameter hwndOwner valid.
RECONCILEF_NORESIDUESOK
Rekonsiliasi koper dapat mengabaikan permintaan residu dan melakukan rekonsiliasi. Rekonsiliasi yang tidak mendukung residu harus memeriksa nilai ini setiap kali inisiator meminta residu. Tanpa nilai ini, reconciler yang tidak mendukung residu harus segera mengembalikan REC_E_NORESIDUES.
RECONCILEF_OMITSELFRESIDUE
Pendamping tas bisa membuang residu yang terkait dengan obyek ini. Inisiator biasanya menggunakan nilai ini untuk rekonsiliasi yang mengulang dari generasi ke generasi.
RECONCILEF_ONLYYOUWERECHANGED
Metode Rekonsiliasi sedang dipanggil untuk menyebarluaskan perubahan dalam objek yang diubah ke objek lain yang tidak berubah. Nilai ini hanya akan diatur jika kunci berikut ada di registri.
HKEY_CLASSES_ROOT CLSID {CLSID of reconciler} SingleChangeHook
Jika kunci ini tidak ada di registri, inisiator melakukan rekonsiliasi dengan membuat salinan biner objek lain yang tidak berubah identik dari objek yang diubah. Moniker rgpmkOtherInput mengidentifikasi objek lainnya. Nilai ini hanya akan diatur dalam dwFlags jika RECONCILEF_YOUMAYDOTHEUPDATES juga ditetapkan. Jika reconciler koper berhasil menyelesaikan pembaruan itu sendiri, REC_S_IDIDTHEUPDATES harus dikembalikan dan variabel yang diarahkan oleh parameter plOutIndex harus diatur ke -1L. Perhatikan bahwa S_OK tidak boleh dikembalikan pada keberhasilan jika nilai ini diatur dalam dwFlags. Inisiator tidak akan menyimpan penyimpanan objek sumber jika Reconcile mengembalikan REC_S_IDIDTHEUPDATES. Jika reconciler ingin kembali ke implementasi salinan bit inisiator, reconciler dapat mengembalikan S_FALSE.
RECONCILEF_RESUMEDRECONCILIATION
Rekonsiliasi koper harus melanjutkan rekonsiliasi, menggunakan residu parsial yang disediakan. Tanpa nilai ini, reconciler harus mengabaikan informasi "dipertimbangkan tetapi ditolak" di salah satu versi input.
RECONCILEF_YOUMAYDOTHEUPDATES
Pendamping koper dapat melakukan pembaruan. Tanpa nilai ini, reconciler tidak dapat melakukan pembaruan. Jika rekonsiliasi berhasil diselesaikan, reconciler harus mengembalikan REC_S_IDIDTHEUPDATES jika melakukan pembaruan atau S_OK jika tidak melakukan pembaruan.
hwndOwner
Jenis: HWND
Handel ke jendela yang akan digunakan sebagai induk untuk jendela anak mana pun yang dibuat oleh rekonsiliasi tas kerja. Parameter ini hanya valid jika RECONCILEF_MAYBOTHERUSER ditentukan dalam dwFlags.
hwndProgressFeedback
Jenis: HWND
Handel ke jendela umpan balik kemajuan yang akan ditampilkan oleh inisiator. Parameter ini hanya valid jika RECONCILEF_FEEDBACKWINDOWVALID ditentukan dalam dwFlags. Pendamping koper dapat memanggil fungsi SetWindowText menggunakan handel jendela ini untuk menampilkan informasi status rekonsiliasi tambahan kepada pengguna.
ulcInput
Jenis: ULONG
Jumlah versi atau residu parsial yang ditentukan dalam dwFlags. Parameter ini tidak boleh nol.
rgpmkOtherInput
Jenis: IMoniker**
Alamat array yang berisi alamat moniker yang akan digunakan untuk mengakses versi atau residu parsial yang akan direkonsiliasi.
plOutIndex
Jenis: LONG*
Alamat variabel yang menerima nilai indeks yang menunjukkan apakah hasil rekonsiliasi identik dengan salah satu versi awal. Variabel diatur ke -1L jika hasil rekonsiliasi adalah kombinasi dari dua versi atau lebih. Jika tidak, ini adalah indeks berbasis nol, dengan 0 menunjukkan objek ini, 1 menunjukkan versi pertama, 2 menunjukkan versi kedua, dan sebagainya.
pstgNewResidues
Jenis: IStorage*
Alamat antarmuka IStorage yang digunakan untuk menyimpan residu baru. Parameter ini dapat berupa NULL untuk menunjukkan bahwa residu tidak boleh disimpan.
pvReserved
Jenis: void*
Dipesan; harus NULL.
Nilai kembali
Jenis: HRESULT
Mengembalikan salah satu nilai berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Rekonsiliasi berhasil diselesaikan, dan perubahan harus disebarluaskan ke objek lain. |
|
Tidak ada tindakan rekonsiliasi yang dilakukan. Reconciler koper ingin kembali ke implementasi salinan bit inisiator. Nilai ini hanya dapat dikembalikan jika RECONCILEF_ONLYYOUWERECHANGED diatur dalam dwFlags. |
|
Rekonsiliasi berhasil diselesaikan, dan semua objek yang terlibat (objek yang mengimplementasikan metode Rekonsiliasi dan semua objek lain yang dijelaskan oleh rgpmkOtherInput) telah diperbarui dengan tepat. Oleh karena itu, inisiator tidak perlu melakukan apa pun lebih lanjut untuk menyebarluaskan perubahan. Variabel yang diacu oleh plOutIndex harus diatur ke -1L jika Reconcile mengembalikan nilai ini. Inisiator tidak akan menyimpan penyimpanan objek sumber jika Reconcile mengembalikan nilai ini. Nilai ini hanya dapat dikembalikan jika RECONCILEF_YOUMAYDOTHEUPDATES diatur dalam dwFlags. |
|
Rekonsiliasi koper menyelesaikan beberapa, tetapi tidak semua, dari rekonsiliasi. Mungkin perlu interaksi pengguna. Perubahan tidak akan disebarluaskan ke objek lain. |
|
Rekonsiliasi koper menyelesaikan beberapa, tetapi tidak semua, dari rekonsiliasi. Mungkin perlu interaksi pengguna. Perubahan akan disebarluaskan ke objek lain. |
|
Pendamping koper tidak mendukung pembuatan residu, sehingga permintaan residu ditolak. Status objek tidak berubah. |
|
Rekonsiliasi koper menghentikan rekonsiliasi sebagai tanggapan atas permintaan penghentian dari inisiator (lihat SetAbortCallback untuk informasi selengkapnya). Status objek tidak ditentukan. |
|
Rekonsiliasi tidak dapat dilakukan karena versi dokumen yang disediakan terlalu berbeda. |
|
Bendera RECONCILEF_YOUMAYDOTHEUPDATES tidak diatur ketika implementasi Reconcile objek dipanggil; implementasi ini mengharuskan nilai ini diatur dalam parameter dwFlags . |
|
Objek adalah objek tersemat OLE yang harus dijalankan sebelum operasi ini dapat dilakukan. Status objek tidak berubah. |
|
Kesalahan yang tidak ditentukan. |
Persyaratan
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | reconcil.h |
DLL | Shell32.dll (versi 4.0 atau yang lebih baru) |