/*** Autogenerated by WIDL 1.2.2 from netfw.idl - Do not edit ***/

#include <rpc.h>
#include <rpcndr.h>

#ifndef __WIDL_NETFW_H
#define __WIDL_NETFW_H

#ifdef __cplusplus
extern "C" {
#endif

/* Headers for imported files */

#include <icftypes.h>
#include <oaidl.h>

/* Forward declarations */

#ifndef __INetFwIcmpSettings_FWD_DEFINED__
#define __INetFwIcmpSettings_FWD_DEFINED__
typedef interface INetFwIcmpSettings INetFwIcmpSettings;
#endif

#ifndef __INetFwOpenPort_FWD_DEFINED__
#define __INetFwOpenPort_FWD_DEFINED__
typedef interface INetFwOpenPort INetFwOpenPort;
#endif

#ifndef __INetFwOpenPorts_FWD_DEFINED__
#define __INetFwOpenPorts_FWD_DEFINED__
typedef interface INetFwOpenPorts INetFwOpenPorts;
#endif

#ifndef __INetFwService_FWD_DEFINED__
#define __INetFwService_FWD_DEFINED__
typedef interface INetFwService INetFwService;
#endif

#ifndef __INetFwServices_FWD_DEFINED__
#define __INetFwServices_FWD_DEFINED__
typedef interface INetFwServices INetFwServices;
#endif

#ifndef __INetFwAuthorizedApplication_FWD_DEFINED__
#define __INetFwAuthorizedApplication_FWD_DEFINED__
typedef interface INetFwAuthorizedApplication INetFwAuthorizedApplication;
#endif

#ifndef __INetFwRule_FWD_DEFINED__
#define __INetFwRule_FWD_DEFINED__
typedef interface INetFwRule INetFwRule;
#endif

#ifndef __INetFwRule2_FWD_DEFINED__
#define __INetFwRule2_FWD_DEFINED__
typedef interface INetFwRule2 INetFwRule2;
#endif

#ifndef __INetFwRules_FWD_DEFINED__
#define __INetFwRules_FWD_DEFINED__
typedef interface INetFwRules INetFwRules;
#endif

#ifndef __INetFwRemoteAdminSettings_FWD_DEFINED__
#define __INetFwRemoteAdminSettings_FWD_DEFINED__
typedef interface INetFwRemoteAdminSettings INetFwRemoteAdminSettings;
#endif

#ifndef __INetFwAuthorizedApplications_FWD_DEFINED__
#define __INetFwAuthorizedApplications_FWD_DEFINED__
typedef interface INetFwAuthorizedApplications INetFwAuthorizedApplications;
#endif

#ifndef __INetFwServiceRestriction_FWD_DEFINED__
#define __INetFwServiceRestriction_FWD_DEFINED__
typedef interface INetFwServiceRestriction INetFwServiceRestriction;
#endif

#ifndef __INetFwProfile_FWD_DEFINED__
#define __INetFwProfile_FWD_DEFINED__
typedef interface INetFwProfile INetFwProfile;
#endif

#ifndef __INetFwPolicy_FWD_DEFINED__
#define __INetFwPolicy_FWD_DEFINED__
typedef interface INetFwPolicy INetFwPolicy;
#endif

#ifndef __INetFwPolicy2_FWD_DEFINED__
#define __INetFwPolicy2_FWD_DEFINED__
typedef interface INetFwPolicy2 INetFwPolicy2;
#endif

#ifndef __INetFwMgr_FWD_DEFINED__
#define __INetFwMgr_FWD_DEFINED__
typedef interface INetFwMgr INetFwMgr;
#endif

#ifndef __NetFwRule_FWD_DEFINED__
#define __NetFwRule_FWD_DEFINED__
typedef struct NetFwRule NetFwRule;
#endif /* defined __NetFwRule_FWD_DEFINED__ */

#ifndef __NetFwOpenPort_FWD_DEFINED__
#define __NetFwOpenPort_FWD_DEFINED__
typedef struct NetFwOpenPort NetFwOpenPort;
#endif /* defined __NetFwOpenPort_FWD_DEFINED__ */

#ifndef __NetFwAuthorizedApplication_FWD_DEFINED__
#define __NetFwAuthorizedApplication_FWD_DEFINED__
typedef struct NetFwAuthorizedApplication NetFwAuthorizedApplication;
#endif /* defined __NetFwAuthorizedApplication_FWD_DEFINED__ */

#ifndef __NetFwPolicy2_FWD_DEFINED__
#define __NetFwPolicy2_FWD_DEFINED__
typedef struct NetFwPolicy2 NetFwPolicy2;
#endif /* defined __NetFwPolicy2_FWD_DEFINED__ */

#ifndef __NetFwMgr_FWD_DEFINED__
#define __NetFwMgr_FWD_DEFINED__
typedef struct NetFwMgr NetFwMgr;
#endif /* defined __NetFwMgr_FWD_DEFINED__ */


/*****************************************************************************
 * 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)
interface 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;

};
#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
/*** 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)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowOutboundDestinationUnreachable_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL *allow);
void __RPC_STUB INetFwIcmpSettings_get_AllowOutboundDestinationUnreachable_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowOutboundDestinationUnreachable_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL allow);
void __RPC_STUB INetFwIcmpSettings_put_AllowOutboundDestinationUnreachable_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowRedirect_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL *allow);
void __RPC_STUB INetFwIcmpSettings_get_AllowRedirect_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowRedirect_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL allow);
void __RPC_STUB INetFwIcmpSettings_put_AllowRedirect_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowInboundEchoRequest_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL *allow);
void __RPC_STUB INetFwIcmpSettings_get_AllowInboundEchoRequest_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowInboundEchoRequest_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL allow);
void __RPC_STUB INetFwIcmpSettings_put_AllowInboundEchoRequest_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowOutboundTimeExceeded_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL *allow);
void __RPC_STUB INetFwIcmpSettings_get_AllowOutboundTimeExceeded_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowOutboundTimeExceeded_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL allow);
void __RPC_STUB INetFwIcmpSettings_put_AllowOutboundTimeExceeded_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowOutboundParameterProblem_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL *allow);
void __RPC_STUB INetFwIcmpSettings_get_AllowOutboundParameterProblem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowOutboundParameterProblem_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL allow);
void __RPC_STUB INetFwIcmpSettings_put_AllowOutboundParameterProblem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowOutboundSourceQuench_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL *allow);
void __RPC_STUB INetFwIcmpSettings_get_AllowOutboundSourceQuench_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowOutboundSourceQuench_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL allow);
void __RPC_STUB INetFwIcmpSettings_put_AllowOutboundSourceQuench_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowInboundRouterRequest_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL *allow);
void __RPC_STUB INetFwIcmpSettings_get_AllowInboundRouterRequest_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowInboundRouterRequest_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL allow);
void __RPC_STUB INetFwIcmpSettings_put_AllowInboundRouterRequest_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowInboundTimestampRequest_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL *allow);
void __RPC_STUB INetFwIcmpSettings_get_AllowInboundTimestampRequest_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowInboundTimestampRequest_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL allow);
void __RPC_STUB INetFwIcmpSettings_put_AllowInboundTimestampRequest_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowInboundMaskRequest_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL *allow);
void __RPC_STUB INetFwIcmpSettings_get_AllowInboundMaskRequest_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowInboundMaskRequest_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL allow);
void __RPC_STUB INetFwIcmpSettings_put_AllowInboundMaskRequest_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowOutboundPacketTooBig_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL *allow);
void __RPC_STUB INetFwIcmpSettings_get_AllowOutboundPacketTooBig_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowOutboundPacketTooBig_Proxy(
    INetFwIcmpSettings* This,
    VARIANT_BOOL allow);
void __RPC_STUB INetFwIcmpSettings_put_AllowOutboundPacketTooBig_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#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)
interface 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;

};
#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
/*** 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)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_Name_Proxy(
    INetFwOpenPort* This,
    BSTR *name);
void __RPC_STUB INetFwOpenPort_get_Name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPort_put_Name_Proxy(
    INetFwOpenPort* This,
    BSTR name);
void __RPC_STUB INetFwOpenPort_put_Name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_IpVersion_Proxy(
    INetFwOpenPort* This,
    NET_FW_IP_VERSION *ipVersion);
void __RPC_STUB INetFwOpenPort_get_IpVersion_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPort_put_IpVersion_Proxy(
    INetFwOpenPort* This,
    NET_FW_IP_VERSION ipVersion);
void __RPC_STUB INetFwOpenPort_put_IpVersion_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_Protocol_Proxy(
    INetFwOpenPort* This,
    NET_FW_IP_PROTOCOL *ipProtocol);
void __RPC_STUB INetFwOpenPort_get_Protocol_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPort_put_Protocol_Proxy(
    INetFwOpenPort* This,
    NET_FW_IP_PROTOCOL ipProtocol);
void __RPC_STUB INetFwOpenPort_put_Protocol_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_Port_Proxy(
    INetFwOpenPort* This,
    LONG *portNumber);
void __RPC_STUB INetFwOpenPort_get_Port_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPort_put_Port_Proxy(
    INetFwOpenPort* This,
    LONG portNumber);
void __RPC_STUB INetFwOpenPort_put_Port_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_Scope_Proxy(
    INetFwOpenPort* This,
    NET_FW_SCOPE *scope);
void __RPC_STUB INetFwOpenPort_get_Scope_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPort_put_Scope_Proxy(
    INetFwOpenPort* This,
    NET_FW_SCOPE scope);
void __RPC_STUB INetFwOpenPort_put_Scope_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_RemoteAddresses_Proxy(
    INetFwOpenPort* This,
    BSTR *remoteAddrs);
void __RPC_STUB INetFwOpenPort_get_RemoteAddresses_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPort_put_RemoteAddresses_Proxy(
    INetFwOpenPort* This,
    BSTR remoteAddrs);
void __RPC_STUB INetFwOpenPort_put_RemoteAddresses_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_Enabled_Proxy(
    INetFwOpenPort* This,
    VARIANT_BOOL *enabled);
void __RPC_STUB INetFwOpenPort_get_Enabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPort_put_Enabled_Proxy(
    INetFwOpenPort* This,
    VARIANT_BOOL enabled);
void __RPC_STUB INetFwOpenPort_put_Enabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_BuiltIn_Proxy(
    INetFwOpenPort* This,
    VARIANT_BOOL *builtIn);
void __RPC_STUB INetFwOpenPort_get_BuiltIn_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#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)
interface 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;

};
#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
/*** 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)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwOpenPorts_get_Count_Proxy(
    INetFwOpenPorts* This,
    LONG *count);
void __RPC_STUB INetFwOpenPorts_get_Count_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPorts_Add_Proxy(
    INetFwOpenPorts* This,
    INetFwOpenPort *port);
void __RPC_STUB INetFwOpenPorts_Add_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPorts_Remove_Proxy(
    INetFwOpenPorts* This,
    LONG portNumber,
    NET_FW_IP_PROTOCOL ipProtocol);
void __RPC_STUB INetFwOpenPorts_Remove_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPorts_Item_Proxy(
    INetFwOpenPorts* This,
    LONG portNumber,
    NET_FW_IP_PROTOCOL ipProtocol,
    INetFwOpenPort **openPort);
void __RPC_STUB INetFwOpenPorts_Item_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwOpenPorts_get__NewEnum_Proxy(
    INetFwOpenPorts* This,
    IUnknown **newEnum);
void __RPC_STUB INetFwOpenPorts_get__NewEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#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)
interface 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;

};
#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
/*** 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)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwService_get_Name_Proxy(
    INetFwService* This,
    BSTR *name);
void __RPC_STUB INetFwService_get_Name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwService_get_Type_Proxy(
    INetFwService* This,
    NET_FW_SERVICE_TYPE *type);
void __RPC_STUB INetFwService_get_Type_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwService_get_Customized_Proxy(
    INetFwService* This,
    VARIANT_BOOL *customized);
void __RPC_STUB INetFwService_get_Customized_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwService_get_IpVersion_Proxy(
    INetFwService* This,
    NET_FW_IP_VERSION *ipVersion);
void __RPC_STUB INetFwService_get_IpVersion_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwService_put_IpVersion_Proxy(
    INetFwService* This,
    NET_FW_IP_VERSION ipVersion);
void __RPC_STUB INetFwService_put_IpVersion_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwService_get_Scope_Proxy(
    INetFwService* This,
    NET_FW_SCOPE *scope);
void __RPC_STUB INetFwService_get_Scope_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwService_put_Scope_Proxy(
    INetFwService* This,
    NET_FW_SCOPE scope);
void __RPC_STUB INetFwService_put_Scope_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwService_get_RemoteAddresses_Proxy(
    INetFwService* This,
    BSTR *remoteAddrs);
void __RPC_STUB INetFwService_get_RemoteAddresses_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwService_put_RemoteAddresses_Proxy(
    INetFwService* This,
    BSTR remoteAddrs);
void __RPC_STUB INetFwService_put_RemoteAddresses_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwService_get_Enabled_Proxy(
    INetFwService* This,
    VARIANT_BOOL *enabled);
void __RPC_STUB INetFwService_get_Enabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwService_put_Enabled_Proxy(
    INetFwService* This,
    VARIANT_BOOL enabled);
void __RPC_STUB INetFwService_put_Enabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwService_get_GloballyOpenPorts_Proxy(
    INetFwService* This,
    INetFwOpenPorts **openPorts);
void __RPC_STUB INetFwService_get_GloballyOpenPorts_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#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)
interface 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;

};
#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
/*** 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)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwServices_get_Count_Proxy(
    INetFwServices* This,
    LONG *count);
void __RPC_STUB INetFwServices_get_Count_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwServices_Item_Proxy(
    INetFwServices* This,
    NET_FW_SERVICE_TYPE svcType,
    INetFwService **service);
void __RPC_STUB INetFwServices_Item_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwServices_get__NewEnum_Proxy(
    INetFwServices* This,
    IUnknown **newEnum);
void __RPC_STUB INetFwServices_get__NewEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#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)
interface 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;

};
#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
/*** 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)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_get_Name_Proxy(
    INetFwAuthorizedApplication* This,
    BSTR *name);
void __RPC_STUB INetFwAuthorizedApplication_get_Name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_put_Name_Proxy(
    INetFwAuthorizedApplication* This,
    BSTR name);
void __RPC_STUB INetFwAuthorizedApplication_put_Name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_get_ProcessImageFileName_Proxy(
    INetFwAuthorizedApplication* This,
    BSTR *imageFileName);
void __RPC_STUB INetFwAuthorizedApplication_get_ProcessImageFileName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_put_ProcessImageFileName_Proxy(
    INetFwAuthorizedApplication* This,
    BSTR imageFileName);
void __RPC_STUB INetFwAuthorizedApplication_put_ProcessImageFileName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_get_IpVersion_Proxy(
    INetFwAuthorizedApplication* This,
    NET_FW_IP_VERSION *ipVersion);
void __RPC_STUB INetFwAuthorizedApplication_get_IpVersion_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_put_IpVersion_Proxy(
    INetFwAuthorizedApplication* This,
    NET_FW_IP_VERSION ipVersion);
void __RPC_STUB INetFwAuthorizedApplication_put_IpVersion_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_get_Scope_Proxy(
    INetFwAuthorizedApplication* This,
    NET_FW_SCOPE *scope);
void __RPC_STUB INetFwAuthorizedApplication_get_Scope_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_put_Scope_Proxy(
    INetFwAuthorizedApplication* This,
    NET_FW_SCOPE scope);
void __RPC_STUB INetFwAuthorizedApplication_put_Scope_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_get_RemoteAddresses_Proxy(
    INetFwAuthorizedApplication* This,
    BSTR *remoteAddrs);
void __RPC_STUB INetFwAuthorizedApplication_get_RemoteAddresses_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_put_RemoteAddresses_Proxy(
    INetFwAuthorizedApplication* This,
    BSTR remoteAddrs);
void __RPC_STUB INetFwAuthorizedApplication_put_RemoteAddresses_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_get_Enabled_Proxy(
    INetFwAuthorizedApplication* This,
    VARIANT_BOOL *enabled);
void __RPC_STUB INetFwAuthorizedApplication_get_Enabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_put_Enabled_Proxy(
    INetFwAuthorizedApplication* This,
    VARIANT_BOOL enabled);
void __RPC_STUB INetFwAuthorizedApplication_put_Enabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __INetFwAuthorizedApplication_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)
interface 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 *imageFileName) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ApplicationName(
        BSTR imageFileName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_ServiceName(
        BSTR *serviceName) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ServiceName(
        BSTR serviceName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Protocol(
        LONG *protocol) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Protocol(
        LONG protocol) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_LocalPorts(
        BSTR *portNumbers) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_LocalPorts(
        BSTR portNumbers) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_RemotePorts(
        BSTR *portNumbers) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_RemotePorts(
        BSTR portNumbers) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_LocalAddresses(
        BSTR *localAddrs) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_LocalAddresses(
        BSTR localAddrs) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_RemoteAddresses(
        BSTR *remoteAddrs) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_RemoteAddresses(
        BSTR remoteAddrs) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_IcmpTypesAndCodes(
        BSTR *icmpTypesAndCodes) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_IcmpTypesAndCodes(
        BSTR icmpTypesAndCodes) = 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 *interfaceTypes) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_InterfaceTypes(
        BSTR interfaceTypes) = 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 *profileTypesBitmask) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Profiles(
        LONG profileTypesBitmask) = 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;

};
#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 *imageFileName);

    HRESULT (STDMETHODCALLTYPE *put_ApplicationName)(
        INetFwRule* This,
        BSTR imageFileName);

    HRESULT (STDMETHODCALLTYPE *get_ServiceName)(
        INetFwRule* This,
        BSTR *serviceName);

    HRESULT (STDMETHODCALLTYPE *put_ServiceName)(
        INetFwRule* This,
        BSTR serviceName);

    HRESULT (STDMETHODCALLTYPE *get_Protocol)(
        INetFwRule* This,
        LONG *protocol);

    HRESULT (STDMETHODCALLTYPE *put_Protocol)(
        INetFwRule* This,
        LONG protocol);

    HRESULT (STDMETHODCALLTYPE *get_LocalPorts)(
        INetFwRule* This,
        BSTR *portNumbers);

    HRESULT (STDMETHODCALLTYPE *put_LocalPorts)(
        INetFwRule* This,
        BSTR portNumbers);

    HRESULT (STDMETHODCALLTYPE *get_RemotePorts)(
        INetFwRule* This,
        BSTR *portNumbers);

    HRESULT (STDMETHODCALLTYPE *put_RemotePorts)(
        INetFwRule* This,
        BSTR portNumbers);

    HRESULT (STDMETHODCALLTYPE *get_LocalAddresses)(
        INetFwRule* This,
        BSTR *localAddrs);

    HRESULT (STDMETHODCALLTYPE *put_LocalAddresses)(
        INetFwRule* This,
        BSTR localAddrs);

    HRESULT (STDMETHODCALLTYPE *get_RemoteAddresses)(
        INetFwRule* This,
        BSTR *remoteAddrs);

    HRESULT (STDMETHODCALLTYPE *put_RemoteAddresses)(
        INetFwRule* This,
        BSTR remoteAddrs);

    HRESULT (STDMETHODCALLTYPE *get_IcmpTypesAndCodes)(
        INetFwRule* This,
        BSTR *icmpTypesAndCodes);

    HRESULT (STDMETHODCALLTYPE *put_IcmpTypesAndCodes)(
        INetFwRule* This,
        BSTR icmpTypesAndCodes);

    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 *interfaceTypes);

    HRESULT (STDMETHODCALLTYPE *put_InterfaceTypes)(
        INetFwRule* This,
        BSTR interfaceTypes);

    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 *profileTypesBitmask);

    HRESULT (STDMETHODCALLTYPE *put_Profiles)(
        INetFwRule* This,
        LONG profileTypesBitmask);

    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
/*** 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,imageFileName) (This)->lpVtbl->get_ApplicationName(This,imageFileName)
#define INetFwRule_put_ApplicationName(This,imageFileName) (This)->lpVtbl->put_ApplicationName(This,imageFileName)
#define INetFwRule_get_ServiceName(This,serviceName) (This)->lpVtbl->get_ServiceName(This,serviceName)
#define INetFwRule_put_ServiceName(This,serviceName) (This)->lpVtbl->put_ServiceName(This,serviceName)
#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,portNumbers) (This)->lpVtbl->get_LocalPorts(This,portNumbers)
#define INetFwRule_put_LocalPorts(This,portNumbers) (This)->lpVtbl->put_LocalPorts(This,portNumbers)
#define INetFwRule_get_RemotePorts(This,portNumbers) (This)->lpVtbl->get_RemotePorts(This,portNumbers)
#define INetFwRule_put_RemotePorts(This,portNumbers) (This)->lpVtbl->put_RemotePorts(This,portNumbers)
#define INetFwRule_get_LocalAddresses(This,localAddrs) (This)->lpVtbl->get_LocalAddresses(This,localAddrs)
#define INetFwRule_put_LocalAddresses(This,localAddrs) (This)->lpVtbl->put_LocalAddresses(This,localAddrs)
#define INetFwRule_get_RemoteAddresses(This,remoteAddrs) (This)->lpVtbl->get_RemoteAddresses(This,remoteAddrs)
#define INetFwRule_put_RemoteAddresses(This,remoteAddrs) (This)->lpVtbl->put_RemoteAddresses(This,remoteAddrs)
#define INetFwRule_get_IcmpTypesAndCodes(This,icmpTypesAndCodes) (This)->lpVtbl->get_IcmpTypesAndCodes(This,icmpTypesAndCodes)
#define INetFwRule_put_IcmpTypesAndCodes(This,icmpTypesAndCodes) (This)->lpVtbl->put_IcmpTypesAndCodes(This,icmpTypesAndCodes)
#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,interfaceTypes) (This)->lpVtbl->get_InterfaceTypes(This,interfaceTypes)
#define INetFwRule_put_InterfaceTypes(This,interfaceTypes) (This)->lpVtbl->put_InterfaceTypes(This,interfaceTypes)
#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,profileTypesBitmask) (This)->lpVtbl->get_Profiles(This,profileTypesBitmask)
#define INetFwRule_put_Profiles(This,profileTypesBitmask) (This)->lpVtbl->put_Profiles(This,profileTypesBitmask)
#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)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwRule_get_Name_Proxy(
    INetFwRule* This,
    BSTR *name);
void __RPC_STUB INetFwRule_get_Name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_Name_Proxy(
    INetFwRule* This,
    BSTR name);
void __RPC_STUB INetFwRule_put_Name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_Description_Proxy(
    INetFwRule* This,
    BSTR *desc);
void __RPC_STUB INetFwRule_get_Description_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_Description_Proxy(
    INetFwRule* This,
    BSTR desc);
void __RPC_STUB INetFwRule_put_Description_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_ApplicationName_Proxy(
    INetFwRule* This,
    BSTR *imageFileName);
void __RPC_STUB INetFwRule_get_ApplicationName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_ApplicationName_Proxy(
    INetFwRule* This,
    BSTR imageFileName);
void __RPC_STUB INetFwRule_put_ApplicationName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_ServiceName_Proxy(
    INetFwRule* This,
    BSTR *serviceName);
void __RPC_STUB INetFwRule_get_ServiceName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_ServiceName_Proxy(
    INetFwRule* This,
    BSTR serviceName);
void __RPC_STUB INetFwRule_put_ServiceName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_Protocol_Proxy(
    INetFwRule* This,
    LONG *protocol);
void __RPC_STUB INetFwRule_get_Protocol_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_Protocol_Proxy(
    INetFwRule* This,
    LONG protocol);
void __RPC_STUB INetFwRule_put_Protocol_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_LocalPorts_Proxy(
    INetFwRule* This,
    BSTR *portNumbers);
void __RPC_STUB INetFwRule_get_LocalPorts_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_LocalPorts_Proxy(
    INetFwRule* This,
    BSTR portNumbers);
void __RPC_STUB INetFwRule_put_LocalPorts_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_RemotePorts_Proxy(
    INetFwRule* This,
    BSTR *portNumbers);
void __RPC_STUB INetFwRule_get_RemotePorts_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_RemotePorts_Proxy(
    INetFwRule* This,
    BSTR portNumbers);
void __RPC_STUB INetFwRule_put_RemotePorts_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_LocalAddresses_Proxy(
    INetFwRule* This,
    BSTR *localAddrs);
void __RPC_STUB INetFwRule_get_LocalAddresses_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_LocalAddresses_Proxy(
    INetFwRule* This,
    BSTR localAddrs);
void __RPC_STUB INetFwRule_put_LocalAddresses_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_RemoteAddresses_Proxy(
    INetFwRule* This,
    BSTR *remoteAddrs);
void __RPC_STUB INetFwRule_get_RemoteAddresses_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_RemoteAddresses_Proxy(
    INetFwRule* This,
    BSTR remoteAddrs);
void __RPC_STUB INetFwRule_put_RemoteAddresses_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_IcmpTypesAndCodes_Proxy(
    INetFwRule* This,
    BSTR *icmpTypesAndCodes);
void __RPC_STUB INetFwRule_get_IcmpTypesAndCodes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_IcmpTypesAndCodes_Proxy(
    INetFwRule* This,
    BSTR icmpTypesAndCodes);
void __RPC_STUB INetFwRule_put_IcmpTypesAndCodes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_Direction_Proxy(
    INetFwRule* This,
    NET_FW_RULE_DIRECTION *dir);
void __RPC_STUB INetFwRule_get_Direction_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_Direction_Proxy(
    INetFwRule* This,
    NET_FW_RULE_DIRECTION dir);
void __RPC_STUB INetFwRule_put_Direction_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_Interfaces_Proxy(
    INetFwRule* This,
    VARIANT *interfaces);
void __RPC_STUB INetFwRule_get_Interfaces_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_Interfaces_Proxy(
    INetFwRule* This,
    VARIANT interfaces);
void __RPC_STUB INetFwRule_put_Interfaces_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_InterfaceTypes_Proxy(
    INetFwRule* This,
    BSTR *interfaceTypes);
void __RPC_STUB INetFwRule_get_InterfaceTypes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_InterfaceTypes_Proxy(
    INetFwRule* This,
    BSTR interfaceTypes);
void __RPC_STUB INetFwRule_put_InterfaceTypes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_Enabled_Proxy(
    INetFwRule* This,
    VARIANT_BOOL *enabled);
void __RPC_STUB INetFwRule_get_Enabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_Enabled_Proxy(
    INetFwRule* This,
    VARIANT_BOOL enabled);
void __RPC_STUB INetFwRule_put_Enabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_Grouping_Proxy(
    INetFwRule* This,
    BSTR *context);
void __RPC_STUB INetFwRule_get_Grouping_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_Grouping_Proxy(
    INetFwRule* This,
    BSTR context);
void __RPC_STUB INetFwRule_put_Grouping_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_Profiles_Proxy(
    INetFwRule* This,
    LONG *profileTypesBitmask);
void __RPC_STUB INetFwRule_get_Profiles_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_Profiles_Proxy(
    INetFwRule* This,
    LONG profileTypesBitmask);
void __RPC_STUB INetFwRule_put_Profiles_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_EdgeTraversal_Proxy(
    INetFwRule* This,
    VARIANT_BOOL *enabled);
void __RPC_STUB INetFwRule_get_EdgeTraversal_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_EdgeTraversal_Proxy(
    INetFwRule* This,
    VARIANT_BOOL enabled);
void __RPC_STUB INetFwRule_put_EdgeTraversal_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_get_Action_Proxy(
    INetFwRule* This,
    NET_FW_ACTION *action);
void __RPC_STUB INetFwRule_get_Action_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule_put_Action_Proxy(
    INetFwRule* This,
    NET_FW_ACTION action);
void __RPC_STUB INetFwRule_put_Action_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __INetFwRule_INTERFACE_DEFINED__ */

/*****************************************************************************
 * INetFwRule2 interface
 */
#ifndef __INetFwRule2_INTERFACE_DEFINED__
#define __INetFwRule2_INTERFACE_DEFINED__

DEFINE_GUID(IID_INetFwRule2, 0x9c27c8da, 0x189b, 0x4dde, 0x89,0xf7, 0x8b,0x39,0xa3,0x16,0x78,0x2c);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface INetFwRule2 : public INetFwRule
{
    virtual HRESULT STDMETHODCALLTYPE get_EdgeTraversalOptions(
        LONG *lOptions) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_EdgeTraversalOptions(
        LONG lOptions) = 0;

};
#else
typedef struct INetFwRule2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        INetFwRule2* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        INetFwRule2* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        INetFwRule2* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        INetFwRule2* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        INetFwRule2* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        INetFwRule2* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        INetFwRule2* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** INetFwRule methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Name)(
        INetFwRule2* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *put_Name)(
        INetFwRule2* This,
        BSTR name);

    HRESULT (STDMETHODCALLTYPE *get_Description)(
        INetFwRule2* This,
        BSTR *desc);

    HRESULT (STDMETHODCALLTYPE *put_Description)(
        INetFwRule2* This,
        BSTR desc);

    HRESULT (STDMETHODCALLTYPE *get_ApplicationName)(
        INetFwRule2* This,
        BSTR *imageFileName);

    HRESULT (STDMETHODCALLTYPE *put_ApplicationName)(
        INetFwRule2* This,
        BSTR imageFileName);

    HRESULT (STDMETHODCALLTYPE *get_ServiceName)(
        INetFwRule2* This,
        BSTR *serviceName);

    HRESULT (STDMETHODCALLTYPE *put_ServiceName)(
        INetFwRule2* This,
        BSTR serviceName);

    HRESULT (STDMETHODCALLTYPE *get_Protocol)(
        INetFwRule2* This,
        LONG *protocol);

    HRESULT (STDMETHODCALLTYPE *put_Protocol)(
        INetFwRule2* This,
        LONG protocol);

    HRESULT (STDMETHODCALLTYPE *get_LocalPorts)(
        INetFwRule2* This,
        BSTR *portNumbers);

    HRESULT (STDMETHODCALLTYPE *put_LocalPorts)(
        INetFwRule2* This,
        BSTR portNumbers);

    HRESULT (STDMETHODCALLTYPE *get_RemotePorts)(
        INetFwRule2* This,
        BSTR *portNumbers);

    HRESULT (STDMETHODCALLTYPE *put_RemotePorts)(
        INetFwRule2* This,
        BSTR portNumbers);

    HRESULT (STDMETHODCALLTYPE *get_LocalAddresses)(
        INetFwRule2* This,
        BSTR *localAddrs);

    HRESULT (STDMETHODCALLTYPE *put_LocalAddresses)(
        INetFwRule2* This,
        BSTR localAddrs);

    HRESULT (STDMETHODCALLTYPE *get_RemoteAddresses)(
        INetFwRule2* This,
        BSTR *remoteAddrs);

    HRESULT (STDMETHODCALLTYPE *put_RemoteAddresses)(
        INetFwRule2* This,
        BSTR remoteAddrs);

    HRESULT (STDMETHODCALLTYPE *get_IcmpTypesAndCodes)(
        INetFwRule2* This,
        BSTR *icmpTypesAndCodes);

    HRESULT (STDMETHODCALLTYPE *put_IcmpTypesAndCodes)(
        INetFwRule2* This,
        BSTR icmpTypesAndCodes);

    HRESULT (STDMETHODCALLTYPE *get_Direction)(
        INetFwRule2* This,
        NET_FW_RULE_DIRECTION *dir);

    HRESULT (STDMETHODCALLTYPE *put_Direction)(
        INetFwRule2* This,
        NET_FW_RULE_DIRECTION dir);

    HRESULT (STDMETHODCALLTYPE *get_Interfaces)(
        INetFwRule2* This,
        VARIANT *interfaces);

    HRESULT (STDMETHODCALLTYPE *put_Interfaces)(
        INetFwRule2* This,
        VARIANT interfaces);

    HRESULT (STDMETHODCALLTYPE *get_InterfaceTypes)(
        INetFwRule2* This,
        BSTR *interfaceTypes);

    HRESULT (STDMETHODCALLTYPE *put_InterfaceTypes)(
        INetFwRule2* This,
        BSTR interfaceTypes);

    HRESULT (STDMETHODCALLTYPE *get_Enabled)(
        INetFwRule2* This,
        VARIANT_BOOL *enabled);

    HRESULT (STDMETHODCALLTYPE *put_Enabled)(
        INetFwRule2* This,
        VARIANT_BOOL enabled);

    HRESULT (STDMETHODCALLTYPE *get_Grouping)(
        INetFwRule2* This,
        BSTR *context);

    HRESULT (STDMETHODCALLTYPE *put_Grouping)(
        INetFwRule2* This,
        BSTR context);

    HRESULT (STDMETHODCALLTYPE *get_Profiles)(
        INetFwRule2* This,
        LONG *profileTypesBitmask);

    HRESULT (STDMETHODCALLTYPE *put_Profiles)(
        INetFwRule2* This,
        LONG profileTypesBitmask);

    HRESULT (STDMETHODCALLTYPE *get_EdgeTraversal)(
        INetFwRule2* This,
        VARIANT_BOOL *enabled);

    HRESULT (STDMETHODCALLTYPE *put_EdgeTraversal)(
        INetFwRule2* This,
        VARIANT_BOOL enabled);

    HRESULT (STDMETHODCALLTYPE *get_Action)(
        INetFwRule2* This,
        NET_FW_ACTION *action);

    HRESULT (STDMETHODCALLTYPE *put_Action)(
        INetFwRule2* This,
        NET_FW_ACTION action);

    /*** INetFwRule2 methods ***/
    HRESULT (STDMETHODCALLTYPE *get_EdgeTraversalOptions)(
        INetFwRule2* This,
        LONG *lOptions);

    HRESULT (STDMETHODCALLTYPE *put_EdgeTraversalOptions)(
        INetFwRule2* This,
        LONG lOptions);

    END_INTERFACE
} INetFwRule2Vtbl;
interface INetFwRule2 {
    CONST_VTBL INetFwRule2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define INetFwRule2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define INetFwRule2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define INetFwRule2_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define INetFwRule2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define INetFwRule2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define INetFwRule2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define INetFwRule2_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 INetFwRule2_get_Name(This,name) (This)->lpVtbl->get_Name(This,name)
#define INetFwRule2_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
#define INetFwRule2_get_Description(This,desc) (This)->lpVtbl->get_Description(This,desc)
#define INetFwRule2_put_Description(This,desc) (This)->lpVtbl->put_Description(This,desc)
#define INetFwRule2_get_ApplicationName(This,imageFileName) (This)->lpVtbl->get_ApplicationName(This,imageFileName)
#define INetFwRule2_put_ApplicationName(This,imageFileName) (This)->lpVtbl->put_ApplicationName(This,imageFileName)
#define INetFwRule2_get_ServiceName(This,serviceName) (This)->lpVtbl->get_ServiceName(This,serviceName)
#define INetFwRule2_put_ServiceName(This,serviceName) (This)->lpVtbl->put_ServiceName(This,serviceName)
#define INetFwRule2_get_Protocol(This,protocol) (This)->lpVtbl->get_Protocol(This,protocol)
#define INetFwRule2_put_Protocol(This,protocol) (This)->lpVtbl->put_Protocol(This,protocol)
#define INetFwRule2_get_LocalPorts(This,portNumbers) (This)->lpVtbl->get_LocalPorts(This,portNumbers)
#define INetFwRule2_put_LocalPorts(This,portNumbers) (This)->lpVtbl->put_LocalPorts(This,portNumbers)
#define INetFwRule2_get_RemotePorts(This,portNumbers) (This)->lpVtbl->get_RemotePorts(This,portNumbers)
#define INetFwRule2_put_RemotePorts(This,portNumbers) (This)->lpVtbl->put_RemotePorts(This,portNumbers)
#define INetFwRule2_get_LocalAddresses(This,localAddrs) (This)->lpVtbl->get_LocalAddresses(This,localAddrs)
#define INetFwRule2_put_LocalAddresses(This,localAddrs) (This)->lpVtbl->put_LocalAddresses(This,localAddrs)
#define INetFwRule2_get_RemoteAddresses(This,remoteAddrs) (This)->lpVtbl->get_RemoteAddresses(This,remoteAddrs)
#define INetFwRule2_put_RemoteAddresses(This,remoteAddrs) (This)->lpVtbl->put_RemoteAddresses(This,remoteAddrs)
#define INetFwRule2_get_IcmpTypesAndCodes(This,icmpTypesAndCodes) (This)->lpVtbl->get_IcmpTypesAndCodes(This,icmpTypesAndCodes)
#define INetFwRule2_put_IcmpTypesAndCodes(This,icmpTypesAndCodes) (This)->lpVtbl->put_IcmpTypesAndCodes(This,icmpTypesAndCodes)
#define INetFwRule2_get_Direction(This,dir) (This)->lpVtbl->get_Direction(This,dir)
#define INetFwRule2_put_Direction(This,dir) (This)->lpVtbl->put_Direction(This,dir)
#define INetFwRule2_get_Interfaces(This,interfaces) (This)->lpVtbl->get_Interfaces(This,interfaces)
#define INetFwRule2_put_Interfaces(This,interfaces) (This)->lpVtbl->put_Interfaces(This,interfaces)
#define INetFwRule2_get_InterfaceTypes(This,interfaceTypes) (This)->lpVtbl->get_InterfaceTypes(This,interfaceTypes)
#define INetFwRule2_put_InterfaceTypes(This,interfaceTypes) (This)->lpVtbl->put_InterfaceTypes(This,interfaceTypes)
#define INetFwRule2_get_Enabled(This,enabled) (This)->lpVtbl->get_Enabled(This,enabled)
#define INetFwRule2_put_Enabled(This,enabled) (This)->lpVtbl->put_Enabled(This,enabled)
#define INetFwRule2_get_Grouping(This,context) (This)->lpVtbl->get_Grouping(This,context)
#define INetFwRule2_put_Grouping(This,context) (This)->lpVtbl->put_Grouping(This,context)
#define INetFwRule2_get_Profiles(This,profileTypesBitmask) (This)->lpVtbl->get_Profiles(This,profileTypesBitmask)
#define INetFwRule2_put_Profiles(This,profileTypesBitmask) (This)->lpVtbl->put_Profiles(This,profileTypesBitmask)
#define INetFwRule2_get_EdgeTraversal(This,enabled) (This)->lpVtbl->get_EdgeTraversal(This,enabled)
#define INetFwRule2_put_EdgeTraversal(This,enabled) (This)->lpVtbl->put_EdgeTraversal(This,enabled)
#define INetFwRule2_get_Action(This,action) (This)->lpVtbl->get_Action(This,action)
#define INetFwRule2_put_Action(This,action) (This)->lpVtbl->put_Action(This,action)
/*** INetFwRule2 methods ***/
#define INetFwRule2_get_EdgeTraversalOptions(This,lOptions) (This)->lpVtbl->get_EdgeTraversalOptions(This,lOptions)
#define INetFwRule2_put_EdgeTraversalOptions(This,lOptions) (This)->lpVtbl->put_EdgeTraversalOptions(This,lOptions)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwRule2_get_EdgeTraversalOptions_Proxy(
    INetFwRule2* This,
    LONG *lOptions);
