From 7e266e9e91d4e41ea5ab8cb960ca3531f042097b Mon Sep 17 00:00:00 2001 From: "Guy L. Albertelli" Date: Sun, 28 Oct 2001 21:14:26 +0000 Subject: [PATCH] - Added stubs for _18,_21,_22 which seem to be used only by native shdocvw.dll - Implemented _26, _27, _28, _32, and _34 (more isw... functions). --- dlls/shlwapi/ordinal.c | 108 +++++++++++++++++++++++++++++++++++--- dlls/shlwapi/shlwapi.spec | 18 +++---- 2 files changed, 109 insertions(+), 17 deletions(-) diff --git a/dlls/shlwapi/ordinal.c b/dlls/shlwapi/ordinal.c index 048d18f8405..1547babaf6b 100644 --- a/dlls/shlwapi/ordinal.c +++ b/dlls/shlwapi/ordinal.c @@ -211,6 +211,62 @@ HRESULT WINAPI SHLWAPI_16 ( return 0xabba1252; } +/************************************************************************* + * @ [SHLWAPI.18] + * + * w is pointer to address of callback routine + * x is pointer to LPVOID to receive address of locally allocated + * space size 0x14 + * return is 0 (unless out of memory???) + * + * related to _21 and _22 below + * only seen invoked by SHDOCVW + */ +LONG WINAPI SHLWAPI_18 ( + LPVOID *w, + LPVOID x) +{ + FIXME("(%p %p)stub\n",w,x); + *w = 0; + return 0; +} + +/************************************************************************* + * @ [SHLWAPI.21] + * + * w points to space allocated via .18 above + * LocalSize is done on it (retrieves 18) + * LocalReAlloc is done on it to size 8 with LMEM_MOVEABLE & LMEM_ZEROINIT + * x values seen 0xa0000005 + * returns 1 + * + * relates to _18 and _22 above and below + * only seen invoked by SHDOCVW + */ +LONG WINAPI SHLWAPI_21 ( + LPVOID w, + DWORD x) +{ + FIXME("(%p %lx)stub\n",w,x); + return 1; +} + +/************************************************************************* + * @ [SHLWAPI.22] + * + * return is 'w' value seen in x is 0xa0000005 + * + * relates to _18 and _21 above + * only seen invoked by SHDOCVW + */ +LPVOID WINAPI SHLWAPI_22 ( + LPVOID w, + DWORD x) +{ + FIXME("(%p %lx)stub\n",w,x); + return w; +} + /************************************************************************* * @ [SHLWAPI.23] * @@ -266,6 +322,36 @@ BOOL WINAPI SHLWAPI_25(WCHAR wc) return (get_char_typeW(wc) & C1_ALPHA) != 0; } +/************************************************************************* + * SHLWAPI_26 [SHLWAPI.26] + * + * Seems to be iswupper + */ +BOOL WINAPI SHLWAPI_26(WCHAR wc) +{ + return (get_char_typeW(wc) & C1_UPPER) != 0; +} + +/************************************************************************* + * SHLWAPI_27 [SHLWAPI.27] + * + * Seems to be iswlower + */ +BOOL WINAPI SHLWAPI_27(WCHAR wc) +{ + return (get_char_typeW(wc) & C1_LOWER) != 0; +} + +/************************************************************************* + * SHLWAPI_28 [SHLWAPI.28] + * + * Seems to be iswalnum + */ +BOOL WINAPI SHLWAPI_28(WCHAR wc) +{ + return (get_char_typeW(wc) & (C1_ALPHA|C1_DIGIT)) != 0; +} + /************************************************************************* * SHLWAPI_29 [SHLWAPI.29] * @@ -298,16 +384,12 @@ BOOL WINAPI SHLWAPI_31(WCHAR wc) /************************************************************************* * @ [SHLWAPI.32] + * + * Seems to be iswcntrl */ -BOOL WINAPI SHLWAPI_32(LPCWSTR lpcChar) +BOOL WINAPI SHLWAPI_32(WCHAR wc) { - if (*lpcChar < (WCHAR)' ') - return TRUE; - - /* This is probably a shlwapi bug, but we do it the same for compatability */ - if (((DWORD)lpcChar & 0xffff) - 127 <= (WCHAR)' ') - return TRUE; - return FALSE; + return (get_char_typeW(wc) & C1_CNTRL) != 0; } /************************************************************************* @@ -320,6 +402,16 @@ BOOL WINAPI SHLWAPI_33(WCHAR wc) return (get_char_typeW(wc) & C1_DIGIT) != 0; } +/************************************************************************* + * SHLWAPI_34 [SHLWAPI.34] + * + * Seems to be iswxdigit + */ +BOOL WINAPI SHLWAPI_34(WCHAR wc) +{ + return (get_char_typeW(wc) & C1_XDIGIT) != 0; +} + /************************************************************************* * SHLWAPI_35 [SHLWAPI.35] * diff --git a/dlls/shlwapi/shlwapi.spec b/dlls/shlwapi/shlwapi.spec index f57be712b8e..36758f5a508 100644 --- a/dlls/shlwapi/shlwapi.spec +++ b/dlls/shlwapi/shlwapi.spec @@ -27,23 +27,23 @@ debug_channels (shell) 15 stdcall @(ptr ptr) SHLWAPI_15 16 stdcall @(long long long long) SHLWAPI_16 17 stub @ -18 stub @ +18 stdcall @(ptr ptr) SHLWAPI_18 19 stub @ 20 stub @ -21 stub @ -22 stub @ +21 stdcall @(ptr long) SHLWAPI_21 +22 stdcall @(ptr long) SHLWAPI_22 23 stdcall @(ptr ptr long) SHLWAPI_23 24 stdcall @(ptr ptr long) SHLWAPI_24 25 stdcall @(long) SHLWAPI_25 -26 stub @ -27 stub @ -28 stub @ +26 stdcall @(long) SHLWAPI_26 +27 stdcall @(long) SHLWAPI_27 +28 stdcall @(long) SHLWAPI_28 29 stdcall @(long) SHLWAPI_29 30 stdcall @(long) SHLWAPI_30 31 stdcall @(long) SHLWAPI_31 32 stdcall @(ptr) SHLWAPI_32 33 stdcall @(long) SHLWAPI_33 -34 stub @ +34 stdcall @(long) SHLWAPI_34 35 stdcall @(ptr long ptr) SHLWAPI_35 36 stub @ 37 forward @ user32.CallWindowProcW @@ -665,8 +665,8 @@ debug_channels (shell) @ stdcall UrlApplySchemeW(str ptr ptr long) UrlApplySchemeW @ stdcall UrlCanonicalizeA(str ptr ptr long) UrlCanonicalizeA @ stdcall UrlCanonicalizeW(wstr ptr ptr long) UrlCanonicalizeW -@ stub UrlCombineA -@ stub UrlCombineW +@ stdcall UrlCombineA(str str str ptr long) UrlCombineA +@ stdcall UrlCombineW(wstr wstr wstr ptr long) UrlCombineW @ stub UrlCompareA @ stub UrlCompareW @ stub UrlCreateFromPathA