/*
 * Top level resource file for OLE32
 *
 * Copyright 2000 Huw D M Davies for CodeWeavers
 *
 * 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"
#include "winbase.h"
#include "winuser.h"
#include "winnls.h"

#include "olestd.h"

#define WINE_FILENAME_STR "ole32.dll"
#define WINE_EXTRAVALUES VALUE "OLESelfRegister",""

#include "wine/wine_common_ver.rc"

/*
 * 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.
 */
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL

/* @makedep: nodrop.cur */
CURSOR_NODROP CURSOR nodrop.cur

/* @makedep: drag_move.cur */
CURSOR_MOVE CURSOR drag_move.cur

/* @makedep: drag_copy.cur */
CURSOR_COPY CURSOR drag_copy.cur

/* @makedep: drag_link.cur */
CURSOR_LINK CURSOR drag_link.cur
