Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

319 lines
17 KiB

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