131 lines
3.3 KiB
Plaintext
131 lines
3.3 KiB
Plaintext
|
|
||
|
import "bits.idl";
|
||
|
|
||
|
[
|
||
|
uuid(54b50739-686f-45eb-9dff-d6a9a0faa9af),
|
||
|
helpstring("IBackgroundCopyJob2 Interface"),
|
||
|
odl
|
||
|
]
|
||
|
interface IBackgroundCopyJob2 : IBackgroundCopyJob
|
||
|
{
|
||
|
// a progam and optional arguments to launch when the job enters
|
||
|
// ERROR or TRANSFERRED state.
|
||
|
//
|
||
|
HRESULT SetNotifyCmdLine( [in] LPCWSTR Val );
|
||
|
HRESULT GetNotifyCmdLine( [out] LPWSTR *pVal );
|
||
|
|
||
|
//
|
||
|
// Measure the progress of the reply of an upload-reply job.
|
||
|
// ReplyBytesTotal is BG_SIZE_UNKNOWN if the reply has not begun yet,
|
||
|
// and zero if the job type is not BG_JOB_TYPE_UPLOAD_REPLY.
|
||
|
//
|
||
|
typedef struct _BG_JOB_REPLY_PROGRESS
|
||
|
{
|
||
|
UINT64 BytesTotal;
|
||
|
UINT64 BytesTransferred;
|
||
|
}
|
||
|
BG_JOB_REPLY_PROGRESS;
|
||
|
|
||
|
HRESULT
|
||
|
GetReplyProgress(
|
||
|
[in, out] BG_JOB_REPLY_PROGRESS * pProgress
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// Retrieve the reply data as an in-memory buffer.
|
||
|
//
|
||
|
HRESULT
|
||
|
GetReplyData(
|
||
|
[out, size_is( , *pLength)] byte ** ppBuffer,
|
||
|
[in, out, unique] ULONG * pLength
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// Set a location to place the reply as a file.
|
||
|
//
|
||
|
HRESULT SetReplyFileName( [in, unique] LPCWSTR ReplyFileName );
|
||
|
HRESULT GetReplyFileName( [out] LPWSTR * pReplyFileName );
|
||
|
|
||
|
//
|
||
|
// Security controls.
|
||
|
//
|
||
|
typedef enum
|
||
|
{
|
||
|
BG_AUTH_TARGET_SERVER = 1,
|
||
|
BG_AUTH_TARGET_PROXY
|
||
|
|
||
|
} BG_AUTH_TARGET;
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
BG_AUTH_SCHEME_BASIC = 1,
|
||
|
BG_AUTH_SCHEME_DIGEST,
|
||
|
BG_AUTH_SCHEME_NTLM,
|
||
|
BG_AUTH_SCHEME_NEGOTIATE,
|
||
|
BG_AUTH_SCHEME_PASSPORT
|
||
|
|
||
|
} BG_AUTH_SCHEME;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
LPWSTR UserName;
|
||
|
LPWSTR Password;
|
||
|
|
||
|
} BG_BASIC_CREDENTIALS;
|
||
|
|
||
|
typedef BG_BASIC_CREDENTIALS * PBG_BASIC_CREDENTIALS;
|
||
|
|
||
|
typedef [switch_type(BG_AUTH_SCHEME)] union
|
||
|
{
|
||
|
|
||
|
[case( BG_AUTH_SCHEME_BASIC, BG_AUTH_SCHEME_DIGEST, BG_AUTH_SCHEME_NTLM,
|
||
|
BG_AUTH_SCHEME_NEGOTIATE, BG_AUTH_SCHEME_PASSPORT )] BG_BASIC_CREDENTIALS Basic;
|
||
|
[default] ;
|
||
|
|
||
|
} BG_AUTH_CREDENTIALS_UNION;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
BG_AUTH_TARGET Target;
|
||
|
BG_AUTH_SCHEME Scheme;
|
||
|
[switch_is(Scheme)] BG_AUTH_CREDENTIALS_UNION Credentials;
|
||
|
}
|
||
|
BG_AUTH_CREDENTIALS;
|
||
|
|
||
|
typedef BG_AUTH_CREDENTIALS * PBG_AUTH_CREDENTIALS;
|
||
|
|
||
|
//
|
||
|
// Sets the explicit credentials for a particular auth scheme.
|
||
|
// The app calls this through the IBackgroundCopyJob2 interface.
|
||
|
// If the { target, scheme } pair match an existing credential,
|
||
|
// the existing credential is replaced with the new one.
|
||
|
//
|
||
|
HRESULT SetCredentials( BG_AUTH_CREDENTIALS * credentials );
|
||
|
|
||
|
HRESULT RemoveCredentials( BG_AUTH_TARGET Target, BG_AUTH_SCHEME Scheme );
|
||
|
|
||
|
}
|
||
|
|
||
|
//---------------------------------------------------------------------------
|
||
|
|
||
|
[
|
||
|
uuid(ea9319ea-c628-480f-8331-768fac397e4e),
|
||
|
helpstring("Microsoft Background Copy Manager 1.5"),
|
||
|
lcid(0x0000),
|
||
|
version(1.0)
|
||
|
]
|
||
|
library BackgroundCopyManager1_5
|
||
|
{
|
||
|
[
|
||
|
uuid(f087771f-d74f-4c1a-bb8a-e16aca9124ea),
|
||
|
helpstring("Background copy job 2")
|
||
|
]
|
||
|
coclass BackgroundCopyManager1_5
|
||
|
{
|
||
|
[default] interface IBackgroundCopyManager;
|
||
|
};
|
||
|
interface IBackgroundCopyCallback;
|
||
|
interface IBackgroundCopyJob2;
|
||
|
}
|
||
|
|