BITS Hizmetine Bağlanma
BITS sistem hizmetine bağlanmak için aşağıdaki örnekte gösterildiği gibi BackgroundCopyManager nesnesinin bir örneğini oluşturun. BITS sistem hizmeti, arka plan aktarım özelliğini uygulayan istemci bilgisayarda çalışan Windows sistem hizmetidir.
#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.
}
}
BITS'nin belirli bir sürümünü test etmek için, denetlemek istediğiniz sürüme göre BackgroundCopyManager için sembolik bir sınıf tanımlayıcısı kullanın. Örneğin, BITS 10.2'yi test etmek için CLSID_BackgroundCopyManager10_2 kullanın.
Aşağıdaki örnekte sembolik sınıf tanımlayıcılarından birinin nasıl kullanılacağı gösterilmektedir.
hr = CoCreateInstance(CLSID_BackgroundCopyManager5_0, NULL,
CLSCTX_LOCAL_SERVER,
IID_IBackgroundCopyManager,
(void**) &g_pbcm);
if (SUCCEEDED(hr))
{
//BITS 5.0 is installed.
}
IBackgroundCopyManager arabiriminin yöntemlerini kullanarak aktarım işleri oluşturun, kuyruktaki işleri listeleyin ve işlerigeri al.
BITS, istemcinin arabirim proxy'lerinin ya IDENTIFY ya da kimliğe bürünme düzeyini kullanmasını gerektirir. Uygulama CoInitializeSecurityçağırmazsa, COM varsayılan olarak IDENTIFY kullanır. Doğru kimliğe bürünme düzeyi ayarlanmadıysa BITS E_ACCESSDENIED ile başarısız olur. BITS arabirimlerini kullanan bir kitaplık sağlarsanız ve kitaplığınızı çağıran bir uygulama IDENTIFY altında kimliğe bürünme düzeyini ayarlarsa, çağırdığınız her BITS arabirimi için doğru kimliğe bürünme düzeyini ayarlamak için CoSetProxyBlanket çağırmanız gerekir.
Uygulamanızdan çıkmadan önce, aşağıdaki örnekte gösterildiği gibi IBackgroundCopyManager arabirim işaretçisi kopyanızı serbest bırakın.
if (g_pbcm)
{
g_pbcm->Release();
g_pbcm = NULL;
}
CoUninitialize();
İlgili konular
-
.NET ve C#'tan BITS'e Çağrı () - BITS için ()