返回首页

您好
我怎么能:
关闭/防火墙
的Visual C MFC 2010
所有其他代码,did'nt工作真正
多谢

回答

评论会员:游客 时间:2012/02/04
Vivek克里希纳穆尔蒂:以在这里看文章...在VB中更难得到它的文章到c。imgsrc=此外,您可以参考这一个。{A1}]
TRK3
评论会员:游客 时间:2012/02/04
我无法找到原来的链接,我得到了下面的代码,但我用我的项目之一,以更改Windows防火墙:codeprelang="c++"spanclass="code-comment"/*/spanspanclass="code-comment"Copyright(c)MicrosoftCorporation SYNOPSIS SamplecodefortheWindowsFirewallCOMinterface.*//span spanclass="code-preprocessor"#include/spanspanclass="code-preprocessor"spanclass="code-string""/spanspanclass="code-string"stdafx.h"/span/spanspanclass="code-preprocessor"#include/spanspanclass="code-preprocessor"spanclass="code-keyword"</spanspanclass="code-leadattribute"windows.h/spanspanclass="code-attribute"#include/spanspanclass="code-attribute"<crtdbg.h/spanspanclass="code-attribute"#include/spanspanclass="code-attribute"<netfw.h/spanspanclass="code-attribute"#include/spanspanclass="code-attribute"<objbase.h/spanspanclass="code-attribute"#include/spanspanclass="code-attribute"<oleauto.h/spanspanclass="code-attribute"#include/spanspanclass="code-attribute"<stdio.h/span spanclass="code-attribute"HRESULT/spanspanclass="code-attribute"WindowsFirewallInitialize(OUT/spanspanclass="code-attribute"INetFwProfile**/spanspanclass="code-attribute"fwProfile)/spanspanclass="code-attribute"{/spanspanclass="code-attribute"HRESULT/spanspanclass="code-attribute"hr/spanspanclass="code-keyword"=/spanspanclass="code-attribute"S_OK;/spanspanclass="code-attribute"INetFwMgr*/spanspanclass="code-attribute"fwMgr/spanspanclass="code-keyword"=/spanspanclass="code-attribute"NULL;/spanspanclass="code-attribute"INetFwPolicy*/spanspanclass="code-attribute"fwPolicy/spanspanclass="code-keyword"=/spanspanclass="code-attribute"NULL;/span spanclass="code-attribute"_ASSERT(fwProfile/spanspanclass="code-attribute"!/spanspanclass="code-keyword"=/spanspanclass="code-attribute"NULL);/span spanclass="code-attribute"*fwProfile/spanspanclass="code-keyword"=/spanspanclass="code-attribute"NULL;/span spanclass="code-keyword"//spanspanclass="code-keyword"//spanspanclass="code-attribute"Create/spanspanclass="code-attribute"an/spanspanclass="code-attribute"instance/spanspanclass="code-attribute"of/spanspanclass="code-attribute"the/spanspanclass="code-attribute"firewall/spanspanclass="code-attribute"settings/spanspanclass="code-attribute"manager./spanspanclass="code-attribute"hr/spanspanclass="code-keyword"=/spanspanclass="code-attribute"CoCreateInstance(/spanspanclass="code-attribute"__uuidof(NetFwMgr),/spanspanclass="code-attribute"NULL,/spanspanclass="code-attribute"CLSCTX_INPROC_SERVER,/spanspanclass="code-attribute"__uuidof(INetFwMgr),/spanspanclass="code-attribute"(void**)&fwMgr/spanspanclass="code-attribute");/spanspanclass="code-attribute"if/spanspanclass="code-attribute"(FAILED(hr))/spanspanclass="code-attribute"{/spanspanclass="code-attribute"printf("CoCreateInstance/spanspanclass="code-attribute"failed:/spanspanclass="code-attribute"0x%08lx\n",/spanspanclass="code-attribute"hr);/spanspanclass="code-attribute"goto/spanspanclass="code-attribute"error;/spanspanclass="code-attribute"}/span spanclass="code-keyword"//spanspanclass="code-keyword"//spanspanclass="code-attribute"Retrieve/spanspanclass="code-attribute"the/spanspanclass="code-attribute"local/spanspanclass="code-attribute"firewall/spanspanclass="code-attribute"policy./spanspanclass="code-attribute"hr/spanspanclass="code-keyword"=/spanspanclass="code-attribute"fwMgr-/spanspanclass="code-keyword">/spanget_LocalPolicy(&fwPolicy);/spanspanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"get_LocalPolicyfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Retrievethefirewallprofilecurrentlyineffect./spanhr=fwPolicy->get_CurrentProfile(fwProfile);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"get_CurrentProfilefailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} error: spanclass="code-comment"///spanspanclass="code-comment"Releasethelocalfirewallpolicy./spanspanclass="code-keyword"if/span(fwPolicy!=NULL){fwPolicy->Release();} spanclass="code-comment"///spanspanclass="code-comment"Releasethefirewallsettingsmanager./spanspanclass="code-keyword"if/span(fwMgr!=NULL){fwMgr->Release();} spanclass="code-keyword"return/spanhr;} spanclass="code-keyword"void/spanWindowsFirewallCleanup(ININetFwProfile*fwProfile){spanclass="code-comment"///spanspanclass="code-comment"Releasethefirewallprofile./spanspanclass="code-keyword"if/span(fwProfile!=NULL){fwProfile->Release();}} HRESULTWindowsFirewallIsOn(ININetFwProfile*fwProfile,OUTBOOL*fwOn){HRESULThr=S_OK;VARIANT_BOOLfwEnabled; _ASSERT(fwProfile!=NULL);_ASSERT(fwOn!=NULL); *fwOn=FALSE; spanclass="code-comment"///spanspanclass="code-comment"Getthecurrentstateofthefirewall./spanhr=fwProfile->get_FirewallEnabled(&fwEnabled);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"get_FirewallEnabledfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Checktoseeifthefirewallison./spanspanclass="code-keyword"if/span(fwEnabled!=VARIANT_FALSE){*fwOn=TRUE;printf(spanclass="code-string""/spanspanclass="code-string"Thefirewallison.\n"/span);}spanclass="code-keyword"else/span{printf(spanclass="code-string""/spanspanclass="code-string"Thefirewallisoff.\n"/span);} error: spanclass="code-keyword"return/spanhr;} HRESULTWindowsFirewallTurnOn(ININetFwProfile*fwProfile){HRESULThr=S_OK;BOOLfwOn; _ASSERT(fwProfile!=NULL); spanclass="code-comment"///spanspanclass="code-comment"Checktoseeifthefirewallisoff./spanhr=WindowsFirewallIsOn(fwProfile,&fwOn);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"WindowsFirewallIsOnfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Ifitis,turniton./spanspanclass="code-keyword"if/span(!fwOn){spanclass="code-comment"///spanspanclass="code-comment"Turnthefirewallon./spanhr=fwProfile->put_FirewallEnabled(VARIANT_TRUE);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"put_FirewallEnabledfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} printf(spanclass="code-string""/spanspanclass="code-string"Thefirewallisnowon.\n"/span);} error: spanclass="code-keyword"return/spanhr;} HRESULTWindowsFirewallTurnOff(ININetFwProfile*fwProfile){HRESULThr=S_OK;BOOLfwOn; _ASSERT(fwProfile!=NULL); spanclass="code-comment"///spanspanclass="code-comment"Checktoseeifthefirewallison./spanhr=WindowsFirewallIsOn(fwProfile,&fwOn);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"WindowsFirewallIsOnfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Ifitis,turnitoff./spanspanclass="code-keyword"if/span(fwOn){spanclass="code-comment"///spanspanclass="code-comment"Turnthefirewalloff./spanhr=fwProfile->put_FirewallEnabled(VARIANT_FALSE);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"put_FirewallEnabledfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} printf(spanclass="code-string""/spanspanclass="code-string"Thefirewallisnowoff.\n"/span);} error: spanclass="code-keyword"return/spanhr;} HRESULTWindowsFirewallAppIsEnabled(ININetFwProfile*fwProfile,INspanclass="code-keyword"const/spanspanclass="code-keyword"wchar_t/span*fwProcessImageFileName,OUTBOOL*fwAppEnabled){HRESULThr=S_OK;BSTRfwBstrProcessImageFileName=NULL;VARIANT_BOOLfwEnabled;INetFwAuthorizedApplication*fwApp=NULL;INetFwAuthorizedApplications*fwApps=NULL; _ASSERT(fwProfile!=NULL);_ASSERT(fwProcessImageFileName!=NULL);_ASSERT(fwAppEnabled!=NULL); *fwAppEnabled=FALSE; spanclass="code-comment"///spanspanclass="code-comment"Retrievetheauthorizedapplicationcollection./spanhr=fwProfile->get_AuthorizedApplications(&fwApps);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"get_AuthorizedApplicationsfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"AllocateaBSTRfortheprocessimagefilename./spanfwBstrProcessImageFileName=SysAllocString(fwProcessImageFileName);spanclass="code-keyword"if/span(fwBstrProcessImageFileName==NULL){hr=E_OUTOFMEMORY;printf(spanclass="code-string""/spanspanclass="code-string"SysAllocStringfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Attempttoretrievetheauthorizedapplication./spanhr=fwApps->Item(fwBstrProcessImageFileName,&fwApp);spanclass="code-keyword"if/span(SUCCEEDED(hr)){spanclass="code-comment"///spanspanclass="code-comment"Findoutiftheauthorizedapplicationisenabled./spanhr=fwApp->get_Enabled(&fwEnabled);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"get_Enabledfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-keyword"if/span(fwEnabled!=VARIANT_FALSE){spanclass="code-comment"///spanspanclass="code-comment"Theauthorizedapplicationisenabled./span*fwAppEnabled=TRUE; printf(spanclass="code-string""/spanspanclass="code-string"Authorizedapplication%lSisenabledinthefirewall.\n"/span,fwProcessImageFileName);}spanclass="code-keyword"else/span{printf(spanclass="code-string""/spanspanclass="code-string"Authorizedapplication%lSisdisabledinthefirewall.\n"/span,fwProcessImageFileName);}}spanclass="code-keyword"else/span{spanclass="code-comment"///spanspanclass="code-comment"Theauthorizedapplicationwasnotinthecollection./spanhr=S_OK; printf(spanclass="code-string""/spanspanclass="code-string"Authorizedapplication%lSisdisabledinthefirewall.\n"/span,fwProcessImageFileName);} error: spanclass="code-comment"///spanspanclass="code-comment"FreetheBSTR./spanSysFreeString(fwBstrProcessImageFileName); spanclass="code-comment"///spanspanclass="code-comment"Releasetheauthorizedapplicationinstance./spanspanclass="code-keyword"if/span(fwApp!=NULL){fwApp->Release();} spanclass="code-comment"///spanspanclass="code-comment"Releasetheauthorizedapplicationcollection./spanspanclass="code-keyword"if/span(fwApps!=NULL){fwApps->Release();} spanclass="code-keyword"return/spanhr;} HRESULTWindowsFirewallAddApp(ININetFwProfile*fwProfile,INspanclass="code-keyword"const/spanspanclass="code-keyword"wchar_t/span*fwProcessImageFileName,INspanclass="code-keyword"const/spanspanclass="code-keyword"wchar_t/span*fwName){HRESULThr=S_OK;BOOLfwAppEnabled;BSTRfwBstrName=NULL;BSTRfwBstrProcessImageFileName=NULL;INetFwAuthorizedApplication*fwApp=NULL;INetFwAuthorizedApplications*fwApps=NULL; _ASSERT(fwProfile!=NULL);_ASSERT(fwProcessImageFileName!=NULL);_ASSERT(fwName!=NULL); spanclass="code-comment"///spanspanclass="code-comment"Firstchecktoseeiftheapplicationisalreadyauthorized./spanhr=WindowsFirewallAppIsEnabled(fwProfile,fwProcessImageFileName,&fwAppEnabled);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"WindowsFirewallAppIsEnabledfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Onlyaddtheapplicationifitisn'talreadyauthorized./spanspanclass="code-keyword"if/span(!fwAppEnabled){spanclass="code-comment"///spanspanclass="code-comment"Retrievetheauthorizedapplicationcollection./spanhr=fwProfile->get_AuthorizedApplications(&fwApps);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"get_AuthorizedApplicationsfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Createaninstanceofanauthorizedapplication./spanhr=CoCreateInstance(spanclass="code-keyword"__uuidof/span(NetFwAuthorizedApplication),NULL,CLSCTX_INPROC_SERVER,spanclass="code-keyword"__uuidof/span(INetFwAuthorizedApplication),(spanclass="code-keyword"void/span**)&fwApp);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"CoCreateInstancefailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"AllocateaBSTRfortheprocessimagefilename./spanfwBstrProcessImageFileName=SysAllocString(fwProcessImageFileName);spanclass="code-keyword"if/span(fwBstrProcessImageFileName==NULL){hr=E_OUTOFMEMORY;printf(spanclass="code-string""/spanspanclass="code-string"SysAllocStringfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Settheprocessimagefilename./spanhr=fwApp->put_ProcessImageFileName(fwBstrProcessImageFileName);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"put_ProcessImageFileNamefailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"AllocateaBSTRfortheapplicationfriendlyname./spanfwBstrName=SysAllocString(fwName);spanclass="code-keyword"if/span(SysStringLen(fwBstrName)==spanclass="code-digit"0/span){hr=E_OUTOFMEMORY;printf(spanclass="code-string""/spanspanclass="code-string"SysAllocStringfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Settheapplicationfriendlyname./spanhr=fwApp->put_Name(fwBstrName);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"put_Namefailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Addtheapplicationtothecollection./spanhr=fwApps->Add(fwApp);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"Addfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} printf(spanclass="code-string""/spanspanclass="code-string"Authorizedapplication%lSisnowenabledinthefirewall.\n"/span,fwProcessImageFileName);} error: spanclass="code-comment"///spanspanclass="code-comment"FreetheBSTRs./spanSysFreeString(fwBstrName);SysFreeString(fwBstrProcessImageFileName); spanclass="code-comment"///spanspanclass="code-comment"Releasetheauthorizedapplicationinstance./spanspanclass="code-keyword"if/span(fwApp!=NULL){fwApp->Release();} spanclass="code-comment"///spanspanclass="code-comment"Releasetheauthorizedapplicationcollection./spanspanclass="code-keyword"if/span(fwApps!=NULL){fwApps->Release();} spanclass="code-keyword"return/spanhr;} HRESULTWindowsFirewallPortIsEnabled(ININetFwProfile*fwProfile,INLONGportNumber,INNET_FW_IP_PROTOCOLipProtocol,OUTBOOL*fwPortEnabled){HRESULThr=S_OK;VARIANT_BOOLfwEnabled;INetFwOpenPort*fwOpenPort=NULL;INetFwOpenPorts*fwOpenPorts=NULL; _ASSERT(fwProfile!=NULL);_ASSERT(fwPortEnabled!=NULL); *fwPortEnabled=FALSE; spanclass="code-comment"///spanspanclass="code-comment"Retrievethegloballyopenportscollection./spanhr=fwProfile->get_GloballyOpenPorts(&fwOpenPorts);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"get_GloballyOpenPortsfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Attempttoretrievethegloballyopenport./spanhr=fwOpenPorts->Item(portNumber,ipProtocol,&fwOpenPort);spanclass="code-keyword"if/span(SUCCEEDED(hr)){spanclass="code-comment"///spanspanclass="code-comment"Findoutifthegloballyopenportisenabled./spanhr=fwOpenPort->get_Enabled(&fwEnabled);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"get_Enabledfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-keyword"if/span(fwEnabled!=VARIANT_FALSE){spanclass="code-comment"///spanspanclass="code-comment"Thegloballyopenportisenabled./span*fwPortEnabled=TRUE; printf(spanclass="code-string""/spanspanclass="code-string"Port%ldisopeninthefirewall.\n"/span,portNumber);}spanclass="code-keyword"else/span{printf(spanclass="code-string""/spanspanclass="code-string"Port%ldisnotopeninthefirewall.\n"/span,portNumber);}}spanclass="code-keyword"else/span{spanclass="code-comment"///spanspanclass="code-comment"Thegloballyopenportwasnotinthecollection./spanhr=S_OK; printf(spanclass="code-string""/spanspanclass="code-string"Port%ldisnotopeninthefirewall.\n"/span,portNumber);} error: spanclass="code-comment"///spanspanclass="code-comment"Releasethegloballyopenport./spanspanclass="code-keyword"if/span(fwOpenPort!=NULL){fwOpenPort->Release();} spanclass="code-comment"///spanspanclass="code-comment"Releasethegloballyopenportscollection./spanspanclass="code-keyword"if/span(fwOpenPorts!=NULL){fwOpenPorts->Release();} spanclass="code-keyword"return/spanhr;} HRESULTWindowsFirewallPortAdd(ININetFwProfile*fwProfile,INLONGportNumber,INNET_FW_IP_PROTOCOLipProtocol,INspanclass="code-keyword"const/spanspanclass="code-keyword"wchar_t/span*name){HRESULThr=S_OK;BOOLfwPortEnabled;BSTRfwBstrName=NULL;INetFwOpenPort*fwOpenPort=NULL;INetFwOpenPorts*fwOpenPorts=NULL; _ASSERT(fwProfile!=NULL);_ASSERT(name!=NULL); spanclass="code-comment"///spanspanclass="code-comment"Firstchecktoseeiftheportisalreadyadded./spanhr=WindowsFirewallPortIsEnabled(fwProfile,portNumber,ipProtocol,&fwPortEnabled);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"WindowsFirewallPortIsEnabledfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Onlyaddtheportifitisn'talreadyadded./spanspanclass="code-keyword"if/span(!fwPortEnabled){spanclass="code-comment"///spanspanclass="code-comment"Retrievethecollectionofgloballyopenports./spanhr=fwProfile->get_GloballyOpenPorts(&fwOpenPorts);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"get_GloballyOpenPortsfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Createaninstanceofanopenport./spanhr=CoCreateInstance(spanclass="code-keyword"__uuidof/span(NetFwOpenPort),NULL,CLSCTX_INPROC_SERVER,spanclass="code-keyword"__uuidof/span(INetFwOpenPort),(spanclass="code-keyword"void/span**)&fwOpenPort);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"CoCreateInstancefailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Settheportnumber./spanhr=fwOpenPort->put_Port(portNumber);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"put_Portfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"SettheIPprotocol./spanhr=fwOpenPort->put_Protocol(ipProtocol);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"put_Protocolfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"AllocateaBSTRforthefriendlynameoftheport./spanfwBstrName=SysAllocString(name);spanclass="code-keyword"if/span(SysStringLen(fwBstrName)==spanclass="code-digit"0/span){hr=E_OUTOFMEMORY;printf(spanclass="code-string""/spanspanclass="code-string"SysAllocStringfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Setthefriendlynameoftheport./spanhr=fwOpenPort->put_Name(fwBstrName);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"put_Namefailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"Openstheportandaddsittothecollection./spanhr=fwOpenPorts->Add(fwOpenPort);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"Addfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} printf(spanclass="code-string""/spanspanclass="code-string"Port%ldisnowopeninthefirewall.\n"/span,portNumber);} error: spanclass="code-comment"///spanspanclass="code-comment"FreetheBSTR./spanSysFreeString(fwBstrName); spanclass="code-comment"///spanspanclass="code-comment"Releasetheopenportinstance./spanspanclass="code-keyword"if/span(fwOpenPort!=NULL){fwOpenPort->Release();} spanclass="code-comment"///spanspanclass="code-comment"Releasethegloballyopenportscollection./spanspanclass="code-keyword"if/span(fwOpenPorts!=NULL){fwOpenPorts->Release();} spanclass="code-keyword"return/spanhr;}  spanclass="code-comment"///spanspanclass="code-comment"int__cdeclwmain(intargc,wchar_t*argv[])/spanspanclass="code-comment"///spanspanclass="code-comment"{/spanspanclass="code-comment"///spanspanclass="code-comment"HRESULThr=S_OK;/spanspanclass="code-comment"///spanspanclass="code-comment"HRESULTcomInit=E_FAIL;/spanspanclass="code-comment"///spanspanclass="code-comment"INetFwProfile*fwProfile=NULL;/spanspanclass="code-comment"///spanspanclass="code-comment"/spanspanclass="code-comment"///spanspanclass="code-comment"//InitializeCOM./spanspanclass="code-comment"///spanspanclass="code-comment"comInit=CoInitializeEx(/spanspanclass="code-comment"///spanspanclass="code-comment"0,/spanspanclass="code-comment"///spanspanclass="code-comment"COINIT_APARTMENTTHREADED|COINIT_DISABLE_OLE1DDE/spanspanclass="code-comment"///spanspanclass="code-comment");/spanspanclass="code-comment"///spanspanclass="code-comment"/spanspanclass="code-comment"///spanspanclass="code-comment"//IgnoreRPC_E_CHANGED_MODE;thisjustmeansthatCOMhasalreadybeen/spanspanclass="code-comment"///spanspanclass="code-comment"//initializedwithadifferentmode.Sincewedon'tcarewhatthemodeis,/spanspanclass="code-comment"///spanspanclass="code-comment"//we'lljustusetheexistingmode./spanspanclass="code-comment"///spanspanclass="code-comment"if(comInit!=RPC_E_CHANGED_MODE)/spanspanclass="code-comment"///spanspanclass="code-comment"{/spanspanclass="code-comment"///spanspanclass="code-comment"hr=comInit;/spanspanclass="code-comment"///spanspanclass="code-comment"if(FAILED(hr))/spanspanclass="code-comment"///spanspanclass="code-comment"{/spanspanclass="code-comment"///spanspanclass="code-comment"printf("CoInitializeExfailed:0x%08lx\n",hr);/spanspanclass="code-comment"///spanspanclass="code-comment"gotoerror;/spanspanclass="code-comment"///spanspanclass="code-comment"}/spanspanclass="code-comment"///spanspanclass="code-comment"}/spanspanclass="code-comment"///spanspanclass="code-comment"/spanspanclass="code-comment"///spanspanclass="code-comment"//Retrievethefirewallprofilecurrentlyineffect./spanspanclass="code-comment"///spanspanclass="code-comment"hr=WindowsFirewallInitialize(&fwProfile);/spanspanclass="code-comment"///spanspanclass="code-comment"if(FAILED(hr))/spanspanclass="code-comment"///spanspanclass="code-comment"{/spanspanclass="code-comment"///spanspanclass="code-comment"printf("WindowsFirewallInitializefailed:0x%08lx\n",hr);/spanspanclass="code-comment"///spanspanclass="code-comment"gotoerror;/spanspanclass="code-comment"///spanspanclass="code-comment"}/spanspanclass="code-comment"///spanspanclass="code-comment"/spanspanclass="code-comment"///spanspanclass="code-comment"//Turnoffthefirewall./spanspanclass="code-comment"///spanspanclass="code-comment"hr=WindowsFirewallTurnOff(fwProfile);/spanspanclass="code-comment"///spanspanclass="code-comment"if(FAILED(hr))/spanspanclass="code-comment"///spanspanclass="code-comment"{/spanspanclass="code-comment"///spanspanclass="code-comment"printf("WindowsFirewallTurnOfffailed:0x%08lx\n",hr);/spanspanclass="code-comment"///spanspanclass="code-comment"gotoerror;/spanspanclass="code-comment"///spanspanclass="code-comment"}/spanspanclass="code-comment"///spanspanclass="code-comment"/spanspanclass="code-comment"///spanspanclass="code-comment"//Turnonthefirewall./spanspanclass="code-comment"///spanspanclass="code-comment"hr=WindowsFirewallTurnOn(fwProfile);/spanspanclass="code-comment"///spanspanclass="code-comment"if(FAILED(hr))/spanspanclass="code-comment"///spanspanclass="code-comment"{/spanspanclass="code-comment"///spanspanclass="code-comment"printf("WindowsFirewallTurnOnfailed:0x%08lx\n",hr);/spanspanclass="code-comment"///spanspanclass="code-comment"gotoerror;/spanspanclass="code-comment"///spanspanclass="code-comment"}/spanspanclass="code-comment"///spanspanclass="code-comment"/spanspanclass="code-comment"///spanspanclass="code-comment"//AddWindowsMessengertotheauthorizedapplicationcollection./spanspanclass="code-comment"///spanspanclass="code-comment"hr=WindowsFirewallAddApp(/spanspanclass="code-comment"///spanspanclass="code-comment"fwProfile,/spanspanclass="code-comment"///spanspanclass="code-comment"L"%ProgramFiles%\\Messenger\\msmsgs.exe",/spanspanclass="code-comment"///spanspanclass="code-comment"L"WindowsMessenger"/spanspanclass="code-comment"///spanspanclass="code-comment");/spanspanclass="code-comment"///spanspanclass="code-comment"if(FAILED(hr))/spanspanclass="code-comment"///spanspanclass="code-comment"{/spanspanclass="code-comment"///spanspanclass="code-comment"printf("WindowsFirewallAddAppfailed:0x%08lx\n",hr);/spanspanclass="code-comment"///spanspanclass="code-comment"gotoerror;/spanspanclass="code-comment"///spanspanclass="code-comment"}/spanspanclass="code-comment"///spanspanclass="code-comment"/spanspanclass="code-comment"///spanspanclass="code-comment"//AddTCP::80tolistofgloballyopenports./spanspanclass="code-comment"///spanspanclass="code-comment"hr=WindowsFirewallPortAdd(fwProfile,80,NET_FW_IP_PROTOCOL_TCP,L"WWW");/spanspanclass="code-comment"///spanspanclass="code-comment"if(FAILED(hr))/spanspanclass="code-comment"///spanspanclass="code-comment"{/spanspanclass="code-comment"///spanspanclass="code-comment"printf("WindowsFirewallPortAddfailed:0x%08lx\n",hr);/spanspanclass="code-comment"///spanspanclass="code-comment"gotoerror;/spanspanclass="code-comment"///spanspanclass="code-comment"}/spanspanclass="code-comment"///spanspanclass="code-comment"/spanspanclass="code-comment"///spanspanclass="code-comment"error:/spanspanclass="code-comment"///spanspanclass="code-comment"/spanspanclass="code-comment"///spanspanclass="code-comment"//Releasethefirewallprofile./spanspanclass="code-comment"///spanspanclass="code-comment"WindowsFirewallCleanup(fwProfile);/spanspanclass="code-comment"///spanspanclass="code-comment"/spanspanclass="code-comment"///spanspanclass="code-comment"//UninitializeCOM./spanspanclass="code-comment"///spanspanclass="code-comment"if(SUCCEEDED(comInit))/spanspanclass="code-comment"///spanspanclass="code-comment"{/spanspanclass="code-comment"///spanspanclass="code-comment"CoUninitialize();/spanspanclass="code-comment"///spanspanclass="code-comment"}/spanspanclass="code-comment"///spanspanclass="code-comment"/spanspanclass="code-comment"///spanspanclass="code-comment"return0;/spanspanclass="code-comment"///spanspanclass="code-comment"}/span spanclass="code-keyword"bool/spanAddFirewallException(spanclass="code-keyword"const/spanspanclass="code-keyword"wchar_t/span*fwProcessImageFileName,spanclass="code-keyword"const/spanspanclass="code-keyword"wchar_t/span*fwDisplayName){HRESULThr=S_OK;HRESULTcomInit=E_FAIL;INetFwProfile*fwProfile=NULL; spanclass="code-comment"///spanspanclass="code-comment"InitializeCOM./spancomInit=CoInitializeEx(spanclass="code-digit"0/span,COINIT_APARTMENTTHREADED|COINIT_DISABLE_OLE1DDE); spanclass="code-comment"///spanspanclass="code-comment"IgnoreRPC_E_CHANGED_MODE;thisjustmeansthatCOMhasalreadybeen/spanspanclass="code-comment"///spanspanclass="code-comment"initializedwithadifferentmode.Sincewedon'tcarewhatthemodeis,/spanspanclass="code-comment"///spanspanclass="code-comment"we'lljustusetheexistingmode./spanspanclass="code-keyword"if/span(comInit!=RPC_E_CHANGED_MODE){hr=comInit;spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"CoInitializeExfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;}} spanclass="code-comment"///spanspanclass="code-comment"Retrievethefirewallprofilecurrentlyineffect./spanhr=WindowsFirewallInitialize(&fwProfile);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"WindowsFirewallInitializefailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} spanclass="code-comment"///spanspanclass="code-comment"AddWindowsMessengertotheauthorizedapplicationcollection./spanhr=WindowsFirewallAddApp(fwProfile,fwProcessImageFileName,fwDisplayName);spanclass="code-keyword"if/span(FAILED(hr)){printf(spanclass="code-string""/spanspanclass="code-string"WindowsFirewallAddAppfailed:0x%08lx\n"/span,hr);spanclass="code-keyword"goto/spanerror;} error: spanclass="code-comment"///spanspanclass="code-comment"Releasethefirewallprofile./spanWindowsFirewallCleanup(fwProfile); spanclass="code-comment"///spanspanclass="code-comment"UninitializeCOM./spanspanclass="code-keyword"if/span(SUCCEEDED(comInit)){CoUninitialize();} spanclass="code-keyword"return/span!FAILED(hr);}</stdio.h</oleauto.h</objbase.h</netfw.h</crtdbg.h</windows.h/pre/code