Implemented the CoTaskMemRealloc API. Also clean-up around that API
call.
This commit is contained in:
parent
b67b8e7a84
commit
07478c2e3e
|
@ -1407,9 +1407,10 @@ LPVOID WINAPI CoTaskMemAlloc(
|
|||
LPMALLOC lpmalloc;
|
||||
HRESULT ret = CoGetMalloc(0,&lpmalloc);
|
||||
|
||||
if (ret)
|
||||
if (FAILED(ret))
|
||||
return NULL;
|
||||
return lpmalloc->lpvtbl->fnAlloc(lpmalloc,size);
|
||||
|
||||
return IMalloc_Alloc(lpmalloc,size);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -1421,8 +1422,28 @@ VOID WINAPI CoTaskMemFree(
|
|||
LPMALLOC lpmalloc;
|
||||
HRESULT ret = CoGetMalloc(0,&lpmalloc);
|
||||
|
||||
if (ret) return;
|
||||
lpmalloc->lpvtbl->fnFree(lpmalloc,ptr);
|
||||
if (FAILED(ret))
|
||||
return;
|
||||
|
||||
IMalloc_Free(lpmalloc, ptr);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* CoTaskMemRealloc (OLE32.45)
|
||||
* RETURNS
|
||||
* pointer to newly allocated block
|
||||
*/
|
||||
LPVOID WINAPI CoTaskMemRealloc(
|
||||
LPVOID pvOld,
|
||||
ULONG size) /* [in] size of memoryblock to be allocated */
|
||||
{
|
||||
LPMALLOC lpmalloc;
|
||||
HRESULT ret = CoGetMalloc(0,&lpmalloc);
|
||||
|
||||
if (FAILED(ret))
|
||||
return NULL;
|
||||
|
||||
return IMalloc_Realloc(lpmalloc, pvOld, size);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
|
|
@ -45,7 +45,7 @@ type win32
|
|||
42 stdcall CoSetState(ptr) CoSetState
|
||||
43 stdcall CoTaskMemAlloc(long) CoTaskMemAlloc
|
||||
44 stdcall CoTaskMemFree(ptr) CoTaskMemFree
|
||||
45 stub CoTaskMemRealloc # stdcall (ptr long) return 0,ERR_NOTIMPLEMENTED
|
||||
45 stdcall CoTaskMemRealloc(ptr long) CoTaskMemRealloc
|
||||
46 stub CoTreatAsClass # stdcall (ptr ptr) return 0,ERR_NOTIMPLEMENTED
|
||||
47 stdcall CoUninitialize() CoUninitialize
|
||||
48 stub CoUnloadingWOW
|
||||
|
|
Loading…
Reference in New Issue