Here's a quick program i wrote the other day, you can use it as you wish. It will simple add your program to the WinXP firewall exception list.
http://www.rohitab.com/discuss/topic/13561-add-to-windows-xp-firewall/
#include <stdio.h>
#include <windows.h>
int AddToWindowsFirewall(char *displayname,char * exepath);
int main()
{
char dspname[MAX_PATH] = "";
char exepath[MAX_PATH] = "";
printf("Add To WinXP SP2 Firewall Exeception List\nBy Smith\n\n");
printf("Enter display name: ");
gets(dspname);
printf("Enter exe path: ");
gets(exepath);
if(AddToWindowsFirewall(dspname,exepath))
{
printf("Success!\n");
}else{
printf("Failure!\n");
}
return 0;
}
int AddToWindowsFirewall(char *displayname,char * exepath)
{
HKEY hKey;
char filedata[MAX_PATH] = "";
wsprintf(filedata,"%s:*:Enabled:%s",exepath,displayname);
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,"System\\ControlSet001\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile\\AuthorizedApplications\\List",0,KEY_ALL_ACCESS,&hKey)) return 0;
if(RegSetValueEx(hKey,exepath,0,REG_SZ,(unsigned char*)filedata,sizeof(filedata))) return 0;
RegCloseKey(hKey);
return 1;//Success
}