Hans Leidekker : msi: Clone an open stream if possible in cabinet_open_stream.
Alexandre Julliard
julliard at winehq.org
Fri May 6 13:44:15 CDT 2011
Module: wine
Branch: master
Commit: 3f7312fdc1aeec1cac782706ca4a0225fa39e9b4
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3f7312fdc1aeec1cac782706ca4a0225fa39e9b4
Author: Hans Leidekker <hans at codeweavers.com>
Date: Fri May 6 14:41:14 2011 +0200
msi: Clone an open stream if possible in cabinet_open_stream.
---
dlls/msi/media.c | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/dlls/msi/media.c b/dlls/msi/media.c
index bf0522a..608e84c 100644
--- a/dlls/msi/media.c
+++ b/dlls/msi/media.c
@@ -235,13 +235,17 @@ static INT_PTR CDECL cabinet_open_stream( char *pszFile, int oflag, int pmode )
WARN("failed to encode stream name\n");
return 0;
}
- hr = IStorage_OpenStream( cab->storage, encoded, NULL, STGM_READ|STGM_SHARE_EXCLUSIVE, 0, &stream );
- msi_free( encoded );
- if (FAILED(hr))
+ if (msi_clone_open_stream( package_disk.package->db, cab->storage, encoded, &stream ) != ERROR_SUCCESS)
{
- WARN("failed to open stream 0x%08x\n", hr);
- return 0;
+ hr = IStorage_OpenStream( cab->storage, encoded, NULL, STGM_READ|STGM_SHARE_EXCLUSIVE, 0, &stream );
+ msi_free( encoded );
+ if (FAILED(hr))
+ {
+ WARN("failed to open stream 0x%08x\n", hr);
+ return 0;
+ }
}
+ msi_free( encoded );
return (INT_PTR)stream;
}
More information about the wine-cvs
mailing list