- Timestamp:
- Jun 24, 1999, 12:17:52 AM (26 years ago)
- Location:
- trunk/src/shell32
- Files:
-
- 2 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/shell32/makefile
r96 r168 1 # $Id: makefile,v 1. 4 1999-06-10 16:56:09phaller Exp $1 # $Id: makefile,v 1.5 1999-06-23 22:17:51 phaller Exp $ 2 2 3 3 # … … 21 21 TARGET = shell32 22 22 23 OBJS = shell32.obj sh.obj she.obj drag.obj initterm.obj 23 OBJS = shell32.obj sh.obj she.obj drag.obj initterm.obj misc.obj ordinal.obj 24 24 25 25 all: $(TARGET).dll $(TARGET).lib … … 47 47 she.obj: she.cpp shell32.h 48 48 49 misc.obj: misc.cpp shell32.h 50 51 ordinal.obj: ordinal.cpp shell32.h 52 49 53 initterm.obj: initterm.cpp 50 54 -
trunk/src/shell32/shell32.cpp
r87 r168 1 /* $Id: shell32.cpp,v 1. 5 1999-06-09 21:05:24phaller Exp $ */1 /* $Id: shell32.cpp,v 1.6 1999-06-23 22:17:52 phaller Exp $ */ 2 2 3 3 /* … … 153 153 return(iResult); 154 154 } 155 //******************************************************************************156 //Borrowed from Wine157 //******************************************************************************158 LPWSTR * WIN32API CommandLineToArgvW(LPCWSTR lpCmdLine,159 int *pNumArgs)160 {161 LPWSTR *argv, s, t;162 int i;163 164 dprintf(("SHELL32: CommandLineToArgvW(%s,%08xh)\n",165 lpCmdLine,166 pNumArgs));167 168 s = (LPWSTR)lpCmdLine;169 i = 0;170 while (*s) {171 /* space */172 if (*s==0x0020) {173 i++;174 s++;175 while (*s && *s==0x0020)176 s++;177 continue;178 }179 s++;180 }181 argv = (LPWSTR *)LocalAlloc(LPTR, sizeof(LPWSTR)*(i+1));182 s = t = (LPWSTR)lpCmdLine;183 i = 0;184 while(*s) {185 if (*s==0x0020) {186 *s=0;187 argv[i++] = t;188 *s=0x0020;189 while (*s && *s==0x0020)190 s++;191 if(*s)192 t=s+1;193 else t=s;194 continue;195 }196 s++;197 }198 if(*t)199 argv[i++] = t;200 201 argv[i]=NULL;202 *pNumArgs = i;203 return argv;204 }205 //******************************************************************************206 //******************************************************************************207 HICON WIN32API ExtractIconA(HINSTANCE hInst,208 LPCSTR lpszExeFileName,209 UINT nIconIndex)210 {211 dprintf(("SHELL32: ExtractIconA(%08xh,%s,%08xh) not implemented.\n",212 hInst,213 lpszExeFileName,214 nIconIndex));215 216 return(NULL);217 }218 //******************************************************************************219 //******************************************************************************220 HICON WIN32API ExtractIconW(HINSTANCE hInst,221 LPCWSTR lpszExeFileName,222 UINT nIconIndex)223 {224 HICON hicon = NULL;225 char *astring = UnicodeToAsciiString((LPWSTR)lpszExeFileName);226 227 dprintf(("SHELL32: ExtractIconW(%08xh,%s,%08xh) not implemented.\n",228 hInst,229 lpszExeFileName,230 nIconIndex));231 232 233 FreeAsciiString(astring);234 return(hicon);235 }236 /*****************************************************************************237 * Name : UINT WIN32API ExtractIconExA238 * Purpose :239 * Parameters:240 * Variables :241 * Result :242 * Remark :243 * Status : UNTESTED STUB244 *245 * Author : Patrick Haller [Sat, 1998/07/11 11:55]246 *****************************************************************************/247 248 DWORD WIN32API ExtractIconExA(LPCSTR lpszFile,249 int nIconIndex,250 HICON *phiconLarge,251 HICON *phiconSmall,252 UINT nIcons)253 {254 dprintf(("SHELL32: ExtractIconExA(%s,%08xh,%08xh,%08xh,%u) not implemented.\n",255 lpszFile,256 nIconIndex,257 phiconLarge,258 phiconSmall,259 nIcons));260 261 return (0);262 }263 264 265 /*****************************************************************************266 * Name : UINT WIN32API ExtractIconExW267 * Purpose :268 * Parameters:269 * Variables :270 * Result :271 * Remark :272 * Status : UNTESTED STUB273 *274 * Author : Patrick Haller [Sat, 1998/07/11 11:55]275 *****************************************************************************/276 277 DWORD WIN32API ExtractIconExW(LPCWSTR lpszFile,278 int nIconIndex,279 HICON *phiconLarge,280 HICON *phiconSmall,281 UINT nIcons)282 {283 dprintf(("SHELL32: ExtractIconExW(%s,%08xh,%08xh,%08xh,%u) not implemented.\n",284 lpszFile,285 nIconIndex,286 phiconLarge,287 phiconSmall,288 nIcons));289 290 return (0);291 }292 293 294 //******************************************************************************295 HINSTANCE WIN32API FindExecutableA(LPCSTR lpszFile,296 LPCSTR lpszDir,297 LPTSTR lpszResult)298 {299 dprintf(("SHELL32: FindExecutableA (%s,%s,%s) not implemented.\n",300 lpszFile,301 lpszDir,302 lpszResult));303 304 return(NULL);305 }306 //******************************************************************************307 //******************************************************************************308 HINSTANCE WIN32API FindExecutableW(LPCWSTR lpszFile,309 LPCWSTR lpszDir,310 LPWSTR lpszResult)311 {312 dprintf(("SHELL32: FindExecutableW (%s,%s,%s) not implemented.\n",313 lpszFile,314 lpszDir,315 lpszResult));316 317 return(NULL);318 }319 //******************************************************************************320 155 321 156 … … 355 190 356 191 /***************************************************************************** 357 *358 * Code merged from WINE359 *360 * Patrick Haller 98/06/15361 *362 *****************************************************************************/363 364 365 /*************************************************************************366 * SHELL32_2 [SHELL32.2]367 */368 DWORD WIN32API SHELL32_2(HWND hwnd,369 DWORD x2,370 DWORD x3,371 DWORD x4,372 DWORD x5,373 DWORD x6)374 {375 dprintf(("SHELL32: .2 (0x%04x,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx) not implemented.\n",376 hwnd,377 x2,378 x3,379 x4,380 x5,381 x6));382 return 0;383 }384 385 386 /*************************************************************************387 * SHELL32_16 [SHELL32.16]388 * find_lastitem_in_itemidlist()389 */390 LPSHITEMID WIN32API SHELL32_16(LPITEMIDLIST iil)391 {392 LPSHITEMID lastsii,393 sii;394 395 dprintf(("SHELL32: .16 (%08xh)\n",396 iil));397 398 if (!iil)399 return NULL;400 401 sii = &(iil->mkid);402 lastsii = sii;403 404 while (sii->cb)405 {406 lastsii = sii;407 sii = (LPSHITEMID)(((char*)sii)+sii->cb);408 }409 410 return lastsii;411 }412 413 414 /*************************************************************************415 * SHELL32_29 [SHELL32.29]416 * is_rootdir(const char*path)417 */418 BOOL WIN32API SHELL32_29(LPCSTR x)419 {420 dprintf(("SHELL32: .29 (%s)\n",421 x));422 423 424 if (!lstrcmpA(x+1,":\\")) /* "X:\" */425 return 1;426 427 if (!lstrcmpA(x,"\\")) /* "\" */428 return 1;429 430 if (x[0]=='\\' && x[1]=='\\')431 { /* UNC "\\<xx>\" */432 int foundbackslash = 0;433 434 x=x+2;435 while (*x)436 {437 if (*x++=='\\')438 foundbackslash++;439 }440 441 if (foundbackslash<=1) /* max 1 \ more ... */442 return 1;443 }444 return 0;445 }446 447 448 /*************************************************************************449 * SHELL32_30 [SHELL32.30]450 * get_rootdir(char*path,int drive)451 */452 LPSTR WIN32API SHELL32_30(LPSTR root,453 BYTE drive)454 {455 dprintf(("SHELL32: .30 (%s, %u)\n",456 root,457 drive));458 459 460 strcpy(root,461 "A:\\");462 root[0]+=drive;463 464 return root;465 }466 467 468 /*************************************************************************469 * SHELL32_31 [SHELL32.31]470 * returns pointer to last . in last pathcomponent or at \0.471 */472 LPSTR WIN32API SHELL32_31(LPSTR path)473 {474 LPSTR lastpoint = NULL;475 476 dprintf(("SHELL32: .31 (%s)\n",477 path));478 479 480 while (*path)481 {482 if (*path=='\\'||*path==' ')483 lastpoint=NULL;484 485 if (*path=='.')486 lastpoint=path;487 488 path++;489 }490 491 return lastpoint ? lastpoint : path;492 }493 494 495 /*************************************************************************496 * SHELL32_32 [SHELL32.32]497 * append \ if there is none498 */499 LPSTR WIN32API SHELL32_32(LPSTR path)500 {501 int len;502 503 dprintf(("SHELL32: .31 (%s)\n",504 path));505 506 507 len = lstrlenA(path);508 509 if (len && path[len-1]!='\\')510 {511 path[len+0]='\\';512 path[len+1]='\0';513 return path+len+1;514 }515 else516 return path+len;517 }518 519 520 /*************************************************************************521 * SHELL32_33 [SHELL32.33]522 * remove spaces from beginning and end of passed string523 */524 LPSTR WIN32API SHELL32_33(LPSTR str)525 {526 LPSTR x = str;527 528 dprintf(("SHELL32: .33 (%s)\n",529 str));530 531 532 while (*x==' ')533 x++;534 535 if (x!=str)536 lstrcpyA(str,537 x);538 539 if (!*str)540 return str;541 542 x=str+strlen(str)-1;543 544 while (*x==' ')545 x--;546 547 if (*x==' ')548 *x='\0';549 550 return x;551 }552 553 554 /*************************************************************************555 * SHELL32_34 [SHELL32.34]556 * basename(char *fn);557 */558 LPSTR WIN32API SHELL32_34(LPSTR fn)559 {560 LPSTR basefn;561 562 dprintf(("SHELL32: .34 (%s)\n",563 fn));564 565 566 basefn = fn;567 while (fn[0])568 {569 if (( (fn[0]=='\\') ||570 (fn[0]==':')) && fn[1] && fn[1]!='\\')571 basefn = fn+1;572 573 fn++;574 }575 576 return basefn;577 }578 579 /*************************************************************************580 * SHELL32_35 [SHELL32.35]581 * bool getpath(char *pathname); truncates passed argument to a valid path582 * returns if the string was modified or not.583 * "\foo\xx\foo"-> "\foo\xx"584 * "\" -> "\"585 * "a:\foo" -> "a:\"586 */587 DWORD WIN32API SHELL32_35(LPSTR fn)588 {589 LPSTR x,cutplace;590 591 dprintf(("SHELL32: .35 (%s)\n",592 fn));593 594 595 if (!fn[0])596 return 0;597 x=fn;598 cutplace = fn;599 while (*x) {600 if (*x=='\\') {601 cutplace=x++;602 continue;603 }604 if (*x==':') {605 x++;606 if (*x=='\\')607 cutplace=++x;608 continue; /* already x++ed */609 }610 x++;611 }612 if (!*cutplace)613 return 0;614 if (cutplace==fn) {615 if (fn[0]=='\\') {616 if (!fn[1])617 return 0;618 fn[0]='\0';619 return 1;620 }621 }622 *cutplace='\0';623 return 1;624 }625 626 /*************************************************************************627 * SHELL32_37 [SHELL32.37]628 * concat_paths(char*target,const char*add);629 * concats "target\\add" and writes them to target630 */631 LPSTR WIN32API SHELL32_37(LPSTR target,632 LPSTR x1,633 LPSTR x2)634 {635 char buf[260];636 637 dprintf(("SHELL32: .37 (%s, %s, %s)\n",638 target,639 x1,640 x2));641 642 643 if (!x2 || !x2[0])644 {645 lstrcpyA(target,x1);646 647 return target;648 }649 650 lstrcpyA(buf,x1);651 SHELL32_32(buf); /* append \ if not there */652 lstrcatA(buf,x2);653 lstrcpyA(target,buf);654 655 return target;656 }657 658 /*************************************************************************659 * SHELL32_36 [SHELL32.36]660 * concat_paths(char*target,const char*add);661 * concats "target\\add" and writes them to target662 */663 LPSTR WIN32API SHELL32_36(LPSTR x1,664 LPSTR x2)665 {666 dprintf(("SHELL32: .36 (%s, %s)\n",667 x1,668 x2));669 670 671 while (x2[0]=='\\')672 x2++;673 674 return SHELL32_37(x1,675 x1,676 x2);677 }678 679 /*************************************************************************680 * SHELL32_39 [SHELL32.39]681 * isUNC(const char*path);682 */683 BOOL WIN32API SHELL32_39(LPCSTR path)684 {685 dprintf (("SHELL32: .39 (%s)\n",686 path));687 688 689 if ((path[0]=='\\') &&690 (path[1]=='\\'))691 return TRUE;692 693 return FALSE;694 }695 696 697 /*************************************************************************698 * SHELL32_45 [SHELL32.45]699 * file_exists(char *fn);700 */701 BOOL WIN32API SHELL32_45(LPSTR fn)702 {703 dprintf(("SHELL32: .45 (%s)\n",704 fn));705 706 707 if (GetFileAttributesA(fn)==-1)708 return FALSE;709 else710 return TRUE;711 }712 713 /*************************************************************************714 * SHELL32_52 [SHELL32.52]715 * look for next arg in string. handle "quoted" strings716 * returns pointer to argument *AFTER* the space. Or to the \0.717 */718 LPSTR WIN32API SHELL32_52(LPSTR cmdline)719 {720 BOOL qflag = FALSE;721 722 dprintf (("SHELL32: .52 (%s)\n",723 cmdline));724 725 726 while (*cmdline)727 {728 if ((*cmdline==' ') && !qflag)729 return cmdline+1;730 731 if (*cmdline=='"')732 qflag=!qflag;733 734 cmdline++;735 }736 return cmdline;737 }738 739 740 /*************************************************************************741 * SHELL32_56 [SHELL32.56]742 * unquote string (remove ")743 */744 VOID WIN32API SHELL32_56(LPSTR str)745 {746 DWORD len = lstrlenA(str);747 748 dprintf (("SHELL32: .56 (%s)\n",749 str));750 751 752 if (*str!='"')753 return;754 755 if (str[len-1]!='"')756 return;757 758 str[len-1]='\0';759 lstrcpyA(str,760 str+1);761 return;762 }763 764 765 /*************************************************************************766 * SHELL32_58 [SHELL32.58]767 */768 DWORD WIN32API SHELL32_58(LPCSTR src,769 DWORD x2,770 LPSTR target,771 DWORD pathlen)772 {773 dprintf (("SHELL32: .58 (%s, %08xh, %08xh, %08xh) not implemented\n",774 src,775 x2,776 target,777 pathlen));778 779 return 0;780 }781 782 783 /*************************************************************************784 * SHELL32_62 [SHELL32.62]785 */786 DWORD WIN32API SHELL32_62(DWORD x,787 DWORD y,788 DWORD z,789 DWORD a)790 {791 dprintf(("SHELL32: .62 (%08xh, %08xh, %08xh, %08xh) not implemented.\n",792 x,793 y,794 z,795 a));796 797 return 0xffffffff;798 }799 800 801 /*************************************************************************802 * SHELL32_63 [SHELL32.63]803 */804 DWORD WIN32API SHELL32_63(HWND howner,805 LPSTR targetbuf,806 DWORD len,807 DWORD x,808 LPCSTR suffix,809 LPCSTR y,810 LPCSTR cmd)811 {812 dprintf (("SHELL32: .63 (%08xh, %08x, %08xh, %08xh, %08xh, %08xh, %s) not implemented.\n",813 howner,814 targetbuf,815 len,816 x,817 suffix,818 y,819 cmd));820 821 /* puts up a Open Dialog and requests input into targetbuf */822 /* OFN_HIDEREADONLY|OFN_NOCHANGEDIR|OFN_FILEMUSTEXIST|OFN_unknown */823 lstrcpyA(targetbuf,"x:\\s3.exe");824 return 1;825 }826 827 828 /*************************************************************************829 * SHELL32_68 [SHELL32.68]830 */831 DWORD WIN32API SHELL32_68(DWORD x,832 DWORD y,833 DWORD z)834 {835 dprintf(("SHELL32: .68 (%08xh, %08xh, %08xh) not implemented.\n",836 x,837 y,838 z));839 840 return 0;841 }842 843 844 /*************************************************************************845 * SHELL32_71 [SHELL32.71]846 * returns internal shell values in the passed pointers847 */848 BOOL WIN32API SHELL32_71(LPDWORD x,849 LPDWORD y)850 {851 dprintf(("SHELL32: .71 (%08xh, %08xh) not implemented.\n",852 x,853 y));854 855 return TRUE;856 }857 858 859 /*************************************************************************860 * SHELL32_72 [SHELL32.72]861 * dunno. something with icons862 */863 void WIN32API SHELL32_72(LPSTR x,864 DWORD y,865 DWORD z)866 {867 dprintf (("SHELL32: .27 (%08xh, %08xh, %08xh) not implemented.\n",868 x,869 y,870 z));871 }872 873 874 /*************************************************************************875 * SHELL32_89 [SHELL32.89]876 */877 DWORD WIN32API SHELL32_89(DWORD x1,878 DWORD x2,879 DWORD x3)880 {881 dprintf(("SHELL32: .89 (%08xh, %08xh, %08xh) not implemented.\n",882 x1,883 x2,884 x3));885 886 return 0;887 }888 889 890 /*************************************************************************891 * SHELL32_119 [SHELL32.119]892 * unknown893 */894 void WIN32API SHELL32_119(LPVOID x)895 {896 dprintf(("SHELL32: .119 (%08xh) not implemented.\n",897 x));898 }899 900 901 /*************************************************************************902 * SHELL32_175 [SHELL32.175]903 * unknown904 */905 void WIN32API SHELL32_175(DWORD x1,906 DWORD x2,907 DWORD x3,908 DWORD x4)909 {910 dprintf (("SHELL32: .175 (%08x, %08xh, %08xh, %08xh not implemented.\n",911 x1,912 x2,913 x3,914 x4));915 }916 917 918 /*************************************************************************919 * SHELL32_181 [SHELL32.181]920 * unknown921 */922 void WIN32API SHELL32_181(DWORD x,923 DWORD y)924 {925 dprintf(("SHELL32: .181 (%08xh, %08xh) not implemented.\n",926 x,927 y));928 }929 930 931 /*************************************************************************932 * SHELL32_75 [SHELL32.75]933 * unknown934 */935 BOOL WIN32API SHELL32_75(LPDWORD x,936 LPDWORD y)937 {938 dprintf(("SHELL32: .75 (%08xh, %08xh) not implemented.\n",939 x,940 y));941 942 return TRUE;943 }944 945 946 /*************************************************************************947 * SHELL32_77 [SHELL32.77]948 */949 DWORD WIN32API SHELL32_77(DWORD x,950 DWORD y,951 DWORD z)952 {953 dprintf(("SHELL32: .77 (%08xh, %08xh, %08xh) not implemented.\n",954 x,955 y,956 z));957 958 return 0;959 }960 961 962 /*************************************************************************963 * SHELL32_79 [SHELL32.79]964 * create_directory_and_notify(...)965 */966 DWORD WIN32API SHELL32_79(LPCSTR dir,967 LPVOID xvoid)968 {969 dprintf(("SHELL32: .79 (%s, %08xh)\n",970 dir,971 xvoid));972 973 if (!CreateDirectoryA(dir,974 (PSECURITY_ATTRIBUTES)xvoid))975 return FALSE;976 977 /* @@@PH: SHChangeNotify(8,1,dir,0); */978 return TRUE;979 }980 981 982 /*************************************************************************983 * SHELL32_100 [SHELL32.100]984 * walks through policy table, queries <app> key, <type> value, returns985 * queried (DWORD) value.986 * {0x00001,Explorer,NoRun}987 * {0x00002,Explorer,NoClose}988 * {0x00004,Explorer,NoSaveSettings}989 * {0x00008,Explorer,NoFileMenu}990 * {0x00010,Explorer,NoSetFolders}991 * {0x00020,Explorer,NoSetTaskbar}992 * {0x00040,Explorer,NoDesktop}993 * {0x00080,Explorer,NoFind}994 * {0x00100,Explorer,NoDrives}995 * {0x00200,Explorer,NoDriveAutoRun}996 * {0x00400,Explorer,NoDriveTypeAutoRun}997 * {0x00800,Explorer,NoNetHood}998 * {0x01000,Explorer,NoStartBanner}999 * {0x02000,Explorer,RestrictRun}1000 * {0x04000,Explorer,NoPrinterTabs}1001 * {0x08000,Explorer,NoDeletePrinter}1002 * {0x10000,Explorer,NoAddPrinter}1003 * {0x20000,Explorer,NoStartMenuSubFolders}1004 * {0x40000,Explorer,MyDocsOnNet}1005 * {0x80000,WinOldApp,NoRealMode}1006 */1007 DWORD WIN32API SHELL32_100(DWORD pol)1008 {1009 HKEY xhkey;1010 1011 dprintf (("SHELL32: .100 (%08xh) not implemented.\n",1012 pol));1013 1014 if (RegOpenKeyA((HKEY)HKEY_CURRENT_USER,1015 "Software\\Microsoft\\Windows\\CurrentVersion\\Policies",1016 &xhkey))1017 return 0;1018 1019 /* FIXME: do nothing for now, just return 0 (== "allowed") */1020 RegCloseKey(xhkey);1021 1022 return 0;1023 }1024 1025 1026 /*************************************************************************1027 * SHELL32_152 [SHELL32.152]1028 * itemlist_length1029 */1030 DWORD WIN32API SHELL32_152(LPITEMIDLIST iil)1031 {1032 LPSHITEMID si;1033 DWORD len;1034 1035 dprintf(("SHELL32: .152 (%08xh)\n",1036 iil));1037 1038 1039 si = &(iil->mkid);1040 len = 2;1041 1042 while (si->cb)1043 {1044 len += si->cb;1045 si = (LPSHITEMID)(((char*)si)+si->cb);1046 }1047 1048 return len;1049 }1050 1051 1052 /*************************************************************************1053 * SHELL32_158 [SHELL32.158]1054 */1055 LPSTR WIN32API SHELL32_158(LPSTR path,1056 DWORD y,1057 DWORD z)1058 {1059 dprintf(("SHELL32: .158 (%s, %08xh, %08xh)\n",1060 path,1061 y,1062 z));1063 1064 path = SHELL32_31(path);1065 1066 return *path ? (path+1) : path;1067 }1068 1069 1070 /*************************************************************************1071 * SHELL32_165 [SHELL32.165]1072 * create_path_and_notify(...)1073 */1074 DWORD WIN32API SHELL32_165(DWORD x,1075 LPCSTR path)1076 {1077 dprintf (("SHELL32 .165 (%08x, %08xh) not implemented.\n",1078 x,1079 path));1080 1081 if (SHELL32_79(path,1082 (LPVOID)x))1083 return 0;1084 1085 return 0;1086 }1087 1088 1089 /*************************************************************************1090 * SHELL32_195 [SHELL32.195]1091 * free_ptr() - frees memory using IMalloc1092 */1093 DWORD WIN32API SHELL32_195(LPVOID x)1094 {1095 dprintf (("SHELL32: .195 (%08xh) (LocalFree)\n",1096 x));1097 1098 return (DWORD)LocalFree((HLOCAL)x);1099 }1100 1101 1102 /*************************************************************************1103 * SHELL32_196 [SHELL32.196]1104 * void *task_alloc(DWORD len), uses SHMalloc allocator1105 */1106 LPVOID WIN32API SHELL32_196(DWORD len)1107 {1108 dprintf(("SHELL32: .196 (%08xh) (LocalAlloc)\n",1109 len));1110 1111 return (LPVOID)LocalAlloc(len,1112 LMEM_ZEROINIT); /* FIXME */1113 }1114 1115 1116 /*************************************************************************1117 * SHELL32_18 [SHELL32.18]1118 * copy_itemidlist()1119 */1120 LPITEMIDLIST WIN32API SHELL32_18(LPITEMIDLIST iil)1121 {1122 DWORD len;1123 LPITEMIDLIST newiil;1124 1125 dprintf(("SHELL32: .18 (%08xh)\n",1126 iil));1127 1128 1129 len = SHELL32_152(iil);1130 newiil = (LPITEMIDLIST)SHELL32_196(len);1131 memcpy(newiil,1132 iil,1133 len);1134 1135 return newiil;1136 }1137 1138 1139 /*************************************************************************1140 * SHELL32_25 [SHELL32.25]1141 * merge_itemidlist()1142 */1143 LPITEMIDLIST WIN32API SHELL32_25(LPITEMIDLIST iil1,1144 LPITEMIDLIST iil2)1145 {1146 DWORD len1,len2;1147 LPITEMIDLIST newiil;1148 1149 dprintf(("SHELL32: .25 (%08xh, %08xh)\n",1150 iil1,1151 iil2));1152 1153 1154 len1 = SHELL32_152(iil1)-2;1155 len2 = SHELL32_152(iil2);1156 newiil = (LPITEMIDLIST)SHELL32_196(len1+len2);1157 1158 memcpy(newiil,1159 iil1,1160 len1);1161 1162 memcpy(((char*)newiil)+len1,1163 iil2,1164 len2);1165 1166 return newiil;1167 }1168 1169 1170 /*************************************************************************1171 * SHELL32_155 [SHELL32.155]1172 * free_check_ptr - frees memory (if not NULL) allocated by SHMalloc allocator1173 */1174 DWORD WIN32API SHELL32_155(LPVOID x)1175 {1176 dprintf(("SHELL32: .155 (%08xh)\n",1177 x));1178 1179 if (!x)1180 return 0;1181 1182 return SHELL32_195(x);1183 }1184 1185 1186 /*************************************************************************1187 * SHELL32_85 [SHELL32.85]1188 * unknown1189 */1190 DWORD WIN32API SHELL32_85(DWORD x1,1191 DWORD x2,1192 DWORD x3,1193 DWORD x4)1194 {1195 dprintf(("SHELL32: .85 (%08x, %08xh, %08xh, %08xh) not implemented.\n",1196 x1,1197 x2,1198 x3,1199 x4));1200 1201 return 0;1202 }1203 1204 1205 /*****************************************************************************1206 * Name : .41207 * Purpose :1208 * Parameters:1209 * Variables :1210 * Result :1211 * Remark : unknown1212 * Status : UNTESTED UNKNOWN STUB1213 *1214 * Author : Patrick Haller [Tue, 1998/06/15 03:00]1215 *****************************************************************************/1216 1217 DWORD WIN32API SHELL32_4(DWORD x1)1218 {1219 dprintf(("SHELL32: .4 (%08xh) not implemented.\n",1220 x1));1221 1222 return (0);1223 }1224 1225 1226 /*****************************************************************************1227 * Name : .591228 * Purpose :1229 * Parameters:1230 * Variables :1231 * Result :1232 * Remark : unknown1233 * Status : UNTESTED UNKNOWN STUB1234 *1235 * Author : Patrick Haller [Tue, 1998/06/15 03:00]1236 *****************************************************************************/1237 1238 DWORD WIN32API SHELL32_59(void)1239 {1240 dprintf(("SHELL32: .59 () not implemented.\n"));1241 1242 return (0);1243 }1244 1245 1246 /*****************************************************************************1247 * Name : .1621248 * Purpose :1249 * Parameters:1250 * Variables :1251 * Result :1252 * Remark : unknown1253 * Status : UNTESTED UNKNOWN STUB1254 *1255 * Author : Patrick Haller [Tue, 1998/06/15 03:00]1256 *****************************************************************************/1257 1258 DWORD WIN32API SHELL32_162(DWORD x1)1259 {1260 dprintf(("SHELL32: .162 (%08xh) not implemented.\n",1261 x1));1262 1263 return (0);1264 }1265 1266 1267 /*****************************************************************************1268 * Name : .1451269 * Purpose :1270 * Parameters:1271 * Variables :1272 * Result :1273 * Remark : unknown1274 * Status : UNTESTED UNKNOWN STUB1275 *1276 * Author : Patrick Haller [Tue, 1998/06/15 03:00]1277 *****************************************************************************/1278 1279 DWORD WIN32API SHELL32_145(DWORD x1,1280 DWORD x2)1281 {1282 dprintf(("SHELL32: .145 (%08xh, %08xh) not implemented.\n",1283 x1,1284 x2));1285 1286 return (0);1287 }1288 1289 1290 /*****************************************************************************1291 * Name : .431292 * Purpose :1293 * Parameters:1294 * Variables :1295 * Result :1296 * Remark : unknown1297 * Status : UNTESTED UNKNOWN STUB1298 *1299 * Author : Patrick Haller [Tue, 1998/06/15 03:00]1300 *****************************************************************************/1301 1302 DWORD WIN32API SHELL32_43(DWORD x1)1303 {1304 dprintf(("SHELL32: .43 (%08xh) not implemented.\n",1305 x1));1306 1307 return (0);1308 }1309 1310 1311 /*****************************************************************************1312 * Name : .511313 * Purpose :1314 * Parameters:1315 * Variables :1316 * Result :1317 * Remark : unknown1318 * Status : UNTESTED UNKNOWN STUB1319 *1320 * Author : Patrick Haller [Tue, 1998/06/15 03:00]1321 *****************************************************************************/1322 1323 DWORD WIN32API SHELL32_51(DWORD x1,1324 DWORD x2,1325 DWORD x3)1326 {1327 dprintf(("SHELL32: .51 (%08xh, %08xh, %08xh) not implemented.\n",1328 x1,1329 x2,1330 x3));1331 1332 return (0);1333 }1334 1335 1336 /*****************************************************************************1337 * Name : .551338 * Purpose :1339 * Parameters:1340 * Variables :1341 * Result :1342 * Remark : unknown1343 * Status : UNTESTED UNKNOWN STUB1344 *1345 * Author : Patrick Haller [Tue, 1998/06/15 03:00]1346 *****************************************************************************/1347 1348 DWORD WIN32API SHELL32_55(DWORD x1)1349 {1350 dprintf(("SHELL32: .55 (%08xh) not implemented.\n",1351 x1));1352 1353 return (0);1354 }1355 1356 1357 /*****************************************************************************1358 * Name : .1021359 * Purpose :1360 * Parameters:1361 * Variables :1362 * Result :1363 * Remark : unknown1364 * Status : UNTESTED UNKNOWN STUB1365 *1366 * Author : Patrick Haller [Tue, 1998/06/15 03:00]1367 *****************************************************************************/1368 1369 DWORD WIN32API SHELL32_102(DWORD x1,1370 DWORD x2,1371 DWORD x3,1372 DWORD x4,1373 DWORD x5)1374 {1375 dprintf(("SHELL32: .102 (%08xh, %08xh, %08xh, %08xh, %08xh) not implemented.\n",1376 x1,1377 x2,1378 x3,1379 x4,1380 x5));1381 1382 return (0);1383 }1384 1385 1386 /*****************************************************************************1387 192 * Name : BOOL ShellExecuteEx 1388 193 * Purpose : -
trunk/src/shell32/shell32.def
r96 r168 1 ; $Id: shell32.def,v 1. 5 1999-06-10 16:56:09phaller Exp $1 ; $Id: shell32.def,v 1.6 1999-06-23 22:17:52 phaller Exp $ 2 2 3 3 ;Created by BLAST for IBM's compiler … … 55 55 ; DuplicateIcon = _DuplicateIcon@? @78 56 56 _SHELL32_79@8 @79 57 ; ExtractAssociatedIconA = _ExtractAssociatedIconA@?@8057 ExtractAssociatedIconA = _ExtractAssociatedIconA@12 @80 58 58 _SHELL32_85@16 @85 59 59 _SHELL32_89@12 @89 … … 63 63 _SHELL32_119@4 @119 64 64 ; ExtractAssociatedIconExW = _ExtractAssociatedIconExW@? @122 65 ; ExtractAssociatedIconW = _ExtractAssociatedIconW@?@12365 ExtractAssociatedIconW = _ExtractAssociatedIconW@12 @123 66 66 ExtractIconA = _ExtractIconA@12 @131 67 67 ExtractIconEx = _ExtractIconExA@20 @133
Note:
See TracChangeset
for help on using the changeset viewer.