/*
 * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#include "windef.h"
#include "winuser.h"
#include "winnls.h"
#include "dlgs.h"

#define MDI_IDC_LISTBOX         100
#define MDI_IDS_MOREWINDOWS     13

/*
 * 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_bitmaps.rc"
#include "resources/user32_cursors.rc"
#include "resources/user32_icons.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_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_Sk.rc"
#include "resources/user32_Sv.rc"
#include "resources/user32_Wa.rc"
#include "resources/user32_Ja.rc"
#include "resources/user32_Zh.rc"

#include "resources/version.rc"
