Welcome to BITSWrappers, a set of C++ classes to provide a complete encapsulation of the BITS (Background Intelligent Transfer Service) API for Windows.
The classes provided are: BITS::CManager, BITS::CJob, BITS::CJob2, BITS::CJob3, BITS::CJob4, BITS::CJob5, BITS::CFile, BITS::CFile2, BITS::CFile3, BITS::CFile4, BITS::CFile5, BITS::CFile6, BITS::CJobOptions, BITS::CJobOptions2, BITS::CJobOptions3, BITS::CTokenOptions, BITS::CCallback, BITS::CCallback2, BITS::CCallback3, BITS::CServerCertificateValidationCallback, BITS::CError, BITS::String, BITS::FilesArray, BITS::JobsArray, BITS::FileRangeArray & BITS::ByteArray.
CManager is the class wrapper for IBackgroundCopyManager. This interface requires Windows XP / Server 2003 or higher.
CJob is the class wrapper for IBackgroundCopyJob. This interface requires Windows XP / Server 2003 or higher.
CJob2 is the class wrapper for IBackgroundCopyJob2. This interface requires Windows XP / Server 2003 or higher.
CJob3 is the class wrapper for IBackgroundCopyJob3. This interface requires Windows XP SP2 / Server 2003 SP1 or higher.
CJob4 is the class wrapper for IBackgroundCopyJob4. This interface requires Windows Vista / Server 2008 or higher.
CJob5 is the class wrapper for IBackgroundCopyJob5. This interface requires Windows 8 / Server 2008 or higher.
CFile is the class wrapper for IBackgroundCopyFile. This interface requires Windows XP / Server 2003 or higher.
CFile2 is the class wrapper for IBackgroundCopyFile2. This interface requires Windows XP SP2 / Server 2003 SP1 or higher.
CFile3 is the class wrapper for IBackgroundCopyFile3. This interface requires Windows Vista / Server 2008 or higher.
CFile4 is the class wrapper for IBackgroundCopyFile4. This interface requires Windows 7 / Server 2008 R2 or higher.
CFile5 is the class wrapper for IBackgroundCopyFile5. This interface requires Windows 8 / Server 2012 or higher.
CFile6 is the class wrapper for IBackgroundCopyFile6. This interface requires Windows 10 version 1703 / Server 2016 or higher.
CJobOptions is the class wrapper for IBackgroundCopyJobHttpOptions. This interface requires Windows Vista / Server 2008 or higher.
CJobOptions2 is the class wrapper for using IBackgroundCopyJobHttpOption2. This interface requires Windows 10 version 1809 / Server 2019 or higher.
CJobOptions3 is the class wrapper for using IBackgroundCopyJobHttpOption3. This interface requires Windows 10 version 1903 or higher.
CTokenOptions is the class wrapper for IBitsTokenOptions. This interface requires Windows 7 / Server 2008 R2 or higher.
CCallback is the class wrapper for using IBackgroundCopyCallback. To use this class just call CJob::SetNotifyInterface. For an example see the code in test.cpp. This interface requires Windows XP / Server 2003 or higher.
CCallback2 is the class wrapper for using IBackgroundCopyCallback2. To use this class just call CJob::SetNotifyInterface. For an example see the code in test.cpp. This interface requires Windows Vista / Server 2008 or higher.
CCallback3 is the class wrapper for using IBackgroundCopyCallback3. To use this class just call CJob::SetNotifyInterface. For an example see the code in test.cpp. This interface requires Windows 10 version 1703 / Server 2016 or higher.
CServerCertificateValidationCallback is the class wrapper for using IBackgroundCopyServerCertificateValidationCallback. This interface requires Windows 10 version 1903 or higher.
CError is the class wrapper for IBackgroundCopyError. This interface requires Windows XP / Server 2003 or higher.
String is a typedef for std::wstring.
FilesArray is a typedef for std::vector<CFile>. This collection class is used in the CJob::EnumFiles method.
JobsArray is a typedef for std::vector<CJob>. This collection class is used in the CManager::EnumJobs method.
FileRangeArray is a typedef for std::vector<BG_FILE_RANGE>. This collection class is used in the CFile2::GetFileRanges and CFile6::GetFilledFileRanges methods.
ByteArray is a typedef for std::vector<BYTE>. This collection class is used in the CJob2::GetReplyData and CJobHttpOptions::GetClientCertificate methods.
The development of BITSWrappers took a number of weeks researching, developing and testing and hopefully you should find them useful in your C++ Windows Internet programming efforts.
Features |
Usage |
Copyright |
History |
Contacting the Author |
class CMyCallback : public BITS::CCallback
{
public:
HRESULT OnJobTransferred(BITS::CJob& /*job*/) override
{
//Your code goes here
return S_OK;
}
};
BITS::CJob job;
//Some code to obtain a valid "job" instance here.
job.SetNotifyInterface<CMyCallback>
();
v1.13 (16 March 2022)
1 August 2021
v1.12 (12 April 2020)
v1.11 (10 March 2020)
v1.10 (15 September 2019)
v1.09 (19 April 2019)
v1.08 (18 November 2018)
v1.07 (7 September 2018)
v1.06 (7 July 2018)
v1.05 (29 October 2017)
v1.04 (29 April 2017)
v1.03 (15 January 2016)
v1.02 (10 August 2013)
v1.01 (6 August 2013)
v1.0 (6 August 2013)
PJ Naughter
Email: pjna@naughter.com
Web: http://www.naughter.com
16 March
2022