/*
 * 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
 */

#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 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
