/*
 * Standard return values that may be generated by BITS
 *
 * 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 __WINE_BITMSG_H__
#define __WINE_BITMSG_H__

#define BG_S_PARTIAL_COMPLETE                   0x00200017
#define BG_S_UNABLE_TO_DELETE_FILES             0x0020001A
#define BG_S_OVERRIDDEN_BY_POLICY               0x00200055

#define BG_E_HTTP_ERROR_400                     0x80190190
#define BG_E_HTTP_ERROR_401                     0x80190191
#define BG_E_HTTP_ERROR_404                     0x80190194
#define BG_E_HTTP_ERROR_407                     0x80190197
#define BG_E_HTTP_ERROR_414                     0x8019019E
#define BG_E_HTTP_ERROR_501                     0x801901F5
#define BG_E_HTTP_ERROR_503                     0x801901F7
#define BG_E_HTTP_ERROR_504                     0x801901F8
#define BG_E_HTTP_ERROR_505                     0x801901F9

#define BG_E_NOT_FOUND                          0x80200001
#define BG_E_INVALID_STATE                      0x80200002
#define BG_E_EMPTY                              0x80200003
#define BG_E_FILE_NOT_AVAILABLE                 0x80200004
#define BG_E_PROTOCOL_NOT_AVAILABLE             0x80200005
#define BG_E_DESTINATION_LOCKED                 0x8020000D
#define BG_E_VOLUME_CHANGED                     0x8020000E
#define BG_E_ERROR_INFORMATION_UNAVAILABLE      0x8020000F
#define BG_E_NETWORK_DISCONNECTED               0x80200010
#define BG_E_MISSING_FILE_SIZE                  0x80200011
#define BG_E_INSUFFICIENT_HTTP_SUPPORT          0x80200012
#define BG_E_INSUFFICIENT_RANGE_SUPPORT         0x80200013
#define BG_E_REMOTE_NOT_SUPPORTED               0x80200014
#define BG_E_NEW_OWNER_DIFF_MAPPING             0x80200015
#define BG_E_NEW_OWNER_NO_FILE_ACCESS           0x80200016
#define BG_E_PROXY_LIST_TOO_LARGE               0x80200018
#define BG_E_PROXY_BYPASS_LIST_TOO_LARGE        0x80200019
#define BG_E_TOO_MANY_FILES                     0x8020001C
#define BG_E_LOCAL_FILE_CHANGED                 0x8020001D
#define BG_E_TOO_LARGE                          0x80200020
#define BG_E_STRING_TOO_LONG                    0x80200021
#define BG_E_CLIENT_SERVER_PROTOCOL_MISMATCH    0x80200022
#define BG_E_SERVER_EXECUTE_ENABLED             0x80200023
#define BG_E_USERNAME_TOO_LARGE                 0x80200025
#define BG_E_PASSWORD_TOO_LARGE                 0x80200026
#define BG_E_INVALID_AUTH_TARGET                0x80200027
#define BG_E_INVALID_AUTH_SCHEME                0x80200028
#define BG_E_INVALID_RANGE                      0x8020002B
#define BG_E_OVERLAPPING_RANGES                 0x8020002C
#define BG_E_BLOCKED_BY_POLICY                  0x8020003E
#define BG_E_INVALID_PROXY_INFO                 0x8020003F
#define BG_E_INVALID_CREDENTIALS                0x80200040
#define BG_E_RECORD_DELETED                     0x80200042
#define BG_E_UPNP_ERROR                         0x80200045
#define BG_E_PEERCACHING_DISABLED               0x80200047
#define BG_E_BUSYCACHERECORD                    0x80200048
#define BG_E_TOO_MANY_JOBS_PER_USER             0x80200049
#define BG_E_TOO_MANY_JOBS_PER_MACHINE          0x80200050
#define BG_E_TOO_MANY_FILES_IN_JOB              0x80200051
#define BG_E_TOO_MANY_RANGES_IN_FILE            0x80200052
#define BG_E_VALIDATION_FAILED                  0x80200053
#define BG_E_MAXDOWNLOAD_TIMEOUT                0x80200054

#endif /* #ifndef __WINE_BITMSG_H__ */
