shell32: Fix the length calculation of the pidl in ILSaveToStream by using the helper function ILGetSize.
This commit is contained in:
parent
57f36261fa
commit
1a67b1f53e
@ -341,7 +341,6 @@ HRESULT WINAPI ILLoadFromStream (IStream * pStream, LPITEMIDLIST * ppPidl)
|
|||||||
*/
|
*/
|
||||||
HRESULT WINAPI ILSaveToStream (IStream * pStream, LPCITEMIDLIST pPidl)
|
HRESULT WINAPI ILSaveToStream (IStream * pStream, LPCITEMIDLIST pPidl)
|
||||||
{
|
{
|
||||||
LPCITEMIDLIST pidl;
|
|
||||||
WORD wLen = 0;
|
WORD wLen = 0;
|
||||||
HRESULT ret = E_FAIL;
|
HRESULT ret = E_FAIL;
|
||||||
|
|
||||||
@ -349,12 +348,7 @@ HRESULT WINAPI ILSaveToStream (IStream * pStream, LPCITEMIDLIST pPidl)
|
|||||||
|
|
||||||
IStream_AddRef (pStream);
|
IStream_AddRef (pStream);
|
||||||
|
|
||||||
pidl = pPidl;
|
wLen = ILGetSize(pPidl);
|
||||||
while (pidl->mkid.cb)
|
|
||||||
{
|
|
||||||
wLen += sizeof(WORD) + pidl->mkid.cb;
|
|
||||||
pidl = ILGetNext(pidl);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (SUCCEEDED(IStream_Write(pStream, (LPVOID)&wLen, 2, NULL)))
|
if (SUCCEEDED(IStream_Write(pStream, (LPVOID)&wLen, 2, NULL)))
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user