Koneksi ke Layanan BITS

Untuk menyambungkan ke layanan sistem BITS, buat instans objek BackgroundCopyManager seperti yang ditunjukkan dalam contoh berikut. Layanan sistem BITS adalah layanan sistem Windows yang berjalan pada komputer klien yang mengimplementasikan kemampuan transfer latar belakang.

#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>
#include <bits.h>

//Global variable that several of the code examples in this document reference.
IBackgroundCopyManager* g_pbcm = NULL;  
HRESULT hr;

//Specify the appropriate COM threading model for your application.
hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if (SUCCEEDED(hr))
{
  hr = CoCreateInstance(__uuidof(BackgroundCopyManager), NULL,
                        CLSCTX_LOCAL_SERVER,
                        __uuidof(IBackgroundCopyManager),
                        (void**) &g_pbcm);
  if (SUCCEEDED(hr))
  {
    //Use g_pbcm to create, enumerate, or retrieve jobs from the queue.
  }
}

Untuk menguji versi BITS tertentu, gunakan pengidentifikasi kelas simbolis untuk BackgroundCopyManager berdasarkan versi yang ingin Anda periksa. Misalnya, untuk menguji BITS 10.2, gunakan CLSID_BackgroundCopyManager10_2.

Contoh berikut menunjukkan cara menggunakan salah satu pengidentifikasi kelas simbolis.

  hr = CoCreateInstance(CLSID_BackgroundCopyManager5_0, NULL,
                        CLSCTX_LOCAL_SERVER,
                        IID_IBackgroundCopyManager,
                        (void**) &g_pbcm);
  if (SUCCEEDED(hr))
  {
    //BITS 5.0 is installed.
  }

Gunakan metode antarmuka IBackgroundCopyManager untuk membuat pekerjaan transfer, menghitung pekerjaan dalam antrean, dan mengambil pekerjaan.

BITS mengharuskan proksi antarmuka klien menggunakan tingkat peniruan IDENTIFIKASI atau IMPERSONATE. Jika aplikasi tidak memanggil CoInitializeSecurity, COM menggunakan IDENTIFI secara default. BITS gagal dengan E_ACCESSDENIED jika tingkat peniruan yang benar tidak diatur. Jika Anda menyediakan pustaka yang menjalankan antarmuka BITS, dan aplikasi yang memanggil pustaka Anda mengatur tingkat peniruan di bawah IDENTIFI, maka Anda harus memanggil CoSetProxyBlanket untuk mengatur tingkat peniruan yang benar untuk setiap antarmuka BITS yang Anda panggil.

Sebelum aplikasi Anda keluar, rilis salinan penunjuk antarmuka IBackgroundCopyManager Anda, seperti yang ditunjukkan dalam contoh berikut.

if (g_pbcm)
{
  g_pbcm->Release();
  g_pbcm = NULL;
}
CoUninitialize();

Memanggil BITS dari .NET dan C# untuk BITS