ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

bits.idl
Go to the documentation of this file.
00001 /*
00002  * Background Intelligent Transfer Service (BITS) interface
00003  *
00004  * Copyright 2007 Google (Roy Shea)
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  *
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00019  *
00020  */
00021 
00022 #ifndef DO_NO_IMPORTS
00023 import "unknwn.idl";
00024 #endif
00025 
00026 cpp_quote("#include \"bitsmsg.h\"")
00027 cpp_quote("#define BG_SIZE_UNKNOWN (UINT64)(-1)")
00028 cpp_quote("#define BG_NOTIFY_JOB_TRANSFERRED 0x0001")
00029 cpp_quote("#define BG_NOTIFY_JOB_ERROR 0x0002")
00030 cpp_quote("#define BG_NOTIFY_DISABLE 0x0004")
00031 cpp_quote("#define BG_NOTIFY_JOB_MODIFICATION 0x0008")
00032 
00033 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
00034 cpp_quote("#undef EnumJobs")
00035 cpp_quote("#undef GetJob")
00036 cpp_quote("#endif")
00037 
00038 #define BG_ENUM_SIZEIS(maxcount) maxcount
00039 #define BG_ENUM_LENGTHIS(maxcount,lengthptr) lengthptr ? *lengthptr : maxcount
00040 
00041 [
00042     uuid(01b7bd23-fb88-4a77-8490-5891d3e4653a),
00043     odl
00044 ]
00045 interface IBackgroundCopyFile : IUnknown
00046 {
00047     typedef struct _BG_FILE_PROGRESS {
00048         UINT64 BytesTotal;
00049         UINT64 BytesTransferred;
00050         BOOL Completed;
00051     } BG_FILE_PROGRESS;
00052 
00053     HRESULT GetRemoteName(
00054             [out] LPWSTR *pVal
00055     );
00056 
00057     HRESULT GetLocalName(
00058             [out] LPWSTR *pVal
00059     );
00060 
00061     HRESULT GetProgress(
00062             [out] BG_FILE_PROGRESS *pVal
00063     );
00064 }
00065 
00066 
00067 [
00068     uuid(ca51e165-c365-424c-8d41-24aaa4ff3c40),
00069     odl
00070 ]
00071 interface IEnumBackgroundCopyFiles: IUnknown
00072 {
00073     HRESULT Next(
00074             [in] ULONG celt,
00075             [out,size_is(BG_ENUM_SIZEIS(celt)),length_is(BG_ENUM_LENGTHIS(celt,pceltFetched))] IBackgroundCopyFile **rgelt,
00076             [in,out,unique] ULONG *pceltFetched
00077     );
00078 
00079     HRESULT Skip(
00080             [in] ULONG celt
00081     );
00082 
00083     HRESULT Reset();
00084 
00085     HRESULT Clone(
00086             [out] IEnumBackgroundCopyFiles **ppenum
00087     );
00088 
00089     HRESULT GetCount(
00090             [out] ULONG *puCount
00091     );
00092 }
00093 
00094 
00095 [
00096     uuid(19c613a0-fcb8-4f28-81ae-897c3d078f81),
00097     odl
00098 ]
00099 interface IBackgroundCopyError : IUnknown
00100 {
00101     typedef enum {
00102         BG_ERROR_CONTEXT_NONE = 0,
00103         BG_ERROR_CONTEXT_UNKNOWN = 1,
00104         BG_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER = 2,
00105         BG_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION =3,
00106         BG_ERROR_CONTEXT_LOCAL_FILE = 4,
00107         BG_ERROR_CONTEXT_REMOTE_FILE = 5,
00108         BG_ERROR_CONTEXT_GENERAL_TRANSPORT = 6,
00109         BG_ERROR_CONTEXT_REMOTE_APPLICATION =7,
00110     } BG_ERROR_CONTEXT;
00111 
00112     HRESULT GetError(
00113             [out,ref] BG_ERROR_CONTEXT *pContext,
00114             [out,ref] HRESULT *pCode
00115     );
00116 
00117     HRESULT GetFile(
00118             [out] IBackgroundCopyFile **pVal
00119     );
00120 
00121     HRESULT GetErrorDescription(
00122             [in] DWORD LanguageId,
00123             [out,ref] LPWSTR *pErrorDescription
00124     );
00125 
00126     HRESULT GetErrorContextDescription(
00127             [in] DWORD LanguageId,
00128             [out,ref] LPWSTR *pContextDescription
00129     );
00130 
00131     HRESULT GetProtocol(
00132             [out,ref] LPWSTR *pProtocol
00133     );
00134 }
00135 
00136 
00137 
00138 [
00139     uuid(37668d37-507e-4160-9316-26306d150b12),
00140     odl
00141 ]
00142 interface IBackgroundCopyJob : IUnknown
00143 {
00144     typedef struct _BG_FILE_INFO {
00145         LPWSTR RemoteName;
00146         LPWSTR LocalName;
00147     } BG_FILE_INFO;
00148 
00149     typedef struct _BG_JOB_PROGRESS {
00150         UINT64 BytesTotal;
00151         UINT64 BytesTransferred;
00152         ULONG FilesTotal;
00153         ULONG FilesTransferred;
00154     } BG_JOB_PROGRESS;
00155 
00156     typedef struct _BG_JOB_TIMES {
00157         FILETIME CreationTime;
00158         FILETIME ModificationTime;
00159         FILETIME TransferCompletionTime;
00160     } BG_JOB_TIMES;
00161 
00162     typedef enum {
00163         BG_JOB_PRIORITY_FOREGROUND = 0,
00164         BG_JOB_PRIORITY_HIGH = 1,
00165         BG_JOB_PRIORITY_NORMAL = 2,
00166         BG_JOB_PRIORITY_LOW = 3
00167     } BG_JOB_PRIORITY;
00168 
00169     typedef enum {
00170         BG_JOB_STATE_QUEUED = 0,
00171         BG_JOB_STATE_CONNECTING = 1,
00172         BG_JOB_STATE_TRANSFERRING = 2,
00173         BG_JOB_STATE_SUSPENDED = 3,
00174         BG_JOB_STATE_ERROR = 4,
00175         BG_JOB_STATE_TRANSIENT_ERROR = 5,
00176         BG_JOB_STATE_TRANSFERRED = 6,
00177         BG_JOB_STATE_ACKNOWLEDGED = 7,
00178         BG_JOB_STATE_CANCELLED = 8
00179     } BG_JOB_STATE;
00180 
00181     typedef enum {
00182        BG_JOB_TYPE_DOWNLOAD = 0,
00183        BG_JOB_TYPE_UPLOAD = 1,
00184        BG_JOB_TYPE_UPLOAD_REPLY = 2
00185     } BG_JOB_TYPE;
00186 
00187     typedef enum {
00188         BG_JOB_PROXY_USAGE_PRECONFIG,
00189         BG_JOB_PROXY_USAGE_NO_PROXY,
00190         BG_JOB_PROXY_USAGE_OVERRIDE,
00191         BG_JOB_PROXY_USAGE_AUTODETECT
00192     } BG_JOB_PROXY_USAGE;
00193 
00194 
00195     HRESULT AddFileSet(
00196             [in] ULONG cFileCount,
00197             [in,size_is(cFileCount)] BG_FILE_INFO *pFileSet
00198     );
00199 
00200     HRESULT AddFile(
00201             [in] LPCWSTR RemoteUrl,
00202             [in] LPCWSTR LocalName
00203     );
00204 
00205     HRESULT EnumFiles(
00206             [out] IEnumBackgroundCopyFiles **pEnum
00207     );
00208 
00209     HRESULT Suspend();
00210 
00211     HRESULT Resume();
00212 
00213     HRESULT Cancel();
00214 
00215     HRESULT Complete();
00216 
00217     HRESULT GetId(
00218             [out] GUID *pVal
00219     );
00220 
00221     HRESULT GetType(
00222             [out] BG_JOB_TYPE *pVal
00223     );
00224 
00225     HRESULT GetProgress(
00226             [out] BG_JOB_PROGRESS *pVal
00227     );
00228 
00229     HRESULT GetTimes(
00230             [out] BG_JOB_TIMES *pVal
00231     );
00232 
00233     HRESULT GetState(
00234             [out] BG_JOB_STATE *pVal
00235     );
00236 
00237     HRESULT GetError(
00238             [out] IBackgroundCopyError **ppError
00239     );
00240 
00241     HRESULT GetOwner(
00242             [out] LPWSTR *pVal
00243     );
00244 
00245     HRESULT SetDisplayName(
00246             [in] LPCWSTR Val
00247     );
00248 
00249     HRESULT GetDisplayName(
00250             [out] LPWSTR *pVal
00251     );
00252 
00253     HRESULT SetDescription(
00254             [in] LPCWSTR Val
00255     );
00256 
00257     HRESULT GetDescription(
00258             [out] LPWSTR *pVal
00259     );
00260 
00261     HRESULT SetPriority(
00262             [in] BG_JOB_PRIORITY Val
00263     );
00264 
00265     HRESULT GetPriority(
00266             [out] BG_JOB_PRIORITY *pVal
00267     );
00268 
00269     HRESULT SetNotifyFlags(
00270             [in] ULONG Val
00271     );
00272 
00273     HRESULT GetNotifyFlags(
00274             [out] ULONG *pVal
00275     );
00276 
00277     HRESULT SetNotifyInterface(
00278             [in] IUnknown *Val
00279     );
00280 
00281     HRESULT GetNotifyInterface(
00282             [out] IUnknown ** pVal
00283     );
00284 
00285     HRESULT SetMinimumRetryDelay(
00286             [in] ULONG Seconds
00287     );
00288 
00289     HRESULT GetMinimumRetryDelay(
00290             [out] ULONG *Seconds
00291     );
00292 
00293     HRESULT SetNoProgressTimeout(
00294             [in] ULONG Seconds
00295     );
00296 
00297     HRESULT GetNoProgressTimeout(
00298             [out] ULONG *Seconds
00299     );
00300 
00301     HRESULT GetErrorCount(
00302             [out] ULONG *Errors
00303     );
00304 
00305     HRESULT SetProxySettings(
00306             [in] BG_JOB_PROXY_USAGE ProxyUsage,
00307             [in,string,unique] const WCHAR *ProxyList,
00308             [in,string,unique] const WCHAR *ProxyBypassList
00309     );
00310 
00311     HRESULT GetProxySettings(
00312             [out] BG_JOB_PROXY_USAGE *pProxyUsage,
00313             [out] LPWSTR *pProxyList,
00314             [out] LPWSTR *pProxyBypassList
00315     );
00316 
00317     HRESULT TakeOwnership();
00318 }
00319 
00320 [
00321     uuid(1af4f612-3b71-466f-8f58-7b6f73ac57ad),
00322     odl
00323 ]
00324 interface IEnumBackgroundCopyJobs : IUnknown
00325 {
00326     HRESULT Next(
00327             [in] ULONG celt,
00328             [out,size_is(BG_ENUM_SIZEIS(celt)),length_is(BG_ENUM_LENGTHIS(celt,pceltFetched))] IBackgroundCopyJob **rgelt,
00329             [in,out,unique] ULONG *pceltFetched
00330     );
00331 
00332     HRESULT Skip(
00333             [in] ULONG celt
00334     );
00335 
00336     HRESULT Reset();
00337 
00338     HRESULT Clone(
00339             [out] IEnumBackgroundCopyJobs **ppenum
00340     );
00341 
00342     HRESULT GetCount(
00343             [out] ULONG *puCount
00344     );
00345 }
00346 
00347 
00348 [
00349     uuid(97ea99c7-0186-4ad4-8df9-c5b4e0ed6b22),
00350     odl
00351 ]
00352 interface IBackgroundCopyCallback : IUnknown
00353 {
00354     HRESULT JobTransferred(
00355             [in] IBackgroundCopyJob *pJob
00356     );
00357 
00358     HRESULT JobError(
00359             [in] IBackgroundCopyJob *pJob,
00360             [in] IBackgroundCopyError *pError
00361     );
00362 
00363     HRESULT JobModification(
00364             [in] IBackgroundCopyJob *pJob,
00365             [in] DWORD dwReserved
00366     );
00367 }
00368 
00369 [
00370     uuid(5ce34c0d-0dc9-4c1f-897c-daa1b78cee7c),
00371     odl
00372 ]
00373 interface IBackgroundCopyManager : IUnknown
00374 {
00375     cpp_quote("#define BG_JOB_ENUM_ALL_USERS 0x0001")
00376 
00377     HRESULT CreateJob(
00378             [in] LPCWSTR DisplayName,
00379             [in] BG_JOB_TYPE Type,
00380             [out] GUID *pJobId,
00381             [out] IBackgroundCopyJob **ppJob
00382     );
00383 
00384     HRESULT GetJob(
00385             [in] REFGUID jobID,
00386             [out] IBackgroundCopyJob **ppJob
00387     );
00388 
00389     HRESULT EnumJobs(
00390             [in] DWORD dwFlags,
00391             [out] IEnumBackgroundCopyJobs **ppEnum
00392     );
00393     HRESULT GetErrorDescription(
00394             [in] HRESULT hResult,
00395             [in] DWORD LanguageId,
00396             [out] LPWSTR *pErrorDescription);
00397 }
00398 
00399 
00400 [
00401     uuid(1deeb74f-7915-4560-b558-918c83f176a6),
00402     version(1.0)
00403 ]
00404 library BackgroundCopyManager
00405 {
00406     [
00407         uuid(4991d34b-80a1-4291-83b6-3328366b9097),
00408     ]
00409     coclass BackgroundCopyManager
00410     {
00411         [default] interface IBackgroundCopyManager;
00412     };
00413 
00414     interface IBackgroundCopyCallback;
00415 }

Generated on Sat May 26 2012 04:29:49 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.