/*
 * Top level resource file for USER
 *
 * Copyright 1999 Bertho Stultiens
 *
 * 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
 */

#define OEMRESOURCE
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "winnls.h"
#include "dlgs.h"

#define MDI_IDC_LISTBOX         100
#define IDS_MDI_MOREWINDOWS     13
#define IDS_ERROR               2

/*
 * Everything that does not depend on language,
 * like textless bitmaps etc, go into the
 * neutral language. This will prevent them from
 * being duplicated for each language.
 */
#include "resources/user32_bin.rc"

/*
 * Everything specific to any language goes
 * in one of the specific files.
 * Note that you can and may override resources
 * which also have a neutral version. This is to
 * get localized bitmaps for example.
 */
#include "resources/user32_Bg.rc"
#include "resources/user32_Ca.rc"
#include "resources/user32_Cs.rc"
#include "resources/user32_Da.rc"
#include "resources/user32_De.rc"
#include "resources/user32_En.rc"
#include "resources/user32_Eo.rc"
#include "resources/user32_Es.rc"
#include "resources/user32_Fi.rc"
#include "resources/user32_Fr.rc"
#include "resources/user32_Hu.rc"
#include "resources/user32_It.rc"
#include "resources/user32_Ko.rc"
#include "resources/user32_Nl.rc"
#include "resources/user32_No.rc"
#include "resources/user32_Pl.rc"
#include "resources/user32_Pt.rc"
#include "resources/user32_Ru.rc"
#include "resources/user32_Si.rc"
#include "resources/user32_Sk.rc"
#include "resources/user32_Sv.rc"
#include "resources/user32_Tr.rc"
#include "resources/user32_Uk.rc"
#include "resources/user32_Wa.rc"
#include "resources/user32_Ja.rc"
#include "resources/user32_Zh.rc"

#include "resources/version.rc"
