Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

130 lines
3.3 KiB

  1. import "bits.idl";
  2. [
  3. uuid(54b50739-686f-45eb-9dff-d6a9a0faa9af),
  4. helpstring("IBackgroundCopyJob2 Interface"),
  5. odl
  6. ]
  7. interface IBackgroundCopyJob2 : IBackgroundCopyJob
  8. {
  9. // a progam and optional arguments to launch when the job enters
  10. // ERROR or TRANSFERRED state.
  11. //
  12. HRESULT SetNotifyCmdLine( [in] LPCWSTR Val );
  13. HRESULT GetNotifyCmdLine( [out] LPWSTR *pVal );
  14. //
  15. // Measure the progress of the reply of an upload-reply job.
  16. // ReplyBytesTotal is BG_SIZE_UNKNOWN if the reply has not begun yet,
  17. // and zero if the job type is not BG_JOB_TYPE_UPLOAD_REPLY.
  18. //
  19. typedef struct _BG_JOB_REPLY_PROGRESS
  20. {
  21. UINT64 BytesTotal;
  22. UINT64 BytesTransferred;
  23. }
  24. BG_JOB_REPLY_PROGRESS;
  25. HRESULT
  26. GetReplyProgress(
  27. [in, out] BG_JOB_REPLY_PROGRESS * pProgress
  28. );
  29. //
  30. // Retrieve the reply data as an in-memory buffer.
  31. //
  32. HRESULT
  33. GetReplyData(
  34. [out, size_is( , *pLength)] byte ** ppBuffer,
  35. [in, out, unique] ULONG * pLength
  36. );
  37. //
  38. // Set a location to place the reply as a file.
  39. //
  40. HRESULT SetReplyFileName( [in, unique] LPCWSTR ReplyFileName );
  41. HRESULT GetReplyFileName( [out] LPWSTR * pReplyFileName );
  42. //
  43. // Security controls.
  44. //
  45. typedef enum
  46. {
  47. BG_AUTH_TARGET_SERVER = 1,
  48. BG_AUTH_TARGET_PROXY
  49. } BG_AUTH_TARGET;
  50. typedef enum
  51. {
  52. BG_AUTH_SCHEME_BASIC = 1,
  53. BG_AUTH_SCHEME_DIGEST,
  54. BG_AUTH_SCHEME_NTLM,
  55. BG_AUTH_SCHEME_NEGOTIATE,
  56. BG_AUTH_SCHEME_PASSPORT
  57. } BG_AUTH_SCHEME;
  58. typedef struct
  59. {
  60. LPWSTR UserName;
  61. LPWSTR Password;
  62. } BG_BASIC_CREDENTIALS;
  63. typedef BG_BASIC_CREDENTIALS * PBG_BASIC_CREDENTIALS;
  64. typedef [switch_type(BG_AUTH_SCHEME)] union
  65. {
  66. [case( BG_AUTH_SCHEME_BASIC, BG_AUTH_SCHEME_DIGEST, BG_AUTH_SCHEME_NTLM,
  67. BG_AUTH_SCHEME_NEGOTIATE, BG_AUTH_SCHEME_PASSPORT )] BG_BASIC_CREDENTIALS Basic;
  68. [default] ;
  69. } BG_AUTH_CREDENTIALS_UNION;
  70. typedef struct
  71. {
  72. BG_AUTH_TARGET Target;
  73. BG_AUTH_SCHEME Scheme;
  74. [switch_is(Scheme)] BG_AUTH_CREDENTIALS_UNION Credentials;
  75. }
  76. BG_AUTH_CREDENTIALS;
  77. typedef BG_AUTH_CREDENTIALS * PBG_AUTH_CREDENTIALS;
  78. //
  79. // Sets the explicit credentials for a particular auth scheme.
  80. // The app calls this through the IBackgroundCopyJob2 interface.
  81. // If the { target, scheme } pair match an existing credential,
  82. // the existing credential is replaced with the new one.
  83. //
  84. HRESULT SetCredentials( BG_AUTH_CREDENTIALS * credentials );
  85. HRESULT RemoveCredentials( BG_AUTH_TARGET Target, BG_AUTH_SCHEME Scheme );
  86. }
  87. //---------------------------------------------------------------------------
  88. [
  89. uuid(ea9319ea-c628-480f-8331-768fac397e4e),
  90. helpstring("Microsoft Background Copy Manager 1.5"),
  91. lcid(0x0000),
  92. version(1.0)
  93. ]
  94. library BackgroundCopyManager1_5
  95. {
  96. [
  97. uuid(f087771f-d74f-4c1a-bb8a-e16aca9124ea),
  98. helpstring("Background copy job 2")
  99. ]
  100. coclass BackgroundCopyManager1_5
  101. {
  102. [default] interface IBackgroundCopyManager;
  103. };
  104. interface IBackgroundCopyCallback;
  105. interface IBackgroundCopyJob2;
  106. }