ole2disp: Implement SafeArrayDestroyDescriptor().

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2016-01-12 11:49:29 +03:00 committed by Alexandre Julliard
parent 6cecd59f66
commit 1529f082e6
2 changed files with 26 additions and 1 deletions

View File

@ -67,6 +67,11 @@ static SEGPTR safearray_alloc(ULONG size)
return WOWGlobalAllocLock16(GPTR, size, &h);
}
static void safearray_free(SEGPTR ptr)
{
WOWGlobalUnlockFree16(ptr);
}
/******************************************************************************
* SafeArrayAllocDescriptor [OLE2DISP.38]
*/
@ -90,6 +95,26 @@ HRESULT WINAPI SafeArrayAllocDescriptor16(UINT16 dims, SEGPTR *ret)
return S_OK;
}
/******************************************************************************
* SafeArrayDestroyDescriptor [OLE2DISP.40]
*/
HRESULT WINAPI SafeArrayDestroyDescriptor16(SEGPTR s)
{
TRACE("0x%08x\n", s);
if (s)
{
SAFEARRAY16 *sa = MapSL(s);
if (sa->cLocks)
return DISP_E_ARRAYISLOCKED;
safearray_free(s);
}
return S_OK;
}
/* This implementation of the BSTR API is 16-bit only. It
represents BSTR as a 16:16 far pointer, and the strings
as ISO-8859 */

View File

@ -37,7 +37,7 @@
37 stub GETACTIVEOBJECT
38 pascal SafeArrayAllocDescriptor(word ptr) SafeArrayAllocDescriptor16
39 stub SAFEARRAYALLOCDATA
40 stub SAFEARRAYDESTROYDESCRIPTOR
40 pascal SafeArrayDestroyDescriptor(segptr) SafeArrayDestroyDescriptor16
41 stub SAFEARRAYDESTROYDATA
42 stub SAFEARRAYREDIM
43 stub VARI2FROMI4