From 6860b3202f3c8218288fad2778529ba76463015c Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Sat, 13 Oct 2012 09:07:09 +0000 Subject: MSN: folders restructurization git-svn-id: http://svn.miranda-ng.org/main/trunk@1901 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/MSN/src/SDK/icftypes.h | 119 ++ protocols/MSN/src/SDK/netfw.h | 3770 +++++++++++++++++++++++++++++++++ protocols/MSN/src/des.c | 639 ++++++ protocols/MSN/src/des.h | 170 ++ protocols/MSN/src/ezxml.c | 967 +++++++++ protocols/MSN/src/ezxml.h | 165 ++ protocols/MSN/src/msn.cpp | 158 ++ protocols/MSN/src/msn_auth.cpp | 557 +++++ protocols/MSN/src/msn_chat.cpp | 489 +++++ protocols/MSN/src/msn_commands.cpp | 1980 +++++++++++++++++ protocols/MSN/src/msn_contact.cpp | 273 +++ protocols/MSN/src/msn_errors.cpp | 91 + protocols/MSN/src/msn_ftold.cpp | 393 ++++ protocols/MSN/src/msn_global.h | 878 ++++++++ protocols/MSN/src/msn_http.cpp | 128 ++ protocols/MSN/src/msn_libstr.cpp | 390 ++++ protocols/MSN/src/msn_links.cpp | 171 ++ protocols/MSN/src/msn_lists.cpp | 724 +++++++ protocols/MSN/src/msn_mail.cpp | 428 ++++ protocols/MSN/src/msn_menu.cpp | 513 +++++ protocols/MSN/src/msn_mime.cpp | 534 +++++ protocols/MSN/src/msn_misc.cpp | 1474 +++++++++++++ protocols/MSN/src/msn_msgqueue.cpp | 204 ++ protocols/MSN/src/msn_msgsplit.cpp | 122 ++ protocols/MSN/src/msn_natdetect.cpp | 494 +++++ protocols/MSN/src/msn_opts.cpp | 782 +++++++ protocols/MSN/src/msn_p2p.cpp | 2533 ++++++++++++++++++++++ protocols/MSN/src/msn_p2ps.cpp | 358 ++++ protocols/MSN/src/msn_proto.cpp | 1241 +++++++++++ protocols/MSN/src/msn_proto.h | 598 ++++++ protocols/MSN/src/msn_soapab.cpp | 1718 +++++++++++++++ protocols/MSN/src/msn_soapstore.cpp | 779 +++++++ protocols/MSN/src/msn_srv.cpp | 414 ++++ protocols/MSN/src/msn_ssl.cpp | 138 ++ protocols/MSN/src/msn_std.cpp | 220 ++ protocols/MSN/src/msn_svcs.cpp | 641 ++++++ protocols/MSN/src/msn_switchboard.cpp | 51 + protocols/MSN/src/msn_threads.cpp | 862 ++++++++ protocols/MSN/src/msn_useropts.cpp | 77 + protocols/MSN/src/msn_ws.cpp | 178 ++ protocols/MSN/src/resource.h | 100 + protocols/MSN/src/version.h | 21 + 42 files changed, 26542 insertions(+) create mode 100644 protocols/MSN/src/SDK/icftypes.h create mode 100644 protocols/MSN/src/SDK/netfw.h create mode 100644 protocols/MSN/src/des.c create mode 100644 protocols/MSN/src/des.h create mode 100644 protocols/MSN/src/ezxml.c create mode 100644 protocols/MSN/src/ezxml.h create mode 100644 protocols/MSN/src/msn.cpp create mode 100644 protocols/MSN/src/msn_auth.cpp create mode 100644 protocols/MSN/src/msn_chat.cpp create mode 100644 protocols/MSN/src/msn_commands.cpp create mode 100644 protocols/MSN/src/msn_contact.cpp create mode 100644 protocols/MSN/src/msn_errors.cpp create mode 100644 protocols/MSN/src/msn_ftold.cpp create mode 100644 protocols/MSN/src/msn_global.h create mode 100644 protocols/MSN/src/msn_http.cpp create mode 100644 protocols/MSN/src/msn_libstr.cpp create mode 100644 protocols/MSN/src/msn_links.cpp create mode 100644 protocols/MSN/src/msn_lists.cpp create mode 100644 protocols/MSN/src/msn_mail.cpp create mode 100644 protocols/MSN/src/msn_menu.cpp create mode 100644 protocols/MSN/src/msn_mime.cpp create mode 100644 protocols/MSN/src/msn_misc.cpp create mode 100644 protocols/MSN/src/msn_msgqueue.cpp create mode 100644 protocols/MSN/src/msn_msgsplit.cpp create mode 100644 protocols/MSN/src/msn_natdetect.cpp create mode 100644 protocols/MSN/src/msn_opts.cpp create mode 100644 protocols/MSN/src/msn_p2p.cpp create mode 100644 protocols/MSN/src/msn_p2ps.cpp create mode 100644 protocols/MSN/src/msn_proto.cpp create mode 100644 protocols/MSN/src/msn_proto.h create mode 100644 protocols/MSN/src/msn_soapab.cpp create mode 100644 protocols/MSN/src/msn_soapstore.cpp create mode 100644 protocols/MSN/src/msn_srv.cpp create mode 100644 protocols/MSN/src/msn_ssl.cpp create mode 100644 protocols/MSN/src/msn_std.cpp create mode 100644 protocols/MSN/src/msn_svcs.cpp create mode 100644 protocols/MSN/src/msn_switchboard.cpp create mode 100644 protocols/MSN/src/msn_threads.cpp create mode 100644 protocols/MSN/src/msn_useropts.cpp create mode 100644 protocols/MSN/src/msn_ws.cpp create mode 100644 protocols/MSN/src/resource.h create mode 100644 protocols/MSN/src/version.h (limited to 'protocols/MSN/src') diff --git a/protocols/MSN/src/SDK/icftypes.h b/protocols/MSN/src/SDK/icftypes.h new file mode 100644 index 0000000000..d2b30b2cb1 --- /dev/null +++ b/protocols/MSN/src/SDK/icftypes.h @@ -0,0 +1,119 @@ + + +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + + /* File created by MIDL compiler version 6.00.0366 */ +/* Compiler settings for icftypes.idl: + Oicf, W1, Zp8, env=Win32 (32b run) + protocol : dce , ms_ext, c_ext, robust + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +//@@MIDL_FILE_HEADING( ) + +#if defined(_MSC_VER) +#pragma warning( disable: 4049 ) /* more than 64k source lines */ +#endif + + +/* verify that the version is high enough to compile this file*/ +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif + +#include "rpc.h" +#include "rpcndr.h" + +#ifndef __RPCNDR_H_VERSION__ +#error this stub requires an updated version of +#endif // __RPCNDR_H_VERSION__ + + +#ifndef __icftypes_h__ +#define __icftypes_h__ + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +/* Forward Declarations */ + +/* header files for imported files */ +#include "wtypes.h" + +#ifdef __cplusplus +extern "C"{ +#endif + +void * __RPC_USER MIDL_user_allocate(size_t); +void __RPC_USER MIDL_user_free( void * ); + +/* interface __MIDL_itf_icftypes_0000 */ +/* [local] */ + +typedef +enum NET_FW_POLICY_TYPE_ + { NET_FW_POLICY_GROUP = 0, + NET_FW_POLICY_LOCAL = NET_FW_POLICY_GROUP + 1, + NET_FW_POLICY_EFFECTIVE = NET_FW_POLICY_LOCAL + 1, + NET_FW_POLICY_TYPE_MAX = NET_FW_POLICY_EFFECTIVE + 1 + } NET_FW_POLICY_TYPE; + +typedef +enum NET_FW_PROFILE_TYPE_ + { NET_FW_PROFILE_DOMAIN = 0, + NET_FW_PROFILE_STANDARD = NET_FW_PROFILE_DOMAIN + 1, + NET_FW_PROFILE_CURRENT = NET_FW_PROFILE_STANDARD + 1, + NET_FW_PROFILE_TYPE_MAX = NET_FW_PROFILE_CURRENT + 1 + } NET_FW_PROFILE_TYPE; + +typedef +enum NET_FW_IP_VERSION_ + { NET_FW_IP_VERSION_V4 = 0, + NET_FW_IP_VERSION_V6 = NET_FW_IP_VERSION_V4 + 1, + NET_FW_IP_VERSION_ANY = NET_FW_IP_VERSION_V6 + 1, + NET_FW_IP_VERSION_MAX = NET_FW_IP_VERSION_ANY + 1 + } NET_FW_IP_VERSION; + +typedef +enum NET_FW_SCOPE_ + { NET_FW_SCOPE_ALL = 0, + NET_FW_SCOPE_LOCAL_SUBNET = NET_FW_SCOPE_ALL + 1, + NET_FW_SCOPE_CUSTOM = NET_FW_SCOPE_LOCAL_SUBNET + 1, + NET_FW_SCOPE_MAX = NET_FW_SCOPE_CUSTOM + 1 + } NET_FW_SCOPE; + +typedef +enum NET_FW_IP_PROTOCOL_ + { NET_FW_IP_PROTOCOL_TCP = 6, + NET_FW_IP_PROTOCOL_UDP = 17 + } NET_FW_IP_PROTOCOL; + +typedef +enum NET_FW_SERVICE_TYPE_ + { NET_FW_SERVICE_FILE_AND_PRINT = 0, + NET_FW_SERVICE_UPNP = NET_FW_SERVICE_FILE_AND_PRINT + 1, + NET_FW_SERVICE_REMOTE_DESKTOP = NET_FW_SERVICE_UPNP + 1, + NET_FW_SERVICE_NONE = NET_FW_SERVICE_REMOTE_DESKTOP + 1, + NET_FW_SERVICE_TYPE_MAX = NET_FW_SERVICE_NONE + 1 + } NET_FW_SERVICE_TYPE; + + + +extern RPC_IF_HANDLE __MIDL_itf_icftypes_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_icftypes_0000_v0_0_s_ifspec; + +/* Additional Prototypes for ALL interfaces */ + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/protocols/MSN/src/SDK/netfw.h b/protocols/MSN/src/SDK/netfw.h new file mode 100644 index 0000000000..a767129740 --- /dev/null +++ b/protocols/MSN/src/SDK/netfw.h @@ -0,0 +1,3770 @@ + + +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + + /* File created by MIDL compiler version 6.00.0366 */ +/* Compiler settings for netfw.idl: + Oicf, W1, Zp8, env=Win32 (32b run) + protocol : dce , ms_ext, c_ext, robust + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +//@@MIDL_FILE_HEADING( ) + +#if defined(_MSC_VER) +#pragma warning( disable: 4049 ) /* more than 64k source lines */ +#endif + + +/* verify that the version is high enough to compile this file*/ +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif + +#include "rpc.h" +#include "rpcndr.h" + +#ifndef __RPCNDR_H_VERSION__ +#error this stub requires an updated version of +#endif // __RPCNDR_H_VERSION__ + +#ifndef COM_NO_WINDOWS_H +#include "windows.h" +#include "ole2.h" +#endif /*COM_NO_WINDOWS_H*/ + +#ifndef __netfw_h__ +#define __netfw_h__ + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +/* Forward Declarations */ + +#ifndef __INetFwRemoteAdminSettings_FWD_DEFINED__ +#define __INetFwRemoteAdminSettings_FWD_DEFINED__ +typedef interface INetFwRemoteAdminSettings INetFwRemoteAdminSettings; +#endif /* __INetFwRemoteAdminSettings_FWD_DEFINED__ */ + + +#ifndef __INetFwIcmpSettings_FWD_DEFINED__ +#define __INetFwIcmpSettings_FWD_DEFINED__ +typedef interface INetFwIcmpSettings INetFwIcmpSettings; +#endif /* __INetFwIcmpSettings_FWD_DEFINED__ */ + + +#ifndef __INetFwOpenPort_FWD_DEFINED__ +#define __INetFwOpenPort_FWD_DEFINED__ +typedef interface INetFwOpenPort INetFwOpenPort; +#endif /* __INetFwOpenPort_FWD_DEFINED__ */ + + +#ifndef __INetFwOpenPorts_FWD_DEFINED__ +#define __INetFwOpenPorts_FWD_DEFINED__ +typedef interface INetFwOpenPorts INetFwOpenPorts; +#endif /* __INetFwOpenPorts_FWD_DEFINED__ */ + + +#ifndef __INetFwService_FWD_DEFINED__ +#define __INetFwService_FWD_DEFINED__ +typedef interface INetFwService INetFwService; +#endif /* __INetFwService_FWD_DEFINED__ */ + + +#ifndef __INetFwServices_FWD_DEFINED__ +#define __INetFwServices_FWD_DEFINED__ +typedef interface INetFwServices INetFwServices; +#endif /* __INetFwServices_FWD_DEFINED__ */ + + +#ifndef __INetFwAuthorizedApplication_FWD_DEFINED__ +#define __INetFwAuthorizedApplication_FWD_DEFINED__ +typedef interface INetFwAuthorizedApplication INetFwAuthorizedApplication; +#endif /* __INetFwAuthorizedApplication_FWD_DEFINED__ */ + + +#ifndef __INetFwAuthorizedApplications_FWD_DEFINED__ +#define __INetFwAuthorizedApplications_FWD_DEFINED__ +typedef interface INetFwAuthorizedApplications INetFwAuthorizedApplications; +#endif /* __INetFwAuthorizedApplications_FWD_DEFINED__ */ + + +#ifndef __INetFwProfile_FWD_DEFINED__ +#define __INetFwProfile_FWD_DEFINED__ +typedef interface INetFwProfile INetFwProfile; +#endif /* __INetFwProfile_FWD_DEFINED__ */ + + +#ifndef __INetFwPolicy_FWD_DEFINED__ +#define __INetFwPolicy_FWD_DEFINED__ +typedef interface INetFwPolicy INetFwPolicy; +#endif /* __INetFwPolicy_FWD_DEFINED__ */ + + +#ifndef __INetFwMgr_FWD_DEFINED__ +#define __INetFwMgr_FWD_DEFINED__ +typedef interface INetFwMgr INetFwMgr; +#endif /* __INetFwMgr_FWD_DEFINED__ */ + + +#ifndef __INetFwRemoteAdminSettings_FWD_DEFINED__ +#define __INetFwRemoteAdminSettings_FWD_DEFINED__ +typedef interface INetFwRemoteAdminSettings INetFwRemoteAdminSettings; +#endif /* __INetFwRemoteAdminSettings_FWD_DEFINED__ */ + + +#ifndef __INetFwIcmpSettings_FWD_DEFINED__ +#define __INetFwIcmpSettings_FWD_DEFINED__ +typedef interface INetFwIcmpSettings INetFwIcmpSettings; +#endif /* __INetFwIcmpSettings_FWD_DEFINED__ */ + + +#ifndef __INetFwOpenPort_FWD_DEFINED__ +#define __INetFwOpenPort_FWD_DEFINED__ +typedef interface INetFwOpenPort INetFwOpenPort; +#endif /* __INetFwOpenPort_FWD_DEFINED__ */ + + +#ifndef __INetFwOpenPorts_FWD_DEFINED__ +#define __INetFwOpenPorts_FWD_DEFINED__ +typedef interface INetFwOpenPorts INetFwOpenPorts; +#endif /* __INetFwOpenPorts_FWD_DEFINED__ */ + + +#ifndef __INetFwService_FWD_DEFINED__ +#define __INetFwService_FWD_DEFINED__ +typedef interface INetFwService INetFwService; +#endif /* __INetFwService_FWD_DEFINED__ */ + + +#ifndef __INetFwServices_FWD_DEFINED__ +#define __INetFwServices_FWD_DEFINED__ +typedef interface INetFwServices INetFwServices; +#endif /* __INetFwServices_FWD_DEFINED__ */ + + +#ifndef __INetFwAuthorizedApplication_FWD_DEFINED__ +#define __INetFwAuthorizedApplication_FWD_DEFINED__ +typedef interface INetFwAuthorizedApplication INetFwAuthorizedApplication; +#endif /* __INetFwAuthorizedApplication_FWD_DEFINED__ */ + + +#ifndef __INetFwAuthorizedApplications_FWD_DEFINED__ +#define __INetFwAuthorizedApplications_FWD_DEFINED__ +typedef interface INetFwAuthorizedApplications INetFwAuthorizedApplications; +#endif /* __INetFwAuthorizedApplications_FWD_DEFINED__ */ + + +#ifndef __INetFwProfile_FWD_DEFINED__ +#define __INetFwProfile_FWD_DEFINED__ +typedef interface INetFwProfile INetFwProfile; +#endif /* __INetFwProfile_FWD_DEFINED__ */ + + +#ifndef __INetFwPolicy_FWD_DEFINED__ +#define __INetFwPolicy_FWD_DEFINED__ +typedef interface INetFwPolicy INetFwPolicy; +#endif /* __INetFwPolicy_FWD_DEFINED__ */ + + +#ifndef __INetFwMgr_FWD_DEFINED__ +#define __INetFwMgr_FWD_DEFINED__ +typedef interface INetFwMgr INetFwMgr; +#endif /* __INetFwMgr_FWD_DEFINED__ */ + + +#ifndef __NetFwOpenPort_FWD_DEFINED__ +#define __NetFwOpenPort_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class NetFwOpenPort NetFwOpenPort; +#else +typedef struct NetFwOpenPort NetFwOpenPort; +#endif /* __cplusplus */ + +#endif /* __NetFwOpenPort_FWD_DEFINED__ */ + + +#ifndef __NetFwAuthorizedApplication_FWD_DEFINED__ +#define __NetFwAuthorizedApplication_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class NetFwAuthorizedApplication NetFwAuthorizedApplication; +#else +typedef struct NetFwAuthorizedApplication NetFwAuthorizedApplication; +#endif /* __cplusplus */ + +#endif /* __NetFwAuthorizedApplication_FWD_DEFINED__ */ + + +#ifndef __NetFwMgr_FWD_DEFINED__ +#define __NetFwMgr_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class NetFwMgr NetFwMgr; +#else +typedef struct NetFwMgr NetFwMgr; +#endif /* __cplusplus */ + +#endif /* __NetFwMgr_FWD_DEFINED__ */ + + +/* header files for imported files */ +#include "icftypes.h" +#include "oaidl.h" + +#ifdef __cplusplus +extern "C"{ +#endif + +void * __RPC_USER MIDL_user_allocate(size_t); +void __RPC_USER MIDL_user_free( void * ); + +#ifndef __INetFwRemoteAdminSettings_INTERFACE_DEFINED__ +#define __INetFwRemoteAdminSettings_INTERFACE_DEFINED__ + +/* interface INetFwRemoteAdminSettings */ +/* [dual][uuid][object] */ + + +EXTERN_C const IID IID_INetFwRemoteAdminSettings; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("D4BECDDF-6F73-4A83-B832-9C66874CD20E") + INetFwRemoteAdminSettings : public IDispatch + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_IpVersion( + /* [retval][out] */ NET_FW_IP_VERSION *ipVersion) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_IpVersion( + /* [in] */ NET_FW_IP_VERSION ipVersion) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Scope( + /* [retval][out] */ NET_FW_SCOPE *scope) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Scope( + /* [in] */ NET_FW_SCOPE scope) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RemoteAddresses( + /* [retval][out] */ BSTR *remoteAddrs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RemoteAddresses( + /* [in] */ BSTR remoteAddrs) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Enabled( + /* [retval][out] */ VARIANT_BOOL *enabled) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Enabled( + /* [in] */ VARIANT_BOOL enabled) = 0; + + }; + +#else /* C style interface */ + + typedef struct INetFwRemoteAdminSettingsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + INetFwRemoteAdminSettings * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + INetFwRemoteAdminSettings * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + INetFwRemoteAdminSettings * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + INetFwRemoteAdminSettings * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + INetFwRemoteAdminSettings * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + INetFwRemoteAdminSettings * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + INetFwRemoteAdminSettings * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IpVersion )( + INetFwRemoteAdminSettings * This, + /* [retval][out] */ NET_FW_IP_VERSION *ipVersion); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IpVersion )( + INetFwRemoteAdminSettings * This, + /* [in] */ NET_FW_IP_VERSION ipVersion); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Scope )( + INetFwRemoteAdminSettings * This, + /* [retval][out] */ NET_FW_SCOPE *scope); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Scope )( + INetFwRemoteAdminSettings * This, + /* [in] */ NET_FW_SCOPE scope); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RemoteAddresses )( + INetFwRemoteAdminSettings * This, + /* [retval][out] */ BSTR *remoteAddrs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RemoteAddresses )( + INetFwRemoteAdminSettings * This, + /* [in] */ BSTR remoteAddrs); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )( + INetFwRemoteAdminSettings * This, + /* [retval][out] */ VARIANT_BOOL *enabled); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )( + INetFwRemoteAdminSettings * This, + /* [in] */ VARIANT_BOOL enabled); + + END_INTERFACE + } INetFwRemoteAdminSettingsVtbl; + + interface INetFwRemoteAdminSettings + { + CONST_VTBL struct INetFwRemoteAdminSettingsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#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) + + +#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) + + +#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 /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_get_IpVersion_Proxy( + INetFwRemoteAdminSettings * This, + /* [retval][out] */ NET_FW_IP_VERSION *ipVersion); + + +void __RPC_STUB INetFwRemoteAdminSettings_get_IpVersion_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_put_IpVersion_Proxy( + INetFwRemoteAdminSettings * This, + /* [in] */ NET_FW_IP_VERSION ipVersion); + + +void __RPC_STUB INetFwRemoteAdminSettings_put_IpVersion_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_get_Scope_Proxy( + INetFwRemoteAdminSettings * This, + /* [retval][out] */ NET_FW_SCOPE *scope); + + +void __RPC_STUB INetFwRemoteAdminSettings_get_Scope_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_put_Scope_Proxy( + INetFwRemoteAdminSettings * This, + /* [in] */ NET_FW_SCOPE scope); + + +void __RPC_STUB INetFwRemoteAdminSettings_put_Scope_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_get_RemoteAddresses_Proxy( + INetFwRemoteAdminSettings * This, + /* [retval][out] */ BSTR *remoteAddrs); + + +void __RPC_STUB INetFwRemoteAdminSettings_get_RemoteAddresses_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_put_RemoteAddresses_Proxy( + INetFwRemoteAdminSettings * This, + /* [in] */ BSTR remoteAddrs); + + +void __RPC_STUB INetFwRemoteAdminSettings_put_RemoteAddresses_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_get_Enabled_Proxy( + INetFwRemoteAdminSettings * This, + /* [retval][out] */ VARIANT_BOOL *enabled); + + +void __RPC_STUB INetFwRemoteAdminSettings_get_Enabled_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwRemoteAdminSettings_put_Enabled_Proxy( + INetFwRemoteAdminSettings * This, + /* [in] */ VARIANT_BOOL enabled); + + +void __RPC_STUB INetFwRemoteAdminSettings_put_Enabled_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __INetFwRemoteAdminSettings_INTERFACE_DEFINED__ */ + + +#ifndef __INetFwIcmpSettings_INTERFACE_DEFINED__ +#define __INetFwIcmpSettings_INTERFACE_DEFINED__ + +/* interface INetFwIcmpSettings */ +/* [dual][uuid][object] */ + + +EXTERN_C const IID IID_INetFwIcmpSettings; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("A6207B2E-7CDD-426A-951E-5E1CBC5AFEAD") + INetFwIcmpSettings : public IDispatch + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AllowOutboundDestinationUnreachable( + /* [retval][out] */ VARIANT_BOOL *allow) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AllowOutboundDestinationUnreachable( + /* [in] */ VARIANT_BOOL allow) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AllowRedirect( + /* [retval][out] */ VARIANT_BOOL *allow) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AllowRedirect( + /* [in] */ VARIANT_BOOL allow) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AllowInboundEchoRequest( + /* [retval][out] */ VARIANT_BOOL *allow) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AllowInboundEchoRequest( + /* [in] */ VARIANT_BOOL allow) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AllowOutboundTimeExceeded( + /* [retval][out] */ VARIANT_BOOL *allow) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AllowOutboundTimeExceeded( + /* [in] */ VARIANT_BOOL allow) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AllowOutboundParameterProblem( + /* [retval][out] */ VARIANT_BOOL *allow) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AllowOutboundParameterProblem( + /* [in] */ VARIANT_BOOL allow) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AllowOutboundSourceQuench( + /* [retval][out] */ VARIANT_BOOL *allow) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AllowOutboundSourceQuench( + /* [in] */ VARIANT_BOOL allow) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AllowInboundRouterRequest( + /* [retval][out] */ VARIANT_BOOL *allow) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AllowInboundRouterRequest( + /* [in] */ VARIANT_BOOL allow) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AllowInboundTimestampRequest( + /* [retval][out] */ VARIANT_BOOL *allow) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AllowInboundTimestampRequest( + /* [in] */ VARIANT_BOOL allow) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AllowInboundMaskRequest( + /* [retval][out] */ VARIANT_BOOL *allow) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AllowInboundMaskRequest( + /* [in] */ VARIANT_BOOL allow) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AllowOutboundPacketTooBig( + /* [retval][out] */ VARIANT_BOOL *allow) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AllowOutboundPacketTooBig( + /* [in] */ VARIANT_BOOL allow) = 0; + + }; + +#else /* C style interface */ + + typedef struct INetFwIcmpSettingsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + INetFwIcmpSettings * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + INetFwIcmpSettings * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + INetFwIcmpSettings * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + INetFwIcmpSettings * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + INetFwIcmpSettings * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + INetFwIcmpSettings * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + INetFwIcmpSettings * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowOutboundDestinationUnreachable )( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowOutboundDestinationUnreachable )( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowRedirect )( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowRedirect )( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowInboundEchoRequest )( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowInboundEchoRequest )( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowOutboundTimeExceeded )( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowOutboundTimeExceeded )( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowOutboundParameterProblem )( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowOutboundParameterProblem )( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowOutboundSourceQuench )( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowOutboundSourceQuench )( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowInboundRouterRequest )( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowInboundRouterRequest )( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowInboundTimestampRequest )( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowInboundTimestampRequest )( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowInboundMaskRequest )( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowInboundMaskRequest )( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowOutboundPacketTooBig )( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowOutboundPacketTooBig )( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + END_INTERFACE + } INetFwIcmpSettingsVtbl; + + interface INetFwIcmpSettings + { + CONST_VTBL struct INetFwIcmpSettingsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#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) + + +#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) + + +#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 /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowOutboundDestinationUnreachable_Proxy( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + +void __RPC_STUB INetFwIcmpSettings_get_AllowOutboundDestinationUnreachable_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowOutboundDestinationUnreachable_Proxy( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + +void __RPC_STUB INetFwIcmpSettings_put_AllowOutboundDestinationUnreachable_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowRedirect_Proxy( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + +void __RPC_STUB INetFwIcmpSettings_get_AllowRedirect_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowRedirect_Proxy( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + +void __RPC_STUB INetFwIcmpSettings_put_AllowRedirect_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowInboundEchoRequest_Proxy( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + +void __RPC_STUB INetFwIcmpSettings_get_AllowInboundEchoRequest_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowInboundEchoRequest_Proxy( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + +void __RPC_STUB INetFwIcmpSettings_put_AllowInboundEchoRequest_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowOutboundTimeExceeded_Proxy( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + +void __RPC_STUB INetFwIcmpSettings_get_AllowOutboundTimeExceeded_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowOutboundTimeExceeded_Proxy( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + +void __RPC_STUB INetFwIcmpSettings_put_AllowOutboundTimeExceeded_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowOutboundParameterProblem_Proxy( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + +void __RPC_STUB INetFwIcmpSettings_get_AllowOutboundParameterProblem_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowOutboundParameterProblem_Proxy( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + +void __RPC_STUB INetFwIcmpSettings_put_AllowOutboundParameterProblem_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowOutboundSourceQuench_Proxy( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + +void __RPC_STUB INetFwIcmpSettings_get_AllowOutboundSourceQuench_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowOutboundSourceQuench_Proxy( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + +void __RPC_STUB INetFwIcmpSettings_put_AllowOutboundSourceQuench_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowInboundRouterRequest_Proxy( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + +void __RPC_STUB INetFwIcmpSettings_get_AllowInboundRouterRequest_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowInboundRouterRequest_Proxy( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + +void __RPC_STUB INetFwIcmpSettings_put_AllowInboundRouterRequest_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowInboundTimestampRequest_Proxy( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + +void __RPC_STUB INetFwIcmpSettings_get_AllowInboundTimestampRequest_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowInboundTimestampRequest_Proxy( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + +void __RPC_STUB INetFwIcmpSettings_put_AllowInboundTimestampRequest_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowInboundMaskRequest_Proxy( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + +void __RPC_STUB INetFwIcmpSettings_get_AllowInboundMaskRequest_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowInboundMaskRequest_Proxy( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + +void __RPC_STUB INetFwIcmpSettings_put_AllowInboundMaskRequest_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_get_AllowOutboundPacketTooBig_Proxy( + INetFwIcmpSettings * This, + /* [retval][out] */ VARIANT_BOOL *allow); + + +void __RPC_STUB INetFwIcmpSettings_get_AllowOutboundPacketTooBig_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwIcmpSettings_put_AllowOutboundPacketTooBig_Proxy( + INetFwIcmpSettings * This, + /* [in] */ VARIANT_BOOL allow); + + +void __RPC_STUB INetFwIcmpSettings_put_AllowOutboundPacketTooBig_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __INetFwIcmpSettings_INTERFACE_DEFINED__ */ + + +#ifndef __INetFwOpenPort_INTERFACE_DEFINED__ +#define __INetFwOpenPort_INTERFACE_DEFINED__ + +/* interface INetFwOpenPort */ +/* [dual][uuid][object] */ + + +EXTERN_C const IID IID_INetFwOpenPort; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("E0483BA0-47FF-4D9C-A6D6-7741D0B195F7") + INetFwOpenPort : public IDispatch + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( + /* [retval][out] */ BSTR *name) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( + /* [in] */ BSTR name) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_IpVersion( + /* [retval][out] */ NET_FW_IP_VERSION *ipVersion) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_IpVersion( + /* [in] */ NET_FW_IP_VERSION ipVersion) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Protocol( + /* [retval][out] */ NET_FW_IP_PROTOCOL *ipProtocol) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Protocol( + /* [in] */ NET_FW_IP_PROTOCOL ipProtocol) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Port( + /* [retval][out] */ LONG *portNumber) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Port( + /* [in] */ LONG portNumber) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Scope( + /* [retval][out] */ NET_FW_SCOPE *scope) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Scope( + /* [in] */ NET_FW_SCOPE scope) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RemoteAddresses( + /* [retval][out] */ BSTR *remoteAddrs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RemoteAddresses( + /* [in] */ BSTR remoteAddrs) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Enabled( + /* [retval][out] */ VARIANT_BOOL *enabled) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Enabled( + /* [in] */ VARIANT_BOOL enabled) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BuiltIn( + /* [retval][out] */ VARIANT_BOOL *builtIn) = 0; + + }; + +#else /* C style interface */ + + typedef struct INetFwOpenPortVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + INetFwOpenPort * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + INetFwOpenPort * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + INetFwOpenPort * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + INetFwOpenPort * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + INetFwOpenPort * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + INetFwOpenPort * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + INetFwOpenPort * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( + INetFwOpenPort * This, + /* [retval][out] */ BSTR *name); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( + INetFwOpenPort * This, + /* [in] */ BSTR name); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IpVersion )( + INetFwOpenPort * This, + /* [retval][out] */ NET_FW_IP_VERSION *ipVersion); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IpVersion )( + INetFwOpenPort * This, + /* [in] */ NET_FW_IP_VERSION ipVersion); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Protocol )( + INetFwOpenPort * This, + /* [retval][out] */ NET_FW_IP_PROTOCOL *ipProtocol); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Protocol )( + INetFwOpenPort * This, + /* [in] */ NET_FW_IP_PROTOCOL ipProtocol); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Port )( + INetFwOpenPort * This, + /* [retval][out] */ LONG *portNumber); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Port )( + INetFwOpenPort * This, + /* [in] */ LONG portNumber); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Scope )( + INetFwOpenPort * This, + /* [retval][out] */ NET_FW_SCOPE *scope); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Scope )( + INetFwOpenPort * This, + /* [in] */ NET_FW_SCOPE scope); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RemoteAddresses )( + INetFwOpenPort * This, + /* [retval][out] */ BSTR *remoteAddrs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RemoteAddresses )( + INetFwOpenPort * This, + /* [in] */ BSTR remoteAddrs); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )( + INetFwOpenPort * This, + /* [retval][out] */ VARIANT_BOOL *enabled); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )( + INetFwOpenPort * This, + /* [in] */ VARIANT_BOOL enabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BuiltIn )( + INetFwOpenPort * This, + /* [retval][out] */ VARIANT_BOOL *builtIn); + + END_INTERFACE + } INetFwOpenPortVtbl; + + interface INetFwOpenPort + { + CONST_VTBL struct INetFwOpenPortVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#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) + + +#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) + + +#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 /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_Name_Proxy( + INetFwOpenPort * This, + /* [retval][out] */ BSTR *name); + + +void __RPC_STUB INetFwOpenPort_get_Name_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPort_put_Name_Proxy( + INetFwOpenPort * This, + /* [in] */ BSTR name); + + +void __RPC_STUB INetFwOpenPort_put_Name_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_IpVersion_Proxy( + INetFwOpenPort * This, + /* [retval][out] */ NET_FW_IP_VERSION *ipVersion); + + +void __RPC_STUB INetFwOpenPort_get_IpVersion_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPort_put_IpVersion_Proxy( + INetFwOpenPort * This, + /* [in] */ NET_FW_IP_VERSION ipVersion); + + +void __RPC_STUB INetFwOpenPort_put_IpVersion_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_Protocol_Proxy( + INetFwOpenPort * This, + /* [retval][out] */ NET_FW_IP_PROTOCOL *ipProtocol); + + +void __RPC_STUB INetFwOpenPort_get_Protocol_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPort_put_Protocol_Proxy( + INetFwOpenPort * This, + /* [in] */ NET_FW_IP_PROTOCOL ipProtocol); + + +void __RPC_STUB INetFwOpenPort_put_Protocol_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_Port_Proxy( + INetFwOpenPort * This, + /* [retval][out] */ LONG *portNumber); + + +void __RPC_STUB INetFwOpenPort_get_Port_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPort_put_Port_Proxy( + INetFwOpenPort * This, + /* [in] */ LONG portNumber); + + +void __RPC_STUB INetFwOpenPort_put_Port_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_Scope_Proxy( + INetFwOpenPort * This, + /* [retval][out] */ NET_FW_SCOPE *scope); + + +void __RPC_STUB INetFwOpenPort_get_Scope_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPort_put_Scope_Proxy( + INetFwOpenPort * This, + /* [in] */ NET_FW_SCOPE scope); + + +void __RPC_STUB INetFwOpenPort_put_Scope_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_RemoteAddresses_Proxy( + INetFwOpenPort * This, + /* [retval][out] */ BSTR *remoteAddrs); + + +void __RPC_STUB INetFwOpenPort_get_RemoteAddresses_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPort_put_RemoteAddresses_Proxy( + INetFwOpenPort * This, + /* [in] */ BSTR remoteAddrs); + + +void __RPC_STUB INetFwOpenPort_put_RemoteAddresses_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_Enabled_Proxy( + INetFwOpenPort * This, + /* [retval][out] */ VARIANT_BOOL *enabled); + + +void __RPC_STUB INetFwOpenPort_get_Enabled_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPort_put_Enabled_Proxy( + INetFwOpenPort * This, + /* [in] */ VARIANT_BOOL enabled); + + +void __RPC_STUB INetFwOpenPort_put_Enabled_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPort_get_BuiltIn_Proxy( + INetFwOpenPort * This, + /* [retval][out] */ VARIANT_BOOL *builtIn); + + +void __RPC_STUB INetFwOpenPort_get_BuiltIn_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __INetFwOpenPort_INTERFACE_DEFINED__ */ + + +#ifndef __INetFwOpenPorts_INTERFACE_DEFINED__ +#define __INetFwOpenPorts_INTERFACE_DEFINED__ + +/* interface INetFwOpenPorts */ +/* [dual][uuid][object] */ + + +EXTERN_C const IID IID_INetFwOpenPorts; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("C0E9D7FA-E07E-430A-B19A-090CE82D92E2") + INetFwOpenPorts : public IDispatch + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( + /* [retval][out] */ long *count) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE Add( + /* [in] */ INetFwOpenPort *port) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE Remove( + /* [in] */ LONG portNumber, + /* [in] */ NET_FW_IP_PROTOCOL ipProtocol) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE Item( + /* [in] */ LONG portNumber, + /* [in] */ NET_FW_IP_PROTOCOL ipProtocol, + /* [retval][out] */ INetFwOpenPort **openPort) = 0; + + virtual /* [restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( + /* [retval][out] */ IUnknown **newEnum) = 0; + + }; + +#else /* C style interface */ + + typedef struct INetFwOpenPortsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + INetFwOpenPorts * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + INetFwOpenPorts * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + INetFwOpenPorts * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + INetFwOpenPorts * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + INetFwOpenPorts * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + INetFwOpenPorts * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + INetFwOpenPorts * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( + INetFwOpenPorts * This, + /* [retval][out] */ long *count); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Add )( + INetFwOpenPorts * This, + /* [in] */ INetFwOpenPort *port); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Remove )( + INetFwOpenPorts * This, + /* [in] */ LONG portNumber, + /* [in] */ NET_FW_IP_PROTOCOL ipProtocol); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Item )( + INetFwOpenPorts * This, + /* [in] */ LONG portNumber, + /* [in] */ NET_FW_IP_PROTOCOL ipProtocol, + /* [retval][out] */ INetFwOpenPort **openPort); + + /* [restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( + INetFwOpenPorts * This, + /* [retval][out] */ IUnknown **newEnum); + + END_INTERFACE + } INetFwOpenPortsVtbl; + + interface INetFwOpenPorts + { + CONST_VTBL struct INetFwOpenPortsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#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) + + +#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) + + +#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 /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPorts_get_Count_Proxy( + INetFwOpenPorts * This, + /* [retval][out] */ long *count); + + +void __RPC_STUB INetFwOpenPorts_get_Count_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPorts_Add_Proxy( + INetFwOpenPorts * This, + /* [in] */ INetFwOpenPort *port); + + +void __RPC_STUB INetFwOpenPorts_Add_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPorts_Remove_Proxy( + INetFwOpenPorts * This, + /* [in] */ LONG portNumber, + /* [in] */ NET_FW_IP_PROTOCOL ipProtocol); + + +void __RPC_STUB INetFwOpenPorts_Remove_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPorts_Item_Proxy( + INetFwOpenPorts * This, + /* [in] */ LONG portNumber, + /* [in] */ NET_FW_IP_PROTOCOL ipProtocol, + /* [retval][out] */ INetFwOpenPort **openPort); + + +void __RPC_STUB INetFwOpenPorts_Item_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [restricted][propget][id] */ HRESULT STDMETHODCALLTYPE INetFwOpenPorts_get__NewEnum_Proxy( + INetFwOpenPorts * This, + /* [retval][out] */ IUnknown **newEnum); + + +void __RPC_STUB INetFwOpenPorts_get__NewEnum_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __INetFwOpenPorts_INTERFACE_DEFINED__ */ + + +#ifndef __INetFwService_INTERFACE_DEFINED__ +#define __INetFwService_INTERFACE_DEFINED__ + +/* interface INetFwService */ +/* [dual][uuid][object] */ + + +EXTERN_C const IID IID_INetFwService; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("79FD57C8-908E-4A36-9888-D5B3F0A444CF") + INetFwService : public IDispatch + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( + /* [retval][out] */ BSTR *name) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Type( + /* [retval][out] */ NET_FW_SERVICE_TYPE *type) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Customized( + /* [retval][out] */ VARIANT_BOOL *customized) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_IpVersion( + /* [retval][out] */ NET_FW_IP_VERSION *ipVersion) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_IpVersion( + /* [in] */ NET_FW_IP_VERSION ipVersion) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Scope( + /* [retval][out] */ NET_FW_SCOPE *scope) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Scope( + /* [in] */ NET_FW_SCOPE scope) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RemoteAddresses( + /* [retval][out] */ BSTR *remoteAddrs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RemoteAddresses( + /* [in] */ BSTR remoteAddrs) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Enabled( + /* [retval][out] */ VARIANT_BOOL *enabled) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Enabled( + /* [in] */ VARIANT_BOOL enabled) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_GloballyOpenPorts( + /* [retval][out] */ INetFwOpenPorts **openPorts) = 0; + + }; + +#else /* C style interface */ + + typedef struct INetFwServiceVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + INetFwService * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + INetFwService * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + INetFwService * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + INetFwService * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + INetFwService * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + INetFwService * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + INetFwService * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( + INetFwService * This, + /* [retval][out] */ BSTR *name); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( + INetFwService * This, + /* [retval][out] */ NET_FW_SERVICE_TYPE *type); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Customized )( + INetFwService * This, + /* [retval][out] */ VARIANT_BOOL *customized); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IpVersion )( + INetFwService * This, + /* [retval][out] */ NET_FW_IP_VERSION *ipVersion); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IpVersion )( + INetFwService * This, + /* [in] */ NET_FW_IP_VERSION ipVersion); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Scope )( + INetFwService * This, + /* [retval][out] */ NET_FW_SCOPE *scope); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Scope )( + INetFwService * This, + /* [in] */ NET_FW_SCOPE scope); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RemoteAddresses )( + INetFwService * This, + /* [retval][out] */ BSTR *remoteAddrs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RemoteAddresses )( + INetFwService * This, + /* [in] */ BSTR remoteAddrs); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )( + INetFwService * This, + /* [retval][out] */ VARIANT_BOOL *enabled); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )( + INetFwService * This, + /* [in] */ VARIANT_BOOL enabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GloballyOpenPorts )( + INetFwService * This, + /* [retval][out] */ INetFwOpenPorts **openPorts); + + END_INTERFACE + } INetFwServiceVtbl; + + interface INetFwService + { + CONST_VTBL struct INetFwServiceVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#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) + + +#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) + + +#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 /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwService_get_Name_Proxy( + INetFwService * This, + /* [retval][out] */ BSTR *name); + + +void __RPC_STUB INetFwService_get_Name_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwService_get_Type_Proxy( + INetFwService * This, + /* [retval][out] */ NET_FW_SERVICE_TYPE *type); + + +void __RPC_STUB INetFwService_get_Type_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwService_get_Customized_Proxy( + INetFwService * This, + /* [retval][out] */ VARIANT_BOOL *customized); + + +void __RPC_STUB INetFwService_get_Customized_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwService_get_IpVersion_Proxy( + INetFwService * This, + /* [retval][out] */ NET_FW_IP_VERSION *ipVersion); + + +void __RPC_STUB INetFwService_get_IpVersion_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwService_put_IpVersion_Proxy( + INetFwService * This, + /* [in] */ NET_FW_IP_VERSION ipVersion); + + +void __RPC_STUB INetFwService_put_IpVersion_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwService_get_Scope_Proxy( + INetFwService * This, + /* [retval][out] */ NET_FW_SCOPE *scope); + + +void __RPC_STUB INetFwService_get_Scope_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwService_put_Scope_Proxy( + INetFwService * This, + /* [in] */ NET_FW_SCOPE scope); + + +void __RPC_STUB INetFwService_put_Scope_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwService_get_RemoteAddresses_Proxy( + INetFwService * This, + /* [retval][out] */ BSTR *remoteAddrs); + + +void __RPC_STUB INetFwService_get_RemoteAddresses_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwService_put_RemoteAddresses_Proxy( + INetFwService * This, + /* [in] */ BSTR remoteAddrs); + + +void __RPC_STUB INetFwService_put_RemoteAddresses_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwService_get_Enabled_Proxy( + INetFwService * This, + /* [retval][out] */ VARIANT_BOOL *enabled); + + +void __RPC_STUB INetFwService_get_Enabled_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwService_put_Enabled_Proxy( + INetFwService * This, + /* [in] */ VARIANT_BOOL enabled); + + +void __RPC_STUB INetFwService_put_Enabled_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwService_get_GloballyOpenPorts_Proxy( + INetFwService * This, + /* [retval][out] */ INetFwOpenPorts **openPorts); + + +void __RPC_STUB INetFwService_get_GloballyOpenPorts_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __INetFwService_INTERFACE_DEFINED__ */ + + +#ifndef __INetFwServices_INTERFACE_DEFINED__ +#define __INetFwServices_INTERFACE_DEFINED__ + +/* interface INetFwServices */ +/* [dual][uuid][object] */ + + +EXTERN_C const IID IID_INetFwServices; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("79649BB4-903E-421B-94C9-79848E79F6EE") + INetFwServices : public IDispatch + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( + /* [retval][out] */ long *count) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE Item( + /* [in] */ NET_FW_SERVICE_TYPE svcType, + /* [retval][out] */ INetFwService **service) = 0; + + virtual /* [restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( + /* [retval][out] */ IUnknown **newEnum) = 0; + + }; + +#else /* C style interface */ + + typedef struct INetFwServicesVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + INetFwServices * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + INetFwServices * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + INetFwServices * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + INetFwServices * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + INetFwServices * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + INetFwServices * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + INetFwServices * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( + INetFwServices * This, + /* [retval][out] */ long *count); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Item )( + INetFwServices * This, + /* [in] */ NET_FW_SERVICE_TYPE svcType, + /* [retval][out] */ INetFwService **service); + + /* [restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( + INetFwServices * This, + /* [retval][out] */ IUnknown **newEnum); + + END_INTERFACE + } INetFwServicesVtbl; + + interface INetFwServices + { + CONST_VTBL struct INetFwServicesVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#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) + + +#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) + + +#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 /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwServices_get_Count_Proxy( + INetFwServices * This, + /* [retval][out] */ long *count); + + +void __RPC_STUB INetFwServices_get_Count_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [id] */ HRESULT STDMETHODCALLTYPE INetFwServices_Item_Proxy( + INetFwServices * This, + /* [in] */ NET_FW_SERVICE_TYPE svcType, + /* [retval][out] */ INetFwService **service); + + +void __RPC_STUB INetFwServices_Item_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [restricted][propget][id] */ HRESULT STDMETHODCALLTYPE INetFwServices_get__NewEnum_Proxy( + INetFwServices * This, + /* [retval][out] */ IUnknown **newEnum); + + +void __RPC_STUB INetFwServices_get__NewEnum_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __INetFwServices_INTERFACE_DEFINED__ */ + + +#ifndef __INetFwAuthorizedApplication_INTERFACE_DEFINED__ +#define __INetFwAuthorizedApplication_INTERFACE_DEFINED__ + +/* interface INetFwAuthorizedApplication */ +/* [dual][uuid][object] */ + + +EXTERN_C const IID IID_INetFwAuthorizedApplication; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("B5E64FFA-C2C5-444E-A301-FB5E00018050") + INetFwAuthorizedApplication : public IDispatch + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( + /* [retval][out] */ BSTR *name) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( + /* [in] */ BSTR name) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ProcessImageFileName( + /* [retval][out] */ BSTR *imageFileName) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ProcessImageFileName( + /* [in] */ BSTR imageFileName) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_IpVersion( + /* [retval][out] */ NET_FW_IP_VERSION *ipVersion) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_IpVersion( + /* [in] */ NET_FW_IP_VERSION ipVersion) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Scope( + /* [retval][out] */ NET_FW_SCOPE *scope) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Scope( + /* [in] */ NET_FW_SCOPE scope) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RemoteAddresses( + /* [retval][out] */ BSTR *remoteAddrs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RemoteAddresses( + /* [in] */ BSTR remoteAddrs) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Enabled( + /* [retval][out] */ VARIANT_BOOL *enabled) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Enabled( + /* [in] */ VARIANT_BOOL enabled) = 0; + + }; + +#else /* C style interface */ + + typedef struct INetFwAuthorizedApplicationVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + INetFwAuthorizedApplication * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + INetFwAuthorizedApplication * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + INetFwAuthorizedApplication * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + INetFwAuthorizedApplication * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + INetFwAuthorizedApplication * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + INetFwAuthorizedApplication * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + INetFwAuthorizedApplication * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( + INetFwAuthorizedApplication * This, + /* [retval][out] */ BSTR *name); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( + INetFwAuthorizedApplication * This, + /* [in] */ BSTR name); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ProcessImageFileName )( + INetFwAuthorizedApplication * This, + /* [retval][out] */ BSTR *imageFileName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ProcessImageFileName )( + INetFwAuthorizedApplication * This, + /* [in] */ BSTR imageFileName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IpVersion )( + INetFwAuthorizedApplication * This, + /* [retval][out] */ NET_FW_IP_VERSION *ipVersion); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IpVersion )( + INetFwAuthorizedApplication * This, + /* [in] */ NET_FW_IP_VERSION ipVersion); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Scope )( + INetFwAuthorizedApplication * This, + /* [retval][out] */ NET_FW_SCOPE *scope); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Scope )( + INetFwAuthorizedApplication * This, + /* [in] */ NET_FW_SCOPE scope); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RemoteAddresses )( + INetFwAuthorizedApplication * This, + /* [retval][out] */ BSTR *remoteAddrs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RemoteAddresses )( + INetFwAuthorizedApplication * This, + /* [in] */ BSTR remoteAddrs); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )( + INetFwAuthorizedApplication * This, + /* [retval][out] */ VARIANT_BOOL *enabled); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )( + INetFwAuthorizedApplication * This, + /* [in] */ VARIANT_BOOL enabled); + + END_INTERFACE + } INetFwAuthorizedApplicationVtbl; + + interface INetFwAuthorizedApplication + { + CONST_VTBL struct INetFwAuthorizedApplicationVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#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) + + +#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) + + +#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 /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_get_Name_Proxy( + INetFwAuthorizedApplication * This, + /* [retval][out] */ BSTR *name); + + +void __RPC_STUB INetFwAuthorizedApplication_get_Name_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_put_Name_Proxy( + INetFwAuthorizedApplication * This, + /* [in] */ BSTR name); + + +void __RPC_STUB INetFwAuthorizedApplication_put_Name_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_get_ProcessImageFileName_Proxy( + INetFwAuthorizedApplication * This, + /* [retval][out] */ BSTR *imageFileName); + + +void __RPC_STUB INetFwAuthorizedApplication_get_ProcessImageFileName_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_put_ProcessImageFileName_Proxy( + INetFwAuthorizedApplication * This, + /* [in] */ BSTR imageFileName); + + +void __RPC_STUB INetFwAuthorizedApplication_put_ProcessImageFileName_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_get_IpVersion_Proxy( + INetFwAuthorizedApplication * This, + /* [retval][out] */ NET_FW_IP_VERSION *ipVersion); + + +void __RPC_STUB INetFwAuthorizedApplication_get_IpVersion_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_put_IpVersion_Proxy( + INetFwAuthorizedApplication * This, + /* [in] */ NET_FW_IP_VERSION ipVersion); + + +void __RPC_STUB INetFwAuthorizedApplication_put_IpVersion_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_get_Scope_Proxy( + INetFwAuthorizedApplication * This, + /* [retval][out] */ NET_FW_SCOPE *scope); + + +void __RPC_STUB INetFwAuthorizedApplication_get_Scope_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_put_Scope_Proxy( + INetFwAuthorizedApplication * This, + /* [in] */ NET_FW_SCOPE scope); + + +void __RPC_STUB INetFwAuthorizedApplication_put_Scope_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_get_RemoteAddresses_Proxy( + INetFwAuthorizedApplication * This, + /* [retval][out] */ BSTR *remoteAddrs); + + +void __RPC_STUB INetFwAuthorizedApplication_get_RemoteAddresses_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_put_RemoteAddresses_Proxy( + INetFwAuthorizedApplication * This, + /* [in] */ BSTR remoteAddrs); + + +void __RPC_STUB INetFwAuthorizedApplication_put_RemoteAddresses_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_get_Enabled_Proxy( + INetFwAuthorizedApplication * This, + /* [retval][out] */ VARIANT_BOOL *enabled); + + +void __RPC_STUB INetFwAuthorizedApplication_get_Enabled_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplication_put_Enabled_Proxy( + INetFwAuthorizedApplication * This, + /* [in] */ VARIANT_BOOL enabled); + + +void __RPC_STUB INetFwAuthorizedApplication_put_Enabled_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __INetFwAuthorizedApplication_INTERFACE_DEFINED__ */ + + +#ifndef __INetFwAuthorizedApplications_INTERFACE_DEFINED__ +#define __INetFwAuthorizedApplications_INTERFACE_DEFINED__ + +/* interface INetFwAuthorizedApplications */ +/* [dual][uuid][object] */ + + +EXTERN_C const IID IID_INetFwAuthorizedApplications; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("644EFD52-CCF9-486C-97A2-39F352570B30") + INetFwAuthorizedApplications : public IDispatch + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( + /* [retval][out] */ long *count) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE Add( + /* [in] */ INetFwAuthorizedApplication *app) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE Remove( + /* [in] */ BSTR imageFileName) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE Item( + /* [in] */ BSTR imageFileName, + /* [retval][out] */ INetFwAuthorizedApplication **app) = 0; + + virtual /* [restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( + /* [retval][out] */ IUnknown **newEnum) = 0; + + }; + +#else /* C style interface */ + + typedef struct INetFwAuthorizedApplicationsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + INetFwAuthorizedApplications * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + INetFwAuthorizedApplications * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + INetFwAuthorizedApplications * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + INetFwAuthorizedApplications * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + INetFwAuthorizedApplications * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + INetFwAuthorizedApplications * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + INetFwAuthorizedApplications * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( + INetFwAuthorizedApplications * This, + /* [retval][out] */ long *count); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Add )( + INetFwAuthorizedApplications * This, + /* [in] */ INetFwAuthorizedApplication *app); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Remove )( + INetFwAuthorizedApplications * This, + /* [in] */ BSTR imageFileName); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Item )( + INetFwAuthorizedApplications * This, + /* [in] */ BSTR imageFileName, + /* [retval][out] */ INetFwAuthorizedApplication **app); + + /* [restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( + INetFwAuthorizedApplications * This, + /* [retval][out] */ IUnknown **newEnum); + + END_INTERFACE + } INetFwAuthorizedApplicationsVtbl; + + interface INetFwAuthorizedApplications + { + CONST_VTBL struct INetFwAuthorizedApplicationsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#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) + + +#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) + + +#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 /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplications_get_Count_Proxy( + INetFwAuthorizedApplications * This, + /* [retval][out] */ long *count); + + +void __RPC_STUB INetFwAuthorizedApplications_get_Count_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplications_Add_Proxy( + INetFwAuthorizedApplications * This, + /* [in] */ INetFwAuthorizedApplication *app); + + +void __RPC_STUB INetFwAuthorizedApplications_Add_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplications_Remove_Proxy( + INetFwAuthorizedApplications * This, + /* [in] */ BSTR imageFileName); + + +void __RPC_STUB INetFwAuthorizedApplications_Remove_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplications_Item_Proxy( + INetFwAuthorizedApplications * This, + /* [in] */ BSTR imageFileName, + /* [retval][out] */ INetFwAuthorizedApplication **app); + + +void __RPC_STUB INetFwAuthorizedApplications_Item_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [restricted][propget][id] */ HRESULT STDMETHODCALLTYPE INetFwAuthorizedApplications_get__NewEnum_Proxy( + INetFwAuthorizedApplications * This, + /* [retval][out] */ IUnknown **newEnum); + + +void __RPC_STUB INetFwAuthorizedApplications_get__NewEnum_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __INetFwAuthorizedApplications_INTERFACE_DEFINED__ */ + + +#ifndef __INetFwProfile_INTERFACE_DEFINED__ +#define __INetFwProfile_INTERFACE_DEFINED__ + +/* interface INetFwProfile */ +/* [dual][uuid][object] */ + + +EXTERN_C const IID IID_INetFwProfile; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("174A0DDA-E9F9-449D-993B-21AB667CA456") + INetFwProfile : public IDispatch + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Type( + /* [retval][out] */ NET_FW_PROFILE_TYPE *type) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_FirewallEnabled( + /* [retval][out] */ VARIANT_BOOL *enabled) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FirewallEnabled( + /* [in] */ VARIANT_BOOL enabled) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ExceptionsNotAllowed( + /* [retval][out] */ VARIANT_BOOL *notAllowed) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ExceptionsNotAllowed( + /* [in] */ VARIANT_BOOL notAllowed) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NotificationsDisabled( + /* [retval][out] */ VARIANT_BOOL *disabled) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NotificationsDisabled( + /* [in] */ VARIANT_BOOL disabled) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_UnicastResponsesToMulticastBroadcastDisabled( + /* [retval][out] */ VARIANT_BOOL *disabled) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_UnicastResponsesToMulticastBroadcastDisabled( + /* [in] */ VARIANT_BOOL disabled) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RemoteAdminSettings( + /* [retval][out] */ INetFwRemoteAdminSettings **remoteAdminSettings) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_IcmpSettings( + /* [retval][out] */ INetFwIcmpSettings **icmpSettings) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_GloballyOpenPorts( + /* [retval][out] */ INetFwOpenPorts **openPorts) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Services( + /* [retval][out] */ INetFwServices **services) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AuthorizedApplications( + /* [retval][out] */ INetFwAuthorizedApplications **apps) = 0; + + }; + +#else /* C style interface */ + + typedef struct INetFwProfileVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + INetFwProfile * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + INetFwProfile * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + INetFwProfile * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + INetFwProfile * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + INetFwProfile * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + INetFwProfile * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + INetFwProfile * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( + INetFwProfile * This, + /* [retval][out] */ NET_FW_PROFILE_TYPE *type); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FirewallEnabled )( + INetFwProfile * This, + /* [retval][out] */ VARIANT_BOOL *enabled); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FirewallEnabled )( + INetFwProfile * This, + /* [in] */ VARIANT_BOOL enabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExceptionsNotAllowed )( + INetFwProfile * This, + /* [retval][out] */ VARIANT_BOOL *notAllowed); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExceptionsNotAllowed )( + INetFwProfile * This, + /* [in] */ VARIANT_BOOL notAllowed); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotificationsDisabled )( + INetFwProfile * This, + /* [retval][out] */ VARIANT_BOOL *disabled); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotificationsDisabled )( + INetFwProfile * This, + /* [in] */ VARIANT_BOOL disabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnicastResponsesToMulticastBroadcastDisabled )( + INetFwProfile * This, + /* [retval][out] */ VARIANT_BOOL *disabled); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UnicastResponsesToMulticastBroadcastDisabled )( + INetFwProfile * This, + /* [in] */ VARIANT_BOOL disabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RemoteAdminSettings )( + INetFwProfile * This, + /* [retval][out] */ INetFwRemoteAdminSettings **remoteAdminSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IcmpSettings )( + INetFwProfile * This, + /* [retval][out] */ INetFwIcmpSettings **icmpSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GloballyOpenPorts )( + INetFwProfile * This, + /* [retval][out] */ INetFwOpenPorts **openPorts); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Services )( + INetFwProfile * This, + /* [retval][out] */ INetFwServices **services); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AuthorizedApplications )( + INetFwProfile * This, + /* [retval][out] */ INetFwAuthorizedApplications **apps); + + END_INTERFACE + } INetFwProfileVtbl; + + interface INetFwProfile + { + CONST_VTBL struct INetFwProfileVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#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) + + +#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) + + +#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 /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwProfile_get_Type_Proxy( + INetFwProfile * This, + /* [retval][out] */ NET_FW_PROFILE_TYPE *type); + + +void __RPC_STUB INetFwProfile_get_Type_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwProfile_get_FirewallEnabled_Proxy( + INetFwProfile * This, + /* [retval][out] */ VARIANT_BOOL *enabled); + + +void __RPC_STUB INetFwProfile_get_FirewallEnabled_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwProfile_put_FirewallEnabled_Proxy( + INetFwProfile * This, + /* [in] */ VARIANT_BOOL enabled); + + +void __RPC_STUB INetFwProfile_put_FirewallEnabled_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwProfile_get_ExceptionsNotAllowed_Proxy( + INetFwProfile * This, + /* [retval][out] */ VARIANT_BOOL *notAllowed); + + +void __RPC_STUB INetFwProfile_get_ExceptionsNotAllowed_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwProfile_put_ExceptionsNotAllowed_Proxy( + INetFwProfile * This, + /* [in] */ VARIANT_BOOL notAllowed); + + +void __RPC_STUB INetFwProfile_put_ExceptionsNotAllowed_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwProfile_get_NotificationsDisabled_Proxy( + INetFwProfile * This, + /* [retval][out] */ VARIANT_BOOL *disabled); + + +void __RPC_STUB INetFwProfile_get_NotificationsDisabled_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwProfile_put_NotificationsDisabled_Proxy( + INetFwProfile * This, + /* [in] */ VARIANT_BOOL disabled); + + +void __RPC_STUB INetFwProfile_put_NotificationsDisabled_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwProfile_get_UnicastResponsesToMulticastBroadcastDisabled_Proxy( + INetFwProfile * This, + /* [retval][out] */ VARIANT_BOOL *disabled); + + +void __RPC_STUB INetFwProfile_get_UnicastResponsesToMulticastBroadcastDisabled_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE INetFwProfile_put_UnicastResponsesToMulticastBroadcastDisabled_Proxy( + INetFwProfile * This, + /* [in] */ VARIANT_BOOL disabled); + + +void __RPC_STUB INetFwProfile_put_UnicastResponsesToMulticastBroadcastDisabled_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwProfile_get_RemoteAdminSettings_Proxy( + INetFwProfile * This, + /* [retval][out] */ INetFwRemoteAdminSettings **remoteAdminSettings); + + +void __RPC_STUB INetFwProfile_get_RemoteAdminSettings_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwProfile_get_IcmpSettings_Proxy( + INetFwProfile * This, + /* [retval][out] */ INetFwIcmpSettings **icmpSettings); + + +void __RPC_STUB INetFwProfile_get_IcmpSettings_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwProfile_get_GloballyOpenPorts_Proxy( + INetFwProfile * This, + /* [retval][out] */ INetFwOpenPorts **openPorts); + + +void __RPC_STUB INetFwProfile_get_GloballyOpenPorts_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwProfile_get_Services_Proxy( + INetFwProfile * This, + /* [retval][out] */ INetFwServices **services); + + +void __RPC_STUB INetFwProfile_get_Services_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwProfile_get_AuthorizedApplications_Proxy( + INetFwProfile * This, + /* [retval][out] */ INetFwAuthorizedApplications **apps); + + +void __RPC_STUB INetFwProfile_get_AuthorizedApplications_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __INetFwProfile_INTERFACE_DEFINED__ */ + + +#ifndef __INetFwPolicy_INTERFACE_DEFINED__ +#define __INetFwPolicy_INTERFACE_DEFINED__ + +/* interface INetFwPolicy */ +/* [dual][uuid][object] */ + + +EXTERN_C const IID IID_INetFwPolicy; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("D46D2478-9AC9-4008-9DC7-5563CE5536CC") + INetFwPolicy : public IDispatch + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CurrentProfile( + /* [retval][out] */ INetFwProfile **profile) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetProfileByType( + /* [in] */ NET_FW_PROFILE_TYPE profileType, + /* [retval][out] */ INetFwProfile **profile) = 0; + + }; + +#else /* C style interface */ + + typedef struct INetFwPolicyVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + INetFwPolicy * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + INetFwPolicy * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + INetFwPolicy * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + INetFwPolicy * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + INetFwPolicy * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + INetFwPolicy * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + INetFwPolicy * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentProfile )( + INetFwPolicy * This, + /* [retval][out] */ INetFwProfile **profile); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetProfileByType )( + INetFwPolicy * This, + /* [in] */ NET_FW_PROFILE_TYPE profileType, + /* [retval][out] */ INetFwProfile **profile); + + END_INTERFACE + } INetFwPolicyVtbl; + + interface INetFwPolicy + { + CONST_VTBL struct INetFwPolicyVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#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) + + +#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) + + +#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 /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwPolicy_get_CurrentProfile_Proxy( + INetFwPolicy * This, + /* [retval][out] */ INetFwProfile **profile); + + +void __RPC_STUB INetFwPolicy_get_CurrentProfile_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [id] */ HRESULT STDMETHODCALLTYPE INetFwPolicy_GetProfileByType_Proxy( + INetFwPolicy * This, + /* [in] */ NET_FW_PROFILE_TYPE profileType, + /* [retval][out] */ INetFwProfile **profile); + + +void __RPC_STUB INetFwPolicy_GetProfileByType_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __INetFwPolicy_INTERFACE_DEFINED__ */ + + +#ifndef __INetFwMgr_INTERFACE_DEFINED__ +#define __INetFwMgr_INTERFACE_DEFINED__ + +/* interface INetFwMgr */ +/* [dual][uuid][object] */ + + +EXTERN_C const IID IID_INetFwMgr; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("F7898AF5-CAC4-4632-A2EC-DA06E5111AF2") + INetFwMgr : public IDispatch + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LocalPolicy( + /* [retval][out] */ INetFwPolicy **localPolicy) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CurrentProfileType( + /* [retval][out] */ NET_FW_PROFILE_TYPE *profileType) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE RestoreDefaults( void) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE IsPortAllowed( + /* [in] */ BSTR imageFileName, + /* [in] */ NET_FW_IP_VERSION ipVersion, + /* [in] */ LONG portNumber, + /* [in] */ BSTR localAddress, + /* [in] */ NET_FW_IP_PROTOCOL ipProtocol, + /* [out] */ VARIANT *allowed, + /* [out] */ VARIANT *restricted) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE IsIcmpTypeAllowed( + /* [in] */ NET_FW_IP_VERSION ipVersion, + /* [in] */ BSTR localAddress, + /* [in] */ BYTE type, + /* [out] */ VARIANT *allowed, + /* [out] */ VARIANT *restricted) = 0; + + }; + +#else /* C style interface */ + + typedef struct INetFwMgrVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + INetFwMgr * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + INetFwMgr * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + INetFwMgr * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + INetFwMgr * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + INetFwMgr * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + INetFwMgr * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + INetFwMgr * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LocalPolicy )( + INetFwMgr * This, + /* [retval][out] */ INetFwPolicy **localPolicy); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentProfileType )( + INetFwMgr * This, + /* [retval][out] */ NET_FW_PROFILE_TYPE *profileType); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *RestoreDefaults )( + INetFwMgr * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *IsPortAllowed )( + INetFwMgr * This, + /* [in] */ BSTR imageFileName, + /* [in] */ NET_FW_IP_VERSION ipVersion, + /* [in] */ LONG portNumber, + /* [in] */ BSTR localAddress, + /* [in] */ NET_FW_IP_PROTOCOL ipProtocol, + /* [out] */ VARIANT *allowed, + /* [out] */ VARIANT *restricted); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *IsIcmpTypeAllowed )( + INetFwMgr * This, + /* [in] */ NET_FW_IP_VERSION ipVersion, + /* [in] */ BSTR localAddress, + /* [in] */ BYTE type, + /* [out] */ VARIANT *allowed, + /* [out] */ VARIANT *restricted); + + END_INTERFACE + } INetFwMgrVtbl; + + interface INetFwMgr + { + CONST_VTBL struct INetFwMgrVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#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) + + +#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) + + +#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 /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwMgr_get_LocalPolicy_Proxy( + INetFwMgr * This, + /* [retval][out] */ INetFwPolicy **localPolicy); + + +void __RPC_STUB INetFwMgr_get_LocalPolicy_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE INetFwMgr_get_CurrentProfileType_Proxy( + INetFwMgr * This, + /* [retval][out] */ NET_FW_PROFILE_TYPE *profileType); + + +void __RPC_STUB INetFwMgr_get_CurrentProfileType_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [id] */ HRESULT STDMETHODCALLTYPE INetFwMgr_RestoreDefaults_Proxy( + INetFwMgr * This); + + +void __RPC_STUB INetFwMgr_RestoreDefaults_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [id] */ HRESULT STDMETHODCALLTYPE INetFwMgr_IsPortAllowed_Proxy( + INetFwMgr * This, + /* [in] */ BSTR imageFileName, + /* [in] */ NET_FW_IP_VERSION ipVersion, + /* [in] */ LONG portNumber, + /* [in] */ BSTR localAddress, + /* [in] */ NET_FW_IP_PROTOCOL ipProtocol, + /* [out] */ VARIANT *allowed, + /* [out] */ VARIANT *restricted); + + +void __RPC_STUB INetFwMgr_IsPortAllowed_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [id] */ HRESULT STDMETHODCALLTYPE INetFwMgr_IsIcmpTypeAllowed_Proxy( + INetFwMgr * This, + /* [in] */ NET_FW_IP_VERSION ipVersion, + /* [in] */ BSTR localAddress, + /* [in] */ BYTE type, + /* [out] */ VARIANT *allowed, + /* [out] */ VARIANT *restricted); + + +void __RPC_STUB INetFwMgr_IsIcmpTypeAllowed_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __INetFwMgr_INTERFACE_DEFINED__ */ + + + +#ifndef __NetFwPublicTypeLib_LIBRARY_DEFINED__ +#define __NetFwPublicTypeLib_LIBRARY_DEFINED__ + +/* library NetFwPublicTypeLib */ +/* [version][uuid] */ + + + + + + + + + + + + + +EXTERN_C const IID LIBID_NetFwPublicTypeLib; + +EXTERN_C const CLSID CLSID_NetFwOpenPort; + +#ifdef __cplusplus + +class DECLSPEC_UUID("0CA545C6-37AD-4A6C-BF92-9F7610067EF5") +NetFwOpenPort; +#endif + +EXTERN_C const CLSID CLSID_NetFwAuthorizedApplication; + +#ifdef __cplusplus + +class DECLSPEC_UUID("EC9846B3-2762-4A6B-A214-6ACB603462D2") +NetFwAuthorizedApplication; +#endif + +EXTERN_C const CLSID CLSID_NetFwMgr; + +#ifdef __cplusplus + +class DECLSPEC_UUID("304CE942-6E39-40D8-943A-B913C40C9CD4") +NetFwMgr; +#endif +#endif /* __NetFwPublicTypeLib_LIBRARY_DEFINED__ */ + +/* Additional Prototypes for ALL interfaces */ + +unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * ); +unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * ); +unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); +void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * ); + +unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * ); +unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * ); +unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * ); +void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * ); + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/protocols/MSN/src/des.c b/protocols/MSN/src/des.c new file mode 100644 index 0000000000..030fb983cd --- /dev/null +++ b/protocols/MSN/src/des.c @@ -0,0 +1,639 @@ +/* + * FIPS-46-3 compliant Triple-DES implementation + * + * Copyright (C) 2006-2007 Christophe Devine + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License, version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +/* + * DES, on which TDES is based, was originally designed by IBM in + * 1974 and adopted as a standard by NIST (formerly NBS). + * + * http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf + */ + + +#ifndef __GNUC__ +#pragma hdrstop +#endif + +#ifndef _CRT_SECURE_NO_DEPRECATE +#define _CRT_SECURE_NO_DEPRECATE 1 +#endif + +#include + +#include "des.h" + +/* + * 32-bit integer manipulation macros (big endian) + */ +#ifndef GET_UINT32_BE +#define GET_UINT32_BE(n,b,i) \ +{ \ + (n) = ( (unsigned long) (b)[(i) ] << 24 ) \ + | ( (unsigned long) (b)[(i) + 1] << 16 ) \ + | ( (unsigned long) (b)[(i) + 2] << 8 ) \ + | ( (unsigned long) (b)[(i) + 3] ); \ +} +#endif +#ifndef PUT_UINT32_BE +#define PUT_UINT32_BE(n,b,i) \ +{ \ + (b)[(i) ] = (unsigned char) ( (n) >> 24 ); \ + (b)[(i) + 1] = (unsigned char) ( (n) >> 16 ); \ + (b)[(i) + 2] = (unsigned char) ( (n) >> 8 ); \ + (b)[(i) + 3] = (unsigned char) ( (n) ); \ +} +#endif + +/* + * Expanded DES S-boxes + */ +static const unsigned long SB1[64] = +{ + 0x01010400, 0x00000000, 0x00010000, 0x01010404, + 0x01010004, 0x00010404, 0x00000004, 0x00010000, + 0x00000400, 0x01010400, 0x01010404, 0x00000400, + 0x01000404, 0x01010004, 0x01000000, 0x00000004, + 0x00000404, 0x01000400, 0x01000400, 0x00010400, + 0x00010400, 0x01010000, 0x01010000, 0x01000404, + 0x00010004, 0x01000004, 0x01000004, 0x00010004, + 0x00000000, 0x00000404, 0x00010404, 0x01000000, + 0x00010000, 0x01010404, 0x00000004, 0x01010000, + 0x01010400, 0x01000000, 0x01000000, 0x00000400, + 0x01010004, 0x00010000, 0x00010400, 0x01000004, + 0x00000400, 0x00000004, 0x01000404, 0x00010404, + 0x01010404, 0x00010004, 0x01010000, 0x01000404, + 0x01000004, 0x00000404, 0x00010404, 0x01010400, + 0x00000404, 0x01000400, 0x01000400, 0x00000000, + 0x00010004, 0x00010400, 0x00000000, 0x01010004 +}; + +static const unsigned long SB2[64] = +{ + 0x80108020, 0x80008000, 0x00008000, 0x00108020, + 0x00100000, 0x00000020, 0x80100020, 0x80008020, + 0x80000020, 0x80108020, 0x80108000, 0x80000000, + 0x80008000, 0x00100000, 0x00000020, 0x80100020, + 0x00108000, 0x00100020, 0x80008020, 0x00000000, + 0x80000000, 0x00008000, 0x00108020, 0x80100000, + 0x00100020, 0x80000020, 0x00000000, 0x00108000, + 0x00008020, 0x80108000, 0x80100000, 0x00008020, + 0x00000000, 0x00108020, 0x80100020, 0x00100000, + 0x80008020, 0x80100000, 0x80108000, 0x00008000, + 0x80100000, 0x80008000, 0x00000020, 0x80108020, + 0x00108020, 0x00000020, 0x00008000, 0x80000000, + 0x00008020, 0x80108000, 0x00100000, 0x80000020, + 0x00100020, 0x80008020, 0x80000020, 0x00100020, + 0x00108000, 0x00000000, 0x80008000, 0x00008020, + 0x80000000, 0x80100020, 0x80108020, 0x00108000 +}; + +static const unsigned long SB3[64] = +{ + 0x00000208, 0x08020200, 0x00000000, 0x08020008, + 0x08000200, 0x00000000, 0x00020208, 0x08000200, + 0x00020008, 0x08000008, 0x08000008, 0x00020000, + 0x08020208, 0x00020008, 0x08020000, 0x00000208, + 0x08000000, 0x00000008, 0x08020200, 0x00000200, + 0x00020200, 0x08020000, 0x08020008, 0x00020208, + 0x08000208, 0x00020200, 0x00020000, 0x08000208, + 0x00000008, 0x08020208, 0x00000200, 0x08000000, + 0x08020200, 0x08000000, 0x00020008, 0x00000208, + 0x00020000, 0x08020200, 0x08000200, 0x00000000, + 0x00000200, 0x00020008, 0x08020208, 0x08000200, + 0x08000008, 0x00000200, 0x00000000, 0x08020008, + 0x08000208, 0x00020000, 0x08000000, 0x08020208, + 0x00000008, 0x00020208, 0x00020200, 0x08000008, + 0x08020000, 0x08000208, 0x00000208, 0x08020000, + 0x00020208, 0x00000008, 0x08020008, 0x00020200 +}; + +static const unsigned long SB4[64] = +{ + 0x00802001, 0x00002081, 0x00002081, 0x00000080, + 0x00802080, 0x00800081, 0x00800001, 0x00002001, + 0x00000000, 0x00802000, 0x00802000, 0x00802081, + 0x00000081, 0x00000000, 0x00800080, 0x00800001, + 0x00000001, 0x00002000, 0x00800000, 0x00802001, + 0x00000080, 0x00800000, 0x00002001, 0x00002080, + 0x00800081, 0x00000001, 0x00002080, 0x00800080, + 0x00002000, 0x00802080, 0x00802081, 0x00000081, + 0x00800080, 0x00800001, 0x00802000, 0x00802081, + 0x00000081, 0x00000000, 0x00000000, 0x00802000, + 0x00002080, 0x00800080, 0x00800081, 0x00000001, + 0x00802001, 0x00002081, 0x00002081, 0x00000080, + 0x00802081, 0x00000081, 0x00000001, 0x00002000, + 0x00800001, 0x00002001, 0x00802080, 0x00800081, + 0x00002001, 0x00002080, 0x00800000, 0x00802001, + 0x00000080, 0x00800000, 0x00002000, 0x00802080 +}; + +static const unsigned long SB5[64] = +{ + 0x00000100, 0x02080100, 0x02080000, 0x42000100, + 0x00080000, 0x00000100, 0x40000000, 0x02080000, + 0x40080100, 0x00080000, 0x02000100, 0x40080100, + 0x42000100, 0x42080000, 0x00080100, 0x40000000, + 0x02000000, 0x40080000, 0x40080000, 0x00000000, + 0x40000100, 0x42080100, 0x42080100, 0x02000100, + 0x42080000, 0x40000100, 0x00000000, 0x42000000, + 0x02080100, 0x02000000, 0x42000000, 0x00080100, + 0x00080000, 0x42000100, 0x00000100, 0x02000000, + 0x40000000, 0x02080000, 0x42000100, 0x40080100, + 0x02000100, 0x40000000, 0x42080000, 0x02080100, + 0x40080100, 0x00000100, 0x02000000, 0x42080000, + 0x42080100, 0x00080100, 0x42000000, 0x42080100, + 0x02080000, 0x00000000, 0x40080000, 0x42000000, + 0x00080100, 0x02000100, 0x40000100, 0x00080000, + 0x00000000, 0x40080000, 0x02080100, 0x40000100 +}; + +static const unsigned long SB6[64] = +{ + 0x20000010, 0x20400000, 0x00004000, 0x20404010, + 0x20400000, 0x00000010, 0x20404010, 0x00400000, + 0x20004000, 0x00404010, 0x00400000, 0x20000010, + 0x00400010, 0x20004000, 0x20000000, 0x00004010, + 0x00000000, 0x00400010, 0x20004010, 0x00004000, + 0x00404000, 0x20004010, 0x00000010, 0x20400010, + 0x20400010, 0x00000000, 0x00404010, 0x20404000, + 0x00004010, 0x00404000, 0x20404000, 0x20000000, + 0x20004000, 0x00000010, 0x20400010, 0x00404000, + 0x20404010, 0x00400000, 0x00004010, 0x20000010, + 0x00400000, 0x20004000, 0x20000000, 0x00004010, + 0x20000010, 0x20404010, 0x00404000, 0x20400000, + 0x00404010, 0x20404000, 0x00000000, 0x20400010, + 0x00000010, 0x00004000, 0x20400000, 0x00404010, + 0x00004000, 0x00400010, 0x20004010, 0x00000000, + 0x20404000, 0x20000000, 0x00400010, 0x20004010 +}; + +static const unsigned long SB7[64] = +{ + 0x00200000, 0x04200002, 0x04000802, 0x00000000, + 0x00000800, 0x04000802, 0x00200802, 0x04200800, + 0x04200802, 0x00200000, 0x00000000, 0x04000002, + 0x00000002, 0x04000000, 0x04200002, 0x00000802, + 0x04000800, 0x00200802, 0x00200002, 0x04000800, + 0x04000002, 0x04200000, 0x04200800, 0x00200002, + 0x04200000, 0x00000800, 0x00000802, 0x04200802, + 0x00200800, 0x00000002, 0x04000000, 0x00200800, + 0x04000000, 0x00200800, 0x00200000, 0x04000802, + 0x04000802, 0x04200002, 0x04200002, 0x00000002, + 0x00200002, 0x04000000, 0x04000800, 0x00200000, + 0x04200800, 0x00000802, 0x00200802, 0x04200800, + 0x00000802, 0x04000002, 0x04200802, 0x04200000, + 0x00200800, 0x00000000, 0x00000002, 0x04200802, + 0x00000000, 0x00200802, 0x04200000, 0x00000800, + 0x04000002, 0x04000800, 0x00000800, 0x00200002 +}; + +static const unsigned long SB8[64] = +{ + 0x10001040, 0x00001000, 0x00040000, 0x10041040, + 0x10000000, 0x10001040, 0x00000040, 0x10000000, + 0x00040040, 0x10040000, 0x10041040, 0x00041000, + 0x10041000, 0x00041040, 0x00001000, 0x00000040, + 0x10040000, 0x10000040, 0x10001000, 0x00001040, + 0x00041000, 0x00040040, 0x10040040, 0x10041000, + 0x00001040, 0x00000000, 0x00000000, 0x10040040, + 0x10000040, 0x10001000, 0x00041040, 0x00040000, + 0x00041040, 0x00040000, 0x10041000, 0x00001000, + 0x00000040, 0x10040040, 0x00001000, 0x00041040, + 0x10001000, 0x00000040, 0x10000040, 0x10040000, + 0x10040040, 0x10000000, 0x00040000, 0x10001040, + 0x00000000, 0x10041040, 0x00040040, 0x10000040, + 0x10040000, 0x10001000, 0x10001040, 0x00000000, + 0x10041040, 0x00041000, 0x00041000, 0x00001040, + 0x00001040, 0x00040040, 0x10000000, 0x10041000 +}; + +/* + * PC1: left and right halves bit-swap + */ +static const unsigned long LHs[16] = +{ + 0x00000000, 0x00000001, 0x00000100, 0x00000101, + 0x00010000, 0x00010001, 0x00010100, 0x00010101, + 0x01000000, 0x01000001, 0x01000100, 0x01000101, + 0x01010000, 0x01010001, 0x01010100, 0x01010101 +}; + +static const unsigned long RHs[16] = +{ + 0x00000000, 0x01000000, 0x00010000, 0x01010000, + 0x00000100, 0x01000100, 0x00010100, 0x01010100, + 0x00000001, 0x01000001, 0x00010001, 0x01010001, + 0x00000101, 0x01000101, 0x00010101, 0x01010101, +}; + +/* + * Initial Permutation macro + */ +#define DES_IP(X,Y) \ +{ \ + T = ((X >> 4) ^ Y) & 0x0F0F0F0F; Y ^= T; X ^= (T << 4); \ + T = ((X >> 16) ^ Y) & 0x0000FFFF; Y ^= T; X ^= (T << 16); \ + T = ((Y >> 2) ^ X) & 0x33333333; X ^= T; Y ^= (T << 2); \ + T = ((Y >> 8) ^ X) & 0x00FF00FF; X ^= T; Y ^= (T << 8); \ + Y = ((Y << 1) | (Y >> 31)) & 0xFFFFFFFF; \ + T = (X ^ Y) & 0xAAAAAAAA; Y ^= T; X ^= T; \ + X = ((X << 1) | (X >> 31)) & 0xFFFFFFFF; \ +} + +/* + * Final Permutation macro + */ +#define DES_FP(X,Y) \ +{ \ + X = ((X << 31) | (X >> 1)) & 0xFFFFFFFF; \ + T = (X ^ Y) & 0xAAAAAAAA; X ^= T; Y ^= T; \ + Y = ((Y << 31) | (Y >> 1)) & 0xFFFFFFFF; \ + T = ((Y >> 8) ^ X) & 0x00FF00FF; X ^= T; Y ^= (T << 8); \ + T = ((Y >> 2) ^ X) & 0x33333333; X ^= T; Y ^= (T << 2); \ + T = ((X >> 16) ^ Y) & 0x0000FFFF; Y ^= T; X ^= (T << 16); \ + T = ((X >> 4) ^ Y) & 0x0F0F0F0F; Y ^= T; X ^= (T << 4); \ +} + +/* + * DES round macro + */ +#define DES_ROUND(X,Y) \ +{ \ + T = *SK++ ^ X; \ + Y ^= SB8[ (T ) & 0x3F ] ^ \ + SB6[ (T >> 8) & 0x3F ] ^ \ + SB4[ (T >> 16) & 0x3F ] ^ \ + SB2[ (T >> 24) & 0x3F ]; \ + \ + T = *SK++ ^ ((X << 28) | (X >> 4)); \ + Y ^= SB7[ (T ) & 0x3F ] ^ \ + SB5[ (T >> 8) & 0x3F ] ^ \ + SB3[ (T >> 16) & 0x3F ] ^ \ + SB1[ (T >> 24) & 0x3F ]; \ +} + +static void des_main_ks( unsigned long SK[32], unsigned char key[8] ) +{ + int i; + unsigned long X, Y, T; + + GET_UINT32_BE( X, key, 0 ); + GET_UINT32_BE( Y, key, 4 ); + + /* + * Permuted Choice 1 + */ + T = ((Y >> 4) ^ X) & 0x0F0F0F0F; X ^= T; Y ^= (T << 4); + T = ((Y ) ^ X) & 0x10101010; X ^= T; Y ^= (T ); + + X = (LHs[ (X ) & 0xF] << 3) | (LHs[ (X >> 8) & 0xF ] << 2) + | (LHs[ (X >> 16) & 0xF] << 1) | (LHs[ (X >> 24) & 0xF ] ) + | (LHs[ (X >> 5) & 0xF] << 7) | (LHs[ (X >> 13) & 0xF ] << 6) + | (LHs[ (X >> 21) & 0xF] << 5) | (LHs[ (X >> 29) & 0xF ] << 4); + + Y = (RHs[ (Y >> 1) & 0xF] << 3) | (RHs[ (Y >> 9) & 0xF ] << 2) + | (RHs[ (Y >> 17) & 0xF] << 1) | (RHs[ (Y >> 25) & 0xF ] ) + | (RHs[ (Y >> 4) & 0xF] << 7) | (RHs[ (Y >> 12) & 0xF ] << 6) + | (RHs[ (Y >> 20) & 0xF] << 5) | (RHs[ (Y >> 28) & 0xF ] << 4); + + X &= 0x0FFFFFFF; + Y &= 0x0FFFFFFF; + + /* + * calculate subkeys + */ + for ( i = 0; i < 16; i++ ) + { + if ( i < 2 || i == 8 || i == 15 ) + { + X = ((X << 1) | (X >> 27)) & 0x0FFFFFFF; + Y = ((Y << 1) | (Y >> 27)) & 0x0FFFFFFF; + } + else + { + X = ((X << 2) | (X >> 26)) & 0x0FFFFFFF; + Y = ((Y << 2) | (Y >> 26)) & 0x0FFFFFFF; + } + + *SK++ = ((X << 4) & 0x24000000) | ((X << 28) & 0x10000000) + | ((X << 14) & 0x08000000) | ((X << 18) & 0x02080000) + | ((X << 6) & 0x01000000) | ((X << 9) & 0x00200000) + | ((X >> 1) & 0x00100000) | ((X << 10) & 0x00040000) + | ((X << 2) & 0x00020000) | ((X >> 10) & 0x00010000) + | ((Y >> 13) & 0x00002000) | ((Y >> 4) & 0x00001000) + | ((Y << 6) & 0x00000800) | ((Y >> 1) & 0x00000400) + | ((Y >> 14) & 0x00000200) | ((Y ) & 0x00000100) + | ((Y >> 5) & 0x00000020) | ((Y >> 10) & 0x00000010) + | ((Y >> 3) & 0x00000008) | ((Y >> 18) & 0x00000004) + | ((Y >> 26) & 0x00000002) | ((Y >> 24) & 0x00000001); + + *SK++ = ((X << 15) & 0x20000000) | ((X << 17) & 0x10000000) + | ((X << 10) & 0x08000000) | ((X << 22) & 0x04000000) + | ((X >> 2) & 0x02000000) | ((X << 1) & 0x01000000) + | ((X << 16) & 0x00200000) | ((X << 11) & 0x00100000) + | ((X << 3) & 0x00080000) | ((X >> 6) & 0x00040000) + | ((X << 15) & 0x00020000) | ((X >> 4) & 0x00010000) + | ((Y >> 2) & 0x00002000) | ((Y << 8) & 0x00001000) + | ((Y >> 14) & 0x00000808) | ((Y >> 9) & 0x00000400) + | ((Y ) & 0x00000200) | ((Y << 7) & 0x00000100) + | ((Y >> 7) & 0x00000020) | ((Y >> 3) & 0x00000011) + | ((Y << 2) & 0x00000004) | ((Y >> 21) & 0x00000002); + } +} + +/* + * DES key schedule (56-bit) + */ +void des_set_key( des_context *ctx, unsigned char key[8] ) +{ + int i; + + des_main_ks( ctx->esk, key ); + + for ( i = 0; i < 32; i += 2 ) + { + ctx->dsk[i ] = ctx->esk[30 - i]; + ctx->dsk[i + 1] = ctx->esk[31 - i]; + } +} + +static void des_crypt( unsigned long SK[32], + unsigned char input[8], + unsigned char output[8] ) +{ + unsigned long X, Y, T; + + GET_UINT32_BE( X, input, 0 ); + GET_UINT32_BE( Y, input, 4 ); + + DES_IP( X, Y ); + + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + + DES_FP( Y, X ); + + PUT_UINT32_BE( Y, output, 0 ); + PUT_UINT32_BE( X, output, 4 ); +} + +/* + * DES block encryption (ECB mode) + */ +void des_encrypt( des_context *ctx, + unsigned char input[8], + unsigned char output[8] ) +{ + des_crypt( ctx->esk, input, output ); +} + +/* + * DES block decryption (ECB mode) + */ +void des_decrypt( des_context *ctx, + unsigned char input[8], + unsigned char output[8] ) +{ + des_crypt( ctx->dsk, input, output ); +} + +/* + * DES-CBC buffer encryption + */ +void des_cbc_encrypt( des_context *ctx, + unsigned char iv[8], + unsigned char *input, + unsigned char *output, + int len ) +{ + int i; + + while( len > 0 ) + { + for ( i = 0; i < 8; i++ ) + output[i] = input[i] ^ iv[i]; + + des_crypt( ctx->esk, output, output ); + memcpy( iv, output, 8 ); + + input += 8; + output += 8; + len -= 8; + } +} + +/* + * DES-CBC buffer decryption + */ +void des_cbc_decrypt( des_context *ctx, + unsigned char iv[8], + unsigned char *input, + unsigned char *output, + int len ) +{ + int i; + unsigned char temp[8]; + + while( len > 0 ) + { + memcpy( temp, input, 8 ); + des_crypt( ctx->dsk, input, output ); + + for ( i = 0; i < 8; i++ ) + output[i] = output[i] ^ iv[i]; + + memcpy( iv, temp, 8 ); + + input += 8; + output += 8; + len -= 8; + } +} + +/* + * Triple-DES key schedule (112-bit) + */ +void des3_set_2keys( des3_context *ctx, unsigned char key[16] ) +{ + int i; + + des_main_ks( ctx->esk , key ); + des_main_ks( ctx->dsk + 32, key + 8 ); + + for ( i = 0; i < 32; i += 2 ) + { + ctx->dsk[i ] = ctx->esk[30 - i]; + ctx->dsk[i + 1] = ctx->esk[31 - i]; + + ctx->esk[i + 32] = ctx->dsk[62 - i]; + ctx->esk[i + 33] = ctx->dsk[63 - i]; + + ctx->esk[i + 64] = ctx->esk[ i]; + ctx->esk[i + 65] = ctx->esk[ 1 + i]; + + ctx->dsk[i + 64] = ctx->dsk[ i]; + ctx->dsk[i + 65] = ctx->dsk[ 1 + i]; + } +} + +/* + * Triple-DES key schedule (168-bit) + */ +void des3_set_3keys( des3_context *ctx, unsigned char key[24] ) +{ + int i; + + des_main_ks( ctx->esk , key ); + des_main_ks( ctx->dsk + 32, key + 8 ); + des_main_ks( ctx->esk + 64, key + 16 ); + + for ( i = 0; i < 32; i += 2 ) + { + ctx->dsk[i ] = ctx->esk[94 - i]; + ctx->dsk[i + 1] = ctx->esk[95 - i]; + + ctx->esk[i + 32] = ctx->dsk[62 - i]; + ctx->esk[i + 33] = ctx->dsk[63 - i]; + + ctx->dsk[i + 64] = ctx->esk[30 - i]; + ctx->dsk[i + 65] = ctx->esk[31 - i]; + } +} + +static void des3_crypt( unsigned long SK[96], + unsigned char input[8], + unsigned char output[8] ) +{ + unsigned long X, Y, T; + + GET_UINT32_BE( X, input, 0 ); + GET_UINT32_BE( Y, input, 4 ); + + DES_IP( X, Y ); + + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + + DES_ROUND( X, Y ); DES_ROUND( Y, X ); + DES_ROUND( X, Y ); DES_ROUND( Y, X ); + DES_ROUND( X, Y ); DES_ROUND( Y, X ); + DES_ROUND( X, Y ); DES_ROUND( Y, X ); + DES_ROUND( X, Y ); DES_ROUND( Y, X ); + DES_ROUND( X, Y ); DES_ROUND( Y, X ); + DES_ROUND( X, Y ); DES_ROUND( Y, X ); + DES_ROUND( X, Y ); DES_ROUND( Y, X ); + + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + DES_ROUND( Y, X ); DES_ROUND( X, Y ); + + DES_FP( Y, X ); + + PUT_UINT32_BE( Y, output, 0 ); + PUT_UINT32_BE( X, output, 4 ); +} + +/* + * Triple-DES block encryption (ECB mode) + */ +void des3_encrypt( des3_context *ctx, + unsigned char input[8], + unsigned char output[8] ) +{ + des3_crypt( ctx->esk, input, output ); +} + +/* + * Triple-DES block decryption (ECB mode) + */ +void des3_decrypt( des3_context *ctx, + unsigned char input[8], + unsigned char output[8] ) +{ + des3_crypt( ctx->dsk, input, output ); +} + +/* + * 3DES-CBC buffer encryption + */ +void des3_cbc_encrypt( des3_context *ctx, + unsigned char iv[8], + unsigned char *input, + unsigned char *output, + int len ) +{ + int i; + + while( len > 0 ) + { + for ( i = 0; i < 8; i++ ) + output[i] = input[i] ^ iv[i]; + + des3_crypt( ctx->esk, output, output ); + memcpy( iv, output, 8 ); + + input += 8; + output += 8; + len -= 8; + } +} + +/* + * 3DES-CBC buffer decryption + */ +void des3_cbc_decrypt( des3_context *ctx, + unsigned char iv[8], + unsigned char *input, + unsigned char *output, + int len ) +{ + int i; + unsigned char temp[8]; + + while( len > 0 ) + { + memcpy( temp, input, 8 ); + des3_crypt( ctx->dsk, input, output ); + + for ( i = 0; i < 8; i++ ) + output[i] = output[i] ^ iv[i]; + + memcpy( iv, temp, 8 ); + + input += 8; + output += 8; + len -= 8; + } +} diff --git a/protocols/MSN/src/des.h b/protocols/MSN/src/des.h new file mode 100644 index 0000000000..e1fc923fad --- /dev/null +++ b/protocols/MSN/src/des.h @@ -0,0 +1,170 @@ +/** + * \file des.h + */ +#ifndef _DES_H +#define _DES_H + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief DES context structure + */ +typedef struct +{ + unsigned long esk[32]; /*!< DES encryption subkeys */ + unsigned long dsk[32]; /*!< DES decryption subkeys */ +} +des_context; + +/** + * \brief Triple-DES context structure + */ +typedef struct +{ + unsigned long esk[96]; /*!< Triple-DES encryption subkeys */ + unsigned long dsk[96]; /*!< Triple-DES decryption subkeys */ +} +des3_context; + +/** + * \brief DES key schedule (56-bit) + * + * \param ctx DES context to be initialized + * \param key 8-byte secret key + */ +void des_set_key( des_context *ctx, unsigned char key[8] ); + +/** + * \brief DES block encryption (ECB mode) + * + * \param ctx DES context + * \param input plaintext block + * \param output ciphertext block + */ +void des_encrypt( des_context *ctx, + unsigned char input[8], + unsigned char output[8] ); + +/** + * \brief DES block decryption (ECB mode) + * + * \param ctx DES context + * \param input ciphertext block + * \param output plaintext block + */ +void des_decrypt( des_context *ctx, + unsigned char input[8], + unsigned char output[8] ); + +/** + * \brief DES-CBC buffer encryption + * + * \param ctx DES context + * \param iv initialization vector (modified after use) + * \param input buffer holding the plaintext + * \param output buffer holding the ciphertext + * \param len length of the data to be encrypted + */ +void des_cbc_encrypt( des_context *ctx, + unsigned char iv[8], + unsigned char *input, + unsigned char *output, + int len ); + +/** + * \brief DES-CBC buffer decryption + * + * \param ctx DES context + * \param iv initialization vector (modified after use) + * \param input buffer holding the ciphertext + * \param output buffer holding the plaintext + * \param len length of the data to be decrypted + */ +void des_cbc_decrypt( des_context *ctx, + unsigned char iv[8], + unsigned char *input, + unsigned char *output, + int len ); + +/** + * \brief Triple-DES key schedule (112-bit) + * + * \param ctx 3DES context to be initialized + * \param key 16-byte secret key + */ +void des3_set_2keys( des3_context *ctx, unsigned char key[16] ); + +/** + * \brief Triple-DES key schedule (168-bit) + * + * \param ctx 3DES context to be initialized + * \param key 24-byte secret key + */ +void des3_set_3keys( des3_context *ctx, unsigned char key[24] ); + +/** + * \brief Triple-DES block encryption (ECB mode) + * + * \param ctx 3DES context + * \param input plaintext block + * \param output ciphertext block + */ +void des3_encrypt( des3_context *ctx, + unsigned char input[8], + unsigned char output[8] ); + +/** + * \brief Triple-DES block decryption (ECB mode) + * + * \param ctx 3DES context + * \param input ciphertext block + * \param output plaintext block + */ +void des3_decrypt( des3_context *ctx, + unsigned char input[8], + unsigned char output[8] ); + +/** + * \brief 3DES-CBC buffer encryption + * + * \param ctx 3DES context + * \param iv initialization vector (modified after use) + * \param input buffer holding the plaintext + * \param output buffer holding the ciphertext + * \param len length of the data to be encrypted + */ +void des3_cbc_encrypt( des3_context *ctx, + unsigned char iv[8], + unsigned char *input, + unsigned char *output, + int len ); + +/** + * \brief 3DES-CBC buffer decryption + * + * \param ctx 3DES context + * \param iv initialization vector (modified after use) + * \param input buffer holding the ciphertext + * \param output buffer holding the plaintext + * \param len length of the data to be decrypted + */ +void des3_cbc_decrypt( des3_context *ctx, + unsigned char iv[8], + unsigned char *input, + unsigned char *output, + int len ); + +/* + * \brief Checkup routine + * + * \return 0 if successful, or 1 if the test failed + */ +int des_self_test( int verbose ); + +#ifdef __cplusplus +} +#endif + +#endif /* des.h */ diff --git a/protocols/MSN/src/ezxml.c b/protocols/MSN/src/ezxml.c new file mode 100644 index 0000000000..a910c1e905 --- /dev/null +++ b/protocols/MSN/src/ezxml.c @@ -0,0 +1,967 @@ +/* ezxml.c + * + * Copyright 2004-2006 Aaron Voisine + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#if defined(_DEBUG) && !defined(__GNUC__) + #define _CRTDBG_MAP_ALLOC + #include + #include +#else + #include +#endif + +#include +#include +#include +#include +#include + +#include "ezxml.h" + +#ifndef SIZE_MAX +#define SIZE_MAX UINT_MAX +#endif + +#define EZXML_WS "\t\r\n " // whitespace +#define EZXML_ERRL 128 // maximum error string length + +typedef struct ezxml_root *ezxml_root_t; +struct ezxml_root { // additional data for the root tag + struct ezxml xml; // is a super-struct built on top of ezxml struct + ezxml_t cur; // current xml tree insertion point + char *m; // original xml string + size_t len; // length of allocated memory for mmap, -1 for malloc + char *u; // UTF-8 conversion of string if original was UTF-16 + char *s; // start of work area + char *e; // end of work area + char **ent; // general entities (ampersand sequences) + char ***attr; // default attributes + char ***pi; // processing instructions + short standalone; // non-zero if + char err[EZXML_ERRL]; // error string +}; + +char *EZXML_NIL[] = { NULL }; // empty, null terminated array of strings + +// returns the first child tag with the given name or NULL if not found +ezxml_t ezxml_child(ezxml_t xml, const char *name) +{ + xml = (xml) ? xml->child : NULL; + while (xml && strcmp(name, xml->name)) xml = xml->sibling; + return xml; +} + +// returns the Nth tag with the same name in the same subsection or NULL if not +// found +ezxml_t ezxml_idx(ezxml_t xml, int idx) +{ + for (; xml && idx; idx--) xml = xml->next; + return xml; +} + +// returns the value of the requested tag attribute or NULL if not found +const char *ezxml_attr(ezxml_t xml, const char *attr) +{ + int i = 0, j = 1; + ezxml_root_t root = (ezxml_root_t)xml; + + if (! xml || ! xml->attr) return NULL; + while (xml->attr[i] && strcmp(attr, xml->attr[i])) i += 2; + if (xml->attr[i]) return xml->attr[i + 1]; // found attribute + + while (root->xml.parent) root = (ezxml_root_t)root->xml.parent; // root tag + for (i = 0; root->attr[i] && strcmp(xml->name, root->attr[i][0]); i++); + if (! root->attr[i]) return NULL; // no matching default attributes + while (root->attr[i][j] && strcmp(attr, root->attr[i][j])) j += 3; + return (root->attr[i][j]) ? root->attr[i][j + 1] : NULL; // found default +} + +// same as ezxml_get but takes an already initialized va_list +ezxml_t ezxml_vget(ezxml_t xml, va_list ap) +{ + char *name = va_arg(ap, char *); + int idx = -1; + + if (name && *name) { + idx = va_arg(ap, int); + xml = ezxml_child(xml, name); + } + return (idx < 0) ? xml : ezxml_vget(ezxml_idx(xml, idx), ap); +} + +// Traverses the xml tree to retrieve a specific subtag. Takes a variable +// length list of tag names and indexes. The argument list must be terminated +// by either an index of -1 or an empty string tag name. Example: +// title = ezxml_get(library, "shelf", 0, "book", 2, "title", -1); +// This retrieves the title of the 3rd book on the 1st shelf of library. +// Returns NULL if not found. +ezxml_t ezxml_get(ezxml_t xml, ...) +{ + va_list ap; + ezxml_t r; + + va_start(ap, xml); + r = ezxml_vget(xml, ap); + va_end(ap); + return r; +} + +// returns a null terminated array of processing instructions for the given +// target +const char **ezxml_pi(ezxml_t xml, const char *target) +{ + ezxml_root_t root = (ezxml_root_t)xml; + int i = 0; + + if (! root) return (const char **)EZXML_NIL; + while (root->xml.parent) root = (ezxml_root_t)root->xml.parent; // root tag + while (root->pi[i] && strcmp(target, root->pi[i][0])) i++; // find target + return (const char **)((root->pi[i]) ? root->pi[i] + 1 : EZXML_NIL); +} + +// set an error string and return root +ezxml_t ezxml_err(ezxml_root_t root, char *s, const char *err, ...) +{ + va_list ap; + int line = 1; + char *t, fmt[EZXML_ERRL]; + + for (t = root->s; t < s; t++) if (*t == '\n') line++; + _snprintf(fmt, EZXML_ERRL, "[error near line %d]: %s", line, err); + + va_start(ap, err); + _vsnprintf(root->err, EZXML_ERRL, fmt, ap); + va_end(ap); + + return &root->xml; +} + +// Recursively decodes entity and character references and normalizes new lines +// ent is a null terminated array of alternating entity names and values. set t +// to '&' for general entity decoding, '%' for parameter entity decoding, 'c' +// for cdata sections, ' ' for attribute normalization, or '*' for non-cdata +// attribute normalization. Returns s, or if the decoded string is longer than +// s, returns a malloced string that must be freed. +char *ezxml_decode(char *s, char **ent, char t) +{ + char *e, *r = s, *m = s; + long b, c, d, l; +/* + for (; *s; s++) { // normalize line endings + while (*s == '\r') { + *(s++) = '\n'; + if (*s == '\n') memmove(s, (s + 1), strlen(s)); + } + } +*/ + for (s = r; ; ) { + while (*s && *s != '&' && (*s != '%' || t != '%') && (*s & 0x80 || !isspace(*s))) s++; + + if (! *s) break; + else if (t != 'c' && ! strncmp(s, "&#", 2)) { // character reference + if (s[2] == 'x') c = strtol(s + 3, &e, 16); // base 16 + else c = strtol(s + 2, &e, 10); // base 10 + if (! c || *e != ';') { s++; continue; } // not a character ref + + if (c < 0x80) *(s++) = (char)c; // US-ASCII subset + else { // multi-byte UTF-8 sequence + for (b = 0, d = c; d; d /= 2) b++; // number of bits in c + b = (b - 2) / 5; // number of bytes in payload + *(s++) = (char)((0xFF << (7 - b)) | (c >> (6 * b))); // head + while (b) *(s++) = (char)(0x80 | ((c >> (6 * --b)) & 0x3F)); // payload + } + + memmove(s, strchr(s, ';') + 1, strlen(strchr(s, ';'))); + } + else if ((*s == '&' && (t == '&' || t == ' ' || t == '*')) || + (*s == '%' && t == '%')) { // entity reference + for (b = 0; ent[b] && strncmp(s + 1, ent[b], strlen(ent[b])); + b += 2); // find entity in entity list + + if (ent[b++]) { // found a match + if ((c = (long)strlen(ent[b])) - 1 > (e = strchr(s, ';')) - s) { + l = (d = (long)(s - r)) + c + (long)strlen(e); // new length + r = (r == m) ? strcpy(malloc(l), r) : realloc(r, l); + e = strchr((s = r + d), ';'); // fix up pointers + } + + memmove(s + c, e + 1, strlen(e)); // shift rest of string + strncpy(s, ent[b], c); // copy in replacement text + } + else s++; // not a known entity + } + else if ((t == ' ' || t == '*') && isspace(*s)) *(s++) = ' '; + else s++; // no decoding needed + } + + if (t == '*') { // normalize spaces for non-cdata attributes + for (s = r; *s; s++) { + if ((l = (long)strspn(s, " "))) memmove(s, s + l, strlen(s + l) + 1); + while (*s && *s != ' ') s++; + } + if (--s >= r && *s == ' ') *s = '\0'; // trim any trailing space + } + return r; +} + +// called when parser finds start of new tag +void ezxml_open_tag(ezxml_root_t root, char *name, char **attr) +{ + ezxml_t xml = root->cur; + + if (xml->name) xml = ezxml_add_child(xml, name, strlen(xml->txt)); + else xml->name = name; // first open tag + + xml->attr = attr; + root->cur = xml; // update tag insertion point +} + +// called when parser finds character content between open and closing tag +void ezxml_char_content(ezxml_root_t root, char *s, size_t len, char t) +{ + ezxml_t xml = root->cur; + char *m = s; + size_t l; + + if (! xml || ! xml->name || ! len) return; // sanity check + + s[len] = '\0'; // null terminate text (calling functions anticipate this) + len = strlen(s = ezxml_decode(s, root->ent, t)) + 1; + + if (! *(xml->txt)) xml->txt = s; // initial character content + else { // allocate our own memory and make a copy + xml->txt = (xml->flags & EZXML_TXTM) // allocate some space + ? realloc(xml->txt, (l = strlen(xml->txt)) + len) + : strcpy(malloc((l = strlen(xml->txt)) + len), xml->txt); + strcpy(xml->txt + l, s); // add new char content + if (s != m) free(s); // free s if it was malloced by ezxml_decode() + } + + if (xml->txt != m) ezxml_set_flag(xml, EZXML_TXTM); +} + +// called when parser finds closing tag +ezxml_t ezxml_close_tag(ezxml_root_t root, char *name, char *s) +{ + if (! root->cur || ! root->cur->name || strcmp(name, root->cur->name)) + return ezxml_err(root, s, "unexpected closing tag ", name); + + root->cur = root->cur->parent; + return NULL; +} + +// checks for circular entity references, returns non-zero if no circular +// references are found, zero otherwise +int ezxml_ent_ok(char *name, char *s, char **ent) +{ + int i; + + for (; ; s++) { + while (*s && *s != '&') s++; // find next entity reference + if (! *s) return 1; + if (! strncmp(s + 1, name, strlen(name))) return 0; // circular ref. + for (i = 0; ent[i] && strncmp(ent[i], s + 1, strlen(ent[i])); i += 2); + if (ent[i] && ! ezxml_ent_ok(name, ent[i + 1], ent)) return 0; + } +} + +// called when the parser finds a processing instruction +void ezxml_proc_inst(ezxml_root_t root, char *s, size_t len) +{ + int i = 0, j = 1; + char *target = s; + + s[len] = '\0'; // null terminate instruction + if (*(s += strcspn(s, EZXML_WS))) { + *s = '\0'; // null terminate target + s += strspn(s + 1, EZXML_WS) + 1; // skip whitespace after target + } + + if (! strcmp(target, "xml")) { // + if ((s = strstr(s, "standalone")) && ! strncmp(s + strspn(s + 10, + EZXML_WS "='\"") + 10, "yes", 3)) root->standalone = 1; + return; + } + + if (! root->pi[0]) *(root->pi = malloc(sizeof(char **))) = NULL; //first pi + + while (root->pi[i] && strcmp(target, root->pi[i][0])) i++; // find target + if (! root->pi[i]) { // new target + root->pi = realloc(root->pi, sizeof(char **) * (i + 2)); + root->pi[i] = malloc(sizeof(char *) * 3); + root->pi[i][0] = target; + root->pi[i][1] = (char *)(root->pi[i + 1] = NULL); // terminate pi list + root->pi[i][2] = _strdup(""); // empty document position list + } + + while (root->pi[i][j]) j++; // find end of instruction list for this target + root->pi[i] = realloc(root->pi[i], sizeof(char *) * (j + 3)); + root->pi[i][j + 2] = realloc(root->pi[i][j + 1], j + 1); + strcpy(root->pi[i][j + 2] + j - 1, (root->xml.name) ? ">" : "<"); + root->pi[i][j + 1] = NULL; // null terminate pi list for this target + root->pi[i][j] = s; // set instruction +} + +// called when the parser finds an internal doctype subset +short ezxml_internal_dtd(ezxml_root_t root, char *s, size_t len) +{ + char q, *c, *t, *n = NULL, *v, **ent, **pe; + int i, j; + + pe = memcpy(malloc(sizeof(EZXML_NIL)), EZXML_NIL, sizeof(EZXML_NIL)); + + for (s[len] = '\0'; s; ) { + while (*s && *s != '<' && *s != '%') s++; // find next declaration + + if (! *s) break; + else if (! strncmp(s, "'); + continue; + } + + for (i = 0, ent = (*c == '%') ? pe : root->ent; ent[i]; i++); + ent = realloc(ent, (i + 3) * sizeof(char *)); // space for next ent + if (*c == '%') pe = ent; + else root->ent = ent; + + *(++s) = '\0'; // null terminate name + if ((s = strchr(v, q))) *(s++) = '\0'; // null terminate value + ent[i + 1] = ezxml_decode(v, pe, '%'); // set value + ent[i + 2] = NULL; // null terminate entity list + if (! ezxml_ent_ok(n, ent[i + 1], ent)) { // circular reference + if (ent[i + 1] != v) free(ent[i + 1]); + ezxml_err(root, v, "circular entity declaration &%s", n); + break; + } + else ent[i] = n; // set entity name + } + else if (! strncmp(s, "")) == '>') continue; + else *s = '\0'; // null terminate tag name + for (i = 0; root->attr[i] && strcmp(n, root->attr[i][0]); i++); + + while (*(n = s + 1 + strspn(s + 1, EZXML_WS)) && *n != '>') { + if (*(s = n + strcspn(n, EZXML_WS))) *s = '\0'; // attr name + else { ezxml_err(root, t, "malformed ") - 1; + if (*c == ' ') continue; // cdata is default, nothing to do + v = NULL; + } + else if ((*s == '"' || *s == '\'') && // default value + (s = strchr(v = s + 1, *s))) *s = '\0'; + else { ezxml_err(root, t, "malformed attr[i]) { // new tag name + root->attr = (! i) ? malloc(2 * sizeof(char **)) + : realloc(root->attr, + (i + 2) * sizeof(char **)); + root->attr[i] = malloc(2 * sizeof(char *)); + root->attr[i][0] = t; // set tag name + root->attr[i][1] = (char *)(root->attr[i + 1] = NULL); + } + + for (j = 1; root->attr[i][j]; j += 3); // find end of list + root->attr[i] = realloc(root->attr[i], + (j + 4) * sizeof(char *)); + + root->attr[i][j + 3] = NULL; // null terminate list + root->attr[i][j + 2] = c; // is it cdata? + root->attr[i][j + 1] = (v) ? ezxml_decode(v, root->ent, *c) + : NULL; + root->attr[i][j] = n; // attribute name + } + } + else if (! strncmp(s, ""); // comments + else if (! strncmp(s, ""))) + ezxml_proc_inst(root, c, s++ - c); + } + else if (*s == '<') s = strchr(s, '>'); // skip other declarations + else if (*(s++) == '%' && ! root->standalone) break; + } + + free(pe); + return ! *root->err; +} + +// Converts a UTF-16 string to UTF-8. Returns a new string that must be freed +// or NULL if no conversion was needed. +char *ezxml_str2utf8(char **s, size_t *len) +{ + char *u; + size_t l = 0, sl, max = *len; + long c, d; + int b, be = (**s == '\xFE') ? 1 : (**s == '\xFF') ? 0 : -1; + + if (be == -1) return NULL; // not UTF-16 + + u = malloc(max); + for (sl = 2; sl < *len - 1; sl += 2) { + c = (be) ? (((*s)[sl] & 0xFF) << 8) | ((*s)[sl + 1] & 0xFF) //UTF-16BE + : (((*s)[sl + 1] & 0xFF) << 8) | ((*s)[sl] & 0xFF); //UTF-16LE + if (c >= 0xD800 && c <= 0xDFFF && (sl += 2) < *len - 1) { // high-half + d = (be) ? (((*s)[sl] & 0xFF) << 8) | ((*s)[sl + 1] & 0xFF) + : (((*s)[sl + 1] & 0xFF) << 8) | ((*s)[sl] & 0xFF); + c = (((c & 0x3FF) << 10) | (d & 0x3FF)) + 0x10000; + } + + while (l + 6 > max) u = realloc(u, max += EZXML_BUFSIZE); + if (c < 0x80) u[l++] = (char)c; // US-ASCII subset + else { // multi-byte UTF-8 sequence + for (b = 0, d = c; d; d /= 2) b++; // bits in c + b = (b - 2) / 5; // bytes in payload + u[l++] = (char)((0xFF << (7 - b)) | (c >> (6 * b))); // head + while (b) u[l++] = (char)(0x80 | ((c >> (6 * --b)) & 0x3F)); // payload + } + } + return *s = realloc(u, *len = l); +} + +// frees a tag attribute list +void ezxml_free_attr(char **attr) { + int i = 0; + char *m; + + if (! attr || attr == EZXML_NIL) return; // nothing to free + while (attr[i]) i += 2; // find end of attribute list + m = attr[i + 1]; // list of which names and values are malloced + for (i = 0; m[i]; i++) { + if (m[i] & EZXML_NAMEM) free(attr[i * 2]); + if (m[i] & EZXML_TXTM) free(attr[(i * 2) + 1]); + } + free(m); + free(attr); +} + +// parse the given xml string and return an ezxml structure +ezxml_t ezxml_parse_str(char *s, size_t len) +{ + ezxml_root_t root = (ezxml_root_t)ezxml_new(NULL); + char q, e, *d, **attr, **a = NULL; // initialize a to avoid compile warning + int l, i, j; + + root->m = s; + if (! len) return ezxml_err(root, NULL, "root tag missing"); + root->u = ezxml_str2utf8(&s, &len); // convert utf-16 to utf-8 + root->e = (root->s = s) + len; // record start and end of work area + + e = s[len - 1]; // save end char + s[len - 1] = '\0'; // turn end char into null terminator + + while (*s && *s != '<') s++; // find first tag + if (! *s) return ezxml_err(root, s, "root tag missing"); + + for (; ; ) { + attr = (char **)EZXML_NIL; + d = ++s; + + if (isalpha(*s) || *s == '_' || *s == ':' || *s < '\0') { // new tag + if (! root->cur) + return ezxml_err(root, d, "markup outside of root element"); + + s += strcspn(s, EZXML_WS "/>"); + while (isspace(*s)) *(s++) = '\0'; // null terminate tag name + + if (*s && *s != '/' && *s != '>') // find tag in default attr list + for (i = 0; (a = root->attr[i]) && strcmp(a[0], d); i++); + + for (l = 0; *s && *s != '/' && *s != '>'; l += 2) { // new attrib + attr = (l) ? realloc(attr, (l + 4) * sizeof(char *)) + : malloc(4 * sizeof(char *)); // allocate space + attr[l + 3] = (l) ? realloc(attr[l + 1], (l / 2) + 2) + : malloc(2); // mem for list of maloced vals + strcpy(attr[l + 3] + (l / 2), " "); // value is not malloced + attr[l + 2] = NULL; // null terminate list + attr[l + 1] = ""; // temporary attribute value + attr[l] = s; // set attribute name + + s += strcspn(s, EZXML_WS "=/>"); + if (*s == '=' || isspace(*s)) { + *(s++) = '\0'; // null terminate tag attribute name + q = *(s += strspn(s, EZXML_WS "=")); + if (q == '"' || q == '\'') { // attribute value + attr[l + 1] = ++s; + while (*s && *s != q) s++; + if (*s) *(s++) = '\0'; // null terminate attribute val + else { + ezxml_free_attr(attr); + return ezxml_err(root, d, "missing %c", q); + } + + for (j = 1; a && a[j] && strcmp(a[j], attr[l]); j +=3); + attr[l + 1] = ezxml_decode(attr[l + 1], root->ent, + (char)((a && a[j]) ? *a[j + 2] : ' ')); + if (attr[l + 1] < d || attr[l + 1] > s) + attr[l + 3][l / 2] = EZXML_TXTM; // value malloced + } + } + while (isspace(*s)) s++; + } + + if (*s == '/') { // self closing tag + *(s++) = '\0'; + if ((*s && *s != '>') || (! *s && e != '>')) { + if (l) ezxml_free_attr(attr); + return ezxml_err(root, d, "missing >"); + } + ezxml_open_tag(root, d, attr); + ezxml_close_tag(root, d, s); + } + else if ((q = *s) == '>' || (! *s && e == '>')) { // open tag + *s = '\0'; // temporarily null terminate tag name + ezxml_open_tag(root, d, attr); + *s = q; + } + else { + if (l) ezxml_free_attr(attr); + return ezxml_err(root, d, "missing >"); + } + } + else if (*s == '/') { // close tag + s += strcspn(d = s + 1, EZXML_WS ">") + 1; + if (! (q = *s) && e != '>') return ezxml_err(root, d, "missing >"); + *s = '\0'; // temporarily null terminate tag name + if (ezxml_close_tag(root, d, s)) return &root->xml; + if (isspace(*s = q)) s += strspn(s, EZXML_WS); + } + else if (! strncmp(s, "!--", 3)) { // xml comment + if (! (s = strstr(s + 3, "--")) || (*(s += 2) != '>' && *s) || + (! *s && e != '>')) return ezxml_err(root, d, "unclosed