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); return WOWGlobalAllocLock16(GPTR, size, &h);
} }
static void safearray_free(SEGPTR ptr)
{
WOWGlobalUnlockFree16(ptr);
}
/****************************************************************************** /******************************************************************************
* SafeArrayAllocDescriptor [OLE2DISP.38] * SafeArrayAllocDescriptor [OLE2DISP.38]
*/ */
@ -90,6 +95,26 @@ HRESULT WINAPI SafeArrayAllocDescriptor16(UINT16 dims, SEGPTR *ret)
return S_OK; 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 /* This implementation of the BSTR API is 16-bit only. It
represents BSTR as a 16:16 far pointer, and the strings represents BSTR as a 16:16 far pointer, and the strings
as ISO-8859 */ as ISO-8859 */

View File

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