forked from Mirrors/wine-wine
msisip: Implement MsiSIPIsMyTypeOfFile.
parent
8fbd2c8514
commit
34b783c198
|
@ -3,7 +3,7 @@ TOPOBJDIR = ../..
|
||||||
SRCDIR = @srcdir@
|
SRCDIR = @srcdir@
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
MODULE = msisip.dll
|
MODULE = msisip.dll
|
||||||
IMPORTS = crypt32 kernel32
|
IMPORTS = crypt32 ole32 kernel32
|
||||||
|
|
||||||
C_SRCS = \
|
C_SRCS = \
|
||||||
main.c
|
main.c
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wincrypt.h"
|
#include "wincrypt.h"
|
||||||
#include "mssip.h"
|
#include "mssip.h"
|
||||||
|
#define COBJMACROS
|
||||||
|
#include "objbase.h"
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(msisip);
|
WINE_DEFAULT_DEBUG_CHANNEL(msisip);
|
||||||
|
@ -93,3 +95,35 @@ HRESULT WINAPI DllUnregisterServer(void)
|
||||||
CryptSIPRemoveProvider(&mySubject);
|
CryptSIPRemoveProvider(&mySubject);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* MsiSIPIsMyTypeOfFile (MSISIP.@)
|
||||||
|
*/
|
||||||
|
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;
|
||||||
|
|
||||||
|
TRACE("(%s, %p)\n", debugstr_w(name), subject);
|
||||||
|
|
||||||
|
if (lstrlenW(name) < lstrlenW(msi))
|
||||||
|
return FALSE;
|
||||||
|
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))
|
||||||
|
{
|
||||||
|
IStorage_Release(stg);
|
||||||
|
*subject = mySubject;
|
||||||
|
ret = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
5 stub MsiSIPIsMyTypeOfFile
|
5 stdcall MsiSIPIsMyTypeOfFile(wstr ptr)
|
||||||
6 stub MsiSIPGetSignedDataMsg
|
6 stub MsiSIPGetSignedDataMsg
|
||||||
7 stub MsiSIPPutSignedDataMsg
|
7 stub MsiSIPPutSignedDataMsg
|
||||||
8 stub MsiSIPRemoveSignedDataMsg
|
8 stub MsiSIPRemoveSignedDataMsg
|
||||||
|
|
Loading…
Reference in New Issue