This allows Microsoft `OfficeSetup.exe` 365 to succeed again. It needs to be used with the revert described in https://bugs.winehq.org/show_bug.cgi?id=54667 . `OneDriveSetup.exe` crashes right after as before, but the Office 365 files get installed into the prefix.
From: Daniel Tang danielzgtg.opensource@gmail.com
--- dlls/sppc/sppc.c | 10 ++++++++++ dlls/sppc/sppc.spec | 2 +- include/slpublic.h | 1 + 3 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/dlls/sppc/sppc.c b/dlls/sppc/sppc.c index 8819961d7c6..b5ce6e2c938 100644 --- a/dlls/sppc/sppc.c +++ b/dlls/sppc/sppc.c @@ -39,6 +39,16 @@ HRESULT WINAPI SLGetLicensingStatusInformation(HSLC handle, const SLID *app, con return SL_E_RIGHT_NOT_CONSUMED; }
+HRESULT WINAPI SLGetSLIDList(HSLC handle, UINT queryType, const SLID *query, UINT returnType, UINT *count, SLID **data) +{ + FIXME("(%p %u %p %u %p %p) stub\n", handle, queryType, query, returnType, count, data); + + *count = 0; + *data = 0; + + return S_OK; +} + HRESULT WINAPI SLOpen(HSLC *handle) { FIXME("(%p) stub\n", handle ); diff --git a/dlls/sppc/sppc.spec b/dlls/sppc/sppc.spec index 6926d4d8b6d..97ab6a8f6ac 100644 --- a/dlls/sppc/sppc.spec +++ b/dlls/sppc/sppc.spec @@ -44,7 +44,7 @@ @ stub SLGetPolicyInformation @ stub SLGetPolicyInformationDWORD @ stub SLGetProductSkuInformation -@ stub SLGetSLIDList +@ stdcall SLGetSLIDList(ptr long ptr long ptr ptr) @ stub SLGetServiceInformation @ stub SLInstallLicense @ stub SLInstallProofOfPurchase diff --git a/include/slpublic.h b/include/slpublic.h index 3f3a39274d1..d577bd08244 100644 --- a/include/slpublic.h +++ b/include/slpublic.h @@ -63,6 +63,7 @@ typedef struct _tagSL_LICENSING_STATUS } SL_LICENSING_STATUS;
SLCAPI HRESULT WINAPI SLGetLicensingStatusInformation(HSLC, const SLID*, const SLID*, LPCWSTR, UINT*, SL_LICENSING_STATUS**); +HRESULT WINAPI SLGetSLIDList(HSLC, UINT, const SLID *, UINT, UINT *, SLID **); SLCAPI HRESULT WINAPI SLGetWindowsInformation(LPCWSTR, SLDATATYPE*, UINT*, LPBYTE*); SLCAPI HRESULT WINAPI SLGetWindowsInformationDWORD(LPCWSTR, LPDWORD); SLCAPI HRESULT WINAPI SLOpen(HSLC*);
From: Daniel Tang danielzgtg.opensource@gmail.com
--- dlls/sppc/sppc.c | 10 ++++++++++ dlls/sppc/sppc.spec | 2 +- include/slpublic.h | 1 + 3 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/dlls/sppc/sppc.c b/dlls/sppc/sppc.c index b5ce6e2c938..673924d6806 100644 --- a/dlls/sppc/sppc.c +++ b/dlls/sppc/sppc.c @@ -49,6 +49,16 @@ HRESULT WINAPI SLGetSLIDList(HSLC handle, UINT queryType, const SLID *query, UIN return S_OK; }
+HRESULT WINAPI SLInstallLicense(HSLC handle, UINT count, const BYTE *data, SLID *file) +{ + FIXME("(%p %u %p %p) stub\n", handle, count, data, file); + + memset(file, 0, sizeof(SLID)); + + return S_OK; +} + + HRESULT WINAPI SLOpen(HSLC *handle) { FIXME("(%p) stub\n", handle ); diff --git a/dlls/sppc/sppc.spec b/dlls/sppc/sppc.spec index 97ab6a8f6ac..fd1462e3780 100644 --- a/dlls/sppc/sppc.spec +++ b/dlls/sppc/sppc.spec @@ -46,7 +46,7 @@ @ stub SLGetProductSkuInformation @ stdcall SLGetSLIDList(ptr long ptr long ptr ptr) @ stub SLGetServiceInformation -@ stub SLInstallLicense +@ stdcall SLInstallLicense(ptr long ptr ptr) @ stub SLInstallProofOfPurchase @ stub SLInstallProofOfPurchaseEx @ stub SLIsGenuineLocalEx diff --git a/include/slpublic.h b/include/slpublic.h index d577bd08244..c0ac0277722 100644 --- a/include/slpublic.h +++ b/include/slpublic.h @@ -64,6 +64,7 @@ typedef struct _tagSL_LICENSING_STATUS
SLCAPI HRESULT WINAPI SLGetLicensingStatusInformation(HSLC, const SLID*, const SLID*, LPCWSTR, UINT*, SL_LICENSING_STATUS**); HRESULT WINAPI SLGetSLIDList(HSLC, UINT, const SLID *, UINT, UINT *, SLID **); +HRESULT WINAPI SLInstallLicense(HSLC, UINT, const BYTE *, SLID *); SLCAPI HRESULT WINAPI SLGetWindowsInformation(LPCWSTR, SLDATATYPE*, UINT*, LPBYTE*); SLCAPI HRESULT WINAPI SLGetWindowsInformationDWORD(LPCWSTR, LPDWORD); SLCAPI HRESULT WINAPI SLOpen(HSLC*);