/*
 * REG.EXE - Wine-compatible reg program.
 *
 * Copyright 2008 Andrew Riedi
 *
 * 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>

/* Translation IDs. */
#define STRING_USAGE            101
#define STRING_ADD_USAGE        102
#define STRING_DELETE_USAGE     103
#define STRING_QUERY_USAGE      104
#define STRING_SUCCESS          105
#define STRING_INVALID_KEY      106
#define STRING_INVALID_CMDLINE  107
#define STRING_NO_REMOTE        108
#define STRING_CANNOT_FIND      109
#define STRING_UNSUPPORTED_TYPE 110
#define STRING_MISSING_INTEGER  111
#define STRING_MISSING_HEXDATA  112
#define STRING_UNHANDLED_TYPE   113
#define STRING_OVERWRITE_VALUE  114
#define STRING_YESNO            115
#define STRING_YES              116
#define STRING_NO               117
#define STRING_CANCELLED        118
#define STRING_DEFAULT_VALUE    119
#define STRING_DELETE_VALUE     120
#define STRING_DELETE_VALUEALL  121
#define STRING_DELETE_SUBKEY    122
#define STRING_INVALID_STRING   123
#define STRING_VALUEALL_FAILED  124
#define STRING_GENERAL_FAILURE  125
#define STRING_MATCHES_FOUND    126
#define STRING_INVALID_SYNTAX   127
#define STRING_INVALID_OPTION   128
#define STRING_REG_HELP         129
#define STRING_FUNC_HELP        130
#define STRING_VALUE_NOT_SET    131
#define STRING_IMPORT_USAGE     132
#define STRING_FILE_NOT_FOUND   133
#define STRING_OPEN_KEY_FAILED  134
#define STRING_ESCAPE_SEQUENCE  135
