#ifndef _WINBIO_ERR_H
#define _WINBIO_ERR_H

#if __POCC__ >= 500
#pragma once
#endif

/* Windows Biometric error code definitions */

#if (NTDDI_VERSION >= NTDDI_WIN7)

#define FACILITY_NONE  0x0
#define FACILITY_WINBIO  0x9

#define WINBIO_E_UNSUPPORTED_FACTOR  ((HRESULT)0x80098001L)
#define WINBIO_E_INVALID_UNIT  ((HRESULT)0x80098002L)
#define WINBIO_E_UNKNOWN_ID  ((HRESULT)0x80098003L)
#define WINBIO_E_CANCELED  ((HRESULT)0x80098004L)
#define WINBIO_E_NO_MATCH  ((HRESULT)0x80098005L)
#define WINBIO_E_CAPTURE_ABORTED  ((HRESULT)0x80098006L)
#define WINBIO_E_ENROLLMENT_IN_PROGRESS  ((HRESULT)0x80098007L)
#define WINBIO_E_BAD_CAPTURE  ((HRESULT)0x80098008L)
#define WINBIO_E_INVALID_CONTROL_CODE  ((HRESULT)0x80098009L)
#define WINBIO_E_DATA_COLLECTION_IN_PROGRESS ((HRESULT)0x8009800BL)
#define WINBIO_E_UNSUPPORTED_DATA_FORMAT ((HRESULT)0x8009800CL)
#define WINBIO_E_UNSUPPORTED_DATA_TYPE  ((HRESULT)0x8009800DL)
#define WINBIO_E_UNSUPPORTED_PURPOSE  ((HRESULT)0x8009800EL)
#define WINBIO_E_INVALID_DEVICE_STATE  ((HRESULT)0x8009800FL)
#define WINBIO_E_DEVICE_BUSY  ((HRESULT)0x80098010L)
#define WINBIO_E_DATABASE_CANT_CREATE  ((HRESULT)0x80098011L)
#define WINBIO_E_DATABASE_CANT_OPEN  ((HRESULT)0x80098012L)
#define WINBIO_E_DATABASE_CANT_CLOSE  ((HRESULT)0x80098013L)
#define WINBIO_E_DATABASE_CANT_ERASE  ((HRESULT)0x80098014L)
#define WINBIO_E_DATABASE_CANT_FIND  ((HRESULT)0x80098015L)
#define WINBIO_E_DATABASE_ALREADY_EXISTS ((HRESULT)0x80098016L)
#define WINBIO_E_DATABASE_FULL  ((HRESULT)0x80098018L)
#define WINBIO_E_DATABASE_LOCKED  ((HRESULT)0x80098019L)
#define WINBIO_E_DATABASE_CORRUPTED  ((HRESULT)0x8009801AL)
#define WINBIO_E_DATABASE_NO_SUCH_RECORD ((HRESULT)0x8009801BL)
#define WINBIO_E_DUPLICATE_ENROLLMENT  ((HRESULT)0x8009801CL)
#define WINBIO_E_DATABASE_READ_ERROR  ((HRESULT)0x8009801DL)
#define WINBIO_E_DATABASE_WRITE_ERROR  ((HRESULT)0x8009801EL)
#define WINBIO_E_DATABASE_NO_RESULTS  ((HRESULT)0x8009801FL)
#define WINBIO_E_DATABASE_NO_MORE_RECORDS ((HRESULT)0x80098020L)
#define WINBIO_E_DATABASE_EOF  ((HRESULT)0x80098021L)
#define WINBIO_E_DATABASE_BAD_INDEX_VECTOR ((HRESULT)0x80098022L)
#define WINBIO_E_INCORRECT_BSP  ((HRESULT)0x80098024L)
#define WINBIO_E_INCORRECT_SENSOR_POOL  ((HRESULT)0x80098025L)
#define WINBIO_E_NO_CAPTURE_DATA  ((HRESULT)0x80098026L)
#define WINBIO_E_INVALID_SENSOR_MODE  ((HRESULT)0x80098027L)
#define WINBIO_E_LOCK_VIOLATION  ((HRESULT)0x8009802AL)
#define WINBIO_E_DUPLICATE_TEMPLATE  ((HRESULT)0x8009802BL)
#define WINBIO_E_INVALID_OPERATION  ((HRESULT)0x8009802CL)
#define WINBIO_E_SESSION_BUSY  ((HRESULT)0x8009802DL)
#define WINBIO_E_CRED_PROV_DISABLED  ((HRESULT)0x80098030L)
#define WINBIO_E_CRED_PROV_NO_CREDENTIAL ((HRESULT)0x80098031L)
#define WINBIO_E_DISABLED  ((HRESULT)0x80098032L)
#define WINBIO_E_CONFIGURATION_FAILURE  ((HRESULT)0x80098033L)
#define WINBIO_E_SENSOR_UNAVAILABLE  ((HRESULT)0x80098034L)
#define WINBIO_E_SAS_ENABLED  ((HRESULT)0x80098035L)
#define WINBIO_E_DEVICE_FAILURE  ((HRESULT)0x80098036L)
#define WINBIO_E_FAST_USER_SWITCH_DISABLED ((HRESULT)0x80098037L)
#define WINBIO_E_NOT_ACTIVE_CONSOLE  ((HRESULT)0x80098038L)
#define WINBIO_E_EVENT_MONITOR_ACTIVE  ((HRESULT)0x80098039L)
#define WINBIO_E_INVALID_PROPERTY_TYPE  ((HRESULT)0x8009803AL)
#define WINBIO_E_INVALID_PROPERTY_ID  ((HRESULT)0x8009803BL)
#define WINBIO_E_UNSUPPORTED_PROPERTY  ((HRESULT)0x8009803CL)
#define WINBIO_E_ADAPTER_INTEGRITY_FAILURE ((HRESULT)0x8009803DL)
#define WINBIO_E_INCORRECT_SESSION_TYPE  ((HRESULT)0x8009803EL)
#define WINBIO_E_SESSION_HANDLE_CLOSED  ((HRESULT)0x8009803FL)
#define WINBIO_E_DEADLOCK_DETECTED  ((HRESULT)0x80098040L)
#define WINBIO_E_NO_PREBOOT_IDENTITY  ((HRESULT)0x80098041L)
#define WINBIO_E_MAX_ERROR_COUNT_EXCEEDED ((HRESULT)0x80098042L)
#define WINBIO_E_AUTO_LOGON_DISABLED  ((HRESULT)0x80098043L)

