diff --git a/configure b/configure index 1835c71736f..12a449f1963 100755 --- a/configure +++ b/configure @@ -24214,7 +24214,7 @@ MAKE_LIB_RULES=libs/Makelib.rules MAKE_PROG_RULES=programs/Makeprog.rules -ac_config_files="$ac_config_files Make.rules dlls/Makedll.rules dlls/Makeimplib.rules dlls/Maketest.rules libs/Makelib.rules programs/Makeprog.rules Makefile dlls/Makefile dlls/activeds/Makefile dlls/advapi32/Makefile dlls/advapi32/tests/Makefile dlls/advpack/Makefile dlls/advpack/tests/Makefile dlls/amstream/Makefile dlls/atl/Makefile dlls/avicap32/Makefile dlls/avifil32/Makefile dlls/cabinet/Makefile dlls/cabinet/tests/Makefile dlls/capi2032/Makefile dlls/cards/Makefile dlls/cfgmgr32/Makefile dlls/comcat/Makefile dlls/comctl32/Makefile dlls/comctl32/tests/Makefile dlls/comdlg32/Makefile dlls/compstui/Makefile dlls/crtdll/Makefile dlls/crypt32/Makefile dlls/crypt32/tests/Makefile dlls/cryptdll/Makefile dlls/ctl3d32/Makefile dlls/d3d8/Makefile dlls/d3d8/tests/Makefile dlls/d3d9/Makefile dlls/d3d9/tests/Makefile dlls/d3dim/Makefile dlls/d3drm/Makefile dlls/d3dx8/Makefile dlls/d3dxof/Makefile dlls/dbghelp/Makefile dlls/dciman32/Makefile dlls/ddraw/Makefile dlls/ddraw/tests/Makefile dlls/devenum/Makefile dlls/dinput/Makefile dlls/dinput/tests/Makefile dlls/dinput8/Makefile dlls/dmband/Makefile dlls/dmcompos/Makefile dlls/dmime/Makefile dlls/dmloader/Makefile dlls/dmscript/Makefile dlls/dmstyle/Makefile dlls/dmsynth/Makefile dlls/dmusic/Makefile dlls/dmusic32/Makefile dlls/dnsapi/Makefile dlls/dnsapi/tests/Makefile dlls/dplay/Makefile dlls/dplayx/Makefile dlls/dpnet/Makefile dlls/dpnhpast/Makefile dlls/dsound/Makefile dlls/dsound/tests/Makefile dlls/dswave/Makefile dlls/dxdiagn/Makefile dlls/dxerr8/Makefile dlls/dxerr9/Makefile dlls/dxguid/Makefile dlls/gdi/Makefile dlls/gdi/tests/Makefile dlls/glu32/Makefile dlls/glut32/Makefile dlls/gphoto2.ds/Makefile dlls/hhctrl.ocx/Makefile dlls/hlink/Makefile dlls/iccvid/Makefile dlls/icmp/Makefile dlls/ifsmgr.vxd/Makefile dlls/inseng/Makefile dlls/imaadp32.acm/Makefile dlls/imagehlp/Makefile dlls/imm32/Makefile dlls/iphlpapi/Makefile dlls/iphlpapi/tests/Makefile dlls/itss/Makefile dlls/kernel/Makefile dlls/kernel/tests/Makefile dlls/lz32/Makefile dlls/lz32/tests/Makefile dlls/mapi32/Makefile dlls/mapi32/tests/Makefile dlls/mciavi32/Makefile dlls/mcicda/Makefile dlls/mciseq/Makefile dlls/mciwave/Makefile dlls/midimap/Makefile dlls/mlang/Makefile dlls/mlang/tests/Makefile dlls/mmdevldr.vxd/Makefile dlls/monodebg.vxd/Makefile dlls/mpr/Makefile dlls/mprapi/Makefile dlls/msacm32.drv/Makefile dlls/msacm32/Makefile dlls/msacm32/tests/Makefile dlls/msadp32.acm/Makefile dlls/mscms/Makefile dlls/mscms/tests/Makefile dlls/msdmo/Makefile dlls/msftedit/Makefile dlls/msg711.acm/Makefile dlls/mshtml/Makefile dlls/mshtml/tests/Makefile dlls/msi/Makefile dlls/msi/tests/Makefile dlls/msimg32/Makefile dlls/msisys.ocx/Makefile dlls/msnet32/Makefile dlls/msrle32/Makefile dlls/msvcrt/Makefile dlls/msvcrt/tests/Makefile dlls/msvcrt20/Makefile dlls/msvcrt40/Makefile dlls/msvcrtd/Makefile dlls/msvcrtd/tests/Makefile dlls/msvfw32/Makefile dlls/msvidc32/Makefile dlls/mswsock/Makefile dlls/msxml3/Makefile dlls/msxml3/tests/Makefile dlls/netapi32/Makefile dlls/netapi32/tests/Makefile dlls/newdev/Makefile dlls/ntdll/Makefile dlls/ntdll/tests/Makefile dlls/ntdsapi/Makefile dlls/objsel/Makefile dlls/odbc32/Makefile dlls/odbccp32/Makefile dlls/ole32/Makefile dlls/ole32/tests/Makefile dlls/oleacc/Makefile dlls/oleaut32/Makefile dlls/oleaut32/tests/Makefile dlls/olecli32/Makefile dlls/oledlg/Makefile dlls/olepro32/Makefile dlls/olesvr32/Makefile dlls/opengl32/Makefile dlls/powrprof/Makefile dlls/psapi/Makefile dlls/psapi/tests/Makefile dlls/qcap/Makefile dlls/quartz/Makefile dlls/quartz/tests/Makefile dlls/rasapi32/Makefile dlls/riched20/Makefile dlls/riched20/tests/Makefile dlls/riched32/Makefile dlls/rpcrt4/Makefile dlls/rpcrt4/tests/Makefile dlls/rsabase/Makefile dlls/rsabase/tests/Makefile dlls/rsaenh/Makefile dlls/rsaenh/tests/Makefile dlls/sane.ds/Makefile dlls/secur32/Makefile dlls/secur32/tests/Makefile dlls/security/Makefile dlls/sensapi/Makefile dlls/serialui/Makefile dlls/setupapi/Makefile dlls/setupapi/tests/Makefile dlls/sfc/Makefile dlls/shdocvw/Makefile dlls/shdocvw/tests/Makefile dlls/shell32/Makefile dlls/shell32/tests/Makefile dlls/shfolder/Makefile dlls/shlwapi/Makefile dlls/shlwapi/tests/Makefile dlls/snmpapi/Makefile dlls/spoolss/Makefile dlls/stdole2.tlb/Makefile dlls/stdole32.tlb/Makefile dlls/sti/Makefile dlls/strmiids/Makefile dlls/tapi32/Makefile dlls/twain_32/Makefile dlls/unicows/Makefile dlls/url/Makefile dlls/urlmon/Makefile dlls/urlmon/tests/Makefile dlls/user/Makefile dlls/user/tests/Makefile dlls/userenv/Makefile dlls/usp10/Makefile dlls/usp10/tests/Makefile dlls/uuid/Makefile dlls/uxtheme/Makefile dlls/uxtheme/tests/Makefile dlls/vdhcp.vxd/Makefile dlls/vdmdbg/Makefile dlls/version/Makefile dlls/version/tests/Makefile dlls/vmm.vxd/Makefile dlls/vnbt.vxd/Makefile dlls/vnetbios.vxd/Makefile dlls/vtdapi.vxd/Makefile dlls/vwin32.vxd/Makefile dlls/w32skrnl/Makefile dlls/winecrt0/Makefile dlls/wined3d/Makefile dlls/winedos/Makefile dlls/winemp3.acm/Makefile dlls/wineps.drv/Makefile dlls/winex11.drv/Makefile dlls/wininet/Makefile dlls/wininet/tests/Makefile dlls/winmm/Makefile dlls/winmm/joystick/Makefile dlls/winmm/tests/Makefile dlls/winmm/winealsa/Makefile dlls/winmm/winearts/Makefile dlls/winmm/wineaudioio/Makefile dlls/winmm/winecoreaudio/Makefile dlls/winmm/wineesd/Makefile dlls/winmm/winejack/Makefile dlls/winmm/winenas/Makefile dlls/winmm/wineoss/Makefile dlls/winnls32/Makefile dlls/winspool.drv/Makefile dlls/winspool.drv/tests/Makefile dlls/wintab32/Makefile dlls/wintrust/Makefile dlls/wldap32/Makefile dlls/wnaspi32/Makefile dlls/wow32/Makefile dlls/ws2_32/Makefile dlls/ws2_32/tests/Makefile dlls/wsock32/Makefile dlls/wtsapi32/Makefile documentation/Makefile fonts/Makefile include/Makefile libs/Makefile libs/port/Makefile libs/unicode/Makefile libs/wine/Makefile libs/wpp/Makefile loader/Makefile programs/Makefile programs/clock/Makefile programs/cmdlgtst/Makefile programs/control/Makefile programs/eject/Makefile programs/expand/Makefile programs/explorer/Makefile programs/hh/Makefile programs/icinfo/Makefile programs/iexplore/Makefile programs/msiexec/Makefile programs/notepad/Makefile programs/progman/Makefile programs/regedit/Makefile programs/regsvr32/Makefile programs/rpcss/Makefile programs/rundll32/Makefile programs/start/Makefile programs/taskmgr/Makefile programs/uninstaller/Makefile programs/view/Makefile programs/wcmd/Makefile programs/wineboot/Makefile programs/winebrowser/Makefile programs/winecfg/Makefile programs/wineconsole/Makefile programs/winedbg/Makefile programs/winefile/Makefile programs/winemenubuilder/Makefile programs/winemine/Makefile programs/winepath/Makefile programs/winetest/Makefile programs/winevdm/Makefile programs/winhelp/Makefile programs/winver/Makefile programs/wordpad/Makefile server/Makefile tools/Makefile tools/widl/Makefile tools/winapi/Makefile tools/winebuild/Makefile tools/winedump/Makefile tools/winegcc/Makefile tools/wmc/Makefile tools/wrc/Makefile" +ac_config_files="$ac_config_files Make.rules dlls/Makedll.rules dlls/Makeimplib.rules dlls/Maketest.rules libs/Makelib.rules programs/Makeprog.rules Makefile dlls/Makefile dlls/activeds/Makefile dlls/advapi32/Makefile dlls/advapi32/tests/Makefile dlls/advpack/Makefile dlls/advpack/tests/Makefile dlls/amstream/Makefile dlls/atl/Makefile dlls/avicap32/Makefile dlls/avifil32/Makefile dlls/cabinet/Makefile dlls/cabinet/tests/Makefile dlls/capi2032/Makefile dlls/cards/Makefile dlls/cfgmgr32/Makefile dlls/comcat/Makefile dlls/comctl32/Makefile dlls/comctl32/tests/Makefile dlls/comdlg32/Makefile dlls/compstui/Makefile dlls/crtdll/Makefile dlls/crypt32/Makefile dlls/crypt32/tests/Makefile dlls/cryptdll/Makefile dlls/ctl3d32/Makefile dlls/d3d8/Makefile dlls/d3d8/tests/Makefile dlls/d3d9/Makefile dlls/d3d9/tests/Makefile dlls/d3dim/Makefile dlls/d3drm/Makefile dlls/d3dx8/Makefile dlls/d3dxof/Makefile dlls/dbghelp/Makefile dlls/dciman32/Makefile dlls/ddraw/Makefile dlls/ddraw/tests/Makefile dlls/devenum/Makefile dlls/dinput/Makefile dlls/dinput/tests/Makefile dlls/dinput8/Makefile dlls/dmband/Makefile dlls/dmcompos/Makefile dlls/dmime/Makefile dlls/dmloader/Makefile dlls/dmscript/Makefile dlls/dmstyle/Makefile dlls/dmsynth/Makefile dlls/dmusic/Makefile dlls/dmusic32/Makefile dlls/dnsapi/Makefile dlls/dnsapi/tests/Makefile dlls/dplay/Makefile dlls/dplayx/Makefile dlls/dpnet/Makefile dlls/dpnhpast/Makefile dlls/dsound/Makefile dlls/dsound/tests/Makefile dlls/dswave/Makefile dlls/dxdiagn/Makefile dlls/dxerr8/Makefile dlls/dxerr9/Makefile dlls/dxguid/Makefile dlls/gdi/Makefile dlls/gdi/tests/Makefile dlls/glu32/Makefile dlls/glut32/Makefile dlls/gphoto2.ds/Makefile dlls/hhctrl.ocx/Makefile dlls/hlink/Makefile dlls/iccvid/Makefile dlls/icmp/Makefile dlls/ifsmgr.vxd/Makefile dlls/inseng/Makefile dlls/imaadp32.acm/Makefile dlls/imagehlp/Makefile dlls/imm32/Makefile dlls/iphlpapi/Makefile dlls/iphlpapi/tests/Makefile dlls/itss/Makefile dlls/kernel/Makefile dlls/kernel/tests/Makefile dlls/lz32/Makefile dlls/lz32/tests/Makefile dlls/mapi32/Makefile dlls/mapi32/tests/Makefile dlls/mciavi32/Makefile dlls/mcicda/Makefile dlls/mciseq/Makefile dlls/mciwave/Makefile dlls/midimap/Makefile dlls/mlang/Makefile dlls/mlang/tests/Makefile dlls/mmdevldr.vxd/Makefile dlls/monodebg.vxd/Makefile dlls/mpr/Makefile dlls/mprapi/Makefile dlls/msacm32.drv/Makefile dlls/msacm32/Makefile dlls/msacm32/tests/Makefile dlls/msadp32.acm/Makefile dlls/mscms/Makefile dlls/mscms/tests/Makefile dlls/msdmo/Makefile dlls/msftedit/Makefile dlls/msg711.acm/Makefile dlls/mshtml/Makefile dlls/mshtml/tests/Makefile dlls/msi/Makefile dlls/msi/tests/Makefile dlls/msimg32/Makefile dlls/msisys.ocx/Makefile dlls/msnet32/Makefile dlls/msrle32/Makefile dlls/msvcrt/Makefile dlls/msvcrt/tests/Makefile dlls/msvcrt20/Makefile dlls/msvcrt40/Makefile dlls/msvcrtd/Makefile dlls/msvcrtd/tests/Makefile dlls/msvfw32/Makefile dlls/msvidc32/Makefile dlls/mswsock/Makefile dlls/msxml3/Makefile dlls/msxml3/tests/Makefile dlls/netapi32/Makefile dlls/netapi32/tests/Makefile dlls/newdev/Makefile dlls/ntdll/Makefile dlls/ntdll/tests/Makefile dlls/ntdsapi/Makefile dlls/objsel/Makefile dlls/odbc32/Makefile dlls/odbccp32/Makefile dlls/ole32/Makefile dlls/ole32/tests/Makefile dlls/oleacc/Makefile dlls/oleaut32/Makefile dlls/oleaut32/tests/Makefile dlls/olecli32/Makefile dlls/oledlg/Makefile dlls/olepro32/Makefile dlls/olesvr32/Makefile dlls/opengl32/Makefile dlls/powrprof/Makefile dlls/psapi/Makefile dlls/psapi/tests/Makefile dlls/qcap/Makefile dlls/quartz/Makefile dlls/quartz/tests/Makefile dlls/rasapi32/Makefile dlls/riched20/Makefile dlls/riched20/tests/Makefile dlls/riched32/Makefile dlls/rpcrt4/Makefile dlls/rpcrt4/tests/Makefile dlls/rsabase/Makefile dlls/rsabase/tests/Makefile dlls/rsaenh/Makefile dlls/rsaenh/tests/Makefile dlls/sane.ds/Makefile dlls/secur32/Makefile dlls/secur32/tests/Makefile dlls/security/Makefile dlls/sensapi/Makefile dlls/serialui/Makefile dlls/setupapi/Makefile dlls/setupapi/tests/Makefile dlls/sfc/Makefile dlls/shdocvw/Makefile dlls/shdocvw/tests/Makefile dlls/shell32/Makefile dlls/shell32/tests/Makefile dlls/shfolder/Makefile dlls/shlwapi/Makefile dlls/shlwapi/tests/Makefile dlls/snmpapi/Makefile dlls/spoolss/Makefile dlls/stdole2.tlb/Makefile dlls/stdole32.tlb/Makefile dlls/sti/Makefile dlls/strmiids/Makefile dlls/tapi32/Makefile dlls/twain_32/Makefile dlls/unicows/Makefile dlls/url/Makefile dlls/urlmon/Makefile dlls/urlmon/tests/Makefile dlls/user/Makefile dlls/user/tests/Makefile dlls/userenv/Makefile dlls/usp10/Makefile dlls/usp10/tests/Makefile dlls/uuid/Makefile dlls/uxtheme/Makefile dlls/uxtheme/tests/Makefile dlls/vdhcp.vxd/Makefile dlls/vdmdbg/Makefile dlls/version/Makefile dlls/version/tests/Makefile dlls/vmm.vxd/Makefile dlls/vnbt.vxd/Makefile dlls/vnetbios.vxd/Makefile dlls/vtdapi.vxd/Makefile dlls/vwin32.vxd/Makefile dlls/w32skrnl/Makefile dlls/winecrt0/Makefile dlls/wined3d/Makefile dlls/winedos/Makefile dlls/winemp3.acm/Makefile dlls/wineps.drv/Makefile dlls/winex11.drv/Makefile dlls/wininet/Makefile dlls/wininet/tests/Makefile dlls/winmm/Makefile dlls/winmm/joystick/Makefile dlls/winmm/tests/Makefile dlls/winmm/winealsa/Makefile dlls/winmm/winearts/Makefile dlls/winmm/wineaudioio/Makefile dlls/winmm/winecoreaudio/Makefile dlls/winmm/wineesd/Makefile dlls/winmm/winejack/Makefile dlls/winmm/winenas/Makefile dlls/winmm/wineoss/Makefile dlls/winnls32/Makefile dlls/winspool.drv/Makefile dlls/winspool.drv/tests/Makefile dlls/wintab32/Makefile dlls/wintrust/Makefile dlls/wldap32/Makefile dlls/wnaspi32/Makefile dlls/wow32/Makefile dlls/ws2_32/Makefile dlls/ws2_32/tests/Makefile dlls/wsock32/Makefile dlls/wtsapi32/Makefile documentation/Makefile fonts/Makefile include/Makefile libs/Makefile libs/port/Makefile libs/unicode/Makefile libs/wine/Makefile libs/wpp/Makefile loader/Makefile programs/Makefile programs/clock/Makefile programs/cmdlgtst/Makefile programs/control/Makefile programs/eject/Makefile programs/expand/Makefile programs/explorer/Makefile programs/hh/Makefile programs/icinfo/Makefile programs/iexplore/Makefile programs/msiexec/Makefile programs/notepad/Makefile programs/oleview/Makefile programs/progman/Makefile programs/regedit/Makefile programs/regsvr32/Makefile programs/rpcss/Makefile programs/rundll32/Makefile programs/start/Makefile programs/taskmgr/Makefile programs/uninstaller/Makefile programs/view/Makefile programs/wcmd/Makefile programs/wineboot/Makefile programs/winebrowser/Makefile programs/winecfg/Makefile programs/wineconsole/Makefile programs/winedbg/Makefile programs/winefile/Makefile programs/winemenubuilder/Makefile programs/winemine/Makefile programs/winepath/Makefile programs/winetest/Makefile programs/winevdm/Makefile programs/winhelp/Makefile programs/winver/Makefile programs/wordpad/Makefile server/Makefile tools/Makefile tools/widl/Makefile tools/winapi/Makefile tools/winebuild/Makefile tools/winedump/Makefile tools/winegcc/Makefile tools/wmc/Makefile tools/wrc/Makefile" cat >confcache <<\_ACEOF @@ -25033,6 +25033,7 @@ do "programs/iexplore/Makefile") CONFIG_FILES="$CONFIG_FILES programs/iexplore/Makefile" ;; "programs/msiexec/Makefile") CONFIG_FILES="$CONFIG_FILES programs/msiexec/Makefile" ;; "programs/notepad/Makefile") CONFIG_FILES="$CONFIG_FILES programs/notepad/Makefile" ;; + "programs/oleview/Makefile") CONFIG_FILES="$CONFIG_FILES programs/oleview/Makefile" ;; "programs/progman/Makefile") CONFIG_FILES="$CONFIG_FILES programs/progman/Makefile" ;; "programs/regedit/Makefile") CONFIG_FILES="$CONFIG_FILES programs/regedit/Makefile" ;; "programs/regsvr32/Makefile") CONFIG_FILES="$CONFIG_FILES programs/regsvr32/Makefile" ;; diff --git a/configure.ac b/configure.ac index 2a7a0e7fb85..743ac698f0e 100644 --- a/configure.ac +++ b/configure.ac @@ -1803,6 +1803,7 @@ programs/icinfo/Makefile programs/iexplore/Makefile programs/msiexec/Makefile programs/notepad/Makefile +programs/oleview/Makefile programs/progman/Makefile programs/regedit/Makefile programs/regsvr32/Makefile diff --git a/programs/Makefile.in b/programs/Makefile.in index 4376fe6e162..69f938a39e3 100644 --- a/programs/Makefile.in +++ b/programs/Makefile.in @@ -17,6 +17,7 @@ SUBDIRS = \ iexplore \ msiexec \ notepad \ + oleview \ progman \ regedit \ regsvr32 \ @@ -54,6 +55,7 @@ INSTALLSUBDIRS = \ iexplore \ msiexec \ notepad \ + oleview \ progman \ regedit \ regsvr32 \ diff --git a/programs/oleview/.gitignore b/programs/oleview/.gitignore new file mode 100644 index 00000000000..8cc24388973 --- /dev/null +++ b/programs/oleview/.gitignore @@ -0,0 +1,3 @@ +Makefile +rsrc.res +toolbar.bmp diff --git a/programs/oleview/En.rc b/programs/oleview/En.rc new file mode 100644 index 00000000000..39d7c0e3a2a --- /dev/null +++ b/programs/oleview/En.rc @@ -0,0 +1,100 @@ +/* + * OleView (En.rc) + * English Language Support + * + * 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 +*/ + +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +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 "CLSCTX_&INPROC_SERVER", IDM_FLAG_INSERV,CHECKED + MENUITEM "CLSCTX_INPROC_&HANDLER", IDM_FLAG_INHANDL + MENUITEM "CLSCTX_&LOCAL_SERVER", IDM_FLAG_LOCSERV,CHECKED + MENUITEM "CLSCTX_&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 &CLSID 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 cattegories", 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 + } +} + +STRINGTABLE +{ + IDS_APPNAME "OleView" + IDS_APPTITLE "Wine OleView" + IDS_READY "Ready" + + 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 specyfic 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, "Use CLSCTX_INPROC_SERVER when calling CoGetClassObject" + IDM_FLAG_INHANDL, "Use CLSCTX_INPROC_HANDLER when calling CoGetClassObject" + IDM_FLAG_LOCSERV, "Use CLSCTX_LOCAL_SERVER when calling CoGetClassObject" + IDM_FLAG_REMSERV, "Use CLSCTX_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 namber and copyright" +} diff --git a/programs/oleview/Makefile.in b/programs/oleview/Makefile.in new file mode 100644 index 00000000000..8c2fb931c6a --- /dev/null +++ b/programs/oleview/Makefile.in @@ -0,0 +1,20 @@ +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../.. +SRCDIR = @srcdir@ +VPATH = @srcdir@ +MODULE = oleview.exe +APPMODE = -mwindows -municode +IMPORTS = comctl32 shell32 oleaut32 ole32 user32 advapi32 kernel32 +EXTRALIBS = -luuid +EXTRADEFS = -DUNICODE + +C_SRCS = \ + oleview.c + +RC_SRCS = rsrc.rc +RC_BINSRC = rsrc.rc +RC_BINARIES = toolbar.bmp + +@MAKE_PROG_RULES@ + +### Dependencies: diff --git a/programs/oleview/main.h b/programs/oleview/main.h new file mode 100644 index 00000000000..0c6fc096bdd --- /dev/null +++ b/programs/oleview/main.h @@ -0,0 +1,43 @@ +/* + * OleView (main.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 COBJMACROS + +#include +#include +#include +#include +#include + +#include "resource.h" + +#define MAX_LOAD_STRING 256 + +#define STATUS_WINDOW 2000 + +typedef struct +{ + HWND hMainWnd; + HWND hStatusBar; + HWND hToolBar; + HINSTANCE hMainInst; +}GLOBALS; + +extern GLOBALS globals; diff --git a/programs/oleview/oleview b/programs/oleview/oleview new file mode 120000 index 00000000000..82c86325254 --- /dev/null +++ b/programs/oleview/oleview @@ -0,0 +1 @@ +../../tools/winewrapper \ No newline at end of file diff --git a/programs/oleview/oleview.c b/programs/oleview/oleview.c new file mode 100644 index 00000000000..76fe1c97d95 --- /dev/null +++ b/programs/oleview/oleview.c @@ -0,0 +1,167 @@ +/* + * OleView (oleview.c) + * + * 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 "main.h" + +GLOBALS globals; + +void ResizeChild(void) +{ + RECT stat, tool; + + MoveWindow(globals.hStatusBar, 0, 0, 0, 0, TRUE); + MoveWindow(globals.hToolBar, 0, 0, 0, 0, TRUE); + + if(IsWindowVisible(globals.hStatusBar)) + GetClientRect(globals.hStatusBar, &stat); + else stat.bottom = 0; + + if(IsWindowVisible(globals.hToolBar)) + { + GetClientRect(globals.hToolBar, &tool); + tool.bottom += 2; + } + else tool.bottom = 0; +} + +void UpdateStatusBar(int itemID) +{ + WCHAR info[MAX_LOAD_STRING]; + + if(!LoadString(globals.hMainInst, itemID, info, sizeof(WCHAR[MAX_LOAD_STRING]))) + LoadString(globals.hMainInst, IDS_READY, info, sizeof(WCHAR[MAX_LOAD_STRING])); + + SendMessage(globals.hStatusBar, SB_SETTEXT, 0, (LPARAM)info); +} + +LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, + WPARAM wParam, LPARAM lParam) +{ + switch(uMsg) + { + case WM_CREATE: + OleInitialize(NULL); + break; + case WM_DESTROY: + OleUninitialize(); + PostQuitMessage(0); + break; + case WM_MENUSELECT: + UpdateStatusBar(LOWORD(wParam)); + break; + case WM_SIZE: + if(wParam == SIZE_MINIMIZED) break; + ResizeChild(); + break; + default: + return DefWindowProc(hWnd, uMsg, wParam, lParam); + } + return 0; +} + +BOOL InitApplication(HINSTANCE hInst) +{ + WNDCLASS wc; + WCHAR wszAppName[MAX_LOAD_STRING]; + + LoadString(hInst, IDS_APPNAME, wszAppName, sizeof(WCHAR[MAX_LOAD_STRING])); + + memset(&wc, 0, sizeof(WNDCLASS)); + wc.lpfnWndProc = WndProc; + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wc.lpszMenuName = MAKEINTRESOURCE(IDM_MENU); + wc.lpszClassName = wszAppName; + + if(!RegisterClass(&wc)) + return FALSE; + + return TRUE; +} + +BOOL InitInstance(HINSTANCE hInst, int nCmdShow) +{ + HWND hWnd; + WCHAR wszAppName[MAX_LOAD_STRING]; + WCHAR wszTitle[MAX_LOAD_STRING]; + TBBUTTON tB[] = { + {0, 0, 0, BTNS_SEP, {0, 0}, 0, 0}, + {0, IDM_BIND, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0}, + {1, IDM_TYPELIB, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0}, + {0, 0, 0, BTNS_SEP, {0, 0}, 0, 0}, + {2, IDM_REGEDIT, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0}, + {0, 0, 0, BTNS_SEP, {0, 0}, 0, 0}, + {3, IDM_CREATEINST, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0}, + {4, IDM_RELEASEINST, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0}, + {0, 0, 0, BTNS_SEP, {0, 0}, 0, 0}, + {5, IDM_VIEW, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0} + }; + + LoadString(hInst, IDS_APPNAME, wszAppName, sizeof(WCHAR[MAX_LOAD_STRING])); + LoadString(hInst, IDS_APPTITLE, wszTitle, sizeof(WCHAR[MAX_LOAD_STRING])); + + hWnd = CreateWindow(wszAppName, wszTitle, WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInst, NULL); + if(!hWnd) return FALSE; + + globals.hStatusBar = CreateStatusWindow(WS_VISIBLE|WS_CHILD, + (LPWSTR)wszTitle, hWnd, 0); + + globals.hToolBar = CreateToolbarEx(hWnd, WS_CHILD|WS_VISIBLE, 0, 1, hInst, + IDB_TOOLBAR, tB, 10, 16, 16, 16, 16, sizeof(TBBUTTON)); + SendMessage(globals.hToolBar, TB_ENABLEBUTTON, IDM_CREATEINST, FALSE); + SendMessage(globals.hToolBar, TB_ENABLEBUTTON, IDM_RELEASEINST, FALSE); + SendMessage(globals.hToolBar, TB_ENABLEBUTTON, IDM_VIEW, FALSE); + + globals.hMainWnd = hWnd; + globals.hMainInst = hInst; + + ShowWindow(hWnd, nCmdShow); + UpdateWindow(hWnd); + + return TRUE; +} + +int APIENTRY wWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, + LPWSTR lpCmdLine, int nCmdShow) +{ + MSG msg; + HANDLE hAccelTable; + + if(!hPrevInst) + { + if(!InitApplication(hInst)) + return FALSE; + } + + if(!InitInstance(hInst, nCmdShow)) + return FALSE; + + hAccelTable = LoadAccelerators(hInst, MAKEINTRESOURCE(IDA_OLEVIEW)); + + while(GetMessage(&msg, NULL, 0, 0)) + { + if(TranslateAccelerator(globals.hMainWnd, hAccelTable, &msg)) continue; + + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + return msg.wParam; +} diff --git a/programs/oleview/resource.h b/programs/oleview/resource.h new file mode 100644 index 00000000000..9886d8223bc --- /dev/null +++ b/programs/oleview/resource.h @@ -0,0 +1,50 @@ +/* + * 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_READY 10 + +#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 diff --git a/programs/oleview/rsrc.rc b/programs/oleview/rsrc.rc new file mode 100644 index 00000000000..4b81a09fd24 --- /dev/null +++ b/programs/oleview/rsrc.rc @@ -0,0 +1,326 @@ +/* + * OleView (rsrc.rc) + * + * 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 +#include "resource.h" + +#include "En.rc" + +IDA_OLEVIEW ACCELERATORS DISCARDABLE +{ + VK_F5, IDM_REFRESH, VIRTKEY, NOINVERT +} + +/* BINRES toolbar.bmp */ +IDB_TOOLBAR BITMAP DISCARDABLE toolbar.bmp +/* { +'42 4d 36 12 00 00 00 00 00 00 36 00 00 00 28 00' +'00 00 60 00 00 00 10 00 00 00 01 00 18 00 00 00' +'00 00 00 12 00 00 12 0b 00 00 12 0b 00 00 00 00' +'00 00 00 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 00' +'33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' +'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' +'00 00 00 00 00 00 c0 c0 c0 c0 c0 c0 00 00 00 00' +'00 00 00 00 00 00 00 00 c0 c0 c0 00 00 00 c0 c0' +'c0 00 00 00 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 94' +'a0 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94' +'94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94' +'8a 8a 8a 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 00' +'00 00 c0 c0 c0 00 00 00 c0 c0 c0 00 00 00 c0 c0' +'c0 00 00 00 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 a6 c8 a6 db' +'db db 7e e2 e2 b4 e2 e2 90 e2 e2 a2 e2 e2 a2 e2' +'e2 90 e2 e2 b4 e2 e2 7e e2 e2 c7 e2 e2 67 dd dd' +'b3 b3 b3 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 00' +'00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0' +'c0 00 00 00 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 00 00 00 c0 c0' +'c0 00 00 00 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 00 00 00 00' +'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' +'00 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 00 00 00 00' +'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' +'00 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 00 00 00 00 00 00 00 00 00 00 00 00 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 00 00 00' +'00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 bf d6 bf b8' +'f6 f6 68 ff ff 90 ff ff 76 ff ff 83 ff ff 83 ff' +'ff 76 ff ff 90 ff ff 68 ff ff 9d ff ff 55 ef ef' +'7f 7f 7f 27 27 27 c0 c0 c0 c0 c0 c0 c0 c0 c0 00' +'00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0' +'c0 00 00 00 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 00' +'00 00 c0 c0 c0 00 00 00 c0 c0 c0 00 00 00 c0 c0' +'c0 00 00 00 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 ff 00 00' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 ff 00 00' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 00 00 00 c0 c0 c0 00 00 00 00 00 00' +'c0 c0 c0 00 00 00 c0 c0 c0 b3 c4 b3 e5 f7 f7 3f' +'ff ff b2 ff ff 5c ff ff 95 ff ff 78 ff ff 78 ff' +'ff 95 ff ff 5c ff ff b2 ff ff 42 fe fe d9 d9 d9' +'09 09 09 80 80 80 c0 c0 c0 c0 c0 c0 00 00 00 00' +'00 00 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 c0 c0' +'c0 00 00 00 c0 c0 c0 00 00 00 00 00 00 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 ff 00 00 ff 00 00' +'ff 00 00 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 ff 00 00 ff 00 00' +'ff 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 00 00 00 00 00 00 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 00 00 00' +'c0 c0 c0 00 00 00 c0 c0 c0 b3 c4 b3 1a f7 f7 cc' +'ff ff 44 ff ff aa ff ff 66 ff ff 88 ff ff 88 ff' +'ff 66 ff ff aa ff ff 44 ff ff f2 f2 f2 a6 a6 a6' +'09 09 09 80 80 80 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 80' +'00 00 80 00 00 80 00 00 80 00 00 80 00 00 c0 c0' +'c0 00 00 00 c0 c0 c0 ff 00 00 c0 c0 c0 ff 00 00' +'c0 c0 c0 ff 00 00 00 00 00 c0 c0 c0 c0 c0 c0 80' +'00 00 80 00 00 80 00 00 80 00 00 80 00 00 c0 c0' +'c0 00 00 00 c0 c0 c0 ff 00 00 c0 c0 c0 ff 00 00' +'c0 c0 c0 ff 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 00 00 00 c0 c0 c0 00 00 00 c0 c0 c0' +'c0 c0 c0 00 00 00 a2 ca a2 27 f2 ef bf fe fe 4a' +'ff ff a9 ff ff 62 ff ff 91 ff ff 7a ff ff 7a ff' +'ff 91 ff ff 62 ff ff a9 ff ff 3b e8 e8 86 86 86' +'6d 6d 6d 80 80 80 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 ff 00 00' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 ff c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 ff 00 00' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 00 00 00 00 00 00 00 00 00 00 00 00 c0 c0' +'c0 00 00 00 00 00 00 c0 c0 c0 00 00 00 c0 c0 c0' +'c0 c0 c0 00 00 00 c0 c0 c0 9f fb fb f2 ff ff b1' +'ff ff e5 ff ff be ff ff d8 ff ff cb ff ff cb ff' +'ff d8 ff ff be ff ff da f5 f5 68 b7 b7 46 46 46' +'c9 c9 c9 80 80 80 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 80 00 00 80' +'00 00 80 00 00 80 00 00 80 00 00 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 ff 00 00' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 80 00 00 80' +'00 00 80 00 00 80 00 00 80 00 00 c0 c0 c0 00 00' +'ff 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 ff 00 00' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 e4 e4 e4 e7 e7 e7 e7' +'e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7' +'e7 e7 e7 e7 e7 e7 e7 d6 d6 d6 99 99 99 6a 77 77' +'9b f7 f7 80 80 80 c0 c0 c0 c0 c0 c0 00 00 00 00' +'00 00 00 00 00 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0' +'c0 00 00 00 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'00 00 00 c0 c0 c0 00 00 00 00 00 00 c0 c0 c0 00' +'00 00 00 00 00 c0 c0 c0 00 00 00 00 00 00 00 00' +'00 00 00 00 c0 c0 c0 c0 c0 c0 00 00 00 00 00 00' +'00 00 00 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 ff 00 00' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 ff c0 c0 c0 c0 c0 c0 c0 c0 c0 ff 00 00' +'c0 c0 c0 00 00 ff c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 00 00 00 00 00 00 00 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 a3 ca a3 be c1 be a7 c9 c9 c2' +'ca ca ad ca ca bd ca ca b3 ca ca b8 ca ca b8 ca' +'ca b3 ca ca bd ca ca 9f bc bc a2 a9 a9 c0 ff ff' +'2d f7 f7 80 80 80 c0 c0 c0 c0 c0 c0 c0 c0 c0 00' +'00 00 c0 c0 c0 00 00 00 c0 c0 c0 00 00 00 c0 c0' +'c0 00 00 00 c0 c0 c0 00 00 00 c0 c0 c0 00 00 00' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 00' +'00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 00 00 00 00 00 00 c0 c0 c0 80 00 00 80' +'00 00 80 00 00 80 00 00 80 00 00 80 00 00 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 ff 00 00' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 80 00 00 80' +'00 00 80 00 00 80 00 00 80 00 00 80 00 00 c0 c0' +'c0 00 00 00 00 00 ff c0 c0 c0 c0 c0 c0 00 00 ff' +'00 00 ff c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 b3 c4 b3 1a f7 f7 cc' +'ff ff 44 ff ff aa ff ff 66 ff ff 88 ff ff 88 ff' +'ff 66 ff ff aa ff ff 44 ff ff cc ff ff 22 ff ff' +'f7 f7 f7 80 80 80 c0 c0 c0 c0 c0 c0 c0 c0 c0 00' +'00 00 c0 c0 c0 00 00 00 c0 c0 c0 00 00 00 c0 c0' +'c0 00 00 00 c0 c0 c0 00 00 00 c0 c0 c0 00 00 00' +'00 00 00 00 00 00 c0 c0 c0 00 00 00 00 00 00 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 00 00' +'00 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 00 00 00' +'00 00 00 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 ff 00 00' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 00 00 ff 00 00 ff ff 00 00' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 00' +'00 00 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 b3 c4 b3 e5 f7 f7 3f' +'ff ff b2 ff ff 5c ff ff 95 ff ff 78 ff ff 78 ff' +'ff f3 ff ff f8 ff ff f0 ff ff fb ff ff ee ff ff' +'f7 f7 f7 80 80 80 c0 c0 c0 c0 c0 c0 c0 c0 c0 00' +'00 00 c0 c0 c0 00 00 00 c0 c0 c0 00 00 00 c0 c0' +'c0 00 00 00 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'00 00 00 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 00' +'00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 80 00 00 80' +'00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 ff 00 00' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 80 00 00 80' +'00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 ff 00 00 ff c0 c0 c0 c0 c0 c0 00 00 ff' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 00' +'00 00 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 b3 c4 b3 5d f7 f7 9d' +'ff ff 68 ff ff 90 ff ff 76 ff ff 83 ff ff d5 ff' +'ff ed ed ed d3 d3 d3 d3 d3 d3 d3 d3 d3 d3 d3 d3' +'cd cd cd 80 80 80 c0 c0 c0 c0 c0 c0 c0 c0 c0 00' +'00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 00 00 00 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 00 00' +'00 00 00 00 c0 c0 c0 c0 c0 c0 00 00 00 00 00 00' +'00 00 00 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 ff 00 00' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 ff 00 00' +'ff 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 ff 00 00' +'00 00 ff c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 00' +'00 00 c0 c0 c0 00 00 00 00 00 00 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 60 df 60 5b e1 d2 de' +'f9 f9 9b ff ff d1 ff ff ad ff ff bf ff ff f1 f1' +'f1 b1 e0 b1 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 00' +'00 00 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 00 00 ff c0 c0 c0 c0 c0' +'c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 00 00 ff c0 c0 c0 c0 c0 c0 00 00 00 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 80 d5 80 de' +'e9 de f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 c5 e1' +'c5 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 00' +'00 00 00 00 00 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 00 00 00 00' +'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' +'00 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 00 00 00 00' +'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' +'00 00 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 00' +'00 00 c0 c0 c0 00 00 00 00 00 00 00 00 00 c0 c0' +'c0 00 00 00 00 00 00 00 00 00 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 9a' +'cd 9a c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0' +'c0 c0 c0 c0 c0 c0' +}*/