On 09/12/2009 04:56 PM, Markus Stockhausen wrote:
Am Samstag, den 12.09.2009, 16:50 +0200 schrieb Paul Vriens:
On 09/12/2009 04:13 PM, Markus Stockhausen wrote:
Am Samstag, den 12.09.2009, 15:52 +0200 schrieb Markus Stockhausen:
Hi,
hopefully the right explanation for the error can be found here http://bugs.winehq.org/show_bug.cgi?id=9575 . Once again I need someone with a Windows machine who can provide the following:
... HRESULT = StgOpenStorage( 'testfile.txt', ... , ppstgOpen1 ); HRESULT = StgOpenStorage( 'testfile.txt', ... , ppstgOpen2 );
I expect *ppstgOpen2 not to be NULL in Windows while being NULL under Wine.
Best regards.
Markus
Uh, too fast when sending. Additionally the result code of HRESULT is needed to get a clearer picture.
Best regards.
Hi Markus,
/* create the file */ SetLastError(0xdeadbeef); r = StgCreateDocfile( filename, 0x11012, 0,&stg); trace("r : %08x\n", r); trace("GLE : %d/%08x\n", GetLastError(), GetLastError()); IStorage_Release(stg); SetLastError(0xdeadbeef); r= StgOpenStorage( filename, NULL, 0x10012, NULL, 0,&stg); trace("r : %08x\n", r); trace("GLE : %d/%08x\n", GetLastError(), GetLastError()); SetLastError(0xdeadbeef); r= StgOpenStorage( filename, NULL, 0x10012, NULL, 0,&stg); trace("r : %08x\n", r); trace("GLE : %d/%08x\n", GetLastError(), GetLastError());
Output on W2K3:
storage32.c:1498: r : 00000000 storage32.c:1499: GLE : 0/00000000 storage32.c:1504: r : 00000000 storage32.c:1505: GLE : 0/00000000 storage32.c:1509: r : 80030020 storage32.c:1510: GLE : 32/00000020
Wine:
storage32.c:1498: r : 00000000 storage32.c:1499: GLE : 0/00000000 storage32.c:1504: r : 00000000 storage32.c:1505: GLE : 0/00000000 storage32.c:1509: r : 80030020 storage32.c:1510: GLE : 32/00000020
So I get STG_E_SHAREVIOLATION and a GLE of ERROR_SHARING_VIOLATION on both W2K3 and Wine for the second call.
The grfMode is taken from the trace of running the application.
So I guess *ppstgOpen pointing to NULL in Wine can be the culprit.
Is also NULL on W2K3.