/*
 * OleView resources
 *
 * 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 "resource.h"

LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT

IDM_MENU MENU
{
    POPUP "&File"
    {
        MENUITEM "&Bind to file...",    IDM_BIND
        MENUITEM "&View TypeLib...",    IDM_TYPELIB
        MENUITEM SEPARATOR
        MENUITEM "&System Configuration",       IDM_SYSCONF
        MENUITEM "&Run the Registry Editor",    IDM_REGEDIT
        MENUITEM SEPARATOR
        MENUITEM "E&xit",    IDM_EXIT
    }
    POPUP "&Object"
    {
        POPUP "&CoCreateInstance Flag"
        {
            MENUITEM "&In-process server",   IDM_FLAG_INSERV,CHECKED
            MENUITEM "In-process &handler",  IDM_FLAG_INHANDL
            MENUITEM "&Local server",        IDM_FLAG_LOCSERV,CHECKED
            MENUITEM "&Remote server",       IDM_FLAG_REMSERV
        }
        MENUITEM SEPARATOR
        MENUITEM "View &Type information",    IDM_TYPEINFO, GRAYED
        MENUITEM SEPARATOR
        MENUITEM "Create &Instance",    IDM_CREATEINST, GRAYED
        MENUITEM "Create Instance &On...",    IDM_CREATEINSTON, GRAYED
        MENUITEM "&Release Instance",    IDM_RELEASEINST, GRAYED
        MENUITEM SEPARATOR
        MENUITEM "Copy C&LSID to clipboard",    IDM_COPYCLSID, GRAYED
        MENUITEM "Copy &HTML object Tag to clipboard", IDM_HTMLTAG, GRAYED
        MENUITEM SEPARATOR
        MENUITEM "&View",       IDM_VIEW, GRAYED
    }
    POPUP "&View"
    {
        MENUITEM "&Expert mode",    IDM_EXPERT,CHECKED
        MENUITEM SEPARATOR
        MENUITEM "&Hidden component categories",    IDM_HIDDEN, GRAYED
        MENUITEM SEPARATOR
        MENUITEM "&Toolbar",    IDM_TOOLBAR,CHECKED
        MENUITEM "&Status Bar",    IDM_STATUSBAR,CHECKED
        MENUITEM SEPARATOR
        MENUITEM "&Refresh\tF5",    IDM_REFRESH
    }
    POPUP "&Help"
    {
        MENUITEM "&About OleView",    IDM_ABOUT
    }
}

IDM_TYPELIB MENU
{
    POPUP "&File"
    {
        MENUITEM "&Save as...",    IDM_SAVEAS
        MENUITEM "&Close",  IDM_CLOSE
    }
    POPUP "&View"
    {
        MENUITEM "&Group by type kind", IDM_GROUP
        MENUITEM SEPARATOR
        MENUITEM "&Toolbar",    IDM_TOOLBAR
        MENUITEM "&Status Bar", IDM_STATUSBAR,CHECKED
    }
}

STRINGTABLE
{
    IDS_APPNAME            "OleView"
    IDS_APPTITLE           "OleView"
    IDS_READY              "Ready"
    IDS_ABOUT              "OleView - OLE/COM Object Viewer"
    IDS_ABOUTVER           "version 1.0"
    IDS_TYPELIBTITLE       "ITypeLib viewer"
    IDS_OPEN               "Open"
    IDS_OPEN_FILTER_TYPELIB "TypeLib files (*.tlb; *.olb; *.dll; *.ocx; *.exe)"
    IDS_OPEN_FILTER_ALL     "All files (*.*)"

    IDM_BIND,              "Bind to file via a File Moniker"
    IDM_TYPELIB,           "Open a TypeLib file and view the contents"
    IDM_SYSCONF,           "Change machine wide Distributed COM settings"
    IDM_REGEDIT,           "Run the Wine registry editor"
    IDM_EXIT,              "Quit the application. Prompts to save changes"
    IDM_CREATEINST,        "Create an instance of the selected object"
    IDM_CREATEINSTON,      "Create an instance of the selected object on a specific machine"
    IDM_RELEASEINST,       "Release the currently selected object instance"
    IDM_COPYCLSID,         "Copy the GUID of the currently selected item to the clipboard"
    IDM_VIEW,              "Display the viewer for the selected item"
    IDM_FLAG_INSERV,       "Ask for an in-process server when calling CoGetClassObject"
    IDM_FLAG_INHANDL,      "Ask for an in-process handler when calling CoGetClassObject"
    IDM_FLAG_LOCSERV,      "Ask for a local server when calling CoGetClassObject"
    IDM_FLAG_REMSERV,      "Ask for a remote server when calling CoGetClassObject"
    IDM_EXPERT,            "Toggle between expert and novice display mode"
    IDM_HIDDEN,            "Toggle the display of component categories that are not meant to be visible"
    IDM_TOOLBAR,           "Show or hide the toolbar"
    IDM_STATUSBAR,         "Show or hide the status bar"
    IDM_REFRESH,           "Refresh all lists"
    IDM_ABOUT,             "Display program information, version number and copyright"

    IDM_SAVEAS,            "Save as an .IDL or .H file"
    IDM_CLOSE,             "Close window"
    IDM_GROUP,             "Group typeinfos by kind"

    IDS_TREE_OC,           "ObjectClasses"
    IDS_TREE_GBCC,         "Grouped by Component Category"
    IDS_TREE_O1O,          "OLE 1.0 Objects"
    IDS_TREE_CLO,          "COM Library Objects"
    IDS_TREE_AO,           "All Objects"
    IDS_TREE_AID,          "Application IDs"
    IDS_TREE_TL,           "Type Libraries"
    IDS_TL_VER,            "ver."
    IDS_TREE_I,            "Interfaces"

    IDS_TAB_REG,           "Registry"
    IDS_TAB_IMPL,          "Implementation"
    IDS_TAB_ACTIV,         "Activation"

    IDS_CGCOFAIL,          "CoGetClassObject failed."
    IDS_ERROR_UNKN,        "Unknown error"
    IDS_TRUE,              "True"
    IDS_FALSE,             "False"
    IDS_BYTES,             "bytes"

    IDS_ERROR_LOADTYPELIB, "LoadTypeLib( %1 ) failed ($%2!x!)"
    IDS_INHERITINTERFACES, "Inherited Interfaces"
}

DLG_CREATEINSTON DIALOG 0, 0, 250, 41
STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_CAPTION | WS_SYSMENU
CAPTION "Connect to another machine"
FONT 8, "MS Shell Dlg"
{
    LTEXT   "&Machine name:", -1, 5, 6, 190, 8
    EDITTEXT    IDC_MACHINE, 5, 16, 190, 12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
    DEFPUSHBUTTON   "OK", IDOK, 200, 5, 45, 14
    PUSHBUTTON  "Cancel", IDCANCEL, 200, 22, 45, 14
}

DLG_SYSCONF DIALOG 0, 0, 210, 100
STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_CAPTION | WS_SYSMENU
CAPTION "System Configuration"
FONT 8, "MS Shell Dlg"
{
    LTEXT   "System Settings", -1, 5, 6, 190, 8
    CHECKBOX    "&Enable Distributed COM", IDC_ENABLEDCOM, 5, 20, 190, 10, WS_TABSTOP | WS_GROUP | BS_AUTOCHECKBOX
    CHECKBOX    "Enable &Remote Connections (Win95 only)", IDC_ENABLEREMOTE, 5, 35, 190, 10, WS_TABSTOP | WS_GROUP | BS_AUTOCHECKBOX
    LTEXT   "These settings change only registry values.\nThey have no effect on Wine performance.", -1, 5, 50, 200, 40
    DEFPUSHBUTTON   "OK", IDOK, 110, 80, 45, 14
    PUSHBUTTON  "Cancel", IDCANCEL, 160, 80, 45, 14
}

DLG_DEFAULT_IV DIALOG 0, 0, 280, 50
STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_CAPTION | WS_SYSMENU
CAPTION "Default Interface Viewer"
FONT 8, "MS Shell Dlg"
{
    LTEXT   "Interface", -1, 5, 6, 50, 8
    LTEXT   "", IDC_LABEL, 60, 6, 145, 8
    LTEXT   "IID:", -1, 5, 16, 50, 8
    LTEXT   "", IDC_IDENTIFIER, 60, 16, 165, 8
    DEFPUSHBUTTON   "&Close", IDCANCEL, 230, 6, 45, 14
    PUSHBUTTON  "&View Type Info", IDC_VIEWTYPEINFO, 6, 31, 120, 14, WS_DISABLED
}

DLG_IPERSIST_IV DIALOG 0, 0, 280, 29
STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_CAPTION | WS_SYSMENU
CAPTION "IPersist Interface Viewer"
FONT 8, "MS Shell Dlg"
{
    LTEXT   "Class Name:", -1, 5, 6, 50, 8
    LTEXT   "", IDC_LABEL, 60, 6, 145, 8
    LTEXT   "CLSID:", -1, 5, 16, 50, 8
    LTEXT   "", IDC_IDENTIFIER, 60, 16, 165, 8
    DEFPUSHBUTTON   "&Close", IDCANCEL, 230, 6, 45, 14
}

DLG_IPERSISTSTREAM_IV DIALOG 0, 0, 280, 68
STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_CAPTION | WS_SYSMENU
CAPTION "IPersistStream Interface Viewer"
FONT 8, "MS Shell Dlg"
{
    LTEXT   "Class Name:", -1, 5, 6, 50, 8
    LTEXT   "", IDC_LABEL, 60, 6, 145, 8
    LTEXT   "CLSID:", -1, 5, 16, 50, 8
    LTEXT   "", IDC_IDENTIFIER, 60, 16, 165, 8
    DEFPUSHBUTTON   "&Close", IDCANCEL, 230, 6, 45, 14
    PUSHBUTTON  "#msgctxt#do not translate#&IsDirty", IDC_ISDIRTY_BUTTON, 6, 31, 50, 14
    LTEXT   "", IDC_ISDIRTY, 60, 34, 145, 8
    PUSHBUTTON  "#msgctxt#do not translate#&GetSizeMax", IDC_GETSIZEMAX_BUTTON, 6, 49, 50, 14
    LTEXT   "", IDC_GETSIZEMAX, 60, 52, 145, 8
}

LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL

IDA_OLEVIEW ACCELERATORS
{
    VK_F5, IDM_REFRESH, VIRTKEY
}

/* @makedep: toolbar.bmp */
IDB_TOOLBAR BITMAP toolbar.bmp
