/*
 * OleView (resource.h)
 *
 * Copyright 2006 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>
#include <winuser.h>

#define IDS_APPNAME                1
#define IDS_APPTITLE               2
#define IDM_MENU                   3
#define IDB_TOOLBAR                4
#define IDA_OLEVIEW                5
#define IDS_TYPELIBTITLE           6

#define IDS_READY                  10
#define IDS_ABOUT                  20
#define IDS_ABOUTVER               21

#define IDS_OPEN                   30
#define IDS_OPEN_FILTER_TYPELIB    31
#define IDS_OPEN_FILTER_ALL        32

#define IDM_BIND                   100
#define IDM_TYPELIB                101
#define IDM_SYSCONF                102
#define IDM_REGEDIT                103
#define IDM_EXIT                   104
#define IDM_TYPEINFO               110
#define IDM_CREATEINST             111
#define IDM_CREATEINSTON           112
#define IDM_RELEASEINST            113
#define IDM_COPYCLSID              114
#define IDM_HTMLTAG                115
#define IDM_VIEW                   116
#define IDM_FLAG_INSERV            130
#define IDM_FLAG_INHANDL           131
#define IDM_FLAG_LOCSERV           132
#define IDM_FLAG_REMSERV           133
#define IDM_EXPERT                 120
#define IDM_HIDDEN                 121
#define IDM_TOOLBAR                122
#define IDM_STATUSBAR              123
#define IDM_REFRESH                124
#define IDM_ABOUT                  125

#define IDS_TREE_OC                200
#define IDS_TREE_GBCC              201
#define IDS_TREE_O1O               202
#define IDS_TREE_CLO               203
#define IDS_TREE_AO                204
#define IDS_TREE_AID               210
#define IDS_TREE_TL                220
#define IDS_TL_VER                 221
#define IDS_TREE_I                 230

#define IDS_TAB_REG                250
#define IDS_TAB_IMPL               251
#define IDS_TAB_ACTIV              252

#define IDS_CGCOFAIL               300
#define IDS_ERROR_UNKN             301

#define IDS_TRUE                   310
#define IDS_FALSE                  311
#define IDS_BYTES                  312

#define IDS_ERROR_LOADTYPELIB      400
#define IDS_INHERITINTERFACES      401

#define DLG_CREATEINSTON           1000
#define IDC_MACHINE                1001

#define DLG_SYSCONF                1010
#define IDC_ENABLEDCOM             1011
#define IDC_ENABLEREMOTE           1012

#define DLG_IPERSIST_IV            1020

#define DLG_DEFAULT_IV             1030
#define IDC_VIEWTYPEINFO           1031
#define IDC_LABEL                  1032
#define IDC_IDENTIFIER             1033

#define DLG_IPERSISTSTREAM_IV      1040
#define IDC_ISDIRTY                1041
#define IDC_GETSIZEMAX             1042
#define IDC_ISDIRTY_BUTTON         1043
#define IDC_GETSIZEMAX_BUTTON      1044

#define IDM_SAVEAS                 3001
#define IDM_CLOSE                  3002
#define IDM_GROUP                  3003
