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