123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418 |
- /*
- * Background Intelligent Transfer Service (BITS) interface
- *
- * Copyright 2007 Google (Roy Shea)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- *
- */
- #ifndef DO_NO_IMPORTS
- import "unknwn.idl";
- #endif
- cpp_quote("#include \"bitsmsg.h\"")
- cpp_quote("#define BG_SIZE_UNKNOWN (UINT64)(-1)")
- cpp_quote("#define BG_NOTIFY_JOB_TRANSFERRED 0x0001")
- cpp_quote("#define BG_NOTIFY_JOB_ERROR 0x0002")
- cpp_quote("#define BG_NOTIFY_DISABLE 0x0004")
- cpp_quote("#define BG_NOTIFY_JOB_MODIFICATION 0x0008")
- cpp_quote("#define BG_NOTIFY_FILE_TRANSFERRED 0x0010")
- cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
- cpp_quote("#undef EnumJobs")
- cpp_quote("#undef GetJob")
- cpp_quote("#endif")
- #define BG_ENUM_SIZEIS(maxcount) maxcount
- #define BG_ENUM_LENGTHIS(maxcount,lengthptr) lengthptr ? *lengthptr : maxcount
- [
- uuid(01b7bd23-fb88-4a77-8490-5891d3e4653a),
- odl
- ]
- interface IBackgroundCopyFile : IUnknown
- {
- typedef struct _BG_FILE_PROGRESS {
- UINT64 BytesTotal;
- UINT64 BytesTransferred;
- BOOL Completed;
- } BG_FILE_PROGRESS;
- HRESULT GetRemoteName(
- [out] LPWSTR *pVal
- );
- HRESULT GetLocalName(
- [out] LPWSTR *pVal
- );
- HRESULT GetProgress(
- [out] BG_FILE_PROGRESS *pVal
- );
- }
- [
- uuid(ca51e165-c365-424c-8d41-24aaa4ff3c40),
- odl
- ]
- interface IEnumBackgroundCopyFiles: IUnknown
- {
- HRESULT Next(
- [in] ULONG celt,
- [out,size_is(BG_ENUM_SIZEIS(celt)),length_is(BG_ENUM_LENGTHIS(celt,pceltFetched))] IBackgroundCopyFile **rgelt,
- [in,out,unique] ULONG *pceltFetched
- );
- HRESULT Skip(
- [in] ULONG celt
- );
- HRESULT Reset();
- HRESULT Clone(
- [out] IEnumBackgroundCopyFiles **ppenum
- );
- HRESULT GetCount(
- [out] ULONG *puCount
- );
- }
- [
- uuid(19c613a0-fcb8-4f28-81ae-897c3d078f81),
- odl
- ]
- interface IBackgroundCopyError : IUnknown
- {
- typedef enum {
- BG_ERROR_CONTEXT_NONE = 0,
- BG_ERROR_CONTEXT_UNKNOWN = 1,
- BG_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER = 2,
- BG_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION =3,
- BG_ERROR_CONTEXT_LOCAL_FILE = 4,
- BG_ERROR_CONTEXT_REMOTE_FILE = 5,
- BG_ERROR_CONTEXT_GENERAL_TRANSPORT = 6,
- BG_ERROR_CONTEXT_REMOTE_APPLICATION =7,
- } BG_ERROR_CONTEXT;
- HRESULT GetError(
- [out,ref] BG_ERROR_CONTEXT *pContext,
- [out,ref] HRESULT *pCode
- );
- HRESULT GetFile(
- [out] IBackgroundCopyFile **pVal
- );
- HRESULT GetErrorDescription(
- [in] DWORD LanguageId,
- [out,ref] LPWSTR *pErrorDescription
- );
- HRESULT GetErrorContextDescription(
- [in] DWORD LanguageId,
- [out,ref] LPWSTR *pContextDescription
- );
- HRESULT GetProtocol(
- [out,ref] LPWSTR *pProtocol
- );
- }
- [
- uuid(37668d37-507e-4160-9316-26306d150b12),
- odl
- ]
- interface IBackgroundCopyJob : IUnknown
- {
- typedef struct _BG_FILE_INFO {
- LPWSTR RemoteName;
- LPWSTR LocalName;
- } BG_FILE_INFO;
- typedef struct _BG_JOB_PROGRESS {
- UINT64 BytesTotal;
- UINT64 BytesTransferred;
- ULONG FilesTotal;
- ULONG FilesTransferred;
- } BG_JOB_PROGRESS;
- typedef struct _BG_JOB_TIMES {
- FILETIME CreationTime;
- FILETIME ModificationTime;
- FILETIME TransferCompletionTime;
- } BG_JOB_TIMES;
- typedef enum {
- BG_JOB_PRIORITY_FOREGROUND = 0,
- BG_JOB_PRIORITY_HIGH = 1,
- BG_JOB_PRIORITY_NORMAL = 2,
- BG_JOB_PRIORITY_LOW = 3
- } BG_JOB_PRIORITY;
- typedef enum {
- BG_JOB_STATE_QUEUED = 0,
- BG_JOB_STATE_CONNECTING = 1,
- BG_JOB_STATE_TRANSFERRING = 2,
- BG_JOB_STATE_SUSPENDED = 3,
- BG_JOB_STATE_ERROR = 4,
- BG_JOB_STATE_TRANSIENT_ERROR = 5,
- BG_JOB_STATE_TRANSFERRED = 6,
- BG_JOB_STATE_ACKNOWLEDGED = 7,
- BG_JOB_STATE_CANCELLED = 8
- } BG_JOB_STATE;
- typedef enum {
- BG_JOB_TYPE_DOWNLOAD = 0,
- BG_JOB_TYPE_UPLOAD = 1,
- BG_JOB_TYPE_UPLOAD_REPLY = 2
- } BG_JOB_TYPE;
- typedef enum {
- BG_JOB_PROXY_USAGE_PRECONFIG,
- BG_JOB_PROXY_USAGE_NO_PROXY,
- BG_JOB_PROXY_USAGE_OVERRIDE,
- BG_JOB_PROXY_USAGE_AUTODETECT
- } BG_JOB_PROXY_USAGE;
- HRESULT AddFileSet(
- [in] ULONG cFileCount,
- [in,size_is(cFileCount)] BG_FILE_INFO *pFileSet
- );
- HRESULT AddFile(
- [in] LPCWSTR RemoteUrl,
- [in] LPCWSTR LocalName
- );
- HRESULT EnumFiles(
- [out] IEnumBackgroundCopyFiles **pEnum
- );
- HRESULT Suspend();
- HRESULT Resume();
- HRESULT Cancel();
- HRESULT Complete();
- HRESULT GetId(
- [out] GUID *pVal
- );
- HRESULT GetType(
- [out] BG_JOB_TYPE *pVal
- );
- HRESULT GetProgress(
- [out] BG_JOB_PROGRESS *pVal
- );
- HRESULT GetTimes(
- [out] BG_JOB_TIMES *pVal
- );
- HRESULT GetState(
- [out] BG_JOB_STATE *pVal
- );
- HRESULT GetError(
- [out] IBackgroundCopyError **ppError
- );
- HRESULT GetOwner(
- [out] LPWSTR *pVal
- );
- HRESULT SetDisplayName(
- [in] LPCWSTR Val
- );
- HRESULT GetDisplayName(
- [out] LPWSTR *pVal
- );
- HRESULT SetDescription(
- [in] LPCWSTR Val
- );
- HRESULT GetDescription(
- [out] LPWSTR *pVal
- );
- HRESULT SetPriority(
- [in] BG_JOB_PRIORITY Val
- );
- HRESULT GetPriority(
- [out] BG_JOB_PRIORITY *pVal
- );
- HRESULT SetNotifyFlags(
- [in] ULONG Val
- );
- HRESULT GetNotifyFlags(
- [out] ULONG *pVal
- );
- HRESULT SetNotifyInterface(
- [in] IUnknown *Val
- );
- HRESULT GetNotifyInterface(
- [out] IUnknown ** pVal
- );
- HRESULT SetMinimumRetryDelay(
- [in] ULONG Seconds
- );
- HRESULT GetMinimumRetryDelay(
- [out] ULONG *Seconds
- );
- HRESULT SetNoProgressTimeout(
- [in] ULONG Seconds
- );
- HRESULT GetNoProgressTimeout(
- [out] ULONG *Seconds
- );
- HRESULT GetErrorCount(
- [out] ULONG *Errors
- );
- HRESULT SetProxySettings(
- [in] BG_JOB_PROXY_USAGE ProxyUsage,
- [in,string,unique] const WCHAR *ProxyList,
- [in,string,unique] const WCHAR *ProxyBypassList
- );
- HRESULT GetProxySettings(
- [out] BG_JOB_PROXY_USAGE *pProxyUsage,
- [out] LPWSTR *pProxyList,
- [out] LPWSTR *pProxyBypassList
- );
- HRESULT TakeOwnership();
- }
- [
- uuid(1af4f612-3b71-466f-8f58-7b6f73ac57ad),
- odl
- ]
- interface IEnumBackgroundCopyJobs : IUnknown
- {
- HRESULT Next(
- [in] ULONG celt,
- [out,size_is(BG_ENUM_SIZEIS(celt)),length_is(BG_ENUM_LENGTHIS(celt,pceltFetched))] IBackgroundCopyJob **rgelt,
- [in,out,unique] ULONG *pceltFetched
- );
- HRESULT Skip(
- [in] ULONG celt
- );
- HRESULT Reset();
- HRESULT Clone(
- [out] IEnumBackgroundCopyJobs **ppenum
- );
- HRESULT GetCount(
- [out] ULONG *puCount
- );
- }
- [
- uuid(97ea99c7-0186-4ad4-8df9-c5b4e0ed6b22),
- odl
- ]
- interface IBackgroundCopyCallback : IUnknown
- {
- HRESULT JobTransferred(
- [in] IBackgroundCopyJob *pJob
- );
- HRESULT JobError(
- [in] IBackgroundCopyJob *pJob,
- [in] IBackgroundCopyError *pError
- );
- HRESULT JobModification(
- [in] IBackgroundCopyJob *pJob,
- [in] DWORD dwReserved
- );
- }
- [
- uuid(5ce34c0d-0dc9-4c1f-897c-daa1b78cee7c),
- odl
- ]
- interface IBackgroundCopyManager : IUnknown
- {
- cpp_quote("#define BG_JOB_ENUM_ALL_USERS 0x0001")
- HRESULT CreateJob(
- [in] LPCWSTR DisplayName,
- [in] BG_JOB_TYPE Type,
- [out] GUID *pJobId,
- [out] IBackgroundCopyJob **ppJob
- );
- HRESULT GetJob(
- [in] REFGUID jobID,
- [out] IBackgroundCopyJob **ppJob
- );
- HRESULT EnumJobs(
- [in] DWORD dwFlags,
- [out] IEnumBackgroundCopyJobs **ppEnum
- );
- HRESULT GetErrorDescription(
- [in] HRESULT hResult,
- [in] DWORD LanguageId,
- [out] LPWSTR *pErrorDescription);
- }
- [
- uuid(1deeb74f-7915-4560-b558-918c83f176a6),
- version(1.0)
- ]
- library BackgroundCopyManager
- {
- [
- uuid(4991d34b-80a1-4291-83b6-3328366b9097),
- ]
- coclass BackgroundCopyManager
- {
- [default] interface IBackgroundCopyManager;
- };
- interface IBackgroundCopyCallback;
- }
- cpp_quote("#include \"bits1_5.h\"")
|