* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55268
This commit is contained in:
Amine Khaldi 2012-01-27 23:08:50 +00:00
parent cea6972358
commit a56d039edf
2 changed files with 21 additions and 15 deletions

View file

@ -24,6 +24,7 @@
#include "mssip.h" #include "mssip.h"
#define COBJMACROS #define COBJMACROS
#include "objbase.h" #include "objbase.h"
#include "initguid.h"
#include "wine/debug.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(msisip); WINE_DEFAULT_DEBUG_CHANNEL(msisip);
@ -217,34 +218,39 @@ end:
return ret; return ret;
} }
DEFINE_GUID(CLSID_MsiTransform, 0x000c1082,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
DEFINE_GUID(CLSID_MsiDatabase, 0x000c1084,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
DEFINE_GUID(CLSID_MsiPatch, 0x000c1086,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
/*********************************************************************** /***********************************************************************
* MsiSIPIsMyTypeOfFile (MSISIP.@) * MsiSIPIsMyTypeOfFile (MSISIP.@)
*/ */
BOOL WINAPI MsiSIPIsMyTypeOfFile(WCHAR *name, GUID *subject) BOOL WINAPI MsiSIPIsMyTypeOfFile(WCHAR *name, GUID *subject)
{ {
static const WCHAR msi[] = { '.','m','s','i',0 };
static const WCHAR msp[] = { '.','m','s','p',0 };
BOOL ret = FALSE; BOOL ret = FALSE;
IStorage *stg = NULL;
HRESULT r;
TRACE("(%s, %p)\n", debugstr_w(name), subject); TRACE("(%s, %p)\n", debugstr_w(name), subject);
if (lstrlenW(name) < lstrlenW(msi)) r = StgOpenStorage(name, NULL, STGM_DIRECT|STGM_READ|STGM_SHARE_DENY_WRITE,
return FALSE; NULL, 0, &stg);
else if (lstrcmpiW(name + lstrlenW(name) - lstrlenW(msi), msi) &&
lstrcmpiW(name + lstrlenW(name) - lstrlenW(msp), msp))
return FALSE;
else
{
IStorage *stg = NULL;
HRESULT r = StgOpenStorage(name, NULL,
STGM_DIRECT|STGM_READ|STGM_SHARE_DENY_WRITE, NULL, 0, &stg);
if (SUCCEEDED(r)) if (SUCCEEDED(r))
{ {
IStorage_Release(stg); STATSTG stat;
*subject = mySubject;
r = IStorage_Stat(stg, &stat, STATFLAG_NONAME);
if (SUCCEEDED(r))
{
if (IsEqualGUID(&stat.clsid, &CLSID_MsiDatabase) ||
IsEqualGUID(&stat.clsid, &CLSID_MsiPatch) ||
IsEqualGUID(&stat.clsid, &CLSID_MsiTransform))
{
ret = TRUE; ret = TRUE;
*subject = mySubject;
} }
} }
IStorage_Release(stg);
}
return ret; return ret;
} }

View file

@ -104,7 +104,7 @@ reactos/dll/win32/mshtml # Autosync
reactos/dll/win32/msimg32 # Autosync reactos/dll/win32/msimg32 # Autosync
reactos/dll/win32/msi # Autosync reactos/dll/win32/msi # Autosync
reactos/dll/win32/msimtf # Autosync reactos/dll/win32/msimtf # Autosync
reactos/dll/win32/msisip # Autosync reactos/dll/win32/msisip # Synced to Wine-1.3.37
reactos/dll/win32/msisys.ocx # Autosync reactos/dll/win32/msisys.ocx # Autosync
reactos/dll/win32/msnet32 # Autosync reactos/dll/win32/msnet32 # Autosync
reactos/dll/win32/msrle32 # Autosync reactos/dll/win32/msrle32 # Autosync