From 1aa3e85b2ee6c20c433bf50d409b57fd2cd0fc66 Mon Sep 17 00:00:00 2001
From: Biswapriyo Nath <nathbap...@gmail.com>
Date: Wed, 2 Oct 2024 16:35:28 +0000
Subject: [PATCH] headers: Add iwscapi.idl

Required for 
https://github.com/mozilla/gecko-dev/blob/7e0ae4372c52b8183d1178132dd6493edb576738/xpcom/base/nsSystemInfo.cpp#L28

Signed-off-by: Biswapriyo Nath <nathbap...@gmail.com>
---
 mingw-w64-headers/Makefile.am         |   1 +
 mingw-w64-headers/include/iwscapi.idl | 122 ++++++++++++++++++++++++++
 2 files changed, 123 insertions(+)
 create mode 100644 mingw-w64-headers/include/iwscapi.idl

diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
index 7132c27..bb703ed 100644
--- a/mingw-w64-headers/Makefile.am
+++ b/mingw-w64-headers/Makefile.am
@@ -163,6 +163,7 @@ IDL_SRCS = \
   include/inputscope.idl \
   include/inspectable.idl \
   include/ivectorchangedeventargs.idl \
+  include/iwscapi.idl \
   include/locationapi.idl \
   include/oaidl.idl \
   include/ocidl.idl \
diff --git a/mingw-w64-headers/include/iwscapi.idl 
b/mingw-w64-headers/include/iwscapi.idl
new file mode 100644
index 0000000..4d4f2ee
--- /dev/null
+++ b/mingw-w64-headers/include/iwscapi.idl
@@ -0,0 +1,122 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+import "oaidl.idl";
+
+typedef enum WSC_SECURITY_PRODUCT_SUBSTATUS {
+    WSC_SECURITY_PRODUCT_SUBSTATUS_NOT_SET = 0,
+    WSC_SECURITY_PRODUCT_SUBSTATUS_NO_ACTION = 1,
+    WSC_SECURITY_PRODUCT_SUBSTATUS_ACTION_RECOMMENDED = 2,
+    WSC_SECURITY_PRODUCT_SUBSTATUS_ACTION_NEEDED = 3,
+} WSC_SECURITY_PRODUCT_SUBSTATUS;
+
+typedef enum WSC_SECURITY_PRODUCT_STATE {
+    WSC_SECURITY_PRODUCT_STATE_ON = 0,
+    WSC_SECURITY_PRODUCT_STATE_OFF = 1,
+    WSC_SECURITY_PRODUCT_STATE_SNOOZED = 2,
+    WSC_SECURITY_PRODUCT_STATE_EXPIRED = 3,
+} WSC_SECURITY_PRODUCT_STATE;
+
+typedef enum _SECURITY_PRODUCT_TYPE {
+    SECURITY_PRODUCT_TYPE_ANTIVIRUS = 0,
+    SECURITY_PRODUCT_TYPE_FIREWALL = 1,
+    SECURITY_PRODUCT_TYPE_ANTISPYWARE = 2,
+} SECURITY_PRODUCT_TYPE;
+
+typedef enum _WSC_SECURITY_SIGNATURE_STATUS {
+    WSC_SECURITY_PRODUCT_OUT_OF_DATE = 0,
+    WSC_SECURITY_PRODUCT_UP_TO_DATE = 1,
+} WSC_SECURITY_SIGNATURE_STATUS;
+
+[
+    local,
+    object,
+    pointer_default(unique),
+    uuid(8c38232e-3a45-4a27-92b0-1a16a975f669)
+]
+interface IWscProduct : IDispatch
+{
+    [propget] HRESULT ProductName([out, retval] BSTR *val);
+    [propget] HRESULT ProductState([out, retval] WSC_SECURITY_PRODUCT_STATE 
*val);
+    [propget] HRESULT SignatureStatus([out, retval] 
WSC_SECURITY_SIGNATURE_STATUS *val);
+    [propget] HRESULT RemediationPath([out, retval] BSTR *val);
+    [propget] HRESULT ProductStateTimestamp([out, retval] BSTR *val);
+    [propget] HRESULT ProductGuid([out, retval] BSTR *val);
+    [propget] HRESULT ProductIsDefault([out, retval] BOOL *val);
+}
+
+[
+    local,
+    object,
+    pointer_default(unique),
+    uuid(f896ca54-fe09-4403-86d4-23cb488d81d8)
+]
+interface IWscProduct2 : IWscProduct
+{
+    [propget] HRESULT AntivirusScanSubstatus([out, retval] 
WSC_SECURITY_PRODUCT_SUBSTATUS *status);
+    [propget] HRESULT AntivirusSettingsSubstatus([out, retval] 
WSC_SECURITY_PRODUCT_SUBSTATUS *status);
+    [propget] HRESULT AntivirusProtectionUpdateSubstatus([out, retval] 
WSC_SECURITY_PRODUCT_SUBSTATUS *status);
+    [propget] HRESULT FirewallDomainProfileSubstatus([out, retval] 
WSC_SECURITY_PRODUCT_SUBSTATUS *status);
+    [propget] HRESULT FirewallPrivateProfileSubstatus([out, retval] 
WSC_SECURITY_PRODUCT_SUBSTATUS *status);
+    [propget] HRESULT FirewallPublicProfileSubstatus([out, retval] 
WSC_SECURITY_PRODUCT_SUBSTATUS *status);
+}
+
+[
+    local,
+    object,
+    pointer_default(unique),
+    uuid(55536524-d1d1-4726-8c7c-04996a1904e7)
+]
+interface IWscProduct3 : IWscProduct2
+{
+    [propget] HRESULT AntivirusDaysUntilExpired([out, retval] DWORD *days);
+}
+
+[
+    local,
+    object,
+    pointer_default(unique),
+    uuid(722a338c-6e8e-4e72-ac27-1417fb0c81c2)
+]
+interface IWSCProductList : IDispatch
+{
+    HRESULT Initialize([in] ULONG provider);
+    [propget] HRESULT Count([out, retval] LONG *val);
+    [propget] HRESULT Item([in] ULONG index, [out, retval] IWscProduct **val);
+}
+
+[
+    local,
+    object,
+    pointer_default(unique),
+    uuid(0476d69c-f21a-11e5-9ce9-5e5517507c66)
+]
+interface IWSCDefaultProduct : IDispatch
+{
+    HRESULT SetDefaultProduct([in] SECURITY_PRODUCT_TYPE type, [in] BSTR guid);
+}
+
+[
+    uuid(b52a4496-7753-4f74-be64-c2072e308122)
+]
+library wscAPILib
+{
+    [
+        uuid(17072f7b-9abe-4a74-a261-1eb76b55107a)
+    ]
+    coclass WSCProductList
+    {
+        interface IWSCProductList;
+    }
+
+    [
+        uuid(2981a36e-f22d-11e5-9ce9-5e5517507c66)
+    ]
+    coclass WSCDefaultProduct
+    {
+        interface IWSCDefaultProduct;
+    }
+}
-- 
2.46.2

_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to