https://git.reactos.org/?p=reactos.git;a=commitdiff;h=af7defb5566c715a6a0a63835e79cd4a31fd6965

commit af7defb5566c715a6a0a63835e79cd4a31fd6965
Author:     Katayama Hirofumi MZ <[email protected]>
AuthorDate: Sun Nov 26 21:30:00 2023 +0900
Commit:     Katayama Hirofumi MZ <[email protected]>
CommitDate: Sun Nov 26 21:30:00 2023 +0900

    [KERNEL32] Implement SetComPlusPackageInstallStatus
---
 dll/win32/kernel32/client/appcache.c | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/dll/win32/kernel32/client/appcache.c 
b/dll/win32/kernel32/client/appcache.c
index 81ffaefc3b8..0b2ebec1afe 100644
--- a/dll/win32/kernel32/client/appcache.c
+++ b/dll/win32/kernel32/client/appcache.c
@@ -415,14 +415,32 @@ GetComPlusPackageInstallStatus(VOID)
 }
 
 /*
- * @unimplemented
+ * @implemented
  */
 BOOL
 WINAPI
-SetComPlusPackageInstallStatus(LPVOID lpInfo)
+SetComPlusPackageInstallStatus(IN ULONG ComPlusPackage)
 {
-   STUB;
-   return FALSE;
+    NTSTATUS Status;
+
+    DPRINT("(0x%X)\n", ComPlusPackage);
+
+    if (ComPlusPackage & ~1)
+    {
+        DPRINT1("0x%lX\n", ComPlusPackage);
+        BaseSetLastNTError(STATUS_INVALID_PARAMETER);
+        return FALSE;
+    }
+
+    Status = NtSetSystemInformation(SystemComPlusPackage, &ComPlusPackage, 
sizeof(ComPlusPackage));
+    if (!NT_SUCCESS(Status))
+    {
+        DPRINT1("0x%lX\n", Status);
+        BaseSetLastNTError(Status);
+        return FALSE;
+    }
+
+    return TRUE;
 }
 
 /*

Reply via email to