| /* | |
| * 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\"") |