xpmgr/BuildTools/Include/bits3_0.idl

299 lines
6.6 KiB
Plaintext

/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module name:
bits3_0.idl
Abstract:
Contains interfaces, types, and macros for Background Intelligent Transfer Service.
--*/
import "bits.idl";
import "bits1_5.idl";
import "bits2_0.idl";
import "bits2_5.idl";
#define BG_ENUM_SIZEIS(maxcount) maxcount
#define BG_ENUM_LENGTHIS(maxcount,lengthptr) \
lengthptr ? *lengthptr : maxcount
/**
* IBitsPeerCacheRecord - deprecated interface
*/
[
uuid(659cdeaf-489e-11d9-a9cd-000d56965251),
helpstring("IBitsPeerCacheRecord"),
odl
]
interface IBitsPeerCacheRecord : IUnknown
{
HRESULT GetId( [out, ref] GUID * pVal );
HRESULT GetOriginUrl( [out] LPWSTR *pVal );
HRESULT GetFileSize( [out, ref] UINT64 * pVal );
HRESULT GetFileModificationTime( [out, ref] FILETIME * pVal );
HRESULT GetLastAccessTime( [out, ref] FILETIME * pVal );
/**
* returns S_OK if validated, S_FALSE if not
*/
HRESULT IsFileValidated();
HRESULT
GetFileRanges(
[out, ref] DWORD * pRangeCount,
[out, size_is( , *pRangeCount)] BG_FILE_RANGE ** ppRanges );
};
/**
* IEnumBitsPeerCacheRecords - deprecated interface
*/
[
uuid(659cdea4-489e-11d9-a9cd-000d56965251),
helpstring("IEnumBitsPeerCacheRecords"),
odl
]
interface IEnumBitsPeerCacheRecords : IUnknown
{
HRESULT
Next(
[in] ULONG celt,
[out, size_is(BG_ENUM_SIZEIS(celt)), length_is(BG_ENUM_LENGTHIS(celt,pceltFetched))] IBitsPeerCacheRecord **rgelt,
[in,out,unique] ULONG *pceltFetched );
HRESULT
Skip(
[in] ULONG celt);
HRESULT
Reset();
HRESULT
Clone(
[out] IEnumBitsPeerCacheRecords **ppenum );
HRESULT
GetCount(
[out] ULONG *puCount );
};
[
uuid(659cdea2-489e-11d9-a9cd-000d56965251),
helpstring("IBitsPeer"),
odl
]
interface IBitsPeer : IUnknown
{
HRESULT GetPeerName( [out, ref] LPWSTR * pName );
HRESULT IsAuthenticated( [out, ref] BOOL * pAuth );
HRESULT IsAvailable( [out, ref] BOOL * pOnline );
};
/**
* IEnumBitsPeers - deprecated interface
*/
[
uuid(659cdea5-489e-11d9-a9cd-000d56965251),
helpstring("IEnumBitsPeers"),
odl
]
interface IEnumBitsPeers : IUnknown
{
HRESULT
Next(
[in] ULONG celt,
[out, size_is(BG_ENUM_SIZEIS(celt)), length_is(BG_ENUM_LENGTHIS(celt,pceltFetched))] IBitsPeer **rgelt,
[in,out,unique] ULONG *pceltFetched );
HRESULT
Skip(
[in] ULONG celt);
HRESULT
Reset();
HRESULT
Clone(
[out] IEnumBitsPeers **ppenum );
HRESULT
GetCount(
[out] ULONG *puCount );
}
/**
* IBitsPeerCacheAdministration - deprecated interface
*/
[
uuid(659cdead-489e-11d9-a9cd-000d56965251),
helpstring("IBitsPeerCacheAdministration"),
odl
]
interface IBitsPeerCacheAdministration : IUnknown
{
cpp_quote("#define BG_ENABLE_PEERCACHING_CLIENT 0x0001")
cpp_quote("#define BG_ENABLE_PEERCACHING_SERVER 0x0002")
cpp_quote("#define BG_DISABLE_BRANCH_CACHE 0x0004")
/**
* control of caching policy in general
*/
HRESULT GetMaximumCacheSize( [ref,out] DWORD * pBytes );
HRESULT SetMaximumCacheSize( DWORD Bytes );
HRESULT GetMaximumContentAge( [ref,out] ULONG * pSeconds );
HRESULT SetMaximumContentAge( ULONG Seconds );
HRESULT GetConfigurationFlags( [ref, out] DWORD * pFlags );
HRESULT SetConfigurationFlags( DWORD Flags );
/**
* cache record management
*/
HRESULT EnumRecords( [out] IEnumBitsPeerCacheRecords ** ppEnum );
HRESULT GetRecord( [in] REFGUID id,
[out] IBitsPeerCacheRecord **ppRecord );
HRESULT ClearRecords();
HRESULT DeleteRecord( [in] REFGUID id );
HRESULT DeleteUrl( [in, ref] LPCWSTR url );
/**
* peer management
*/
HRESULT EnumPeers( [out, ref] IEnumBitsPeers ** ppEnum );
HRESULT ClearPeers();
HRESULT DiscoverPeers();
};
[
uuid(659cdeae-489e-11d9-a9cd-000d56965251),
helpstring("IBackgroundCopyJob4 Interface"),
odl
]
interface IBackgroundCopyJob4 : IBackgroundCopyJob3
{
cpp_quote("#define BG_JOB_ENABLE_PEERCACHING_CLIENT 0x0001")
cpp_quote("#define BG_JOB_ENABLE_PEERCACHING_SERVER 0x0002")
cpp_quote("#define BG_JOB_DISABLE_BRANCH_CACHE 0x0004")
//
// control of peer-caching
//
HRESULT SetPeerCachingFlags( DWORD Flags );
HRESULT GetPeerCachingFlags( [out, ref] DWORD * pFlags );
//
// inspecting token characteristics
//
HRESULT GetOwnerIntegrityLevel( [out, ref] ULONG * pLevel );
HRESULT GetOwnerElevationState( [out, ref] BOOL * pElevated );
// Download Timeout
HRESULT SetMaximumDownloadTime( ULONG Timeout );
HRESULT GetMaximumDownloadTime([out,ref] ULONG* pTimeout );
};
[
uuid(659cdeaa-489e-11d9-a9cd-000d56965251),
helpstring("IBackgroundCopyFile3 interface"),
odl
]
interface IBackgroundCopyFile3 : IBackgroundCopyFile2
{
//
// Get the name of the temporary file, allowing access to data before
// the job is complete.
//
HRESULT GetTemporaryName( [out] LPWSTR * pFilename );
//
// Calling SetValidationState(TRUE) allows the data to be shared with peers,
// if peer-caching is otherwise enabled for this job.
//
// Calling SetValidationState(FALSE) triggers another download attempt if the
// file was downloaded from a peer; otherwise, it puts the job in ERROR state.
//
HRESULT SetValidationState( [in] BOOL state );
//
// Retrieves the current validation state of this file.
//
HRESULT GetValidationState( [out] BOOL * pState );
//
// *pVal is set to TRUE if any part of the file was downloaded from a peer server.
//
HRESULT IsDownloadedFromPeer( [out] BOOL * pVal );
}
[
uuid(659cdeac-489e-11d9-a9cd-000d56965251),
helpstring("IBackgroundCopyCallback2 Interface"),
odl
]
interface IBackgroundCopyCallback2 : IBackgroundCopyCallback
{
//
// A file has been transferred.
//
HRESULT FileTransferred( [in] IBackgroundCopyJob *pJob,
[in] IBackgroundCopyFile * pFile );
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// enumerators
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//---------------------------------------------------------------------------
[
uuid(659cdea6-489e-11d9-a9cd-000d56965251),
helpstring("Microsoft Background Copy Manager 3.0"),
lcid(0x0000),
version(1.0)
]
library BackgroundCopyManager3_0
{
[
uuid(659cdea7-489e-11d9-a9cd-000d56965251),
helpstring("Background copy manager 3.0")
]
coclass BackgroundCopyManager3_0
{
[default] interface IBackgroundCopyManager;
};
interface IBackgroundCopyJob4;
}
cpp_quote("#include \"bits4_0.h\"")