Delen via


Verbinding maken met de BITS-service

Als u verbinding wilt maken met de BITS-systeemservice, maakt u een exemplaar van het Object BackgroundCopyManager, zoals wordt weergegeven in het volgende voorbeeld. De BITS-systeemservice is de Windows-systeemservice die wordt uitgevoerd op de clientcomputer die de mogelijkheid voor achtergrondoverdracht implementeert.

#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.
  }
}

Als u wilt testen op een specifieke versie van BITS, gebruikt u een symbolische klasse-id voor de BackgroundCopyManager op basis van de versie die u wilt controleren. Als u bijvoorbeeld wilt testen op BITS 10.2, gebruikt u CLSID_BackgroundCopyManager10_2.

In het volgende voorbeeld ziet u hoe u een van de symbolische klasse-id's gebruikt.

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

Gebruik de methoden van de interface IBackgroundCopyManager om overdrachtstaken te maken, taken opsommen in de wachtrij en taken op te halen.

BITS vereist dat de interfaceproxy's van de client gebruikmaken van het IDENTIFICEREN- of IMITATE-niveau van imitatie. Als de toepassing geen CoInitializeSecurityaanroept, gebruikt COM standaard IDENTIFY. BITS mislukt met E_ACCESSDENIED als het juiste imitatieniveau niet is ingesteld. Als u een bibliotheek levert die de BITS-interfaces gebruikt, en een toepassing die uw bibliotheek aanroept het imitatieniveau onder IDENTIFY instelt, moet u CoSetProxyBlanket aanroepen om het juiste imitatieniveau in te stellen voor elke BITS-interface die u aanroept.

Voordat uw applicatie wordt afgesloten, moet u uw kopie van de IBackgroundCopyManager-interfaceaanwijzer vrijgeven, zoals geïllustreerd in het volgende voorbeeld.

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

Het aanroepen van BITS vanuit .NET en C# met BITS