blob: 4d4f2ee320ea5b407f4d9696ce2dffb0e633fe74 [file] [log] [blame]
/**
* 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;
}
}