ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/napprotocol.idl
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
File size: 3610 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /**
2 * This file is part of the mingw-w64 runtime package.
3 * No warranty is given; refer to the file DISCLAIMER within this package.
4 */
5
6 import "naptypes.idl";
7 import "unknwn.idl";
8
9 cpp_quote("#include <winapifamily.h>")
10 cpp_quote("")
11 cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
12
13 [pointer_default (unique)]
14 interface INapSoHTypes {
15 typedef enum tagSoHAttributeType {
16 sohAttributeTypeSystemHealthId = 2,
17 sohAttributeTypeIpv4FixupServers = 3,
18 sohAttributeTypeComplianceResultCodes = 4,
19 sohAttributeTypeTimeOfLastUpdate = 5,
20 sohAttributeTypeClientId = 6,
21 sohAttributeTypeVendorSpecific = 7,
22 sohAttributeTypeHealthClass = 8,
23 sohAttributeTypeSoftwareVersion = 9,
24 sohAttributeTypeProductName = 10,
25 sohAttributeTypeHealthClassStatus = 11,
26 sohAttributeTypeSoHGenerationTime = 12,
27 sohAttributeTypeErrorCodes = 13,
28 sohAttributeTypeFailureCategory = 14,
29 sohAttributeTypeIpv6FixupServers = 15,
30 sohAttributeTypeExtendedIsolationState = 16
31 } SoHAttributeType;
32
33 typedef enum tagHealthClassValue {
34 healthClassFirewall = 0,
35 healthClassPatchLevel = 1,
36 healthClassAntiVirus = 2,
37 healthClassCriticalUpdate = 3,
38 healthClassReserved = 128
39 } HealthClassValue;
40
41 typedef [switch_type (SoHAttributeType)] union tagSoHAttributeValue {
42 [case (sohAttributeTypeSystemHealthId)] SystemHealthEntityId idVal;
43 [case (sohAttributeTypeIpv4FixupServers)] struct tagIpv4Addresses {
44 [range (1, maxIpv4CountPerSoHAttribute)] UINT16 count;
45 [size_is (count)] Ipv4Address *addresses;
46 } v4AddressesVal;
47 [case (sohAttributeTypeIpv6FixupServers)] struct tagIpv6Addresses {
48 [range (1, maxIpv6CountPerSoHAttribute)] UINT16 count;
49 [size_is (count)] Ipv6Address *addresses;
50 } v6AddressesVal;
51 [case (sohAttributeTypeComplianceResultCodes, sohAttributeTypeErrorCodes)] ResultCodes codesVal;
52 [case (sohAttributeTypeTimeOfLastUpdate, sohAttributeTypeSoHGenerationTime)] FILETIME dateTimeVal;
53 [case (sohAttributeTypeVendorSpecific)] struct tagVendorSpecific {
54 UINT32 vendorId;
55 [range (0, maxSoHAttributeSize - 4)] UINT16 size;
56 [size_is (size)] BYTE *vendorSpecificData;
57 } vendorSpecificVal;
58 [case (sohAttributeTypeHealthClass, sohAttributeTypeFailureCategory, sohAttributeTypeExtendedIsolationState)] UINT8 uint8Val;
59 [default] struct tagOctetString {
60 [range (0, maxSoHAttributeSize)] UINT16 size;
61 [size_is (size)] BYTE *data;
62 } octetStringVal;
63 } SoHAttributeValue;
64 };
65
66 [object, uuid (35298344-96a6-45e7-9b6b-62ecc6e09920), pointer_default (unique)]
67 interface INapSoHConstructor : IUnknown {
68 HRESULT Initialize ([in] SystemHealthEntityId id,[in] BOOL isRequest);
69 HRESULT AppendAttribute ([in] SoHAttributeType type,[in, switch_is (type)] const SoHAttributeValue *value);
70 HRESULT GetSoH ([out] SoH **soh);
71 HRESULT Validate ([in] const SoH *soh,[in] BOOL isRequest);
72 };
73
74 [object, uuid (FB2FA8B0-2cd5-457d-ABA8-4376f63ea1c0), pointer_default (unique)]
75 interface INapSoHProcessor : IUnknown {
76 HRESULT Initialize ([in] const SoH *soh,[in] BOOL isRequest,[out] SystemHealthEntityId *id);
77 HRESULT FindNextAttribute ([in] UINT16 fromLocation,[in] SoHAttributeType type,[out] UINT16 *attributeLocation);
78 HRESULT GetAttribute ([in] UINT16 attributeLocation,[out] SoHAttributeType *type,[out, switch_is (*type)] SoHAttributeValue **value);
79 HRESULT GetNumberOfAttributes ([out] UINT16 *attributeCount);
80 };
81
82 cpp_quote("EXTERN_C const CLSID CLSID_NapSoHConstructor;")
83 cpp_quote("EXTERN_C const CLSID CLSID_NapSoHProcessor;")
84 cpp_quote("#endif")