Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenbits.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
1.7.6.1
|