- Timestamp:
- Mar 8, 2002, 12:01:03 PM (23 years ago)
- Location:
- trunk/src/shell32
- Files:
-
- 2 added
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/shell32/changenotify.c
r4121 r8048 1 /* $Id: changenotify.c,v 1. 1 2000-08-30 13:52:50sandervl Exp $ */1 /* $Id: changenotify.c,v 1.2 2002-03-08 11:00:58 sandervl Exp $ */ 2 2 /* 3 3 * shell change notification … … 29 29 HWND hwnd; /* window to notify */ 30 30 DWORD uMsg; /* message to send */ 31 LPNOTIFYREGISTER apidl; /* array of entr ys to watch*/31 LPNOTIFYREGISTER apidl; /* array of entries to watch*/ 32 32 UINT cidl; /* number of pidls in array */ 33 33 LONG wEventMask; /* subscribed events */ … … 185 185 186 186 /************************************************************************* 187 * SHChangeNotifyUpdateEntryList [SHELL32.5] 188 */ 189 BOOL WINAPI 190 SHChangeNotifyUpdateEntryList(DWORD unknown1, DWORD unknown2, 191 DWORD unknown3, DWORD unknown4) 192 { 193 FIXME("(0x%08lx, 0x%08lx, 0x%08lx, 0x%08lx)\n", 194 unknown1, unknown2, unknown3, unknown4); 195 196 return -1; 197 } 198 199 /************************************************************************* 187 200 * SHChangeNotify [SHELL32.239] 188 201 */ -
trunk/src/shell32/classes.c
r4121 r8048 1 /* $Id: classes.c,v 1. 1 2000-08-30 13:52:50sandervl Exp $ */1 /* $Id: classes.c,v 1.2 2002-03-08 11:00:58 sandervl Exp $ */ 2 2 /* 3 3 * file type mapping … … 17 17 #include "winreg.h" 18 18 19 #include "wine/obj_queryassociations.h"20 19 #include "shlobj.h" 21 20 #include "shell32_main.h" 22 21 #include "shlguid.h" 23 22 #include "shresdef.h" 23 #include "wine/obj_queryassociations.h" 24 24 25 25 DEFAULT_DEBUG_CHANNEL(shell); … … 32 32 33 33 TRACE("%s %p\n",szExtension, szFileType ); 34 35 /* added because we do not want to have double dots */ 36 if (szExtension[0]=='.') 37 bPrependDot=0; 34 38 35 39 if (bPrependDot) … … 106 110 strcpy(szDest, sTemp); 107 111 } 108 if (ParseFieldA (szDest, 2, sNum, 5)) *dwNr=atoi(sNum); 112 if (ParseFieldA (szDest, 2, sNum, 5)) 113 *dwNr=atoi(sNum); 114 else 115 *dwNr=0; /* sometimes the icon number is missing */ 109 116 ParseFieldA (szDest, 1, szDest, len); 110 117 ret = TRUE; -
trunk/src/shell32/clipboard.c
r4121 r8048 1 /* $Id: clipboard.c,v 1. 1 2000-08-30 13:52:50sandervl Exp $ */1 /* $Id: clipboard.c,v 1.2 2002-03-08 11:00:58 sandervl Exp $ */ 2 2 /* 3 3 * clipboard helper functions … … 27 27 #include <string.h> 28 28 29 #include "debugtools.h" 30 29 #include "winreg.h" 31 30 #include "pidl.h" 32 31 #include "wine/undocshell.h" 33 32 #include "shell32_main.h" 34 #include "shell.h" /* DROPFILESTRUCT */ 35 36 DEFAULT_DEBUG_CHANNEL(shell) 33 #include "shlwapi.h" 34 35 #include "debugtools.h" 36 37 DEFAULT_DEBUG_CHANNEL(shell); 37 38 38 39 static int refClipCount = 0; … … 102 103 char szFileName[MAX_PATH]; 103 104 HGLOBAL hGlobal; 104 LPDROPFILESTRUCTpDropFiles;105 DROPFILES *pDropFiles; 105 106 int offset; 106 107 … … 108 109 109 110 /* get the size needed */ 110 size = sizeof(DROPFILES TRUCT);111 size = sizeof(DROPFILES); 111 112 112 113 SHGetPathFromIDListA(pidlRoot, szRootPath); … … 126 127 if(!hGlobal) return hGlobal; 127 128 128 pDropFiles = ( LPDROPFILESTRUCT)GlobalLock(hGlobal);129 pDropFiles-> lSize = sizeof(DROPFILESTRUCT);130 pDropFiles->fWide Char= FALSE;131 132 offset = pDropFiles-> lSize;129 pDropFiles = (DROPFILES *)GlobalLock(hGlobal); 130 pDropFiles->pFiles = sizeof(DROPFILES); 131 pDropFiles->fWide = FALSE; 132 133 offset = pDropFiles->pFiles; 133 134 strcpy(szFileName, szRootPath); 134 135 -
trunk/src/shell32/dataobject.c
r4121 r8048 1 /* $Id: dataobject.c,v 1. 1 2000-08-30 13:52:51sandervl Exp $ */1 /* $Id: dataobject.c,v 1.2 2002-03-08 11:00:58 sandervl Exp $ */ 2 2 /* 3 3 * IEnumFORMATETC, IDataObject … … 20 20 #include "wine/obj_dataobject.h" 21 21 22 DEFAULT_DEBUG_CHANNEL(shell) 22 DEFAULT_DEBUG_CHANNEL(shell); 23 23 24 24 /*********************************************************************** -
trunk/src/shell32/dbgwrap.cpp
r7904 r8048 169 169 DEBUGWRAP4(ILGlobalFree) 170 170 DEBUGWRAP4(ILCreateFromPathAW) 171 DEBUGWRAP 4(PathGetExtensionAW)171 DEBUGWRAP12(PathGetExtensionAW) 172 172 NODEF_DEBUGWRAP4(PathIsDirectoryAW) 173 173 NODEF_DEBUGWRAP8(SHRunControlPanel) -
trunk/src/shell32/enumidlist.c
r7359 r8048 1 /* $Id: enumidlist.c,v 1. 3 2001-11-16 12:57:45 phallerExp $ */1 /* $Id: enumidlist.c,v 1.4 2002-03-08 11:00:59 sandervl Exp $ */ 2 2 /* 3 3 * IEnumIDList … … 91 91 * CreateFolderEnumList() 92 92 */ 93 #ifdef __WIN32OS2__ 93 #ifdef __WIN32OS2__TEST_TURNED_OFF 94 94 //CB: Special version to speed up retrieving files in a directory 95 95 -
trunk/src/shell32/makefile
r7904 r8048 1 # $Id: makefile,v 1.3 8 2002-02-14 12:10:08sandervl Exp $1 # $Id: makefile,v 1.39 2002-03-08 11:00:59 sandervl Exp $ 2 2 3 3 # … … 32 32 $(OBJDIR)\initterm.obj \ 33 33 $(OBJDIR)\initshell32.obj \ 34 $(OBJDIR)\os2_integration.obj \ 34 35 $(OBJDIR)\brsfolder.obj \ 35 36 $(OBJDIR)\changenotify.obj \ -
trunk/src/shell32/pidl.c
r7904 r8048 1 /* $Id: pidl.c,v 1.15 2002-03-08 11:00:59 sandervl Exp $ */ 1 2 /* 2 3 * pidl Handling … … 25 26 #include <string.h> 26 27 #include "winbase.h" 27 #include " debugtools.h"28 #include "winreg.h" 28 29 #include "shlguid.h" 29 30 #include "winerror.h" … … 35 36 36 37 #include "pidl.h" 38 #include "debugtools.h" 37 39 38 40 DEFAULT_DEBUG_CHANNEL(pidl); -
trunk/src/shell32/shell.c
r7085 r8048 1 /* $Id: shell.c,v 1. 2 2001-10-17 09:15:20 phallerExp $ */1 /* $Id: shell.c,v 1.3 2002-03-08 11:01:00 sandervl Exp $ */ 2 2 /* 3 3 * Shell Library Functions … … 400 400 /* First try to execute lpFile with lpParameters directly */ 401 401 strcpy(cmd,lpFile); 402 strcat(cmd,lpParameters ? lpParameters : ""); 402 if (lpParameters) { 403 strcat(cmd, " " ); 404 strcat(cmd,lpParameters ); 405 } 403 406 404 407 retval = WinExec16( cmd, iShowCmd ); -
trunk/src/shell32/shell32.def
r7904 r8048 1 ; $Id: shell32.def,v 1.3 6 2002-02-14 12:10:10 sandervl Exp $1 ; $Id: shell32.def,v 1.37 2002-03-08 11:01:00 sandervl Exp $ 2 2 3 3 ; Based on Windows 95 … … 167 167 ILGlobalGree = _ILGlobalFree@4 @156 168 168 ILCreateFromPath = _ILCreateFromPathAW@4 @157 169 PathGetExtension = _PathGetExtensionAW@ 4@158169 PathGetExtension = _PathGetExtensionAW@12 @158 170 170 PathIsDirectory = _PathIsDirectoryAW@4 @159 171 171 ; SHNetConnectionDialog = _SHNetConnectionDialog@? @160 -
trunk/src/shell32/shell32_main.c
r7085 r8048 1 /* $Id: shell32_main.c,v 1. 6 2001-10-17 09:15:21 phallerExp $ */1 /* $Id: shell32_main.c,v 1.7 2002-03-08 11:01:00 sandervl Exp $ */ 2 2 /* 3 3 * Shell basics … … 215 215 LPITEMIDLIST pidlLast = NULL, pidl = NULL; 216 216 HRESULT hr = S_OK; 217 BOOL IconNotYetLoaded=TRUE; 217 218 218 219 TRACE("(%s fattr=0x%lx sfi=%p(attr=0x%08lx) size=0x%x flags=0x%x)\n", … … 337 338 if (SUCCEEDED(hr) && (flags & SHGFI_TYPENAME)) 338 339 { 339 _ILGetFileType(pidlLast, psfi->szTypeName, 80); 340 if (!(flags & SHGFI_USEFILEATTRIBUTES)) 341 _ILGetFileType(pidlLast, psfi->szTypeName, 80); 342 else 343 { 344 char sTemp[64]; 345 strcpy(sTemp,PathFindExtensionA(path)); 346 if (!( HCR_MapTypeToValue(sTemp, sTemp, 64, TRUE) 347 && HCR_MapTypeToValue(sTemp, psfi->szTypeName, 80, FALSE ))) 348 { 349 lstrcpynA (psfi->szTypeName, sTemp, 80 - 6); 350 strcat (psfi->szTypeName, "-file"); 351 } 352 } 340 353 } 341 354 … … 359 372 { 360 373 hr = IExtractIconA_GetIconLocation(pei, (flags & SHGFI_OPENICON)? GIL_OPENICON : 0,szLoaction, MAX_PATH, &iIndex, &uFlags); 361 /* fixmewhat to do with the index? */374 /* FIXME what to do with the index? */ 362 375 363 376 if(uFlags != GIL_NOTFILENAME) … … 373 386 if (SUCCEEDED(hr) && (flags & (SHGFI_ICON | SHGFI_SYSICONINDEX))) 374 387 { 388 375 389 if (flags & SHGFI_USEFILEATTRIBUTES) 376 390 { … … 388 402 strcpy(sTemp, path); 389 403 } 390 /* FIXME: if sTemp contains a valid filename, get the icon 391 from there, index is in dwNr 392 */ 393 psfi->iIcon = 2; 404 IconNotYetLoaded=FALSE; 405 psfi->iIcon = 0; 406 if (SHGFI_LARGEICON) 407 PrivateExtractIconsA(sTemp,dwNr,GetSystemMetrics(SM_CXICON), 408 GetSystemMetrics(SM_CYICON), 409 &psfi->hIcon,0,1,0); 410 else 411 PrivateExtractIconsA(sTemp,dwNr,GetSystemMetrics(SM_CXSMICON), 412 GetSystemMetrics(SM_CYSMICON), 413 &psfi->hIcon,0,1,0); 394 414 } 395 415 else /* default icon */ … … 413 433 414 434 /* icon handle */ 415 if (SUCCEEDED(hr) && (flags & SHGFI_ICON) )435 if (SUCCEEDED(hr) && (flags & SHGFI_ICON) && IconNotYetLoaded) 416 436 psfi->hIcon = ImageList_GetIcon((flags & SHGFI_LARGEICON) ? ShellBigIconList:ShellSmallIconList, psfi->iIcon, ILD_NORMAL); 417 437 … … 432 452 return ret; 433 453 } 454 434 455 /************************************************************************* 435 456 * SHGetFileInfoW [SHELL32.@] … … 462 483 463 484 /************************************************************************* 464 * SHGetFileInfo AW[SHELL32.@]485 * SHGetFileInfo [SHELL32.@] 465 486 */ 466 487 DWORD WINAPI SHGetFileInfoAW( -
trunk/src/shell32/shell32_odin.cpp
r7904 r8048 1 /* $Id: shell32_odin.cpp,v 1. 3 2002-02-14 12:10:10 sandervl Exp $ */1 /* $Id: shell32_odin.cpp,v 1.4 2002-03-08 11:01:00 sandervl Exp $ */ 2 2 3 3 /* … … 55 55 #include <ctype.h> 56 56 #include <module.h> 57 58 #include "os2_integration.h" 59 57 60 58 61 /***************************************************************************** … … 982 985 LPCSTR lpDirectory, 983 986 INT iShowCmd ) 984 { HINSTANCE retval=31; 985 char old_dir[1024]; 986 char cmd[256]; 987 988 if (lpFile==NULL) return 0; /* should not happen */ 989 if (lpOperation==NULL) /* default is open */ 990 lpOperation="open"; 991 992 if (lpDirectory) 993 { GetCurrentDirectoryA( sizeof(old_dir), old_dir ); 994 SetCurrentDirectoryA( lpDirectory ); 995 } 996 997 cmd[0] = '\0'; 998 retval = SHELL_FindExecutable( lpFile, lpOperation, cmd ); 999 1000 if (retval > 32) /* Found */ 987 { 988 HINSTANCE retval=31; 989 char old_dir[1024]; 990 char cmd[256]; 991 LONG cmdlen = sizeof( cmd ); 992 LPSTR tok; 993 994 if (lpFile==NULL) 995 return 0; /* should not happen */ 996 997 if (lpOperation==NULL) /* default is open */ 998 lpOperation="open"; 999 1000 if (lpDirectory) 1001 { 1002 // @@@PH 2002-02-26 might throw whole process off track 1003 // in case of concurrency 1004 GetCurrentDirectoryA( sizeof(old_dir), old_dir ); 1005 SetCurrentDirectoryA( lpDirectory ); 1006 } 1007 1008 cmd[0] = '\0'; 1009 retval = SHELL_FindExecutable( lpFile, lpOperation, cmd ); 1010 1011 if (retval > 32) /* Found */ 1012 { 1013 if (lpParameters) 1001 1014 { 1002 if (lpParameters) 1003 { 1004 strcat(cmd," "); 1005 strcat(cmd,lpParameters); 1006 } 1007 1008 dprintf(("starting %s\n",cmd)); 1009 retval = WinExec( cmd, iShowCmd ); 1010 } 1011 else if(PathIsURLA((LPSTR)lpFile)) /* File not found, check for URL */ 1015 strcat(cmd," "); 1016 strcat(cmd,lpParameters); 1017 } 1018 1019 dprintf(("starting %s\n",cmd)); 1020 retval = WinExec( cmd, iShowCmd ); 1021 } 1022 else 1023 { 1024 // - path might be an URL 1025 // - argument might be associated with some class / app 1026 1027 // 2002-02-26 PH 1028 // File Extension Association is missing. We'd have to lookup 1029 // i. e. ".doc" and create the command. 1030 // @@@PH 1031 1032 // build lookup key 1033 char lpstrShellSubkey[256] = "\\shell\\"; 1034 /* Looking for ...protocol\shell\lpOperation\command */ 1035 strcat( lpstrShellSubkey, lpOperation ); 1036 strcat( lpstrShellSubkey, "\\command" ); 1037 1038 // First, check for URL association 1039 if(PathIsURLA((LPSTR)lpFile)) /* File not found, check for URL */ 1012 1040 { 1013 char lpstrProtocol[256];1014 LONG cmdlen = 512;1015 1041 LPSTR lpstrRes; 1016 1042 INT iSize; 1017 1043 1018 1044 lpstrRes = strchr(lpFile,':'); 1019 iSize = lpstrRes - lpFile; 1020 1021 /* Looking for ...protocol\shell\lpOperation\command */ 1022 strncpy(lpstrProtocol,lpFile,iSize); 1023 lpstrProtocol[iSize]='\0'; 1024 strcat( lpstrProtocol, "\\shell\\" ); 1025 strcat( lpstrProtocol, lpOperation ); 1026 strcat( lpstrProtocol, "\\command" ); 1027 1028 /* Remove File Protocol from lpFile */ 1029 /* In the case file://path/file */ 1030 if(!strnicmp(lpFile,"file",iSize)) 1045 if (NULL != lpstrRes) 1031 1046 { 1032 lpFile += iSize; 1033 while(*lpFile == ':') lpFile++; 1034 } 1035 1036 1037 /* Get the application for the protocol and execute it */ 1038 if (RegQueryValueA( HKEY_CLASSES_ROOT, lpstrProtocol, cmd, 1047 char szProtocol[256]; 1048 1049 iSize = lpstrRes - lpFile; 1050 1051 strncpy(szProtocol, 1052 lpFile, 1053 min( sizeof( szProtocol ), iSize) ); 1054 1055 /* Remove File Protocol from lpFile */ 1056 /* In the case file://path/file */ 1057 if(!strnicmp(lpFile,"file",iSize)) 1058 { 1059 lpFile += iSize; 1060 while(*lpFile == ':') lpFile++; 1061 } 1062 1063 /* Get the application for the protocol and execute it */ 1064 if (RegQueryValueA(HKEY_CLASSES_ROOT, 1065 szProtocol, 1066 cmd, 1039 1067 &cmdlen ) == ERROR_SUCCESS ) 1040 { 1041 LPSTR tok; 1068 { 1042 1069 LPSTR tmp; 1043 1070 char param[256] = ""; 1044 1071 LONG paramlen = 256; 1045 1072 1046 1073 /* Get the parameters needed by the application 1047 1074 from the associated ddeexec key */ 1048 tmp = strstr( lpstrProtocol,"command");1075 tmp = strstr(szProtocol,"command"); 1049 1076 tmp[0] = '\0'; 1050 strcat(lpstrProtocol,"ddeexec"); 1051 1052 if(RegQueryValueA( HKEY_CLASSES_ROOT, lpstrProtocol, param,¶mlen ) == ERROR_SUCCESS) 1077 strcat(szProtocol,"ddeexec"); 1078 1079 if(RegQueryValueA(HKEY_CLASSES_ROOT, 1080 szProtocol, 1081 param, 1082 ¶mlen ) == ERROR_SUCCESS) 1053 1083 { 1054 1084 strcat(cmd," "); … … 1056 1086 cmdlen += paramlen; 1057 1087 } 1058 1059 /* Is there a replace() function anywhere? */ 1060 cmd[cmdlen]='\0'; 1061 tok=strstr( cmd, "%1" ); 1062 if (tok != NULL) 1088 } 1089 } 1090 } 1091 1092 1093 // Second, check for filename extension association 1094 if (0 == cmd[0]) 1095 { 1096 LPSTR lpstrRDot = strrchr(lpFile, '.'); 1097 if (NULL != lpstrRDot) 1098 { 1099 char szAssociation[256]; 1100 LONG lAssociationLen = sizeof( szAssociation ); 1101 1102 // lookup associated application (or COM object) for 1103 // this extension 1104 if (RegQueryValueA(HKEY_CLASSES_ROOT, 1105 lpstrRDot, 1106 szAssociation, 1107 &lAssociationLen) == ERROR_SUCCESS) 1108 { 1109 // append the shell subkey 1110 strcat(szAssociation, lpstrShellSubkey); 1111 lAssociationLen = sizeof( szAssociation ); 1112 1113 // lookup application for retrieved association 1114 if (RegQueryValueA(HKEY_CLASSES_ROOT, 1115 szAssociation, 1116 cmd, 1117 &cmdlen) == ERROR_SUCCESS) 1063 1118 { 1064 tok[0]='\0'; /* truncate string at the percent */ 1065 strcat( cmd, lpFile ); /* what if no dir in xlpFile? */ 1066 tok=strstr( cmd, "%1" ); 1067 if ((tok!=NULL) && (strlen(tok)>2)) 1068 { 1069 strcat( cmd, &tok[2] ); 1070 } 1071 } 1072 1073 retval = WinExec( cmd, iShowCmd ); 1119 // received cmd now 1120 } 1121 } 1074 1122 } 1075 1123 } 1076 /* Check if file specified is in the form www.??????.*** */ 1077 else if(!strnicmp(lpFile,"www",3)) 1124 1125 1126 #ifdef __WIN32OS2__ 1127 if (0 == cmd[0]) 1078 1128 { 1079 /* if so, append lpFile http:// and call ShellExecute */ 1080 char lpstrTmpFile[256] = "http://" ; 1081 strcat(lpstrTmpFile,lpFile); 1082 retval = ShellExecuteA(hWnd,lpOperation,lpstrTmpFile,NULL,NULL,0); 1083 } 1129 // OS/2 specific addon: 1130 // if no windows association is found, pass on to the workplace shell 1131 // eventually. 1132 retval = ShellExecuteOS2(hWnd, 1133 lpOperation, 1134 lpFile, 1135 lpParameters, 1136 lpDirectory, 1137 iShowCmd); 1138 } 1139 #endif 1140 1141 if (0 != cmd[0]) 1142 { 1143 // resolve the parameters 1144 // @@@PH 2002-02-26 there might be more than one parameter only 1145 /* Is there a replace() function anywhere? */ 1146 tok=strstr( cmd, "%1" ); 1147 if (tok != NULL) 1148 { 1149 tok[0]='\0'; /* truncate string at the percent */ 1150 strcat( cmd, lpFile ); /* what if no dir in xlpFile? */ 1151 tok=strstr( cmd, "%1" ); 1152 if ((tok!=NULL) && (strlen(tok)>2)) 1153 { 1154 strcat( cmd, &tok[2] ); 1155 } 1156 } 1157 } 1158 1084 1159 /* Nothing was done yet, try to execute the cmdline directly, 1085 1086 else1160 maybe it's an OS/2 program */ 1161 if (0 == cmd[0]) 1087 1162 { 1088 1163 strcpy(cmd,lpFile); 1089 1164 strcat(cmd,lpParameters ? lpParameters : ""); 1090 retval = WinExec( cmd, iShowCmd ); 1091 } 1092 1093 if (lpDirectory) 1094 SetCurrentDirectoryA( old_dir ); 1095 return retval; 1165 } 1166 1167 // now launch ... something :) 1168 retval = WinExec( cmd, iShowCmd ); 1169 } 1170 1171 if (lpDirectory) 1172 SetCurrentDirectoryA( old_dir ); 1173 1174 return retval; 1096 1175 } 1097 1176 -
trunk/src/shell32/shell32dbg.def
r7904 r8048 1 ; $Id: shell32dbg.def,v 1. 1 2002-02-14 12:10:11 sandervl Exp $1 ; $Id: shell32dbg.def,v 1.2 2002-03-08 11:01:01 sandervl Exp $ 2 2 3 3 ; Based on Windows 95 … … 167 167 ILGlobalGree = _DbgILGlobalFree@4 @156 168 168 ILCreateFromPath = _DbgILCreateFromPathAW@4 @157 169 PathGetExtension = _DbgPathGetExtensionAW@ 4@158169 PathGetExtension = _DbgPathGetExtensionAW@12 @158 170 170 PathIsDirectory = _DbgPathIsDirectoryAW@4 @159 171 171 ; SHNetConnectionDialog = _DbgSHNetConnectionDialog@? @160 -
trunk/src/shell32/shelllink.c
r7508 r8048 118 118 #include "poppack.h" 119 119 120 typedef struct 121 { 122 HRSRC *pResInfo; 123 int nIndex; 124 } ENUMRESSTRUCT; 120 125 121 126 static ICOM_VTABLE(IShellLinkA) slvt; … … 162 167 #define _ICOM_THIS_From_IPersistStream(class, name) class* This = (class*)(((char*)name)-_IPersistStream_Offset); 163 168 #define _IPersistStream_From_ICOM_THIS(class, name) class* StreamThis = (class*)(((char*)name)+_IPersistStream_Offset); 169 170 171 /* strdup on the process heap */ 172 inline static LPSTR heap_strdup( LPCSTR str ) 173 { 174 INT len = strlen(str) + 1; 175 LPSTR p = HeapAlloc( GetProcessHeap(), 0, len ); 176 if (p) memcpy( p, str, len ); 177 return p; 178 } 179 164 180 165 181 /************************************************************************** … … 364 380 static BOOL CALLBACK EnumResNameProc(HANDLE hModule, const char *lpszType, char *lpszName, LONG lParam) 365 381 { 366 *(HRSRC *) lParam = FindResourceA(hModule, lpszName, RT_GROUP_ICONA); 367 return FALSE; 368 } 382 ENUMRESSTRUCT *sEnumRes = (ENUMRESSTRUCT *) lParam; 383 384 if (!sEnumRes->nIndex--) 385 { 386 *sEnumRes->pResInfo = FindResourceA(hModule, lpszName, RT_GROUP_ICONA); 387 return FALSE; 388 } 389 else 390 return TRUE; 391 } 392 369 393 370 394 static int ExtractFromEXEDLL(const char *szFileName, int nIndex, const char *szXPMFileName) … … 448 472 #else 449 473 for (i = 0; i < pIconDir->idCount; i++) 450 if ((pIconDir->idEntries[i]. bHeight * pIconDir->idEntries[i].bWidth) > nMax)474 if ((pIconDir->idEntries[i].wBitCount >= nMaxBits) && (pIconDir->idEntries[i].wBitCount <= 8)) 451 475 { 452 lpName = MAKEINTRESOURCEA(pIconDir->idEntries[i].nID); 453 nMax = pIconDir->idEntries[i].bHeight * pIconDir->idEntries[i].bWidth; 476 if (pIconDir->idEntries[i].wBitCount > nMaxBits) 477 { 478 nMaxBits = pIconDir->idEntries[i].wBitCount; 479 nMax = 0; 480 } 481 if ((pIconDir->idEntries[i].bHeight * pIconDir->idEntries[i].bWidth) > nMax) 482 { 483 lpName = MAKEINTRESOURCEA(pIconDir->idEntries[i].nID); 484 nMax = pIconDir->idEntries[i].bHeight * pIconDir->idEntries[i].bWidth; 485 } 454 486 } 455 487 … … 480 512 481 513 done: 514 482 515 FreeResource(hResData); 483 516 FreeLibrary(hModule); … … 565 598 566 599 if (!wine_get_unix_file_name( dos, buffer, sizeof(buffer) )) return NULL; 567 return HEAP_strdupA( GetProcessHeap(), 0,buffer );600 return heap_strdup( buffer ); 568 601 } 569 602 … … 594 627 static char *extract_icon( const char *path, int index) 595 628 { 596 char *filename = HEAP_strdupA( GetProcessHeap(), 0,tmpnam(NULL) );629 char *filename = heap_strdup( tmpnam(NULL) ); 597 630 if (ExtractFromEXEDLL( path, index, filename )) return filename; 598 631 if (ExtractFromICO( path, filename )) return filename; … … 602 635 } 603 636 #endif 637 604 638 605 639 static HRESULT WINAPI IPersistFile_fnSave(IPersistFile* iface, LPCOLESTR pszFileName, BOOL fRemember) … … 709 743 } 710 744 if (!*buffer) return NOERROR; 711 shell_link_app = HEAP_strdupA( GetProcessHeap(), 0,buffer );745 shell_link_app = heap_strdup( buffer ); 712 746 713 747 if (!WideCharToMultiByte( CP_ACP, 0, pszFileName, -1, buffer, sizeof(buffer), NULL, NULL)) 714 748 return ERROR_UNKNOWN; 715 749 GetFullPathNameA( buffer, sizeof(buff2), buff2, NULL ); 716 filename = HEAP_strdupA( GetProcessHeap(), 0,buff2 );750 filename = heap_strdup( buff2 ); 717 751 718 752 if (SHGetSpecialFolderPathA( 0, buffer, CSIDL_STARTUP, FALSE )) … … 962 996 963 997 SHGetPathFromIDListA(&lpLinkHeader->Pidl, sTemp); 964 This->sPath = HEAP_strdupA ( GetProcessHeap(), 0, sTemp);998 This->sPath = heap_strdup( sTemp ); 965 999 } 966 1000 This->wHotKey = lpLinkHeader->wHotKey; … … 1126 1160 HeapFree(GetProcessHeap(), 0, This->sArgs); 1127 1161 1128 1129 1162 if (This->sWorkDir) 1130 1163 HeapFree(GetProcessHeap(), 0, This->sWorkDir); … … 1199 1232 if (This->sDescription) 1200 1233 HeapFree(GetProcessHeap(), 0, This->sDescription); 1201 if (!(This->sDescription = HEAP_strdupA(GetProcessHeap(), 0,pszName)))1234 if (!(This->sDescription = heap_strdup(pszName))) 1202 1235 return E_OUTOFMEMORY; 1203 1236 … … 1222 1255 if (This->sWorkDir) 1223 1256 HeapFree(GetProcessHeap(), 0, This->sWorkDir); 1224 if (!(This->sWorkDir = HEAP_strdupA(GetProcessHeap(), 0,pszDir)))1257 if (!(This->sWorkDir = heap_strdup(pszDir))) 1225 1258 return E_OUTOFMEMORY; 1226 1259 … … 1245 1278 if (This->sArgs) 1246 1279 HeapFree(GetProcessHeap(), 0, This->sArgs); 1247 if (!(This->sArgs = HEAP_strdupA(GetProcessHeap(), 0,pszArgs)))1280 if (!(This->sArgs = heap_strdup(pszArgs))) 1248 1281 return E_OUTOFMEMORY; 1249 1282 … … 1304 1337 if (This->sIcoPath) 1305 1338 HeapFree(GetProcessHeap(), 0, This->sIcoPath); 1306 if (!(This->sIcoPath = HEAP_strdupA(GetProcessHeap(), 0,pszIconPath)))1339 if (!(This->sIcoPath = heap_strdup(pszIconPath))) 1307 1340 return E_OUTOFMEMORY; 1308 1341 This->iIcoNdx = iIcon; … … 1332 1365 if (This->sPath) 1333 1366 HeapFree(GetProcessHeap(), 0, This->sPath); 1334 if (!(This->sPath = HEAP_strdupA(GetProcessHeap(), 0,pszFile)))1367 if (!(This->sPath = heap_strdup(pszFile))) 1335 1368 return E_OUTOFMEMORY; 1336 1369 -
trunk/src/shell32/shellord.c
r7904 r8048 41 41 #include "undocshell.h" 42 42 #endif 43 #include "pidl.h" 44 #include "shlwapi.h" 45 #include "commdlg.h" 43 46 44 47 DEFAULT_DEBUG_CHANNEL(shell); … … 81 84 * ParseFieldW [internal] 82 85 * 83 * cop ys a field from a ',' delimited string86 * copies a field from a ',' delimited string 84 87 * 85 88 * first field is nField = 1 … … 106 109 * 107 110 */ 108 BOOL WIN32API GetFileNameFromBrowse(HWND hwndOwner, LPSTR lpstrFile, 109 DWORD nMaxFile, LPCSTR lpstrInitialDir, 110 LPCSTR lpstrDefExt, LPCSTR lpstrFilter, 111 BOOL WINAPI GetFileNameFromBrowse( 112 HWND hwndOwner, 113 LPSTR lpstrFile, 114 DWORD nMaxFile, 115 LPCSTR lpstrInitialDir, 116 LPCSTR lpstrDefExt, 117 LPCSTR lpstrFilter, 111 118 LPCSTR lpstrTitle) 112 119 { 113 FIXME("(%04x,%s,%ld,%s,%s,%s,%s):stub.\n", 120 HMODULE hmodule; 121 FARPROC pGetOpenFileNameA; 122 OPENFILENAMEA ofn; 123 BOOL ret; 124 125 TRACE("%04x, %s, %ld, %s, %s, %s, %s)\n", 114 126 hwndOwner, lpstrFile, nMaxFile, lpstrInitialDir, lpstrDefExt, 115 127 lpstrFilter, lpstrTitle); 116 128 117 /* puts up a Open Dialog and requests input into targetbuf */118 129 /* OFN_HIDEREADONLY|OFN_NOCHANGEDIR|OFN_FILEMUSTEXIST|OFN_unknown */ 119 strcpy(lpstrFile,"x:\\dummy.exe"); 120 return 1; 130 hmodule = LoadLibraryA("comdlg32.dll"); 131 if(!hmodule) return FALSE; 132 pGetOpenFileNameA = GetProcAddress(hmodule, "GetOpenFileNameA"); 133 if(!pGetOpenFileNameA) 134 { 135 FreeLibrary(hmodule); 136 return FALSE; 137 } 138 139 memset(&ofn, 0, sizeof(ofn)); 140 141 ofn.lStructSize = sizeof(ofn); 142 ofn.hwndOwner = hwndOwner; 143 ofn.lpstrFilter = lpstrFilter; 144 ofn.lpstrFile = lpstrFile; 145 ofn.nMaxFile = nMaxFile; 146 ofn.lpstrInitialDir = lpstrInitialDir; 147 ofn.lpstrTitle = lpstrTitle; 148 ofn.lpstrDefExt = lpstrDefExt; 149 ofn.Flags = OFN_EXPLORER | OFN_HIDEREADONLY | OFN_FILEMUSTEXIST; 150 ret = pGetOpenFileNameA(&ofn); 151 152 FreeLibrary(hmodule); 153 return ret; 121 154 } 122 155 … … 348 381 #endif 349 382 350 #if __WIN32OS2_ 383 #if __WIN32OS2__ 351 384 HEAP_free(x); 352 385 #else … … 1030 1063 /* the commandline contains 'c:\Path\wordpad.exe "%1"' */ 1031 1064 HCR_GetExecuteCommand(sei->lpClass, (sei->lpVerb) ? sei->lpVerb : "open", szCommandline, sizeof(szCommandline)); 1032 /* fixme: get the extension of lpFile, check if it fits to the lpClass */1065 /* FIXME: get the extension of lpFile, check if it fits to the lpClass */ 1033 1066 TRACE("SEE_MASK_CLASSNAME->'%s'\n", szCommandline); 1034 1067 } … … 1064 1097 TRACE("execute:'%s','%s'\n",szApplicationName, szCommandline); 1065 1098 1066 strcat(szApplicationName, " "); 1067 strcat(szApplicationName, szCommandline); 1099 if (szCommandline[0]) { 1100 strcat(szApplicationName, " "); 1101 strcat(szApplicationName, szCommandline); 1102 } 1068 1103 1069 1104 ZeroMemory(&startup,sizeof(STARTUPINFOA)); … … 1072 1107 if (! CreateProcessA(NULL, szApplicationName, 1073 1108 NULL, NULL, FALSE, 0, 1074 NULL, NULL, &startup, &info)) 1109 NULL, sei->lpDirectory, 1110 &startup, &info)) 1075 1111 { 1076 1112 sei->hInstApp = GetLastError(); … … 1263 1299 * parameter1 is return value from SHAllocShared 1264 1300 * parameter2 is return value from GetCurrentProcessId 1265 * the receiver of (WM_USER+2) tr ys to lock the HANDLE (?)1266 * the return value seems to be a memoryadress1301 * the receiver of (WM_USER+2) tries to lock the HANDLE (?) 1302 * the return value seems to be a memory address 1267 1303 */ 1268 1304 LPVOID WINAPI SHLockShared(HANDLE hmem, DWORD procID) -
trunk/src/shell32/shellpath.c
r7085 r8048 123 123 * PathGetExtensionAW [SHELL32.158] 124 124 */ 125 LPVOID WINAPI PathGetExtensionAW(LPCVOID lpszPath )125 LPVOID WINAPI PathGetExtensionAW(LPCVOID lpszPath, DWORD void1, DWORD void2) 126 126 { 127 127 if (SHELL_OsIsUnicode()) … … 824 824 "PrintHood" 825 825 }, 826 { /* CSIDL_LOCAL_APPDATA */827 0, 0, /* FIXME */828 NULL,829 NULL,826 { /* CSIDL_LOCAL_APPDATA (win2k only/undocumented) */ 827 1, HKCU, 828 "Local AppData", 829 "Local Settings\\Application Data", 830 830 }, 831 831 { /* CSIDL_ALTSTARTUP */ -
trunk/src/shell32/shellstring.c
r6709 r8048 6 6 #include "winnls.h" 7 7 #include "winerror.h" 8 #include "debugtools.h" 9 #include "heap.h" 8 #include "winreg.h" 10 9 11 10 #include "shlobj.h" 12 #include "shlwapi.h"13 11 #include "shellapi.h" 14 12 #include "shell32_main.h" 15 13 #include "wine/undocshell.h" 16 14 #include "wine/unicode.h" 15 #include "debugtools.h" 17 16 18 17 DEFAULT_DEBUG_CHANNEL(shell); 19 18 20 19 /************************* STRRET functions ****************************/ 20 21 /* 22 * ***** NOTE ***** 23 * These routines are identical to StrRetToBuf[AW] in dlls/shlwapi/string.c. 24 * They were duplicated here because not every version of Shlwapi.dll exports 25 * StrRetToBuf[AW]. If you change one routine, change them both. YOU HAVE BEEN 26 * WARNED. 27 * ***** NOTE ***** 28 */ 29 30 HRESULT WINAPI StrRetToStrNA (LPVOID dest, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl) 31 { 32 TRACE("dest=0x%p len=0x%lx strret=0x%p pidl=%p stub\n",dest,len,src,pidl); 33 34 switch (src->uType) 35 { 36 case STRRET_WSTR: 37 WideCharToMultiByte(CP_ACP, 0, src->u.pOleStr, -1, (LPSTR)dest, len, NULL, NULL); 38 /* SHFree(src->u.pOleStr); FIXME: is this right? */ 39 break; 40 41 case STRRET_CSTRA: 42 lstrcpynA((LPSTR)dest, src->u.cStr, len); 43 break; 44 45 case STRRET_OFFSETA: 46 lstrcpynA((LPSTR)dest, ((LPCSTR)&pidl->mkid)+src->u.uOffset, len); 47 break; 48 49 default: 50 FIXME("unknown type!\n"); 51 if (len) 52 { 53 *(LPSTR)dest = '\0'; 54 } 55 return(FALSE); 56 } 57 return S_OK; 58 } 59 60 /************************************************************************/ 61 62 HRESULT WINAPI StrRetToStrNW (LPVOID dest1, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl) 63 { 64 LPWSTR dest = (LPWSTR) dest1; 65 TRACE("dest=0x%p len=0x%lx strret=0x%p pidl=%p stub\n",dest,len,src,pidl); 66 67 switch (src->uType) 68 { 69 case STRRET_WSTR: 70 lstrcpynW((LPWSTR)dest, src->u.pOleStr, len); 71 /* SHFree(src->u.pOleStr); FIXME: is this right? */ 72 break; 73 74 case STRRET_CSTRA: 75 if (!MultiByteToWideChar( CP_ACP, 0, src->u.cStr, -1, dest, len ) && len) 76 dest[len-1] = 0; 77 break; 78 79 case STRRET_OFFSETA: 80 if (pidl) 81 { 82 if (!MultiByteToWideChar( CP_ACP, 0, ((LPCSTR)&pidl->mkid)+src->u.uOffset, -1, 83 dest, len ) && len) 84 dest[len-1] = 0; 85 } 86 break; 87 88 default: 89 FIXME("unknown type!\n"); 90 if (len) 91 { *(LPSTR)dest = '\0'; 92 } 93 return(FALSE); 94 } 95 return S_OK; 96 } 97 21 98 22 99 /************************************************************************* … … 28 105 * the pidl is for STRRET OFFSET 29 106 */ 30 HRESULT WINAPI StrRetToStrNA (LPVOID dest, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl)31 {32 return StrRetToBufA( src, pidl, dest, len );33 }34 35 HRESULT WINAPI StrRetToStrNW (LPVOID dest, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl)36 {37 return StrRetToBufW( src, pidl, dest, len );38 }39 40 107 HRESULT WINAPI StrRetToStrNAW (LPVOID dest, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl) 41 108 { … … 127 194 return OleStrToStrNA (lpOut, nOut, lpIn, nIn); 128 195 } 196 197 198 /************************************************************************* 199 * CheckEscapes [SHELL32] 200 */ 201 DWORD WINAPI CheckEscapesA( 202 LPSTR string, /* [in] string to check ??*/ 203 DWORD b, /* [???] is 0 */ 204 DWORD c, /* [???] is 0 */ 205 LPDWORD d, /* [???] is address */ 206 LPDWORD e, /* [???] is address */ 207 DWORD handle ) /* [in] looks like handle but not */ 208 { 209 FIXME("(%p<%s> %ld %ld %p<%ld> %p<%ld> 0x%08lx) stub\n", 210 string, debugstr_a(string), 211 b, 212 c, 213 d, (d) ? *d : 0xabbacddc, 214 e, (e) ? *e : 0xabbacddd, 215 handle); 216 return 0; 217 } 218 219 DWORD WINAPI CheckEscapesW( 220 LPWSTR string, /* [in] string to check ??*/ 221 DWORD b, /* [???] is 0 */ 222 DWORD c, /* [???] is 0 */ 223 LPDWORD d, /* [???] is address */ 224 LPDWORD e, /* [???] is address */ 225 DWORD handle ) /* [in] looks like handle but not */ 226 { 227 FIXME("(%p<%s> %ld %ld %p<%ld> %p<%ld> 0x%08lx) stub\n", 228 string, debugstr_w(string), 229 b, 230 c, 231 d, (d) ? *d : 0xabbacddc, 232 e, (e) ? *e : 0xabbacddd, 233 handle); 234 return 0; 235 } -
trunk/src/shell32/shlfolder.c
r7359 r8048 1537 1537 if (! SHELL_DeleteDirectoryA(szPath, bConfirm)) 1538 1538 { 1539 TRACE("delete %s failed, bConfirm=%d ", szPath, bConfirm);1539 TRACE("delete %s failed, bConfirm=%d\n", szPath, bConfirm); 1540 1540 return E_FAIL; 1541 1541 } … … 1551 1551 if (! SHELL_DeleteFileA(szPath, bConfirm)) 1552 1552 { 1553 TRACE("delete %s failed, bConfirm=%d ", szPath, bConfirm);1553 TRACE("delete %s failed, bConfirm=%d\n", szPath, bConfirm); 1554 1554 return E_FAIL; 1555 1555 } … … 1566 1566 * ISFHelper_fnCopyItems 1567 1567 * 1568 * cop ys items to this folder1568 * copies items to this folder 1569 1569 */ 1570 1570 static HRESULT WINAPI ISFHelper_fnCopyItems( … … 1721 1721 if (pchEaten) *pchEaten = 0; /* strange but like the original */ 1722 1722 1723 /* fixmeno real parsing implemented */1723 /* FIXME no real parsing implemented */ 1724 1724 pidlTemp = _ILCreateMyComputer(); 1725 1725 szNext = lpszDisplayName; … … 1778 1778 GUID const * clsid; 1779 1779 IShellFolder *pShellFolder, *pSubFolder; 1780 HRESULT hr; 1780 1781 1781 1782 TRACE("(%p)->(pidl=%p,%p,\n\tIID:\t%s,%p)\n", … … 1824 1825 { 1825 1826 *ppvOut = pShellFolder; 1827 hr = S_OK; 1826 1828 } 1827 1829 else /* go deeper */ 1828 1830 { 1829 IShellFolder_BindToObject(pShellFolder, ILGetNext(pidl), NULL, riid, (LPVOID)&pSubFolder);1831 hr = IShellFolder_BindToObject(pShellFolder, ILGetNext(pidl), NULL, riid, (LPVOID)&pSubFolder); 1830 1832 IShellFolder_Release(pShellFolder); 1831 1833 *ppvOut = pSubFolder; 1832 1834 } 1833 1835 1834 TRACE("-- (%p) returning (%p) \n",This, *ppvOut);1835 1836 return S_OK;1836 TRACE("-- (%p) returning (%p) %08lx\n",This, *ppvOut, hr); 1837 1838 return hr; 1837 1839 } 1838 1840 … … 2220 2222 IShellFolder *pShellFolder, *pSubFolder; 2221 2223 LPITEMIDLIST pidltemp; 2224 HRESULT hr; 2222 2225 2223 2226 TRACE("(%p)->(pidl=%p,%p,\n\tIID:\t%s,%p)\n", … … 2247 2250 { 2248 2251 *ppvOut = pShellFolder; 2252 hr = S_OK; 2249 2253 } 2250 2254 else /* go deeper */ 2251 2255 { 2252 IShellFolder_BindToObject(pShellFolder, ILGetNext(pidl), NULL, &IID_IShellFolder, (LPVOID)&pSubFolder); 2256 hr = IShellFolder_BindToObject(pShellFolder, ILGetNext(pidl), NULL, 2257 riid, (LPVOID)&pSubFolder); 2253 2258 IShellFolder_Release(pShellFolder); 2254 2259 *ppvOut = pSubFolder; 2255 2260 } 2256 2261 2257 TRACE("-- (%p) returning (%p) \n",This, *ppvOut);2258 2259 return S_OK;2262 TRACE("-- (%p) returning (%p) %08lx\n",This, *ppvOut, hr); 2263 2264 return hr; 2260 2265 } 2261 2266 -
trunk/src/shell32/shlview.c
r6709 r8048 139 139 typedef void (* CALLBACK PFNSHGETSETTINGSPROC)(LPSHELLFLAGSTATE lpsfs, DWORD dwMask); 140 140 #else 141 typedef void CALLBACK (*PFNSHGETSETTINGSPROC)(LPSHELLFLAGSTATE lpsfs, DWORD dwMask);141 typedef void (CALLBACK *PFNSHGETSETTINGSPROC)(LPSHELLFLAGSTATE lpsfs, DWORD dwMask); 142 142 #endif 143 143 … … 536 536 ListView_SetItemA(This->hWndList, &lvItem); 537 537 ListView_Update(This->hWndList, nItem); 538 return TRUE; /* fixme: better handling */538 return TRUE; /* FIXME: better handling */ 539 539 } 540 540 return FALSE; … … 1152 1152 1153 1153 case LVN_GETDISPINFOA: 1154 TRACE("-- LVN_GETDISPINFOA %p\n",This); 1154 case LVN_GETDISPINFOW: 1155 TRACE("-- LVN_GETDISPINFO %p\n",This); 1155 1156 pidl = (LPITEMIDLIST)lpdi->item.lParam; 1156 1157 … … 1161 1162 SHELLDETAILS sd; 1162 1163 IShellFolder2_GetDetailsOf(This->pSF2Parent, pidl, lpdi->item.iSubItem, &sd); 1164 if (lpnmh->code == LVN_GETDISPINFOA) 1165 { 1163 1166 StrRetToStrNA( lpdi->item.pszText, lpdi->item.cchTextMax, &sd.str, NULL); 1164 1167 TRACE("-- text=%s\n",lpdi->item.pszText); 1168 } 1169 else /* LVN_GETDISPINFOW */ 1170 { 1171 StrRetToStrNW( lpdi->item.pszText, lpdi->item.cchTextMax, &sd.str, NULL); 1172 TRACE("-- text=%s\n",debugstr_w((WCHAR*)(lpdi->item.pszText))); 1173 } 1165 1174 } 1166 1175 else … … 1559 1568 if ((lpmsg->message>=WM_KEYFIRST) && (lpmsg->message>=WM_KEYLAST)) 1560 1569 { 1561 TRACE("-- key=0x04%x ",lpmsg->wParam) ;1570 TRACE("-- key=0x04%x\n",lpmsg->wParam) ; 1562 1571 } 1563 1572 return S_FALSE; /* not handled */ -
trunk/src/shell32/shpolicy.c
r6709 r8048 18 18 19 19 #include "windef.h" 20 #include "wingdi.h"21 20 #include "winerror.h" 22 21 #include "winreg.h" 22 23 #include "wine/undocshell.h" 24 #include "wine/winuser16.h" 25 23 26 #include "debugtools.h" 24 #include "wine/winuser16.h"25 27 26 28 DEFAULT_DEBUG_CHANNEL(shell); -
trunk/src/shell32/shresdef.h
r5576 r8048 1 /* $Id: shresdef.h,v 1. 9 2001-04-23 10:47:23 sandervl Exp $ */1 /* $Id: shresdef.h,v 1.10 2002-03-08 11:01:03 sandervl Exp $ */ 2 2 3 3 /* … … 31 31 #define IDS_SHV_COLUMN3DV 12 32 32 #define IDS_SHV_COLUMN4DV 13 33 34 #ifndef __WIN32OS2__ 35 #define IDS_DESKTOP 20 36 #define IDS_MYCOMPUTER 21 37 #endif 33 38 34 39 #define IDS_SELECT 22 -
trunk/src/shell32/shv_bg_cmenu.c
r6709 r8048 236 236 { 237 237 ISFHelper_CopyItems(psfhlpdst, psfFrom, lpcida->cidl, apidl); 238 /* fixmehandle move238 /* FIXME handle move 239 239 ISFHelper_DeleteItems(psfhlpsrc, lpcida->cidl, apidl); 240 240 */ -
trunk/src/shell32/shv_item_cmenu.c
r6709 r8048 338 338 * DoCopyOrCut 339 339 * 340 * cop ys the currently selected items into the clipboard340 * copies the currently selected items into the clipboard 341 341 */ 342 342 static BOOL DoCopyOrCut(
Note:
See TracChangeset
for help on using the changeset viewer.