- Timestamp:
- Jun 12, 2000, 10:09:48 AM (25 years ago)
- Location:
- trunk/src/shlwapi
- Files:
-
- 1 deleted
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/shlwapi/ordinal.cpp
r3684 r3687 1 /* $Id: ordinal.cpp,v 1. 1 2000-06-11 08:44:53phaller Exp $ */1 /* $Id: ordinal.cpp,v 1.2 2000-06-12 08:09:37 phaller Exp $ */ 2 2 3 3 /* … … 52 52 #include "heap.h" 53 53 54 #include "win/wine/obj_base.h" 54 55 #include "shellapi.h" 55 56 #include "shlobj.h" … … 71 72 72 73 HANDLE WIN32API SHLWAPI_11(HANDLE, DWORD, DWORD, DWORD, DWORD); 73 DWORD WIN32API SHLWAPI_95(HWND, LPWSTR, int); 74 75 76 #define debugstr_guid(a) a 74 77 75 78 … … 555 558 556 559 560 /***************************************************************************** 561 * Name : ??? 562 * Purpose : Unknown (used by explorer.exe) 563 * Parameters: Unknown (wrong) 564 * Variables : 565 * Result : Unknown 566 * Remark : 567 * Status : UNTESTED STUB 568 * 569 * Author : Patrick Haller [Sun, 2000/06/09 04:47] 570 *****************************************************************************/ 571 572 ODINFUNCTION2(DWORD,SHLWAPI_17, 573 DWORD, arg0, 574 DWORD, arg1) 575 { 576 dprintf(("not implemented, explorer.exe will trap now")); 577 578 return 0; 579 } 580 581 582 /***************************************************************************** 583 * Name : ??? 584 * Purpose : Unknown (used by explorer.exe) 585 * Parameters: Unknown (wrong) 586 * Variables : 587 * Result : Unknown 588 * Remark : 589 * Status : UNTESTED STUB 590 * 591 * Author : Patrick Haller [Sun, 2000/06/09 04:47] 592 *****************************************************************************/ 593 594 ODINFUNCTION2(DWORD,SHLWAPI_18, 595 DWORD, arg0, 596 DWORD, arg1) 597 { 598 dprintf(("not implemented, explorer.exe will trap now")); 599 600 return 0; 601 } 602 603 604 /***************************************************************************** 605 * Name : SHLWAPI_19 606 * Purpose : Free memory 607 * Parameters: LPVOID lpMem 608 * Variables : 609 * Result : 610 * Remark : SHLWAPI.19 611 * Status : UNTESTED 612 * 613 * Author : Patrick Haller [Sun, 2000/06/09 04:47] 614 *****************************************************************************/ 615 616 ODINPROCEDURE1(SHLWAPI_19, 617 HLOCAL, hMem) 618 { 619 if (hMem != NULL) 620 LocalFree(hMem); 621 } 622 623 624 /***************************************************************************** 625 * Name : ??? 626 * Purpose : Unknown (used by explorer.exe) 627 * Parameters: Unknown (wrong) 628 * Variables : 629 * Result : Unknown 630 * Remark : 631 * Status : UNTESTED STUB 632 * 633 * Author : Patrick Haller [Sun, 2000/06/09 04:47] 634 *****************************************************************************/ 635 636 ODINFUNCTION2(DWORD,SHLWAPI_20, 637 DWORD, arg0, 638 DWORD, arg1) 639 { 640 dprintf(("not implemented, explorer.exe will trap now")); 641 642 return 0; 643 } 644 645 646 /***************************************************************************** 647 * Name : ??? 648 * Purpose : Unknown (used by explorer.exe) 649 * Parameters: Unknown (wrong) 650 * Variables : 651 * Result : Unknown 652 * Remark : 653 * Status : UNTESTED STUB 654 * 655 * Author : Patrick Haller [Sun, 2000/06/09 04:47] 656 *****************************************************************************/ 657 658 ODINFUNCTION2(DWORD,SHLWAPI_21, 659 DWORD, arg0, 660 DWORD, arg1) 661 { 662 dprintf(("not implemented, explorer.exe will trap now")); 663 664 return 0; 665 } 666 667 668 /***************************************************************************** 669 * Name : ??? 670 * Purpose : Unknown (used by explorer.exe) 671 * Parameters: Unknown (wrong) 672 * Variables : 673 * Result : Unknown 674 * Remark : 675 * Status : UNTESTED STUB 676 * 677 * Author : Patrick Haller [Sun, 2000/06/09 04:47] 678 *****************************************************************************/ 679 680 ODINFUNCTION2(DWORD,SHLWAPI_22, 681 DWORD, arg0, 682 DWORD, arg1) 683 { 684 dprintf(("not implemented, explorer.exe will trap now")); 685 686 return 0; 687 } 688 557 689 558 690 /***************************************************************************** … … 561 693 * Parameters: 562 694 * Variables : 563 * Result : 564 * Remark : 695 * Result : returns strlen(str) 696 * Remark : converts a guid to a string 565 697 * Status : UNTESTED STUB 566 698 * … … 568 700 *****************************************************************************/ 569 701 570 ODINFUNCTION3(DWORD,SHLWAPI_23, 571 DWORD,arg0, 572 DWORD,arg1, 573 DWORD,arg2) 574 { 575 dprintf(("not yet implemented")); 576 577 return 0; 702 ODINFUNCTION3(DWORD, SHLWAPI_23, 703 REFGUID,guid, /* [in] clsid */ 704 LPSTR, str, /* [out] buffer */ 705 INT, cmax) /* [in] size of buffer */ 706 { 707 char xguid[80]; 708 709 TRACE("(%s %p 0x%08x)stub\n", debugstr_guid(guid), str, cmax); 710 711 if (WINE_StringFromCLSID(guid,xguid)) return 0; 712 if (strlen(xguid)>=cmax) return 0; 713 strcpy(str,xguid); 714 return strlen(xguid) + 1; 715 } 716 717 718 /************************************************************************* 719 * SHLWAPI_24 [SHLWAPI.24] 720 * 721 * NOTES 722 * converts a guid to a string 723 * returns strlen(str) 724 */ 725 ODINFUNCTION3(DWORD, SHLWAPI_24, 726 REFGUID, guid, /* [in] clsid */ 727 LPWSTR, str, /* [out] buffer */ 728 INT, cmax) /* [in] size of buffer */ 729 { 730 TRACE("(%s %p 0x%08x)stub\n", debugstr_guid(guid), str, cmax); 731 return StringFromGUID2(guid, str, cmax); 578 732 } 579 733 … … 601 755 602 756 /***************************************************************************** 603 * Name : LRESULT CallWindowProcAW604 * Purpose : 757 * Name : SHLWAPI_30 758 * Purpose : Check for whitespace in ascii and unicode ? 605 759 * Parameters: 606 760 * Variables : 607 761 * Result : 608 * Remark : SHLWAPI.37762 * Remark : 609 763 * Status : UNTESTED 610 764 * … … 612 766 *****************************************************************************/ 613 767 614 ODINFUNCTION5(LRESULT, CallWindowProcAW, 615 WNDPROC, lpPrevWndFunc, 616 HWND, hWnd, 617 UINT, Msg, 618 WPARAM, wParam, 619 LPARAM, lParam) 620 { 621 if (VERSION_OsIsUnicode()) 622 return CallWindowProcW(lpPrevWndFunc, hWnd, Msg, wParam, lParam); 768 ODINFUNCTION1(DWORD,SHLWAPI_30, 769 WORD, ch) 770 { 771 if ( (ch == 0x09) || // tab 772 (ch == 0x20) || // space 773 (ch == 0x3000) || 774 (ch == 0xFEFF) ) 775 return 1; 623 776 else 624 return CallWindowProcA(lpPrevWndFunc, hWnd, Msg, wParam, lParam); 625 } 626 627 628 /***************************************************************************** 629 * Name : SHLWAPI_38 630 * Purpose : 631 * Parameters: 632 * Variables : 633 * Result : 634 * Remark : 635 * Status : UNTESTED STUB 777 return 0; 778 } 779 780 781 782 /***************************************************************************** 783 * Name : DWORD SHLWAPI_156 784 * Purpose : Case-sensitive wide string compare 785 * Parameters: LPSTR lpStr1 786 * LPSTR lpStr2 787 * Variables : 788 * Result : case-sensitive comparsion result between the two strings 789 * Remark : SHLWAPI.158 790 * Status : UNTESTED 636 791 * 637 792 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 638 793 *****************************************************************************/ 639 794 640 ODINFUNCTION1(DWORD,SHLWAPI_38, 641 DWORD,arg0) 642 { 643 dprintf(("not yet implemented")); 644 645 return 0; 646 } 647 648 649 /***************************************************************************** 650 * Name : SHLWAPI_40 651 * Purpose : looks like CharNextW 652 * Parameters: 653 * Variables : 654 * Result : 655 * Remark : 656 * Status : UNTESTED 657 * 658 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 659 *****************************************************************************/ 660 661 ODINFUNCTION1(LPWSTR, SHLWAPI_40, 662 LPWSTR, lpChar) 663 { 664 if (*lpChar == 0) 665 return lpChar; 666 else 667 return lpChar++; 668 } 669 670 671 /***************************************************************************** 672 * Name : SHLWAPI_43 673 * Purpose : 674 * Parameters: 675 * Variables : 676 * Result : 677 * Remark : 678 * Status : UNTESTED STUB 679 * 680 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 681 *****************************************************************************/ 682 683 ODINFUNCTION1(DWORD,SHLWAPI_43, 684 DWORD,arg0) 685 { 686 dprintf(("not yet implemented")); 687 688 return 0; 689 } 690 691 692 /***************************************************************************** 693 * Name : SHLWAPI_53 694 * Purpose : Character base independend CreateFontIndirect 695 * Parameters: 696 * Variables : 697 * Result : 698 * Remark : 699 * Status : UNTESTED 700 * 701 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 702 *****************************************************************************/ 703 704 ODINFUNCTION1(DWORD, SHLWAPI_53, 705 CONST LOGFONTW *, lplf) 706 { 707 if (VERSION_OsIsUnicode()) 708 return CreateFontIndirectW(lplf); 709 else 710 { 711 // Original: 712 // convert lplf to LOGFONTA 713 // call CreateFontIndirectA 714 return CreateFontIndirectW(lplf); 715 } 716 } 717 718 719 /***************************************************************************** 720 * Name : LRESULT sDefWindowProcAW 721 * Purpose : 722 * Parameters: 723 * Variables : 724 * Result : 725 * Remark : SHLWAPI.56 - this procedure has static unicode behaviour 726 * Status : UNTESTED 727 * 728 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 729 *****************************************************************************/ 730 731 ODINFUNCTION4(LRESULT, sDefWindowProcAW, 732 HWND, hWnd, 733 UINT, Msg, 734 WPARAM, wParam, 735 LPARAM, lParam) 736 { 737 if (VERSION_OsIsUnicode()) 738 return DefWindowProcW(hWnd, Msg, wParam, lParam); 739 else 740 return DefWindowProcA(hWnd, Msg, wParam, lParam); 741 } 742 743 744 /***************************************************************************** 745 * Name : SHLWAPI_59 746 * Purpose : DialogBoxParamAW 747 * Parameters: 748 * Variables : 749 * Result : 750 * Remark : 751 * Status : UNTESTED 752 * 753 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 754 *****************************************************************************/ 755 756 ODINFUNCTION5(DWORD, SHLWAPI_59, 757 HINSTANCE, hInstance, 758 LPCSTR, lpTemplateName, 759 HWND, hWndParent, 760 DLGPROC, lpDialogFunc, 761 LPARAM, dwInitParam) 762 { 763 // PH Note: originally, here are some heavy hooks into Internet Explorer 764 // and tons of language support stuff. 765 766 if (VERSION_OsIsUnicode()) 767 return DialogBoxParamW(hInstance, 768 (LPCWSTR)lpTemplateName, 769 hWndParent, 770 lpDialogFunc, 771 dwInitParam); 772 else 773 return DialogBoxParamA(hInstance, 774 lpTemplateName, 775 hWndParent, 776 lpDialogFunc, 777 dwInitParam); 778 } 779 780 781 /***************************************************************************** 782 * Name : LONG DispatchMessage 783 * Purpose : 784 * Parameters: 785 * Variables : 786 * Result : 787 * Remark : SHLWAPI.60 788 * Status : UNTESTED 789 * 790 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 791 *****************************************************************************/ 792 793 ODINFUNCTION1(LONG, DispatchMessageAW, 794 const MSG*, lpmsg) 795 { 796 if (VERSION_OsIsUnicode()) 797 return DispatchMessageW(lpmsg); 798 else 799 return DispatchMessageA(lpmsg); 800 } 801 802 803 /***************************************************************************** 804 * Name : SHLWAPI_74 805 * Purpose : Sort of GetDlgItemText 806 * Parameters: 807 * Variables : 808 * Result : 809 * Remark : 810 * Status : UNTESTED 811 * 812 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 813 *****************************************************************************/ 814 815 ODINFUNCTION4(DWORD, SHLWAPI_74, 816 HWND, hDlg, 817 int, nIDDlgItem, 818 LPWSTR, lpText, 819 int, nMaxCount) 820 { 821 HWND hwndItem = GetDlgItem(hDlg, 822 nIDDlgItem); 823 if (hwndItem == NULL) 824 { 825 if (nMaxCount != 0) // PH Note: bug in original windows code 826 *lpText = 0; 827 828 return NULL; 829 } 830 831 // else retrieve the text 832 return SHLWAPI_95(hwndItem, 833 lpText, 834 nMaxCount); 835 } 836 837 838 /***************************************************************************** 839 * Name : HMODULE GetModuleHandleAW 840 * Purpose : 841 * Parameters: 842 * Variables : 843 * Result : 844 * Remark : SHLWAPI.83 - check back with original code, result may be wrong 845 * Status : UNTESTED 846 * 847 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 848 *****************************************************************************/ 849 850 ODINFUNCTION1(HMODULE, GetModuleHandleAW, 851 LPWSTR, lpModuleName) 852 { 853 if (VERSION_OsIsUnicode()) 854 return GetModuleHandleW(lpModuleName); 855 else 856 { 857 dprintf(("error: unicode to ascii conversion missing")); 858 return GetModuleHandleA((LPSTR)lpModuleName); 859 } 860 } 861 862 863 /***************************************************************************** 864 * Name : LONG GetWindowLongAW 865 * Purpose : 866 * Parameters: 867 * Variables : 868 * Result : 869 * Remark : SHLWAPI.94 870 * Status : UNTESTED 871 * 872 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 873 *****************************************************************************/ 874 875 ODINFUNCTION2(LONG, GetWindowLongAW, 876 HWND, hWnd, 877 int, nIndex) 878 { 879 if (VERSION_OsIsUnicode()) 880 return GetWindowLongW(hWnd, nIndex); 881 else 882 return GetWindowLongA(hWnd, nIndex); 883 } 884 885 886 /***************************************************************************** 887 * Name : SHLWAPI_95 888 * Purpose : 889 * Parameters: 890 * Variables : 891 * Result : 892 * Remark : 893 * Status : UNTESTED 894 * 895 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 896 *****************************************************************************/ 897 898 ODINFUNCTION3(DWORD, SHLWAPI_95, 899 HWND, hwndItem, 900 LPWSTR, lpText, 901 int, nMaxCount) 902 { 903 dprintf(("not properly implemented.\n")); 904 905 // @@@PH too simple, original deals with some properties and stuff 906 if (VERSION_OsIsUnicode()) 907 return GetWindowTextW(hwndItem, 908 lpText, 909 nMaxCount); 910 else 911 { 912 // @@@PH unicode conversion is missing 913 return GetWindowTextA(hwndItem, 914 (LPSTR)lpText, 915 nMaxCount); 916 } 917 } 918 919 920 /***************************************************************************** 921 * Name : HCURSOR LoadCursorAW 922 * Purpose : 923 * Parameters: 924 * Variables : 925 * Result : 926 * Remark : SHLWAPI.102 927 * Status : UNTESTED 928 * 929 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 930 *****************************************************************************/ 931 932 ODINFUNCTION2(HCURSOR, LoadCursorAW, 933 HINSTANCE, hInstance, 934 LPCSTR, lpCursorName) 935 { 936 if (VERSION_OsIsUnicode()) 937 return LoadCursorW(hInstance, (LPCWSTR)lpCursorName); 938 else 939 return LoadCursorA(hInstance, lpCursorName); 940 } 941 942 943 /***************************************************************************** 944 * Name : BOOL PeekMessageAW 945 * Purpose : 946 * Parameters: 947 * Variables : 948 * Result : 949 * Remark : SHLWAPI.116 950 * Status : UNTESTED 951 * 952 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 953 *****************************************************************************/ 954 955 ODINFUNCTION5(BOOL, PeekMessageAW, 956 LPMSG, lpMsg, 957 HWND, hWnd, 958 UINT, uMsgFilterMin, 959 UINT, uMsgFilterMax, 960 UINT, wRemoveMsg) 961 { 962 if (VERSION_OsIsUnicode()) 963 return PeekMessageW(lpMsg, hWnd, uMsgFilterMin, uMsgFilterMax, wRemoveMsg); 964 else 965 return PeekMessageA(lpMsg, hWnd, uMsgFilterMin, uMsgFilterMax, wRemoveMsg); 966 } 967 968 969 /***************************************************************************** 970 * Name : BOOL PostMessageAW 971 * Purpose : 972 * Parameters: 973 * Variables : 974 * Result : 975 * Remark : SHLWAPI.117 976 * Status : UNTESTED 977 * 978 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 979 *****************************************************************************/ 980 981 ODINFUNCTION4(BOOL, PostMessageAW, 982 HWND, hWnd, 983 UINT, Msg, 984 WPARAM, wParam, 985 LPARAM, lParam) 986 { 987 if (VERSION_OsIsUnicode()) 988 return PostMessageW(hWnd, Msg, wParam, lParam); 989 else 990 return PostMessageA(hWnd, Msg, wParam, lParam); 795 ODINFUNCTION2(DWORD, SHLWAPI_156, 796 LPWSTR, str1, /* "shell32.dll" */ 797 LPWSTR, str2) /* "shell32.dll" */ 798 { 799 return lstrcmpW(str1,str2); 991 800 } 992 801 … … 1035 844 /* OK, strings compared til end of string1 */ 1036 845 return 0; 846 } 847 848 849 /***************************************************************************** 850 * Name : DWORD SHLWAPI_160 851 * Purpose : 852 * Parameters: 853 * Variables : 854 * Result : 855 * Remark : SHLWAPI.160 856 * Status : UNTESTED STUB 857 * 858 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 859 *****************************************************************************/ 860 861 ODINFUNCTION2(DWORD, SHLWAPI_160, 862 DWORD, arg0, 863 DWORD, arg1) 864 { 865 dprintf(("not implemented.\n")); 866 return 0; 867 } 868 869 870 871 /************************************************************************* 872 * SHLWAPI_169 [SHLWAPI] 873 */ 874 ODINFUNCTION1(DWORD, SHLWAPI_169, 875 IUnknown **, lplpUnknown) 876 { 877 IUnknown *lpUnknown; 878 879 if (lplpUnknown == NULL) 880 return 0; 881 882 lpUnknown = *lplpUnknown; 883 if (lpUnknown == NULL) 884 return 0; 885 886 *lplpUnknown = NULL; // kill object pointer 887 888 // and still call the object's release method 889 return IUnknown_Release(lpUnknown); 890 } 891 892 893 /***************************************************************************** 894 * Name : LPSTR SHLWAPI_170 895 * Purpose : verify if current string position is "//" or not 896 * skip "//" ... 897 * Parameters: LPSTR lpStr 898 * Variables : 899 * Result : lpStr + 2 or NULL 900 * Remark : SHLWAPI.170 901 * Status : UNTESTED 902 * 903 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 904 *****************************************************************************/ 905 906 ODINFUNCTION1(LPSTR, SHLWAPI_170, 907 LPSTR, lpStr) 908 { 909 if ( (lpStr != NULL) && 910 (*lpStr == '/' ) && 911 (*(lpStr+1) == '/' ) ) 912 return lpStr+2; 913 else 914 return lpStr; 915 } 916 917 918 /************************************************************************* 919 * SHLWAPI_193 [SHLWAPI] 920 * query current color depth 921 */ 922 ODINFUNCTION0(DWORD, SHLWAPI_193) 923 { 924 HDC hdc; 925 DWORD ret; 926 927 hdc = GetDC(0); 928 ret = GetDeviceCaps(hdc, BITSPIXEL) * GetDeviceCaps(hdc, PLANES); 929 ReleaseDC(0, hdc); 930 return ret; 1037 931 } 1038 932 … … 1073 967 1074 968 969 /************************************************************************* 970 * SHLWAPI_219 [SHLWAPI] 971 */ 972 ODINFUNCTION4(HRESULT, SHLWAPI_219, 973 LPVOID, w, /* returned by LocalAlloc */ 974 LPVOID, x, 975 LPVOID, y, 976 LPWSTR, z) /* OUT: path */ 977 { 978 FIXME("(%p %p %p %p)stub\n",w,x,y,z); 979 return 0xabba1252; 980 } 981 982 983 /************************************************************************* 984 * SHLWAPI_222 [SHLWAPI] 985 * 986 * NOTES 987 * securityattributes missing 988 */ 989 ODINFUNCTION1(HANDLE, SHLWAPI_222, 990 LPCLSID, guid) 991 { 992 char lpstrName[80]; 993 strcpy( lpstrName,"shell."); 994 WINE_StringFromCLSID(guid, lpstrName + strlen(lpstrName)); 995 996 FIXME("(%s) stub\n", lpstrName); 997 return CreateSemaphoreA(NULL,0, 0x7fffffff, lpstrName); 998 } 999 1000 1001 /************************************************************************* 1002 * SHLWAPI_223 [SHLWAPI] 1003 * 1004 * NOTES 1005 * function guessed 1006 */ 1007 ODINFUNCTION1(DWORD, SHLWAPI_223, 1008 HANDLE, handle) 1009 { 1010 LONG oldCount; 1011 1012 FIXME("(0x%08x) stub\n",handle); 1013 1014 ReleaseSemaphore( handle, 1, &oldCount); 1015 WaitForSingleObject( handle, 0 ); 1016 return 0; 1017 } 1018 1019 1020 /************************************************************************* 1021 * SHLWAPI_237 [SHLWAPI] 1022 * Purpose: verify a WNDCLASSW structure 1023 */ 1024 ODINFUNCTION1(DWORD, SHLWAPI_237, 1025 LPWNDCLASSW, lpWndClass) 1026 { 1027 WNDCLASSW wndClass; 1028 1029 if (GetClassInfoW(lpWndClass->hInstance, 1030 (LPWSTR)lpWndClass->lpszClassName, 1031 &wndClass) == TRUE) 1032 return 1; 1033 else 1034 return 0; 1035 } 1036 1037 1075 1038 /***************************************************************************** 1076 1039 * Name : LRESULT DefWindowProcAW … … 1096 1059 return DefWindowProcA(hWnd, Msg, wParam, lParam); 1097 1060 } 1061 1062 1063 /************************************************************************* 1064 * SHLWAPI_241 [SHLWAPI] 1065 * 1066 */ 1067 ODINFUNCTION0(DWORD, SHLWAPI_241) 1068 { 1069 FIXME("()stub\n"); 1070 return 0xabba1243; 1071 } 1072 1073 /************************************************************************* 1074 * SHLWAPI_266 [SHLWAPI] 1075 */ 1076 ODINFUNCTION4(DWORD, SHLWAPI_266, 1077 LPVOID, w, 1078 LPVOID, x, 1079 LPVOID, y, 1080 LPVOID, z) 1081 { 1082 FIXME("(%p %p %p %p)stub\n",w,x,y,z); 1083 return 0xabba1248; 1084 } 1085 1086 /************************************************************************* 1087 * SHLWAPI_267 [SHLWAPI] 1088 */ 1089 ODINFUNCTION4(HRESULT, SHLWAPI_267, 1090 LPVOID, w, /* same as 1th parameter of SHLWAPI_219 */ 1091 LPVOID, x, /* same as 2nd parameter of SHLWAPI_219 */ 1092 LPVOID, y, 1093 LPVOID, z) 1094 { 1095 FIXME("(%p %p %p %p)stub\n",w,x,y,z); 1096 *((LPDWORD)z) = 0xabba1200; 1097 return 0xabba1254; 1098 } 1099 1100 /************************************************************************* 1101 * SHLWAPI_268 [SHLWAPI] 1102 */ 1103 ODINFUNCTION2(DWORD, SHLWAPI_268, 1104 LPVOID, w, 1105 LPVOID, x) 1106 { 1107 FIXME("(%p %p)\n",w,x); 1108 return 0xabba1251; /* 0 = failure */ 1109 } 1110 1111 /************************************************************************* 1112 * SHLWAPI_276 [SHLWAPI] 1113 * dynamically load SHELL32.DllGetVersion 1114 * 1115 */ 1116 ODINFUNCTION0(DWORD, SHLWAPI_276) 1117 { 1118 FIXME("()stub\n"); 1119 return 0xabba1244; 1120 } 1121 1122 1123 /************************************************************************* 1124 * SHLWAPI_309 [SHLWAPI] 1125 * 1126 */ 1127 ODINFUNCTION1(DWORD, SHLWAPI_309, 1128 LPVOID, x) 1129 { 1130 FIXME("(%p)stub\n",x); 1131 return 0xabba1245; 1132 } 1133 1134 /************************************************************************* 1135 * SHLWAPI_342 [SHLWAPI] 1136 * 1137 */ 1138 ODINFUNCTION4(DWORD, SHLWAPI_342, 1139 LPVOID, w, 1140 LPVOID, x, 1141 LPVOID, y, 1142 LPVOID, z) 1143 { 1144 FIXME("(%p %p %p %p)stub\n",w,x,y,z); 1145 return 0xabba1249; 1146 } 1147 1148 /************************************************************************* 1149 * SHLWAPI_346 [SHLWAPI] 1150 */ 1151 ODINFUNCTION3(DWORD, SHLWAPI_346, 1152 LPCWSTR, src, 1153 LPWSTR, dest, 1154 int, len) 1155 { 1156 FIXME("(%s %p 0x%08x)stub\n",debugstr_w(src),dest,len); 1157 lstrcpynW(dest, src, len); 1158 return lstrlenW(dest)+1; 1159 } 1160 1161 1162 /***************************************************************************** 1163 * Name : SHLWAPI_364 1164 * Purpose : call lstrcpynA 1165 * Parameters: 1166 * Variables : 1167 * Result : 1168 * Remark : SHLWAPI.364 1169 * Status : UNTESTED 1170 * 1171 * Author : 1172 *****************************************************************************/ 1173 1174 ODINFUNCTION3(INT, SHLWAPI_364, 1175 LPSTR, lpStr1, 1176 LPSTR, lpStr2, 1177 INT, nLength) 1178 { 1179 // @@@PH is there some parameter twisting ? 1180 lstrcpynA(lpStr2, 1181 lpStr1, 1182 nLength); 1183 1184 return 1; 1185 } 1186 1187 1188 1189 /************************************************************************* 1190 * SHLWAPI_377 [SHLWAPI] 1191 */ 1192 ODINFUNCTION3(DWORD, SHLWAPI_377, 1193 LPVOID, x, 1194 LPVOID, y, 1195 LPVOID, z) 1196 { 1197 FIXME("(%p %p %p)stub\n", x,y,z); 1198 return 0xabba1246; 1199 } 1200 1201 1202 /***************************************************************************** 1203 * Name : DWORD SHLWAPI_437 1204 * Purpose : Determine product version and options 1205 * Parameters: 1206 * Variables : 1207 * Result : 1208 * Remark : SHLWAPI.437 1209 * Status : UNTESTED 1210 * 1211 * Author : Patrick Haller [Sun, 2000/06/10 04:02] 1212 *****************************************************************************/ 1213 1214 #define REG_PRODUCTOPTIONS "System\\CurrentControlSet\\Control\\ProductOptions" 1215 #define REG_OPTIONS_PRODUCTTYPE "ProductType" 1216 #define REG_OPTIONS_ENTERPRISE "Enterprise" 1217 #define REG_OPTIONS_DATACENTER "DataCenter" 1218 1219 ODINFUNCTION1(DWORD, SHLWAPI_437, 1220 DWORD, nFunction) 1221 { 1222 static BOOL flagProductOptionsInitialized = FALSE; 1223 static BOOL flagIsProductEnterprise = FALSE; 1224 static BOOL flagIsProductDatacenter = FALSE; 1225 static OSVERSIONINFOA osVersionInfo; 1226 1227 HKEY hKeyOptions; 1228 DWORD dwKeyType; 1229 char szBuffer[260]; // MAX_PATH_LEN 1230 DWORD dwDataLength; 1231 1232 dprintf(("not (properly) implemented.\n")); 1233 1234 if (flagProductOptionsInitialized == FALSE) 1235 { 1236 // set to TRUE regardless of subsequent errors 1237 flagProductOptionsInitialized = TRUE; 1238 1239 // initialize required structures 1240 osVersionInfo.dwOSVersionInfoSize = 0x9c; 1241 if (GetVersionExA(&osVersionInfo) == FALSE) 1242 { 1243 osVersionInfo.dwOSVersionInfoSize = 0x94; 1244 GetVersionExA(&osVersionInfo); 1245 } 1246 1247 LONG rc = RegOpenKeyExA(HKEY_LOCAL_MACHINE, 1248 REG_PRODUCTOPTIONS, 1249 0, 1250 KEY_READ, 1251 &hKeyOptions); 1252 if (rc == ERROR_SUCCESS) 1253 { 1254 dwDataLength = sizeof(szBuffer); 1255 rc = RegQueryValueExA(hKeyOptions, 1256 REG_OPTIONS_PRODUCTTYPE, 1257 0, 1258 &dwKeyType, 1259 (LPBYTE)szBuffer, 1260 &dwDataLength); 1261 if (StrStrIA(szBuffer, REG_OPTIONS_ENTERPRISE) != 0) 1262 flagIsProductEnterprise = TRUE; 1263 else 1264 if (StrStrIA(szBuffer, REG_OPTIONS_DATACENTER) != 0) 1265 flagIsProductDatacenter = TRUE; 1266 1267 RegCloseKey(hKeyOptions); 1268 } 1269 } 1270 1271 // OK, now to the usual work ... 1272 switch (nFunction) 1273 { 1274 // is platform WINDOWS 1275 case 0: 1276 if (osVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) 1277 return 1; 1278 else 1279 return 0; 1280 1281 // is platform NT 1282 case 1: 1283 if (osVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT) 1284 return 1; 1285 else 1286 return 0; 1287 1288 // is platform Windows 95/98/xx ? 1289 case 2: 1290 if (osVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS) 1291 return 0; 1292 if (osVersionInfo.dwMajorVersion >= 4) 1293 return 1; 1294 else 1295 return 0; 1296 1297 // is platform NT4 or better? 1298 case 3: 1299 if (osVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT) 1300 return 0; 1301 if (osVersionInfo.dwMajorVersion >= 4) 1302 return 1; 1303 else 1304 return 0; 1305 1306 // is platform Win2000 or better? 1307 case 4: 1308 if (osVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT) 1309 return 0; 1310 if (osVersionInfo.dwMajorVersion >= 5) 1311 return 1; 1312 else 1313 return 0; 1314 1315 // at least Windows 4.10 ? 1316 case 5: 1317 if (osVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS) 1318 return 0; 1319 if (osVersionInfo.dwMajorVersion > 4) 1320 return 1; 1321 else 1322 if (osVersionInfo.dwMajorVersion == 4) 1323 if (osVersionInfo.dwMinorVersion >= 10) 1324 return 1; 1325 1326 return 0; 1327 1328 // is platform Windows98 GA ? 1329 case 6: 1330 if ( (osVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) && 1331 (osVersionInfo.dwMajorVersion == 4) && 1332 (osVersionInfo.dwMinorVersion == 10) && 1333 (osVersionInfo.dwBuildNumber == 1998) ) // 0x7ce 1334 return 1; 1335 else 1336 return 0; 1337 1338 // is platform some specific CSD ? 1339 case 7: 1340 case 8: 1341 //@@@PH incorrect 1342 if (osVersionInfo.dwMajorVersion >= 5) 1343 return 1; 1344 else 1345 return 0; 1346 1347 case 9: 1348 //@@@PH incorrect 1349 if (osVersionInfo.dwMajorVersion >= 5 || 1350 flagIsProductEnterprise || 1351 flagIsProductDatacenter) 1352 return 1; 1353 else 1354 return 0; 1355 1356 case 10: 1357 //@@@PH incorrect 1358 if (osVersionInfo.dwMajorVersion >= 5) 1359 return flagIsProductEnterprise; 1360 else 1361 return 0; 1362 1363 case 11: 1364 //@@@PH incorrect 1365 if (osVersionInfo.dwMajorVersion >= 5) 1366 return flagIsProductDatacenter; 1367 else 1368 return 0; 1369 1370 // @@@PH: Oops, wazzup there ? 1371 case 12: 1372 return GetSystemMetrics(4096); 1373 } 1374 1375 return 0; 1376 } 1377 1378 1379 /***************************************************************************** 1380 * Name : SHIsLowMemoryMachine 1381 * Purpose : 1382 * Parameters: BOOL fRetest - TRUE if testing shall be repeated 1383 * - FALSE if cached result is to be used 1384 * Variables : 1385 * Result : 0 - machine is not memory-constrained 1386 * 1 - machine is memory-constrained 1387 * Remark : SHLWAPI.584 1388 * Status : UNTESTED 1389 * 1390 * Author : Patrick Haller [Mon, 2000/06/11 02:02] 1391 *****************************************************************************/ 1392 1393 ODINFUNCTION1(int, SHIsLowMemoryMachine, 1394 BOOL, fRetest) 1395 { 1396 MEMORYSTATUS memBuffer; 1397 static int flagIsLowMemoryMachine = -1; 1398 ULONG ulMem; 1399 1400 // use cached result? 1401 if ( (fRetest == TRUE) || 1402 (flagIsLowMemoryMachine == -1) ) 1403 { 1404 // determine and store result 1405 GlobalMemoryStatus(&memBuffer); 1406 if (VERSION_OsIsUnicode()) 1407 ulMem = 0x1000000; // unicode operation mode 1408 else 1409 ulMem = 0x0800000; // ascii operation mode 1410 1411 // enough memory? 1412 if (memBuffer.dwTotalPhys <= ulMem) 1413 flagIsLowMemoryMachine = 1; 1414 else 1415 flagIsLowMemoryMachine = 0; 1416 } 1417 1418 return flagIsLowMemoryMachine; 1419 } -
trunk/src/shlwapi/reg.cpp
r3539 r3687 1 /* $Id: reg.cpp,v 1. 1 2000-05-15 02:43:16phaller Exp $ */1 /* $Id: reg.cpp,v 1.2 2000-06-12 08:09:39 phaller Exp $ */ 2 2 3 3 /* … … 37 37 38 38 ODINDEBUGCHANNEL(SHLWAPI-REG) 39 40 41 /***************************************************************************** 42 * Name : DWORD SHRegCreateUSKeyA 43 * Purpose : 44 * Parameters: 45 * Variables : 46 * Result : 47 * Remark : SHLWAPI.594 SHLWAPI.SHRegCreateUSKeyA 48 * Status : UNTESTED 49 * 50 * Author : Patrick Haller [Wed, 1999/12/29 23:02] 51 *****************************************************************************/ 52 53 ODINFUNCTION5(DWORD, SHRegCreateUSKeyA, 54 LPSTR, lpszKeyName, 55 DWORD, arg1, 56 DWORD, arg2, 57 DWORD, arg3, 58 DWORD, arg4) 59 { 60 dprintf(("not implemented\n")); 61 return 0; 62 } 63 64 65 /***************************************************************************** 66 * Name : DWORD SHRegCreateUSKeyW 67 * Purpose : 68 * Parameters: 69 * Variables : 70 * Result : 71 * Remark : SHLWAPI.595 SHLWAPI.SHRegCreateUSKeyW 72 * Status : UNTESTED 73 * 74 * Author : Patrick Haller [Wed, 1999/12/29 23:02] 75 *****************************************************************************/ 76 77 ODINFUNCTION5(DWORD, SHRegCreateUSKeyW, 78 LPWSTR, lpszKeyName, 79 DWORD, arg1, 80 DWORD, arg2, 81 DWORD, arg3, 82 DWORD, arg4) 83 { 84 char szBuffer[256]; 85 86 // convert unicode to ascii 87 if (0 == WideCharToMultiByte(0, 88 0, 89 lpszKeyName, 90 -1, 91 szBuffer, 92 sizeof(szBuffer), 93 0, 94 0)) 95 return GetLastError(); 96 97 return SHRegCreateUSKeyA(szBuffer, 98 arg1, 99 arg2, 100 arg3, 101 arg4); 102 } 39 103 40 104 … … 160 224 161 225 226 /***************************************************************************** 227 * Name : DWORD SHRegSetUSValueA 228 * Purpose : 229 * Parameters: 230 * Variables : 231 * Result : 232 * Remark : SHLWAPI.SHRegSetUSValueA SHLWAPI.615 233 * Status : UNTESTED 234 * 235 * Author : Patrick Haller [Wed, 1999/12/29 23:02] 236 *****************************************************************************/ 237 238 ODINFUNCTION6(LONG, SHRegSetUSValueA, 239 HKEY, hKey, 240 DWORD, arg2, 241 DWORD, arg3, 242 DWORD, arg4, 243 DWORD, arg5, 244 DWORD, arg6) 245 { 246 LONG rc; 247 248 #if 0 249 rc = SHRegCreateUSKeyA(hKey, 250 3, 251 0, 252 &hKey); 253 if (rc == ERROR_SUCCESS) 254 { 255 rc = SHRegWriteUSValueA(hKey, 256 arg2, 257 arg3, 258 arg4, 259 arg5, 260 arg6); 261 SHRegCloseUSKey(hKey); 262 } 263 #endif 264 265 return rc; 266 } 267 268 269 270 271 /***************************************************************************** 272 * Name : DWORD SHRegSetUSValueW 273 * Purpose : 274 * Parameters: 275 * Variables : 276 * Result : 277 * Remark : SHLWAPI.SHRegSetUSValueW SHLWAPI.616 278 * Status : UNTESTED 279 * 280 * Author : Patrick Haller [Wed, 1999/12/29 23:02] 281 *****************************************************************************/ 282 283 ODINFUNCTION6(LONG, SHRegSetUSValueW, 284 HKEY, hKey, 285 DWORD, arg2, 286 DWORD, arg3, 287 DWORD, arg4, 288 DWORD, arg5, 289 DWORD, arg6) 290 { 291 LONG rc; 292 293 #if 0 294 rc = SHRegCreateUSKeyW(hKey, 295 3, 296 0, 297 &hKey); 298 if (rc == ERROR_SUCCESS) 299 { 300 rc = SHRegWriteUSValueW(hKey, 301 arg2, 302 arg3, 303 arg4, 304 arg5, 305 arg6); 306 SHRegCloseUSKey(hKey); 307 } 308 #endif 309 310 return rc; 311 } 312 313 -
trunk/src/shlwapi/shlwapi.cpp
r3684 r3687 1 /* $Id: shlwapi.cpp,v 1. 7 2000-06-11 08:44:54phaller Exp $ */1 /* $Id: shlwapi.cpp,v 1.8 2000-06-12 08:09:40 phaller Exp $ */ 2 2 3 3 /* … … 12 12 * Copyright 1997 Uwe Bonnes 13 13 * Copyright 1999 Jens Wiessner 14 * 15 * Two functions (WINE_StringFromCLSID and StringFromGUID2) are directly 16 * borrowed from ole32/clsid.cpp. This is to avoid the direct dependency 17 * between SHLWAPI.DLL and the OLE32.DLL. 14 18 */ 15 19 … … 39 43 #include <win\winerror.h> 40 44 45 // import OLE support 46 #include <win/wtypes.h> 47 #define OLE_OK 0 48 41 49 42 50 ODINDEBUGCHANNEL(SHLWAPI) … … 57 65 } 58 66 67 68 // ---------------------------------------------------------------------- 69 // WINE_StringFromCLSID 70 // ---------------------------------------------------------------------- 71 HRESULT WINAPI WINE_StringFromCLSID(const CLSID *rclsid, LPSTR idstr) 72 { 73 // dprintf(("OLE32: WINE_StringFromCLSID")); 74 75 if (rclsid == NULL) 76 { 77 dprintf((" clsid: (NULL)")); 78 *idstr = 0; 79 return E_FAIL; 80 } 81 82 // Setup new string... 83 sprintf(idstr, "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}", 84 rclsid->Data1, 85 rclsid->Data2, 86 rclsid->Data3, 87 rclsid->Data4[0], 88 rclsid->Data4[1], 89 rclsid->Data4[2], 90 rclsid->Data4[3], 91 rclsid->Data4[4], 92 rclsid->Data4[5], 93 rclsid->Data4[6], 94 rclsid->Data4[7]); 95 96 // dprintf((" clsid: %s", idstr)); 97 98 return OLE_OK; 99 } 100 101 // ---------------------------------------------------------------------- 102 // StringFromGUID2 103 // ---------------------------------------------------------------------- 104 int WINAPI StringFromGUID2(REFGUID rguid, LPOLESTR lpsz, int cbMax) 105 { 106 // NB cbMax is a CHARACTER count not a BYTE count... :-) 107 char tmp[50]; 108 size_t strLen; 109 110 // Setup new string... 111 WINE_StringFromCLSID(rguid, tmp); 112 113 strLen = (strlen(tmp) + 1); 114 if (strLen > cbMax) 115 strLen = cbMax; 116 117 AsciiToUnicodeN(tmp, lpsz, strLen); 118 119 return strLen; // Num CHARACTERS including 0 terminator 120 } 121 122 123 /***************************************************************************** 124 * Name : DllGetVersion 125 * Purpose : Return version information about the DLL used 126 * Parameters: 127 * Variables : 128 * Result : 129 * Remark : SHLWAPI.446 130 * Status : UNTESTED 131 * 132 * Author : 133 *****************************************************************************/ 134 135 typedef struct tagDLLVERSION 136 { 137 DWORD dwLength; // == 0x14 138 DWORD dwMajorVersion; 139 DWORD dwMinorVersion; 140 DWORD dwRevision; 141 DWORD dwBuildNumber; 142 } DLLVERSION, *LPDLLVERSION; 143 144 145 ODINFUNCTION1(DWORD, DllGetVersion, 146 LPDLLVERSION, lpBuffer) 147 { 148 if (lpBuffer == NULL) 149 return E_INVALIDARG; // error code: invalid parameters 150 151 if (IsBadWritePtr(lpBuffer, 152 20)) 153 return E_INVALIDARG; 154 155 if (lpBuffer->dwLength != sizeof(DLLVERSION)) 156 return E_INVALIDARG; 157 158 // our current version is 5.0.2314.1000 159 lpBuffer->dwMajorVersion = 5; 160 //lpBuffer->dwMinorVersion = 0; // @@@PH not touched in windows code ? 161 lpBuffer->dwRevision = 2314; 162 lpBuffer->dwBuildNumber = 1; 163 164 return ERROR_SUCCESS; 165 } -
trunk/src/shlwapi/shlwapi.def
r3684 r3687 1 ; $Id: shlwapi.def,v 1.1 5 2000-06-11 08:44:55phaller Exp $1 ; $Id: shlwapi.def,v 1.16 2000-06-12 08:09:41 phaller Exp $ 2 2 3 3 ; updated export ordinals to NT4 SP6 version of SHLWAPI.DLL 4 4 ; Note: W95/W98 has DIFFERENT export ordinals 5 ; 6 ; Note: Internet Explorer 5 brought the DLL to level 7 ; 5-0-2314-1000 5 8 6 9 LIBRARY SHLWAPI INITINSTANCE TERMINSTANCE … … 31 34 _SHLWAPI_15@8 @15 32 35 SHCreateThread = _SHCreateThread@16 @16 33 36 _SHLWAPI_17@8 @17 37 _SHLWAPI_18@8 @18 38 _SHLWAPI_19@4 @19 39 _SHLWAPI_20@8 @20 40 _SHLWAPI_21@8 @21 41 _SHLWAPI_22@8 @22 34 42 _SHLWAPI_23@12 @23 43 _SHLWAPI_24@12 @24 35 44 _SHLWAPI_28@4 @28 36 _CallWindowProcAW@20 @37 37 _SHLWAPI_38@4 @38 38 _SHLWAPI_40@4 @40 39 _SHLWAPI_43@4 @43 40 _SHLWAPI_53@4 @53 41 _sDefWindowProcAW@16 @56 42 _SHLWAPI_59@20 @59 43 _DispatchMessageAW@4 @60 44 _SHLWAPI_74@16 @74 45 _GetModuleHandleAW@4 @83 46 _GetWindowLongAW@8 @94 47 _SHLWAPI_95@12 @95 48 _LoadCursorAW@8 @102 49 _PeekMessageAW@20 @116 50 _PostMessageAW@16 @117 45 _SHLWAPI_30@4 @30 46 47 _CallWindowProcW@20 @37 48 _CharLowerW@4 @38 49 _CharLowerBuffW@8 @39 50 _CharNextW@4 @40 51 _CharPrevW@8 @41 52 _CharToOemW@8 @42 53 _CharUpperW@4 @43 54 _CharUpperBuffW@8 @44 55 _CompareStringW@24 @45 56 _CopyAcceleratorTableW@12 @46 57 _CreateAcceleratorTableW@8 @47 58 _CreateDCW@16 @48 59 _CreateDialogParamW@20 @49 ; @@@PH imcomplete 60 _CreateDirectoryW@8 @50 61 _CreateEventW@16 @51 62 _CreateFileW@28 @52 63 _CreateFontIndirectW@4 @53 64 _CreateICW@16 @54 65 _CreateWindowExW@48 @55 66 _DefWindowProcW@16 @56 67 _DeleteFileW@4 @57 68 _DialogBoxIndirectParamW@20 @58 ; @@@PH imcomplete 69 _DialogBoxParamW@20 @59 ; @@@PH imcomplete 70 _DispatchMessageW@4 @60 71 _DrawTextW@20 @61 72 _EnumFontFamiliesW@16 @62 73 _EnumFontFamiliesExW@20 @63 74 _EnumResourceNamesW@16 @64 75 _FindFirstFileW@8 @65 76 _FindResourceW@12 @66 77 _FindWindowW@8 @67 78 _FormatMessageW@28 @68 79 _GetClassInfoW@12 @69 80 _GetClassLongW@8 @70 81 _GetClassNameW@12 @71 82 _GetClipboardFormatNameW@12 @72 83 _GetCurrentDirectoryW@8 @73 84 _GetDlgItemTextW@16 @74 85 _GetFileAttributesW@4 @75 86 _GetFullPathNameW@16 @76 87 _GetLocaleInfoW@16 @77 88 _GetMenuItemInfoW@16 @78 89 _GetMessageW@16 @79 90 _GetModuleFileNameW@12 @80 91 _GetSystemDirectoryW@8 @81 92 _SearchPathW@24 @82 93 _GetModuleHandleW@4 @83 94 _GetObjectW@12 @84 95 _GetPrivateProfileIntW@16 @85 96 _GetProfileStringW@20 @86 97 _GetPropW@8 @87 98 _GetStringTypeExW@20 @88 99 _GetTempFileNameW@16 @89 100 _GetTempPathW@8 @90 101 _GetTextExtentPoint32W@16 @91 102 _GetTextFaceW@12 @92 103 _GetTextMetricsW@8 @93 104 _GetWindowLongW@8 @94 105 _GetWindowTextW@12 @95 106 _GetWindowTextLengthW@4 @96 107 _GetWindowsDirectoryW@8 @97 108 _InsertMenuW@20 @98 ; @@@PH imcomplete 109 _IsDialogMessageW@8 @99 110 _LoadAcceleratorsW@8 @100 111 _LoadBitmapW@8 @101 112 _LoadCursorW@8 @102 113 _LoadIconW@8 @103 114 _LoadImageW@24 @104 115 _LoadLibraryExW@12 @105 116 _LoadMenuW@8 @106 117 _LoadStringW@16 @107 118 _MessageBoxIndirectW@4 @108 119 _ModifyMenuW@20 @109 120 _GetCharWidth32W@16 @110 121 _GetCharacterPlacementW@24 @111 122 _CopyFileW@12 @112 123 _MoveFileW@8 @113 124 _OemToCharW@8 @114 125 _OutputDebugStringW@4 @115 126 _PeekMessageW@20 @116 127 _PostMessageW@16 @117 128 _PostThreadMessageW@16 @118 129 _RegCreateKeyW@12 @119 130 _RegCreateKeyExW@36 @120 131 _RegDeleteKeyW@8 @121 132 _RegEnumKeyW@16 @122 133 _RegEnumKeyExW@32 @123 134 _RegOpenKeyW@12 @124 135 _RegOpenKeyExW@20 @125 136 _RegQueryInfoKeyW@48 @126 137 _RegQueryValueW@16 @127 138 _RegQueryValueExW@24 @128 139 _RegSetValueW@20 @129 140 _RegSetValueExW@24 @130 141 _RegisterClassW@4 @131 142 _RegisterClipboardFormatW@4 @132 143 _RegisterWindowMessageW@4 @133 144 _RemovePropW@8 @134 145 _SendDlgItemMessageW@20 @135 146 _SendMessageW@16 @136 147 _SetCurrentDirectoryW@4 @137 148 _SetDlgItemTextW@12 @138 149 _SetMenuItemInfoW@16 @139 ; @@@PH imcomplete 150 _SetPropW@12 @140 151 _SetWindowLongW@12 @141 152 _SetWindowsHookExW@16 @142 153 _SetWindowTextW@8 @143 154 _StartDocW@8 @144 155 _SystemParametersInfoW@16 @145 156 _TranslateAcceleratorW@12 @146 157 _UnregisterClassW@8 @147 158 _VkKeyScanW@4 @148 159 _WinHelpW@16 @149 160 _wvsprintfW@12 @150 161 162 _SHLWAPI_156@8 @156 51 163 _SHLWAPI_158@8 @158 164 _SHLWAPI_160@8 @160 165 _SHLWAPI_169@4 @169 166 _SHLWAPI_170@4 @170 167 _SHLWAPI_193@0 @193 52 168 _SHLWAPI_197@12 @197 169 _SHLWAPI_219@16 @219 170 _SHLWAPI_222@4 @222 171 _SHLWAPI_223@4 @223 172 _SHLWAPI_237@4 @237 53 173 _DefWindowProcAW@16 @240 174 _SHLWAPI_241@0 @241 175 ; AssocCreate = _AssocCreate@20 @253 176 ; AssocQueryKeyA = _AssocQueryKeyA@20 @254 177 _SHLWAPI_266@16 @266 178 _SHLWAPI_267@16 @267 179 _SHLWAPI_268@8 @268 180 _SHLWAPI_276@0 @276 181 _SHLWAPI_309@4 @309 182 _RegisterClassExW@4 @314 183 _CallMsgFilterW@8 @332 184 _FindNextFileW@8 @341 185 _SHLWAPI_342@16 @342 186 _SHLWAPI_346@12 @346 187 _SHLWAPI_364@12 @364 188 _SHLWAPI_377@12 @377 189 ; AssocQueryStringA = _AssocQueryStringA@20 @381 190 ; AssocQueryStringByKeyA = _AssocQueryStringByKeyA@20 @382 191 ChrCmpIA = _ChrCmpIA@8 @385 192 ; ChrCmpIW = _ChrCmpIW@? @386 193 194 ; _SHLWAPI_407@16 @407 195 ; _SHLWAPI_408@16 @408 196 ; _SHLWAPI_409@12 @409 197 ; _SHLWAPI_410@12 @410 198 199 _SHLWAPI_437@4 @437 200 DllGetVersion = _DllGetVersion@4 @446 201 ; GetMenuPosFromID = _GetMenuPosFromID@? @447 202 ; HashData = _HashData@16 @448 203 ; IntlStrEqWorkerA = _StrIsIntlEqualA@16 @449 204 ; IntlStrEqWorkerW = _StrIsIntlEqualw@16 @450 205 PathAddBackslashA = _PathAddBackslashA@4 @451 206 PathAddBackslashW = _PathAddBackslashW@4 @452 207 PathAddExtensionA = _PathAddExtensionA@8 @453 208 PathAddExtensionW = _PathAddExtensionW@8 @454 209 PathAppendA = _PathAppendA@8 @455 210 PathAppendW = _PathAppendW@8 @456 211 PathBuildRootA = _PathBuildRootA@8 @457 212 PathBuildRootW = _PathBuildRootW@8 @458 213 PathCanonicalizeA = _PathCanonicalizeA@8 @459 214 PathCanonicalizeW = _PathCanonicalizeW@8 @460 215 PathCombineA = _PathCombineA@12 @461 216 PathCombineW = _PathCombineW@12 @462 217 ; PathCommonPrefixA = _PathCommonPrefixA@12 @463 218 ; PathCommonPrefixW = _PathCommonPrefixW@? @464 219 ; PathCompactPathA = _PathCompactPathA@12 @465 220 ; PathCompactPathExA = _PathCompactPathExA@12 @466 221 ; PathCompactPathExW = _PathCompactPathExW@12 @467 222 ; PathCompactPathW = _PathCompactPathW@12 @468 223 ; PathCreateFromUrlA = _PathCreateFromUrlA@? @469 224 ; PathCreateFromUrlW = _PathCreateFromUrlW@? @470 225 PathFileExistsA = _PathFileExistsA@4 @471 226 PathFileExistsW = _PathFileExistsW@4 @472 227 PathFindExtensionA = _PathFindExtensionA@4 @473 228 PathFindExtensionW = _PathFindExtensionW@4 @474 229 PathFindFileNameA = _PathFindFileNameA@4 @475 230 PathFindFileNameW = _PathFindFileNameW@4 @476 231 PathFindNextComponentA = _PathFindNextComponentA@4 @477 232 PathFindNextComponentW = _PathFindNextComponentW@4 @478 233 PathFindOnPathA = _PathFindOnPathA@8 @479 234 PathFindOnPathW = _PathFindOnPathW@8 @480 235 ; PathFindSuffixArrayA = _PathFindSuffixArrayA@12 @481 236 ; PathFindSuffixArrayW = _PathFindSuffixArrayW@12 @482 237 PathGetArgsA = _PathGetArgsA@4 @483 238 PathGetArgsW = _PathGetArgsW@4 @484 239 ; PathGetCharTypeA = _PathGetCharTypeA@? @485 240 ; PathGetCharTypeW = _PathGetCharTypeW@? @486 241 PathGetDriveNumberA = _PathGetDriveNumberA@4 @487 242 PathGetDriveNumberW = _PathGetDriveNumberW@4 @488 243 ; PathIsContentTypeA = _PathIsContentTypeA@8 @489 244 ; PathIsContentTypeW = _PathIsContentTypeW@8 @490 245 PathIsDirectoryA = _PathIsDirectoryA@4 @491 246 ; PathIsDirectoryEmptyA = _PathIsDirectoryEmptyA@4 @492 247 ; PathIsDirectoryEmptyW = _PathIsDirectoryEmptyW@4 @493 248 ; PathIsDirectoryW = _PathIsDirectoryW@? @494 249 ; PathIsFileSpecA = _PathIsFileSpecA@? @495 250 ; PathIsFileSpecW = _PathIsFileSpecW@? @496 251 ; PathIsLFNFileSpecA = _PathIsLFNFileSpecA@4 @497 252 ; PathIsLFNFileSpecW = _PathIsLFNFileSpecW@4 @498 253 ; PathIsNetworkPathA = _PathIsNetworkPathA@4 @499 254 ; PathIsNetworkPathW = _PathIsNetworkPathW@4 @500 255 ; PathIsPrefixA = _PathIsPrefixA@8 @501 256 ; PathIsPrefixW = _PathIsPrefixW@? @502 257 PathIsRelativeA = _PathIsRelativeA@4 @503 258 PathIsRelativeW = _PathIsRelativeW@4 @504 259 PathIsRootA = _PathIsRootA@4 @505 260 PathIsRootW = _PathIsRootW@4 @506 261 PathIsSameRootA = _PathIsSameRootA@8 @507 262 PathIsSameRootW = _PathIsSameRootW@8 @508 263 ; PathIsSystemFolderA = _PathIsSystemFolderA@8 @509 264 ; PathIsSystemFolderW = _PathIsSystemFolderW@8 @510 265 PathIsUNCA = _PathIsUNCA@4 @511 266 ; PathIsUNCServerA = _PathIsUNCServerA@? @512 267 ; PathIsUNCServerShareA = _PathIsUNCServerShareA@? @513 268 ; PathIsUNCServerShareW = _PathIsUNCServerShareW@? @514 269 ; PathIsUNCServerW = _PathIsUNCServerW@? @515 270 PathIsUNCW = _PathIsUNCW@4 @516 271 PathIsURLA = _PathIsURLA@4 @517 272 PathIsURLW = _PathIsURLW@4 @518 273 ; PathMakePrettyA = _PathMakePrettyA@? @519 274 ; PathMakePrettyW = _PathMakePrettyW@? @520 275 ; PathMakeSystemFolderA = _PathMakeSystemFolderA@4 @521 276 ; PathMakeSystemFolderW = _PathMakeSystemFolderW@4 @522 277 PathMatchSpecA = _PathMatchSpecA@8 @523 278 PathMatchSpecW = _PathMatchSpecW@8 @524 279 PathParseIconLocationA = _PathParseIconLocationA@4 @525 280 PathParseIconLocationW = _PathParseIconLocationW@4 @526 281 PathQuoteSpacesA = _PathQuoteSpacesA@4 @527 282 PathQuoteSpacesW = _PathQuoteSpacesW@4 @528 283 ; PathRelativePathToA = _PathRelativePathToA@? @529 284 ; PathRelativePathToW = _PathRelativePathToW@? @530 285 PathRemoveArgsA = _PathRemoveArgsA@4 @531 286 PathRemoveArgsW = _PathRemoveArgsW@4 @532 287 PathRemoveBackslashA = _PathRemoveBackslashA@4 @533 288 PathRemoveBackslashW = _PathRemoveBackslashW@4 @534 289 PathRemoveBlanksA = _PathRemoveBlanksA@4 @535 290 PathRemoveBlanksW = _PathRemoveBlanksW@4 @536 291 PathRemoveExtensionA = _PathRemoveExtensionA@4 @537 292 PathRemoveExtensionW = _PathRemoveExtensionW@4 @538 293 PathRemoveFileSpecA = _PathRemoveFileSpecA@4 @539 294 PathRemoveFileSpecW = _PathRemoveFileSpecW@4 @540 295 ; PathRenameExtensionA = _PathRenameExtensionA@@8 @541 296 ; PathRenameExtensionW = _PathRenameExtensionW@? @542 297 ; PathSearchAndQualifyA = _PathSearchAndQualifyA@12 @543 298 ; PathSearchAndQualifyW = _PathSearchAndQualifyW@12 @544 299 PathSetDlgItemPathA = _PathSetDlgItemPathA@12 @545 300 PathSetDlgItemPathW = _PathSetDlgItemPathW@12 @546 301 PathSkipRootA = _PathSkipRootA@4 @547 302 PathSkipRootW = _PathSkipRootW@4 @548 303 PathStripPathA = _PathStripPathA@4 @549 304 PathStripPathW = _PathStripPathW@4 @550 305 PathStripToRootA = _PathStripToRootA@4 @551 306 PathStripToRootW = _PathStripToRootW@4 @552 307 ; PathUndecorateA = _PathUndecorateA@4 @553 308 ; PathUndecorateW = _PathUndecorateW@4 @554 309 ; PathUnmakeSystemFolderA= _PathUnmakeSystemFolderA@4 @555 310 ; PathUnmakeSystemFolderW= _PathUnmakeSystemFolderW@4 @556 311 PathUnquoteSpacesA = _PathUnquoteSpacesA@4 @557 312 PathUnquoteSpacesW = _PathUnquoteSpacesW@4 @558 313 314 ; SHAutoComplete = _SHAutoComplete@8 @559 315 ; SHCopyKeyA = _SHCopyKeyA@? @560 316 ; SHCopyKeyW = _SHCopyKeyW@? @561 317 ; SHCreateShellPalette = _SHCreateShellPalette@? @562 318 ; SHCreateStreamOnFileA = _SHCreateStreamOnFileA@? @563 319 ; SHCreateStreamOnFileW = _SHCreateStreamOnFileW@? @564 320 ; SHCreateStreamWrapper = _SHCreateStreamWrapper@? @565 321 _SHCreateThread@16 @566 322 ; SHDeleteEmptyKeyA = _SHDeleteEmptyKeyA@? @567 323 ; SHDeleteEmptyKeyW = _SHDeleteEmptyKeyW@? @568 324 ; SHDeleteKeyA = _SHDeleteKeyA@? @569 325 ; SHDeleteKeyW = _SHDeleteKeyW@? @570 326 ; SHDeleteOrphanKeyA = _SHDeleteOrphanKeyA@? @571 327 ; SHDeleteOrphanKeyW = _SHDeleteOrphanKeyW@? @572 328 ; SHDeleteValueA = _SHDeleteValueA@? @573 329 ; SHDeleteValueW = _SHDeleteValueW@? @574 330 ; SHEnumKeyExA = _SHEnumKeyExA@? @575 331 ; SHEnumKeyExW = _SHEnumKeyExW@? @576 332 ; SHEnumValueA = _SHEnumValueA@? @577 333 ; SHEnumValueW = _SHEnumValueW@? @578 334 ; _SHGetInstanceExplorer@4 = ???? @579 335 ; SHGetInverseCMAP = _SHGetInverseCMAP@? @580 336 ; SHGetThreadRef = _SHGetThreadRef@? @581 337 SHGetValueA = _SHGetValueA@24 @582 338 SHGetValueW = _SHGetValueW@24 @583 339 SHIsLowMemoryMachine = _SHIsLowMemoryMachine@4 @584 340 ; SHOpenRegStream2A = _SHOpenRegStream2A@? @585 341 ; SHOpenRegStream2W = _SHOpenRegStream2W@? @586 342 ; SHOpenRegStreamA = _SHOpenRegStreamA@? @587 343 ; SHOpenRegStreamW = _SHOpenRegStreamW@? @588 344 ; SHQueryInfoKeyA = _SHQueryInfoKeyA@? @589 345 ; SHQueryInfoKeyW = _SHQueryInfoKeyW@? @590 346 ; SHQueryValueExA = _SHQueryValueExA@? @591 347 ; SHQueryValueExW = _SHQueryValueExW@? @592 348 ; SHRegCloseUSKey = _SHRegCloseUSKey@? @593 349 SHRegCreateUSKeyA = _SHRegCreateUSKeyA@20 @594 350 SHRegCreateUSKeyW = _SHRegCreateUSKeyW@20 @595 351 ; SHRegDeleteEmptyUSKeyA = _SHRegDeleteEmptyUSKeyA@? @596 352 ; SHRegDeleteEmptyUSKeyW = _SHRegDeleteEmptyUSKeyW@? @597 353 ; SHRegDeleteUSKeyA = _SHRegDeleteUSKeyA@? @598 354 ; SHRegDeleteUSKeyW = _SHRegDeleteUSKeyW@? @599 355 ; SHRegDuplicateHKey = _SHRegDuplicateHKey@? @600 356 ; SHRegEnumUSKeyA = _SHRegEnumUSKeyA@? @601 357 ; SHRegEnumUSKeyW = _SHRegEnumUSKeyW@? @602 358 ; SHRegEnumUSValueA = _SHRegEnumUSValueA@? @603 359 ; SHRegEnumUSValueA = _SHRegEnumUSValueW@? @604 360 SHRegGetBoolUSValueA = _SHRegGetBoolUSValueA@20 @605 361 SHRegGetBoolUSValueW = _SHRegGetBoolUSValueW@20 @606 362 SHRegGetUSValueA = _SHRegGetUSValueA@32 @607 363 SHRegGetUSValueW = _SHRegGetUSValueW@32 @608 364 ; SHRegOpenUSKeyA = _SHRegOpenUSKeyA@? @609 365 ; SHRegOpenUSKeyW = _SHRegOpenUSKeyW@? @610 366 ; SHRegQueryInfoKeyA = _SHRegQueryInfoKeyA@? @611 367 ; SHRegQueryInfoKeyW = _SHRegQueryInfoKeyW@? @612 368 ; SHRegQueryUSValueA = _SHRegQueryUSValueA@? @613 369 ; SHRegQueryUSValueW = _SHRegQueryUSValueW@? @614 370 SHRegSetUSValueA = _SHRegSetUSValueA@24 @615 371 SHRegSetUSValueW = _SHRegSetUSValueW@24 @616 372 ; SHRegWriteUSValueA = _SHRegWriteUSValueA@? @617 373 ; SHRegWriteUSValueW = _SHRegWriteUSValueW@? @618 374 ; SHSetSetThreadRef = _SHSetThreadRef@? @619 375 ; SHSetValueA = _SHSetValueA@? @620 376 ; SHSetValueW = _SHSetValueW@? @621 377 ; SHSkipJunction = _SHSkipJunction@8 @622 378 ; SHStrDupA = _SHStrDupA@? @623 379 ; SHStrDupW = _SHStrDUpW@? @624 380 ; StrCSpnA = _StrCSpnA@? @625 381 ; StrCSpnIA = _StrCSpnIA@? @626 382 ; StrCSpnIW = _StrCSpnIW@? @627 383 ; StrCSpnW = _StrCSpnW@? @628 384 ; StrCatBuffA = _StrCatBuffA@? @629 385 ; StrCatBuffW = _StrCatBuffW@? @630 386 ; StrCatA = _StrCatA@? ; not exported ? 387 ; StrCatW = _StrCatW@? @631 388 StrChrA = _StrChrA@8 @632 389 StrChrIA = _StrChrIA@8 @633 390 StrChrIW = _StrChrIW@8 @634 391 StrChrW = _StrChrW@8 @635 392 ; StrCmpIW = _StrCmpIW@? @636 393 ; StrCmpNA = _StrCmpNA@12 @637 394 StrCmpNIA = _StrCmpNIA@12 @638 395 StrCmpNIW = _StrCmpNIW@12 @639 396 ; StrCmpNW = _StrCmpNW@12 @640 397 ; StrCmpW = _StrCmpW@? @641 398 ; StrCpyNW = _StrCpyNW@? @642 399 StrCpyA = _StrCpyA@8 ; not exported ? 400 StrCpyW = _StrCpyW@8 @643 401 ; StrDupA = _StrDupA@? @644 402 StrDupW = _StrDupW@4 @645 403 ; StrFormatByteSize64A = _StrFormatByteSize64A@16 @646 404 StrFormatByteSizeA = _StrFormatByteSizeA@12 @647 405 StrFormatByteSizeW = _StrFormatByteSizeW@12 @648 406 ; StrFormatKBSizeA = _StrFormatKBSizeA@16 @649 407 ; StrFormatKBSizeW = _StrFormatKBSizeW@16 @650 408 ; StrFromTimeIntervalA = _StrFromTimeIntervalA@? @651 409 ; StrFromTimeIntervalW = _StrFromTimeIntervalW@? @652 410 ; IntlStrEqWorkerA = _StrIsIntlEqualA@16 @653 411 ; StrIsIntlEqualW = _StrIsIntlEqualW@? @654 412 ; StrNCatA = _StrNCatA@? @655 413 ; StrNCatW = _StrNCatW@12 @656 414 ; StrPBrkA = _StrPBrkA@? @657 415 ; StrPBrkW = _StrPBrkW@? @658 416 StrRChrA = _StrRChrA@12 @659 417 ; StrRChrIA = _StrRChrIA@12 @660 418 ; StrRChrIW = _StrRChrIW@12 @661 419 StrRChrW = _StrRChrW@12 @662 420 ; StrRStrIA = _StrRStrIA@? @663 421 ; StrRStrIW = _StrRStrIW@? @664 422 ; StrRetToBufA = _StrRetToBufA@16 @665 423 ; StrRetToBufW = _StrRetToBufW@16 @666 424 ; StrRetToStrA = _StrRetToStrA@12 @667 425 ; StrRetToStrW = _StrRetToStrW@12 @668 426 ; StrSpnA = _StrSpnA@? @669 427 ; StrSpnW = _StrSpnW@? @670 428 ; StrStrA = _StrStrA@8 @671 429 StrStrIA = _StrStrIA@8 @672 430 StrStrIW = _StrStrIW@8 @673 431 ; StrStrW = _StrStrW@8 @674 54 432 StrToIntA = _StrToIntA@4 @675 55 PathFindOnPathA = _PathFindOnPathA@8 @479 56 57 58 59 ; -------------- 60 ; Export by name 61 ; -------------- 62 63 ; ChrCmpIA = _ChrCmpIA@? @162 64 ; ChrCmpIW = _ChrCmpIW@? @163 65 ; DllGetVersion = _DllGetVersion@? @164 66 ; GetMenuPosFromID = _GetMenuPosFromID@? @165 67 ; HashData = _HashData@? @166 68 ; IntlStrEqWorkerA = _IntlStrEqWorkerA@? @167 69 ; IntlStrEqWorkerW = _IntlStrEqWorkerW@? @168 70 PathAddBackslashA = _PathAddBackslashA@4 @169 71 PathAddBackslashW = _PathAddBackslashW@4 @170 72 PathAddExtensionA = _PathAddExtensionA@8 @171 73 PathAddExtensionW = _PathAddExtensionW@8 @172 74 PathAppendA = _PathAppendA@8 @173 75 PathAppendW = _PathAppendW@8 @174 76 PathBuildRootA = _PathBuildRootA@8 @175 77 PathBuildRootW = _PathBuildRootW@8 @176 78 PathCanonicalizeA = _PathCanonicalizeA@8 @177 79 PathCanonicalizeW = _PathCanonicalizeW@8 @178 80 PathCombineA = _PathCombineA@12 @179 81 PathCombineW = _PathCombineW@12 @180 82 ; PathCommonPrefixA = _PathCommonPrefixA@? @181 83 ; PathCommonPrefixW = _PathCommonPrefixW@? @182 84 ; PathCompactPathA = _PathCompactPathA@? @183 85 ; PathCompactPathExA = _PathCompactPathExA@? @184 86 ; PathCompactPathExW = _PathCompactPathExW@? @185 87 ; PathCompactPathW = _PathCompactPathW@? @186 88 ; PathCreateFromUrlA = _PathCreateFromUrlA@? @187 89 ; PathCreateFromUrlW = _PathCreateFromUrlW@? @188 90 PathFileExistsA = _PathFileExistsA@4 @189 91 PathFileExistsW = _PathFileExistsW@4 @190 92 PathFindExtensionA = _PathFindExtensionA@4 @191 93 PathFindExtensionW = _PathFindExtensionW@4 @192 94 PathFindFileNameA = _PathFindFileNameA@4 @193 95 PathFindFileNameW = _PathFindFileNameW@4 @194 96 PathFindNextComponentA = _PathFindNextComponentA@4 @195 97 PathFindNextComponentW = _PathFindNextComponentW@4 @196 98 PathFindOnPathW = _PathFindOnPathW@8 @198 99 PathGetArgsA = _PathGetArgsA@4 @199 100 PathGetArgsW = _PathGetArgsW@4 @200 101 ; PathGetCharTypeA = _PathGetCharTypeA@? @201 102 ; PathGetCharTypeW = _PathGetCharTypeW@? @202 103 PathGetDriveNumberA = _PathGetDriveNumberA@4 @203 104 PathGetDriveNumberW = _PathGetDriveNumberW@4 @204 105 ; PathIsContentTypeA = _PathIsContentTypeA@? @205 106 ; PathIsContentTypeW = _PathIsContentTypeW@? @206 107 PathIsDirectoryA = _PathIsDirectoryA@4 @207 108 ; PathIsDirectoryW = _PathIsDirectoryW@? @208 109 ; PathIsFileSpecA = _PathIsFileSpecA@? @209 110 ; PathIsFileSpecW = _PathIsFileSpecW@? @210 111 ; PathIsPrefixA = _PathIsPrefixA@? @211 112 ; PathIsPrefixW = _PathIsPrefixW@? @212 113 PathIsRelativeA = _PathIsRelativeA@4 @213 114 PathIsRelativeW = _PathIsRelativeW@4 @214 115 PathIsRootA = _PathIsRootA@4 @215 116 PathIsRootW = _PathIsRootW@4 @216 117 PathIsSameRootA = _PathIsSameRootA@8 @217 118 PathIsSameRootW = _PathIsSameRootW@8 @218 119 ; PathIsSystemFolderA = _PathIsSystemFolderA@? @219 120 ; PathIsSystemFolderW = _PathIsSystemFolderW@? @220 121 PathIsUNCA = _PathIsUNCA@4 @221 122 ; PathIsUNCServerA = _PathIsUNCServerA@? @222 123 ; PathIsUNCServerShareA = _PathIsUNCServerShareA@? @223 124 ; PathIsUNCServerShareW = _PathIsUNCServerShareW@? @224 125 ; PathIsUNCServerW = _PathIsUNCServerW@? @225 126 PathIsUNCW = _PathIsUNCW@4 @226 127 PathIsURLA = _PathIsURLA@4 @227 128 PathIsURLW = _PathIsURLW@4 @228 129 ; PathMakePrettyA = _PathMakePrettyA@? @229 130 ; PathMakePrettyW = _PathMakePrettyW@? @230 131 ; PathMakeSystemFolderA = _PathMakeSystemFolderA@? @231 132 ; PathMakeSystemFolderW = _PathMakeSystemFolderW@? @232 133 PathMatchSpecA = _PathMatchSpecA@8 @233 134 PathMatchSpecW = _PathMatchSpecW@8 @234 135 PathParseIconLocationA = _PathParseIconLocationA@4 @235 136 PathParseIconLocationW = _PathParseIconLocationW@4 @236 137 PathQuoteSpacesA = _PathQuoteSpacesA@4 @237 138 PathQuoteSpacesW = _PathQuoteSpacesW@4 @238 139 ; PathRelativePathToA = _PathRelativePathToA@? @239 140 ; PathRelativePathToW = _PathRelativePathToW@? @240 141 PathRemoveArgsA = _PathRemoveArgsA@4 @241 142 PathRemoveArgsW = _PathRemoveArgsW@4 @242 143 PathRemoveBackslashA = _PathRemoveBackslashA@4 @243 144 PathRemoveBackslashW = _PathRemoveBackslashW@4 @244 145 PathRemoveBlanksA = _PathRemoveBlanksA@4 @245 146 PathRemoveBlanksW = _PathRemoveBlanksW@4 @246 147 PathRemoveExtensionA = _PathRemoveExtensionA@4 @247 148 PathRemoveExtensionW = _PathRemoveExtensionW@4 @248 149 PathRemoveFileSpecA = _PathRemoveFileSpecA@4 @249 150 PathRemoveFileSpecW = _PathRemoveFileSpecW@4 @250 151 ; PathRenameExtensionA = _PathRenameExtensionA@? @251 152 ; PathRenameExtensionW = _PathRenameExtensionW@? @252 153 ; PathSearchAndQualifyA = _PathSearchAndQualifyA@? @253 154 ; PathSearchAndQualifyW = _PathSearchAndQualifyW@? @254 155 PathSetDlgItemPathA = _PathSetDlgItemPathA@12 @255 156 PathSetDlgItemPathW = _PathSetDlgItemPathW@12 @256 157 PathSkipRootA = _PathSkipRootA@4 @257 158 PathSkipRootW = _PathSkipRootW@4 @258 159 PathStripPathA = _PathStripPathA@4 @259 160 PathStripPathW = _PathStripPathW@4 @260 161 PathStripToRootA = _PathStripToRootA@4 @261 162 PathStripToRootW = _PathStripToRootW@4 @262 163 ; PathUnmakeSystemFolderA= _PathUnmakeSystemFolderA@? @263 164 ; PathUnmakeSystemFolderW= _PathUnmakeSystemFolderW@? @264 165 PathUnquoteSpacesA = _PathUnquoteSpacesA@4 @265 166 PathUnquoteSpacesW = _PathUnquoteSpacesW@4 @266 167 ; SHCreateShellPalette = _SHCreateShellPalette@? @267 168 ; SHDeleteEmptyKeyA = _SHDeleteEmptyKeyA@? @268 169 ; SHDeleteEmptyKeyW = _SHDeleteEmptyKeyW@? @269 170 ; SHDeleteKeyA = _SHDeleteKeyA@? @270 171 ; SHDeleteKeyW = _SHDeleteKeyW@? @271 172 ; SHDeleteOrphanKeyA = _SHDeleteOrphanKeyA@? @272 173 ; SHDeleteOrphanKeyW = _SHDeleteOrphanKeyW@? @273 174 ; SHDeleteValueA = _SHDeleteValueA@? @274 175 ; SHDeleteValueW = _SHDeleteValueW@? @275 176 ; SHEnumKeyExA = _SHEnumKeyExA@? @276 177 ; SHEnumKeyExW = _SHEnumKeyExW@? @277 178 ; SHEnumValueA = _SHEnumValueA@? @278 179 ; SHEnumValueW = _SHEnumValueW@? @279 180 ; SHGetInverseCMAP = _SHGetInverseCMAP@? @280 181 SHGetValueA = _SHGetValueA@24 @281 182 SHGetValueW = _SHGetValueW@24 @282 183 ; SHIsLowMemoryMachine = _SHIsLowMemoryMachine@? @283 184 ; SHOpenRegStreamA = _SHOpenRegStreamA@? @284 185 ; SHOpenRegStreamW = _SHOpenRegStreamW@? @285 186 ; SHQueryInfoKeyA = _SHQueryInfoKeyA@? @286 187 ; SHQueryInfoKeyW = _SHQueryInfoKeyW@? @287 188 ; SHQueryValueExA = _SHQueryValueExA@? @288 189 ; SHQueryValueExW = _SHQueryValueExW@? @289 190 ; SHRegCloseUSKey = _SHRegCloseUSKey@? @290 191 ; SHRegCreateUSKeyA = _SHRegCreateUSKeyA@? @291 192 ; SHRegCreateUSKeyW = _SHRegCreateUSKeyW@? @292 193 ; SHRegDeleteEmptyUSKeyA = _SHRegDeleteEmptyUSKeyA@? @293 194 ; SHRegDeleteEmptyUSKeyW = _SHRegDeleteEmptyUSKeyW@? @294 195 ; SHRegDeleteUSKeyA = _SHRegDeleteUSKeyA@? @295 196 ; SHRegDeleteUSKeyW = _SHRegDeleteUSKeyW@? @296 197 ; SHRegEnumUSKeyA = _SHRegEnumUSKeyA@? @297 198 ; SHRegEnumUSKeyW = _SHRegEnumUSKeyW@? @298 199 ; SHRegEnumUSValueA = _SHRegEnumUSValueA@? @299 200 ; SHRegEnumUSValueA = _SHRegEnumUSValueW@? @300 201 SHRegGetBoolUSValueA = _SHRegGetBoolUSValueA@20 @301 202 SHRegGetBoolUSValueW = _SHRegGetBoolUSValueW@20 @302 203 SHRegGetUSValueA = _SHRegGetUSValueA@32 @303 204 SHRegGetUSValueW = _SHRegGetUSValueW@32 @304 205 ; SHRegOpenUSKeyA = _SHRegOpenUSKeyA@? @305 206 ; SHRegOpenUSKeyW = _SHRegOpenUSKeyW@? @306 207 ; SHRegQueryInfoKeyA = _SHRegQueryInfoKeyA@? @307 208 ; SHRegQueryInfoKeyW = _SHRegQueryInfoKeyW@? @308 209 ; SHRegQueryUSValueA = _SHRegQueryUSValueA@? @309 210 ; SHRegQueryUSValueW = _SHRegQueryUSValueW@? @310 211 ; SHRegSetUSValueA = _SHRegSetUSValueA@? @311 212 ; SHRegSetUSValueW = _SHRegSetUSValueW@? @312 213 ; SHRegWriteUSValueA = _SHRegWriteUSValueA@? @313 214 ; SHRegWriteUSValueW = _SHRegWriteUSValueW@? @314 215 ; SHSetValueA = _SHSetValueA@? @315 216 ; SHSetValueW = _SHSetValueW@? @316 217 218 ; StrCSpnA = _StrCSpnA@? @317 219 ; StrCSpnIA = _StrCSpnIA@? @318 220 ; StrCSpnIW = _StrCSpnIW@? @319 221 ; StrCSpnW = _StrCSpnW@? @320 222 ; StrCatW = _StrCatW@? @321 223 StrChrA = _StrChrA@8 @322 224 StrChrIA = _StrChrIA@8 @323 225 StrChrIW = _StrChrIW@8 @324 226 StrChrW = _StrChrW@8 @325 227 ; StrCmpIW = _StrCmpIW@? @326 228 ; StrCmpNA = _StrCmpNA@12 @327 229 StrCmpNIA = _StrCmpNIA@12 @328 230 StrCmpNIW = _StrCmpNIW@12 @329 231 ; StrCmpNW = _StrCmpNW@12 @330 232 ; StrCmpW = _StrCmpW@? @331 233 ; StrCpyNW = _StrCpyNW@? @332 234 ; StrCpyW = _StrCpyW@? @333 235 ; StrDupA = _StrDupA@? @334 236 ; StrDupW = _StrDupW@? @335 237 StrFormatByteSizeA = _StrFormatByteSizeA@12 @336 238 StrFormatByteSizeW = _StrFormatByteSizeW@12 @337 239 ; StrFromTimeIntervalA = _StrFromTimeIntervalA@? @338 240 ; StrFromTimeIntervalW = _StrFromTimeIntervalW@? @339 241 ; StrIsIntlEqualA = _StrIsIntlEqualA@? @340 242 ; StrIsIntlEqualW = _StrIsIntlEqualW@? @341 243 ; StrNCatA = _StrNCatA@? @342 244 ; StrNCatW = _StrNCatW@? @343 245 ; StrPBrkA = _StrPBrkA@? @344 246 ; StrPBrkW = _StrPBrkW@? @345 247 StrRChrA = _StrRChrA@12 @346 248 ; StrRChrIA = _StrRChrIA@12 @347 249 ; StrRChrIW = _StrRChrIW@12 @348 250 StrRChrW = _StrRChrW@12 @349 251 ; StrRStrIA = _StrRStrIA@? @350 252 ; StrRStrIW = _StrRStrIW@? @351 253 ; StrSpnA = _StrSpnA@? @352 254 ; StrSpnW = _StrSpnW@? @353 255 ; StrStrA = _StrStrA@8 @354 256 StrStrIA = _StrStrIA@8 @355 257 StrStrIW = _StrStrIW@8 @356 258 ; StrStrW = _StrStrW@8 @357 259 260 261 ; StrToIntExA = _StrToIntExA@? @359 262 ; StrToIntExW = _StrToIntExW@? @360 263 ; StrToIntW = _StrToIntW@4 @361 264 ; StrTrimA = _StrTrimA@? @362 265 ; StrTrimW = _StrTrimW@? @363 266 UrlApplySchemeA = _UrlApplySchemeA@16 @364 267 UrlApplySchemeW = _UrlApplySchemeW@16 @365 268 UrlCanonicalizeA = _UrlCanonicalizeA@16 @366 269 UrlCanonicalizeW = _UrlCanonicalizeW@16 @367 270 UrlCombineA = _UrlCombineA@20 @368 271 UrlCombineW = _UrlCombineW@20 @369 272 UrlCompareA = _UrlCompareA@12 @370 273 UrlCompareW = _UrlCompareW@12 @371 274 UrlCreateFromPathA = _UrlCreateFromPathA@16 @372 275 UrlCreateFromPathW = _UrlCreateFromPathW@16 @373 276 UrlEscapeA = _UrlEscapeA@16 @374 277 UrlEscapeW = _UrlEscapeW@16 @375 278 UrlGetLocationA = _UrlGetLocationA@4 @376 279 UrlGetLocationW = _UrlGetLocationW@4 @377 280 UrlGetPartA = _UrlGetPartA@20 @378 281 UrlGetPartW = _UrlGetPartW@20 @379 282 UrlHashA = _UrlHashA@12 @380 283 UrlHashW = _UrlHashW@12 @381 284 UrlIsA = _UrlIsA@8 @382 285 UrlIsNoHistoryA = _UrlIsNoHistoryA@4 @383 286 UrlIsNoHistoryW = _UrlIsNoHistoryW@4 @384 287 UrlIsOpaqueA = _UrlIsOpaqueA@4 @385 288 UrlIsOpaqueW = _UrlIsOpaqueW@4 @386 289 UrlIsW = _UrlIsW@8 @387 290 UrlUnescapeA = _UrlUnescapeA@16 @388 291 UrlUnescapeW = _UrlUnescapeW@16 @389 433 ; StrToIntExA = _StrToIntExA@? @676 434 ; StrToIntExW = _StrToIntExW@? @677 435 StrToIntW = _StrToIntW@4 @678 436 ; StrTrimA = _StrTrimA@? @679 437 ; StrTrimW = _StrTrimW@? @680 438 UrlApplySchemeA = _UrlApplySchemeA@16 @681 439 UrlApplySchemeW = _UrlApplySchemeW@16 @682 440 UrlCanonicalizeA = _UrlCanonicalizeA@16 @683 441 UrlCanonicalizeW = _UrlCanonicalizeW@16 @684 442 UrlCombineA = _UrlCombineA@20 @685 443 UrlCombineW = _UrlCombineW@20 @686 444 UrlCompareA = _UrlCompareA@12 @687 445 UrlCompareW = _UrlCompareW@12 @688 446 UrlCreateFromPathA = _UrlCreateFromPathA@16 @689 447 UrlCreateFromPathW = _UrlCreateFromPathW@16 @690 448 UrlEscapeA = _UrlEscapeA@16 @691 449 UrlEscapeW = _UrlEscapeW@16 @692 450 UrlGetLocationA = _UrlGetLocationA@4 @693 451 UrlGetLocationW = _UrlGetLocationW@4 @694 452 UrlGetPartA = _UrlGetPartA@20 @695 453 UrlGetPartW = _UrlGetPartW@20 @696 454 UrlHashA = _UrlHashA@12 @697 455 UrlHashW = _UrlHashW@12 @698 456 UrlIsA = _UrlIsA@8 @699 457 UrlIsNoHistoryA = _UrlIsNoHistoryA@4 @700 458 UrlIsNoHistoryW = _UrlIsNoHistoryW@4 @701 459 UrlIsOpaqueA = _UrlIsOpaqueA@4 @702 460 UrlIsOpaqueW = _UrlIsOpaqueW@4 @703 461 UrlIsW = _UrlIsW@8 @704 462 UrlUnescapeA = _UrlUnescapeA@16 @705 463 UrlUnescapeW = _UrlUnescapeW@16 @706 464 ; wnsprintfA = _wnsprintfA@16 @707 465 ; wnsprintfW = _wnsprintfW@16 @708 466 ; wvnsprintfA = _wvnsprintfA@16 @709 467 ; wvnsprintfW = _wvnsprintfW@16 @710 468 469 ; ------------------------------ 470 ; Export for SHELL32 to catch up 471 ; ------------------------------ 292 472 293 473 _PathIsRootAW@4 @1000 -
trunk/src/shlwapi/shlwapi.h
r3539 r3687 1 /* $Id: shlwapi.h,v 1. 1 2000-05-15 02:43:17phaller Exp $ */1 /* $Id: shlwapi.h,v 1.2 2000-06-12 08:09:44 phaller Exp $ */ 2 2 3 3 /* … … 27 27 28 28 29 /***************************************************************************** 30 * Prototypes * 31 *****************************************************************************/ 32 33 LPSTR WIN32API StrStrIA(LPCSTR lpFirst, LPCSTR lpSrch); 34 29 35 30 36 #ifdef __cplusplus … … 33 39 34 40 35 36 41 #endif -
trunk/src/shlwapi/string.cpp
r3684 r3687 1 /* $Id: string.cpp,v 1.3 2000-06-11 08:44:55phaller Exp $ */1 /* $Id: string.cpp,v 1.4 2000-06-12 08:09:46 phaller Exp $ */ 2 2 3 3 /* … … 68 68 ODINDEBUGCHANNEL(SHLWAPI-STRING) 69 69 70 71 /***************************************************************************** 72 * Name : ChrCmpIA 73 * Purpose : 74 * Parameters: 75 * Variables : 76 * Result : 77 * Remark : 78 * Status : UNTESTED 79 * 80 * Author : Patrick Haller [Wed, 1999/12/29 09:00] 81 *****************************************************************************/ 82 83 ODINFUNCTION2(INT, ChrCmpIA, 84 INT, ch1, 85 INT, ch2) 86 { 87 // Note: IsDBCSLeadByte ignored ! 88 89 if ( (ch1 >= 'A') && (ch1 <= 'Z') ) ch1 |= 0x20; 90 if ( (ch2 >= 'A') && (ch2 <= 'Z') ) ch2 |= 0x20; 91 92 return ch1 - ch2; 93 } 70 94 71 95 … … 516 540 } 517 541 542 543 /************************************************************************* 544 * StrToIntW [SHLWAPI]ú 545 */ 546 int WINAPI StrToIntW(LPCWSTR lpSrc) 547 { 548 int ret; 549 LPSTR lpStr = HEAP_strdupWtoA(GetProcessHeap(),0,lpSrc); 550 551 TRACE("%s\n", debugstr_w(lpSrc)); 552 553 ret = atol(lpStr); 554 HeapFree(GetProcessHeap(),0,lpStr); 555 return ret; 556 } 557 558 518 559 /************************************************************************* 519 560 * StrFormatByteSizeA [SHLWAPI] … … 559 600 return pszBuf; 560 601 } 602 603 604 /***************************************************************************** 605 * Name : StrCpyA 606 * Purpose : copy a string 607 * Parameters: 608 * Variables : 609 * Result : 610 * Remark : not exported ? 611 * Status : UNTESTED 612 * 613 * Author : 614 *****************************************************************************/ 615 616 ODINFUNCTION2(LPSTR, StrCpyA, 617 LPSTR, lpDest, 618 LPCSTR, lpSource) 619 { 620 return lstrcpyA(lpDest, 621 lpSource); 622 } 623 624 625 /***************************************************************************** 626 * Name : StrCpyW 627 * Purpose : copy a wide-character string 628 * Parameters: 629 * Variables : 630 * Result : 631 * Remark : SHLWAPI.642 632 * Status : UNTESTED 633 * 634 * Author : 635 *****************************************************************************/ 636 637 ODINFUNCTION2(LPWSTR, StrCpyW, 638 LPWSTR, lpDest, 639 LPCWSTR, lpSource) 640 { 641 return lstrcpyW(lpDest, 642 lpSource); 643 } 644 645 646 /***************************************************************************** 647 * Name : StrDupA 648 * Purpose : duplicate a string on the local heap 649 * Parameters: 650 * Variables : 651 * Result : 652 * Remark : SHLWAPI.644 653 * Status : UNTESTED 654 * 655 * Author : 656 *****************************************************************************/ 657 658 ODINFUNCTION1(LPSTR, StrDupA, 659 LPCSTR, lpStr) 660 { 661 int iLength = lstrlenA(lpStr) + 1; 662 HLOCAL hLocal = LocalAlloc(LMEM_ZEROINIT, 663 iLength); 664 if (hLocal != NULL) 665 StrCpyA((LPSTR)hLocal, 666 lpStr); 667 668 return (LPSTR)hLocal; 669 } 670 671 672 /***************************************************************************** 673 * Name : StrDupW 674 * Purpose : duplicate a wide-characters string on the local heap 675 * Parameters: 676 * Variables : 677 * Result : 678 * Remark : SHLWAPI.645 679 * Status : UNTESTED 680 * 681 * Author : 682 *****************************************************************************/ 683 684 ODINFUNCTION1(LPWSTR, StrDupW, 685 LPCWSTR, lpStr) 686 { 687 int iLength = lstrlenW(lpStr) << 1 + 2; 688 HLOCAL hLocal = LocalAlloc(LMEM_ZEROINIT, 689 iLength); 690 if (hLocal != NULL) 691 StrCpyW((LPWSTR)hLocal, 692 lpStr); 693 694 return (LPWSTR)hLocal; 695 } -
trunk/src/shlwapi/url.cpp
r3539 r3687 1 /* $Id: url.cpp,v 1. 2 2000-05-15 02:42:35phaller Exp $ */1 /* $Id: url.cpp,v 1.3 2000-06-12 08:09:48 phaller Exp $ */ 2 2 3 3 /* … … 73 73 { /* scheme opaque hist type */ 74 74 {"http://", FALSE, FALSE, 0}, 75 {"https://", FALSE, FALSE, 0}, 76 {"shttp://", FALSE, FALSE, 0}, 75 77 {"file://", FALSE, FALSE, 0}, 76 78 {"ftp://", FALSE, FALSE, 0}, 77 79 {"telnet://", FALSE, TRUE, 0}, 78 80 {"news://", FALSE, TRUE, 0}, 81 {"snews://", FALSE, TRUE, 0}, 79 82 {"mailto:", TRUE, TRUE, 0}, 80 83 {"gopher://", FALSE, FALSE, 0}, 84 {"wais://", FALSE, FALSE, 0}, 81 85 }; 82 86
Note:
See TracChangeset
for help on using the changeset viewer.