[PATCH 3/6] riched20: Add access mode support for ITextDocument_fnOpen.
Jactry
jactry92 at gmail.com
Thu Sep 26 08:52:08 CDT 2013
-------------- next part --------------
From 889fb6614435c4ecff8f22abd5678c421258d163 Mon Sep 17 00:00:00 2001
From: Jactry Zeng <jactry92 at gmail.com>
Date: Thu, 26 Sep 2013 21:03:55 +0800
Subject: [PATCH 3/6] riched20: Add access mode support for
ITextDocument_fnOpen.
To: wine-patches <wine-patches at winehq.org>
Reply-To: wine-devel <wine-devel at winehq.org>
---
dlls/riched20/richole.c | 24 +++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
index cb85f10..1250bf7 100644
--- a/dlls/riched20/richole.c
+++ b/dlls/riched20/richole.c
@@ -596,6 +596,23 @@ static DWORD get_open_creation_mode(LONG Flags)
}
}
+static DWORD get_open_access_mode(LONG Flags)
+{
+ switch(Flags & 0xf00)
+ {
+ case tomReadOnly:
+ return GENERIC_READ;
+ case tomReadOnly|tomShareDenyRead:
+ return GENERIC_READ;
+ case tomReadOnly|tomShareDenyWrite:
+ return GENERIC_READ;
+ case tomReadOnly|tomShareDenyRead|tomShareDenyWrite:
+ return GENERIC_READ;
+ default:
+ return GENERIC_READ|GENERIC_WRITE;
+ }
+}
+
static HRESULT WINAPI
ITextDocument_fnOpen(ITextDocument* me, VARIANT* pVar, LONG Flags,
LONG CodePage)
@@ -603,7 +620,7 @@ ITextDocument_fnOpen(ITextDocument* me, VARIANT* pVar, LONG Flags,
IRichEditOleImpl *This = impl_from_ITextDocument(me);
HANDLE hFile;
- DWORD dwReadSize, size, creationMode;
+ DWORD dwReadSize, size, creationMode, accessMode;
SETTEXTEX settextex;
LPSTR chBuffer;
@@ -612,11 +629,12 @@ ITextDocument_fnOpen(ITextDocument* me, VARIANT* pVar, LONG Flags,
if(V_VT(pVar) != VT_BSTR) return E_INVALIDARG;
FIXME("Don't support UTF-16.\n");
- FIXME("Partial stub! Without support of access and share mode.\n");
+ FIXME("Partial stub! Without support of share mode.\n");
creationMode = get_open_creation_mode(Flags);
+ accessMode = get_open_access_mode(Flags);
- hFile = CreateFileW(V_BSTR(pVar), GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|
+ hFile = CreateFileW(V_BSTR(pVar), accessMode, FILE_SHARE_READ|
FILE_SHARE_WRITE|FILE_SHARE_DELETE,
NULL, creationMode, 0, NULL);
--
1.8.3.4 (Apple Git-47)
More information about the wine-patches
mailing list