Metode IBackgroundCopyJob::SetNotifyInterface (bits.h)

Mengidentifikasi implementasi antarmuka IBackgroundCopyCallback Anda ke BITS. Gunakan antarmuka IBackgroundCopyCallback untuk menerima pemberitahuan peristiwa terkait pekerjaan.

Sintaks

HRESULT SetNotifyInterface(
  IUnknown *Val
);

Parameter

Val

Penunjuk antarmuka IBackgroundCopyCallback . Untuk menghapus penunjuk antarmuka panggilan balik saat ini, atur parameter ini ke NULL.

Menampilkan nilai

Metode ini mengembalikan nilai HRESULT berikut, serta yang lain.

Menampilkan kode Deskripsi
S_OK
Penunjuk antarmuka pemberitahuan berhasil diatur.
BG_E_INVALID_STATE
Status pekerjaan tidak dapat BG_JOB_STATE_CANCELLED atau BG_JOB_STATE_ACKNOWLEDGED.

Keterangan

Panggil metode ini hanya jika Anda mengimplementasikan antarmuka IBackgroundCopyCallback . Gunakan metode SetNotifyInterface bersama dengan metode SetNotifyFlags untuk menentukan jenis pemberitahuan yang ingin Anda terima.

Antarmuka pemberitahuan menjadi tidak valid ketika aplikasi Anda dihentikan; BITS tidak mempertahankan antarmuka pemberitahuan. Akibatnya, proses inisialisasi aplikasi Anda harus memanggil metode SetNotifyInterface pada pekerjaan yang ada yang ingin Anda terima pemberitahuannya. Jika Anda perlu mengambil informasi status dan kemajuan yang terjadi sejak terakhir kali aplikasi Anda dijalankan, polling untuk informasi status dan kemajuan selama inisialisasi aplikasi.

Perhatikan bahwa BITS akan memanggil panggilan balik Anda meskipun peristiwa yang Anda daftarkan sudah terjadi.

Sebagai alternatif untuk menerima pemberitahuan panggilan balik, Anda dapat mendaftar agar BITS menjalankan baris perintah untuk kesalahan dan peristiwa yang ditransfer. Untuk detail selengkapnya, lihat metode IBackgroundCopyJob2::SetNotifyCmdLine .

Perhatikan bahwa jika lebih dari satu aplikasi memanggil metode SetNotifyInterface untuk mengatur antarmuka pemberitahuan untuk pekerjaan tersebut, aplikasi terakhir yang memanggil metode SetNotifyInterface adalah yang akan menerima pemberitahuan—aplikasi lain tidak akan menerima pemberitahuan.

Contoh

Contoh berikut menunjukkan cara memanggil metode SetNotifyInterface . Untuk detail tentang kelas contoh CNotifyInterface yang digunakan dalam contoh berikut, lihat antarmuka IBackgroundCopyCallback . Contoh mengasumsikan penunjuk antarmuka IBackgroundCopyJob valid.

IBackgroundCopyJob* pJob;
CNotifyInterface* pNotify = new CNotifyInterface();

hr = pJob->SetNotifyInterface(pNotify);
if (SUCCEEDED(hr))
{
  hr = pJob->SetNotifyFlags(BG_NOTIFY_JOB_TRANSFERRED | 
                            BG_NOTIFY_JOB_ERROR);
}
pNotify->Release();
pNofity = NULL;

if (FAILED(hr))
{
  //Handle error - unable to register for event notification.
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP
Server minimum yang didukung Windows Server 2003
Target Platform Windows
Header bits.h
Pustaka Bits.lib
DLL QmgrPrxy.dll

Lihat juga

IBackgroundCopyCallback

IBackgroundCopyJob2::SetNotifyCmdLine

IBackgroundCopyJob::GetNotifyInterface

IBackgroundCopyJob::SetNotifyFlags