320 lines
17 KiB
Plaintext
320 lines
17 KiB
Plaintext
|
#include "winfile.h"
|
||
|
#include "wfcopy.h"
|
||
|
//#include "winfile.rcv"
|
||
|
|
||
|
BITMAPS BITMAP PRELOAD bitmap.bmp
|
||
|
|
||
|
APPICON ICON PRELOAD winfile.ico
|
||
|
TREEICON ICON PRELOAD wftree.ico
|
||
|
DIRICON ICON PRELOAD wfdir.ico
|
||
|
TREEDIRICON ICON PRELOAD wftrdir.ico
|
||
|
|
||
|
SPLITCURSOR CURSOR PRELOAD split.cur
|
||
|
SINGLEMOVECURSOR CURSOR smove.cur
|
||
|
MULTMOVECURSOR CURSOR mmove.cur
|
||
|
SINGLECOPYCURSOR CURSOR scopy.cur
|
||
|
MULTCOPYCURSOR CURSOR mcopy.cur
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
WFACCELTABLE ACCELERATORS PRELOAD
|
||
|
BEGIN
|
||
|
VK_RETURN, IDM_OPEN, NOINVERT, VIRTKEY
|
||
|
VK_RETURN, IDM_OPEN, NOINVERT, VIRTKEY, SHIFT
|
||
|
VK_F7, IDM_MOVE, VIRTKEY
|
||
|
VK_F8, IDM_COPY, VIRTKEY
|
||
|
VK_DELETE, IDM_DELETE, VIRTKEY
|
||
|
VK_F5, IDM_CASCADE, NOINVERT, VIRTKEY, SHIFT
|
||
|
VK_F4, IDM_TILE, NOINVERT, VIRTKEY, SHIFT
|
||
|
VK_F5, IDM_REFRESH, NOINVERT, VIRTKEY
|
||
|
VK_F1, IDM_HELPINDEX, VIRTKEY
|
||
|
"+", IDM_EXPONE, NOINVERT
|
||
|
"*", IDM_EXPSUB, NOINVERT
|
||
|
"8", IDM_EXPALL, NOINVERT, VIRTKEY, CONTROL, SHIFT
|
||
|
VK_MULTIPLY,IDM_EXPALL, NOINVERT, VIRTKEY, CONTROL
|
||
|
"-", IDM_COLLAPSE, NOINVERT
|
||
|
VK_RETURN, IDM_ATTRIBS, NOINVERT, VIRTKEY, ALT
|
||
|
END
|
||
|
|
||
|
FRAMEMENU MENU PRELOAD
|
||
|
BEGIN
|
||
|
POPUP "&Object"
|
||
|
BEGIN
|
||
|
MENUITEM "&Info...\tEnter", IDM_OPEN
|
||
|
MENUITEM SEPARATOR
|
||
|
MENUITEM "E&xit", IDM_EXIT
|
||
|
END
|
||
|
POPUP "&Tree"
|
||
|
BEGIN
|
||
|
MENUITEM "E&xpand One Level\t+", IDM_EXPONE
|
||
|
MENUITEM "Expand &Branch\t*", IDM_EXPSUB
|
||
|
MENUITEM "Expand &All\tCtrl+*", IDM_EXPALL
|
||
|
MENUITEM "&Collapse Branch\t-", IDM_COLLAPSE
|
||
|
MENUITEM SEPARATOR
|
||
|
MENUITEM "&Indicate Expandable Branches", IDM_ADDPLUSES
|
||
|
END
|
||
|
POPUP "&View"
|
||
|
BEGIN
|
||
|
MENUITEM "T&ree and Directory", IDM_BOTH
|
||
|
MENUITEM "Tr&ee Only", IDM_TREEONLY
|
||
|
MENUITEM "Directory &Only", IDM_DIRONLY
|
||
|
MENUITEM SEPARATOR
|
||
|
MENUITEM "Sp&lit" IDM_SPLIT
|
||
|
END
|
||
|
POPUP "&Options"
|
||
|
BEGIN
|
||
|
MENUITEM "&Font..." IDM_FONT
|
||
|
MENUITEM SEPARATOR
|
||
|
MENUITEM "&Status Bar", IDM_STATUSBAR
|
||
|
MENUITEM "&Minimize on Use", IDM_MINONRUN
|
||
|
MENUITEM "Save Settings on &Exit", IDM_SAVESETTINGS
|
||
|
END
|
||
|
POPUP "&Window"
|
||
|
BEGIN
|
||
|
MENUITEM "&New Window", IDM_NEWWINDOW
|
||
|
MENUITEM "&Cascade\tShift+F5", IDM_CASCADE
|
||
|
MENUITEM "&Tile\tShift+F4", IDM_TILE
|
||
|
MENUITEM "&Arrange Icons", IDM_ARRANGE
|
||
|
MENUITEM "&Refresh\tF5", IDM_REFRESH
|
||
|
END
|
||
|
POPUP "&Help"
|
||
|
BEGIN
|
||
|
MENUITEM "&About...", IDM_ABOUT
|
||
|
END
|
||
|
|
||
|
END
|
||
|
|
||
|
|
||
|
/* 0....5....1....56...2....5....3.2..5....4....5....5....6....5....7....5....8....5....9....5....0....5....1....5....2....5..8 */
|
||
|
STRINGTABLE DISCARDABLE PRELOAD
|
||
|
BEGIN
|
||
|
IDS_ENDSESSION "Exit Windows" /* 32 */
|
||
|
IDS_ENDSESSIONMSG "This will end your Windows session." /* 128 */
|
||
|
|
||
|
IDS_COPYDISK "Copy Disk" /* 32 */
|
||
|
IDS_INSERTDEST "Insert destination disk." /* 128 */
|
||
|
IDS_INSERTSRC "Insert source disk." /* 128 */
|
||
|
IDS_INSERTSRCDEST "Insert source and destination disks." /* 128 */
|
||
|
IDS_FORMATTINGDEST "Formatting destination disk." /* 128 */
|
||
|
|
||
|
IDS_COPYDISKERR "Copy Disk Error" /* 32 */
|
||
|
IDS_COPYDISKERRMSG "Unable to copy disk." /* 128 */
|
||
|
IDS_COPYSRCDESTINCOMPAT "Source and destination drives are incompatible." /* 128 */
|
||
|
|
||
|
IDS_PERCENTCOMP "%d%% completed" /* 32 */
|
||
|
IDS_CREATEROOT "Creating root directory" /* 32 */
|
||
|
IDS_COPYSYSFILES "Copying system objects" /* 32 */
|
||
|
IDS_FORMATERR "Format Disk Error" /* 32 */
|
||
|
IDS_FORMATQUICKFAILURE "Cannot quick format.\n\nContinue with normal format?"
|
||
|
IDS_FORMATERRMSG "Cannot format disk." /* 128 */
|
||
|
// IDS_FORMATCURERR "You cannot format the current drive." /* 128 */
|
||
|
IDS_FORMATCOMPLETE "Format Complete" /* 32 */
|
||
|
IDS_FORMATANOTHER "%ld bytes total disk space\n%ld bytes available on disk\n\nDo you want to format another disk?" /* 128 */
|
||
|
IDS_SYSDISK "Make System Disk"
|
||
|
IDS_SYSDISKRUSURE "Are you sure you want to copy system objects onto the disk in drive %c:?"
|
||
|
IDS_SYSDISKERR "System Disk Error"
|
||
|
IDS_SYSDISKNOFILES "The DOS startup drive does not contain system objects or is not available."
|
||
|
IDS_SYSDISKSAMEDRIVE "Cannot copy system objects to the DOS startup drive."
|
||
|
IDS_SYSDISKADDERR "Cannot add system objects to this disk.\n\nPlease verify that a formatted disk is present in the drive."
|
||
|
|
||
|
IDS_NETERR "Network Error" /* 32 */
|
||
|
IDS_NETDISCONWINERR "This drive contains the Windows system objects and cannot be disconnected." /* 128 */
|
||
|
IDS_NETDISCONOPEN "Cannot disconnect network drive.\n\nObjects are open on this drive."
|
||
|
|
||
|
IDS_ATTRIBERR "Cannot change attributes.\n\nPlease verify that the disk is not write-protected."
|
||
|
IDS_MAKEDIRERR "Cannot create directory.\n\nPlease verify that the disk is not write-protected."
|
||
|
IDS_MAKEDIREXISTS "Directory already exists."
|
||
|
IDS_LABELDISKERR "Cannot label disk.\n\nPlease verify that the disk is not write-protected, and that the label is valid.\
|
||
|
Labels cannot contain the following characters:\n[space] * ? / \\ | . , ; : + = [ ] ( ) & ^ < > "" "
|
||
|
|
||
|
IDS_SEARCHNOMATCHES "No matching objects were found."
|
||
|
IDS_SEARCHREFRESH "The contents of this drive has changed. Do you want to update the Search Results window?"
|
||
|
|
||
|
IDS_DRIVETEMP "Drive %c:%c"
|
||
|
|
||
|
IDS_EXECERRTITLE, "Cannot Execute Object"
|
||
|
IDS_PRINTERRTITLE, "Cannot Print Object"
|
||
|
|
||
|
IDS_UNKNOWNMSG, "Unexpected error: %d."
|
||
|
IDS_NOMEMORYMSG, "Not enough memory to start the specified application.\n\nClose one or more applications and try again." /* 128 */
|
||
|
IDS_FILENOTFOUNDMSG, "Cannot find object (or one of its components).\n\nPlease verify that the path and object name are correct and that all required libraries are available."
|
||
|
IDS_BADPATHMSG, "The specified path is invalid." /* 128 */
|
||
|
IDS_MANYOPENFILESMSG, "Too many objects are currently in use.\n\nClose one or more applications and try again." /* 128 */
|
||
|
IDS_NOASSOCMSG, "No application is associated with this data object.\n\nChoose Associate from the Object menu to create an association." /* 128 */
|
||
|
IDS_ASSOCINCOMPLETE, "The association information for this object type is incomplete.\n\nCheck the registration information for this object type."
|
||
|
IDS_MULTIPLEDSMSG, "Cannot start more than one copy of the specified program." /* 128 */
|
||
|
IDS_OS2APPMSG "The specified application is not a Windows or DOS program." /* 128 */
|
||
|
IDS_NEWWINDOWSMSG "This application requires a newer version of Microsoft Windows." /* 128 */
|
||
|
IDS_PMODEONLYMSG "This application requires Standard or Enhanced Mode Windows." /* 128 */
|
||
|
IDS_DDEFAIL "An error occurred sending the command to the application." /* 128 */
|
||
|
IDS_COMPRESSEDEXE "This object is compressed.\n\nPlease uncompress it and try again."
|
||
|
|
||
|
IDS_MOUSECONFIRM, "Confirm Mouse Operation" /* 32 */
|
||
|
IDS_COPYMOUSECONFIRM, "Are you sure you want to copy the selected objects or directories?"
|
||
|
IDS_MOVEMOUSECONFIRM, "Are you sure you want to move the selected objects or directories?"
|
||
|
IDS_EXECMOUSECONFIRM, "Are you sure you want to start %s using %s as the initial object?" /* 128 */
|
||
|
|
||
|
IDS_WINFILE, "Object Viewer" /* 32 */
|
||
|
IDS_TREETITLE, "Directory Tree" /* 32 */
|
||
|
IDS_SEARCHTITLE, "Search Results: " /* 32 */
|
||
|
|
||
|
IDS_TOOMANYTITLE, "Too Many Objects" /* 32 */
|
||
|
IDS_OOMTITLE, "Object Manager - Out of Memory" /* 32 */
|
||
|
IDS_OOMREADINGDIRMSG, "Unable to read entire directory. Only a partial listing will be displayed." /* 128 */
|
||
|
|
||
|
IDS_PRINTFNF "The object to be printed cannot be found." /* 128 */
|
||
|
IDS_PRINTMEMORY "Not enough memory to print.\n\nClose one or more applications and try again." /* 128 */
|
||
|
IDS_PRINTDISK "Not enough disk space to print.\n\nDelete one or more objects to increase disk space and try again." /* 128 */
|
||
|
IDS_PRINTERROR "An error has occurred while printing.\n\nPlease verify that the printer is properly configured and selected." /* 128 */
|
||
|
IDS_PRINTONLYONE "Cannot print multiple objects.\n\nPlease select only one object and try again." /* 128 */
|
||
|
|
||
|
IDS_CURDIRIS, "Current Directory: %s" /* 128 */
|
||
|
IDS_COPY, "Copy" /* 32 */
|
||
|
IDS_RENAME, "Rename" /* 32 */
|
||
|
IDS_FORMAT, "Format Disk" /* 32 */
|
||
|
IDS_FORMATSELDISK, "Select the disk to format." /* 128 */
|
||
|
// IDS_MAKESYSDISK, "Make System Disk" /* 32 */
|
||
|
|
||
|
IDS_CREATINGMSG, "Creating:" /* 32 */
|
||
|
IDS_REMOVINGDIRMSG, "Removing:" /* 32 */
|
||
|
IDS_REMOVINGMSG, "Removing..." /* 32 */
|
||
|
IDS_COPYINGMSG, "Copying:" /* 32 */
|
||
|
IDS_OPENINGMSG, "Opening..." /* 32 */
|
||
|
IDS_CLOSINGMSG, "Closing..." /* 32 */
|
||
|
IDS_RENAMINGMSG, "Renaming..." /* 32 */
|
||
|
IDS_MOVINGMSG, "Moving..." /* 32 */
|
||
|
IDS_DELETINGMSG, "Deleting..." /* 32 */
|
||
|
IDS_PRINTINGMSG, "Printing: %s" /* 32 */
|
||
|
|
||
|
IDS_NOSUCHDRIVE, "The drive %c: does not exist." /* 128 */
|
||
|
IDS_DRIVENOTREADY, "There is no disk in drive %c:.\n\nPlease insert a disk and try again."
|
||
|
IDS_UNFORMATTED, "The disk in drive %c: is not formatted.\n\nDo you want to format it now?"
|
||
|
|
||
|
IDS_STATUSMSG, "Total %d object(s)" /* 128 */
|
||
|
IDS_STATUSMSG2, "Selected %d object(s)" /* 128 */
|
||
|
IDS_DRIVEFREE, "" /* 128 */
|
||
|
IDS_TREEABORT, "Incomplete Tree Displayed" /* 128 */
|
||
|
IDS_DIRSREAD, "Directories read: %d " /* 32 */
|
||
|
IDS_SEARCHMSG, "%d object(s) found" /* 128 */
|
||
|
|
||
|
IDS_SELECTEDFILES, "the selected objects" /* 32 */
|
||
|
|
||
|
/* These strings are used for generating error messages
|
||
|
* from the Copy, Move, and Delete code. */
|
||
|
|
||
|
IDS_COPYERROR + FUNC_COPY "Error Copying Object"
|
||
|
IDS_COPYERROR + FUNC_MOVE "Error Moving Object"
|
||
|
IDS_COPYERROR + FUNC_DELETE "Error Deleting Object"
|
||
|
IDS_COPYERROR + FUNC_RENAME "Error Renaming Object"
|
||
|
IDS_COPYERROR + FUNC_SETDRIVE "Error Selecting Drive"
|
||
|
IDS_COPYERROR + FUNC_EXPAND "Error Reading Directory"
|
||
|
IDS_COPYERROR + FUNC_LABEL "Error Labeling Disk"
|
||
|
|
||
|
/* The first %s is replaced by a object name. The second %s is replaced
|
||
|
* by one of the "reasons" below. */
|
||
|
|
||
|
IDS_VERBS + FUNC_COPY "Cannot copy %s: %s"
|
||
|
IDS_VERBS + FUNC_MOVE "Cannot move %s: %s"
|
||
|
IDS_VERBS + FUNC_DELETE "Cannot delete %s: %s"
|
||
|
IDS_VERBS + FUNC_RENAME "Cannot rename %s: %s"
|
||
|
IDS_ACTIONS + 1 "Cannot create directory %s: %s"
|
||
|
IDS_ACTIONS + 2 "Cannot remove directory %s: %s"
|
||
|
IDS_REPLACING "Cannot replace %s: %s"
|
||
|
IDS_CREATING "Cannot create %s: %s"
|
||
|
|
||
|
#if 1
|
||
|
// internal type errors
|
||
|
IDS_REASONS+DE_INVFUNCTION "ERR: inv dos func"
|
||
|
IDS_REASONS+DE_NOHANDLES "ERR: no handles"
|
||
|
IDS_REASONS+DE_INVHANDLE "ERR: inv handle"
|
||
|
IDS_REASONS+DE_INVFILEACCESS "ERR: inv object acc"
|
||
|
IDS_REASONS+DE_NOTSAMEDEVICE "ERR: not same dev"
|
||
|
IDS_REASONS+DE_HOWDIDTHISHAPPEN "ERR: inv oper"
|
||
|
#endif
|
||
|
|
||
|
// regular dos errors
|
||
|
IDS_REASONS+DE_FILENOTFOUND "Cannot find object.\n\nPlease verify that the correct path and object name are given."
|
||
|
IDS_REASONS+DE_PATHNOTFOUND "Cannot find path.\n\nPlease verify that the correct path is given."
|
||
|
IDS_REASONS+DE_ACCESSDENIED "Access Denied.\n\nPlease verify that the disk is not full or write-protected."
|
||
|
IDS_REASONS+DE_INSMEM "Not enough memory.\n\nClose one or more applications and try again."
|
||
|
IDS_REASONS+DE_DELCURDIR "Cannot remove the current directory (internal error)."
|
||
|
IDS_REASONS+DE_NODIRENTRY "Directory is empty."
|
||
|
|
||
|
// extended dos errors
|
||
|
IDS_REASONS+DE_WRITEPROTECTED "The disk is write-protected.\n\nDisable the write-protection on this disk or use another disk, and try again."
|
||
|
IDS_REASONS+DE_ACCESSDENIEDNET "Network Access Denied. Not enough privilege to perform this operation."
|
||
|
|
||
|
// our internal errors
|
||
|
IDS_REASONS+DE_NODISKSPACE "Not enough disk space.\n\nDelete one or more objects to increase disk space and try again."
|
||
|
IDS_REASONS+DE_SAMEFILE "Source and destination are the same."
|
||
|
IDS_REASONS+DE_MANYSRC1DEST "Select only one object to rename, or use DOS wildcards (for example, *.TXT) to rename a group of objects with similar names."
|
||
|
IDS_REASONS+DE_DIFFDIR "Cannot rename to a different directory or disk."
|
||
|
IDS_REASONS+DE_ROOTDIR "Root directory (internal error)."
|
||
|
IDS_REASONS+DE_DESTSUBTREE "Destination is a subtree of the source."
|
||
|
IDS_REASONS+DE_WINDOWSFILE "Object in use by Windows."
|
||
|
IDS_REASONS+DE_ACCESSDENIEDSRC "Access Denied. Source object in use."
|
||
|
IDS_REASONS+DE_PATHTODEEP "Path too deep."
|
||
|
IDS_REASONS+DE_MANYDEST "Specify only one object or directory in the To box. Or, if you want to specify a group of objects, use DOS wildcards (for example, *.TXT)."
|
||
|
|
||
|
IDS_DESTFULL "Destination drive full.\n\nPlease insert a new disk to continue."
|
||
|
IDS_WRITEPROTECTFILE "This is a system, hidden or read-only object."
|
||
|
|
||
|
IDS_COPYINGTITLE "Copying..."
|
||
|
|
||
|
IDS_12MB "1.2 MB"
|
||
|
IDS_360KB "360 KB"
|
||
|
IDS_144MB "1.44 MB"
|
||
|
IDS_720KB "720 KB"
|
||
|
IDS_288MB "2.88 MB"
|
||
|
IDS_DEVICECAP "Drive Capacity"
|
||
|
|
||
|
IDS_FFERR_MEM "Not enough memory."
|
||
|
IDS_FFERR_SRCEQDST "Cannot format the DOS startup drive."
|
||
|
IDS_FFERR_SECSIZE "The DOS startup drive has an invalid sector size."
|
||
|
IDS_FFERR_DRIVETYPE "Unknown drive type."
|
||
|
// IDS_FFERR_BADTRACK "Failed to format all tracks.\n\nPlease verify that disk is not write-protected, and is inserted properly in the drive."
|
||
|
// IDS_FFERR_WRITEBOOT "Failed to create boot sector.\n\nPlease verify that disk is not write-protected, and is inserted properly in the drive."
|
||
|
// IDS_FFERR_WRITEFAT "Failed to create object allocation table."
|
||
|
// IDS_FFERR_WRITEROOT "Failed to create root directory."
|
||
|
IDS_FFERR_SYSFILES "Failed to transfer system objects."
|
||
|
IDS_FFERR_MEDIASENSE "This disk is capable of being formatted at a capacity of %s. Continue formatting at this capacity?"
|
||
|
IDS_FFERR "Cannot format disk.\n\nPlease verify that the disk is in the drive and not write-protected, damaged, or of wrong density rating."
|
||
|
|
||
|
IDS_FORMATCONFIRM "Formatting will erase ALL data from your disk. Are you sure that you want to format the disk in Drive %c:?"
|
||
|
IDS_FORMATCONFIRMTITLE "Confirm Format Disk"
|
||
|
|
||
|
IDS_DISKCOPYCONFIRM "This operation will erase ALL data from the destination disk. Are you sure that you want to continue?"
|
||
|
IDS_DISKCOPYCONFIRMTITLE "Confirm Copy Disk"
|
||
|
IDS_CLOSE "&Close" // goes on Selection dialog
|
||
|
IDS_UNDELETE "&Undelete..."
|
||
|
IDS_CONNECT "Connect &Network Drive..."
|
||
|
IDS_DISCONNECT "&Disconnect Network Drive..."
|
||
|
IDS_CONNECTIONS "&Network Connections..."
|
||
|
IDS_PATHNOTTHERE "Directory %s does not exist.\n\nCreate it?"
|
||
|
IDS_PROGRAMS "Programs#*.exe;*.pif;*.com;*.bat#All Objects (*.*)#*.*#"
|
||
|
IDS_ASSOCIATE "Browse"
|
||
|
IDS_RUN "Run"
|
||
|
IDS_WINHELPERR "Unable to show help information."
|
||
|
IDS_NOEXEASSOC "Objects with the extension %s are programs and can not be associated."
|
||
|
IDS_ASSOCNOTEXE "%s is not a program and can not be associated with an extension."
|
||
|
IDS_ASSOCNONE "(None)"
|
||
|
IDS_NOFILES "No Objects Found."
|
||
|
END
|
||
|
|
||
|
#include "winfile.dlg"
|
||
|
#include "dlg.dlg"
|
||
|
|
||
|
#include <windows.h>
|
||
|
#include <ntverp.h>
|
||
|
|
||
|
#define VER_FILETYPE VFT_APP
|
||
|
#define VER_FILESUBTYPE VFT2_UNKNOWN
|
||
|
#define VER_FILEDESCRIPTION_STR "Microsoft\256 Windows Object Viewer"
|
||
|
|
||
|
#define VER_INTERNALNAME_STR "winobj.exe"
|
||
|
#define VER_ORIGINALFILENAME_STR "winobj.exe"
|
||
|
|
||
|
#include <common.ver>
|
||
|
|