/*
 * Copyright 2009 Piotr Caban
 *
 * 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
 */

#include <windef.h>

#define IDS_TO_PRIMITIVE                    0x0001
#define IDS_INVALID_CALL_ARG                0x0005
#define IDS_CREATE_OBJ_ERROR                0x01AD
#define IDS_NO_PROPERTY                     0x01B6
#define IDS_ARG_NOT_OPT                     0x01c1
#define IDS_SYNTAX_ERROR                    0x03EA
#define IDS_SEMICOLON                       0x03EC
#define IDS_LBRACKET                        0x03ED
#define IDS_RBRACKET                        0x03EE
#define IDS_UNTERMINATED_STR                0x03F7
#define IDS_NOT_FUNC                        0x138A
#define IDS_NOT_DATE                        0x138E
#define IDS_NOT_NUM                         0x1389
#define IDS_OBJECT_EXPECTED                 0x138F
#define IDS_ILLEGAL_ASSIGN                  0x1390
#define IDS_UNDEFINED                       0x1391
#define IDS_NOT_BOOL                        0x1392
#define IDS_JSCRIPT_EXPECTED                0x1396
#define IDS_REGEXP_SYNTAX_ERROR             0x1399
#define IDS_URI_INVALID_CHAR                0x13A0
#define IDS_INVALID_LENGTH                  0x13A5
#define IDS_ARRAY_EXPECTED                  0x13A7