void __RPC_STUB INetFwRule2_get_EdgeTraversalOptions_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRule2_put_EdgeTraversalOptions_Proxy(
    INetFwRule2* This,
    LONG lOptions);
void __RPC_STUB INetFwRule2_put_EdgeTraversalOptions_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __INetFwRule2_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)
interface 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;

};
#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
/*** 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)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwRules_get_Count_Proxy(
    INetFwRules* This,
    LONG *count);
void __RPC_STUB INetFwRules_get_Count_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRules_Add_Proxy(
    INetFwRules* This,
    INetFwRule *rule);
void __RPC_STUB INetFwRules_Add_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRules_Remove_Proxy(
    INetFwRules* This,
    BSTR name);
void __RPC_STUB INetFwRules_Remove_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRules_Item_Proxy(
    INetFwRules* This,
    BSTR name,
    INetFwRule **rule);
void __RPC_STUB INetFwRules_Item_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRules_get__NewEnum_Proxy(
    INetFwRules* This,
    IUnknown **newEnum);
void __RPC_STUB INetFwRules_get__NewEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __INetFwRules_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)
interface 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;

};
#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
/*** 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)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_get_IpVersion_Proxy(
    INetFwRemoteAdminSettings* This,
    NET_FW_IP_VERSION *ipVersion);
void __RPC_STUB INetFwRemoteAdminSettings_get_IpVersion_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_put_IpVersion_Proxy(
    INetFwRemoteAdminSettings* This,
    NET_FW_IP_VERSION ipVersion);
void __RPC_STUB INetFwRemoteAdminSettings_put_IpVersion_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_get_Scope_Proxy(
    INetFwRemoteAdminSettings* This,
    NET_FW_SCOPE *scope);
void __RPC_STUB INetFwRemoteAdminSettings_get_Scope_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_put_Scope_Proxy(
    INetFwRemoteAdminSettings* This,
    NET_FW_SCOPE scope);
void __RPC_STUB INetFwRemoteAdminSettings_put_Scope_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_get_RemoteAddresses_Proxy(
    INetFwRemoteAdminSettings* This,
    BSTR *remoteAddrs);
void __RPC_STUB INetFwRemoteAdminSettings_get_RemoteAddresses_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_put_RemoteAddresses_Proxy(
    INetFwRemoteAdminSettings* This,
    BSTR remoteAddrs);
void __RPC_STUB INetFwRemoteAdminSettings_put_RemoteAddresses_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_get_Enabled_Proxy(
    INetFwRemoteAdminSettings* This,
    VARIANT_BOOL *enabled);
void __RPC_STUB INetFwRemoteAdminSettings_get_Enabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_put_Enabled_Proxy(
    INetFwRemoteAdminSettings* This,
    VARIANT_BOOL enabled);
void __RPC_STUB INetFwRemoteAdminSettings_put_Enabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#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)
interface 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;

};
#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
/*** 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)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplications_get_Count_Proxy(
    INetFwAuthorizedApplications* This,
    LONG *count);
void __RPC_STUB INetFwAuthorizedApplications_get_Count_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplications_Add_Proxy(
    INetFwAuthorizedApplications* This,
    INetFwAuthorizedApplication *app);
void __RPC_STUB INetFwAuthorizedApplications_Add_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplications_Remove_Proxy(
    INetFwAuthorizedApplications* This,
    BSTR imageFileName);
void __RPC_STUB INetFwAuthorizedApplications_Remove_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplications_Item_Proxy(
    INetFwAuthorizedApplications* This,
    BSTR imageFileName,
    INetFwAuthorizedApplication **app);
void __RPC_STUB INetFwAuthorizedApplications_Item_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplications_get__NewEnum_Proxy(
    INetFwAuthorizedApplications* This,
    IUnknown **newEnum);
void __RPC_STUB INetFwAuthorizedApplications_get__NewEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __INetFwAuthorizedApplications_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)
interface 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;

};
#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
/*** 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)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwServiceRestriction_RestrictService_Proxy(
    INetFwServiceRestriction* This,
    BSTR serviceName,
    BSTR appName,
    VARIANT_BOOL restrictService,
    VARIANT_BOOL serviceSidRestricted);
void __RPC_STUB INetFwServiceRestriction_RestrictService_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwServiceRestriction_ServiceRestricted_Proxy(
    INetFwServiceRestriction* This,
    BSTR serviceName,
    BSTR appName,
    VARIANT_BOOL *serviceRestricted);
void __RPC_STUB INetFwServiceRestriction_ServiceRestricted_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwServiceRestriction_get_Rules_Proxy(
    INetFwServiceRestriction* This,
    INetFwRules **rules);
void __RPC_STUB INetFwServiceRestriction_get_Rules_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#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)
interface 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;

};
#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
/*** 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)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwProfile_get_Type_Proxy(
    INetFwProfile* This,
    NET_FW_PROFILE_TYPE *type);
void __RPC_STUB INetFwProfile_get_Type_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwProfile_get_FirewallEnabled_Proxy(
    INetFwProfile* This,
    VARIANT_BOOL *enabled);
void __RPC_STUB INetFwProfile_get_FirewallEnabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwProfile_put_FirewallEnabled_Proxy(
    INetFwProfile* This,
    VARIANT_BOOL enabled);
void __RPC_STUB INetFwProfile_put_FirewallEnabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwProfile_get_ExceptionsNotAllowed_Proxy(
    INetFwProfile* This,
    VARIANT_BOOL *notAllowed);
void __RPC_STUB INetFwProfile_get_ExceptionsNotAllowed_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwProfile_put_ExceptionsNotAllowed_Proxy(
    INetFwProfile* This,
    VARIANT_BOOL notAllowed);
void __RPC_STUB INetFwProfile_put_ExceptionsNotAllowed_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwProfile_get_NotificationsDisabled_Proxy(
    INetFwProfile* This,
    VARIANT_BOOL *disabled);
void __RPC_STUB INetFwProfile_get_NotificationsDisabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwProfile_put_NotificationsDisabled_Proxy(
    INetFwProfile* This,
    VARIANT_BOOL disabled);
void __RPC_STUB INetFwProfile_put_NotificationsDisabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwProfile_get_UnicastResponsesToMulticastBroadcastDisabled_Proxy(
    INetFwProfile* This,
    VARIANT_BOOL *disabled);
void __RPC_STUB INetFwProfile_get_UnicastResponsesToMulticastBroadcastDisabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwProfile_put_UnicastResponsesToMulticastBroadcastDisabled_Proxy(
    INetFwProfile* This,
    VARIANT_BOOL disabled);
void __RPC_STUB INetFwProfile_put_UnicastResponsesToMulticastBroadcastDisabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwProfile_get_RemoteAdminSettings_Proxy(
    INetFwProfile* This,
    INetFwRemoteAdminSettings **remoteAdminSettings);
void __RPC_STUB INetFwProfile_get_RemoteAdminSettings_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwProfile_get_IcmpSettings_Proxy(
    INetFwProfile* This,
    INetFwIcmpSettings **icmpSettings);
void __RPC_STUB INetFwProfile_get_IcmpSettings_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwProfile_get_GloballyOpenPorts_Proxy(
    INetFwProfile* This,
    INetFwOpenPorts **openPorts);
void __RPC_STUB INetFwProfile_get_GloballyOpenPorts_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwProfile_get_Services_Proxy(
    INetFwProfile* This,
    INetFwServices **services);
void __RPC_STUB INetFwProfile_get_Services_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwProfile_get_AuthorizedApplications_Proxy(
    INetFwProfile* This,
    INetFwAuthorizedApplications **apps);
void __RPC_STUB INetFwProfile_get_AuthorizedApplications_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#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)
interface INetFwPolicy : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_CurrentProfile(
        INetFwProfile **profile) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetProfileByType(
        NET_FW_PROFILE_TYPE profileType,
        INetFwProfile **profile) = 0;

};
#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
/*** 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)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwPolicy_get_CurrentProfile_Proxy(
    INetFwPolicy* This,
    INetFwProfile **profile);
void __RPC_STUB INetFwPolicy_get_CurrentProfile_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy_GetProfileByType_Proxy(
    INetFwPolicy* This,
    NET_FW_PROFILE_TYPE profileType,
    INetFwProfile **profile);
void __RPC_STUB INetFwPolicy_GetProfileByType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#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)
interface INetFwPolicy2 : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_CurrentProfileTypes(
        LONG *profileTypesBitmask) = 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;

};
#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 *profileTypesBitmask);

    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
/*** 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,profileTypesBitmask) (This)->lpVtbl->get_CurrentProfileTypes(This,profileTypesBitmask)
#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)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwPolicy2_get_CurrentProfileTypes_Proxy(
    INetFwPolicy2* This,
    LONG *profileTypesBitmask);
void __RPC_STUB INetFwPolicy2_get_CurrentProfileTypes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_get_FirewallEnabled_Proxy(
    INetFwPolicy2* This,
    NET_FW_PROFILE_TYPE2 profileType,
    VARIANT_BOOL *enabled);
void __RPC_STUB INetFwPolicy2_get_FirewallEnabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_put_FirewallEnabled_Proxy(
    INetFwPolicy2* This,
    NET_FW_PROFILE_TYPE2 profileType,
    VARIANT_BOOL enabled);
void __RPC_STUB INetFwPolicy2_put_FirewallEnabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_get_ExcludedInterfaces_Proxy(
    INetFwPolicy2* This,
    NET_FW_PROFILE_TYPE2 profileType,
    VARIANT *interfaces);
void __RPC_STUB INetFwPolicy2_get_ExcludedInterfaces_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_put_ExcludedInterfaces_Proxy(
    INetFwPolicy2* This,
    NET_FW_PROFILE_TYPE2 profileType,
    VARIANT interfaces);
void __RPC_STUB INetFwPolicy2_put_ExcludedInterfaces_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_get_BlockAllInboundTraffic_Proxy(
    INetFwPolicy2* This,
    NET_FW_PROFILE_TYPE2 profileType,
    VARIANT_BOOL *Block);
void __RPC_STUB INetFwPolicy2_get_BlockAllInboundTraffic_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_put_BlockAllInboundTraffic_Proxy(
    INetFwPolicy2* This,
    NET_FW_PROFILE_TYPE2 profileType,
    VARIANT_BOOL Block);
void __RPC_STUB INetFwPolicy2_put_BlockAllInboundTraffic_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_get_NotificationsDisabled_Proxy(
    INetFwPolicy2* This,
    NET_FW_PROFILE_TYPE2 profileType,
    VARIANT_BOOL *disabled);
void __RPC_STUB INetFwPolicy2_get_NotificationsDisabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_put_NotificationsDisabled_Proxy(
    INetFwPolicy2* This,
    NET_FW_PROFILE_TYPE2 profileType,
    VARIANT_BOOL disabled);
void __RPC_STUB INetFwPolicy2_put_NotificationsDisabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_get_UnicastResponsesToMulticastBroadcastDisabled_Proxy(
    INetFwPolicy2* This,
    NET_FW_PROFILE_TYPE2 profileType,
    VARIANT_BOOL *disabled);
void __RPC_STUB INetFwPolicy2_get_UnicastResponsesToMulticastBroadcastDisabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_put_UnicastResponsesToMulticastBroadcastDisabled_Proxy(
    INetFwPolicy2* This,
    NET_FW_PROFILE_TYPE2 profileType,
    VARIANT_BOOL disabled);
void __RPC_STUB INetFwPolicy2_put_UnicastResponsesToMulticastBroadcastDisabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_get_Rules_Proxy(
    INetFwPolicy2* This,
    INetFwRules **rules);
void __RPC_STUB INetFwPolicy2_get_Rules_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_get_ServiceRestriction_Proxy(
    INetFwPolicy2* This,
    INetFwServiceRestriction **ServiceRestriction);
void __RPC_STUB INetFwPolicy2_get_ServiceRestriction_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_EnableRuleGroup_Proxy(
    INetFwPolicy2* This,
    LONG profileTypesBitmask,
    BSTR group,
    VARIANT_BOOL enable);
void __RPC_STUB INetFwPolicy2_EnableRuleGroup_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_IsRuleGroupEnabled_Proxy(
    INetFwPolicy2* This,
    LONG profileTypesBitmask,
    BSTR group,
    VARIANT_BOOL *enabled);
void __RPC_STUB INetFwPolicy2_IsRuleGroupEnabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_RestoreLocalFirewallDefaults_Proxy(
    INetFwPolicy2* This);
void __RPC_STUB INetFwPolicy2_RestoreLocalFirewallDefaults_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_get_DefaultInboundAction_Proxy(
    INetFwPolicy2* This,
    NET_FW_PROFILE_TYPE2 profileType,
    NET_FW_ACTION *action);
void __RPC_STUB INetFwPolicy2_get_DefaultInboundAction_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_put_DefaultInboundAction_Proxy(
    INetFwPolicy2* This,
    NET_FW_PROFILE_TYPE2 profileType,
    NET_FW_ACTION action);
void __RPC_STUB INetFwPolicy2_put_DefaultInboundAction_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_get_DefaultOutboundAction_Proxy(
    INetFwPolicy2* This,
    NET_FW_PROFILE_TYPE2 profileType,
    NET_FW_ACTION *action);
void __RPC_STUB INetFwPolicy2_get_DefaultOutboundAction_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_put_DefaultOutboundAction_Proxy(
    INetFwPolicy2* This,
    NET_FW_PROFILE_TYPE2 profileType,
    NET_FW_ACTION action);
void __RPC_STUB INetFwPolicy2_put_DefaultOutboundAction_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_get_IsRuleGroupCurrentlyEnabled_Proxy(
    INetFwPolicy2* This,
    BSTR group,
    VARIANT_BOOL *enabled);
void __RPC_STUB INetFwPolicy2_get_IsRuleGroupCurrentlyEnabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwPolicy2_get_LocalPolicyModifyState_Proxy(
    INetFwPolicy2* This,
    NET_FW_MODIFY_STATE *modifyState);
void __RPC_STUB INetFwPolicy2_get_LocalPolicyModifyState_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#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)
interface 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;

};
#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
/*** 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)
#endif

#endif

HRESULT STDMETHODCALLTYPE INetFwMgr_get_LocalPolicy_Proxy(
    INetFwMgr* This,
    INetFwPolicy **localPolicy);
void __RPC_STUB INetFwMgr_get_LocalPolicy_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwMgr_get_CurrentProfileType_Proxy(
    INetFwMgr* This,
    NET_FW_PROFILE_TYPE *profileType);
void __RPC_STUB INetFwMgr_get_CurrentProfileType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwMgr_RestoreDefaults_Proxy(
    INetFwMgr* This);
void __RPC_STUB INetFwMgr_RestoreDefaults_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwMgr_IsPortAllowed_Proxy(
    INetFwMgr* This,
    BSTR imageFileName,
    NET_FW_IP_VERSION ipVersion,
    LONG portNumber,
    BSTR localAddress,
    NET_FW_IP_PROTOCOL ipProtocol,
    VARIANT *allowed,
    VARIANT *restricted);
void __RPC_STUB INetFwMgr_IsPortAllowed_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE INetFwMgr_IsIcmpTypeAllowed_Proxy(
    INetFwMgr* This,
    NET_FW_IP_VERSION ipVersion,
    BSTR localAddress,
    BYTE type,
    VARIANT *allowed,
    VARIANT *restricted);
void __RPC_STUB INetFwMgr_IsIcmpTypeAllowed_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#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;
#endif

#ifndef __INetFwIcmpSettings_FWD_DEFINED__
#define __INetFwIcmpSettings_FWD_DEFINED__
typedef interface INetFwIcmpSettings INetFwIcmpSettings;
#endif

#ifndef __INetFwOpenPort_FWD_DEFINED__
#define __INetFwOpenPort_FWD_DEFINED__
typedef interface INetFwOpenPort INetFwOpenPort;
#endif

#ifndef __INetFwOpenPorts_FWD_DEFINED__
#define __INetFwOpenPorts_FWD_DEFINED__
typedef interface INetFwOpenPorts INetFwOpenPorts;
#endif

#ifndef __INetFwService_FWD_DEFINED__
#define __INetFwService_FWD_DEFINED__
typedef interface INetFwService INetFwService;
#endif

#ifndef __INetFwServices_FWD_DEFINED__
#define __INetFwServices_FWD_DEFINED__
typedef interface INetFwServices INetFwServices;
#endif

#ifndef __INetFwAuthorizedApplication_FWD_DEFINED__
#define __INetFwAuthorizedApplication_FWD_DEFINED__
typedef interface INetFwAuthorizedApplication INetFwAuthorizedApplication;
#endif

#ifndef __INetFwAuthorizedApplications_FWD_DEFINED__
#define __INetFwAuthorizedApplications_FWD_DEFINED__
typedef interface INetFwAuthorizedApplications INetFwAuthorizedApplications;
#endif

#ifndef __INetFwRule_FWD_DEFINED__
#define __INetFwRule_FWD_DEFINED__
typedef interface INetFwRule INetFwRule;
#endif

#ifndef __INetFwRules_FWD_DEFINED__
#define __INetFwRules_FWD_DEFINED__
typedef interface INetFwRules INetFwRules;
#endif

#ifndef __INetFwProfile_FWD_DEFINED__
#define __INetFwProfile_FWD_DEFINED__
typedef interface INetFwProfile INetFwProfile;
#endif

#ifndef __INetFwPolicy_FWD_DEFINED__
#define __INetFwPolicy_FWD_DEFINED__
typedef interface INetFwPolicy INetFwPolicy;
#endif

#ifndef __INetFwPolicy2_FWD_DEFINED__
#define __INetFwPolicy2_FWD_DEFINED__
typedef interface INetFwPolicy2 INetFwPolicy2;
#endif

#ifndef __INetFwMgr_FWD_DEFINED__
#define __INetFwMgr_FWD_DEFINED__
typedef interface INetFwMgr INetFwMgr;
#endif

/*****************************************************************************
 * NetFwRule coclass
 */

