Jeff Latimer | af62bcb | 2007-05-11 22:53:32 +1000 | [diff] [blame] | 1 | /* |
| 2 | * Copyright 2007 Jeff Latimer |
| 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 | * |
| 20 | * The firewall management interface |
| 21 | * |
| 22 | */ |
| 23 | |
| 24 | import "icftypes.idl"; |
| 25 | import "oaidl.idl"; |
| 26 | |
| 27 | [ |
| 28 | object, |
| 29 | uuid(A6207B2E-7CDD-426A-951E-5E1CBC5AFEAD), |
| 30 | dual |
| 31 | ] |
| 32 | interface INetFwIcmpSettings : IDispatch |
| 33 | { |
| 34 | [id(1), propget] |
| 35 | HRESULT AllowOutboundDestinationUnreachable([out, retval] VARIANT_BOOL* allow); |
| 36 | |
| 37 | [id(1), propput] |
| 38 | HRESULT AllowOutboundDestinationUnreachable( [in] VARIANT_BOOL allow ); |
| 39 | |
| 40 | [id(2), propget] |
| 41 | HRESULT AllowRedirect( [out, retval] VARIANT_BOOL* allow ); |
| 42 | |
| 43 | [id(2), propput] |
| 44 | HRESULT AllowRedirect( [in] VARIANT_BOOL allow ); |
| 45 | |
| 46 | [id(3), propget] |
| 47 | HRESULT AllowInboundEchoRequest( [out, retval] VARIANT_BOOL* allow ); |
| 48 | |
| 49 | [id(3), propput] |
| 50 | HRESULT AllowInboundEchoRequest( [in] VARIANT_BOOL allow ); |
| 51 | |
| 52 | [id(4), propget] |
| 53 | HRESULT AllowOutboundTimeExceeded( [out, retval] VARIANT_BOOL* allow ); |
| 54 | |
| 55 | [id(4), propput] |
| 56 | HRESULT AllowOutboundTimeExceeded( [in] VARIANT_BOOL allow ); |
| 57 | |
| 58 | [id(5), propget] |
| 59 | HRESULT AllowOutboundParameterProblem( [out, retval] VARIANT_BOOL* allow ); |
| 60 | |
| 61 | [id(5), propput] |
| 62 | HRESULT AllowOutboundParameterProblem( [in] VARIANT_BOOL allow ); |
| 63 | |
| 64 | [id(6), propget] |
| 65 | HRESULT AllowOutboundSourceQuench( [out, retval] VARIANT_BOOL* allow ); |
| 66 | |
| 67 | [id(6), propput] |
| 68 | HRESULT AllowOutboundSourceQuench( [in] VARIANT_BOOL allow ); |
| 69 | |
| 70 | [id(7), propget] |
| 71 | HRESULT AllowInboundRouterRequest( [out, retval] VARIANT_BOOL* allow ); |
| 72 | |
| 73 | [id(7), propput] |
| 74 | HRESULT AllowInboundRouterRequest( [in] VARIANT_BOOL allow ); |
| 75 | |
| 76 | [id(8), propget] |
| 77 | HRESULT AllowInboundTimestampRequest( [out, retval] VARIANT_BOOL* allow ); |
| 78 | |
| 79 | [id(8), propput] |
| 80 | HRESULT AllowInboundTimestampRequest( [in] VARIANT_BOOL allow ); |
| 81 | |
| 82 | [id(9), propget] |
| 83 | HRESULT AllowInboundMaskRequest( [out, retval] VARIANT_BOOL* allow ); |
| 84 | |
| 85 | [id(9), propput] |
| 86 | HRESULT AllowInboundMaskRequest( [in] VARIANT_BOOL allow ); |
| 87 | |
| 88 | [id(10), propget] |
| 89 | HRESULT AllowOutboundPacketTooBig( [out, retval] VARIANT_BOOL* allow ); |
| 90 | |
| 91 | [id(10), propput] |
| 92 | HRESULT AllowOutboundPacketTooBig( [in] VARIANT_BOOL allow ); |
| 93 | } |
| 94 | |
| 95 | [ |
| 96 | object, |
| 97 | uuid(E0483BA0-47FF-4D9C-A6D6-7741D0B195F7), |
| 98 | dual |
| 99 | ] |
| 100 | interface INetFwOpenPort : IDispatch |
| 101 | { |
| 102 | [id(1), propget] |
| 103 | HRESULT Name( [out, retval] BSTR* name ); |
| 104 | |
| 105 | [id(1), propput] |
| 106 | HRESULT Name( [in] BSTR name ); |
| 107 | |
| 108 | [id(2), propget] |
| 109 | HRESULT IpVersion( [out, retval] NET_FW_IP_VERSION* ipVersion ); |
| 110 | |
| 111 | [id(2), propput] |
| 112 | HRESULT IpVersion( [in] NET_FW_IP_VERSION ipVersion ); |
| 113 | |
| 114 | [id(3), propget] |
| 115 | HRESULT Protocol( [out, retval] NET_FW_IP_PROTOCOL* ipProtocol ); |
| 116 | |
| 117 | [id(3), propput] |
| 118 | HRESULT Protocol( [in] NET_FW_IP_PROTOCOL ipProtocol ); |
| 119 | |
| 120 | [id(4), propget] |
| 121 | HRESULT Port( [out, retval] LONG* portNumber ); |
| 122 | |
| 123 | [id(4), propput] |
| 124 | HRESULT Port( [in] LONG portNumber ); |
| 125 | |
| 126 | [id(5), propget] |
| 127 | HRESULT Scope( [out, retval] NET_FW_SCOPE* scope ); |
| 128 | |
| 129 | [id(5), propput] |
| 130 | HRESULT Scope( [in] NET_FW_SCOPE scope ); |
| 131 | |
| 132 | [id(6), propget] |
| 133 | HRESULT RemoteAddresses( [out, retval] BSTR* remoteAddrs ); |
| 134 | |
| 135 | [id(6), propput] |
| 136 | HRESULT RemoteAddresses( [in] BSTR remoteAddrs ); |
| 137 | |
| 138 | [id(7), propget] |
| 139 | HRESULT Enabled( [out, retval] VARIANT_BOOL* enabled ); |
| 140 | |
| 141 | [id(7), propput] |
| 142 | HRESULT Enabled( [in] VARIANT_BOOL enabled ); |
| 143 | |
| 144 | [id(8), propget] |
| 145 | HRESULT BuiltIn( [out, retval] VARIANT_BOOL* builtIn ); |
| 146 | } |
| 147 | |
| 148 | [ |
| 149 | object, |
| 150 | uuid(C0E9D7FA-E07E-430A-B19A-090CE82D92E2), |
| 151 | dual |
| 152 | ] |
| 153 | interface INetFwOpenPorts : IDispatch |
| 154 | { |
| 155 | [id(1), propget] |
| 156 | HRESULT Count( [out, retval] long* count ); |
| 157 | |
| 158 | [id(2)] |
| 159 | HRESULT Add( [in] INetFwOpenPort* port ); |
| 160 | |
| 161 | [id(3)] |
| 162 | HRESULT Remove( [in] LONG portNumber, [in] NET_FW_IP_PROTOCOL ipProtocol ); |
| 163 | |
| 164 | [id(4)] |
| 165 | HRESULT Item( [in] LONG portNumber, [in] NET_FW_IP_PROTOCOL ipProtocol, |
| 166 | [out, retval] INetFwOpenPort** openPort ); |
| 167 | |
| 168 | [id(DISPID_NEWENUM), propget, restricted] |
| 169 | HRESULT _NewEnum( [out, retval] IUnknown** newEnum ); |
| 170 | } |
| 171 | |
| 172 | [ |
| 173 | object, |
| 174 | uuid(79FD57C8-908E-4A36-9888-D5B3F0A444CF), |
| 175 | dual |
| 176 | ] |
| 177 | interface INetFwService : IDispatch |
| 178 | { |
| 179 | [id(1), propget] |
| 180 | HRESULT Name( [out, retval] BSTR* name ); |
| 181 | |
| 182 | [id(2), propget] |
| 183 | HRESULT Type( [out, retval] NET_FW_SERVICE_TYPE* type ); |
| 184 | |
| 185 | [id(3), propget] |
| 186 | HRESULT Customized( [out, retval] VARIANT_BOOL* customized ); |
| 187 | |
| 188 | [id(4), propget] |
| 189 | HRESULT IpVersion( [out, retval] NET_FW_IP_VERSION* ipVersion ); |
| 190 | |
| 191 | [id(4), propput] |
| 192 | HRESULT IpVersion( [in] NET_FW_IP_VERSION ipVersion ); |
| 193 | |
| 194 | [id(5), propget] |
| 195 | HRESULT Scope( [out, retval] NET_FW_SCOPE* scope ); |
| 196 | |
| 197 | [id(5), propput] |
| 198 | HRESULT Scope( [in] NET_FW_SCOPE scope ); |
| 199 | |
| 200 | [id(6), propget] |
| 201 | HRESULT RemoteAddresses( [out, retval] BSTR* remoteAddrs ); |
| 202 | |
| 203 | [id(6), propput] |
| 204 | HRESULT RemoteAddresses( [in] BSTR remoteAddrs ); |
| 205 | |
| 206 | [id(7), propget] |
| 207 | HRESULT Enabled( [out, retval] VARIANT_BOOL* enabled ); |
| 208 | |
| 209 | [id(7), propput] |
| 210 | HRESULT Enabled( [in] VARIANT_BOOL enabled ); |
| 211 | |
| 212 | [id(8), propget] |
| 213 | HRESULT GloballyOpenPorts( [out, retval] INetFwOpenPorts** openPorts ); |
| 214 | } |
| 215 | |
| 216 | [ |
| 217 | object, |
| 218 | uuid(79649BB4-903E-421B-94C9-79848E79F6EE), |
| 219 | dual |
| 220 | ] |
| 221 | interface INetFwServices : IDispatch |
| 222 | { |
| 223 | [id(1), propget] |
| 224 | HRESULT Count( [out, retval] long* count ); |
| 225 | |
| 226 | [id(2)] |
| 227 | HRESULT Item( [in] NET_FW_SERVICE_TYPE svcType, |
| 228 | [out, retval] INetFwService** service ); |
| 229 | |
| 230 | [id(DISPID_NEWENUM), propget, restricted] |
| 231 | HRESULT _NewEnum( [out, retval] IUnknown** newEnum ); |
| 232 | } |
| 233 | |
| 234 | [ |
| 235 | object, |
| 236 | uuid(B5E64FFA-C2C5-444E-A301-FB5E00018050), |
| 237 | dual |
| 238 | ] |
| 239 | interface INetFwAuthorizedApplication : IDispatch |
| 240 | { |
| 241 | [id(1), propget] |
| 242 | HRESULT Name( [out, retval] BSTR* name ); |
| 243 | |
| 244 | [id(1), propput] |
| 245 | HRESULT Name( [in] BSTR name ); |
| 246 | |
| 247 | [id(2), propget] |
| 248 | HRESULT ProcessImageFileName( [out, retval] BSTR* imageFileName ); |
| 249 | |
| 250 | [id(2), propput] |
| 251 | HRESULT ProcessImageFileName( [in] BSTR imageFileName ); |
| 252 | |
| 253 | [id(3), propget] |
| 254 | HRESULT IpVersion( [out, retval] NET_FW_IP_VERSION* ipVersion ); |
| 255 | |
| 256 | [id(3), propput] |
| 257 | HRESULT IpVersion( [in] NET_FW_IP_VERSION ipVersion ); |
| 258 | |
| 259 | [id(4), propget] |
| 260 | HRESULT Scope( [out, retval] NET_FW_SCOPE* scope ); |
| 261 | |
| 262 | [id(4), propput] |
| 263 | HRESULT Scope( [in] NET_FW_SCOPE scope ); |
| 264 | |
| 265 | [id(5), propget] |
| 266 | HRESULT RemoteAddresses( [out, retval] BSTR* remoteAddrs ); |
| 267 | |
| 268 | [id(5), propput] |
| 269 | HRESULT RemoteAddresses( [in] BSTR remoteAddrs ); |
| 270 | |
| 271 | [id(6), propget] |
| 272 | HRESULT Enabled( [out, retval] VARIANT_BOOL* enabled ); |
| 273 | |
| 274 | [id(6), propput] |
| 275 | HRESULT Enabled( [in] VARIANT_BOOL enabled ); |
| 276 | } |
| 277 | |
| 278 | [ |
| 279 | object, |
| 280 | uuid(D4BECDDF-6F73-4A83-B832-9C66874CD20E), |
| 281 | dual |
| 282 | ] |
| 283 | interface INetFwRemoteAdminSettings : IDispatch |
| 284 | { |
| 285 | [id(1), propget] |
| 286 | HRESULT IpVersion( [out, retval] NET_FW_IP_VERSION* ipVersion ); |
| 287 | |
| 288 | [id(1), propput] |
| 289 | HRESULT IpVersion( [in] NET_FW_IP_VERSION ipVersion ); |
| 290 | |
| 291 | [id(2), propget] |
| 292 | HRESULT Scope( [out, retval] NET_FW_SCOPE* scope ); |
| 293 | |
| 294 | [id(2), propput] |
| 295 | HRESULT Scope( [in] NET_FW_SCOPE scope ); |
| 296 | |
| 297 | [id(3), propget] |
| 298 | HRESULT RemoteAddresses( [out, retval] BSTR* remoteAddrs ); |
| 299 | |
| 300 | [id(3), propput] |
| 301 | HRESULT RemoteAddresses( [in] BSTR remoteAddrs ); |
| 302 | |
| 303 | [id(4), propget] |
| 304 | HRESULT Enabled( [out, retval] VARIANT_BOOL* enabled ); |
| 305 | |
| 306 | [id(4), propput] |
| 307 | HRESULT Enabled( [in] VARIANT_BOOL enabled ); |
| 308 | } |
| 309 | |
| 310 | |
| 311 | [ |
| 312 | object, |
| 313 | uuid(644EFD52-CCF9-486C-97A2-39F352570B30), |
| 314 | dual |
| 315 | ] |
| 316 | interface INetFwAuthorizedApplications : IDispatch |
| 317 | { |
| 318 | [id(1), propget] |
| 319 | HRESULT Count( [out, retval] long* count ); |
| 320 | |
| 321 | [id(2)] |
| 322 | HRESULT Add( [in] INetFwAuthorizedApplication* app ); |
| 323 | |
| 324 | [id(3)] |
| 325 | HRESULT Remove( [in] BSTR imageFileName ); |
| 326 | |
| 327 | [id(4)] |
| 328 | HRESULT Item( [in] BSTR imageFileName, |
| 329 | [out, retval] INetFwAuthorizedApplication** app ); |
| 330 | |
| 331 | [id(DISPID_NEWENUM), propget, restricted] |
| 332 | HRESULT _NewEnum( [out, retval] IUnknown** newEnum ); |
| 333 | } |
| 334 | |
| 335 | [ |
| 336 | object, |
| 337 | uuid(174A0DDA-E9F9-449D-993B-21AB667CA456), |
| 338 | dual |
| 339 | ] |
| 340 | interface INetFwProfile : IDispatch |
| 341 | { |
| 342 | [id(1), propget] |
| 343 | HRESULT Type( [out, retval] NET_FW_PROFILE_TYPE* type ); |
| 344 | |
| 345 | [id(2), propget] |
| 346 | HRESULT FirewallEnabled( [out, retval] VARIANT_BOOL* enabled ); |
| 347 | |
| 348 | [id(2), propput] |
| 349 | HRESULT FirewallEnabled( [in] VARIANT_BOOL enabled ); |
| 350 | |
| 351 | [id(3), propget] |
| 352 | HRESULT ExceptionsNotAllowed( [out, retval] VARIANT_BOOL* notAllowed ); |
| 353 | |
| 354 | [id(3), propput] |
| 355 | HRESULT ExceptionsNotAllowed( [in] VARIANT_BOOL notAllowed ); |
| 356 | |
| 357 | [id(4), propget] |
| 358 | HRESULT NotificationsDisabled( [out, retval] VARIANT_BOOL* disabled ); |
| 359 | |
| 360 | [id(4), propput] |
| 361 | HRESULT NotificationsDisabled( [in] VARIANT_BOOL disabled ); |
| 362 | |
| 363 | [id(5), propget] |
| 364 | HRESULT UnicastResponsesToMulticastBroadcastDisabled( [out, retval] VARIANT_BOOL* disabled ); |
| 365 | |
| 366 | [id(5), propput] |
| 367 | HRESULT UnicastResponsesToMulticastBroadcastDisabled( [in] VARIANT_BOOL disabled ); |
| 368 | |
| 369 | [id(6), propget] |
| 370 | HRESULT RemoteAdminSettings( [out, retval] INetFwRemoteAdminSettings** remoteAdminSettings ); |
| 371 | |
| 372 | [id(7), propget] |
| 373 | HRESULT IcmpSettings( [out, retval] INetFwIcmpSettings** icmpSettings ); |
| 374 | |
| 375 | [id(8), propget] |
| 376 | HRESULT GloballyOpenPorts( [out, retval] INetFwOpenPorts** openPorts ); |
| 377 | |
| 378 | [id(9), propget] |
| 379 | HRESULT Services( [out, retval] INetFwServices** services ); |
| 380 | |
| 381 | [id(10), propget] |
| 382 | HRESULT AuthorizedApplications( [out, retval] INetFwAuthorizedApplications** apps ); |
| 383 | } |
| 384 | |
| 385 | [ |
| 386 | object, |
| 387 | uuid(D46D2478-9AC9-4008-9DC7-5563CE5536CC), |
| 388 | dual |
| 389 | ] |
| 390 | interface INetFwPolicy : IDispatch |
| 391 | { |
| 392 | [id(1), propget] |
| 393 | HRESULT CurrentProfile( [out, retval] INetFwProfile** profile ); |
| 394 | |
| 395 | [id(2)] |
| 396 | HRESULT GetProfileByType( [in] NET_FW_PROFILE_TYPE profileType, |
| 397 | [out, retval] INetFwProfile** profile ); |
| 398 | } |
| 399 | |
| 400 | [ |
| 401 | object, |
| 402 | uuid(F7898AF5-CAC4-4632-A2EC-DA06E5111AF2), |
| 403 | dual |
| 404 | ] |
| 405 | interface INetFwMgr : IDispatch |
| 406 | { |
| 407 | [id(1), propget] |
| 408 | HRESULT LocalPolicy( [out, retval] INetFwPolicy** localPolicy ); |
| 409 | |
| 410 | [id(2), propget] |
| 411 | HRESULT CurrentProfileType( [out, retval] NET_FW_PROFILE_TYPE* profileType ); |
| 412 | |
| 413 | [id(3)] |
| 414 | HRESULT RestoreDefaults(); |
| 415 | |
| 416 | [id(4)] |
| 417 | HRESULT IsPortAllowed( [in] BSTR imageFileName, [in] NET_FW_IP_VERSION ipVersion, |
| 418 | [in] LONG portNumber, [in] BSTR localAddress, |
| 419 | [in] NET_FW_IP_PROTOCOL ipProtocol, [out] VARIANT* allowed, |
| 420 | [out] VARIANT* restricted ); |
| 421 | |
| 422 | [id(5)] |
| 423 | HRESULT IsIcmpTypeAllowed( [in] NET_FW_IP_VERSION ipVersion, [in] BSTR localAddress, |
| 424 | [in] BYTE type, [out] VARIANT* allowed, |
| 425 | [out] VARIANT* restricted ); |
| 426 | } |
| 427 | |
| 428 | [ |
| 429 | uuid(DB4F3345-3EF8-45ED-B976-25A6D3B81B71), |
| 430 | version(1.0) |
| 431 | ] |
| 432 | library NetFwPublicTypeLib |
| 433 | { |
| 434 | importlib("stdole2.tlb"); |
| 435 | interface INetFwRemoteAdminSettings; |
| 436 | interface INetFwIcmpSettings; |
| 437 | interface INetFwOpenPort; |
| 438 | interface INetFwOpenPorts; |
| 439 | interface INetFwService; |
| 440 | interface INetFwServices; |
| 441 | interface INetFwAuthorizedApplication; |
| 442 | interface INetFwAuthorizedApplications; |
| 443 | interface INetFwProfile; |
| 444 | interface INetFwPolicy; |
| 445 | interface INetFwMgr; |
| 446 | |
| 447 | [ |
| 448 | uuid(0CA545C6-37AD-4A6C-BF92-9F7610067EF5) |
| 449 | ] |
| 450 | coclass NetFwOpenPort |
| 451 | { |
| 452 | [default] interface INetFwOpenPort; |
| 453 | } |
| 454 | |
| 455 | [ |
| 456 | uuid(EC9846B3-2762-4A6B-A214-6ACB603462D2) |
| 457 | ] |
| 458 | coclass NetFwAuthorizedApplication |
| 459 | { |
| 460 | [default] interface INetFwAuthorizedApplication; |
| 461 | } |
| 462 | |
| 463 | [ |
| 464 | uuid(304CE942-6E39-40D8-943A-B913C40C9CD4) |
| 465 | ] |
| 466 | coclass NetFwMgr |
| 467 | { |
| 468 | [default] interface INetFwMgr; |
| 469 | } |
| 470 | } |