36b45a3 shlwapi: Fix the return value of SHAddDataBlock
437123b shlwapi: Avoid 'else if' for IStream_fnQueryInterface.
101edb1 shlwapi: Changed UrlEscapeW error paths and add tests.
4eac6e8 shlwapi: Remove dot segments for URLs starting with /.
6cbcc76 shlwapi: Make ParseURL case-insensitive.
svn path=/trunk/; revision=73976
* the call returns S_OK but does not actually add the element.
* See SHWriteDataBlockList.
*/
* the call returns S_OK but does not actually add the element.
* See SHWriteDataBlockList.
*/
-#ifndef __REACTOS__
-HRESULT
-#else
-BOOL
-#endif
-WINAPI SHAddDataBlock(LPDBLIST* lppList, const DATABLOCK_HEADER *lpNewItem)
+BOOL WINAPI SHAddDataBlock(LPDBLIST* lppList, const DATABLOCK_HEADER *lpNewItem)
{
LPDATABLOCK_HEADER lpInsertAt = NULL;
ULONG ulSize;
TRACE("(%p,%p)\n", lppList, lpNewItem);
{
LPDATABLOCK_HEADER lpInsertAt = NULL;
ULONG ulSize;
TRACE("(%p,%p)\n", lppList, lpNewItem);
- if(!lppList || !lpNewItem )
-#ifndef __REACTOS__
- return E_INVALIDARG;
-#else
+ if(!lppList || !lpNewItem)
if (lpNewItem->cbSize < sizeof(DATABLOCK_HEADER) ||
lpNewItem->dwSignature == CLIST_ID_CONTAINER)
if (lpNewItem->cbSize < sizeof(DATABLOCK_HEADER) ||
lpNewItem->dwSignature == CLIST_ID_CONTAINER)
-#ifndef __REACTOS__
- return S_OK;
-#else
ulSize = lpNewItem->cbSize;
ulSize = lpNewItem->cbSize;
lpInsertAt = NextItem(lpInsertAt);
lpInsertAt->cbSize = 0;
lpInsertAt = NextItem(lpInsertAt);
lpInsertAt->cbSize = 0;
-#ifndef __REACTOS__
- return S_OK;
-#else
}
/*************************************************************************
}
/*************************************************************************
*/
BOOL WINAPI SHRemoveDataBlock(LPDBLIST* lppList, DWORD dwSignature)
{
*/
BOOL WINAPI SHRemoveDataBlock(LPDBLIST* lppList, DWORD dwSignature)
{
-#ifndef __REACTOS__
- LPDATABLOCK_HEADER lpList = 0;
-#else
LPDATABLOCK_HEADER lpList = NULL;
LPDATABLOCK_HEADER lpList = NULL;
LPDATABLOCK_HEADER lpItem = NULL;
LPDATABLOCK_HEADER lpNext;
ULONG ulNewSize;
LPDATABLOCK_HEADER lpItem = NULL;
LPDATABLOCK_HEADER lpNext;
ULONG ulNewSize;
- if(IsEqualIID(riid, &IID_IUnknown)) /*IUnknown*/
- *ppvObj = This;
- else if(IsEqualIID(riid, &IID_IStream)) /*IStream*/
- *ppvObj = This;
+ if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IStream))
+ *ppvObj = &This->IStream_iface;
for(i=0; i < sizeof(shlwapi_schemes)/sizeof(shlwapi_schemes[0]); i++) {
if(scheme_len == strlenW(shlwapi_schemes[i].scheme_name)
for(i=0; i < sizeof(shlwapi_schemes)/sizeof(shlwapi_schemes[0]); i++) {
if(scheme_len == strlenW(shlwapi_schemes[i].scheme_name)
- && !memcmp(scheme, shlwapi_schemes[i].scheme_name, scheme_len*sizeof(WCHAR)))
+ && !memicmpW(scheme, shlwapi_schemes[i].scheme_name, scheme_len))
return shlwapi_schemes[i].scheme_number;
}
return shlwapi_schemes[i].scheme_number;
}
dwFlags |= URL_ESCAPE_UNSAFE;
state = 5;
is_file_url = TRUE;
dwFlags |= URL_ESCAPE_UNSAFE;
state = 5;
is_file_url = TRUE;
+ } else if(url[0] == '/') {
+ state = 5;
+ is_file_url = TRUE;
TRACE("(%p(%s) %p %p 0x%08x)\n", pszUrl, debugstr_w(pszUrl),
pszEscaped, pcchEscaped, dwFlags);
TRACE("(%p(%s) %p %p 0x%08x)\n", pszUrl, debugstr_w(pszUrl),
pszEscaped, pcchEscaped, dwFlags);
- if(!pszUrl || !pcchEscaped)
+ if(!pszUrl || !pcchEscaped || !pszEscaped || *pcchEscaped == 0)
return E_INVALIDARG;
if(dwFlags & ~(URL_ESCAPE_SPACES_ONLY |
return E_INVALIDARG;
if(dwFlags & ~(URL_ESCAPE_SPACES_ONLY |
reactos/dll/win32/shdocvw # Synced to WineStaging-2.2
reactos/dll/win32/shell32 # Forked at Wine-20071011
reactos/dll/win32/shfolder # Synced to WineStaging-1.9.11
reactos/dll/win32/shdocvw # Synced to WineStaging-2.2
reactos/dll/win32/shell32 # Forked at Wine-20071011
reactos/dll/win32/shfolder # Synced to WineStaging-1.9.11
-reactos/dll/win32/shlwapi # Synced to WineStaging-1.9.23
+reactos/dll/win32/shlwapi # Synced to WineStaging-2.2
reactos/dll/win32/slbcsp # Synced to WineStaging-1.9.11
reactos/dll/win32/snmpapi # Synced to WineStaging-1.9.11
reactos/dll/win32/softpub # Synced to WineStaging-1.9.11
reactos/dll/win32/slbcsp # Synced to WineStaging-1.9.11
reactos/dll/win32/snmpapi # Synced to WineStaging-1.9.11
reactos/dll/win32/softpub # Synced to WineStaging-1.9.11