<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<errors>
  <framework name="Common" id="CommonErrors">
    <category name="Success results">
      <error value="0x00000000" const="WCL_E_SUCCESS">The operation was completed successfully.</error>
    </category>
    
    <category name="Common errors">
      <error value="0x00000001" const="WCL_E_INVALID_ARGUMENT">One or more arguments passed to the method/function are invalid.</error>
      <error value="0x00000002" const="WCL_E_OUT_OF_MEMORY">Out of system memory.</error>
      <error value="0x00000003" const="WCL_E_OUT_OF_RESOURCES">Out of system resources.</error>
      <error value="0x00000004" const="WCL_E_NOT_IMPLEMENTED">The method is not implemented yet.</error>
    </category>
    
    <category name="WinRT sub-system errors">
      <error value="0x00001000" const="WCL_E_WINRT_CORE_DLL_NOT_FOUND">The WinRT core DLL was not found.</error>
      <error value="0x00001001" const="WCL_E_WINRT_STRING_DLL_NOT_FOUND">The WinRT string DLL was not found.</error>
      <error value="0x00001002" const="WCL_E_WINRT_INIT_FAILED">WinRT initialization failed.</error>
      <error value="0x00001003" const="WCL_E_WINRT_CREATE_STRING_FAILED">Failed to create string.</error>
      <error value="0x00001004" const="WCL_E_WINRT_ACTIVATE_INSTANCE_FAILED">Failed to activate required class instance.</error>
      <error value="0x00001005" const="WCL_E_WINRT_CREATE_INTERFACE_FAILED">Failed to create required class interface.</error>
    </category>
    
    <category name="Message receiver errors">
      <error value="0x00002000" const="WCL_E_MR_CLOSED">The message receiver has been closed or isn't open.</error>
      <error value="0x00002001" const="WCL_E_MR_OPENED">The message receiver has already been opened.</error>
      <error value="0x00002002" const="WCL_E_MR_NOT_OPENED">The message receiver is not open.</error>
      <error value="0x00002003" const="WCL_E_MR_CREATE_SYNC_OBJ_FAILED">The message receiver failed to create a thread synchronization object.</error>
      <error value="0x00002004" const="WCL_E_MR_SYNC_OBJ_NOT_CREATED">Thread synchronization object was not created.</error>
      <error value="0x00002005" const="WCL_E_MR_SYNCHRONIZE_FAILED">The message receiver failed to synchronize threads and notify the main thread of new messages.</error>
      <error value="0x00002006" const="WCL_E_MR_REGISTER_SYNC_OBJ_FAILED">The message receiver failed to register for thread synchronization.</error>
      <error value="0x00002007" const="WCL_E_MR_INVALID_THREAD">The method was called from an invalid thread.</error>
    </category>
    
    <category name="Message broadcaster errors">
      <error value="0x00003000" const="WCL_E_MB_NOT_CREATED">Message broadcaster not initialized.</error>
      <error value="0x00003001" const="WCL_E_MB_RECEIVER_ALREADY_SUBSCRIBED">Message receiver is already subscribed.</error>
      <error value="0x00003002" const="WCL_E_MB_RECEIVER_NOT_SUBSCRIBED">Message receiver is not subscribed.</error>
      <error value="0x00003003" const="WCL_E_MB_RECEIVER_NOT_FOUND">Message receiver with the specified ID was not found.</error>
    </category>
    
    <category name="LAF manager errors">
      <error value="0x00004000" const="WCL_E_LAF_MANAGER_FEATURE_NOT_SUPPORTED">This platform does not support the LAF.</error>
      <error value="0x00004001" const="WCL_E_LAF_MANAGER_START_THREAD_FAILED">Failed to start LAF manager worker thread.</error>
      <error value="0x00004002" const="WCL_E_LAF_MANAGER_GET_LAF_LIST_FAILED">Failed to access LAF list.</error>
      <error value="0x00004003" const="WCL_E_LAF_NOT_FOUND">The specified LAF ID does not exist or could not be located.</error>
      <error value="0x00004004" const="WCL_E_LAF_OPEN_KEY_FAILED">Failed to access LAF key information.</error>
      <error value="0x00004005" const="WCL_E_LAF_KEY_NOT_FOUND">LAF key not found.</error>
      <error value="0x00004006" const="WCL_E_LAF_ACQUIRE_CONTEXT_FAILED">Failed to acquire encryption context.</error>
      <error value="0x00004007" const="WCL_E_LAF_CREATE_HASH_FAILED">Hash generation failed.</error>
      <error value="0x00004008" const="WCL_E_LAF_CRYPT_HASH_FAILED">Failed to encrypt the hash.</error>
      <error value="0x00004009" const="WCL_E_LAF_GET_CRYPTED_HASH_FAILED">Failed to retrieve encrypted hash.</error>
      <error value="0x0000400A" const="WCL_E_LAF_IDENTITY_NOT_FOUND">The application file does not contain the required identity resource.</error>
      <error value="0x0000400B" const="WCL_E_LAF_IDENTITY_READ_FAILED">Unable to read identity information (corrupt or missing data).</error>
      <error value="0x0000400C" const="WCL_E_LAF_IDENTITY_INVALID">The identity data is malformed or incorrectly structured.</error>
      <error value="0x0000400D" const="WCL_E_LAF_IDENTITY_EMPTY">Empty identity.</error>
      <error value="0x0000400E" const="WCL_E_LAF_IDENTITY_INVALID_FORMAT">Invalid identity format.</error>
      <error value="0x0000400F" const="WCL_E_LAF_UNLOCK_REQUEST_FAILED">Limited access feature unlock request failed.</error>
      <error value="0x00004010" const="WCL_E_LAF_GET_REQUEST_STATUS_FAILED">Failed to retrieve unlock status.</error>
      <error value="0x00004011" const="WCL_E_LAF_LOCKED">LAF is locked.</error>
      <error value="0x00004012" const="WCL_E_LAF_UNAVAILABLE">The LAF is unavailable because it was not found.</error>
      <error value="0x00004013" const="WCL_E_LAF_STATUS_UNKNOWN">Unknown or undefined LAF status.</error>
    </category>
  </framework>
  
  <framework name="Communication" id="CommunicationErrors">
    <category name="Connection errors">
      <error value="0x00010000" const="WCL_E_CONNECTION_CONNECTED">A connection is connected.</error>
      <error value="0x00010001" const="WCL_E_CONNECTION_NOT_CONNECTED">A connection is not connected.</error>
      <error value="0x00010002" const="WCL_E_CONNECTION_DISCONNECTED">A connection is disconnected.</error>
      <error value="0x00010003" const="WCL_E_CONNECTION_CLOSED">A server connection is closed.</error>
      <error value="0x00010004" const="WCL_E_CONNECTION_LISTENING">A server connection is listening.</error>
      <error value="0x00010005" const="WCL_E_CONNECTION_CREATE_CONNECT_EVENT_FAILED">Create connect processing event failed.</error>
      <error value="0x00010006" const="WCL_E_CONNECTION_TERMINATED_BY_USER">The connection has been terminated by user.</error>
      <error value="0x00010007" const="WCL_E_CONNECTION_SYSTEM_SUSPENDING">A connection was closed (disconnected) because a system is about to enter a suspended state.</error>
      <error value="0x00010008" const="WCL_E_CONNECTION_UNABLE_CREATE_DISCONNECT_EVENT">Unable to create communication termination event.</error>
      <error value="0x00010009" const="WCL_E_CONNECTION_UNABLE_START_COMMUNICATION">Unable to create communication thread.</error>
      <error value="0x0001000A" const="WCL_E_CONNECTION_CREATE_INIT_EVENT_FAILED">Create a communication thread initialization event failed.</error>
      <error value="0x0001000B" const="WCL_E_CONNECTION_SERVER_CLOSED">A client connection was disconnected because the server was closed.</error>
      <error value="0x0001000C" const="WCL_E_CONNECTION_NOT_CREATED">A server client connection object was not created because an accept message was not processed.</error>
      <error value="0x0001000D" const="WCL_E_CONNECTION_UNABLE_FIND_CLIENT_CLASS">A server was not able to find a specific client connection class.</error>
      <error value="0x0001000E" const="WCL_E_CONNECTION_ACCEPTING_CLIENT">A server connection can not be closed because it is accepting incoming client connection.</error>
      <error value="0x0001000F" const="WCL_E_CONNECTION_CREATE_TERMINATION_EVENT_FAILED">Create server termination event failed.</error>
      <error value="0x00010010" const="WCL_E_CONNECTION_DATA_WRITE_FAILED">Data write failed.</error>
    </category>
    
    <category name="OBEX errors">
      <error value="0x00011000" const="WCL_E_OBEX_NOT_CONNECTED">An OBEX client is not connected to an OBEX server.</error>
      <error value="0x00011001" const="WCL_E_OBEX_CONNECTED">An OBEX client is already connected to an OBEX server.</error>
      <error value="0x00011002" const="WCL_E_OBEX_OPERATION_IN_PROGRESS">An OBEX operation is in progress.</error>
      <error value="0x00011003" const="WCL_E_OBEX_CONTINUE">The server has received the request headers and the client should proceed to send the request body (in the case of a request for which a body needs to be sent).</error>
      <error value="0x00011004" const="WCL_E_OBEX_CREATED">The request has been fulfilled, resulting in the creation of a new resource.</error>
      <error value="0x00011005" const="WCL_E_OBEX_ACCEPTED">The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon, and may be disallowed when processing occurs.</error>
      <error value="0x00011006" const="WCL_E_OBEX_NON_AUTHORITATIVE">The server is a transforming proxy that received a WCL_E_SUCCESS from its origin, but is returning a modified version of the origin's response.</error>
      <error value="0x00011007" const="WCL_E_OBEX_NO_CONTENT">The server successfully processed the request and is not returning any content.</error>
      <error value="0x00011008" const="WCL_E_OBEX_RESET_CONTENT">The server successfully processed the request, but is not returning any content. Unlike a WCL_E_OBEX_NO_CONTENT error, this error requires that the requester reset the object.</error>
      <error value="0x00011009" const="WCL_E_OBEX_PARTIAL_CONTENT">The server is delivering only part of the resource due to a range header sent by the client. The range header is used by OBEX clients to enable resuming of interrupted downloads, or split a download into multiple simultaneous streams.</error>
      <error value="0x0001100A" const="WCL_E_OBEX_MULTIPLE_CHOICES">Indicates multiple options for the resource from which the client may choose.</error>
      <error value="0x0001100B" const="WCL_E_OBEX_MOVED_PERMANENTLY">This and all future requests should be directed to the given URI.</error>
      <error value="0x0001100C" const="WCL_E_OBEX_MOVED_TEMPORARY">The response to the request can be found under another URI using the GET method.</error>
      <error value="0x0001100D" const="WCL_E_OBEX_SEE_OTHER">The response to the request can be found under another URI using the GET method.</error>
      <error value="0x0001100E" const="WCL_E_OBEX_NOT_MODIFIED">Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match. In such case, there is no need to retransmit the resource since the client still has a previously-downloaded copy.</error>
      <error value="0x0001100F" const="WCL_E_OBEX_USE_PROXY">The requested resource is available only through a proxy, the address for which is provided in the response.</error>
      <error value="0x00011010" const="WCL_E_OBEX_BAD_REQUEST">The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing).</error>
      <error value="0x00011011" const="WCL_E_OBEX_UNAUTHORIZED">Similar to WCL_E_OBEX_FORBIDDEN, but specifically for use when authentication is required and has failed or has not yet been provided. The response must include a WWW-Authenticate header field containing a challenge applicable to the requested resource.</error>
      <error value="0x00011012" const="WCL_E_OBEX_PAYMENT_REQUIRED">Reserved for future use.</error>
      <error value="0x00011013" const="WCL_E_OBEX_FORBIDDEN">The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account of some sort.</error>
      <error value="0x00011014" const="WCL_E_OBEX_NOT_FOUND">The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible.</error>
      <error value="0x00011015" const="WCL_E_OBEX_METHOD_NOT_ALLOWED">A request method is not supported for the requested resource.</error>
      <error value="0x00011016" const="WCL_E_OBEX_NOT_ACCEPTABLE">The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.</error>
      <error value="0x00011017" const="WCL_E_OBEX_PROXY_AUTH_REQUIRED">The client must first authenticate itself with the proxy.</error>
      <error value="0x00011018" const="WCL_E_OBEX_REQUEST_TIMEOUT">The server timed out waiting for the request.</error>
      <error value="0x00011019" const="WCL_E_OBEX_CONFLICT">Indicates that the request could not be processed because of conflict in the request, such as an edit conflict between multiple simultaneous updates.</error>
      <error value="0x0001101A" const="WCL_E_OBEX_GONE">Indicates that the resource requested is no longer available and will not be available again.</error>
      <error value="0x0001101B" const="WCL_E_OBEX_LENGTH_REQUIRED">The request did not specify the length of its content, which is required by the requested resource.</error>
      <error value="0x0001101C" const="WCL_E_OBEX_PRECONDITION_FAILED">The server does not meet one of the preconditions that the requester put on the request.</error>
      <error value="0x0001101D" const="WCL_E_OBEX_REQUEST_TOO_LARGE">The request is larger than the server is willing or able to process.</error>
      <error value="0x0001101E" const="WCL_E_OBEX_URL_TOO_LARGE">The URI provided was too long for the server to process.</error>
      <error value="0x0001101F" const="WCL_E_OBEX_UNSUPPORTED_MEDIA_TYPE">The request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format.</error>
      <error value="0x00011020" const="WCL_E_OBEX_INTERNAL">A generic error, given when an unexpected condition was encountered and no more specific message is suitable.</error>
      <error value="0x00011021" const="WCL_E_OBEX_NOT_IMPLEMENTED">The server either does not recognize the request method, or it lacks the ability to fulfill the request.</error>
      <error value="0x00011022" const="WCL_E_OBEX_BAD_GATEWAY">The server was acting as a gateway or proxy and received an invalid response from the upstream server.</error>
      <error value="0x00011023" const="WCL_E_OBEX_SERVICE_UNAVAILABLE">The server is currently unavailable (because it is overloaded or down for maintenance). Generally, this is a temporary state. Also this error indicates that wrong Connect ID or Target used.</error>
      <error value="0x00011024" const="WCL_E_OBEX_GATEWAY_TIMEOUT">The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.</error>
      <error value="0x00011025" const="WCL_E_OBEX_HTTP_VERSION_NOT_SUPPORTED">The server does not support the HTTP protocol version used in the request.</error>
      <error value="0x00011026" const="WCL_E_OBEX_DATABASE_FULL">Indicates that the client requests that something be placed into a database but the database is full (cannot take more data).</error>
      <error value="0x00011027" const="WCL_E_OBEX_DATABASE_LOCKED">Returned when the client wishes to access a database, database table, or database record that has been locked.</error>
      <error value="0x00011028" const="WCL_E_OBEX_UNEXPECTED">Unexpected or unknown OBEX result code.</error>
      <error value="0x00011029" const="WCL_E_OBEX_OPERATION_TERMINATED_BY_USER">The current operation has been terminated by a user.</error>
      <error value="0x0001102A" const="WCL_E_OBEX_OPERATION_TERMINATED_BY_DISCONNECT">The current operation has been terminated because a remote device is disconnected.</error>
      <error value="0x0001102B" const="WCL_E_OBEX_DISCONNECTED">The error code indicates that the OBEX session has been disconnected by a remote side.</error>
      <error value="0x0001102C" const="WCL_E_OBEX_INVALID_OPERATION_SEQUENCE">The operation can not be executed at this time. This error appears if, for example, an application calls Terminate for Connect, Disconnect or SetPath operations.</error>
      <error value="0x0001102D" const="WCL_E_OBEX_COM_INIT_FAILED">COM initialization failed.</error>
      <error value="0x0001102E" const="WCL_E_OBEX_XML_NOT_AVAILABLE">XML parser is not available.</error>
      <error value="0x0001102F" const="WCL_E_OBEX_INVALID_DIR_LIST">Unable to parse directory listing.</error>
      <error value="0x00011030" const="WCL_E_OBEX_INVALID_DIR_FORMAT">Wrong directory listing format.</error>
      <error value="0x00011031" const="WCL_E_OBEX_INVALID_STATE">Invalid data processor state.</error>
    </category>
  </framework>
  
  <framework name="Serial Framework" id="SerialFrameworkErrors">
    <category name="Serial Framework errors">
      <error value="0x00020000" const="WCL_E_SERIAL_MONITORING_RUNNING">Serial devices monitoring is running.</error>
      <error value="0x00020001" const="WCL_E_SERIAL_MONITORING_NOT_RUNNING">Serial devices monitoring is not running.</error>
      <error value="0x00020002" const="WCL_E_SERIAL_DEVICE_CLASS_NOT_FOUND">A device class was not found.</error>
      <error value="0x00020003" const="WCL_E_SERIAL_ALLOCATE_MASTER_PORT_FAILED">Unable to allocate the device enumeration port.</error>
      <error value="0x00020004" const="WCL_E_SERIAL_MASTER_PORT_NOT_ALLOCATED">The device's enuemration port was not allocated.</error>
      <error value="0x00020005" const="WCL_E_SERIAL_CREATE_DEVICES_FILTER_FAILED">Unable to create a device's enumeration filter.</error>
      <error value="0x00020006" const="WCL_E_SERIAL_IO_SERVICES_NOT_FOUND">Unable to enumerate devices with given class.</error>
      <error value="0x00020007" const="WCL_E_SERIAL_FEATURE_NOT_SUPPORTED">The requested feature is not supported on this platform.</error>
      <error value="0x00020008" const="WCL_E_SERIAL_UNABLE_GET_DEVICE_NODE">Unable to locate specified device's node.</error>
      <error value="0x00020009" const="WCL_E_SERIAL_DEVICE_SWITCH_FAILED">Unable to switch (disable or enable) the specified USB devices.</error>
      <error value="0x0002000A" const="WCL_E_SERIAL_DEVICE_REMOVED">A serial device has been removed.</error>
      <error value="0x0002000B" const="WCL_E_SERIAL_CLIENT_NOT_CONNECTED">A serial client is not connected.</error>
      <error value="0x0002000C" const="WCL_E_SERIAL_CLIENT_CONNECTED">A serial client is already connected.</error>
      <error value="0x0002000D" const="WCL_E_SERIAL_CLIENT_BUSY">A serial client connection is busy by connection or disconnecting.</error>
      <error value="0x0002000E" const="WCL_E_SERIAL_CONNECTION_TERMINATE">A connection to a serial device was terminated by unknown reason.</error>
      <error value="0x0002000F" const="WCL_E_SERIAL_READ_ERROR">Reading from COM port failed.</error>
      <error value="0x00020010" const="WCL_E_SERIAL_CREATE_OVERLAPPED_EVENT_FAILED">Create overlapped operation event failed.</error>
      <error value="0x00020011" const="WCL_E_SERIAL_CREATE_RESTART_EVENT_FAILED">Create communication restart event failed.</error>
      <error value="0x00020012" const="WCL_E_SERIAL_OPEN_PORT_FAILED">Open the specified serial port failed.</error>
      <error value="0x00020013" const="WCL_E_SERIAL_GET_COMM_CONFIGURATION_FAILED">Read COM port configuration failed.</error>
      <error value="0x00020014" const="WCL_E_SERIAL_SET_COMM_CONFIGURATION_FAILED">Write COM port configuration failed.</error>
      <error value="0x00020015" const="WCL_E_SERIAL_GET_COMM_TIMEOUTS_FAILED">Read COM port timeouts failed.</error>
      <error value="0x00020016" const="WCL_E_SERIAL_SET_EVENTS_MASK_FAILED">Set COM potr events mask failed.</error>
      <error value="0x00020017" const="WCL_E_SERIAL_GET_READ_BUFFER_SIZE_FAILED">Get read buffer size failed.</error>
      <error value="0x00020018" const="WCL_E_SERIAL_GET_WRITE_BUFFER_SIZE_FAILED">Get write buffer size failed.</error>
      <error value="0x00020019" const="WCL_E_SERIAL_SET_READ_BUFFER_SIZE_FILED">Set read buffer size failed.</error>
      <error value="0x0002001A" const="WCL_E_SERIAL_SET_WRITE_BUFFER_SIZE_FAILED">Set write buffer size failed.</error>
      <error value="0x0002001B" const="WCL_E_SERIAL_INIT_OVERLAPPED_OPERATION_FAILED">Overlapped IO operation initialization failed.</error>
      <error value="0x0002001C" const="WCL_E_SERIAL_WRITE_TIMEOUT">Timeout appeared during write operation. That does not mean real error. That just means that some bytes were sent but time out appeared before all bytes are sent. You can retry to send remaining bytes or terminate connection.</error>
      <error value="0x0002001D" const="WCL_E_SERIAL_WRITE_FAILED">Write data to the serial port was failed.</error>
      <error value="0x0002001E" const="WCL_E_SERIAL_DEVICE_WRITE_TIMEOUT">Write operation was timed out on wait. Probably device is disconnected or not available.</error>
      <error value="0x0002001F" const="WCL_E_SERIAL_GET_COMM_FEATURES_FAILED">COM features read failed.</error>
      <error value="0x00020020" const="WCL_E_SERIAL_SET_COMM_TIMEOUTS_FAILED">Write COM port timeouts failed.</error>
      <error value="0x00020021" const="WCL_E_SERIAL_CLEAR_COMM_BREAK_FAILED">The ClearCommBreak method failed.</error>
      <error value="0x00020022" const="WCL_E_SERIAL_ESCAPE_COMM_FUNCTION_FAILED">The EscapeCommFunction has been failed.</error>
      <error value="0x00020023" const="WCL_E_SERIAL_FLUSH_BUFFERS_FAILED">The FlushBuffers method failed.</error>
      <error value="0x00020024" const="WCL_E_SERIAL_GET_MODEM_STATUS_FAILED">The GetCommStatus method failed.</error>
      <error value="0x00020025" const="WCL_E_SERIAL_PURGE_COMM_FAILED">The PurgeComm method failed.</error>
      <error value="0x00020026" const="WCL_E_SERIAL_SET_COMM_BREAK_FAILED">The SetCommBreak method failed.</error>
      <error value="0x00020027" const="WCL_E_SERIAL_TRANSMIT_COMM_CHAR_FAILED">The TransmitCommChar method failed.</error>
    </category>
  </framework>
</errors>