[PATCH] ole2disp: Implement SafeArrayLock()/SafeArrayUnlock()
Nikolay Sivov
nsivov at codeweavers.com
Wed Jan 13 13:25:56 CST 2016
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/ole2disp.dll16/ole2disp.c | 34 +++++++++++++++++++++++++++++++++
dlls/ole2disp.dll16/ole2disp.dll16.spec | 4 ++--
2 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/dlls/ole2disp.dll16/ole2disp.c b/dlls/ole2disp.dll16/ole2disp.c
index 20b7b6c..af6f03c 100644
--- a/dlls/ole2disp.dll16/ole2disp.c
+++ b/dlls/ole2disp.dll16/ole2disp.c
@@ -108,6 +108,40 @@ USHORT WINAPI SafeArrayGetElemsize16(SAFEARRAY16 *sa)
}
/******************************************************************************
+ * SafeArrayLock [OLE2DISP.21]
+ */
+HRESULT WINAPI SafeArrayLock16(SAFEARRAY16 *sa)
+{
+ TRACE("(%p)\n", sa);
+
+ if (!sa)
+ return E_INVALIDARG16;
+
+ if (sa->cLocks == 0xffff)
+ return E_UNEXPECTED;
+
+ sa->cLocks++;
+ return S_OK;
+}
+
+/******************************************************************************
+ * SafeArrayUnlock [OLE2DISP.22]
+ */
+HRESULT WINAPI SafeArrayUnlock16(SAFEARRAY16 *sa)
+{
+ TRACE("(%p)\n", sa);
+
+ if (!sa)
+ return E_INVALIDARG16;
+
+ if (sa->cLocks == 0)
+ return E_UNEXPECTED;
+
+ sa->cLocks--;
+ return S_OK;
+}
+
+/******************************************************************************
* SafeArrayAllocDescriptor [OLE2DISP.38]
*/
HRESULT WINAPI SafeArrayAllocDescriptor16(UINT16 dims, SEGPTR *ret)
diff --git a/dlls/ole2disp.dll16/ole2disp.dll16.spec b/dlls/ole2disp.dll16/ole2disp.dll16.spec
index ca884a0..b0db920 100644
--- a/dlls/ole2disp.dll16/ole2disp.dll16.spec
+++ b/dlls/ole2disp.dll16/ole2disp.dll16.spec
@@ -18,8 +18,8 @@
18 pascal -ret16 SafeArrayGetElemsize(ptr) SafeArrayGetElemsize16
19 stub SAFEARRAYGETUBOUND
20 stub SAFEARRAYGETLBOUND
-21 stub SAFEARRAYLOCK
-22 stub SAFEARRAYUNLOCK
+21 pascal SafeArrayLock(ptr) SafeArrayLock16
+22 pascal SafeArrayUnlock(ptr) SafeArrayUnlock16
23 stub SAFEARRAYACCESSDATA
24 stub SAFEARRAYUNACCESSDATA
25 stub SAFEARRAYGETELEMENT
--
2.6.4
More information about the wine-patches
mailing list