Changeset 505 for trunk/src/shell32/misc.cpp
- Timestamp:
- Aug 16, 1999, 12:32:47 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/shell32/misc.cpp
r183 r505 1 /* $Id: misc.cpp,v 1. 2 1999-06-24 19:27:48phaller Exp $ */1 /* $Id: misc.cpp,v 1.3 1999-08-16 10:31:27 phaller Exp $ */ 2 2 3 3 /* … … 23 23 #include <misc.h> 24 24 #include <string.h> 25 #include "winbase.h" 25 26 26 27 … … 320 321 } 321 322 323 /***************************************************************************** 324 * Name : HICON WIN32API ExtractAssociatedIconExA 325 * Purpose : Return icon for given file (either from file itself or from associated 326 * executable) and patch parameters if needed. 327 * Parameters: ??? 328 * Variables : 329 * Result : 330 * Remark : SHELL.150 331 * Status : UNTESTED UNKNOWN STUB 332 * 333 * Author : Christoph Bratschi [Fri, 1999/08/6 20:00] 334 *****************************************************************************/ 335 336 HICON WIN32API ExtractAssociatedIconExA(HINSTANCE hInst, 337 LPSTR lpIconPath, 338 LPWORD lpiIcon) 339 { 340 dprintf(("SHELL32: undoc ExtractAssociatedIconExA\n")); 341 342 return ExtractAssociatedIconA(hInst,lpIconPath,lpiIcon); 343 } 322 344 323 345 /***************************************************************************** … … 355 377 } 356 378 379 /***************************************************************************** 380 * Name : HICON WIN32API ExtractAssociatedIconExW 381 * Purpose : Return icon for given file (either from file itself or from associated 382 * executable) and patch parameters if needed. 383 * Parameters: ??? 384 * Variables : 385 * Result : 386 * Remark : SHELL.186 387 * Status : UNTESTED UNKNOWN STUB 388 * 389 * Author : Christoph Bratschi [Fri, 1999/08/6 20:00] 390 *****************************************************************************/ 391 392 HICON WIN32API ExtractAssociatedIconExW(HINSTANCE hInst, 393 LPWSTR lpIconPath, 394 LPWORD lpiIcon) 395 { 396 dprintf(("SHELL32: undoc ExtractAssociatedIconExW\n")); 397 398 return ExtractAssociatedIconW(hInst,lpIconPath,lpiIcon); 399 } 357 400 358 401 /***************************************************************************** … … 1106 1149 } 1107 1150 1151 /***************************************************************************** 1152 * Name : StrCpyNW 1153 * Purpose : 1154 * Parameters: 1155 * Variables : 1156 * Result : 1157 * Remark : SHELL32.310 - used by winfile.exe 1158 * Status : UNTESTED UNKNOWN STUB 1159 * 1160 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00] 1161 *****************************************************************************/ 1162 1163 LPWSTR WIN32API StrCpyNW(LPWSTR lpString1,LPWSTR lpString2,int iMaxLength) 1164 { 1165 dprintf(("SHELL32: undoc StrCpyNW\n")); 1166 1167 return lstrcpynW(lpString1,lpString2,iMaxLength); 1168 } 1169 1170 /***************************************************************************** 1171 * Name : StrNCpyW 1172 * Purpose : 1173 * Parameters: 1174 * Variables : 1175 * Result : 1176 * Remark : SHELL32.316 - used by winfile.exe 1177 * Status : UNTESTED UNKNOWN STUB 1178 * 1179 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00] 1180 *****************************************************************************/ 1181 1182 LPWSTR WIN32API StrNCpyW(LPWSTR lpString1,LPWSTR lpString2) 1183 { 1184 dprintf(("SHELL32: undoc StrNCpyW\n")); 1185 1186 return lstrcpyW(lpString1,lpString2); 1187 } 1188 1189 /***************************************************************************** 1190 * Name : FreeIconList 1191 * Purpose : 1192 * Parameters: 1193 * Variables : 1194 * Result : 1195 * Remark : SHELL32.220 - used by progman.exe 1196 * Status : UNTESTED UNKNOWN STUB 1197 * 1198 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00] 1199 *****************************************************************************/ 1200 1201 void WIN32API FreeIconList(DWORD dw) 1202 { 1203 dprintf(("SHELL32: undoc FreeIconList %08xh\n",dw)); 1204 } 1205 1206 /***************************************************************************** 1207 * Name : InternalExtractIconListA 1208 * Purpose : 1209 * Parameters: ??? 1210 * Variables : 1211 * Result : 1212 * Remark : SHELL32.221 - used by progman.exe 1213 * Status : UNTESTED UNKNOWN STUB 1214 * 1215 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00] 1216 *****************************************************************************/ 1217 1218 void WIN32API InternalExtractIconListA(VOID) 1219 { 1220 dprintf(("SHELL32: undoc InternalExtractIconListA \n")); 1221 } 1222 1223 /***************************************************************************** 1224 * Name : InternalExtractIconListW 1225 * Purpose : 1226 * Parameters: ??? 1227 * Variables : 1228 * Result : 1229 * Remark : SHELL32.222 - used by progman.exe 1230 * Status : UNTESTED UNKNOWN STUB 1231 * 1232 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00] 1233 *****************************************************************************/ 1234 1235 void WIN32API InternalExtractIconListW(VOID) 1236 { 1237 dprintf(("SHELL32: undoc InternalExtractIconListW\n")); 1238 } 1239 1240 /***************************************************************************** 1241 * Name : ExtractIconResInfoA 1242 * Purpose : 1243 * Parameters: ??? 1244 * Variables : 1245 * Result : 1246 * Remark : SHELL32.192 - used by progman.exe 1247 * Status : UNTESTED UNKNOWN STUB 1248 * 1249 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00] 1250 *****************************************************************************/ 1251 1252 void WIN32API ExtractIconResInfoA(VOID) 1253 { 1254 dprintf(("SHELL32: undoc ExtractIconResInfoA\n")); 1255 } 1256 1257 /***************************************************************************** 1258 * Name : ExtractIconResInfoW 1259 * Purpose : 1260 * Parameters: ??? 1261 * Variables : 1262 * Result : 1263 * Remark : SHELL32.193 - used by progman.exe 1264 * Status : UNTESTED UNKNOWN STUB 1265 * 1266 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00] 1267 *****************************************************************************/ 1268 1269 void WIN32API ExtractIconResInfoW(VOID) 1270 { 1271 dprintf(("SHELL32: undoc ExtractIconResInfoW\n")); 1272 } 1273 1274 INT WINAPI lstrncmpiA( LPCSTR str1, LPCSTR str2, INT n ) 1275 { 1276 //CB: implement! 1277 return 0; 1278 } 1279 1280 /************************************************************************* 1281 * FindEnvironmentString [SHELL.38] 1282 * 1283 * Returns a pointer into the DOS environment... Ugh. 1284 */ 1285 LPSTR SHELL_FindStringA(LPSTR lpEnv, LPCSTR entry) 1286 { UINT16 l; 1287 1288 //TRACE_(shell)("\n"); 1289 1290 l = strlen(entry); 1291 for( ; *lpEnv ; lpEnv+=strlen(lpEnv)+1 ) 1292 { if( lstrncmpiA(lpEnv, entry, l) ) 1293 continue; 1294 if( !*(lpEnv+l) ) 1295 return (lpEnv + l); /* empty entry */ 1296 else if ( *(lpEnv+l)== '=' ) 1297 return (lpEnv + l + 1); 1298 } 1299 return NULL; 1300 } 1301 1302 /***************************************************************************** 1303 * Name : DoEnvironmentSubstA 1304 * Purpose : 1305 * Parameters: ??? ported WINE 16 bit function 1306 * Variables : 1307 * Result : 1308 * Remark : SHELL32.44 - used by progman.exe 1309 * Status : UNTESTED UNKNOWN STUB 1310 * 1311 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00] 1312 *****************************************************************************/ 1313 1314 DWORD WIN32API DoEnvironmentSubstA(LPSTR str,DWORD length) 1315 { 1316 LPSTR lpEnv = (LPSTR)GetEnvironmentStringsA(); 1317 LPSTR lpBuffer = (LPSTR)HeapAlloc( GetProcessHeap(), 0, length); 1318 LPSTR lpstr = str; 1319 LPSTR lpbstr = lpBuffer; 1320 1321 dprintf(("SHELL32: undoc DoEnvironmentSubstA\n")); 1322 1323 CharToOemA(str,str); 1324 1325 while( *lpstr && lpbstr - lpBuffer < length ) 1326 { 1327 LPSTR lpend = lpstr; 1328 1329 if( *lpstr == '%' ) 1330 { 1331 do { lpend++; } while( *lpend && *lpend != '%' ); 1332 if( *lpend == '%' && lpend - lpstr > 1 ) /* found key */ 1333 { 1334 LPSTR lpKey; 1335 *lpend = '\0'; 1336 lpKey = SHELL_FindStringA(lpEnv, lpstr+1); 1337 if( lpKey ) /* found key value */ 1338 { 1339 int l = strlen(lpKey); 1340 1341 if( l > length - (lpbstr - lpBuffer) - 1 ) 1342 { 1343 //WARN_(shell)("-- Env subst aborted - string too short\n"); 1344 *lpend = '%'; 1345 break; 1346 } 1347 strcpy(lpbstr, lpKey); 1348 lpbstr += l; 1349 } 1350 else break; 1351 *lpend = '%'; 1352 lpstr = lpend + 1; 1353 } 1354 else break; /* back off and whine */ 1355 1356 continue; 1357 } 1358 1359 *lpbstr++ = *lpstr++; 1360 } 1361 1362 *lpbstr = '\0'; 1363 if( lpstr - str == strlen(str) ) 1364 { 1365 strncpy(str, lpBuffer, length); 1366 length = 1; 1367 } 1368 else 1369 length = 0; 1370 1371 //TRACE_(shell)("-- return %s\n", str); 1372 1373 OemToCharA(str,str); 1374 HeapFree( GetProcessHeap(), 0, lpBuffer); 1375 1376 FreeEnvironmentStringsA(lpEnv); 1377 1378 /* Return str length in the LOWORD 1379 * and 1 in HIWORD if subst was successful. 1380 */ 1381 1382 return (DWORD)MAKELONG(strlen(str), length); 1383 } 1384 1385 /***************************************************************************** 1386 * Name : DoEnvironmentSubstW 1387 * Purpose : 1388 * Parameters: ??? 1389 * Variables : 1390 * Result : 1391 * Remark : SHELL32.193 - used by progman.exe 1392 * Status : UNTESTED UNKNOWN STUB 1393 * 1394 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00] 1395 *****************************************************************************/ 1396 1397 DWORD WIN32API DoEnvironmentSubstW(LPWSTR str,DWORD length) 1398 { 1399 //CB: call DoEnvironmentSubstW 1400 dprintf(("SHELL32: undoc DoEnvironmentSubstW\n")); 1401 1402 return 0; 1403 } 1404 1405 /***************************************************************************** 1406 * Name : CheckEscapesA 1407 * Purpose : 1408 * Parameters: ??? 1409 * Variables : 1410 * Result : 1411 * Remark : SHELL32.3 - used by progman.exe 1412 * Status : UNTESTED UNKNOWN STUB 1413 * 1414 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00] 1415 *****************************************************************************/ 1416 1417 void WIN32API CheckEscapesA(DWORD x1,DWORD x2) 1418 { 1419 dprintf(("SHELL32: undoc CheckEscapesA\n")); 1420 } 1421 1422 /***************************************************************************** 1423 * Name : CheckEscapesW 1424 * Purpose : 1425 * Parameters: ??? 1426 * Variables : 1427 * Result : 1428 * Remark : SHELL32.6 - used by progman.exe 1429 * Status : UNTESTED UNKNOWN STUB 1430 * 1431 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00] 1432 *****************************************************************************/ 1433 1434 void WIN32API CheckEscapesW(DWORD x1,DWORD x2) 1435 { 1436 dprintf(("SHELL32: undoc CheckEscapesW\n")); 1437 } 1438 1439 /***************************************************************************** 1440 * Name : DuplicateIcon 1441 * Purpose : 1442 * Parameters: ??? 1443 * Variables : 1444 * Result : 1445 * Remark : SHELL32.138 - used by progman.exe 1446 * Status : UNTESTED UNKNOWN STUB 1447 * 1448 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00] 1449 *****************************************************************************/ 1450 1451 DWORD WIN32API DuplicateIcon(DWORD x1) 1452 { 1453 dprintf(("SHELL32: undoc DuplicateIcon\n")); 1454 1455 return 0; 1456 }
Note:
See TracChangeset
for help on using the changeset viewer.