|
|
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, unique] LPCWSTR Program, [in, unique] LPCWSTR Parameters ); HRESULT GetNotifyCmdLine( [out] LPWSTR *pProgram, [out] LPWSTR *pParameters );
// // 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( , (unsigned long) (*pLength))] byte ** ppBuffer, [in, out, unique] UINT64 * 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; }
|