text: /*** Autogenerated by WIDL 3.1 from include/netfw.idl - Do not edit ***/
  
  #ifndef __REQUIRED_RPCNDR_H_VERSION__
  #define __REQUIRED_RPCNDR_H_VERSION__ 475
  #endif
  
  #include <rpc.h>
  #include <rpcndr.h>
  
  #ifndef COM_NO_WINDOWS_H
  #include <windows.h>
  #include <ole2.h>
  #endif
  
  #ifndef __netfw_h__
  #define __netfw_h__
  
  /* Forward declarations */
  
  #ifndef __INetFwIcmpSettings_FWD_DEFINED__
  #define __INetFwIcmpSettings_FWD_DEFINED__
  typedef interface INetFwIcmpSettings INetFwIcmpSettings;
  #ifdef __cplusplus
  interface INetFwIcmpSettings;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwOpenPort_FWD_DEFINED__
  #define __INetFwOpenPort_FWD_DEFINED__
  typedef interface INetFwOpenPort INetFwOpenPort;
  #ifdef __cplusplus
  interface INetFwOpenPort;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwOpenPorts_FWD_DEFINED__
  #define __INetFwOpenPorts_FWD_DEFINED__
  typedef interface INetFwOpenPorts INetFwOpenPorts;
  #ifdef __cplusplus
  interface INetFwOpenPorts;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwService_FWD_DEFINED__
  #define __INetFwService_FWD_DEFINED__
  typedef interface INetFwService INetFwService;
  #ifdef __cplusplus
  interface INetFwService;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwServices_FWD_DEFINED__
  #define __INetFwServices_FWD_DEFINED__
  typedef interface INetFwServices INetFwServices;
  #ifdef __cplusplus
  interface INetFwServices;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwAuthorizedApplication_FWD_DEFINED__
  #define __INetFwAuthorizedApplication_FWD_DEFINED__
  typedef interface INetFwAuthorizedApplication INetFwAuthorizedApplication;
  #ifdef __cplusplus
  interface INetFwAuthorizedApplication;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwRemoteAdminSettings_FWD_DEFINED__
  #define __INetFwRemoteAdminSettings_FWD_DEFINED__
  typedef interface INetFwRemoteAdminSettings INetFwRemoteAdminSettings;
  #ifdef __cplusplus
  interface INetFwRemoteAdminSettings;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwAuthorizedApplications_FWD_DEFINED__
  #define __INetFwAuthorizedApplications_FWD_DEFINED__
  typedef interface INetFwAuthorizedApplications INetFwAuthorizedApplications;
  #ifdef __cplusplus
  interface INetFwAuthorizedApplications;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwRule_FWD_DEFINED__
  #define __INetFwRule_FWD_DEFINED__
  typedef interface INetFwRule INetFwRule;
  #ifdef __cplusplus
  interface INetFwRule;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwRules_FWD_DEFINED__
  #define __INetFwRules_FWD_DEFINED__
  typedef interface INetFwRules INetFwRules;
  #ifdef __cplusplus
  interface INetFwRules;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwServiceRestriction_FWD_DEFINED__
  #define __INetFwServiceRestriction_FWD_DEFINED__
  typedef interface INetFwServiceRestriction INetFwServiceRestriction;
  #ifdef __cplusplus
  interface INetFwServiceRestriction;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwProfile_FWD_DEFINED__
  #define __INetFwProfile_FWD_DEFINED__
  typedef interface INetFwProfile INetFwProfile;
  #ifdef __cplusplus
  interface INetFwProfile;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwPolicy_FWD_DEFINED__
  #define __INetFwPolicy_FWD_DEFINED__
  typedef interface INetFwPolicy INetFwPolicy;
  #ifdef __cplusplus
  interface INetFwPolicy;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwPolicy2_FWD_DEFINED__
  #define __INetFwPolicy2_FWD_DEFINED__
  typedef interface INetFwPolicy2 INetFwPolicy2;
  #ifdef __cplusplus
  interface INetFwPolicy2;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwMgr_FWD_DEFINED__
  #define __INetFwMgr_FWD_DEFINED__
  typedef interface INetFwMgr INetFwMgr;
  #ifdef __cplusplus
  interface INetFwMgr;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __NetFwOpenPort_FWD_DEFINED__
  #define __NetFwOpenPort_FWD_DEFINED__
  #ifdef __cplusplus
  typedef class NetFwOpenPort NetFwOpenPort;
  #else
  typedef struct NetFwOpenPort NetFwOpenPort;
  #endif /* defined __cplusplus */
  #endif /* defined __NetFwOpenPort_FWD_DEFINED__ */
  
  #ifndef __NetFwAuthorizedApplication_FWD_DEFINED__
  #define __NetFwAuthorizedApplication_FWD_DEFINED__
  #ifdef __cplusplus
  typedef class NetFwAuthorizedApplication NetFwAuthorizedApplication;
  #else
  typedef struct NetFwAuthorizedApplication NetFwAuthorizedApplication;
  #endif /* defined __cplusplus */
  #endif /* defined __NetFwAuthorizedApplication_FWD_DEFINED__ */
  
  #ifndef __NetFwMgr_FWD_DEFINED__
  #define __NetFwMgr_FWD_DEFINED__
  #ifdef __cplusplus
  typedef class NetFwMgr NetFwMgr;
  #else
  typedef struct NetFwMgr NetFwMgr;
  #endif /* defined __cplusplus */
  #endif /* defined __NetFwMgr_FWD_DEFINED__ */
  
  #ifndef __NetFwPolicy2_FWD_DEFINED__
  #define __NetFwPolicy2_FWD_DEFINED__
  #ifdef __cplusplus
  typedef class NetFwPolicy2 NetFwPolicy2;
  #else
  typedef struct NetFwPolicy2 NetFwPolicy2;
  #endif /* defined __cplusplus */
  #endif /* defined __NetFwPolicy2_FWD_DEFINED__ */
  
  /* Headers for imported files */
  
  #include <icftypes.h>
  #include <oaidl.h>
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  /*****************************************************************************
   * INetFwIcmpSettings interface
   */
  #ifndef __INetFwIcmpSettings_INTERFACE_DEFINED__
  #define __INetFwIcmpSettings_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_INetFwIcmpSettings, 0xa6207b2e, 0x7cdd, 0x426a, 0x95,0x1e, 0x5e,0x1c,0xbc,0x5a,0xfe,0xad);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  MIDL_INTERFACE("a6207b2e-7cdd-426a-951e-5e1cbc5afead")
  INetFwIcmpSettings : public IDispatch
  {
      virtual HRESULT STDMETHODCALLTYPE get_AllowOutboundDestinationUnreachable(
          VARIANT_BOOL *allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_AllowOutboundDestinationUnreachable(
          VARIANT_BOOL allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_AllowRedirect(
          VARIANT_BOOL *allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_AllowRedirect(
          VARIANT_BOOL allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_AllowInboundEchoRequest(
          VARIANT_BOOL *allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_AllowInboundEchoRequest(
          VARIANT_BOOL allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_AllowOutboundTimeExceeded(
          VARIANT_BOOL *allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_AllowOutboundTimeExceeded(
          VARIANT_BOOL allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_AllowOutboundParameterProblem(
          VARIANT_BOOL *allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_AllowOutboundParameterProblem(
          VARIANT_BOOL allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_AllowOutboundSourceQuench(
          VARIANT_BOOL *allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_AllowOutboundSourceQuench(
          VARIANT_BOOL allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_AllowInboundRouterRequest(
          VARIANT_BOOL *allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_AllowInboundRouterRequest(
          VARIANT_BOOL allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_AllowInboundTimestampRequest(
          VARIANT_BOOL *allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_AllowInboundTimestampRequest(
          VARIANT_BOOL allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_AllowInboundMaskRequest(
          VARIANT_BOOL *allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_AllowInboundMaskRequest(
          VARIANT_BOOL allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_AllowOutboundPacketTooBig(
          VARIANT_BOOL *allow) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_AllowOutboundPacketTooBig(
          VARIANT_BOOL allow) = 0;
  
  };
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(INetFwIcmpSettings, 0xa6207b2e, 0x7cdd, 0x426a, 0x95,0x1e, 0x5e,0x1c,0xbc,0x5a,0xfe,0xad)
  #endif
  #else
  typedef struct INetFwIcmpSettingsVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          INetFwIcmpSettings *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          INetFwIcmpSettings *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          INetFwIcmpSettings *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          INetFwIcmpSettings *This,
          UINT *pctinfo);
  
      HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
          INetFwIcmpSettings *This,
          UINT iTInfo,
          LCID lcid,
          ITypeInfo **ppTInfo);
  
      HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
          INetFwIcmpSettings *This,
          REFIID riid,
          LPOLESTR *rgszNames,
          UINT cNames,
          LCID lcid,
          DISPID *rgDispId);
  
      HRESULT (STDMETHODCALLTYPE *Invoke)(
          INetFwIcmpSettings *This,
          DISPID dispIdMember,
          REFIID riid,
          LCID lcid,
          WORD wFlags,
          DISPPARAMS *pDispParams,
          VARIANT *pVarResult,
          EXCEPINFO *pExcepInfo,
          UINT *puArgErr);
  
      /*** INetFwIcmpSettings methods ***/
      HRESULT (STDMETHODCALLTYPE *get_AllowOutboundDestinationUnreachable)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL *allow);
  
      HRESULT (STDMETHODCALLTYPE *put_AllowOutboundDestinationUnreachable)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL allow);
  
      HRESULT (STDMETHODCALLTYPE *get_AllowRedirect)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL *allow);
  
      HRESULT (STDMETHODCALLTYPE *put_AllowRedirect)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL allow);
  
      HRESULT (STDMETHODCALLTYPE *get_AllowInboundEchoRequest)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL *allow);
  
      HRESULT (STDMETHODCALLTYPE *put_AllowInboundEchoRequest)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL allow);
  
      HRESULT (STDMETHODCALLTYPE *get_AllowOutboundTimeExceeded)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL *allow);
  
      HRESULT (STDMETHODCALLTYPE *put_AllowOutboundTimeExceeded)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL allow);
  
      HRESULT (STDMETHODCALLTYPE *get_AllowOutboundParameterProblem)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL *allow);
  
      HRESULT (STDMETHODCALLTYPE *put_AllowOutboundParameterProblem)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL allow);
  
      HRESULT (STDMETHODCALLTYPE *get_AllowOutboundSourceQuench)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL *allow);
  
      HRESULT (STDMETHODCALLTYPE *put_AllowOutboundSourceQuench)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL allow);
  
      HRESULT (STDMETHODCALLTYPE *get_AllowInboundRouterRequest)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL *allow);
  
      HRESULT (STDMETHODCALLTYPE *put_AllowInboundRouterRequest)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL allow);
  
      HRESULT (STDMETHODCALLTYPE *get_AllowInboundTimestampRequest)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL *allow);
  
      HRESULT (STDMETHODCALLTYPE *put_AllowInboundTimestampRequest)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL allow);
  
      HRESULT (STDMETHODCALLTYPE *get_AllowInboundMaskRequest)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL *allow);
  
      HRESULT (STDMETHODCALLTYPE *put_AllowInboundMaskRequest)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL allow);
  
      HRESULT (STDMETHODCALLTYPE *get_AllowOutboundPacketTooBig)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL *allow);
  
      HRESULT (STDMETHODCALLTYPE *put_AllowOutboundPacketTooBig)(
          INetFwIcmpSettings *This,
          VARIANT_BOOL allow);
  
      END_INTERFACE
  } INetFwIcmpSettingsVtbl;
  
  interface INetFwIcmpSettings {
      CONST_VTBL INetFwIcmpSettingsVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  #ifndef WIDL_C_INLINE_WRAPPERS
  /*** IUnknown methods ***/
  #define INetFwIcmpSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define INetFwIcmpSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define INetFwIcmpSettings_Release(This) (This)->lpVtbl->Release(This)
  /*** IDispatch methods ***/
  #define INetFwIcmpSettings_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  #define INetFwIcmpSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  #define INetFwIcmpSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  #define INetFwIcmpSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  /*** INetFwIcmpSettings methods ***/
  #define INetFwIcmpSettings_get_AllowOutboundDestinationUnreachable(This,allow) (This)->lpVtbl->get_AllowOutboundDestinationUnreachable(This,allow)
  #define INetFwIcmpSettings_put_AllowOutboundDestinationUnreachable(This,allow) (This)->lpVtbl->put_AllowOutboundDestinationUnreachable(This,allow)
  #define INetFwIcmpSettings_get_AllowRedirect(This,allow) (This)->lpVtbl->get_AllowRedirect(This,allow)
  #define INetFwIcmpSettings_put_AllowRedirect(This,allow) (This)->lpVtbl->put_AllowRedirect(This,allow)
  #define INetFwIcmpSettings_get_AllowInboundEchoRequest(This,allow) (This)->lpVtbl->get_AllowInboundEchoRequest(This,allow)
  #define INetFwIcmpSettings_put_AllowInboundEchoRequest(This,allow) (This)->lpVtbl->put_AllowInboundEchoRequest(This,allow)
  #define INetFwIcmpSettings_get_AllowOutboundTimeExceeded(This,allow) (This)->lpVtbl->get_AllowOutboundTimeExceeded(This,allow)
  #define INetFwIcmpSettings_put_AllowOutboundTimeExceeded(This,allow) (This)->lpVtbl->put_AllowOutboundTimeExceeded(This,allow)
  #define INetFwIcmpSettings_get_AllowOutboundParameterProblem(This,allow) (This)->lpVtbl->get_AllowOutboundParameterProblem(This,allow)
  #define INetFwIcmpSettings_put_AllowOutboundParameterProblem(This,allow) (This)->lpVtbl->put_AllowOutboundParameterProblem(This,allow)
  #define INetFwIcmpSettings_get_AllowOutboundSourceQuench(This,allow) (This)->lpVtbl->get_AllowOutboundSourceQuench(This,allow)
  #define INetFwIcmpSettings_put_AllowOutboundSourceQuench(This,allow) (This)->lpVtbl->put_AllowOutboundSourceQuench(This,allow)
  #define INetFwIcmpSettings_get_AllowInboundRouterRequest(This,allow) (This)->lpVtbl->get_AllowInboundRouterRequest(This,allow)
  #define INetFwIcmpSettings_put_AllowInboundRouterRequest(This,allow) (This)->lpVtbl->put_AllowInboundRouterRequest(This,allow)
  #define INetFwIcmpSettings_get_AllowInboundTimestampRequest(This,allow) (This)->lpVtbl->get_AllowInboundTimestampRequest(This,allow)
  #define INetFwIcmpSettings_put_AllowInboundTimestampRequest(This,allow) (This)->lpVtbl->put_AllowInboundTimestampRequest(This,allow)
  #define INetFwIcmpSettings_get_AllowInboundMaskRequest(This,allow) (This)->lpVtbl->get_AllowInboundMaskRequest(This,allow)
  #define INetFwIcmpSettings_put_AllowInboundMaskRequest(This,allow) (This)->lpVtbl->put_AllowInboundMaskRequest(This,allow)
  #define INetFwIcmpSettings_get_AllowOutboundPacketTooBig(This,allow) (This)->lpVtbl->get_AllowOutboundPacketTooBig(This,allow)
  #define INetFwIcmpSettings_put_AllowOutboundPacketTooBig(This,allow) (This)->lpVtbl->put_AllowOutboundPacketTooBig(This,allow)
  #else
  /*** IUnknown methods ***/
  static FORCEINLINE HRESULT INetFwIcmpSettings_QueryInterface(INetFwIcmpSettings* This,REFIID riid,void **ppvObject) {
      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  }
  static FORCEINLINE ULONG INetFwIcmpSettings_AddRef(INetFwIcmpSettings* This) {
      return This->lpVtbl->AddRef(This);
  }
  static FORCEINLINE ULONG INetFwIcmpSettings_Release(INetFwIcmpSettings* This) {
      return This->lpVtbl->Release(This);
  }
  /*** IDispatch methods ***/
  static FORCEINLINE HRESULT INetFwIcmpSettings_GetTypeInfoCount(INetFwIcmpSettings* This,UINT *pctinfo) {
      return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_GetTypeInfo(INetFwIcmpSettings* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
      return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_GetIDsOfNames(INetFwIcmpSettings* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
      return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_Invoke(INetFwIcmpSettings* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
      return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  }
  /*** INetFwIcmpSettings methods ***/
  static FORCEINLINE HRESULT INetFwIcmpSettings_get_AllowOutboundDestinationUnreachable(INetFwIcmpSettings* This,VARIANT_BOOL *allow) {
      return This->lpVtbl->get_AllowOutboundDestinationUnreachable(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_put_AllowOutboundDestinationUnreachable(INetFwIcmpSettings* This,VARIANT_BOOL allow) {
      return This->lpVtbl->put_AllowOutboundDestinationUnreachable(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_get_AllowRedirect(INetFwIcmpSettings* This,VARIANT_BOOL *allow) {
      return This->lpVtbl->get_AllowRedirect(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_put_AllowRedirect(INetFwIcmpSettings* This,VARIANT_BOOL allow) {
      return This->lpVtbl->put_AllowRedirect(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_get_AllowInboundEchoRequest(INetFwIcmpSettings* This,VARIANT_BOOL *allow) {
      return This->lpVtbl->get_AllowInboundEchoRequest(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_put_AllowInboundEchoRequest(INetFwIcmpSettings* This,VARIANT_BOOL allow) {
      return This->lpVtbl->put_AllowInboundEchoRequest(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_get_AllowOutboundTimeExceeded(INetFwIcmpSettings* This,VARIANT_BOOL *allow) {
      return This->lpVtbl->get_AllowOutboundTimeExceeded(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_put_AllowOutboundTimeExceeded(INetFwIcmpSettings* This,VARIANT_BOOL allow) {
      return This->lpVtbl->put_AllowOutboundTimeExceeded(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_get_AllowOutboundParameterProblem(INetFwIcmpSettings* This,VARIANT_BOOL *allow) {
      return This->lpVtbl->get_AllowOutboundParameterProblem(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_put_AllowOutboundParameterProblem(INetFwIcmpSettings* This,VARIANT_BOOL allow) {
      return This->lpVtbl->put_AllowOutboundParameterProblem(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_get_AllowOutboundSourceQuench(INetFwIcmpSettings* This,VARIANT_BOOL *allow) {
      return This->lpVtbl->get_AllowOutboundSourceQuench(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_put_AllowOutboundSourceQuench(INetFwIcmpSettings* This,VARIANT_BOOL allow) {
      return This->lpVtbl->put_AllowOutboundSourceQuench(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_get_AllowInboundRouterRequest(INetFwIcmpSettings* This,VARIANT_BOOL *allow) {
      return This->lpVtbl->get_AllowInboundRouterRequest(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_put_AllowInboundRouterRequest(INetFwIcmpSettings* This,VARIANT_BOOL allow) {
      return This->lpVtbl->put_AllowInboundRouterRequest(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_get_AllowInboundTimestampRequest(INetFwIcmpSettings* This,VARIANT_BOOL *allow) {
      return This->lpVtbl->get_AllowInboundTimestampRequest(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_put_AllowInboundTimestampRequest(INetFwIcmpSettings* This,VARIANT_BOOL allow) {
      return This->lpVtbl->put_AllowInboundTimestampRequest(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_get_AllowInboundMaskRequest(INetFwIcmpSettings* This,VARIANT_BOOL *allow) {
      return This->lpVtbl->get_AllowInboundMaskRequest(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_put_AllowInboundMaskRequest(INetFwIcmpSettings* This,VARIANT_BOOL allow) {
      return This->lpVtbl->put_AllowInboundMaskRequest(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_get_AllowOutboundPacketTooBig(INetFwIcmpSettings* This,VARIANT_BOOL *allow) {
      return This->lpVtbl->get_AllowOutboundPacketTooBig(This,allow);
  }
  static FORCEINLINE HRESULT INetFwIcmpSettings_put_AllowOutboundPacketTooBig(INetFwIcmpSettings* This,VARIANT_BOOL allow) {
      return This->lpVtbl->put_AllowOutboundPacketTooBig(This,allow);
  }
  #endif
  #endif
  
  #endif
  
  
  #endif  /* __INetFwIcmpSettings_INTERFACE_DEFINED__ */
  
  /*****************************************************************************
   * INetFwOpenPort interface
   */
  #ifndef __INetFwOpenPort_INTERFACE_DEFINED__
  #define __INetFwOpenPort_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_INetFwOpenPort, 0xe0483ba0, 0x47ff, 0x4d9c, 0xa6,0xd6, 0x77,0x41,0xd0,0xb1,0x95,0xf7);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  MIDL_INTERFACE("e0483ba0-47ff-4d9c-a6d6-7741d0b195f7")
  INetFwOpenPort : public IDispatch
  {
      virtual HRESULT STDMETHODCALLTYPE get_Name(
          BSTR *name) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Name(
          BSTR name) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_IpVersion(
          NET_FW_IP_VERSION *ipVersion) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_IpVersion(
          NET_FW_IP_VERSION ipVersion) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Protocol(
          NET_FW_IP_PROTOCOL *ipProtocol) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Protocol(
          NET_FW_IP_PROTOCOL ipProtocol) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Port(
          LONG *portNumber) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Port(
          LONG portNumber) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Scope(
          NET_FW_SCOPE *scope) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Scope(
          NET_FW_SCOPE scope) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_RemoteAddresses(
          BSTR *remoteAddrs) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_RemoteAddresses(
          BSTR remoteAddrs) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Enabled(
          VARIANT_BOOL *enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Enabled(
          VARIANT_BOOL enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_BuiltIn(
          VARIANT_BOOL *builtIn) = 0;
  
  };
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(INetFwOpenPort, 0xe0483ba0, 0x47ff, 0x4d9c, 0xa6,0xd6, 0x77,0x41,0xd0,0xb1,0x95,0xf7)
  #endif
  #else
  typedef struct INetFwOpenPortVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          INetFwOpenPort *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          INetFwOpenPort *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          INetFwOpenPort *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          INetFwOpenPort *This,
          UINT *pctinfo);
  
      HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
          INetFwOpenPort *This,
          UINT iTInfo,
          LCID lcid,
          ITypeInfo **ppTInfo);
  
      HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
          INetFwOpenPort *This,
          REFIID riid,
          LPOLESTR *rgszNames,
          UINT cNames,
          LCID lcid,
          DISPID *rgDispId);
  
      HRESULT (STDMETHODCALLTYPE *Invoke)(
          INetFwOpenPort *This,
          DISPID dispIdMember,
          REFIID riid,
          LCID lcid,
          WORD wFlags,
          DISPPARAMS *pDispParams,
          VARIANT *pVarResult,
          EXCEPINFO *pExcepInfo,
          UINT *puArgErr);
  
      /*** INetFwOpenPort methods ***/
      HRESULT (STDMETHODCALLTYPE *get_Name)(
          INetFwOpenPort *This,
          BSTR *name);
  
      HRESULT (STDMETHODCALLTYPE *put_Name)(
          INetFwOpenPort *This,
          BSTR name);
  
      HRESULT (STDMETHODCALLTYPE *get_IpVersion)(
          INetFwOpenPort *This,
          NET_FW_IP_VERSION *ipVersion);
  
      HRESULT (STDMETHODCALLTYPE *put_IpVersion)(
          INetFwOpenPort *This,
          NET_FW_IP_VERSION ipVersion);
  
      HRESULT (STDMETHODCALLTYPE *get_Protocol)(
          INetFwOpenPort *This,
          NET_FW_IP_PROTOCOL *ipProtocol);
  
      HRESULT (STDMETHODCALLTYPE *put_Protocol)(
          INetFwOpenPort *This,
          NET_FW_IP_PROTOCOL ipProtocol);
  
      HRESULT (STDMETHODCALLTYPE *get_Port)(
          INetFwOpenPort *This,
          LONG *portNumber);
  
      HRESULT (STDMETHODCALLTYPE *put_Port)(
          INetFwOpenPort *This,
          LONG portNumber);
  
      HRESULT (STDMETHODCALLTYPE *get_Scope)(
          INetFwOpenPort *This,
          NET_FW_SCOPE *scope);
  
      HRESULT (STDMETHODCALLTYPE *put_Scope)(
          INetFwOpenPort *This,
          NET_FW_SCOPE scope);
  
      HRESULT (STDMETHODCALLTYPE *get_RemoteAddresses)(
          INetFwOpenPort *This,
          BSTR *remoteAddrs);
  
      HRESULT (STDMETHODCALLTYPE *put_RemoteAddresses)(
          INetFwOpenPort *This,
          BSTR remoteAddrs);
  
      HRESULT (STDMETHODCALLTYPE *get_Enabled)(
          INetFwOpenPort *This,
          VARIANT_BOOL *enabled);
  
      HRESULT (STDMETHODCALLTYPE *put_Enabled)(
          INetFwOpenPort *This,
          VARIANT_BOOL enabled);
  
      HRESULT (STDMETHODCALLTYPE *get_BuiltIn)(
          INetFwOpenPort *This,
          VARIANT_BOOL *builtIn);
  
      END_INTERFACE
  } INetFwOpenPortVtbl;
  
  interface INetFwOpenPort {
      CONST_VTBL INetFwOpenPortVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  #ifndef WIDL_C_INLINE_WRAPPERS
  /*** IUnknown methods ***/
  #define INetFwOpenPort_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define INetFwOpenPort_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define INetFwOpenPort_Release(This) (This)->lpVtbl->Release(This)
  /*** IDispatch methods ***/
  #define INetFwOpenPort_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  #define INetFwOpenPort_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  #define INetFwOpenPort_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  #define INetFwOpenPort_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  /*** INetFwOpenPort methods ***/
  #define INetFwOpenPort_get_Name(This,name) (This)->lpVtbl->get_Name(This,name)
  #define INetFwOpenPort_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
  #define INetFwOpenPort_get_IpVersion(This,ipVersion) (This)->lpVtbl->get_IpVersion(This,ipVersion)
  #define INetFwOpenPort_put_IpVersion(This,ipVersion) (This)->lpVtbl->put_IpVersion(This,ipVersion)
  #define INetFwOpenPort_get_Protocol(This,ipProtocol) (This)->lpVtbl->get_Protocol(This,ipProtocol)
  #define INetFwOpenPort_put_Protocol(This,ipProtocol) (This)->lpVtbl->put_Protocol(This,ipProtocol)
  #define INetFwOpenPort_get_Port(This,portNumber) (This)->lpVtbl->get_Port(This,portNumber)
  #define INetFwOpenPort_put_Port(This,portNumber) (This)->lpVtbl->put_Port(This,portNumber)
  #define INetFwOpenPort_get_Scope(This,scope) (This)->lpVtbl->get_Scope(This,scope)
  #define INetFwOpenPort_put_Scope(This,scope) (This)->lpVtbl->put_Scope(This,scope)
  #define INetFwOpenPort_get_RemoteAddresses(This,remoteAddrs) (This)->lpVtbl->get_RemoteAddresses(This,remoteAddrs)
  #define INetFwOpenPort_put_RemoteAddresses(This,remoteAddrs) (This)->lpVtbl->put_RemoteAddresses(This,remoteAddrs)
  #define INetFwOpenPort_get_Enabled(This,enabled) (This)->lpVtbl->get_Enabled(This,enabled)
  #define INetFwOpenPort_put_Enabled(This,enabled) (This)->lpVtbl->put_Enabled(This,enabled)
  #define INetFwOpenPort_get_BuiltIn(This,builtIn) (This)->lpVtbl->get_BuiltIn(This,builtIn)
  #else
  /*** IUnknown methods ***/
  static FORCEINLINE HRESULT INetFwOpenPort_QueryInterface(INetFwOpenPort* This,REFIID riid,void **ppvObject) {
      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  }
  static FORCEINLINE ULONG INetFwOpenPort_AddRef(INetFwOpenPort* This) {
      return This->lpVtbl->AddRef(This);
  }
  static FORCEINLINE ULONG INetFwOpenPort_Release(INetFwOpenPort* This) {
      return This->lpVtbl->Release(This);
  }
  /*** IDispatch methods ***/
  static FORCEINLINE HRESULT INetFwOpenPort_GetTypeInfoCount(INetFwOpenPort* This,UINT *pctinfo) {
      return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_GetTypeInfo(INetFwOpenPort* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
      return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_GetIDsOfNames(INetFwOpenPort* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
      return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_Invoke(INetFwOpenPort* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
      return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  }
  /*** INetFwOpenPort methods ***/
  static FORCEINLINE HRESULT INetFwOpenPort_get_Name(INetFwOpenPort* This,BSTR *name) {
      return This->lpVtbl->get_Name(This,name);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_put_Name(INetFwOpenPort* This,BSTR name) {
      return This->lpVtbl->put_Name(This,name);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_get_IpVersion(INetFwOpenPort* This,NET_FW_IP_VERSION *ipVersion) {
      return This->lpVtbl->get_IpVersion(This,ipVersion);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_put_IpVersion(INetFwOpenPort* This,NET_FW_IP_VERSION ipVersion) {
      return This->lpVtbl->put_IpVersion(This,ipVersion);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_get_Protocol(INetFwOpenPort* This,NET_FW_IP_PROTOCOL *ipProtocol) {
      return This->lpVtbl->get_Protocol(This,ipProtocol);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_put_Protocol(INetFwOpenPort* This,NET_FW_IP_PROTOCOL ipProtocol) {
      return This->lpVtbl->put_Protocol(This,ipProtocol);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_get_Port(INetFwOpenPort* This,LONG *portNumber) {
      return This->lpVtbl->get_Port(This,portNumber);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_put_Port(INetFwOpenPort* This,LONG portNumber) {
      return This->lpVtbl->put_Port(This,portNumber);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_get_Scope(INetFwOpenPort* This,NET_FW_SCOPE *scope) {
      return This->lpVtbl->get_Scope(This,scope);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_put_Scope(INetFwOpenPort* This,NET_FW_SCOPE scope) {
      return This->lpVtbl->put_Scope(This,scope);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_get_RemoteAddresses(INetFwOpenPort* This,BSTR *remoteAddrs) {
      return This->lpVtbl->get_RemoteAddresses(This,remoteAddrs);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_put_RemoteAddresses(INetFwOpenPort* This,BSTR remoteAddrs) {
      return This->lpVtbl->put_RemoteAddresses(This,remoteAddrs);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_get_Enabled(INetFwOpenPort* This,VARIANT_BOOL *enabled) {
      return This->lpVtbl->get_Enabled(This,enabled);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_put_Enabled(INetFwOpenPort* This,VARIANT_BOOL enabled) {
      return This->lpVtbl->put_Enabled(This,enabled);
  }
  static FORCEINLINE HRESULT INetFwOpenPort_get_BuiltIn(INetFwOpenPort* This,VARIANT_BOOL *builtIn) {
      return This->lpVtbl->get_BuiltIn(This,builtIn);
  }
  #endif
  #endif
  
  #endif
  
  
  #endif  /* __INetFwOpenPort_INTERFACE_DEFINED__ */
  
  /*****************************************************************************
   * INetFwOpenPorts interface
   */
  #ifndef __INetFwOpenPorts_INTERFACE_DEFINED__
  #define __INetFwOpenPorts_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_INetFwOpenPorts, 0xc0e9d7fa, 0xe07e, 0x430a, 0xb1,0x9a, 0x09,0x0c,0xe8,0x2d,0x92,0xe2);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  MIDL_INTERFACE("c0e9d7fa-e07e-430a-b19a-090ce82d92e2")
  INetFwOpenPorts : public IDispatch
  {
      virtual HRESULT STDMETHODCALLTYPE get_Count(
          LONG *count) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE Add(
          INetFwOpenPort *port) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE Remove(
          LONG portNumber,
          NET_FW_IP_PROTOCOL ipProtocol) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE Item(
          LONG portNumber,
          NET_FW_IP_PROTOCOL ipProtocol,
          INetFwOpenPort **openPort) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
          IUnknown **newEnum) = 0;
  
  };
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(INetFwOpenPorts, 0xc0e9d7fa, 0xe07e, 0x430a, 0xb1,0x9a, 0x09,0x0c,0xe8,0x2d,0x92,0xe2)
  #endif
  #else
  typedef struct INetFwOpenPortsVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          INetFwOpenPorts *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          INetFwOpenPorts *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          INetFwOpenPorts *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          INetFwOpenPorts *This,
          UINT *pctinfo);
  
      HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
          INetFwOpenPorts *This,
          UINT iTInfo,
          LCID lcid,
          ITypeInfo **ppTInfo);
  
      HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
          INetFwOpenPorts *This,
          REFIID riid,
          LPOLESTR *rgszNames,
          UINT cNames,
          LCID lcid,
          DISPID *rgDispId);
  
      HRESULT (STDMETHODCALLTYPE *Invoke)(
          INetFwOpenPorts *This,
          DISPID dispIdMember,
          REFIID riid,
          LCID lcid,
          WORD wFlags,
          DISPPARAMS *pDispParams,
          VARIANT *pVarResult,
          EXCEPINFO *pExcepInfo,
          UINT *puArgErr);
  
      /*** INetFwOpenPorts methods ***/
      HRESULT (STDMETHODCALLTYPE *get_Count)(
          INetFwOpenPorts *This,
          LONG *count);
  
      HRESULT (STDMETHODCALLTYPE *Add)(
          INetFwOpenPorts *This,
          INetFwOpenPort *port);
  
      HRESULT (STDMETHODCALLTYPE *Remove)(
          INetFwOpenPorts *This,
          LONG portNumber,
          NET_FW_IP_PROTOCOL ipProtocol);
  
      HRESULT (STDMETHODCALLTYPE *Item)(
          INetFwOpenPorts *This,
          LONG portNumber,
          NET_FW_IP_PROTOCOL ipProtocol,
          INetFwOpenPort **openPort);
  
      HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
          INetFwOpenPorts *This,
          IUnknown **newEnum);
  
      END_INTERFACE
  } INetFwOpenPortsVtbl;
  
  interface INetFwOpenPorts {
      CONST_VTBL INetFwOpenPortsVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  #ifndef WIDL_C_INLINE_WRAPPERS
  /*** IUnknown methods ***/
  #define INetFwOpenPorts_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define INetFwOpenPorts_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define INetFwOpenPorts_Release(This) (This)->lpVtbl->Release(This)
  /*** IDispatch methods ***/
  #define INetFwOpenPorts_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  #define INetFwOpenPorts_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  #define INetFwOpenPorts_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  #define INetFwOpenPorts_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  /*** INetFwOpenPorts methods ***/
  #define INetFwOpenPorts_get_Count(This,count) (This)->lpVtbl->get_Count(This,count)
  #define INetFwOpenPorts_Add(This,port) (This)->lpVtbl->Add(This,port)
  #define INetFwOpenPorts_Remove(This,portNumber,ipProtocol) (This)->lpVtbl->Remove(This,portNumber,ipProtocol)
  #define INetFwOpenPorts_Item(This,portNumber,ipProtocol,openPort) (This)->lpVtbl->Item(This,portNumber,ipProtocol,openPort)
  #define INetFwOpenPorts_get__NewEnum(This,newEnum) (This)->lpVtbl->get__NewEnum(This,newEnum)
  #else
  /*** IUnknown methods ***/
  static FORCEINLINE HRESULT INetFwOpenPorts_QueryInterface(INetFwOpenPorts* This,REFIID riid,void **ppvObject) {
      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  }
  static FORCEINLINE ULONG INetFwOpenPorts_AddRef(INetFwOpenPorts* This) {
      return This->lpVtbl->AddRef(This);
  }
  static FORCEINLINE ULONG INetFwOpenPorts_Release(INetFwOpenPorts* This) {
      return This->lpVtbl->Release(This);
  }
  /*** IDispatch methods ***/
  static FORCEINLINE HRESULT INetFwOpenPorts_GetTypeInfoCount(INetFwOpenPorts* This,UINT *pctinfo) {
      return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  }
  static FORCEINLINE HRESULT INetFwOpenPorts_GetTypeInfo(INetFwOpenPorts* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
      return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  }
  static FORCEINLINE HRESULT INetFwOpenPorts_GetIDsOfNames(INetFwOpenPorts* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
      return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  }
  static FORCEINLINE HRESULT INetFwOpenPorts_Invoke(INetFwOpenPorts* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
      return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  }
  /*** INetFwOpenPorts methods ***/
  static FORCEINLINE HRESULT INetFwOpenPorts_get_Count(INetFwOpenPorts* This,LONG *count) {
      return This->lpVtbl->get_Count(This,count);
  }
  static FORCEINLINE HRESULT INetFwOpenPorts_Add(INetFwOpenPorts* This,INetFwOpenPort *port) {
      return This->lpVtbl->Add(This,port);
  }
  static FORCEINLINE HRESULT INetFwOpenPorts_Remove(INetFwOpenPorts* This,LONG portNumber,NET_FW_IP_PROTOCOL ipProtocol) {
      return This->lpVtbl->Remove(This,portNumber,ipProtocol);
  }
  static FORCEINLINE HRESULT INetFwOpenPorts_Item(INetFwOpenPorts* This,LONG portNumber,NET_FW_IP_PROTOCOL ipProtocol,INetFwOpenPort **openPort) {
      return This->lpVtbl->Item(This,portNumber,ipProtocol,openPort);
  }
  static FORCEINLINE HRESULT INetFwOpenPorts_get__NewEnum(INetFwOpenPorts* This,IUnknown **newEnum) {
      return This->lpVtbl->get__NewEnum(This,newEnum);
  }
  #endif
  #endif
  
  #endif
  
  
  #endif  /* __INetFwOpenPorts_INTERFACE_DEFINED__ */
  
  /*****************************************************************************
   * INetFwService interface
   */
  #ifndef __INetFwService_INTERFACE_DEFINED__
  #define __INetFwService_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_INetFwService, 0x79fd57c8, 0x908e, 0x4a36, 0x98,0x88, 0xd5,0xb3,0xf0,0xa4,0x44,0xcf);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  MIDL_INTERFACE("79fd57c8-908e-4a36-9888-d5b3f0a444cf")
  INetFwService : public IDispatch
  {
      virtual HRESULT STDMETHODCALLTYPE get_Name(
          BSTR *name) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Type(
          NET_FW_SERVICE_TYPE *type) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Customized(
          VARIANT_BOOL *customized) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_IpVersion(
          NET_FW_IP_VERSION *ipVersion) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_IpVersion(
          NET_FW_IP_VERSION ipVersion) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Scope(
          NET_FW_SCOPE *scope) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Scope(
          NET_FW_SCOPE scope) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_RemoteAddresses(
          BSTR *remoteAddrs) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_RemoteAddresses(
          BSTR remoteAddrs) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Enabled(
          VARIANT_BOOL *enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Enabled(
          VARIANT_BOOL enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_GloballyOpenPorts(
          INetFwOpenPorts **openPorts) = 0;
  
  };
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(INetFwService, 0x79fd57c8, 0x908e, 0x4a36, 0x98,0x88, 0xd5,0xb3,0xf0,0xa4,0x44,0xcf)
  #endif
  #else
  typedef struct INetFwServiceVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          INetFwService *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          INetFwService *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          INetFwService *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          INetFwService *This,
          UINT *pctinfo);
  
      HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
          INetFwService *This,
          UINT iTInfo,
          LCID lcid,
          ITypeInfo **ppTInfo);
  
      HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
          INetFwService *This,
          REFIID riid,
          LPOLESTR *rgszNames,
          UINT cNames,
          LCID lcid,
          DISPID *rgDispId);
  
      HRESULT (STDMETHODCALLTYPE *Invoke)(
          INetFwService *This,
          DISPID dispIdMember,
          REFIID riid,
          LCID lcid,
          WORD wFlags,
          DISPPARAMS *pDispParams,
          VARIANT *pVarResult,
          EXCEPINFO *pExcepInfo,
          UINT *puArgErr);
  
      /*** INetFwService methods ***/
      HRESULT (STDMETHODCALLTYPE *get_Name)(
          INetFwService *This,
          BSTR *name);
  
      HRESULT (STDMETHODCALLTYPE *get_Type)(
          INetFwService *This,
          NET_FW_SERVICE_TYPE *type);
  
      HRESULT (STDMETHODCALLTYPE *get_Customized)(
          INetFwService *This,
          VARIANT_BOOL *customized);
  
      HRESULT (STDMETHODCALLTYPE *get_IpVersion)(
          INetFwService *This,
          NET_FW_IP_VERSION *ipVersion);
  
      HRESULT (STDMETHODCALLTYPE *put_IpVersion)(
          INetFwService *This,
          NET_FW_IP_VERSION ipVersion);
  
      HRESULT (STDMETHODCALLTYPE *get_Scope)(
          INetFwService *This,
          NET_FW_SCOPE *scope);
  
      HRESULT (STDMETHODCALLTYPE *put_Scope)(
          INetFwService *This,
          NET_FW_SCOPE scope);
  
      HRESULT (STDMETHODCALLTYPE *get_RemoteAddresses)(
          INetFwService *This,
          BSTR *remoteAddrs);
  
      HRESULT (STDMETHODCALLTYPE *put_RemoteAddresses)(
          INetFwService *This,
          BSTR remoteAddrs);
  
      HRESULT (STDMETHODCALLTYPE *get_Enabled)(
          INetFwService *This,
          VARIANT_BOOL *enabled);
  
      HRESULT (STDMETHODCALLTYPE *put_Enabled)(
          INetFwService *This,
          VARIANT_BOOL enabled);
  
      HRESULT (STDMETHODCALLTYPE *get_GloballyOpenPorts)(
          INetFwService *This,
          INetFwOpenPorts **openPorts);
  
      END_INTERFACE
  } INetFwServiceVtbl;
  
  interface INetFwService {
      CONST_VTBL INetFwServiceVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  #ifndef WIDL_C_INLINE_WRAPPERS
  /*** IUnknown methods ***/
  #define INetFwService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define INetFwService_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define INetFwService_Release(This) (This)->lpVtbl->Release(This)
  /*** IDispatch methods ***/
  #define INetFwService_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  #define INetFwService_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  #define INetFwService_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  #define INetFwService_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  /*** INetFwService methods ***/
  #define INetFwService_get_Name(This,name) (This)->lpVtbl->get_Name(This,name)
  #define INetFwService_get_Type(This,type) (This)->lpVtbl->get_Type(This,type)
  #define INetFwService_get_Customized(This,customized) (This)->lpVtbl->get_Customized(This,customized)
  #define INetFwService_get_IpVersion(This,ipVersion) (This)->lpVtbl->get_IpVersion(This,ipVersion)
  #define INetFwService_put_IpVersion(This,ipVersion) (This)->lpVtbl->put_IpVersion(This,ipVersion)
  #define INetFwService_get_Scope(This,scope) (This)->lpVtbl->get_Scope(This,scope)
  #define INetFwService_put_Scope(This,scope) (This)->lpVtbl->put_Scope(This,scope)
  #define INetFwService_get_RemoteAddresses(This,remoteAddrs) (This)->lpVtbl->get_RemoteAddresses(This,remoteAddrs)
  #define INetFwService_put_RemoteAddresses(This,remoteAddrs) (This)->lpVtbl->put_RemoteAddresses(This,remoteAddrs)
  #define INetFwService_get_Enabled(This,enabled) (This)->lpVtbl->get_Enabled(This,enabled)
  #define INetFwService_put_Enabled(This,enabled) (This)->lpVtbl->put_Enabled(This,enabled)
  #define INetFwService_get_GloballyOpenPorts(This,openPorts) (This)->lpVtbl->get_GloballyOpenPorts(This,openPorts)
  #else
  /*** IUnknown methods ***/
  static FORCEINLINE HRESULT INetFwService_QueryInterface(INetFwService* This,REFIID riid,void **ppvObject) {
      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  }
  static FORCEINLINE ULONG INetFwService_AddRef(INetFwService* This) {
      return This->lpVtbl->AddRef(This);
  }
  static FORCEINLINE ULONG INetFwService_Release(INetFwService* This) {
      return This->lpVtbl->Release(This);
  }
  /*** IDispatch methods ***/
  static FORCEINLINE HRESULT INetFwService_GetTypeInfoCount(INetFwService* This,UINT *pctinfo) {
      return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  }
  static FORCEINLINE HRESULT INetFwService_GetTypeInfo(INetFwService* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
      return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  }
  static FORCEINLINE HRESULT INetFwService_GetIDsOfNames(INetFwService* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
      return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  }
  static FORCEINLINE HRESULT INetFwService_Invoke(INetFwService* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
      return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  }
  /*** INetFwService methods ***/
  static FORCEINLINE HRESULT INetFwService_get_Name(INetFwService* This,BSTR *name) {
      return This->lpVtbl->get_Name(This,name);
  }
  static FORCEINLINE HRESULT INetFwService_get_Type(INetFwService* This,NET_FW_SERVICE_TYPE *type) {
      return This->lpVtbl->get_Type(This,type);
  }
  static FORCEINLINE HRESULT INetFwService_get_Customized(INetFwService* This,VARIANT_BOOL *customized) {
      return This->lpVtbl->get_Customized(This,customized);
  }
  static FORCEINLINE HRESULT INetFwService_get_IpVersion(INetFwService* This,NET_FW_IP_VERSION *ipVersion) {
      return This->lpVtbl->get_IpVersion(This,ipVersion);
  }
  static FORCEINLINE HRESULT INetFwService_put_IpVersion(INetFwService* This,NET_FW_IP_VERSION ipVersion) {
      return This->lpVtbl->put_IpVersion(This,ipVersion);
  }
  static FORCEINLINE HRESULT INetFwService_get_Scope(INetFwService* This,NET_FW_SCOPE *scope) {
      return This->lpVtbl->get_Scope(This,scope);
  }
  static FORCEINLINE HRESULT INetFwService_put_Scope(INetFwService* This,NET_FW_SCOPE scope) {
      return This->lpVtbl->put_Scope(This,scope);
  }
  static FORCEINLINE HRESULT INetFwService_get_RemoteAddresses(INetFwService* This,BSTR *remoteAddrs) {
      return This->lpVtbl->get_RemoteAddresses(This,remoteAddrs);
  }
  static FORCEINLINE HRESULT INetFwService_put_RemoteAddresses(INetFwService* This,BSTR remoteAddrs) {
      return This->lpVtbl->put_RemoteAddresses(This,remoteAddrs);
  }
  static FORCEINLINE HRESULT INetFwService_get_Enabled(INetFwService* This,VARIANT_BOOL *enabled) {
      return This->lpVtbl->get_Enabled(This,enabled);
  }
  static FORCEINLINE HRESULT INetFwService_put_Enabled(INetFwService* This,VARIANT_BOOL enabled) {
      return This->lpVtbl->put_Enabled(This,enabled);
  }
  static FORCEINLINE HRESULT INetFwService_get_GloballyOpenPorts(INetFwService* This,INetFwOpenPorts **openPorts) {
      return This->lpVtbl->get_GloballyOpenPorts(This,openPorts);
  }
  #endif
  #endif
  
  #endif
  
  
  #endif  /* __INetFwService_INTERFACE_DEFINED__ */
  
  /*****************************************************************************
   * INetFwServices interface
   */
  #ifndef __INetFwServices_INTERFACE_DEFINED__
  #define __INetFwServices_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_INetFwServices, 0x79649bb4, 0x903e, 0x421b, 0x94,0xc9, 0x79,0x84,0x8e,0x79,0xf6,0xee);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  MIDL_INTERFACE("79649bb4-903e-421b-94c9-79848e79f6ee")
  INetFwServices : public IDispatch
  {
      virtual HRESULT STDMETHODCALLTYPE get_Count(
          LONG *count) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE Item(
          NET_FW_SERVICE_TYPE svcType,
          INetFwService **service) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
          IUnknown **newEnum) = 0;
  
  };
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(INetFwServices, 0x79649bb4, 0x903e, 0x421b, 0x94,0xc9, 0x79,0x84,0x8e,0x79,0xf6,0xee)
  #endif
  #else
  typedef struct INetFwServicesVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          INetFwServices *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          INetFwServices *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          INetFwServices *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          INetFwServices *This,
          UINT *pctinfo);
  
      HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
          INetFwServices *This,
          UINT iTInfo,
          LCID lcid,
          ITypeInfo **ppTInfo);
  
      HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
          INetFwServices *This,
          REFIID riid,
          LPOLESTR *rgszNames,
          UINT cNames,
          LCID lcid,
          DISPID *rgDispId);
  
      HRESULT (STDMETHODCALLTYPE *Invoke)(
          INetFwServices *This,
          DISPID dispIdMember,
          REFIID riid,
          LCID lcid,
          WORD wFlags,
          DISPPARAMS *pDispParams,
          VARIANT *pVarResult,
          EXCEPINFO *pExcepInfo,
          UINT *puArgErr);
  
      /*** INetFwServices methods ***/
      HRESULT (STDMETHODCALLTYPE *get_Count)(
          INetFwServices *This,
          LONG *count);
  
      HRESULT (STDMETHODCALLTYPE *Item)(
          INetFwServices *This,
          NET_FW_SERVICE_TYPE svcType,
          INetFwService **service);
  
      HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
          INetFwServices *This,
          IUnknown **newEnum);
  
      END_INTERFACE
  } INetFwServicesVtbl;
  
  interface INetFwServices {
      CONST_VTBL INetFwServicesVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  #ifndef WIDL_C_INLINE_WRAPPERS
  /*** IUnknown methods ***/
  #define INetFwServices_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define INetFwServices_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define INetFwServices_Release(This) (This)->lpVtbl->Release(This)
  /*** IDispatch methods ***/
  #define INetFwServices_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  #define INetFwServices_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  #define INetFwServices_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  #define INetFwServices_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  /*** INetFwServices methods ***/
  #define INetFwServices_get_Count(This,count) (This)->lpVtbl->get_Count(This,count)
  #define INetFwServices_Item(This,svcType,service) (This)->lpVtbl->Item(This,svcType,service)
  #define INetFwServices_get__NewEnum(This,newEnum) (This)->lpVtbl->get__NewEnum(This,newEnum)
  #else
  /*** IUnknown methods ***/
  static FORCEINLINE HRESULT INetFwServices_QueryInterface(INetFwServices* This,REFIID riid,void **ppvObject) {
      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  }
  static FORCEINLINE ULONG INetFwServices_AddRef(INetFwServices* This) {
      return This->lpVtbl->AddRef(This);
  }
  static FORCEINLINE ULONG INetFwServices_Release(INetFwServices* This) {
      return This->lpVtbl->Release(This);
  }
  /*** IDispatch methods ***/
  static FORCEINLINE HRESULT INetFwServices_GetTypeInfoCount(INetFwServices* This,UINT *pctinfo) {
      return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  }
  static FORCEINLINE HRESULT INetFwServices_GetTypeInfo(INetFwServices* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
      return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  }
  static FORCEINLINE HRESULT INetFwServices_GetIDsOfNames(INetFwServices* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
      return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  }
  static FORCEINLINE HRESULT INetFwServices_Invoke(INetFwServices* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
      return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  }
  /*** INetFwServices methods ***/
  static FORCEINLINE HRESULT INetFwServices_get_Count(INetFwServices* This,LONG *count) {
      return This->lpVtbl->get_Count(This,count);
  }
  static FORCEINLINE HRESULT INetFwServices_Item(INetFwServices* This,NET_FW_SERVICE_TYPE svcType,INetFwService **service) {
      return This->lpVtbl->Item(This,svcType,service);
  }
  static FORCEINLINE HRESULT INetFwServices_get__NewEnum(INetFwServices* This,IUnknown **newEnum) {
      return This->lpVtbl->get__NewEnum(This,newEnum);
  }
  #endif
  #endif
  
  #endif
  
  
  #endif  /* __INetFwServices_INTERFACE_DEFINED__ */
  
  /*****************************************************************************
   * INetFwAuthorizedApplication interface
   */
  #ifndef __INetFwAuthorizedApplication_INTERFACE_DEFINED__
  #define __INetFwAuthorizedApplication_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_INetFwAuthorizedApplication, 0xb5e64ffa, 0xc2c5, 0x444e, 0xa3,0x01, 0xfb,0x5e,0x00,0x01,0x80,0x50);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  MIDL_INTERFACE("b5e64ffa-c2c5-444e-a301-fb5e00018050")
  INetFwAuthorizedApplication : public IDispatch
  {
      virtual HRESULT STDMETHODCALLTYPE get_Name(
          BSTR *name) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Name(
          BSTR name) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_ProcessImageFileName(
          BSTR *imageFileName) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_ProcessImageFileName(
          BSTR imageFileName) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_IpVersion(
          NET_FW_IP_VERSION *ipVersion) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_IpVersion(
          NET_FW_IP_VERSION ipVersion) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Scope(
          NET_FW_SCOPE *scope) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Scope(
          NET_FW_SCOPE scope) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_RemoteAddresses(
          BSTR *remoteAddrs) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_RemoteAddresses(
          BSTR remoteAddrs) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Enabled(
          VARIANT_BOOL *enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Enabled(
          VARIANT_BOOL enabled) = 0;
  
  };
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(INetFwAuthorizedApplication, 0xb5e64ffa, 0xc2c5, 0x444e, 0xa3,0x01, 0xfb,0x5e,0x00,0x01,0x80,0x50)
  #endif
  #else
  typedef struct INetFwAuthorizedApplicationVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          INetFwAuthorizedApplication *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          INetFwAuthorizedApplication *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          INetFwAuthorizedApplication *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          INetFwAuthorizedApplication *This,
          UINT *pctinfo);
  
      HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
          INetFwAuthorizedApplication *This,
          UINT iTInfo,
          LCID lcid,
          ITypeInfo **ppTInfo);
  
      HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
          INetFwAuthorizedApplication *This,
          REFIID riid,
          LPOLESTR *rgszNames,
          UINT cNames,
          LCID lcid,
          DISPID *rgDispId);
  
      HRESULT (STDMETHODCALLTYPE *Invoke)(
          INetFwAuthorizedApplication *This,
          DISPID dispIdMember,
          REFIID riid,
          LCID lcid,
          WORD wFlags,
          DISPPARAMS *pDispParams,
          VARIANT *pVarResult,
          EXCEPINFO *pExcepInfo,
          UINT *puArgErr);
  
      /*** INetFwAuthorizedApplication methods ***/
      HRESULT (STDMETHODCALLTYPE *get_Name)(
          INetFwAuthorizedApplication *This,
          BSTR *name);
  
      HRESULT (STDMETHODCALLTYPE *put_Name)(
          INetFwAuthorizedApplication *This,
          BSTR name);
  
      HRESULT (STDMETHODCALLTYPE *get_ProcessImageFileName)(
          INetFwAuthorizedApplication *This,
          BSTR *imageFileName);
  
      HRESULT (STDMETHODCALLTYPE *put_ProcessImageFileName)(
          INetFwAuthorizedApplication *This,
          BSTR imageFileName);
  
      HRESULT (STDMETHODCALLTYPE *get_IpVersion)(
          INetFwAuthorizedApplication *This,
          NET_FW_IP_VERSION *ipVersion);
  
      HRESULT (STDMETHODCALLTYPE *put_IpVersion)(
          INetFwAuthorizedApplication *This,
          NET_FW_IP_VERSION ipVersion);
  
      HRESULT (STDMETHODCALLTYPE *get_Scope)(
          INetFwAuthorizedApplication *This,
          NET_FW_SCOPE *scope);
  
      HRESULT (STDMETHODCALLTYPE *put_Scope)(
          INetFwAuthorizedApplication *This,
          NET_FW_SCOPE scope);
  
      HRESULT (STDMETHODCALLTYPE *get_RemoteAddresses)(
          INetFwAuthorizedApplication *This,
          BSTR *remoteAddrs);
  
      HRESULT (STDMETHODCALLTYPE *put_RemoteAddresses)(
          INetFwAuthorizedApplication *This,
          BSTR remoteAddrs);
  
      HRESULT (STDMETHODCALLTYPE *get_Enabled)(
          INetFwAuthorizedApplication *This,
          VARIANT_BOOL *enabled);
  
      HRESULT (STDMETHODCALLTYPE *put_Enabled)(
          INetFwAuthorizedApplication *This,
          VARIANT_BOOL enabled);
  
      END_INTERFACE
  } INetFwAuthorizedApplicationVtbl;
  
  interface INetFwAuthorizedApplication {
      CONST_VTBL INetFwAuthorizedApplicationVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  #ifndef WIDL_C_INLINE_WRAPPERS
  /*** IUnknown methods ***/
  #define INetFwAuthorizedApplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define INetFwAuthorizedApplication_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define INetFwAuthorizedApplication_Release(This) (This)->lpVtbl->Release(This)
  /*** IDispatch methods ***/
  #define INetFwAuthorizedApplication_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  #define INetFwAuthorizedApplication_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  #define INetFwAuthorizedApplication_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  #define INetFwAuthorizedApplication_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  /*** INetFwAuthorizedApplication methods ***/
  #define INetFwAuthorizedApplication_get_Name(This,name) (This)->lpVtbl->get_Name(This,name)
  #define INetFwAuthorizedApplication_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
  #define INetFwAuthorizedApplication_get_ProcessImageFileName(This,imageFileName) (This)->lpVtbl->get_ProcessImageFileName(This,imageFileName)
  #define INetFwAuthorizedApplication_put_ProcessImageFileName(This,imageFileName) (This)->lpVtbl->put_ProcessImageFileName(This,imageFileName)
  #define INetFwAuthorizedApplication_get_IpVersion(This,ipVersion) (This)->lpVtbl->get_IpVersion(This,ipVersion)
  #define INetFwAuthorizedApplication_put_IpVersion(This,ipVersion) (This)->lpVtbl->put_IpVersion(This,ipVersion)
  #define INetFwAuthorizedApplication_get_Scope(This,scope) (This)->lpVtbl->get_Scope(This,scope)
  #define INetFwAuthorizedApplication_put_Scope(This,scope) (This)->lpVtbl->put_Scope(This,scope)
  #define INetFwAuthorizedApplication_get_RemoteAddresses(This,remoteAddrs) (This)->lpVtbl->get_RemoteAddresses(This,remoteAddrs)
  #define INetFwAuthorizedApplication_put_RemoteAddresses(This,remoteAddrs) (This)->lpVtbl->put_RemoteAddresses(This,remoteAddrs)
  #define INetFwAuthorizedApplication_get_Enabled(This,enabled) (This)->lpVtbl->get_Enabled(This,enabled)
  #define INetFwAuthorizedApplication_put_Enabled(This,enabled) (This)->lpVtbl->put_Enabled(This,enabled)
  #else
  /*** IUnknown methods ***/
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_QueryInterface(INetFwAuthorizedApplication* This,REFIID riid,void **ppvObject) {
      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  }
  static FORCEINLINE ULONG INetFwAuthorizedApplication_AddRef(INetFwAuthorizedApplication* This) {
      return This->lpVtbl->AddRef(This);
  }
  static FORCEINLINE ULONG INetFwAuthorizedApplication_Release(INetFwAuthorizedApplication* This) {
      return This->lpVtbl->Release(This);
  }
  /*** IDispatch methods ***/
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_GetTypeInfoCount(INetFwAuthorizedApplication* This,UINT *pctinfo) {
      return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_GetTypeInfo(INetFwAuthorizedApplication* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
      return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_GetIDsOfNames(INetFwAuthorizedApplication* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
      return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_Invoke(INetFwAuthorizedApplication* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
      return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  }
  /*** INetFwAuthorizedApplication methods ***/
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_get_Name(INetFwAuthorizedApplication* This,BSTR *name) {
      return This->lpVtbl->get_Name(This,name);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_put_Name(INetFwAuthorizedApplication* This,BSTR name) {
      return This->lpVtbl->put_Name(This,name);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_get_ProcessImageFileName(INetFwAuthorizedApplication* This,BSTR *imageFileName) {
      return This->lpVtbl->get_ProcessImageFileName(This,imageFileName);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_put_ProcessImageFileName(INetFwAuthorizedApplication* This,BSTR imageFileName) {
      return This->lpVtbl->put_ProcessImageFileName(This,imageFileName);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_get_IpVersion(INetFwAuthorizedApplication* This,NET_FW_IP_VERSION *ipVersion) {
      return This->lpVtbl->get_IpVersion(This,ipVersion);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_put_IpVersion(INetFwAuthorizedApplication* This,NET_FW_IP_VERSION ipVersion) {
      return This->lpVtbl->put_IpVersion(This,ipVersion);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_get_Scope(INetFwAuthorizedApplication* This,NET_FW_SCOPE *scope) {
      return This->lpVtbl->get_Scope(This,scope);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_put_Scope(INetFwAuthorizedApplication* This,NET_FW_SCOPE scope) {
      return This->lpVtbl->put_Scope(This,scope);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_get_RemoteAddresses(INetFwAuthorizedApplication* This,BSTR *remoteAddrs) {
      return This->lpVtbl->get_RemoteAddresses(This,remoteAddrs);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_put_RemoteAddresses(INetFwAuthorizedApplication* This,BSTR remoteAddrs) {
      return This->lpVtbl->put_RemoteAddresses(This,remoteAddrs);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_get_Enabled(INetFwAuthorizedApplication* This,VARIANT_BOOL *enabled) {
      return This->lpVtbl->get_Enabled(This,enabled);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplication_put_Enabled(INetFwAuthorizedApplication* This,VARIANT_BOOL enabled) {
      return This->lpVtbl->put_Enabled(This,enabled);
  }
  #endif
  #endif
  
  #endif
  
  
  #endif  /* __INetFwAuthorizedApplication_INTERFACE_DEFINED__ */
  
  /*****************************************************************************
   * INetFwRemoteAdminSettings interface
   */
  #ifndef __INetFwRemoteAdminSettings_INTERFACE_DEFINED__
  #define __INetFwRemoteAdminSettings_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_INetFwRemoteAdminSettings, 0xd4becddf, 0x6f73, 0x4a83, 0xb8,0x32, 0x9c,0x66,0x87,0x4c,0xd2,0x0e);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  MIDL_INTERFACE("d4becddf-6f73-4a83-b832-9c66874cd20e")
  INetFwRemoteAdminSettings : public IDispatch
  {
      virtual HRESULT STDMETHODCALLTYPE get_IpVersion(
          NET_FW_IP_VERSION *ipVersion) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_IpVersion(
          NET_FW_IP_VERSION ipVersion) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Scope(
          NET_FW_SCOPE *scope) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Scope(
          NET_FW_SCOPE scope) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_RemoteAddresses(
          BSTR *remoteAddrs) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_RemoteAddresses(
          BSTR remoteAddrs) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Enabled(
          VARIANT_BOOL *enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Enabled(
          VARIANT_BOOL enabled) = 0;
  
  };
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(INetFwRemoteAdminSettings, 0xd4becddf, 0x6f73, 0x4a83, 0xb8,0x32, 0x9c,0x66,0x87,0x4c,0xd2,0x0e)
  #endif
  #else
  typedef struct INetFwRemoteAdminSettingsVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          INetFwRemoteAdminSettings *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          INetFwRemoteAdminSettings *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          INetFwRemoteAdminSettings *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          INetFwRemoteAdminSettings *This,
          UINT *pctinfo);
  
      HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
          INetFwRemoteAdminSettings *This,
          UINT iTInfo,
          LCID lcid,
          ITypeInfo **ppTInfo);
  
      HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
          INetFwRemoteAdminSettings *This,
          REFIID riid,
          LPOLESTR *rgszNames,
          UINT cNames,
          LCID lcid,
          DISPID *rgDispId);
  
      HRESULT (STDMETHODCALLTYPE *Invoke)(
          INetFwRemoteAdminSettings *This,
          DISPID dispIdMember,
          REFIID riid,
          LCID lcid,
          WORD wFlags,
          DISPPARAMS *pDispParams,
          VARIANT *pVarResult,
          EXCEPINFO *pExcepInfo,
          UINT *puArgErr);
  
      /*** INetFwRemoteAdminSettings methods ***/
      HRESULT (STDMETHODCALLTYPE *get_IpVersion)(
          INetFwRemoteAdminSettings *This,
          NET_FW_IP_VERSION *ipVersion);
  
      HRESULT (STDMETHODCALLTYPE *put_IpVersion)(
          INetFwRemoteAdminSettings *This,
          NET_FW_IP_VERSION ipVersion);
  
      HRESULT (STDMETHODCALLTYPE *get_Scope)(
          INetFwRemoteAdminSettings *This,
          NET_FW_SCOPE *scope);
  
      HRESULT (STDMETHODCALLTYPE *put_Scope)(
          INetFwRemoteAdminSettings *This,
          NET_FW_SCOPE scope);
  
      HRESULT (STDMETHODCALLTYPE *get_RemoteAddresses)(
          INetFwRemoteAdminSettings *This,
          BSTR *remoteAddrs);
  
      HRESULT (STDMETHODCALLTYPE *put_RemoteAddresses)(
          INetFwRemoteAdminSettings *This,
          BSTR remoteAddrs);
  
      HRESULT (STDMETHODCALLTYPE *get_Enabled)(
          INetFwRemoteAdminSettings *This,
          VARIANT_BOOL *enabled);
  
      HRESULT (STDMETHODCALLTYPE *put_Enabled)(
          INetFwRemoteAdminSettings *This,
          VARIANT_BOOL enabled);
  
      END_INTERFACE
  } INetFwRemoteAdminSettingsVtbl;
  
  interface INetFwRemoteAdminSettings {
      CONST_VTBL INetFwRemoteAdminSettingsVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  #ifndef WIDL_C_INLINE_WRAPPERS
  /*** IUnknown methods ***/
  #define INetFwRemoteAdminSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define INetFwRemoteAdminSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define INetFwRemoteAdminSettings_Release(This) (This)->lpVtbl->Release(This)
  /*** IDispatch methods ***/
  #define INetFwRemoteAdminSettings_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  #define INetFwRemoteAdminSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  #define INetFwRemoteAdminSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  #define INetFwRemoteAdminSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  /*** INetFwRemoteAdminSettings methods ***/
  #define INetFwRemoteAdminSettings_get_IpVersion(This,ipVersion) (This)->lpVtbl->get_IpVersion(This,ipVersion)
  #define INetFwRemoteAdminSettings_put_IpVersion(This,ipVersion) (This)->lpVtbl->put_IpVersion(This,ipVersion)
  #define INetFwRemoteAdminSettings_get_Scope(This,scope) (This)->lpVtbl->get_Scope(This,scope)
  #define INetFwRemoteAdminSettings_put_Scope(This,scope) (This)->lpVtbl->put_Scope(This,scope)
  #define INetFwRemoteAdminSettings_get_RemoteAddresses(This,remoteAddrs) (This)->lpVtbl->get_RemoteAddresses(This,remoteAddrs)
  #define INetFwRemoteAdminSettings_put_RemoteAddresses(This,remoteAddrs) (This)->lpVtbl->put_RemoteAddresses(This,remoteAddrs)
  #define INetFwRemoteAdminSettings_get_Enabled(This,enabled) (This)->lpVtbl->get_Enabled(This,enabled)
  #define INetFwRemoteAdminSettings_put_Enabled(This,enabled) (This)->lpVtbl->put_Enabled(This,enabled)
  #else
  /*** IUnknown methods ***/
  static FORCEINLINE HRESULT INetFwRemoteAdminSettings_QueryInterface(INetFwRemoteAdminSettings* This,REFIID riid,void **ppvObject) {
      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  }
  static FORCEINLINE ULONG INetFwRemoteAdminSettings_AddRef(INetFwRemoteAdminSettings* This) {
      return This->lpVtbl->AddRef(This);
  }
  static FORCEINLINE ULONG INetFwRemoteAdminSettings_Release(INetFwRemoteAdminSettings* This) {
      return This->lpVtbl->Release(This);
  }
  /*** IDispatch methods ***/
  static FORCEINLINE HRESULT INetFwRemoteAdminSettings_GetTypeInfoCount(INetFwRemoteAdminSettings* This,UINT *pctinfo) {
      return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  }
  static FORCEINLINE HRESULT INetFwRemoteAdminSettings_GetTypeInfo(INetFwRemoteAdminSettings* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
      return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  }
  static FORCEINLINE HRESULT INetFwRemoteAdminSettings_GetIDsOfNames(INetFwRemoteAdminSettings* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
      return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  }
  static FORCEINLINE HRESULT INetFwRemoteAdminSettings_Invoke(INetFwRemoteAdminSettings* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
      return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  }
  /*** INetFwRemoteAdminSettings methods ***/
  static FORCEINLINE HRESULT INetFwRemoteAdminSettings_get_IpVersion(INetFwRemoteAdminSettings* This,NET_FW_IP_VERSION *ipVersion) {
      return This->lpVtbl->get_IpVersion(This,ipVersion);
  }
  static FORCEINLINE HRESULT INetFwRemoteAdminSettings_put_IpVersion(INetFwRemoteAdminSettings* This,NET_FW_IP_VERSION ipVersion) {
      return This->lpVtbl->put_IpVersion(This,ipVersion);
  }
  static FORCEINLINE HRESULT INetFwRemoteAdminSettings_get_Scope(INetFwRemoteAdminSettings* This,NET_FW_SCOPE *scope) {
      return This->lpVtbl->get_Scope(This,scope);
  }
  static FORCEINLINE HRESULT INetFwRemoteAdminSettings_put_Scope(INetFwRemoteAdminSettings* This,NET_FW_SCOPE scope) {
      return This->lpVtbl->put_Scope(This,scope);
  }
  static FORCEINLINE HRESULT INetFwRemoteAdminSettings_get_RemoteAddresses(INetFwRemoteAdminSettings* This,BSTR *remoteAddrs) {
      return This->lpVtbl->get_RemoteAddresses(This,remoteAddrs);
  }
  static FORCEINLINE HRESULT INetFwRemoteAdminSettings_put_RemoteAddresses(INetFwRemoteAdminSettings* This,BSTR remoteAddrs) {
      return This->lpVtbl->put_RemoteAddresses(This,remoteAddrs);
  }
  static FORCEINLINE HRESULT INetFwRemoteAdminSettings_get_Enabled(INetFwRemoteAdminSettings* This,VARIANT_BOOL *enabled) {
      return This->lpVtbl->get_Enabled(This,enabled);
  }
  static FORCEINLINE HRESULT INetFwRemoteAdminSettings_put_Enabled(INetFwRemoteAdminSettings* This,VARIANT_BOOL enabled) {
      return This->lpVtbl->put_Enabled(This,enabled);
  }
  #endif
  #endif
  
  #endif
  
  
  #endif  /* __INetFwRemoteAdminSettings_INTERFACE_DEFINED__ */
  
  /*****************************************************************************
   * INetFwAuthorizedApplications interface
   */
  #ifndef __INetFwAuthorizedApplications_INTERFACE_DEFINED__
  #define __INetFwAuthorizedApplications_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_INetFwAuthorizedApplications, 0x644efd52, 0xccf9, 0x486c, 0x97,0xa2, 0x39,0xf3,0x52,0x57,0x0b,0x30);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  MIDL_INTERFACE("644efd52-ccf9-486c-97a2-39f352570b30")
  INetFwAuthorizedApplications : public IDispatch
  {
      virtual HRESULT STDMETHODCALLTYPE get_Count(
          LONG *count) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE Add(
          INetFwAuthorizedApplication *app) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE Remove(
          BSTR imageFileName) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE Item(
          BSTR imageFileName,
          INetFwAuthorizedApplication **app) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
          IUnknown **newEnum) = 0;
  
  };
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(INetFwAuthorizedApplications, 0x644efd52, 0xccf9, 0x486c, 0x97,0xa2, 0x39,0xf3,0x52,0x57,0x0b,0x30)
  #endif
  #else
  typedef struct INetFwAuthorizedApplicationsVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          INetFwAuthorizedApplications *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          INetFwAuthorizedApplications *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          INetFwAuthorizedApplications *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          INetFwAuthorizedApplications *This,
          UINT *pctinfo);
  
      HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
          INetFwAuthorizedApplications *This,
          UINT iTInfo,
          LCID lcid,
          ITypeInfo **ppTInfo);
  
      HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
          INetFwAuthorizedApplications *This,
          REFIID riid,
          LPOLESTR *rgszNames,
          UINT cNames,
          LCID lcid,
          DISPID *rgDispId);
  
      HRESULT (STDMETHODCALLTYPE *Invoke)(
          INetFwAuthorizedApplications *This,
          DISPID dispIdMember,
          REFIID riid,
          LCID lcid,
          WORD wFlags,
          DISPPARAMS *pDispParams,
          VARIANT *pVarResult,
          EXCEPINFO *pExcepInfo,
          UINT *puArgErr);
  
      /*** INetFwAuthorizedApplications methods ***/
      HRESULT (STDMETHODCALLTYPE *get_Count)(
          INetFwAuthorizedApplications *This,
          LONG *count);
  
      HRESULT (STDMETHODCALLTYPE *Add)(
          INetFwAuthorizedApplications *This,
          INetFwAuthorizedApplication *app);
  
      HRESULT (STDMETHODCALLTYPE *Remove)(
          INetFwAuthorizedApplications *This,
          BSTR imageFileName);
  
      HRESULT (STDMETHODCALLTYPE *Item)(
          INetFwAuthorizedApplications *This,
          BSTR imageFileName,
          INetFwAuthorizedApplication **app);
  
      HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
          INetFwAuthorizedApplications *This,
          IUnknown **newEnum);
  
      END_INTERFACE
  } INetFwAuthorizedApplicationsVtbl;
  
  interface INetFwAuthorizedApplications {
      CONST_VTBL INetFwAuthorizedApplicationsVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  #ifndef WIDL_C_INLINE_WRAPPERS
  /*** IUnknown methods ***/
  #define INetFwAuthorizedApplications_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define INetFwAuthorizedApplications_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define INetFwAuthorizedApplications_Release(This) (This)->lpVtbl->Release(This)
  /*** IDispatch methods ***/
  #define INetFwAuthorizedApplications_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  #define INetFwAuthorizedApplications_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  #define INetFwAuthorizedApplications_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  #define INetFwAuthorizedApplications_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  /*** INetFwAuthorizedApplications methods ***/
  #define INetFwAuthorizedApplications_get_Count(This,count) (This)->lpVtbl->get_Count(This,count)
  #define INetFwAuthorizedApplications_Add(This,app) (This)->lpVtbl->Add(This,app)
  #define INetFwAuthorizedApplications_Remove(This,imageFileName) (This)->lpVtbl->Remove(This,imageFileName)
  #define INetFwAuthorizedApplications_Item(This,imageFileName,app) (This)->lpVtbl->Item(This,imageFileName,app)
  #define INetFwAuthorizedApplications_get__NewEnum(This,newEnum) (This)->lpVtbl->get__NewEnum(This,newEnum)
  #else
  /*** IUnknown methods ***/
  static FORCEINLINE HRESULT INetFwAuthorizedApplications_QueryInterface(INetFwAuthorizedApplications* This,REFIID riid,void **ppvObject) {
      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  }
  static FORCEINLINE ULONG INetFwAuthorizedApplications_AddRef(INetFwAuthorizedApplications* This) {
      return This->lpVtbl->AddRef(This);
  }
  static FORCEINLINE ULONG INetFwAuthorizedApplications_Release(INetFwAuthorizedApplications* This) {
      return This->lpVtbl->Release(This);
  }
  /*** IDispatch methods ***/
  static FORCEINLINE HRESULT INetFwAuthorizedApplications_GetTypeInfoCount(INetFwAuthorizedApplications* This,UINT *pctinfo) {
      return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplications_GetTypeInfo(INetFwAuthorizedApplications* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
      return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplications_GetIDsOfNames(INetFwAuthorizedApplications* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
      return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplications_Invoke(INetFwAuthorizedApplications* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
      return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  }
  /*** INetFwAuthorizedApplications methods ***/
  static FORCEINLINE HRESULT INetFwAuthorizedApplications_get_Count(INetFwAuthorizedApplications* This,LONG *count) {
      return This->lpVtbl->get_Count(This,count);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplications_Add(INetFwAuthorizedApplications* This,INetFwAuthorizedApplication *app) {
      return This->lpVtbl->Add(This,app);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplications_Remove(INetFwAuthorizedApplications* This,BSTR imageFileName) {
      return This->lpVtbl->Remove(This,imageFileName);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplications_Item(INetFwAuthorizedApplications* This,BSTR imageFileName,INetFwAuthorizedApplication **app) {
      return This->lpVtbl->Item(This,imageFileName,app);
  }
  static FORCEINLINE HRESULT INetFwAuthorizedApplications_get__NewEnum(INetFwAuthorizedApplications* This,IUnknown **newEnum) {
      return This->lpVtbl->get__NewEnum(This,newEnum);
  }
  #endif
  #endif
  
  #endif
  
  
  #endif  /* __INetFwAuthorizedApplications_INTERFACE_DEFINED__ */
  
  /*****************************************************************************
   * INetFwRule interface
   */
  #ifndef __INetFwRule_INTERFACE_DEFINED__
  #define __INetFwRule_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_INetFwRule, 0xaf230d27, 0xbaba, 0x4e42, 0xac,0xed, 0xf5,0x24,0xf2,0x2c,0xfc,0xe2);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  MIDL_INTERFACE("af230d27-baba-4e42-aced-f524f22cfce2")
  INetFwRule : public IDispatch
  {
      virtual HRESULT STDMETHODCALLTYPE get_Name(
          BSTR *name) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Name(
          BSTR name) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Description(
          BSTR *desc) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Description(
          BSTR desc) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_ApplicationName(
          BSTR *imagename) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_ApplicationName(
          BSTR imagename) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_ServiceName(
          BSTR *service) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_ServiceName(
          BSTR service) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Protocol(
          LONG *protocol) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Protocol(
          LONG protocol) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_LocalPorts(
          BSTR *ports) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_LocalPorts(
          BSTR ports) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_RemotePorts(
          BSTR *ports) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_RemotePorts(
          BSTR ports) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_LocalAddresses(
          BSTR *address) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_LocalAddresses(
          BSTR address) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_RemoteAddresses(
          BSTR *address) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_RemoteAddresses(
          BSTR address) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_IcmpTypesAndCodes(
          BSTR *codes) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_IcmpTypesAndCodes(
          BSTR codes) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Direction(
          NET_FW_RULE_DIRECTION *dir) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Direction(
          NET_FW_RULE_DIRECTION dir) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Interfaces(
          VARIANT *interfaces) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Interfaces(
          VARIANT interfaces) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_InterfaceTypes(
          BSTR *types) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_InterfaceTypes(
          BSTR types) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Enabled(
          VARIANT_BOOL *enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Enabled(
          VARIANT_BOOL enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Grouping(
          BSTR *context) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Grouping(
          BSTR context) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Profiles(
          LONG *profiles) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Profiles(
          LONG profiles) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_EdgeTraversal(
          VARIANT_BOOL *enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_EdgeTraversal(
          VARIANT_BOOL enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Action(
          NET_FW_ACTION *action) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_Action(
          NET_FW_ACTION action) = 0;
  
  };
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(INetFwRule, 0xaf230d27, 0xbaba, 0x4e42, 0xac,0xed, 0xf5,0x24,0xf2,0x2c,0xfc,0xe2)
  #endif
  #else
  typedef struct INetFwRuleVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          INetFwRule *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          INetFwRule *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          INetFwRule *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          INetFwRule *This,
          UINT *pctinfo);
  
      HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
          INetFwRule *This,
          UINT iTInfo,
          LCID lcid,
          ITypeInfo **ppTInfo);
  
      HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
          INetFwRule *This,
          REFIID riid,
          LPOLESTR *rgszNames,
          UINT cNames,
          LCID lcid,
          DISPID *rgDispId);
  
      HRESULT (STDMETHODCALLTYPE *Invoke)(
          INetFwRule *This,
          DISPID dispIdMember,
          REFIID riid,
          LCID lcid,
          WORD wFlags,
          DISPPARAMS *pDispParams,
          VARIANT *pVarResult,
          EXCEPINFO *pExcepInfo,
          UINT *puArgErr);
  
      /*** INetFwRule methods ***/
      HRESULT (STDMETHODCALLTYPE *get_Name)(
          INetFwRule *This,
          BSTR *name);
  
      HRESULT (STDMETHODCALLTYPE *put_Name)(
          INetFwRule *This,
          BSTR name);
  
      HRESULT (STDMETHODCALLTYPE *get_Description)(
          INetFwRule *This,
          BSTR *desc);
  
      HRESULT (STDMETHODCALLTYPE *put_Description)(
          INetFwRule *This,
          BSTR desc);
  
      HRESULT (STDMETHODCALLTYPE *get_ApplicationName)(
          INetFwRule *This,
          BSTR *imagename);
  
      HRESULT (STDMETHODCALLTYPE *put_ApplicationName)(
          INetFwRule *This,
          BSTR imagename);
  
      HRESULT (STDMETHODCALLTYPE *get_ServiceName)(
          INetFwRule *This,
          BSTR *service);
  
      HRESULT (STDMETHODCALLTYPE *put_ServiceName)(
          INetFwRule *This,
          BSTR service);
  
      HRESULT (STDMETHODCALLTYPE *get_Protocol)(
          INetFwRule *This,
          LONG *protocol);
  
      HRESULT (STDMETHODCALLTYPE *put_Protocol)(
          INetFwRule *This,
          LONG protocol);
  
      HRESULT (STDMETHODCALLTYPE *get_LocalPorts)(
          INetFwRule *This,
          BSTR *ports);
  
      HRESULT (STDMETHODCALLTYPE *put_LocalPorts)(
          INetFwRule *This,
          BSTR ports);
  
      HRESULT (STDMETHODCALLTYPE *get_RemotePorts)(
          INetFwRule *This,
          BSTR *ports);
  
      HRESULT (STDMETHODCALLTYPE *put_RemotePorts)(
          INetFwRule *This,
          BSTR ports);
  
      HRESULT (STDMETHODCALLTYPE *get_LocalAddresses)(
          INetFwRule *This,
          BSTR *address);
  
      HRESULT (STDMETHODCALLTYPE *put_LocalAddresses)(
          INetFwRule *This,
          BSTR address);
  
      HRESULT (STDMETHODCALLTYPE *get_RemoteAddresses)(
          INetFwRule *This,
          BSTR *address);
  
      HRESULT (STDMETHODCALLTYPE *put_RemoteAddresses)(
          INetFwRule *This,
          BSTR address);
  
      HRESULT (STDMETHODCALLTYPE *get_IcmpTypesAndCodes)(
          INetFwRule *This,
          BSTR *codes);
  
      HRESULT (STDMETHODCALLTYPE *put_IcmpTypesAndCodes)(
          INetFwRule *This,
          BSTR codes);
  
      HRESULT (STDMETHODCALLTYPE *get_Direction)(
          INetFwRule *This,
          NET_FW_RULE_DIRECTION *dir);
  
      HRESULT (STDMETHODCALLTYPE *put_Direction)(
          INetFwRule *This,
          NET_FW_RULE_DIRECTION dir);
  
      HRESULT (STDMETHODCALLTYPE *get_Interfaces)(
          INetFwRule *This,
          VARIANT *interfaces);
  
      HRESULT (STDMETHODCALLTYPE *put_Interfaces)(
          INetFwRule *This,
          VARIANT interfaces);
  
      HRESULT (STDMETHODCALLTYPE *get_InterfaceTypes)(
          INetFwRule *This,
          BSTR *types);
  
      HRESULT (STDMETHODCALLTYPE *put_InterfaceTypes)(
          INetFwRule *This,
          BSTR types);
  
      HRESULT (STDMETHODCALLTYPE *get_Enabled)(
          INetFwRule *This,
          VARIANT_BOOL *enabled);
  
      HRESULT (STDMETHODCALLTYPE *put_Enabled)(
          INetFwRule *This,
          VARIANT_BOOL enabled);
  
      HRESULT (STDMETHODCALLTYPE *get_Grouping)(
          INetFwRule *This,
          BSTR *context);
  
      HRESULT (STDMETHODCALLTYPE *put_Grouping)(
          INetFwRule *This,
          BSTR context);
  
      HRESULT (STDMETHODCALLTYPE *get_Profiles)(
          INetFwRule *This,
          LONG *profiles);
  
      HRESULT (STDMETHODCALLTYPE *put_Profiles)(
          INetFwRule *This,
          LONG profiles);
  
      HRESULT (STDMETHODCALLTYPE *get_EdgeTraversal)(
          INetFwRule *This,
          VARIANT_BOOL *enabled);
  
      HRESULT (STDMETHODCALLTYPE *put_EdgeTraversal)(
          INetFwRule *This,
          VARIANT_BOOL enabled);
  
      HRESULT (STDMETHODCALLTYPE *get_Action)(
          INetFwRule *This,
          NET_FW_ACTION *action);
  
      HRESULT (STDMETHODCALLTYPE *put_Action)(
          INetFwRule *This,
          NET_FW_ACTION action);
  
      END_INTERFACE
  } INetFwRuleVtbl;
  
  interface INetFwRule {
      CONST_VTBL INetFwRuleVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  #ifndef WIDL_C_INLINE_WRAPPERS
  /*** IUnknown methods ***/
  #define INetFwRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define INetFwRule_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define INetFwRule_Release(This) (This)->lpVtbl->Release(This)
  /*** IDispatch methods ***/
  #define INetFwRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  #define INetFwRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  #define INetFwRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  #define INetFwRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  /*** INetFwRule methods ***/
  #define INetFwRule_get_Name(This,name) (This)->lpVtbl->get_Name(This,name)
  #define INetFwRule_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
  #define INetFwRule_get_Description(This,desc) (This)->lpVtbl->get_Description(This,desc)
  #define INetFwRule_put_Description(This,desc) (This)->lpVtbl->put_Description(This,desc)
  #define INetFwRule_get_ApplicationName(This,imagename) (This)->lpVtbl->get_ApplicationName(This,imagename)
  #define INetFwRule_put_ApplicationName(This,imagename) (This)->lpVtbl->put_ApplicationName(This,imagename)
  #define INetFwRule_get_ServiceName(This,service) (This)->lpVtbl->get_ServiceName(This,service)
  #define INetFwRule_put_ServiceName(This,service) (This)->lpVtbl->put_ServiceName(This,service)
  #define INetFwRule_get_Protocol(This,protocol) (This)->lpVtbl->get_Protocol(This,protocol)
  #define INetFwRule_put_Protocol(This,protocol) (This)->lpVtbl->put_Protocol(This,protocol)
  #define INetFwRule_get_LocalPorts(This,ports) (This)->lpVtbl->get_LocalPorts(This,ports)
  #define INetFwRule_put_LocalPorts(This,ports) (This)->lpVtbl->put_LocalPorts(This,ports)
  #define INetFwRule_get_RemotePorts(This,ports) (This)->lpVtbl->get_RemotePorts(This,ports)
  #define INetFwRule_put_RemotePorts(This,ports) (This)->lpVtbl->put_RemotePorts(This,ports)
  #define INetFwRule_get_LocalAddresses(This,address) (This)->lpVtbl->get_LocalAddresses(This,address)
  #define INetFwRule_put_LocalAddresses(This,address) (This)->lpVtbl->put_LocalAddresses(This,address)
  #define INetFwRule_get_RemoteAddresses(This,address) (This)->lpVtbl->get_RemoteAddresses(This,address)
  #define INetFwRule_put_RemoteAddresses(This,address) (This)->lpVtbl->put_RemoteAddresses(This,address)
  #define INetFwRule_get_IcmpTypesAndCodes(This,codes) (This)->lpVtbl->get_IcmpTypesAndCodes(This,codes)
  #define INetFwRule_put_IcmpTypesAndCodes(This,codes) (This)->lpVtbl->put_IcmpTypesAndCodes(This,codes)
  #define INetFwRule_get_Direction(This,dir) (This)->lpVtbl->get_Direction(This,dir)
  #define INetFwRule_put_Direction(This,dir) (This)->lpVtbl->put_Direction(This,dir)
  #define INetFwRule_get_Interfaces(This,interfaces) (This)->lpVtbl->get_Interfaces(This,interfaces)
  #define INetFwRule_put_Interfaces(This,interfaces) (This)->lpVtbl->put_Interfaces(This,interfaces)
  #define INetFwRule_get_InterfaceTypes(This,types) (This)->lpVtbl->get_InterfaceTypes(This,types)
  #define INetFwRule_put_InterfaceTypes(This,types) (This)->lpVtbl->put_InterfaceTypes(This,types)
  #define INetFwRule_get_Enabled(This,enabled) (This)->lpVtbl->get_Enabled(This,enabled)
  #define INetFwRule_put_Enabled(This,enabled) (This)->lpVtbl->put_Enabled(This,enabled)
  #define INetFwRule_get_Grouping(This,context) (This)->lpVtbl->get_Grouping(This,context)
  #define INetFwRule_put_Grouping(This,context) (This)->lpVtbl->put_Grouping(This,context)
  #define INetFwRule_get_Profiles(This,profiles) (This)->lpVtbl->get_Profiles(This,profiles)
  #define INetFwRule_put_Profiles(This,profiles) (This)->lpVtbl->put_Profiles(This,profiles)
  #define INetFwRule_get_EdgeTraversal(This,enabled) (This)->lpVtbl->get_EdgeTraversal(This,enabled)
  #define INetFwRule_put_EdgeTraversal(This,enabled) (This)->lpVtbl->put_EdgeTraversal(This,enabled)
  #define INetFwRule_get_Action(This,action) (This)->lpVtbl->get_Action(This,action)
  #define INetFwRule_put_Action(This,action) (This)->lpVtbl->put_Action(This,action)
  #else
  /*** IUnknown methods ***/
  static FORCEINLINE HRESULT INetFwRule_QueryInterface(INetFwRule* This,REFIID riid,void **ppvObject) {
      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  }
  static FORCEINLINE ULONG INetFwRule_AddRef(INetFwRule* This) {
      return This->lpVtbl->AddRef(This);
  }
  static FORCEINLINE ULONG INetFwRule_Release(INetFwRule* This) {
      return This->lpVtbl->Release(This);
  }
  /*** IDispatch methods ***/
  static FORCEINLINE HRESULT INetFwRule_GetTypeInfoCount(INetFwRule* This,UINT *pctinfo) {
      return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  }
  static FORCEINLINE HRESULT INetFwRule_GetTypeInfo(INetFwRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
      return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  }
  static FORCEINLINE HRESULT INetFwRule_GetIDsOfNames(INetFwRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
      return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  }
  static FORCEINLINE HRESULT INetFwRule_Invoke(INetFwRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
      return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  }
  /*** INetFwRule methods ***/
  static FORCEINLINE HRESULT INetFwRule_get_Name(INetFwRule* This,BSTR *name) {
      return This->lpVtbl->get_Name(This,name);
  }
  static FORCEINLINE HRESULT INetFwRule_put_Name(INetFwRule* This,BSTR name) {
      return This->lpVtbl->put_Name(This,name);
  }
  static FORCEINLINE HRESULT INetFwRule_get_Description(INetFwRule* This,BSTR *desc) {
      return This->lpVtbl->get_Description(This,desc);
  }
  static FORCEINLINE HRESULT INetFwRule_put_Description(INetFwRule* This,BSTR desc) {
      return This->lpVtbl->put_Description(This,desc);
  }
  static FORCEINLINE HRESULT INetFwRule_get_ApplicationName(INetFwRule* This,BSTR *imagename) {
      return This->lpVtbl->get_ApplicationName(This,imagename);
  }
  static FORCEINLINE HRESULT INetFwRule_put_ApplicationName(INetFwRule* This,BSTR imagename) {
      return This->lpVtbl->put_ApplicationName(This,imagename);
  }
  static FORCEINLINE HRESULT INetFwRule_get_ServiceName(INetFwRule* This,BSTR *service) {
      return This->lpVtbl->get_ServiceName(This,service);
  }
  static FORCEINLINE HRESULT INetFwRule_put_ServiceName(INetFwRule* This,BSTR service) {
      return This->lpVtbl->put_ServiceName(This,service);
  }
  static FORCEINLINE HRESULT INetFwRule_get_Protocol(INetFwRule* This,LONG *protocol) {
      return This->lpVtbl->get_Protocol(This,protocol);
  }
  static FORCEINLINE HRESULT INetFwRule_put_Protocol(INetFwRule* This,LONG protocol) {
      return This->lpVtbl->put_Protocol(This,protocol);
  }
  static FORCEINLINE HRESULT INetFwRule_get_LocalPorts(INetFwRule* This,BSTR *ports) {
      return This->lpVtbl->get_LocalPorts(This,ports);
  }
  static FORCEINLINE HRESULT INetFwRule_put_LocalPorts(INetFwRule* This,BSTR ports) {
      return This->lpVtbl->put_LocalPorts(This,ports);
  }
  static FORCEINLINE HRESULT INetFwRule_get_RemotePorts(INetFwRule* This,BSTR *ports) {
      return This->lpVtbl->get_RemotePorts(This,ports);
  }
  static FORCEINLINE HRESULT INetFwRule_put_RemotePorts(INetFwRule* This,BSTR ports) {
      return This->lpVtbl->put_RemotePorts(This,ports);
  }
  static FORCEINLINE HRESULT INetFwRule_get_LocalAddresses(INetFwRule* This,BSTR *address) {
      return This->lpVtbl->get_LocalAddresses(This,address);
  }
  static FORCEINLINE HRESULT INetFwRule_put_LocalAddresses(INetFwRule* This,BSTR address) {
      return This->lpVtbl->put_LocalAddresses(This,address);
  }
  static FORCEINLINE HRESULT INetFwRule_get_RemoteAddresses(INetFwRule* This,BSTR *address) {
      return This->lpVtbl->get_RemoteAddresses(This,address);
  }
  static FORCEINLINE HRESULT INetFwRule_put_RemoteAddresses(INetFwRule* This,BSTR address) {
      return This->lpVtbl->put_RemoteAddresses(This,address);
  }
  static FORCEINLINE HRESULT INetFwRule_get_IcmpTypesAndCodes(INetFwRule* This,BSTR *codes) {
      return This->lpVtbl->get_IcmpTypesAndCodes(This,codes);
  }
  static FORCEINLINE HRESULT INetFwRule_put_IcmpTypesAndCodes(INetFwRule* This,BSTR codes) {
      return This->lpVtbl->put_IcmpTypesAndCodes(This,codes);
  }
  static FORCEINLINE HRESULT INetFwRule_get_Direction(INetFwRule* This,NET_FW_RULE_DIRECTION *dir) {
      return This->lpVtbl->get_Direction(This,dir);
  }
  static FORCEINLINE HRESULT INetFwRule_put_Direction(INetFwRule* This,NET_FW_RULE_DIRECTION dir) {
      return This->lpVtbl->put_Direction(This,dir);
  }
  static FORCEINLINE HRESULT INetFwRule_get_Interfaces(INetFwRule* This,VARIANT *interfaces) {
      return This->lpVtbl->get_Interfaces(This,interfaces);
  }
  static FORCEINLINE HRESULT INetFwRule_put_Interfaces(INetFwRule* This,VARIANT interfaces) {
      return This->lpVtbl->put_Interfaces(This,interfaces);
  }
  static FORCEINLINE HRESULT INetFwRule_get_InterfaceTypes(INetFwRule* This,BSTR *types) {
      return This->lpVtbl->get_InterfaceTypes(This,types);
  }
  static FORCEINLINE HRESULT INetFwRule_put_InterfaceTypes(INetFwRule* This,BSTR types) {
      return This->lpVtbl->put_InterfaceTypes(This,types);
  }
  static FORCEINLINE HRESULT INetFwRule_get_Enabled(INetFwRule* This,VARIANT_BOOL *enabled) {
      return This->lpVtbl->get_Enabled(This,enabled);
  }
  static FORCEINLINE HRESULT INetFwRule_put_Enabled(INetFwRule* This,VARIANT_BOOL enabled) {
      return This->lpVtbl->put_Enabled(This,enabled);
  }
  static FORCEINLINE HRESULT INetFwRule_get_Grouping(INetFwRule* This,BSTR *context) {
      return This->lpVtbl->get_Grouping(This,context);
  }
  static FORCEINLINE HRESULT INetFwRule_put_Grouping(INetFwRule* This,BSTR context) {
      return This->lpVtbl->put_Grouping(This,context);
  }
  static FORCEINLINE HRESULT INetFwRule_get_Profiles(INetFwRule* This,LONG *profiles) {
      return This->lpVtbl->get_Profiles(This,profiles);
  }
  static FORCEINLINE HRESULT INetFwRule_put_Profiles(INetFwRule* This,LONG profiles) {
      return This->lpVtbl->put_Profiles(This,profiles);
  }
  static FORCEINLINE HRESULT INetFwRule_get_EdgeTraversal(INetFwRule* This,VARIANT_BOOL *enabled) {
      return This->lpVtbl->get_EdgeTraversal(This,enabled);
  }
  static FORCEINLINE HRESULT INetFwRule_put_EdgeTraversal(INetFwRule* This,VARIANT_BOOL enabled) {
      return This->lpVtbl->put_EdgeTraversal(This,enabled);
  }
  static FORCEINLINE HRESULT INetFwRule_get_Action(INetFwRule* This,NET_FW_ACTION *action) {
      return This->lpVtbl->get_Action(This,action);
  }
  static FORCEINLINE HRESULT INetFwRule_put_Action(INetFwRule* This,NET_FW_ACTION action) {
      return This->lpVtbl->put_Action(This,action);
  }
  #endif
  #endif
  
  #endif
  
  
  #endif  /* __INetFwRule_INTERFACE_DEFINED__ */
  
  /*****************************************************************************
   * INetFwRules interface
   */
  #ifndef __INetFwRules_INTERFACE_DEFINED__
  #define __INetFwRules_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_INetFwRules, 0x9c4c6277, 0x5027, 0x441e, 0xaf,0xae, 0xca,0x1f,0x54,0x2d,0xa0,0x09);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  MIDL_INTERFACE("9c4c6277-5027-441e-afae-ca1f542da009")
  INetFwRules : public IDispatch
  {
      virtual HRESULT STDMETHODCALLTYPE get_Count(
          LONG *count) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE Add(
          INetFwRule *rule) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE Remove(
          BSTR name) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE Item(
          BSTR name,
          INetFwRule **rule) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
          IUnknown **newEnum) = 0;
  
  };
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(INetFwRules, 0x9c4c6277, 0x5027, 0x441e, 0xaf,0xae, 0xca,0x1f,0x54,0x2d,0xa0,0x09)
  #endif
  #else
  typedef struct INetFwRulesVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          INetFwRules *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          INetFwRules *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          INetFwRules *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          INetFwRules *This,
          UINT *pctinfo);
  
      HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
          INetFwRules *This,
          UINT iTInfo,
          LCID lcid,
          ITypeInfo **ppTInfo);
  
      HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
          INetFwRules *This,
          REFIID riid,
          LPOLESTR *rgszNames,
          UINT cNames,
          LCID lcid,
          DISPID *rgDispId);
  
      HRESULT (STDMETHODCALLTYPE *Invoke)(
          INetFwRules *This,
          DISPID dispIdMember,
          REFIID riid,
          LCID lcid,
          WORD wFlags,
          DISPPARAMS *pDispParams,
          VARIANT *pVarResult,
          EXCEPINFO *pExcepInfo,
          UINT *puArgErr);
  
      /*** INetFwRules methods ***/
      HRESULT (STDMETHODCALLTYPE *get_Count)(
          INetFwRules *This,
          LONG *count);
  
      HRESULT (STDMETHODCALLTYPE *Add)(
          INetFwRules *This,
          INetFwRule *rule);
  
      HRESULT (STDMETHODCALLTYPE *Remove)(
          INetFwRules *This,
          BSTR name);
  
      HRESULT (STDMETHODCALLTYPE *Item)(
          INetFwRules *This,
          BSTR name,
          INetFwRule **rule);
  
      HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
          INetFwRules *This,
          IUnknown **newEnum);
  
      END_INTERFACE
  } INetFwRulesVtbl;
  
  interface INetFwRules {
      CONST_VTBL INetFwRulesVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  #ifndef WIDL_C_INLINE_WRAPPERS
  /*** IUnknown methods ***/
  #define INetFwRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define INetFwRules_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define INetFwRules_Release(This) (This)->lpVtbl->Release(This)
  /*** IDispatch methods ***/
  #define INetFwRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  #define INetFwRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  #define INetFwRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  #define INetFwRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  /*** INetFwRules methods ***/
  #define INetFwRules_get_Count(This,count) (This)->lpVtbl->get_Count(This,count)
  #define INetFwRules_Add(This,rule) (This)->lpVtbl->Add(This,rule)
  #define INetFwRules_Remove(This,name) (This)->lpVtbl->Remove(This,name)
  #define INetFwRules_Item(This,name,rule) (This)->lpVtbl->Item(This,name,rule)
  #define INetFwRules_get__NewEnum(This,newEnum) (This)->lpVtbl->get__NewEnum(This,newEnum)
  #else
  /*** IUnknown methods ***/
  static FORCEINLINE HRESULT INetFwRules_QueryInterface(INetFwRules* This,REFIID riid,void **ppvObject) {
      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  }
  static FORCEINLINE ULONG INetFwRules_AddRef(INetFwRules* This) {
      return This->lpVtbl->AddRef(This);
  }
  static FORCEINLINE ULONG INetFwRules_Release(INetFwRules* This) {
      return This->lpVtbl->Release(This);
  }
  /*** IDispatch methods ***/
  static FORCEINLINE HRESULT INetFwRules_GetTypeInfoCount(INetFwRules* This,UINT *pctinfo) {
      return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  }
  static FORCEINLINE HRESULT INetFwRules_GetTypeInfo(INetFwRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
      return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  }
  static FORCEINLINE HRESULT INetFwRules_GetIDsOfNames(INetFwRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
      return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  }
  static FORCEINLINE HRESULT INetFwRules_Invoke(INetFwRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
      return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  }
  /*** INetFwRules methods ***/
  static FORCEINLINE HRESULT INetFwRules_get_Count(INetFwRules* This,LONG *count) {
      return This->lpVtbl->get_Count(This,count);
  }
  static FORCEINLINE HRESULT INetFwRules_Add(INetFwRules* This,INetFwRule *rule) {
      return This->lpVtbl->Add(This,rule);
  }
  static FORCEINLINE HRESULT INetFwRules_Remove(INetFwRules* This,BSTR name) {
      return This->lpVtbl->Remove(This,name);
  }
  static FORCEINLINE HRESULT INetFwRules_Item(INetFwRules* This,BSTR name,INetFwRule **rule) {
      return This->lpVtbl->Item(This,name,rule);
  }
  static FORCEINLINE HRESULT INetFwRules_get__NewEnum(INetFwRules* This,IUnknown **newEnum) {
      return This->lpVtbl->get__NewEnum(This,newEnum);
  }
  #endif
  #endif
  
  #endif
  
  
  #endif  /* __INetFwRules_INTERFACE_DEFINED__ */
  
  /*****************************************************************************
   * INetFwServiceRestriction interface
   */
  #ifndef __INetFwServiceRestriction_INTERFACE_DEFINED__
  #define __INetFwServiceRestriction_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_INetFwServiceRestriction, 0x8267bbe3, 0xf890, 0x491c, 0xb7,0xb6, 0x2d,0xb1,0xef,0x0e,0x5d,0x2b);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  MIDL_INTERFACE("8267bbe3-f890-491c-b7b6-2db1ef0e5d2b")
  INetFwServiceRestriction : public IDispatch
  {
      virtual HRESULT STDMETHODCALLTYPE RestrictService(
          BSTR serviceName,
          BSTR appName,
          VARIANT_BOOL restrictService,
          VARIANT_BOOL serviceSidRestricted) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE ServiceRestricted(
          BSTR serviceName,
          BSTR appName,
          VARIANT_BOOL *serviceRestricted) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Rules(
          INetFwRules **rules) = 0;
  
  };
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(INetFwServiceRestriction, 0x8267bbe3, 0xf890, 0x491c, 0xb7,0xb6, 0x2d,0xb1,0xef,0x0e,0x5d,0x2b)
  #endif
  #else
  typedef struct INetFwServiceRestrictionVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          INetFwServiceRestriction *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          INetFwServiceRestriction *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          INetFwServiceRestriction *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          INetFwServiceRestriction *This,
          UINT *pctinfo);
  
      HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
          INetFwServiceRestriction *This,
          UINT iTInfo,
          LCID lcid,
          ITypeInfo **ppTInfo);
  
      HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
          INetFwServiceRestriction *This,
          REFIID riid,
          LPOLESTR *rgszNames,
          UINT cNames,
          LCID lcid,
          DISPID *rgDispId);
  
      HRESULT (STDMETHODCALLTYPE *Invoke)(
          INetFwServiceRestriction *This,
          DISPID dispIdMember,
          REFIID riid,
          LCID lcid,
          WORD wFlags,
          DISPPARAMS *pDispParams,
          VARIANT *pVarResult,
          EXCEPINFO *pExcepInfo,
          UINT *puArgErr);
  
      /*** INetFwServiceRestriction methods ***/
      HRESULT (STDMETHODCALLTYPE *RestrictService)(
          INetFwServiceRestriction *This,
          BSTR serviceName,
          BSTR appName,
          VARIANT_BOOL restrictService,
          VARIANT_BOOL serviceSidRestricted);
  
      HRESULT (STDMETHODCALLTYPE *ServiceRestricted)(
          INetFwServiceRestriction *This,
          BSTR serviceName,
          BSTR appName,
          VARIANT_BOOL *serviceRestricted);
  
      HRESULT (STDMETHODCALLTYPE *get_Rules)(
          INetFwServiceRestriction *This,
          INetFwRules **rules);
  
      END_INTERFACE
  } INetFwServiceRestrictionVtbl;
  
  interface INetFwServiceRestriction {
      CONST_VTBL INetFwServiceRestrictionVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  #ifndef WIDL_C_INLINE_WRAPPERS
  /*** IUnknown methods ***/
  #define INetFwServiceRestriction_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define INetFwServiceRestriction_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define INetFwServiceRestriction_Release(This) (This)->lpVtbl->Release(This)
  /*** IDispatch methods ***/
  #define INetFwServiceRestriction_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  #define INetFwServiceRestriction_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  #define INetFwServiceRestriction_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  #define INetFwServiceRestriction_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  /*** INetFwServiceRestriction methods ***/
  #define INetFwServiceRestriction_RestrictService(This,serviceName,appName,restrictService,serviceSidRestricted) (This)->lpVtbl->RestrictService(This,serviceName,appName,restrictService,serviceSidRestricted)
  #define INetFwServiceRestriction_ServiceRestricted(This,serviceName,appName,serviceRestricted) (This)->lpVtbl->ServiceRestricted(This,serviceName,appName,serviceRestricted)
  #define INetFwServiceRestriction_get_Rules(This,rules) (This)->lpVtbl->get_Rules(This,rules)
  #else
  /*** IUnknown methods ***/
  static FORCEINLINE HRESULT INetFwServiceRestriction_QueryInterface(INetFwServiceRestriction* This,REFIID riid,void **ppvObject) {
      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  }
  static FORCEINLINE ULONG INetFwServiceRestriction_AddRef(INetFwServiceRestriction* This) {
      return This->lpVtbl->AddRef(This);
  }
  static FORCEINLINE ULONG INetFwServiceRestriction_Release(INetFwServiceRestriction* This) {
      return This->lpVtbl->Release(This);
  }
  /*** IDispatch methods ***/
  static FORCEINLINE HRESULT INetFwServiceRestriction_GetTypeInfoCount(INetFwServiceRestriction* This,UINT *pctinfo) {
      return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  }
  static FORCEINLINE HRESULT INetFwServiceRestriction_GetTypeInfo(INetFwServiceRestriction* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
      return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  }
  static FORCEINLINE HRESULT INetFwServiceRestriction_GetIDsOfNames(INetFwServiceRestriction* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
      return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  }
  static FORCEINLINE HRESULT INetFwServiceRestriction_Invoke(INetFwServiceRestriction* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
      return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  }
  /*** INetFwServiceRestriction methods ***/
  static FORCEINLINE HRESULT INetFwServiceRestriction_RestrictService(INetFwServiceRestriction* This,BSTR serviceName,BSTR appName,VARIANT_BOOL restrictService,VARIANT_BOOL serviceSidRestricted) {
      return This->lpVtbl->RestrictService(This,serviceName,appName,restrictService,serviceSidRestricted);
  }
  static FORCEINLINE HRESULT INetFwServiceRestriction_ServiceRestricted(INetFwServiceRestriction* This,BSTR serviceName,BSTR appName,VARIANT_BOOL *serviceRestricted) {
      return This->lpVtbl->ServiceRestricted(This,serviceName,appName,serviceRestricted);
  }
  static FORCEINLINE HRESULT INetFwServiceRestriction_get_Rules(INetFwServiceRestriction* This,INetFwRules **rules) {
      return This->lpVtbl->get_Rules(This,rules);
  }
  #endif
  #endif
  
  #endif
  
  
  #endif  /* __INetFwServiceRestriction_INTERFACE_DEFINED__ */
  
  /*****************************************************************************
   * INetFwProfile interface
   */
  #ifndef __INetFwProfile_INTERFACE_DEFINED__
  #define __INetFwProfile_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_INetFwProfile, 0x174a0dda, 0xe9f9, 0x449d, 0x99,0x3b, 0x21,0xab,0x66,0x7c,0xa4,0x56);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  MIDL_INTERFACE("174a0dda-e9f9-449d-993b-21ab667ca456")
  INetFwProfile : public IDispatch
  {
      virtual HRESULT STDMETHODCALLTYPE get_Type(
          NET_FW_PROFILE_TYPE *type) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_FirewallEnabled(
          VARIANT_BOOL *enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_FirewallEnabled(
          VARIANT_BOOL enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_ExceptionsNotAllowed(
          VARIANT_BOOL *notAllowed) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_ExceptionsNotAllowed(
          VARIANT_BOOL notAllowed) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_NotificationsDisabled(
          VARIANT_BOOL *disabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_NotificationsDisabled(
          VARIANT_BOOL disabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_UnicastResponsesToMulticastBroadcastDisabled(
          VARIANT_BOOL *disabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_UnicastResponsesToMulticastBroadcastDisabled(
          VARIANT_BOOL disabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_RemoteAdminSettings(
          INetFwRemoteAdminSettings **remoteAdminSettings) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_IcmpSettings(
          INetFwIcmpSettings **icmpSettings) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_GloballyOpenPorts(
          INetFwOpenPorts **openPorts) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Services(
          INetFwServices **services) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_AuthorizedApplications(
          INetFwAuthorizedApplications **apps) = 0;
  
  };
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(INetFwProfile, 0x174a0dda, 0xe9f9, 0x449d, 0x99,0x3b, 0x21,0xab,0x66,0x7c,0xa4,0x56)
  #endif
  #else
  typedef struct INetFwProfileVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          INetFwProfile *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          INetFwProfile *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          INetFwProfile *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          INetFwProfile *This,
          UINT *pctinfo);
  
      HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
          INetFwProfile *This,
          UINT iTInfo,
          LCID lcid,
          ITypeInfo **ppTInfo);
  
      HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
          INetFwProfile *This,
          REFIID riid,
          LPOLESTR *rgszNames,
          UINT cNames,
          LCID lcid,
          DISPID *rgDispId);
  
      HRESULT (STDMETHODCALLTYPE *Invoke)(
          INetFwProfile *This,
          DISPID dispIdMember,
          REFIID riid,
          LCID lcid,
          WORD wFlags,
          DISPPARAMS *pDispParams,
          VARIANT *pVarResult,
          EXCEPINFO *pExcepInfo,
          UINT *puArgErr);
  
      /*** INetFwProfile methods ***/
      HRESULT (STDMETHODCALLTYPE *get_Type)(
          INetFwProfile *This,
          NET_FW_PROFILE_TYPE *type);
  
      HRESULT (STDMETHODCALLTYPE *get_FirewallEnabled)(
          INetFwProfile *This,
          VARIANT_BOOL *enabled);
  
      HRESULT (STDMETHODCALLTYPE *put_FirewallEnabled)(
          INetFwProfile *This,
          VARIANT_BOOL enabled);
  
      HRESULT (STDMETHODCALLTYPE *get_ExceptionsNotAllowed)(
          INetFwProfile *This,
          VARIANT_BOOL *notAllowed);
  
      HRESULT (STDMETHODCALLTYPE *put_ExceptionsNotAllowed)(
          INetFwProfile *This,
          VARIANT_BOOL notAllowed);
  
      HRESULT (STDMETHODCALLTYPE *get_NotificationsDisabled)(
          INetFwProfile *This,
          VARIANT_BOOL *disabled);
  
      HRESULT (STDMETHODCALLTYPE *put_NotificationsDisabled)(
          INetFwProfile *This,
          VARIANT_BOOL disabled);
  
      HRESULT (STDMETHODCALLTYPE *get_UnicastResponsesToMulticastBroadcastDisabled)(
          INetFwProfile *This,
          VARIANT_BOOL *disabled);
  
      HRESULT (STDMETHODCALLTYPE *put_UnicastResponsesToMulticastBroadcastDisabled)(
          INetFwProfile *This,
          VARIANT_BOOL disabled);
  
      HRESULT (STDMETHODCALLTYPE *get_RemoteAdminSettings)(
          INetFwProfile *This,
          INetFwRemoteAdminSettings **remoteAdminSettings);
  
      HRESULT (STDMETHODCALLTYPE *get_IcmpSettings)(
          INetFwProfile *This,
          INetFwIcmpSettings **icmpSettings);
  
      HRESULT (STDMETHODCALLTYPE *get_GloballyOpenPorts)(
          INetFwProfile *This,
          INetFwOpenPorts **openPorts);
  
      HRESULT (STDMETHODCALLTYPE *get_Services)(
          INetFwProfile *This,
          INetFwServices **services);
  
      HRESULT (STDMETHODCALLTYPE *get_AuthorizedApplications)(
          INetFwProfile *This,
          INetFwAuthorizedApplications **apps);
  
      END_INTERFACE
  } INetFwProfileVtbl;
  
  interface INetFwProfile {
      CONST_VTBL INetFwProfileVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  #ifndef WIDL_C_INLINE_WRAPPERS
  /*** IUnknown methods ***/
  #define INetFwProfile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define INetFwProfile_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define INetFwProfile_Release(This) (This)->lpVtbl->Release(This)
  /*** IDispatch methods ***/
  #define INetFwProfile_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  #define INetFwProfile_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  #define INetFwProfile_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  #define INetFwProfile_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  /*** INetFwProfile methods ***/
  #define INetFwProfile_get_Type(This,type) (This)->lpVtbl->get_Type(This,type)
  #define INetFwProfile_get_FirewallEnabled(This,enabled) (This)->lpVtbl->get_FirewallEnabled(This,enabled)
  #define INetFwProfile_put_FirewallEnabled(This,enabled) (This)->lpVtbl->put_FirewallEnabled(This,enabled)
  #define INetFwProfile_get_ExceptionsNotAllowed(This,notAllowed) (This)->lpVtbl->get_ExceptionsNotAllowed(This,notAllowed)
  #define INetFwProfile_put_ExceptionsNotAllowed(This,notAllowed) (This)->lpVtbl->put_ExceptionsNotAllowed(This,notAllowed)
  #define INetFwProfile_get_NotificationsDisabled(This,disabled) (This)->lpVtbl->get_NotificationsDisabled(This,disabled)
  #define INetFwProfile_put_NotificationsDisabled(This,disabled) (This)->lpVtbl->put_NotificationsDisabled(This,disabled)
  #define INetFwProfile_get_UnicastResponsesToMulticastBroadcastDisabled(This,disabled) (This)->lpVtbl->get_UnicastResponsesToMulticastBroadcastDisabled(This,disabled)
  #define INetFwProfile_put_UnicastResponsesToMulticastBroadcastDisabled(This,disabled) (This)->lpVtbl->put_UnicastResponsesToMulticastBroadcastDisabled(This,disabled)
  #define INetFwProfile_get_RemoteAdminSettings(This,remoteAdminSettings) (This)->lpVtbl->get_RemoteAdminSettings(This,remoteAdminSettings)
  #define INetFwProfile_get_IcmpSettings(This,icmpSettings) (This)->lpVtbl->get_IcmpSettings(This,icmpSettings)
  #define INetFwProfile_get_GloballyOpenPorts(This,openPorts) (This)->lpVtbl->get_GloballyOpenPorts(This,openPorts)
  #define INetFwProfile_get_Services(This,services) (This)->lpVtbl->get_Services(This,services)
  #define INetFwProfile_get_AuthorizedApplications(This,apps) (This)->lpVtbl->get_AuthorizedApplications(This,apps)
  #else
  /*** IUnknown methods ***/
  static FORCEINLINE HRESULT INetFwProfile_QueryInterface(INetFwProfile* This,REFIID riid,void **ppvObject) {
      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  }
  static FORCEINLINE ULONG INetFwProfile_AddRef(INetFwProfile* This) {
      return This->lpVtbl->AddRef(This);
  }
  static FORCEINLINE ULONG INetFwProfile_Release(INetFwProfile* This) {
      return This->lpVtbl->Release(This);
  }
  /*** IDispatch methods ***/
  static FORCEINLINE HRESULT INetFwProfile_GetTypeInfoCount(INetFwProfile* This,UINT *pctinfo) {
      return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  }
  static FORCEINLINE HRESULT INetFwProfile_GetTypeInfo(INetFwProfile* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
      return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  }
  static FORCEINLINE HRESULT INetFwProfile_GetIDsOfNames(INetFwProfile* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
      return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  }
  static FORCEINLINE HRESULT INetFwProfile_Invoke(INetFwProfile* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
      return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  }
  /*** INetFwProfile methods ***/
  static FORCEINLINE HRESULT INetFwProfile_get_Type(INetFwProfile* This,NET_FW_PROFILE_TYPE *type) {
      return This->lpVtbl->get_Type(This,type);
  }
  static FORCEINLINE HRESULT INetFwProfile_get_FirewallEnabled(INetFwProfile* This,VARIANT_BOOL *enabled) {
      return This->lpVtbl->get_FirewallEnabled(This,enabled);
  }
  static FORCEINLINE HRESULT INetFwProfile_put_FirewallEnabled(INetFwProfile* This,VARIANT_BOOL enabled) {
      return This->lpVtbl->put_FirewallEnabled(This,enabled);
  }
  static FORCEINLINE HRESULT INetFwProfile_get_ExceptionsNotAllowed(INetFwProfile* This,VARIANT_BOOL *notAllowed) {
      return This->lpVtbl->get_ExceptionsNotAllowed(This,notAllowed);
  }
  static FORCEINLINE HRESULT INetFwProfile_put_ExceptionsNotAllowed(INetFwProfile* This,VARIANT_BOOL notAllowed) {
      return This->lpVtbl->put_ExceptionsNotAllowed(This,notAllowed);
  }
  static FORCEINLINE HRESULT INetFwProfile_get_NotificationsDisabled(INetFwProfile* This,VARIANT_BOOL *disabled) {
      return This->lpVtbl->get_NotificationsDisabled(This,disabled);
  }
  static FORCEINLINE HRESULT INetFwProfile_put_NotificationsDisabled(INetFwProfile* This,VARIANT_BOOL disabled) {
      return This->lpVtbl->put_NotificationsDisabled(This,disabled);
  }
  static FORCEINLINE HRESULT INetFwProfile_get_UnicastResponsesToMulticastBroadcastDisabled(INetFwProfile* This,VARIANT_BOOL *disabled) {
      return This->lpVtbl->get_UnicastResponsesToMulticastBroadcastDisabled(This,disabled);
  }
  static FORCEINLINE HRESULT INetFwProfile_put_UnicastResponsesToMulticastBroadcastDisabled(INetFwProfile* This,VARIANT_BOOL disabled) {
      return This->lpVtbl->put_UnicastResponsesToMulticastBroadcastDisabled(This,disabled);
  }
  static FORCEINLINE HRESULT INetFwProfile_get_RemoteAdminSettings(INetFwProfile* This,INetFwRemoteAdminSettings **remoteAdminSettings) {
      return This->lpVtbl->get_RemoteAdminSettings(This,remoteAdminSettings);
  }
  static FORCEINLINE HRESULT INetFwProfile_get_IcmpSettings(INetFwProfile* This,INetFwIcmpSettings **icmpSettings) {
      return This->lpVtbl->get_IcmpSettings(This,icmpSettings);
  }
  static FORCEINLINE HRESULT INetFwProfile_get_GloballyOpenPorts(INetFwProfile* This,INetFwOpenPorts **openPorts) {
      return This->lpVtbl->get_GloballyOpenPorts(This,openPorts);
  }
  static FORCEINLINE HRESULT INetFwProfile_get_Services(INetFwProfile* This,INetFwServices **services) {
      return This->lpVtbl->get_Services(This,services);
  }
  static FORCEINLINE HRESULT INetFwProfile_get_AuthorizedApplications(INetFwProfile* This,INetFwAuthorizedApplications **apps) {
      return This->lpVtbl->get_AuthorizedApplications(This,apps);
  }
  #endif
  #endif
  
  #endif
  
  
  #endif  /* __INetFwProfile_INTERFACE_DEFINED__ */
  
  /*****************************************************************************
   * INetFwPolicy interface
   */
  #ifndef __INetFwPolicy_INTERFACE_DEFINED__
  #define __INetFwPolicy_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_INetFwPolicy, 0xd46d2478, 0x9ac9, 0x4008, 0x9d,0xc7, 0x55,0x63,0xce,0x55,0x36,0xcc);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  MIDL_INTERFACE("d46d2478-9ac9-4008-9dc7-5563ce5536cc")
  INetFwPolicy : public IDispatch
  {
      virtual HRESULT STDMETHODCALLTYPE get_CurrentProfile(
          INetFwProfile **profile) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE GetProfileByType(
          NET_FW_PROFILE_TYPE profileType,
          INetFwProfile **profile) = 0;
  
  };
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(INetFwPolicy, 0xd46d2478, 0x9ac9, 0x4008, 0x9d,0xc7, 0x55,0x63,0xce,0x55,0x36,0xcc)
  #endif
  #else
  typedef struct INetFwPolicyVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          INetFwPolicy *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          INetFwPolicy *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          INetFwPolicy *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          INetFwPolicy *This,
          UINT *pctinfo);
  
      HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
          INetFwPolicy *This,
          UINT iTInfo,
          LCID lcid,
          ITypeInfo **ppTInfo);
  
      HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
          INetFwPolicy *This,
          REFIID riid,
          LPOLESTR *rgszNames,
          UINT cNames,
          LCID lcid,
          DISPID *rgDispId);
  
      HRESULT (STDMETHODCALLTYPE *Invoke)(
          INetFwPolicy *This,
          DISPID dispIdMember,
          REFIID riid,
          LCID lcid,
          WORD wFlags,
          DISPPARAMS *pDispParams,
          VARIANT *pVarResult,
          EXCEPINFO *pExcepInfo,
          UINT *puArgErr);
  
      /*** INetFwPolicy methods ***/
      HRESULT (STDMETHODCALLTYPE *get_CurrentProfile)(
          INetFwPolicy *This,
          INetFwProfile **profile);
  
      HRESULT (STDMETHODCALLTYPE *GetProfileByType)(
          INetFwPolicy *This,
          NET_FW_PROFILE_TYPE profileType,
          INetFwProfile **profile);
  
      END_INTERFACE
  } INetFwPolicyVtbl;
  
  interface INetFwPolicy {
      CONST_VTBL INetFwPolicyVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  #ifndef WIDL_C_INLINE_WRAPPERS
  /*** IUnknown methods ***/
  #define INetFwPolicy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define INetFwPolicy_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define INetFwPolicy_Release(This) (This)->lpVtbl->Release(This)
  /*** IDispatch methods ***/
  #define INetFwPolicy_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  #define INetFwPolicy_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  #define INetFwPolicy_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  #define INetFwPolicy_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  /*** INetFwPolicy methods ***/
  #define INetFwPolicy_get_CurrentProfile(This,profile) (This)->lpVtbl->get_CurrentProfile(This,profile)
  #define INetFwPolicy_GetProfileByType(This,profileType,profile) (This)->lpVtbl->GetProfileByType(This,profileType,profile)
  #else
  /*** IUnknown methods ***/
  static FORCEINLINE HRESULT INetFwPolicy_QueryInterface(INetFwPolicy* This,REFIID riid,void **ppvObject) {
      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  }
  static FORCEINLINE ULONG INetFwPolicy_AddRef(INetFwPolicy* This) {
      return This->lpVtbl->AddRef(This);
  }
  static FORCEINLINE ULONG INetFwPolicy_Release(INetFwPolicy* This) {
      return This->lpVtbl->Release(This);
  }
  /*** IDispatch methods ***/
  static FORCEINLINE HRESULT INetFwPolicy_GetTypeInfoCount(INetFwPolicy* This,UINT *pctinfo) {
      return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  }
  static FORCEINLINE HRESULT INetFwPolicy_GetTypeInfo(INetFwPolicy* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
      return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  }
  static FORCEINLINE HRESULT INetFwPolicy_GetIDsOfNames(INetFwPolicy* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
      return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  }
  static FORCEINLINE HRESULT INetFwPolicy_Invoke(INetFwPolicy* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
      return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  }
  /*** INetFwPolicy methods ***/
  static FORCEINLINE HRESULT INetFwPolicy_get_CurrentProfile(INetFwPolicy* This,INetFwProfile **profile) {
      return This->lpVtbl->get_CurrentProfile(This,profile);
  }
  static FORCEINLINE HRESULT INetFwPolicy_GetProfileByType(INetFwPolicy* This,NET_FW_PROFILE_TYPE profileType,INetFwProfile **profile) {
      return This->lpVtbl->GetProfileByType(This,profileType,profile);
  }
  #endif
  #endif
  
  #endif
  
  
  #endif  /* __INetFwPolicy_INTERFACE_DEFINED__ */
  
  /*****************************************************************************
   * INetFwPolicy2 interface
   */
  #ifndef __INetFwPolicy2_INTERFACE_DEFINED__
  #define __INetFwPolicy2_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_INetFwPolicy2, 0x98325047, 0xc671, 0x4174, 0x8d,0x81, 0xde,0xfc,0xd3,0xf0,0x31,0x86);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  MIDL_INTERFACE("98325047-c671-4174-8d81-defcd3f03186")
  INetFwPolicy2 : public IDispatch
  {
      virtual HRESULT STDMETHODCALLTYPE get_CurrentProfileTypes(
          LONG *profile) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_FirewallEnabled(
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL *enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_FirewallEnabled(
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_ExcludedInterfaces(
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT *interfaces) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_ExcludedInterfaces(
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT interfaces) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_BlockAllInboundTraffic(
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL *block) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_BlockAllInboundTraffic(
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL block) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_NotificationsDisabled(
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL *disabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_NotificationsDisabled(
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL disabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_UnicastResponsesToMulticastBroadcastDisabled(
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL *disabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_UnicastResponsesToMulticastBroadcastDisabled(
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL disabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_Rules(
          INetFwRules **rules) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_ServiceRestriction(
          INetFwServiceRestriction **ServiceRestriction) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE EnableRuleGroup(
          LONG profileTypesBitmask,
          BSTR group,
          VARIANT_BOOL enable) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE IsRuleGroupEnabled(
          LONG profileTypesBitmask,
          BSTR group,
          VARIANT_BOOL *enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE RestoreLocalFirewallDefaults(
          ) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_DefaultInboundAction(
          NET_FW_PROFILE_TYPE2 profileType,
          NET_FW_ACTION *action) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_DefaultInboundAction(
          NET_FW_PROFILE_TYPE2 profileType,
          NET_FW_ACTION action) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_DefaultOutboundAction(
          NET_FW_PROFILE_TYPE2 profileType,
          NET_FW_ACTION *action) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE put_DefaultOutboundAction(
          NET_FW_PROFILE_TYPE2 profileType,
          NET_FW_ACTION action) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_IsRuleGroupCurrentlyEnabled(
          BSTR group,
          VARIANT_BOOL *enabled) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_LocalPolicyModifyState(
          NET_FW_MODIFY_STATE *modifyState) = 0;
  
  };
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(INetFwPolicy2, 0x98325047, 0xc671, 0x4174, 0x8d,0x81, 0xde,0xfc,0xd3,0xf0,0x31,0x86)
  #endif
  #else
  typedef struct INetFwPolicy2Vtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          INetFwPolicy2 *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          INetFwPolicy2 *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          INetFwPolicy2 *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          INetFwPolicy2 *This,
          UINT *pctinfo);
  
      HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
          INetFwPolicy2 *This,
          UINT iTInfo,
          LCID lcid,
          ITypeInfo **ppTInfo);
  
      HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
          INetFwPolicy2 *This,
          REFIID riid,
          LPOLESTR *rgszNames,
          UINT cNames,
          LCID lcid,
          DISPID *rgDispId);
  
      HRESULT (STDMETHODCALLTYPE *Invoke)(
          INetFwPolicy2 *This,
          DISPID dispIdMember,
          REFIID riid,
          LCID lcid,
          WORD wFlags,
          DISPPARAMS *pDispParams,
          VARIANT *pVarResult,
          EXCEPINFO *pExcepInfo,
          UINT *puArgErr);
  
      /*** INetFwPolicy2 methods ***/
      HRESULT (STDMETHODCALLTYPE *get_CurrentProfileTypes)(
          INetFwPolicy2 *This,
          LONG *profile);
  
      HRESULT (STDMETHODCALLTYPE *get_FirewallEnabled)(
          INetFwPolicy2 *This,
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL *enabled);
  
      HRESULT (STDMETHODCALLTYPE *put_FirewallEnabled)(
          INetFwPolicy2 *This,
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL enabled);
  
      HRESULT (STDMETHODCALLTYPE *get_ExcludedInterfaces)(
          INetFwPolicy2 *This,
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT *interfaces);
  
      HRESULT (STDMETHODCALLTYPE *put_ExcludedInterfaces)(
          INetFwPolicy2 *This,
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT interfaces);
  
      HRESULT (STDMETHODCALLTYPE *get_BlockAllInboundTraffic)(
          INetFwPolicy2 *This,
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL *block);
  
      HRESULT (STDMETHODCALLTYPE *put_BlockAllInboundTraffic)(
          INetFwPolicy2 *This,
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL block);
  
      HRESULT (STDMETHODCALLTYPE *get_NotificationsDisabled)(
          INetFwPolicy2 *This,
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL *disabled);
  
      HRESULT (STDMETHODCALLTYPE *put_NotificationsDisabled)(
          INetFwPolicy2 *This,
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL disabled);
  
      HRESULT (STDMETHODCALLTYPE *get_UnicastResponsesToMulticastBroadcastDisabled)(
          INetFwPolicy2 *This,
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL *disabled);
  
      HRESULT (STDMETHODCALLTYPE *put_UnicastResponsesToMulticastBroadcastDisabled)(
          INetFwPolicy2 *This,
          NET_FW_PROFILE_TYPE2 profileType,
          VARIANT_BOOL disabled);
  
      HRESULT (STDMETHODCALLTYPE *get_Rules)(
          INetFwPolicy2 *This,
          INetFwRules **rules);
  
      HRESULT (STDMETHODCALLTYPE *get_ServiceRestriction)(
          INetFwPolicy2 *This,
          INetFwServiceRestriction **ServiceRestriction);
  
      HRESULT (STDMETHODCALLTYPE *EnableRuleGroup)(
          INetFwPolicy2 *This,
          LONG profileTypesBitmask,
          BSTR group,
          VARIANT_BOOL enable);
  
      HRESULT (STDMETHODCALLTYPE *IsRuleGroupEnabled)(
          INetFwPolicy2 *This,
          LONG profileTypesBitmask,
          BSTR group,
          VARIANT_BOOL *enabled);
  
      HRESULT (STDMETHODCALLTYPE *RestoreLocalFirewallDefaults)(
          INetFwPolicy2 *This);
  
      HRESULT (STDMETHODCALLTYPE *get_DefaultInboundAction)(
          INetFwPolicy2 *This,
          NET_FW_PROFILE_TYPE2 profileType,
          NET_FW_ACTION *action);
  
      HRESULT (STDMETHODCALLTYPE *put_DefaultInboundAction)(
          INetFwPolicy2 *This,
          NET_FW_PROFILE_TYPE2 profileType,
          NET_FW_ACTION action);
  
      HRESULT (STDMETHODCALLTYPE *get_DefaultOutboundAction)(
          INetFwPolicy2 *This,
          NET_FW_PROFILE_TYPE2 profileType,
          NET_FW_ACTION *action);
  
      HRESULT (STDMETHODCALLTYPE *put_DefaultOutboundAction)(
          INetFwPolicy2 *This,
          NET_FW_PROFILE_TYPE2 profileType,
          NET_FW_ACTION action);
  
      HRESULT (STDMETHODCALLTYPE *get_IsRuleGroupCurrentlyEnabled)(
          INetFwPolicy2 *This,
          BSTR group,
          VARIANT_BOOL *enabled);
  
      HRESULT (STDMETHODCALLTYPE *get_LocalPolicyModifyState)(
          INetFwPolicy2 *This,
          NET_FW_MODIFY_STATE *modifyState);
  
      END_INTERFACE
  } INetFwPolicy2Vtbl;
  
  interface INetFwPolicy2 {
      CONST_VTBL INetFwPolicy2Vtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  #ifndef WIDL_C_INLINE_WRAPPERS
  /*** IUnknown methods ***/
  #define INetFwPolicy2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define INetFwPolicy2_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define INetFwPolicy2_Release(This) (This)->lpVtbl->Release(This)
  /*** IDispatch methods ***/
  #define INetFwPolicy2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  #define INetFwPolicy2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  #define INetFwPolicy2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  #define INetFwPolicy2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  /*** INetFwPolicy2 methods ***/
  #define INetFwPolicy2_get_CurrentProfileTypes(This,profile) (This)->lpVtbl->get_CurrentProfileTypes(This,profile)
  #define INetFwPolicy2_get_FirewallEnabled(This,profileType,enabled) (This)->lpVtbl->get_FirewallEnabled(This,profileType,enabled)
  #define INetFwPolicy2_put_FirewallEnabled(This,profileType,enabled) (This)->lpVtbl->put_FirewallEnabled(This,profileType,enabled)
  #define INetFwPolicy2_get_ExcludedInterfaces(This,profileType,interfaces) (This)->lpVtbl->get_ExcludedInterfaces(This,profileType,interfaces)
  #define INetFwPolicy2_put_ExcludedInterfaces(This,profileType,interfaces) (This)->lpVtbl->put_ExcludedInterfaces(This,profileType,interfaces)
  #define INetFwPolicy2_get_BlockAllInboundTraffic(This,profileType,block) (This)->lpVtbl->get_BlockAllInboundTraffic(This,profileType,block)
  #define INetFwPolicy2_put_BlockAllInboundTraffic(This,profileType,block) (This)->lpVtbl->put_BlockAllInboundTraffic(This,profileType,block)
  #define INetFwPolicy2_get_NotificationsDisabled(This,profileType,disabled) (This)->lpVtbl->get_NotificationsDisabled(This,profileType,disabled)
  #define INetFwPolicy2_put_NotificationsDisabled(This,profileType,disabled) (This)->lpVtbl->put_NotificationsDisabled(This,profileType,disabled)
  #define INetFwPolicy2_get_UnicastResponsesToMulticastBroadcastDisabled(This,profileType,disabled) (This)->lpVtbl->get_UnicastResponsesToMulticastBroadcastDisabled(This,profileType,disabled)
  #define INetFwPolicy2_put_UnicastResponsesToMulticastBroadcastDisabled(This,profileType,disabled) (This)->lpVtbl->put_UnicastResponsesToMulticastBroadcastDisabled(This,profileType,disabled)
  #define INetFwPolicy2_get_Rules(This,rules) (This)->lpVtbl->get_Rules(This,rules)
  #define INetFwPolicy2_get_ServiceRestriction(This,ServiceRestriction) (This)->lpVtbl->get_ServiceRestriction(This,ServiceRestriction)
  #define INetFwPolicy2_EnableRuleGroup(This,profileTypesBitmask,group,enable) (This)->lpVtbl->EnableRuleGroup(This,profileTypesBitmask,group,enable)
  #define INetFwPolicy2_IsRuleGroupEnabled(This,profileTypesBitmask,group,enabled) (This)->lpVtbl->IsRuleGroupEnabled(This,profileTypesBitmask,group,enabled)
  #define INetFwPolicy2_RestoreLocalFirewallDefaults(This) (This)->lpVtbl->RestoreLocalFirewallDefaults(This)
  #define INetFwPolicy2_get_DefaultInboundAction(This,profileType,action) (This)->lpVtbl->get_DefaultInboundAction(This,profileType,action)
  #define INetFwPolicy2_put_DefaultInboundAction(This,profileType,action) (This)->lpVtbl->put_DefaultInboundAction(This,profileType,action)
  #define INetFwPolicy2_get_DefaultOutboundAction(This,profileType,action) (This)->lpVtbl->get_DefaultOutboundAction(This,profileType,action)
  #define INetFwPolicy2_put_DefaultOutboundAction(This,profileType,action) (This)->lpVtbl->put_DefaultOutboundAction(This,profileType,action)
  #define INetFwPolicy2_get_IsRuleGroupCurrentlyEnabled(This,group,enabled) (This)->lpVtbl->get_IsRuleGroupCurrentlyEnabled(This,group,enabled)
  #define INetFwPolicy2_get_LocalPolicyModifyState(This,modifyState) (This)->lpVtbl->get_LocalPolicyModifyState(This,modifyState)
  #else
  /*** IUnknown methods ***/
  static FORCEINLINE HRESULT INetFwPolicy2_QueryInterface(INetFwPolicy2* This,REFIID riid,void **ppvObject) {
      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  }
  static FORCEINLINE ULONG INetFwPolicy2_AddRef(INetFwPolicy2* This) {
      return This->lpVtbl->AddRef(This);
  }
  static FORCEINLINE ULONG INetFwPolicy2_Release(INetFwPolicy2* This) {
      return This->lpVtbl->Release(This);
  }
  /*** IDispatch methods ***/
  static FORCEINLINE HRESULT INetFwPolicy2_GetTypeInfoCount(INetFwPolicy2* This,UINT *pctinfo) {
      return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_GetTypeInfo(INetFwPolicy2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
      return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_GetIDsOfNames(INetFwPolicy2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
      return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_Invoke(INetFwPolicy2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
      return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  }
  /*** INetFwPolicy2 methods ***/
  static FORCEINLINE HRESULT INetFwPolicy2_get_CurrentProfileTypes(INetFwPolicy2* This,LONG *profile) {
      return This->lpVtbl->get_CurrentProfileTypes(This,profile);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_get_FirewallEnabled(INetFwPolicy2* This,NET_FW_PROFILE_TYPE2 profileType,VARIANT_BOOL *enabled) {
      return This->lpVtbl->get_FirewallEnabled(This,profileType,enabled);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_put_FirewallEnabled(INetFwPolicy2* This,NET_FW_PROFILE_TYPE2 profileType,VARIANT_BOOL enabled) {
      return This->lpVtbl->put_FirewallEnabled(This,profileType,enabled);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_get_ExcludedInterfaces(INetFwPolicy2* This,NET_FW_PROFILE_TYPE2 profileType,VARIANT *interfaces) {
      return This->lpVtbl->get_ExcludedInterfaces(This,profileType,interfaces);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_put_ExcludedInterfaces(INetFwPolicy2* This,NET_FW_PROFILE_TYPE2 profileType,VARIANT interfaces) {
      return This->lpVtbl->put_ExcludedInterfaces(This,profileType,interfaces);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_get_BlockAllInboundTraffic(INetFwPolicy2* This,NET_FW_PROFILE_TYPE2 profileType,VARIANT_BOOL *block) {
      return This->lpVtbl->get_BlockAllInboundTraffic(This,profileType,block);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_put_BlockAllInboundTraffic(INetFwPolicy2* This,NET_FW_PROFILE_TYPE2 profileType,VARIANT_BOOL block) {
      return This->lpVtbl->put_BlockAllInboundTraffic(This,profileType,block);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_get_NotificationsDisabled(INetFwPolicy2* This,NET_FW_PROFILE_TYPE2 profileType,VARIANT_BOOL *disabled) {
      return This->lpVtbl->get_NotificationsDisabled(This,profileType,disabled);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_put_NotificationsDisabled(INetFwPolicy2* This,NET_FW_PROFILE_TYPE2 profileType,VARIANT_BOOL disabled) {
      return This->lpVtbl->put_NotificationsDisabled(This,profileType,disabled);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_get_UnicastResponsesToMulticastBroadcastDisabled(INetFwPolicy2* This,NET_FW_PROFILE_TYPE2 profileType,VARIANT_BOOL *disabled) {
      return This->lpVtbl->get_UnicastResponsesToMulticastBroadcastDisabled(This,profileType,disabled);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_put_UnicastResponsesToMulticastBroadcastDisabled(INetFwPolicy2* This,NET_FW_PROFILE_TYPE2 profileType,VARIANT_BOOL disabled) {
      return This->lpVtbl->put_UnicastResponsesToMulticastBroadcastDisabled(This,profileType,disabled);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_get_Rules(INetFwPolicy2* This,INetFwRules **rules) {
      return This->lpVtbl->get_Rules(This,rules);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_get_ServiceRestriction(INetFwPolicy2* This,INetFwServiceRestriction **ServiceRestriction) {
      return This->lpVtbl->get_ServiceRestriction(This,ServiceRestriction);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_EnableRuleGroup(INetFwPolicy2* This,LONG profileTypesBitmask,BSTR group,VARIANT_BOOL enable) {
      return This->lpVtbl->EnableRuleGroup(This,profileTypesBitmask,group,enable);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_IsRuleGroupEnabled(INetFwPolicy2* This,LONG profileTypesBitmask,BSTR group,VARIANT_BOOL *enabled) {
      return This->lpVtbl->IsRuleGroupEnabled(This,profileTypesBitmask,group,enabled);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_RestoreLocalFirewallDefaults(INetFwPolicy2* This) {
      return This->lpVtbl->RestoreLocalFirewallDefaults(This);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_get_DefaultInboundAction(INetFwPolicy2* This,NET_FW_PROFILE_TYPE2 profileType,NET_FW_ACTION *action) {
      return This->lpVtbl->get_DefaultInboundAction(This,profileType,action);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_put_DefaultInboundAction(INetFwPolicy2* This,NET_FW_PROFILE_TYPE2 profileType,NET_FW_ACTION action) {
      return This->lpVtbl->put_DefaultInboundAction(This,profileType,action);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_get_DefaultOutboundAction(INetFwPolicy2* This,NET_FW_PROFILE_TYPE2 profileType,NET_FW_ACTION *action) {
      return This->lpVtbl->get_DefaultOutboundAction(This,profileType,action);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_put_DefaultOutboundAction(INetFwPolicy2* This,NET_FW_PROFILE_TYPE2 profileType,NET_FW_ACTION action) {
      return This->lpVtbl->put_DefaultOutboundAction(This,profileType,action);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_get_IsRuleGroupCurrentlyEnabled(INetFwPolicy2* This,BSTR group,VARIANT_BOOL *enabled) {
      return This->lpVtbl->get_IsRuleGroupCurrentlyEnabled(This,group,enabled);
  }
  static FORCEINLINE HRESULT INetFwPolicy2_get_LocalPolicyModifyState(INetFwPolicy2* This,NET_FW_MODIFY_STATE *modifyState) {
      return This->lpVtbl->get_LocalPolicyModifyState(This,modifyState);
  }
  #endif
  #endif
  
  #endif
  
  
  #endif  /* __INetFwPolicy2_INTERFACE_DEFINED__ */
  
  /*****************************************************************************
   * INetFwMgr interface
   */
  #ifndef __INetFwMgr_INTERFACE_DEFINED__
  #define __INetFwMgr_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_INetFwMgr, 0xf7898af5, 0xcac4, 0x4632, 0xa2,0xec, 0xda,0x06,0xe5,0x11,0x1a,0xf2);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  MIDL_INTERFACE("f7898af5-cac4-4632-a2ec-da06e5111af2")
  INetFwMgr : public IDispatch
  {
      virtual HRESULT STDMETHODCALLTYPE get_LocalPolicy(
          INetFwPolicy **localPolicy) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE get_CurrentProfileType(
          NET_FW_PROFILE_TYPE *profileType) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE RestoreDefaults(
          ) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE IsPortAllowed(
          BSTR imageFileName,
          NET_FW_IP_VERSION ipVersion,
          LONG portNumber,
          BSTR localAddress,
          NET_FW_IP_PROTOCOL ipProtocol,
          VARIANT *allowed,
          VARIANT *restricted) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE IsIcmpTypeAllowed(
          NET_FW_IP_VERSION ipVersion,
          BSTR localAddress,
          BYTE type,
          VARIANT *allowed,
          VARIANT *restricted) = 0;
  
  };
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(INetFwMgr, 0xf7898af5, 0xcac4, 0x4632, 0xa2,0xec, 0xda,0x06,0xe5,0x11,0x1a,0xf2)
  #endif
  #else
  typedef struct INetFwMgrVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          INetFwMgr *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          INetFwMgr *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          INetFwMgr *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          INetFwMgr *This,
          UINT *pctinfo);
  
      HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
          INetFwMgr *This,
          UINT iTInfo,
          LCID lcid,
          ITypeInfo **ppTInfo);
  
      HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
          INetFwMgr *This,
          REFIID riid,
          LPOLESTR *rgszNames,
          UINT cNames,
          LCID lcid,
          DISPID *rgDispId);
  
      HRESULT (STDMETHODCALLTYPE *Invoke)(
          INetFwMgr *This,
          DISPID dispIdMember,
          REFIID riid,
          LCID lcid,
          WORD wFlags,
          DISPPARAMS *pDispParams,
          VARIANT *pVarResult,
          EXCEPINFO *pExcepInfo,
          UINT *puArgErr);
  
      /*** INetFwMgr methods ***/
      HRESULT (STDMETHODCALLTYPE *get_LocalPolicy)(
          INetFwMgr *This,
          INetFwPolicy **localPolicy);
  
      HRESULT (STDMETHODCALLTYPE *get_CurrentProfileType)(
          INetFwMgr *This,
          NET_FW_PROFILE_TYPE *profileType);
  
      HRESULT (STDMETHODCALLTYPE *RestoreDefaults)(
          INetFwMgr *This);
  
      HRESULT (STDMETHODCALLTYPE *IsPortAllowed)(
          INetFwMgr *This,
          BSTR imageFileName,
          NET_FW_IP_VERSION ipVersion,
          LONG portNumber,
          BSTR localAddress,
          NET_FW_IP_PROTOCOL ipProtocol,
          VARIANT *allowed,
          VARIANT *restricted);
  
      HRESULT (STDMETHODCALLTYPE *IsIcmpTypeAllowed)(
          INetFwMgr *This,
          NET_FW_IP_VERSION ipVersion,
          BSTR localAddress,
          BYTE type,
          VARIANT *allowed,
          VARIANT *restricted);
  
      END_INTERFACE
  } INetFwMgrVtbl;
  
  interface INetFwMgr {
      CONST_VTBL INetFwMgrVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  #ifndef WIDL_C_INLINE_WRAPPERS
  /*** IUnknown methods ***/
  #define INetFwMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define INetFwMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define INetFwMgr_Release(This) (This)->lpVtbl->Release(This)
  /*** IDispatch methods ***/
  #define INetFwMgr_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  #define INetFwMgr_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  #define INetFwMgr_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  #define INetFwMgr_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  /*** INetFwMgr methods ***/
  #define INetFwMgr_get_LocalPolicy(This,localPolicy) (This)->lpVtbl->get_LocalPolicy(This,localPolicy)
  #define INetFwMgr_get_CurrentProfileType(This,profileType) (This)->lpVtbl->get_CurrentProfileType(This,profileType)
  #define INetFwMgr_RestoreDefaults(This) (This)->lpVtbl->RestoreDefaults(This)
  #define INetFwMgr_IsPortAllowed(This,imageFileName,ipVersion,portNumber,localAddress,ipProtocol,allowed,restricted) (This)->lpVtbl->IsPortAllowed(This,imageFileName,ipVersion,portNumber,localAddress,ipProtocol,allowed,restricted)
  #define INetFwMgr_IsIcmpTypeAllowed(This,ipVersion,localAddress,type,allowed,restricted) (This)->lpVtbl->IsIcmpTypeAllowed(This,ipVersion,localAddress,type,allowed,restricted)
  #else
  /*** IUnknown methods ***/
  static FORCEINLINE HRESULT INetFwMgr_QueryInterface(INetFwMgr* This,REFIID riid,void **ppvObject) {
      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  }
  static FORCEINLINE ULONG INetFwMgr_AddRef(INetFwMgr* This) {
      return This->lpVtbl->AddRef(This);
  }
  static FORCEINLINE ULONG INetFwMgr_Release(INetFwMgr* This) {
      return This->lpVtbl->Release(This);
  }
  /*** IDispatch methods ***/
  static FORCEINLINE HRESULT INetFwMgr_GetTypeInfoCount(INetFwMgr* This,UINT *pctinfo) {
      return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  }
  static FORCEINLINE HRESULT INetFwMgr_GetTypeInfo(INetFwMgr* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
      return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  }
  static FORCEINLINE HRESULT INetFwMgr_GetIDsOfNames(INetFwMgr* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
      return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  }
  static FORCEINLINE HRESULT INetFwMgr_Invoke(INetFwMgr* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
      return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  }
  /*** INetFwMgr methods ***/
  static FORCEINLINE HRESULT INetFwMgr_get_LocalPolicy(INetFwMgr* This,INetFwPolicy **localPolicy) {
      return This->lpVtbl->get_LocalPolicy(This,localPolicy);
  }
  static FORCEINLINE HRESULT INetFwMgr_get_CurrentProfileType(INetFwMgr* This,NET_FW_PROFILE_TYPE *profileType) {
      return This->lpVtbl->get_CurrentProfileType(This,profileType);
  }
  static FORCEINLINE HRESULT INetFwMgr_RestoreDefaults(INetFwMgr* This) {
      return This->lpVtbl->RestoreDefaults(This);
  }
  static FORCEINLINE HRESULT INetFwMgr_IsPortAllowed(INetFwMgr* This,BSTR imageFileName,NET_FW_IP_VERSION ipVersion,LONG portNumber,BSTR localAddress,NET_FW_IP_PROTOCOL ipProtocol,VARIANT *allowed,VARIANT *restricted) {
      return This->lpVtbl->IsPortAllowed(This,imageFileName,ipVersion,portNumber,localAddress,ipProtocol,allowed,restricted);
  }
  static FORCEINLINE HRESULT INetFwMgr_IsIcmpTypeAllowed(INetFwMgr* This,NET_FW_IP_VERSION ipVersion,BSTR localAddress,BYTE type,VARIANT *allowed,VARIANT *restricted) {
      return This->lpVtbl->IsIcmpTypeAllowed(This,ipVersion,localAddress,type,allowed,restricted);
  }
  #endif
  #endif
  
  #endif
  
  
  #endif  /* __INetFwMgr_INTERFACE_DEFINED__ */
  
  
  DEFINE_GUID(LIBID_NetFwPublicTypeLib, 0xdb4f3345, 0x3ef8, 0x45ed, 0xb9,0x76, 0x25,0xa6,0xd3,0xb8,0x1b,0x71);
  
  #ifndef __INetFwRemoteAdminSettings_FWD_DEFINED__
  #define __INetFwRemoteAdminSettings_FWD_DEFINED__
  typedef interface INetFwRemoteAdminSettings INetFwRemoteAdminSettings;
  #ifdef __cplusplus
  interface INetFwRemoteAdminSettings;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwIcmpSettings_FWD_DEFINED__
  #define __INetFwIcmpSettings_FWD_DEFINED__
  typedef interface INetFwIcmpSettings INetFwIcmpSettings;
  #ifdef __cplusplus
  interface INetFwIcmpSettings;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwOpenPort_FWD_DEFINED__
  #define __INetFwOpenPort_FWD_DEFINED__
  typedef interface INetFwOpenPort INetFwOpenPort;
  #ifdef __cplusplus
  interface INetFwOpenPort;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwOpenPorts_FWD_DEFINED__
  #define __INetFwOpenPorts_FWD_DEFINED__
  typedef interface INetFwOpenPorts INetFwOpenPorts;
  #ifdef __cplusplus
  interface INetFwOpenPorts;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwService_FWD_DEFINED__
  #define __INetFwService_FWD_DEFINED__
  typedef interface INetFwService INetFwService;
  #ifdef __cplusplus
  interface INetFwService;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwServices_FWD_DEFINED__
  #define __INetFwServices_FWD_DEFINED__
  typedef interface INetFwServices INetFwServices;
  #ifdef __cplusplus
  interface INetFwServices;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwAuthorizedApplication_FWD_DEFINED__
  #define __INetFwAuthorizedApplication_FWD_DEFINED__
  typedef interface INetFwAuthorizedApplication INetFwAuthorizedApplication;
  #ifdef __cplusplus
  interface INetFwAuthorizedApplication;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwAuthorizedApplications_FWD_DEFINED__
  #define __INetFwAuthorizedApplications_FWD_DEFINED__
  typedef interface INetFwAuthorizedApplications INetFwAuthorizedApplications;
  #ifdef __cplusplus
  interface INetFwAuthorizedApplications;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwProfile_FWD_DEFINED__
  #define __INetFwProfile_FWD_DEFINED__
  typedef interface INetFwProfile INetFwProfile;
  #ifdef __cplusplus
  interface INetFwProfile;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwPolicy_FWD_DEFINED__
  #define __INetFwPolicy_FWD_DEFINED__
  typedef interface INetFwPolicy INetFwPolicy;
  #ifdef __cplusplus
  interface INetFwPolicy;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwPolicy2_FWD_DEFINED__
  #define __INetFwPolicy2_FWD_DEFINED__
  typedef interface INetFwPolicy2 INetFwPolicy2;
  #ifdef __cplusplus
  interface INetFwPolicy2;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __INetFwMgr_FWD_DEFINED__
  #define __INetFwMgr_FWD_DEFINED__
  typedef interface INetFwMgr INetFwMgr;
  #ifdef __cplusplus
  interface INetFwMgr;
  #endif /* __cplusplus */
  #endif
  
  /*****************************************************************************
   * NetFwOpenPort coclass
   */
  
  DEFINE_GUID(CLSID_NetFwOpenPort, 0x0ca545c6, 0x37ad, 0x4a6c, 0xbf,0x92, 0x9f,0x76,0x10,0x06,0x7e,0xf5);
  
  #ifdef __cplusplus
  class DECLSPEC_UUID("0ca545c6-37ad-4a6c-bf92-9f7610067ef5") NetFwOpenPort;
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(NetFwOpenPort, 0x0ca545c6, 0x37ad, 0x4a6c, 0xbf,0x92, 0x9f,0x76,0x10,0x06,0x7e,0xf5)
  #endif
  #endif
  
  /*****************************************************************************
   * NetFwAuthorizedApplication coclass
   */
  
  DEFINE_GUID(CLSID_NetFwAuthorizedApplication, 0xec9846b3, 0x2762, 0x4a6b, 0xa2,0x14, 0x6a,0xcb,0x60,0x34,0x62,0xd2);
  
  #ifdef __cplusplus
  class DECLSPEC_UUID("ec9846b3-2762-4a6b-a214-6acb603462d2") NetFwAuthorizedApplication;
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(NetFwAuthorizedApplication, 0xec9846b3, 0x2762, 0x4a6b, 0xa2,0x14, 0x6a,0xcb,0x60,0x34,0x62,0xd2)
  #endif
  #endif
  
  /*****************************************************************************
   * NetFwMgr coclass
   */
  
  DEFINE_GUID(CLSID_NetFwMgr, 0x304ce942, 0x6e39, 0x40d8, 0x94,0x3a, 0xb9,0x13,0xc4,0x0c,0x9c,0xd4);
  
  #ifdef __cplusplus
  class DECLSPEC_UUID("304ce942-6e39-40d8-943a-b913c40c9cd4") NetFwMgr;
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(NetFwMgr, 0x304ce942, 0x6e39, 0x40d8, 0x94,0x3a, 0xb9,0x13,0xc4,0x0c,0x9c,0xd4)
  #endif
  #endif
  
  /*****************************************************************************
   * NetFwPolicy2 coclass
   */
  
  DEFINE_GUID(CLSID_NetFwPolicy2, 0xe2b3c97f, 0x6ae1, 0x41ac, 0x81,0x7a, 0xf6,0xf9,0x21,0x66,0xd7,0xdd);
  
  #ifdef __cplusplus
  class DECLSPEC_UUID("e2b3c97f-6ae1-41ac-817a-f6f92166d7dd") NetFwPolicy2;
  #ifdef __CRT_UUID_DECL
  __CRT_UUID_DECL(NetFwPolicy2, 0xe2b3c97f, 0x6ae1, 0x41ac, 0x81,0x7a, 0xf6,0xf9,0x21,0x66,0xd7,0xdd)
  #endif
  #endif
  
  /* Begin additional prototypes for all interfaces */
  
  ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
  unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
  unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
  void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
  ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
  unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
  unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
  void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
  
  /* End additional prototypes */
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif /* __netfw_h__ */
  