DEFINE_GUID(CLSID_NetFwRule, 0x2c5bc43e, 0x3369, 0x4c33, 0xab,0x0c, 0xbe,0x94,0x69,0x67,0x7a,0xf4);

/*****************************************************************************
 * NetFwOpenPort coclass
 */

DEFINE_GUID(CLSID_NetFwOpenPort, 0x0ca545c6, 0x37ad, 0x4a6c, 0xbf,0x92, 0x9f,0x76,0x10,0x06,0x7e,0xf5);

/*****************************************************************************
 * NetFwAuthorizedApplication coclass
 */

DEFINE_GUID(CLSID_NetFwAuthorizedApplication, 0xec9846b3, 0x2762, 0x4a6b, 0xa2,0x14, 0x6a,0xcb,0x60,0x34,0x62,0xd2);

/*****************************************************************************
 * NetFwPolicy2 coclass
 */

DEFINE_GUID(CLSID_NetFwPolicy2, 0xe2b3c97f, 0x6ae1, 0x41ac, 0x81,0x7a, 0xf6,0xf9,0x21,0x66,0xd7,0xdd);

/*****************************************************************************
 * NetFwMgr coclass
 */

DEFINE_GUID(CLSID_NetFwMgr, 0x304ce942, 0x6e39, 0x40d8, 0x94,0x3a, 0xb9,0x13,0xc4,0x0c,0x9c,0xd4);

/* 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 /* __WIDL_NETFW_H */
