include: Add definitions for IWICBitmapScaler.
[wine] / include / iptypes.h
1 /* WINE iptypes.h
2  * Copyright (C) 2003 Juan Lang
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18
19 #ifndef WINE_IPTYPES_H_
20 #define WINE_IPTYPES_H_
21
22 #include <time.h>
23
24 #define MAX_ADAPTER_DESCRIPTION_LENGTH  128
25 #define MAX_ADAPTER_NAME_LENGTH         256
26 #define MAX_ADAPTER_ADDRESS_LENGTH      8
27 #define MAX_HOSTNAME_LEN                128
28 #define MAX_DOMAIN_NAME_LEN             128
29 #define MAX_SCOPE_ID_LEN                256
30
31 #define BROADCAST_NODETYPE              1
32 #define PEER_TO_PEER_NODETYPE           2
33 #define MIXED_NODETYPE                  4
34 #define HYBRID_NODETYPE                 8
35
36 typedef struct {
37     char String[4 * 4];
38 } IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
39
40 typedef struct _IP_ADDR_STRING {
41     struct _IP_ADDR_STRING* Next;
42     IP_ADDRESS_STRING IpAddress;
43     IP_MASK_STRING IpMask;
44     DWORD Context;
45 } IP_ADDR_STRING, *PIP_ADDR_STRING;
46
47 typedef struct _IP_ADAPTER_INFO {
48     struct _IP_ADAPTER_INFO* Next;
49     DWORD ComboIndex;
50     char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
51     char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
52     UINT AddressLength;
53     BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
54     DWORD Index;
55     UINT Type;
56     UINT DhcpEnabled;
57     PIP_ADDR_STRING CurrentIpAddress;
58     IP_ADDR_STRING IpAddressList;
59     IP_ADDR_STRING GatewayList;
60     IP_ADDR_STRING DhcpServer;
61     BOOL HaveWins;
62     IP_ADDR_STRING PrimaryWinsServer;
63     IP_ADDR_STRING SecondaryWinsServer;
64     time_t LeaseObtained;
65     time_t LeaseExpires;
66 } IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
67
68 typedef struct _IP_PER_ADAPTER_INFO {
69     UINT AutoconfigEnabled;
70     UINT AutoconfigActive;
71     PIP_ADDR_STRING CurrentDnsServer;
72     IP_ADDR_STRING DnsServerList;
73 } IP_PER_ADAPTER_INFO, *PIP_PER_ADAPTER_INFO;
74
75 typedef struct {
76     char HostName[MAX_HOSTNAME_LEN + 4] ;
77     char DomainName[MAX_DOMAIN_NAME_LEN + 4];
78     PIP_ADDR_STRING CurrentDnsServer;
79     IP_ADDR_STRING DnsServerList;
80     UINT NodeType;
81     char ScopeId[MAX_SCOPE_ID_LEN + 4];
82     UINT EnableRouting;
83     UINT EnableProxy;
84     UINT EnableDns;
85 } FIXED_INFO, *PFIXED_INFO;
86
87 typedef enum {
88     IpPrefixOriginOther = 0,
89     IpPrefixOriginManual,
90     IpPrefixOriginWellKnown,
91     IpPrefixOriginDhcp,
92     IpPrefixOriginRouterAdvertisement,
93     IpPrefixOriginUnchanged = 16
94 } IP_PREFIX_ORIGIN;
95
96 typedef enum {
97     IpSuffixOriginOther = 0,
98     IpSuffixOriginManual,
99     IpSuffixOriginWellKnown,
100     IpSuffixOriginDhcp,
101     IpSuffixOriginLinkLayerAddress,
102     IpSuffixOriginRandom,
103     IpSuffixOriginUnchanged = 16
104 } IP_SUFFIX_ORIGIN;
105
106 typedef enum {
107     IfOperStatusUp = 1,
108     IfOperStatusDown,
109     IfOperStatusTesting,
110     IfOperStatusUnknown,
111     IfOperStatusDormant,
112     IfOperStatusNotPresent,
113     IfOperStatusLowerLayerDown
114 } IF_OPER_STATUS;
115
116 typedef enum {
117     IpDadStateInvalid = 0,
118     IpDadStateTentative,
119     IpDadStateDuplicate,
120     IpDadStateDeprecated,
121     IpDadStatePreferred
122 } IP_DAD_STATE;
123
124 #ifdef _WINSOCK2API_
125
126 typedef struct _IP_ADAPTER_UNICAST_ADDRESS {
127     union {
128         struct {
129             ULONG Length;
130             DWORD Flags;
131         } DUMMYSTRUCTNAME;
132     } DUMMYUNIONNAME;
133     struct _IP_ADAPTER_UNICAST_ADDRESS *Next;
134     SOCKET_ADDRESS                      Address;
135     IP_PREFIX_ORIGIN                    PrefixOrigin;
136     IP_SUFFIX_ORIGIN                    SuffixOrigin;
137     IP_DAD_STATE                        DadState;
138     ULONG                               ValidLifetime;
139     ULONG                               PreferredLifetime;
140     ULONG                               LeaseLifetime;
141 } IP_ADAPTER_UNICAST_ADDRESS, *PIP_ADAPTER_UNICAST_ADDRESS;
142
143 typedef struct _IP_ADAPTER_ANYCAST_ADDRESS {
144     union {
145         ULONGLONG Alignment;
146         struct {
147             ULONG Length;
148             DWORD Flags;
149         } DUMMYSTRUCTNAME;
150     } DUMMYUNIONNAME;
151     struct _IP_ADAPTER_ANYCAST_ADDRESS *Next;
152     SOCKET_ADDRESS                      Address;
153 } IP_ADAPTER_ANYCAST_ADDRESS, *PIP_ADAPTER_ANYCAST_ADDRESS;
154
155 typedef struct _IP_ADAPTER_MULTICAST_ADDRESS {
156     union {
157         ULONGLONG Alignment;
158         struct {
159             ULONG Length;
160             DWORD Flags;
161         } DUMMYSTRUCTNAME;
162     } DUMMYUNIONNAME;
163     struct _IP_ADAPTER_MULTICAST_ADDRESS *Next;
164     SOCKET_ADDRESS                       Address;
165 } IP_ADAPTER_MULTICAST_ADDRESS, *PIP_ADAPTER_MULTICAST_ADDRESS;
166
167 typedef struct _IP_ADAPTER_DNS_SERVER_ADDRESS {
168     union {
169         ULONGLONG Alignment;
170         struct {
171             ULONG Length;
172             DWORD Reserved;
173         } DUMMYSTRUCTNAME;
174     } DUMMYUNIONNAME;
175     struct _IP_ADAPTER_DNS_SERVER_ADDRESS *Next;
176     SOCKET_ADDRESS                         Address;
177 } IP_ADAPTER_DNS_SERVER_ADDRESS, *PIP_ADAPTER_DNS_SERVER_ADDRESS;
178
179 typedef struct _IP_ADAPTER_PREFIX {
180     union {
181         ULONGLONG Alignment;
182         struct {
183             ULONG Length;
184             DWORD Flags;
185         } DUMMYSTRUCTNAME;
186     } DUMMYUNIONNAME;
187     struct _IP_ADAPTER_PREFIX *Next;
188     SOCKET_ADDRESS             Address;
189     ULONG                      PrefixLength;
190 } IP_ADAPTER_PREFIX, *PIP_ADAPTER_PREFIX;
191
192 typedef struct _IP_ADAPTER_ADDRESSES {
193     union {
194         ULONGLONG Alignment;
195         struct {
196             ULONG Length;
197             DWORD IfIndex;
198         } DUMMYSTRUCTNAME;
199     } DUMMYUNIONNAME;
200     struct _IP_ADAPTER_ADDRESSES   *Next;
201     PCHAR                           AdapterName;
202     PIP_ADAPTER_UNICAST_ADDRESS     FirstUnicastAddress;
203     PIP_ADAPTER_ANYCAST_ADDRESS     FirstAnycastAddress;
204     PIP_ADAPTER_MULTICAST_ADDRESS   FirstMulticastAddress;
205     PIP_ADAPTER_DNS_SERVER_ADDRESS  FirstDnsServerAddress;
206     PWCHAR                          DnsSuffix;
207     PWCHAR                          Description;
208     PWCHAR                          FriendlyName;
209     BYTE                            PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
210     DWORD                           PhysicalAddressLength;
211     DWORD                           Flags;
212     DWORD                           Mtu;
213     DWORD                           IfType;
214     IF_OPER_STATUS                  OperStatus;
215     DWORD                           Ipv6IfIndex;
216     DWORD                           ZoneIndices[16];
217     PIP_ADAPTER_PREFIX              FirstPrefix;
218 } IP_ADAPTER_ADDRESSES, *PIP_ADAPTER_ADDRESSES;
219
220 #endif /* _WINSOCK2API_ */
221
222 #endif /* WINE_IPTYPES_H_*/