[PSDK]
[reactos.git] / include / psdk / netcon.h
1 #ifndef __NETCON_H__
2 #define __NETCON_H__
3
4 typedef enum
5 {
6 NCME_DEFAULT = 0
7 }NETCONMGR_ENUM_FLAGS;
8
9 typedef enum
10 {
11 NCCF_NONE = 0,
12 NCCF_ALL_USERS = 0x1,
13 NCCF_ALLOW_DUPLICATION = 0x2,
14 NCCF_ALLOW_REMOVAL = 0x4,
15 NCCF_ALLOW_RENAME = 0x8,
16 NCCF_SHOW_ICON = 0x10,
17 NCCF_INCOMING_ONLY = 0x20,
18 NCCF_OUTGOING_ONLY = 0x40,
19 NCCF_BRANDED = 0x80,
20 NCCF_SHARED = 0x100,
21 NCCF_BRIDGED = 0x200,
22 NCCF_FIREWALLED = 0x400,
23 NCCF_DEFAULT = 0x800,
24 NCCF_HOMENET_CAPABLE = 0x1000,
25 NCCF_SHARED_PRIVATE = 0x2000,
26 NCCF_QUARANTINED = 0x4000,
27 NCCF_RESERVED = 0x8000,
28 NCCF_BLUETOOTH_MASK = 0xf0000,
29 NCCF_LAN_MASK = 0xf00000
30 }NETCON_CHARACTERISTIC_FLAGS;
31
32
33 typedef enum
34 {
35 NCS_DISCONNECTED = 0,
36 NCS_CONNECTING = NCS_DISCONNECTED + 1,
37 NCS_CONNECTED = NCS_CONNECTING + 1,
38 NCS_DISCONNECTING = NCS_CONNECTED + 1,
39 NCS_HARDWARE_NOT_PRESENT = NCS_DISCONNECTING + 1,
40 NCS_HARDWARE_DISABLED = NCS_HARDWARE_NOT_PRESENT + 1,
41 NCS_HARDWARE_MALFUNCTION = NCS_HARDWARE_DISABLED + 1,
42 NCS_MEDIA_DISCONNECTED = NCS_HARDWARE_MALFUNCTION + 1,
43 NCS_AUTHENTICATING = NCS_MEDIA_DISCONNECTED + 1,
44 NCS_AUTHENTICATION_SUCCEEDED= NCS_AUTHENTICATING + 1,
45 NCS_AUTHENTICATION_FAILED = NCS_AUTHENTICATION_SUCCEEDED + 1,
46 NCS_INVALID_ADDRESS = NCS_AUTHENTICATION_FAILED + 1,
47 NCS_CREDENTIALS_REQUIRED = NCS_INVALID_ADDRESS + 1
48 }NETCON_STATUS;
49
50 typedef enum
51 {
52 NCT_DIRECT_CONNECT = 0,
53 NCT_INBOUND = NCT_DIRECT_CONNECT + 1,
54 NCT_INTERNET = NCT_INBOUND + 1,
55 NCT_LAN = NCT_INTERNET + 1,
56 NCT_PHONE = NCT_LAN + 1,
57 NCT_TUNNEL = NCT_PHONE + 1,
58 NCT_BRIDGE = NCT_TUNNEL + 1
59 }NETCON_TYPE;
60
61
62 typedef enum
63 {
64 NCM_NONE = 0,
65 NCM_DIRECT = NCM_NONE + 1,
66 NCM_ISDN = NCM_DIRECT + 1,
67 NCM_LAN = NCM_ISDN + 1,
68 NCM_PHONE = NCM_LAN + 1,
69 NCM_TUNNEL = NCM_PHONE + 1,
70 NCM_PPPOE = NCM_TUNNEL + 1,
71 NCM_BRIDGE = NCM_PPPOE + 1,
72 NCM_SHAREDACCESSHOST_LAN = NCM_BRIDGE + 1,
73 NCM_SHAREDACCESSHOST_RAS = NCM_SHAREDACCESSHOST_LAN + 1
74 }NETCON_MEDIATYPE;
75
76
77 typedef struct tagNETCON_PROPERTIES
78 {
79 GUID guidId;
80 LPWSTR pszwName;
81 LPWSTR pszwDeviceName;
82 NETCON_STATUS Status;
83 NETCON_MEDIATYPE MediaType;
84 DWORD dwCharacter;
85 CLSID clsidThisObject;
86 CLSID clsidUiObject;
87 }NETCON_PROPERTIES;
88
89
90 #undef INTERFACE
91 #define INTERFACE INetConnection
92 DECLARE_INTERFACE_(INetConnection, IUnknown)
93 {
94 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void **ppv) PURE;
95 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
96 STDMETHOD_(ULONG,Release) (THIS) PURE;
97 STDMETHOD_(HRESULT,Connect) (THIS) PURE;
98 STDMETHOD_(HRESULT,Disconnect) (THIS) PURE;
99 STDMETHOD_(HRESULT,Delete) (THIS) PURE;
100 STDMETHOD_(HRESULT,Duplicate)(THIS_ LPCWSTR pszwDuplicateName, INetConnection **ppCon) PURE;
101 STDMETHOD_(HRESULT,GetProperties) (THIS_ NETCON_PROPERTIES **ppProps) PURE;
102 STDMETHOD_(HRESULT,GetUiObjectClassId) (THIS_ CLSID *pclsid) PURE;
103 STDMETHOD_(HRESULT,Rename) (THIS_ LPCWSTR pszwNewName) PURE;
104 };
105 #undef INTERFACE
106
107 #if !defined(__cplusplus) || defined(CINTERFACE)
108 /*** IUnknown methods ***/
109 #define INetConnection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
110 #define INetConnection_AddRef(p) (p)->lpVtbl->AddRef(p)
111 #define INetConnection_Release(p) (p)->lpVtbl->Release(p)
112 #define INetConnection_Connect(p) (p)->lpVtbl->Connect(p)
113 #define INetConnection_Disconnect(p) (p)->lpVtbl->Disconnect(p)
114 #define INetConnection_Delete(p) (p)->lpVtbl->Delete(p)
115 #define INetConnection_Duplicate(p,a,b) (p)->lpVtbl->Duplicate(p,a,b)
116 #define INetConnection_GetProperties(p,a) (p)->lpVtbl->GetProperties(p,a)
117 #define INetConnection_GetUiObjectClassId(p,a) (p)->lpVtbl->GetUiObjectClassId(p,a)
118 #define INetConnection_Rename(p,a) (p)->lpVtbl->Rename(p,a)
119 #endif
120
121 EXTERN_C const IID IID_INetConnection;
122
123
124 #undef INTERFACE
125 #define INTERFACE IEnumNetConnection
126 DECLARE_INTERFACE_(IEnumNetConnection, IUnknown)
127 {
128 STDMETHOD(QueryInterface) (THIS_ REFIID riid, void **ppv) PURE;
129 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
130 STDMETHOD_(ULONG,Release) (THIS) PURE;
131 STDMETHOD(Next)(THIS_ ULONG celt, INetConnection **rgelt, ULONG *pceltFetched) PURE;
132 STDMETHOD(Skip) (THIS_ ULONG celt) PURE;
133 STDMETHOD(Reset) (THIS) PURE;
134 STDMETHOD(Clone) (THIS_ IEnumNetConnection **ppenum) PURE;
135 };
136 #undef INTERFACE
137
138 EXTERN_C const IID IID_IEnumNetConnection;
139
140 #if !defined(__cplusplus) || defined(CINTERFACE)
141 #define IEnumNetConnection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
142 #define IEnumNetConnection_AddRef(p) (p)->lpVtbl->AddRef(p)
143 #define IEnumNetConnection_Release(p) (p)->lpVtbl->Release(p)
144 #define IEnumNetConnection_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
145 #define IEnumNetConnection_Skip(p,a) (p)->lpVtbl->Skip(p,a)
146 #define IEnumNetConnection_Reset(p) (p)->lpVtbl->Reset(p)
147 #define IEnumNetConnection_Clone(p,a) (p)->lpVtbl->Clone(p,a)
148 #endif
149
150 #undef INTERFACE
151 #define INTERFACE INetConnectionManager
152 DECLARE_INTERFACE_(INetConnectionManager, IUnknown)
153 {
154 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void **ppv) PURE;
155 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
156 STDMETHOD_(ULONG,Release) (THIS) PURE;
157 STDMETHOD_(HRESULT,EnumConnections) (THIS_ NETCONMGR_ENUM_FLAGS Flags, IEnumNetConnection **ppEnum) PURE;
158 };
159 #undef INTERFACE
160
161 #if !defined(__cplusplus) || defined(CINTERFACE)
162 #define INetConnectionManager_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
163 #define INetConnectionManager_AddRef(p) (p)->lpVtbl->AddRef(p)
164 #define INetConnectionManager_Release(p) (p)->lpVtbl->Release(p)
165 #define INetConnectionManager_EnumConnections(p,a,b) (p)->lpVtbl->EnumConnections(p,a,b)
166 #endif
167
168 EXTERN_C const CLSID CLSID_ConnectionManager;
169 EXTERN_C const IID IID_INetConnectionManager;
170
171 typedef enum
172 {
173 NCUC_DEFAULT = 0,
174 NCUC_NO_UI = 1,
175 NCUC_ENABLE_DISABLE = 2
176 }NETCONUI_CONNECT_FLAGS;
177
178 #undef INTERFACE
179 #define INTERFACE INetConnectionConnectUi
180 DECLARE_INTERFACE_(INetConnectionConnectUi, IUnknown)
181 {
182 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void **ppv) PURE;
183 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
184 STDMETHOD_(ULONG,Release) (THIS) PURE;
185 STDMETHOD_(HRESULT,SetConnection)(THIS_ INetConnection* pCon) PURE;
186 STDMETHOD_(HRESULT,Connect) (THIS_ HWND hwndParent, DWORD dwFlags) PURE;
187 STDMETHOD_(HRESULT,Disconnect) (THIS_ HWND hwndParent, DWORD dwFlags);
188 };
189
190 #if !defined(__cplusplus) || defined(CINTERFACE)
191 #define INetConnectionConnectUi_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
192 #define INetConnectionConnectUi_AddRef(p) (p)->lpVtbl->AddRef(p)
193 #define INetConnectionConnectUi_Release(p) (p)->lpVtbl->Release(p)
194 #define INetConnectionConnectUi_SetConnection(p,a) (p)->lpVtbl->SetConnection(p,a)
195 #define INetConnectionConnectUi_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b)
196 #define INetConnectionConnectUi_Disconnect(p,a,b) (p)->lpVtbl->Disconnect(p,a,b)
197 #endif
198
199 EXTERN_C const IID IID_INetConnectionConnectUi;
200
201 #undef INTERFACE
202 #define INTERFACE INetConnectionPropertyUi
203 DECLARE_INTERFACE_(INetConnectionPropertyUi, IUnknown)
204 {
205 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void **ppv) PURE;
206 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
207 STDMETHOD_(ULONG,Release) (THIS) PURE;
208 STDMETHOD_(HRESULT, SetConnection) (THIS_ INetConnection *pCon) PURE;
209 STDMETHOD_(HRESULT, AddPages) (THIS_ HWND hwndParent, LPFNADDPROPSHEETPAGE pfnAddPage, LPARAM lParam) PURE;
210
211
212 };
213 #undef INTERFACE
214
215 #if !defined(__cplusplus) || defined(CINTERFACE)
216 #define INetConnectionPropertyUi_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
217 #define INetConnectionPropertyUi_AddRef(p) (p)->lpVtbl->AddRef(p)
218 #define INetConnectionPropertyUi_Release(p) (p)->lpVtbl->Release(p)
219 #define INetConnectionPropertyUi_SetConnection(p,a) (p)->lpVtbl->SetConnection(p,a)
220 #define INetConnectionPropertyUi_AddPages(p,a,b,c) (p)->lpVtbl->AddPages(p,a,b,c)
221 #endif
222
223 EXTERN_C const IID IID_INetConnectionPropertyUi;
224
225 #undef INTERFACE
226 #define INTERFACE INetConnectionPropertyUi2
227 DECLARE_INTERFACE_(INetConnectionPropertyUi2, IUnknown)
228 {
229 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void **ppv) PURE;
230 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
231 STDMETHOD_(ULONG,Release) (THIS) PURE;
232 STDMETHOD_(HRESULT, SetConnection) (THIS_ INetConnection *pCon) PURE;
233 STDMETHOD_(HRESULT, AddPages) (THIS_ HWND hwndParent, LPFNADDPROPSHEETPAGE pfnAddPage, LPARAM lParam) PURE;
234 STDMETHOD_(HRESULT, GetIcon) (THIS_ DWORD dwSize, HICON *phIcon) PURE;
235 };
236 #undef INTERFACE
237
238 #if !defined(__cplusplus) || defined(CINTERFACE)
239 #define INetConnectionPropertyUi2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
240 #define INetConnectionPropertyUi2_AddRef(p) (p)->lpVtbl->AddRef(p)
241 #define INetConnectionPropertyUi2_Release(p) (p)->lpVtbl->Release(p)
242 #define INetConnectionPropertyUi2_SetConnection(p,a) (p)->lpVtbl->SetConnection(p,a)
243 #define INetConnectionPropertyUi2_AddPages(p,a,b,c) (p)->lpVtbl->AddPages(p,a,b,c)
244 #define INetConnectionPropertyUi2_GetIcon(p,a,b) (p)->lpVtbl->GetIcon(p,a,b)
245 #endif
246
247
248 EXTERN_C const IID IID_INetConnectionPropertyUi2;
249
250
251 VOID WINAPI NcFreeNetconProperties (NETCON_PROPERTIES* pProps);
252
253 #endif