Changeset 5544 for trunk/src


Ignore:
Timestamp:
Apr 19, 2001, 10:32:19 AM (24 years ago)
Author:
sandervl
Message:

update with latest wine

Location:
trunk/src/shell32
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/shell32/shell32_main.h

    r4121 r5544  
    1 /* $Id: shell32_main.h,v 1.6 2000-08-30 13:50:57 sandervl Exp $ */
     1/* $Id: shell32_main.h,v 1.7 2001-04-19 08:32:18 sandervl Exp $ */
    22/*
    33 *      internal Shell32 Library definitions
     
    180180
    181181/* file operation */
     182#define ASK_DELETE_FILE          1
     183#define ASK_DELETE_FOLDER        2
     184#define ASK_DELETE_MULTIPLE_ITEM 3
     185
    182186BOOL SHELL_DeleteDirectoryA(LPCSTR pszDir, BOOL bShowUI);
     187BOOL SHELL_DeleteFileA(LPCSTR pszFile, BOOL bShowUI);
     188BOOL SHELL_WarnItemDelete(int nKindOfDialog, LPCSTR szDir);
    183189
    184190#ifdef __WIN32OS2__
  • trunk/src/shell32/shellstub.cpp

    r3554 r5544  
    1 /* $Id: shellstub.cpp,v 1.1 2000-05-18 18:06:59 sandervl Exp $ */
     1/* $Id: shellstub.cpp,v 1.2 2001-04-19 08:32:18 sandervl Exp $ */
    22
    33/*
     
    112112}
    113113
    114 ODINFUNCTION1(DWORD, IsNetDrive, DWORD, x1)
    115 {
    116   dprintf(("STUB!"));
    117   return 0;
    118 }
    119114
    120115ODINFUNCTION1(DWORD, SHGlobalDefect, DWORD, x1)
  • trunk/src/shell32/shlfileop.c

    r4121 r5544  
    1 /* $Id: shlfileop.c,v 1.1 2000-08-30 13:52:57 sandervl Exp $ */
    21/*
    32 * SHFileOperation
     
    109#include "debugtools.h"
    1110#include "shellapi.h"
    12 #include "shell32_main.h"
     11#include "shlwapi.h"
    1312
    1413#include "shlobj.h"
    1514#include "shresdef.h"
     15#include "shell32_main.h"
    1616#include "wine/undocshell.h"
     17#include "shlwapi.h"
    1718
    1819DEFAULT_DEBUG_CHANNEL(shell);
    1920
    20 #define ASK_DELETE_FILE 1
    21 #define ASK_DELETE_FOLDER 2
    22 #define ASK_DELETE_MULTIPLE_FILE 3
    23 
    24 static BOOL SHELL_WarnFolderDelete (int nKindOfDialog, LPCSTR szDir)
     21BOOL SHELL_WarnItemDelete (int nKindOfDialog, LPCSTR szDir)
    2522{
    2623        char szCaption[255], szText[255], szBuffer[MAX_PATH + 256];
    2724
    28         LoadStringA(shell32_hInstance, IDS_DELETEFOLDER_TEXT, szText, sizeof(szText));
    29         LoadStringA(shell32_hInstance, IDS_DELETEFOLDER_CAPTION, szCaption, sizeof(szCaption));
     25        if(nKindOfDialog == ASK_DELETE_FILE)
     26        {
     27          LoadStringA(shell32_hInstance, IDS_DELETEITEM_TEXT, szText,
     28                sizeof(szText));
     29          LoadStringA(shell32_hInstance, IDS_DELETEITEM_CAPTION,
     30                szCaption, sizeof(szCaption));
     31        }
     32        else if(nKindOfDialog == ASK_DELETE_FOLDER)
     33        {
     34          LoadStringA(shell32_hInstance, IDS_DELETEITEM_TEXT, szText,
     35                sizeof(szText));
     36          LoadStringA(shell32_hInstance, IDS_DELETEFOLDER_CAPTION,
     37                szCaption, sizeof(szCaption));
     38        }
     39        else if(nKindOfDialog == ASK_DELETE_MULTIPLE_ITEM)
     40        {
     41          LoadStringA(shell32_hInstance, IDS_DELETEMULTIPLE_TEXT, szText,
     42                sizeof(szText));
     43          LoadStringA(shell32_hInstance, IDS_DELETEITEM_CAPTION,
     44                szCaption, sizeof(szCaption));
     45        }
     46        else {
     47          FIXME("Called without a valid nKindOfDialog specified!");
     48          LoadStringA(shell32_hInstance, IDS_DELETEITEM_TEXT, szText,
     49                sizeof(szText));
     50          LoadStringA(shell32_hInstance, IDS_DELETEITEM_CAPTION,
     51                szCaption, sizeof(szCaption));
     52        }         
     53
    3054        FormatMessageA(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ARGUMENT_ARRAY,
    31             szText, 0, 0, szBuffer, sizeof(szBuffer), (DWORD*)&szDir);
     55            szText, 0, 0, szBuffer, sizeof(szBuffer), (va_list*)&szDir);
    3256
    3357        return (IDOK == MessageBoxA(GetActiveWindow(), szBuffer, szCaption, MB_OKCANCEL | MB_ICONEXCLAMATION));
     
    5175        strcat(szTemp, "*.*");
    5276       
    53         if (bShowUI && !SHELL_WarnFolderDelete(ASK_DELETE_FOLDER, pszDir)) return FALSE;
     77        if (bShowUI && !SHELL_WarnItemDelete(ASK_DELETE_FOLDER, pszDir))
     78          return FALSE;
    5479       
    5580        if(INVALID_HANDLE_VALUE != (hFind = FindFirstFileA(szTemp, &wfd)))
     
    77102}
    78103
     104/**************************************************************************
     105 *      SHELL_DeleteFileA()
     106 */
     107
     108BOOL SHELL_DeleteFileA(LPCSTR pszFile, BOOL bShowUI)
     109{
     110        if (bShowUI && !SHELL_WarnItemDelete(ASK_DELETE_FILE, pszFile))
     111                return FALSE;
     112 
     113        return DeleteFileA(pszFile);
     114}
     115
    79116/*************************************************************************
    80117 * SHCreateDirectory                            [SHELL32.165]
     
    123160DWORD WINAPI SHFileOperationA (LPSHFILEOPSTRUCTA lpFileOp)   
    124161{
    125         FIXME("(%p):stub.\n", lpFileOp);
     162        LPSTR pFrom = (LPSTR)lpFileOp->pFrom;
     163        LPSTR pTo = (LPSTR)lpFileOp->pTo;
     164        LPSTR pTempTo;
     165       
     166        switch(lpFileOp->wFunc) {
     167        case FO_COPY:
     168                TRACE("File Copy:\n");
     169                while(1) {
     170                        if(!pFrom[0]) break;
     171                        if(!pTo[0]) break;
     172                        TRACE("   From='%s' To='%s'\n", pFrom, pTo);
     173
     174                        pTempTo = HeapAlloc(GetProcessHeap(), 0, strlen(pTo)+1);
     175                        if (pTempTo)
     176                        {
     177                            strcpy( pTempTo, pTo );
     178                            PathRemoveFileSpecA(pTempTo);
     179                            TRACE("   Creating Directory '%s'\n", pTempTo);
     180                            SHCreateDirectory(NULL,pTempTo);
     181                            HeapFree(GetProcessHeap(), 0, pTempTo);
     182                        }
     183                        CopyFileA(pFrom, pTo, FALSE);
     184
     185                        pFrom += strlen(pFrom) + 1;
     186                        pTo += strlen(pTo) + 1;
     187                }
     188                TRACE("Setting AnyOpsAborted=FALSE\n");
     189                lpFileOp->fAnyOperationsAborted=FALSE;
     190                return 0;
     191
     192        case FO_DELETE:
     193                TRACE("File Delete:\n");
     194                while(1) {
     195                        if(!pFrom[0]) break;
     196                        TRACE("   File='%s'\n", pFrom);
     197                        DeleteFileA(pFrom);
     198                        pFrom += strlen(pFrom) + 1;
     199                }
     200                TRACE("Setting AnyOpsAborted=FALSE\n");
     201                lpFileOp->fAnyOperationsAborted=FALSE;
     202                return 0;
     203
     204        default:
     205                FIXME("Unhandled shell file operation %d\n", lpFileOp->wFunc);
     206        }
     207
    126208        return 1;
    127209}
     
    168250}
    169251
     252/*************************************************************************
     253 * IsNetDrive                   [SHELL32.66]
     254 */
     255BOOL WINAPI IsNetDrive(DWORD drive)
     256{
     257        char root[4];
     258        strcpy(root, "A:\\");
     259        root[0] += drive;
     260        return (GetDriveTypeA(root) == DRIVE_REMOTE);
     261}
  • trunk/src/shell32/shres.orc

    r4706 r5544  
    1 /* $Id: shres.orc,v 1.10 2000-11-28 11:00:47 sandervl Exp $ */
     1/* $Id: shres.orc,v 1.11 2001-04-19 08:32:18 sandervl Exp $ */
    22/*
    33 * Top level resource file for Common Dialogs
     
    138138        IDS_CREATEFOLDER_DENIED "Can not create new Folder: Permission denied."
    139139        IDS_CREATEFOLDER_CAPTION "Error during creating a new folder"
    140         IDS_DELETEFOLDER_TEXT "Are you sure you want to delete %1 and all it's subfolders?"
    141         IDS_DELETEFOLDER_CAPTION "Confirm file delete"
     140        IDS_DELETEITEM_CAPTION "Confirm file delete"
     141        IDS_DELETEFOLDER_CAPTION "Confirm folder delete"
     142        IDS_DELETEITEM_TEXT "Are you sure you want to delete '%1'?"
     143        IDS_DELETEMULTIPLE_TEXT "Are you sure you want to delete these %1 items?"
    142144}
    143145
  • trunk/src/shell32/shresdef.h

    r4121 r5544  
    1 /* $Id: shresdef.h,v 1.7 2000-08-30 13:51:09 sandervl Exp $ */
     1/* $Id: shresdef.h,v 1.8 2001-04-19 08:32:19 sandervl Exp $ */
    22
    33/*
     
    4141#define IDS_CREATEFOLDER_DENIED 30
    4242#define IDS_CREATEFOLDER_CAPTION 31
    43 #define IDS_DELETEFOLDER_TEXT   32
     43#define IDS_DELETEITEM_CAPTION  32
    4444#define IDS_DELETEFOLDER_CAPTION 33
     45#define IDS_DELETEITEM_TEXT     34
     46#define IDS_DELETEMULTIPLE_TEXT 35
    4547
    4648#define IDS_SHV_INVALID_FILENAME_TITLE 28
Note: See TracChangeset for help on using the changeset viewer.