#endif /* NTDDI_VERSION >= NTDDI_WIN7 */

#if (NTDDI_VERSION >= NTDDI_WIN9)

#define WINBIO_E_INVALID_TICKET  ((HRESULT)0x80098044L)
#define WINBIO_E_TICKET_QUOTA_EXCEEDED  ((HRESULT)0x80098045L)
#define WINBIO_E_DATA_PROTECTION_FAILURE ((HRESULT)0x80098046L)
#define WINBIO_E_CRED_PROV_SECURITY_LOCKOUT ((HRESULT)0x80098047L)

#endif /* NTDDI_VERSION >= NTDDI_WIN9 */

#if (NTDDI_VERSION >= NTDDI_WIN7)

#define WINBIO_I_MORE_DATA  ((HRESULT)0x00090001L)

#ifndef WINBIO_REJECT_DETAILS_DEFINED
#define WINBIO_REJECT_DETAILS_DEFINED

#define WINBIO_FP_TOO_HIGH  ((WINBIO_REJECT_DETAIL)0x00000001L)
#define WINBIO_FP_TOO_LOW  ((WINBIO_REJECT_DETAIL)0x00000002L)
#define WINBIO_FP_TOO_LEFT  ((WINBIO_REJECT_DETAIL)0x00000003L)
#define WINBIO_FP_TOO_RIGHT  ((WINBIO_REJECT_DETAIL)0x00000004L)
#define WINBIO_FP_TOO_FAST  ((WINBIO_REJECT_DETAIL)0x00000005L)
#define WINBIO_FP_TOO_SLOW  ((WINBIO_REJECT_DETAIL)0x00000006L)
#define WINBIO_FP_POOR_QUALITY  ((WINBIO_REJECT_DETAIL)0x00000007L)
#define WINBIO_FP_TOO_SKEWED  ((WINBIO_REJECT_DETAIL)0x00000008L)
#define WINBIO_FP_TOO_SHORT  ((WINBIO_REJECT_DETAIL)0x00000009L)
#define WINBIO_FP_MERGE_FAILURE  ((WINBIO_REJECT_DETAIL)0x0000000AL)

#endif /* WINBIO_REJECT_DETAILS_DEFINED */

#endif /* NTDDI_VERSION >= NTDDI_WIN7 */

#endif /* _WINBIO_ERR_H */

