#ifndef _WSCAPI_H
#define _WSCAPI_H

#if __POCC__ >= 500
#pragma once
#endif

/* Windows Security Center (WSC) definitions (vista+) */

#if defined(WIN32_DEFAULT_LIBS)
#pragma comment(lib, "wscapi.lib")
#endif

typedef enum _WSC_SECURITY_PROVIDER {
    WSC_SECURITY_PROVIDER_FIREWALL = 0x1,
    WSC_SECURITY_PROVIDER_AUTOUPDATE_SETTINGS = 0x2,
    WSC_SECURITY_PROVIDER_ANTIVIRUS = 0x4,
    WSC_SECURITY_PROVIDER_ANTISPYWARE = 0x8,
    WSC_SECURITY_PROVIDER_INTERNET_SETTINGS = 0x10,
    WSC_SECURITY_PROVIDER_USER_ACCOUNT_CONTROL = 0x20,
    WSC_SECURITY_PROVIDER_SERVICE = 0x40,
    WSC_SECURITY_PROVIDER_NONE = 0,
    WSC_SECURITY_PROVIDER_ALL = WSC_SECURITY_PROVIDER_FIREWALL | WSC_SECURITY_PROVIDER_AUTOUPDATE_SETTINGS | 
                                WSC_SECURITY_PROVIDER_ANTIVIRUS | WSC_SECURITY_PROVIDER_ANTISPYWARE |
                                WSC_SECURITY_PROVIDER_INTERNET_SETTINGS | WSC_SECURITY_PROVIDER_USER_ACCOUNT_CONTROL |
                                WSC_SECURITY_PROVIDER_SERVICE
} WSC_SECURITY_PROVIDER, *PWSC_SECURITY_PROVIDER;

typedef enum _WSC_SECURITY_PROVIDER_HEALTH {
    WSC_SECURITY_PROVIDER_HEALTH_GOOD,
    WSC_SECURITY_PROVIDER_HEALTH_NOTMONITORED,
    WSC_SECURITY_PROVIDER_HEALTH_POOR,
    WSC_SECURITY_PROVIDER_HEALTH_SNOOZE,
} WSC_SECURITY_PROVIDER_HEALTH, *PWSC_SECURITY_PROVIDER_HEALTH;

STDAPI WscRegisterForChanges(LPVOID, PHANDLE, LPTHREAD_START_ROUTINE, PVOID);
STDAPI WscUnRegisterChanges(HANDLE);
STDAPI WscGetSecurityProviderHealth(DWORD, PWSC_SECURITY_PROVIDER_HEALTH);

#endif /* _WSCAPI_H */
