Index: trunk/ab5.0/abdev/abdev/WindowControl.cpp
===================================================================
--- trunk/ab5.0/abdev/abdev/WindowControl.cpp	(revision 613)
+++ trunk/ab5.0/abdev/abdev/WindowControl.cpp	(revision 615)
@@ -15,13 +15,13 @@
 int GetWndInfoNum(char *name){
 	for( int i=0;i<static_cast<int>(ProjectInfo.windowInfos.size());i++){
-		if(lstrcmpi(name,ProjectInfo.windowInfos[i].name)==0) return i;
+		if(lstrcmpi(name,ProjectInfo.windowInfos[i]->name)==0) return i;
 	}
 	return -1;
 }
-WINDOW_INFO *GetWndInfo( char *name )
+WindowInfo *GetWndInfo( char *name )
 {
-	BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+	BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 	{
-		if(lstrcmpi(name,windowInfo.name)==0) return &windowInfo;
+		if(lstrcmpi(name,pWindowInfo->name)==0) return pWindowInfo;
 	}
 	return NULL;
@@ -86,5 +86,5 @@
 
 	for(i3--;i3>=0;i3--){
-		pChildInfo=&ProjectInfo.windowInfos[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[i3]];
+		pChildInfo=&ProjectInfo.windowInfos[WndInfoNum]->pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[i3]];
 
 		MemSize+=lstrlen(pChildInfo->IdName)+1+
@@ -352,5 +352,5 @@
 	return 1;
 }
-BOOL GetNotifyCommandByItemMessage(WINDOW_INFO *pWindowInfo,ITEMEVENTINFO *pItemEventInfo,char *Command,char *spaces){
+BOOL GetNotifyCommandByItemMessage(WindowInfo *pWindowInfo,ITEMEVENTINFO *pItemEventInfo,char *Command,char *spaces){
 	int i,i2,i3,sw;
 	char temporary[MAX_PATH];
@@ -429,5 +429,5 @@
 	}
 }
-void GetCommandByItemMessage(WINDOW_INFO *pWindowInfo,ITEMEVENTINFO *pItemEventInfo,char *Command,char *spaces){
+void GetCommandByItemMessage(WindowInfo *pWindowInfo,ITEMEVENTINFO *pItemEventInfo,char *Command,char *spaces){
 	extern HANDLE hHeap;
 	int i,i2,i3;
@@ -523,5 +523,5 @@
 	char temporary[MAX_PATH],*temp2;
 
-	WINDOW_INFO *pWindowInfo = &ProjectInfo.windowInfos[WndInfoNum];
+	WindowInfo *pWindowInfo = ProjectInfo.windowInfos[WndInfoNum];
 
 	Command[0]=0;
@@ -1003,11 +1003,11 @@
 	i4=1000;
 	i5=0;
-	BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+	BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 	{
-		for(i3=0;i3<windowInfo.NumberOfChildWindows;i3++){
+		for(i3=0;i3<pWindowInfo->NumberOfChildWindows;i3++){
 
 			//重複チェック
 			for(i6=0,sw1=0;i6<i5;i6++){
-				if(lstrcmpi(ppNames[i6],windowInfo.pChildInfo[i3].IdName)==0){
+				if(lstrcmpi(ppNames[i6],pWindowInfo->pChildInfo[i3].IdName)==0){
 					sw1=1;
 					break;
@@ -1017,8 +1017,8 @@
 
 			ppNames=(char **)HeapReAlloc(hHeap,0,ppNames,sizeof(char *)*(i5+1));
-			ppNames[i5]=windowInfo.pChildInfo[i3].IdName;
+			ppNames[i5]=pWindowInfo->pChildInfo[i3].IdName;
 			i5++;
 
-			sprintf(buffer+i2,"Const %s=%d\r\n",windowInfo.pChildInfo[i3].IdName,i4);
+			sprintf(buffer+i2,"Const %s=%d\r\n",pWindowInfo->pChildInfo[i3].IdName,i4);
 			i2+=lstrlen(buffer+i2);
 			i4++;
@@ -1040,26 +1040,26 @@
 
 	//ハンドル変数を定義
-	BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+	BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 	{
-		sprintf(buffer+i2,"Dim %s As HWND\r\n",windowInfo.HandleName);
-		i2+=lstrlen(buffer+i2);
-		sprintf(buffer+i2,"Dim hFont_%s As HFONT\r\n",windowInfo.name);
+		sprintf(buffer+i2,"Dim %s As HWND\r\n",pWindowInfo->HandleName);
+		i2+=lstrlen(buffer+i2);
+		sprintf(buffer+i2,"Dim hFont_%s As HFONT\r\n",pWindowInfo->name);
 		i2+=lstrlen(buffer+i2);
 		sprintf(buffer+i2,"hFont_%s=CreateFont(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\"%s\")\r\n",
-			windowInfo.name,
-			windowInfo.LogFont.lfHeight,
-			windowInfo.LogFont.lfWidth,
-			windowInfo.LogFont.lfEscapement,
-			windowInfo.LogFont.lfOrientation,
-			windowInfo.LogFont.lfWeight,
-			windowInfo.LogFont.lfItalic,
-			windowInfo.LogFont.lfUnderline,
-			windowInfo.LogFont.lfStrikeOut,
-			windowInfo.LogFont.lfCharSet,
-			windowInfo.LogFont.lfOutPrecision,
-			windowInfo.LogFont.lfClipPrecision,
-			windowInfo.LogFont.lfQuality,
-			windowInfo.LogFont.lfPitchAndFamily,
-			windowInfo.LogFont.lfFaceName);
+			pWindowInfo->name,
+			pWindowInfo->LogFont.lfHeight,
+			pWindowInfo->LogFont.lfWidth,
+			pWindowInfo->LogFont.lfEscapement,
+			pWindowInfo->LogFont.lfOrientation,
+			pWindowInfo->LogFont.lfWeight,
+			pWindowInfo->LogFont.lfItalic,
+			pWindowInfo->LogFont.lfUnderline,
+			pWindowInfo->LogFont.lfStrikeOut,
+			pWindowInfo->LogFont.lfCharSet,
+			pWindowInfo->LogFont.lfOutPrecision,
+			pWindowInfo->LogFont.lfClipPrecision,
+			pWindowInfo->LogFont.lfQuality,
+			pWindowInfo->LogFont.lfPitchAndFamily,
+			pWindowInfo->LogFont.lfFaceName);
 		i2+=lstrlen(buffer+i2);
 
@@ -1076,20 +1076,20 @@
 	i2+=lstrlen(buffer+i2);
 	i=0;
-	BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+	BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 	{
-		if(windowInfo.bgColor<=0&&
-			windowInfo.bgColor!=-(int)RGB(255,255,255)&&
-			windowInfo.bgColor!=-(int)RGB(0,0,0)){
+		if(pWindowInfo->bgColor<=0&&
+			pWindowInfo->bgColor!=-(int)RGB(255,255,255)&&
+			pWindowInfo->bgColor!=-(int)RGB(0,0,0)){
 				sprintf(buffer+i2,"Dim _RadSys_hBackBrush%d As HBRUSH\r\n",i);
 				i2+=lstrlen(buffer+i2);
-				sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreateSolidBrush(%d)\r\n",i,-windowInfo.bgColor);
+				sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreateSolidBrush(%d)\r\n",i,-pWindowInfo->bgColor);
 				i2+=lstrlen(buffer+i2);
 		}
-		if(windowInfo.bgColor>=0x1000){
+		if(pWindowInfo->bgColor>=0x1000){
 				sprintf(buffer+i2,"Dim _RadSys_hBackBrush%d As HBRUSH\r\n",i);
 				i2+=lstrlen(buffer+i2);
 				sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreatePatternBrush(LoadImage(GetModuleHandle(0),%s,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE or LR_SHARED))\r\n",
 					i,
-					ProjectInfo.res.pBitmapResInfo[windowInfo.bgColor-0x1000].IdName);
+					ProjectInfo.res.pBitmapResInfo[pWindowInfo->bgColor-0x1000].IdName);
 				i2+=lstrlen(buffer+i2);
 		}
@@ -1102,11 +1102,11 @@
 
 	//イメージ ボックス用の変数を定義
-	BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+	BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 	{
-		for(i3=0;i3<windowInfo.NumberOfChildWindows;i3++){
-			if(windowInfo.pChildInfo[i3].Control==CT_IMAGEBOX){
-				if((windowInfo.pChildInfo[i3].style&0x000F)==SS_ICON||
-					(windowInfo.pChildInfo[i3].style&0x000F)==SS_BITMAP){
-					sprintf(buffer+i2,"Dim hImage_%s_%s As HANDLE\r\n",windowInfo.name,windowInfo.pChildInfo[i3].IdName);
+		for(i3=0;i3<pWindowInfo->NumberOfChildWindows;i3++){
+			if(pWindowInfo->pChildInfo[i3].Control==CT_IMAGEBOX){
+				if((pWindowInfo->pChildInfo[i3].style&0x000F)==SS_ICON||
+					(pWindowInfo->pChildInfo[i3].style&0x000F)==SS_BITMAP){
+					sprintf(buffer+i2,"Dim hImage_%s_%s As HANDLE\r\n",pWindowInfo->name,pWindowInfo->pChildInfo[i3].IdName);
 					i2+=lstrlen(buffer+i2);
 
@@ -1156,8 +1156,8 @@
 	}
 
-	BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+	BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 	{
 		//フォントハンドル解放
-		sprintf(buffer+i2,"\tDeleteObject(hFont_%s)\r\n",windowInfo.name);
+		sprintf(buffer+i2,"\tDeleteObject(hFont_%s)\r\n",pWindowInfo->name);
 		i2+=lstrlen(buffer+i2);
 
@@ -1172,9 +1172,9 @@
 	i2+=lstrlen(buffer+i2);
 	i=0;
-	BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+	BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 	{
-		if(windowInfo.bgColor<=0&&
-			windowInfo.bgColor!=-(int)RGB(255,255,255)&&
-			windowInfo.bgColor!=-(int)RGB(0,0,0)){
+		if(pWindowInfo->bgColor<=0&&
+			pWindowInfo->bgColor!=-(int)RGB(255,255,255)&&
+			pWindowInfo->bgColor!=-(int)RGB(0,0,0)){
 				sprintf(buffer+i2,"\tDeleteObject(_RadSys_hBackBrush%d)\r\n",i);
 				i2+=lstrlen(buffer+i2);
@@ -1191,5 +1191,5 @@
 
 	i=0;
-	BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+	BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 	{
 		if(i!=0){
@@ -1205,5 +1205,5 @@
 		ppNames=GetProcedureNamesOfMessageCall(i,&pItemEventInfo,&i3,&bAvailUserProc[i]);
 
-		sprintf(buffer+i2,"Function EventCall_%s(hWnd As HWND, message As DWord, wParam As WPARAM, lParam As LPARAM) As LRESULT\r\n",windowInfo.name);
+		sprintf(buffer+i2,"Function EventCall_%s(hWnd As HWND, message As DWord, wParam As WPARAM, lParam As LPARAM) As LRESULT\r\n",pWindowInfo->name);
 		i2+=lstrlen(buffer+i2);
 
@@ -1243,5 +1243,5 @@
 			i2+=lstrlen(buffer+i2);
 			if(sw4){
-				sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",windowInfo.name);
+				sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",pWindowInfo->name);
 				i2+=lstrlen(buffer+i2);
 			}
@@ -1253,5 +1253,5 @@
 			i2+=lstrlen(buffer+i2);
 
-			if(GetNotifyCommandByItemMessage(&windowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t")){
+			if(GetNotifyCommandByItemMessage(pWindowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t")){
 				i2+=lstrlen(buffer+i2);
 
@@ -1269,5 +1269,5 @@
 			lstrcpy(buffer+i2,"\t\tCase WM_NOTIFY\r\n");
 			i2+=lstrlen(buffer+i2);
-			sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",windowInfo.name);
+			sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",pWindowInfo->name);
 			i2+=lstrlen(buffer+i2);
 		}
@@ -1281,5 +1281,5 @@
 
 			//pItemEventInfoのIdName、EventNameメンバのメモリ解放はこの関数内で行う
-			GetCommandByItemMessage(&windowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t");
+			GetCommandByItemMessage(pWindowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t");
 			i2+=lstrlen(buffer+i2);
 
@@ -1292,5 +1292,5 @@
 		lstrcpy(buffer+i2,"\t\tCase Else\r\n");
 		i2+=lstrlen(buffer+i2);
-		sprintf(buffer+i2,"\t\t\tEventCall_%s=DefWindowProc(hWnd,message,wParam,lParam)\r\n",windowInfo.name);
+		sprintf(buffer+i2,"\t\t\tEventCall_%s=DefWindowProc(hWnd,message,wParam,lParam)\r\n",pWindowInfo->name);
 		i2+=lstrlen(buffer+i2);
 		lstrcpy(buffer+i2,"\t\t\tExit Function\r\n");
@@ -1300,5 +1300,5 @@
 		i2+=lstrlen(buffer+i2);
 
-		sprintf(buffer+i2,"\tEventCall_%s=0\r\n",windowInfo.name);
+		sprintf(buffer+i2,"\tEventCall_%s=0\r\n",pWindowInfo->name);
 		i2+=lstrlen(buffer+i2);
 		lstrcpy(buffer+i2,"End Function\r\n");
@@ -1356,48 +1356,48 @@
 	sw1=0;
 	i=0;
-	BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+	BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 	{
-		if(windowInfo.type==WNDTYPE_MODALDLG){
+		if(pWindowInfo->type==WNDTYPE_MODALDLG){
 			if(sw1==0){
-				sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",windowInfo.name);
+				sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",pWindowInfo->name);
 				i2+=lstrlen(buffer+i2);
 				sw1=1;
 			}
 			else{
-				sprintf(buffer+i2,"\tElseIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",windowInfo.name);
+				sprintf(buffer+i2,"\tElseIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",pWindowInfo->name);
 				i2+=lstrlen(buffer+i2);
 			}
 			sprintf(buffer+i2,"\t\t%s=CreateWindowEx(&H%08x,\"NORMALDLG\",\"%s\",&H%08x,%d,%d,%d,%d,hOwnerWnd,%d As HMENU,GetModuleHandle(0),0)\r\n",
-				windowInfo.HandleName,
-				windowInfo.ExStyle,
-				windowInfo.caption,
-				windowInfo.style,
-				windowInfo.pos.x,
-				windowInfo.pos.y,
-				windowInfo.size.cx,
-				windowInfo.size.cy,
-				windowInfo.id);
+				pWindowInfo->HandleName,
+				pWindowInfo->ExStyle,
+				pWindowInfo->caption,
+				pWindowInfo->style,
+				pWindowInfo->pos.x,
+				pWindowInfo->pos.y,
+				pWindowInfo->size.cx,
+				pWindowInfo->size.cy,
+				pWindowInfo->id);
 			i2+=lstrlen(buffer+i2);
 			sprintf(buffer+i2,"\t\thDlg=%s\r\n",
-				windowInfo.HandleName);
+				pWindowInfo->HandleName);
 			i2+=lstrlen(buffer+i2);
 			if(bAvailUserProc[i]){
 				sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(%s) As LONG_PTR)\r\n",
-					windowInfo.HandleName,
-					windowInfo.CallBackName);
+					pWindowInfo->HandleName,
+					pWindowInfo->CallBackName);
 			}
 			else{
 				sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(EventCall_%s) As LONG_PTR)\r\n",
-					windowInfo.HandleName,
-					windowInfo.name);
-			}
-			i2+=lstrlen(buffer+i2);
-			sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",windowInfo.HandleName);
-			i2+=lstrlen(buffer+i2);
-			if(windowInfo.IconResName){
-				sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",windowInfo.HandleName,windowInfo.IconResName);
+					pWindowInfo->HandleName,
+					pWindowInfo->name);
+			}
+			i2+=lstrlen(buffer+i2);
+			sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",pWindowInfo->HandleName);
+			i2+=lstrlen(buffer+i2);
+			if(pWindowInfo->IconResName){
+				sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",pWindowInfo->HandleName,pWindowInfo->IconResName);
 				i2+=lstrlen(buffer+i2);
 			}
-			sprintf(buffer+i2,"\t\tShowWindow(%s,SW_SHOW)\r\n",windowInfo.HandleName);
+			sprintf(buffer+i2,"\t\tShowWindow(%s,SW_SHOW)\r\n",pWindowInfo->HandleName);
 			i2+=lstrlen(buffer+i2);
 		}
@@ -1455,41 +1455,41 @@
 	i2+=lstrlen(buffer+i2);
 	i=0;
-	BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+	BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 	{
-		if(windowInfo.type==WNDTYPE_MODELESSDLG){
-			sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",windowInfo.name);
+		if(pWindowInfo->type==WNDTYPE_MODELESSDLG){
+			sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",pWindowInfo->name);
 			i2+=lstrlen(buffer+i2);
 
 			sprintf(buffer+i2,"\t\t%s=CreateWindowEx(&H%08x,\"NORMALDLG\",\"%s\",&H%08x,%d,%d,%d,%d,hOwnerWnd,%d As HMENU,GetModuleHandle(0),0)\r\n",
-				windowInfo.HandleName,
-				windowInfo.ExStyle,
-				windowInfo.caption,
-				windowInfo.style,
-				windowInfo.pos.x,
-				windowInfo.pos.y,
-				windowInfo.size.cx,
-				windowInfo.size.cy,
-				windowInfo.id);
-			i2+=lstrlen(buffer+i2);
-			sprintf(buffer+i2,"\t\tCreateDialog=%s\r\n",windowInfo.HandleName);
+				pWindowInfo->HandleName,
+				pWindowInfo->ExStyle,
+				pWindowInfo->caption,
+				pWindowInfo->style,
+				pWindowInfo->pos.x,
+				pWindowInfo->pos.y,
+				pWindowInfo->size.cx,
+				pWindowInfo->size.cy,
+				pWindowInfo->id);
+			i2+=lstrlen(buffer+i2);
+			sprintf(buffer+i2,"\t\tCreateDialog=%s\r\n",pWindowInfo->HandleName);
 			i2+=lstrlen(buffer+i2);
 			if(bAvailUserProc[i]){
 				sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(%s) As LONG_PTR)\r\n",
-					windowInfo.HandleName,
-					windowInfo.CallBackName);
+					pWindowInfo->HandleName,
+					pWindowInfo->CallBackName);
 			}
 			else{
 				sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(EventCall_%s) As LONG_PTR)\r\n",
-					windowInfo.HandleName,
-					windowInfo.name);
-			}
-			i2+=lstrlen(buffer+i2);
-			sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",windowInfo.HandleName);
-			i2+=lstrlen(buffer+i2);
-			if(windowInfo.IconResName){
-				sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",windowInfo.HandleName,windowInfo.IconResName);
+					pWindowInfo->HandleName,
+					pWindowInfo->name);
+			}
+			i2+=lstrlen(buffer+i2);
+			sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",pWindowInfo->HandleName);
+			i2+=lstrlen(buffer+i2);
+			if(pWindowInfo->IconResName){
+				sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",pWindowInfo->HandleName,pWindowInfo->IconResName);
 				i2+=lstrlen(buffer+i2);
 			}
-			sprintf(buffer+i2,"\tEnd If\r\n",windowInfo.name);
+			sprintf(buffer+i2,"\tEnd If\r\n",pWindowInfo->name);
 			i2+=lstrlen(buffer+i2);
 		}
@@ -1528,7 +1528,7 @@
 
 	i=0;
-	BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+	BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 	{
-		if(windowInfo.type==WNDTYPE_DEFAULT){
+		if(pWindowInfo->type==WNDTYPE_DEFAULT){
 			//////////////////////
 			//通常ウィンドウ作成
@@ -1537,5 +1537,5 @@
 			i2+=2;
 
-			if(windowInfo.IconResName==0){
+			if(pWindowInfo->IconResName==0){
 				lstrcpy(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(NULL,MAKEINTRESOURCE(IDI_APPLICATION))\r\n");
 				i2+=lstrlen(buffer+i2);
@@ -1544,7 +1544,7 @@
 			}
 			else{
-				sprintf(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",windowInfo.IconResName);
+				sprintf(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",pWindowInfo->IconResName);
 				i2+=lstrlen(buffer+i2);
-				sprintf(buffer+i2,"_RadSys_wcl.hIconSm=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",windowInfo.IconResName);
+				sprintf(buffer+i2,"_RadSys_wcl.hIconSm=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",pWindowInfo->IconResName);
 				i2+=lstrlen(buffer+i2);
 			}
@@ -1553,15 +1553,15 @@
 			i2+=lstrlen(buffer+i2);
 			if(bAvailUserProc[i])
-				sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(%s)\r\n",windowInfo.CallBackName);
-			else sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(EventCall_%s)\r\n",windowInfo.name);
-			i2+=lstrlen(buffer+i2);
-			if(windowInfo.bgColor==COLOR_3DFACE)
+				sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(%s)\r\n",pWindowInfo->CallBackName);
+			else sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(EventCall_%s)\r\n",pWindowInfo->name);
+			i2+=lstrlen(buffer+i2);
+			if(pWindowInfo->bgColor==COLOR_3DFACE)
 				lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=h3DFaceBrush\r\n");
-			else if(windowInfo.bgColor==-(int)RGB(255,255,255))
+			else if(pWindowInfo->bgColor==-(int)RGB(255,255,255))
 				lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=GetStockObject(WHITE_BRUSH)\r\n");
-			else if(windowInfo.bgColor==-(int)RGB(0,0,0))
+			else if(pWindowInfo->bgColor==-(int)RGB(0,0,0))
 				lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=GetStockObject(BLACK_BRUSH)\r\n");
-			else if(windowInfo.bgColor<=0||
-				windowInfo.bgColor>=0x1000){
+			else if(pWindowInfo->bgColor<=0||
+				pWindowInfo->bgColor>=0x1000){
 				//色指定またはビットマップ
 				sprintf(buffer+i2,"_RadSys_wcl.hbrBackground=_RadSys_hBackBrush%d\r\n",i);
@@ -1571,12 +1571,12 @@
 			i2+=lstrlen(buffer+i2);
 			sprintf(buffer+i2,"CreateWindowEx(&H%08x,\"%s%d\",\"%s\",&H%08x,%d,%d,%d,%d,0,0,GetModuleHandle(0),0)\r\n",
-				windowInfo.ExStyle,
-				windowInfo.ClassName,i,
-				windowInfo.caption,
-				windowInfo.style,
-				windowInfo.pos.x,
-				windowInfo.pos.y,
-				windowInfo.size.cx,
-				windowInfo.size.cy);
+				pWindowInfo->ExStyle,
+				pWindowInfo->ClassName,i,
+				pWindowInfo->caption,
+				pWindowInfo->style,
+				pWindowInfo->pos.x,
+				pWindowInfo->pos.y,
+				pWindowInfo->size.cx,
+				pWindowInfo->size.cy);
 			i2+=lstrlen(buffer+i2);
 		}
@@ -1623,5 +1623,5 @@
 	return i2;
 }
-void SaveWindowFile( char *path, const std::vector<WINDOW_INFO> &windowInfos )
+void SaveWindowFile( char *path, const WindowInfos &windowInfos )
 {
 	extern HANDLE hHeap;
@@ -1633,71 +1633,71 @@
 	buffer=(char *)HeapAlloc(hHeap,0,GENERAL_SIZE*size);
 	i2=0;
-	BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+	BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 	{
-		sprintf(buffer+i2,"WINDOW:%s\r\n",windowInfo.name);
-		i2+=lstrlen(buffer+i2);
-		sprintf(buffer+i2,"    HANDLE    = %s\r\n",windowInfo.HandleName);
-		i2+=lstrlen(buffer+i2);
-		sprintf(buffer+i2,"    POINT     = %d,%d\r\n",windowInfo.pos.x,windowInfo.pos.y);
-		i2+=lstrlen(buffer+i2);
-		sprintf(buffer+i2,"    SIZE      = %d,%d\r\n",windowInfo.size.cx,windowInfo.size.cy);
-		i2+=lstrlen(buffer+i2);
-		sprintf(buffer+i2,"    CAPTION   = \"%s\"\r\n",windowInfo.caption);
-		i2+=lstrlen(buffer+i2);
-		sprintf(buffer+i2,"    STYLE     = &H%08x\r\n",windowInfo.style);
-		i2+=lstrlen(buffer+i2);
-		sprintf(buffer+i2,"    EXSTYLE   = &H%08x\r\n",windowInfo.ExStyle);
-		i2+=lstrlen(buffer+i2);
-		if(windowInfo.MenuID){
-			sprintf(buffer+i2,"    MENUID    = %s\r\n",windowInfo.MenuID);
-			i2+=lstrlen(buffer+i2);
-		}
-		sprintf(buffer+i2,"    ID        = %d\r\n",windowInfo.id);
-		i2+=lstrlen(buffer+i2);
-		sprintf(buffer+i2,"    BGCOLOR   = %d\r\n",windowInfo.bgColor);
+		sprintf(buffer+i2,"WINDOW:%s\r\n",pWindowInfo->name);
+		i2+=lstrlen(buffer+i2);
+		sprintf(buffer+i2,"    HANDLE    = %s\r\n",pWindowInfo->HandleName);
+		i2+=lstrlen(buffer+i2);
+		sprintf(buffer+i2,"    POINT     = %d,%d\r\n",pWindowInfo->pos.x,pWindowInfo->pos.y);
+		i2+=lstrlen(buffer+i2);
+		sprintf(buffer+i2,"    SIZE      = %d,%d\r\n",pWindowInfo->size.cx,pWindowInfo->size.cy);
+		i2+=lstrlen(buffer+i2);
+		sprintf(buffer+i2,"    CAPTION   = \"%s\"\r\n",pWindowInfo->caption);
+		i2+=lstrlen(buffer+i2);
+		sprintf(buffer+i2,"    STYLE     = &H%08x\r\n",pWindowInfo->style);
+		i2+=lstrlen(buffer+i2);
+		sprintf(buffer+i2,"    EXSTYLE   = &H%08x\r\n",pWindowInfo->ExStyle);
+		i2+=lstrlen(buffer+i2);
+		if(pWindowInfo->MenuID){
+			sprintf(buffer+i2,"    MENUID    = %s\r\n",pWindowInfo->MenuID);
+			i2+=lstrlen(buffer+i2);
+		}
+		sprintf(buffer+i2,"    ID        = %d\r\n",pWindowInfo->id);
+		i2+=lstrlen(buffer+i2);
+		sprintf(buffer+i2,"    BGCOLOR   = %d\r\n",pWindowInfo->bgColor);
 		i2+=lstrlen(buffer+i2);
 		sprintf(buffer+i2,"    FONT      = %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\"%s\"\r\n",
-			windowInfo.LogFont.lfHeight,
-			windowInfo.LogFont.lfWidth,
-			windowInfo.LogFont.lfEscapement,
-			windowInfo.LogFont.lfOrientation,
-			windowInfo.LogFont.lfWeight,
-			windowInfo.LogFont.lfItalic,
-			windowInfo.LogFont.lfUnderline,
-			windowInfo.LogFont.lfStrikeOut,
-			windowInfo.LogFont.lfCharSet,
-			windowInfo.LogFont.lfOutPrecision,
-			windowInfo.LogFont.lfClipPrecision,
-			windowInfo.LogFont.lfQuality,
-			windowInfo.LogFont.lfPitchAndFamily,
-			windowInfo.LogFont.lfFaceName);
-		i2+=lstrlen(buffer+i2);
-		if(windowInfo.IconResName){
-			sprintf(buffer+i2,"    ICONID    = %s\r\n",windowInfo.IconResName);
-			i2+=lstrlen(buffer+i2);
-		}
-		sprintf(buffer+i2,"    CLASS     = \"%s\"\r\n",windowInfo.ClassName);
-		i2+=lstrlen(buffer+i2);
-		sprintf(buffer+i2,"    CALLBACK  = %s\r\n",windowInfo.CallBackName);
-		i2+=lstrlen(buffer+i2);
-		sprintf(buffer+i2,"    TYPE      = %d\r\n",windowInfo.type);
-		i2+=lstrlen(buffer+i2);
-		sprintf(buffer+i2,"    FILEPATH  = %s\r\n",windowInfo.filepath);
-		i2+=lstrlen(buffer+i2);
-		for(i3=0;i3<windowInfo.NumberOfChildWindows;i3++){
-			temporary=SetCaptionSequence(windowInfo.pChildInfo[i3].caption);
+			pWindowInfo->LogFont.lfHeight,
+			pWindowInfo->LogFont.lfWidth,
+			pWindowInfo->LogFont.lfEscapement,
+			pWindowInfo->LogFont.lfOrientation,
+			pWindowInfo->LogFont.lfWeight,
+			pWindowInfo->LogFont.lfItalic,
+			pWindowInfo->LogFont.lfUnderline,
+			pWindowInfo->LogFont.lfStrikeOut,
+			pWindowInfo->LogFont.lfCharSet,
+			pWindowInfo->LogFont.lfOutPrecision,
+			pWindowInfo->LogFont.lfClipPrecision,
+			pWindowInfo->LogFont.lfQuality,
+			pWindowInfo->LogFont.lfPitchAndFamily,
+			pWindowInfo->LogFont.lfFaceName);
+		i2+=lstrlen(buffer+i2);
+		if(pWindowInfo->IconResName){
+			sprintf(buffer+i2,"    ICONID    = %s\r\n",pWindowInfo->IconResName);
+			i2+=lstrlen(buffer+i2);
+		}
+		sprintf(buffer+i2,"    CLASS     = \"%s\"\r\n",pWindowInfo->ClassName);
+		i2+=lstrlen(buffer+i2);
+		sprintf(buffer+i2,"    CALLBACK  = %s\r\n",pWindowInfo->CallBackName);
+		i2+=lstrlen(buffer+i2);
+		sprintf(buffer+i2,"    TYPE      = %d\r\n",pWindowInfo->type);
+		i2+=lstrlen(buffer+i2);
+		sprintf(buffer+i2,"    FILEPATH  = %s\r\n",pWindowInfo->filepath);
+		i2+=lstrlen(buffer+i2);
+		for(i3=0;i3<pWindowInfo->NumberOfChildWindows;i3++){
+			temporary=SetCaptionSequence(pWindowInfo->pChildInfo[i3].caption);
 			sprintf(buffer+i2,"    ITEM      = %s,%d,%d,%d,%d,\"%s\",&H%08x,&H%08x,%d",
-				windowInfo.pChildInfo[i3].IdName,
-				windowInfo.pChildInfo[i3].pos.x,windowInfo.pChildInfo[i3].pos.y,
-				windowInfo.pChildInfo[i3].size.cx,windowInfo.pChildInfo[i3].size.cy,
+				pWindowInfo->pChildInfo[i3].IdName,
+				pWindowInfo->pChildInfo[i3].pos.x,pWindowInfo->pChildInfo[i3].pos.y,
+				pWindowInfo->pChildInfo[i3].size.cx,pWindowInfo->pChildInfo[i3].size.cy,
 				temporary,
-				windowInfo.pChildInfo[i3].style,
-				windowInfo.pChildInfo[i3].ExStyle,
-				windowInfo.pChildInfo[i3].Control
+				pWindowInfo->pChildInfo[i3].style,
+				pWindowInfo->pChildInfo[i3].ExStyle,
+				pWindowInfo->pChildInfo[i3].Control
 			);
 			i2+=lstrlen(buffer+i2);
 			HeapDefaultFree(temporary);
-			if(windowInfo.pChildInfo[i3].Control==CT_IMAGEBOX){
-				sprintf(buffer+i2,",%d,\"%s\"",windowInfo.pChildInfo[i3].ImageCtrlInfo.type,windowInfo.pChildInfo[i3].ImageCtrlInfo.path);
+			if(pWindowInfo->pChildInfo[i3].Control==CT_IMAGEBOX){
+				sprintf(buffer+i2,",%d,\"%s\"",pWindowInfo->pChildInfo[i3].ImageCtrlInfo.type,pWindowInfo->pChildInfo[i3].ImageCtrlInfo.path);
 				i2+=lstrlen(buffer+i2);
 			}
@@ -1709,5 +1709,5 @@
 			}
 		}
-		sprintf(buffer+i2,"END\r\n",windowInfo.name);
+		sprintf(buffer+i2,"END\r\n",pWindowInfo->name);
 		i2+=lstrlen(buffer+i2);
 		if(i2-GENERAL_SIZE<GENERAL_SIZE){
@@ -1720,5 +1720,5 @@
 		i2+=lstrlen(buffer+i2);
 		i2+=GetSaveMenuData(buffer+i2,1,ProjectInfo.pMenuInfo[i].pMenuInfo,ProjectInfo.pMenuInfo[i].NumberOfMenu);
-		sprintf(buffer+i2,"END\r\n",windowInfos[i].name);
+		sprintf(buffer+i2,"END\r\n",windowInfos[i]->name);
 		i2+=lstrlen(buffer+i2);
 		if(i2-GENERAL_SIZE<GENERAL_SIZE){
@@ -1841,5 +1841,5 @@
 	ProjectInfo.pMenuInfo=(MENU_INFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
 
-	ProjectInfo.windowInfos.clear();
+	ProjectInfo.windowInfos.Clear();
 
 	for(i=0,i3=0;;i++){
@@ -1876,122 +1876,122 @@
 			//ウィンドウ
 			if(lstrcmpi(temporary,"WINDOW")==0&&i3==0){
-				ProjectInfo.windowInfos.push_back( WINDOW_INFO() );
+				ProjectInfo.windowInfos.push_back( new WindowInfo() );
 				i3=1;
 
-				ProjectInfo.windowInfos.back().name=(char *)HeapAlloc(hHeap,0,i2+1);
-				lstrcpy(ProjectInfo.windowInfos.back().name,temp2);
-
-				ProjectInfo.windowInfos.back().NumberOfChildWindows=0;
-				ProjectInfo.windowInfos.back().pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
+				ProjectInfo.windowInfos.back()->name=(char *)HeapAlloc(hHeap,0,i2+1);
+				lstrcpy(ProjectInfo.windowInfos.back()->name,temp2);
+
+				ProjectInfo.windowInfos.back()->NumberOfChildWindows=0;
+				ProjectInfo.windowInfos.back()->pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
 			}
 			else if(lstrcmpi(temporary,"HANDLE")==0&&i3==1){
-				ProjectInfo.windowInfos.back().HandleName=(char *)HeapAlloc(hHeap,0,i2+1);
-				lstrcpy(ProjectInfo.windowInfos.back().HandleName,temp2);
+				ProjectInfo.windowInfos.back()->HandleName=(char *)HeapAlloc(hHeap,0,i2+1);
+				lstrcpy(ProjectInfo.windowInfos.back()->HandleName,temp2);
 			}
 			else if(lstrcmpi(temporary,"POINT")==0&&i3==1){
 				sscanf(temp2,"%d,%d",
-					&ProjectInfo.windowInfos.back().pos.x,
-					&ProjectInfo.windowInfos.back().pos.y);
-				if(ProjectInfo.windowInfos.back().pos.x==-1) ProjectInfo.windowInfos.back().pos.x=CW_USEDEFAULT;
-				if(ProjectInfo.windowInfos.back().pos.y==-1) ProjectInfo.windowInfos.back().pos.y=CW_USEDEFAULT;
+					&ProjectInfo.windowInfos.back()->pos.x,
+					&ProjectInfo.windowInfos.back()->pos.y);
+				if(ProjectInfo.windowInfos.back()->pos.x==-1) ProjectInfo.windowInfos.back()->pos.x=CW_USEDEFAULT;
+				if(ProjectInfo.windowInfos.back()->pos.y==-1) ProjectInfo.windowInfos.back()->pos.y=CW_USEDEFAULT;
 			}
 			else if(lstrcmpi(temporary,"SIZE")==0&&i3==1){
 				sscanf(temp2,"%d,%d",
-					&ProjectInfo.windowInfos.back().size.cx,
-					&ProjectInfo.windowInfos.back().size.cy);
+					&ProjectInfo.windowInfos.back()->size.cx,
+					&ProjectInfo.windowInfos.back()->size.cy);
 			}
 			else if(lstrcmpi(temporary,"CAPTION")==0&&i3==1){
 				if(temp2[0]=='\"'&&temp2[lstrlen(temp2)-1]=='\"'){
 					temp2[lstrlen(temp2)-1]=0;
-					ProjectInfo.windowInfos.back().caption=(char *)HeapAlloc(hHeap,0,i2+1);
-					lstrcpy(ProjectInfo.windowInfos.back().caption,temp2+1);
+					ProjectInfo.windowInfos.back()->caption=(char *)HeapAlloc(hHeap,0,i2+1);
+					lstrcpy(ProjectInfo.windowInfos.back()->caption,temp2+1);
 				}
 			}
-			else if(lstrcmpi(temporary,"STYLE")==0&&i3==1) ProjectInfo.windowInfos.back().style=GetValue(temp2);
-			else if(lstrcmpi(temporary,"EXSTYLE")==0&&i3==1) ProjectInfo.windowInfos.back().ExStyle=GetValue(temp2);
+			else if(lstrcmpi(temporary,"STYLE")==0&&i3==1) ProjectInfo.windowInfos.back()->style=GetValue(temp2);
+			else if(lstrcmpi(temporary,"EXSTYLE")==0&&i3==1) ProjectInfo.windowInfos.back()->ExStyle=GetValue(temp2);
 			else if(lstrcmpi(temporary,"MENUID")==0&&i3==1){
-				ProjectInfo.windowInfos.back().MenuID=(char *)HeapAlloc(hHeap,0,i2+1);
-				lstrcpy(ProjectInfo.windowInfos.back().MenuID,temp2);
-			}
-			else if(lstrcmpi(temporary,"ID")==0&&i3==1) ProjectInfo.windowInfos.back().id=GetValue(temp2);
+				ProjectInfo.windowInfos.back()->MenuID=(char *)HeapAlloc(hHeap,0,i2+1);
+				lstrcpy(ProjectInfo.windowInfos.back()->MenuID,temp2);
+			}
+			else if(lstrcmpi(temporary,"ID")==0&&i3==1) ProjectInfo.windowInfos.back()->id=GetValue(temp2);
 			else if(lstrcmpi(temporary,"BGCOLOR")==0&&i3==1){
-				ProjectInfo.windowInfos.back().bgColor=GetValue(temp2);
+				ProjectInfo.windowInfos.back()->bgColor=GetValue(temp2);
 				if(ProjectInfo.dwVersion<=3){
 					//プロジェクトバージョンが3以前のときは新値に変換する
-					if(ProjectInfo.windowInfos.back().bgColor==-1)
-						ProjectInfo.windowInfos.back().bgColor=-(int)RGB(255,255,255);
+					if(ProjectInfo.windowInfos.back()->bgColor==-1)
+						ProjectInfo.windowInfos.back()->bgColor=-(int)RGB(255,255,255);
 				}
 			}
 			else if(lstrcmpi(temporary,"FONT")==0&&i3==1){
 				i5=GetOneParameter(temp2,0,temp3);
-				ProjectInfo.windowInfos.back().LogFont.lfHeight=GetValue(temp3);
+				ProjectInfo.windowInfos.back()->LogFont.lfHeight=GetValue(temp3);
 
 				i5=GetOneParameter(temp2,i5,temp3);
-				ProjectInfo.windowInfos.back().LogFont.lfWidth=GetValue(temp3);
+				ProjectInfo.windowInfos.back()->LogFont.lfWidth=GetValue(temp3);
 
 				i5=GetOneParameter(temp2,i5,temp3);
-				ProjectInfo.windowInfos.back().LogFont.lfEscapement=GetValue(temp3);
+				ProjectInfo.windowInfos.back()->LogFont.lfEscapement=GetValue(temp3);
 
 				i5=GetOneParameter(temp2,i5,temp3);
-				ProjectInfo.windowInfos.back().LogFont.lfOrientation=GetValue(temp3);
+				ProjectInfo.windowInfos.back()->LogFont.lfOrientation=GetValue(temp3);
 
 				i5=GetOneParameter(temp2,i5,temp3);
-				ProjectInfo.windowInfos.back().LogFont.lfWeight=GetValue(temp3);
+				ProjectInfo.windowInfos.back()->LogFont.lfWeight=GetValue(temp3);
 
 				i5=GetOneParameter(temp2,i5,temp3);
-				ProjectInfo.windowInfos.back().LogFont.lfItalic=(BYTE)GetValue(temp3);
+				ProjectInfo.windowInfos.back()->LogFont.lfItalic=(BYTE)GetValue(temp3);
 
 				i5=GetOneParameter(temp2,i5,temp3);
-				ProjectInfo.windowInfos.back().LogFont.lfUnderline=(BYTE)GetValue(temp3);
+				ProjectInfo.windowInfos.back()->LogFont.lfUnderline=(BYTE)GetValue(temp3);
 
 				i5=GetOneParameter(temp2,i5,temp3);
-				ProjectInfo.windowInfos.back().LogFont.lfStrikeOut=(BYTE)GetValue(temp3);
+				ProjectInfo.windowInfos.back()->LogFont.lfStrikeOut=(BYTE)GetValue(temp3);
 
 				i5=GetOneParameter(temp2,i5,temp3);
-				ProjectInfo.windowInfos.back().LogFont.lfCharSet=(BYTE)GetValue(temp3);
+				ProjectInfo.windowInfos.back()->LogFont.lfCharSet=(BYTE)GetValue(temp3);
 
 				i5=GetOneParameter(temp2,i5,temp3);
-				ProjectInfo.windowInfos.back().LogFont.lfOutPrecision=(BYTE)GetValue(temp3);
+				ProjectInfo.windowInfos.back()->LogFont.lfOutPrecision=(BYTE)GetValue(temp3);
 
 				i5=GetOneParameter(temp2,i5,temp3);
-				ProjectInfo.windowInfos.back().LogFont.lfClipPrecision=(BYTE)GetValue(temp3);
+				ProjectInfo.windowInfos.back()->LogFont.lfClipPrecision=(BYTE)GetValue(temp3);
 
 				i5=GetOneParameter(temp2,i5,temp3);
-				ProjectInfo.windowInfos.back().LogFont.lfQuality=(BYTE)GetValue(temp3);
+				ProjectInfo.windowInfos.back()->LogFont.lfQuality=(BYTE)GetValue(temp3);
 
 				i5=GetOneParameter(temp2,i5,temp3);
-				ProjectInfo.windowInfos.back().LogFont.lfPitchAndFamily=(BYTE)GetValue(temp3);
+				ProjectInfo.windowInfos.back()->LogFont.lfPitchAndFamily=(BYTE)GetValue(temp3);
 
 				i5=GetOneParameter(temp2,i5,temp3);
 				RemoveStringQuotes(temp3);
-				lstrcpy(ProjectInfo.windowInfos.back().LogFont.lfFaceName,temp3);
+				lstrcpy(ProjectInfo.windowInfos.back()->LogFont.lfFaceName,temp3);
 			}
 			else if(lstrcmpi(temporary,"ICONID")==0&&i3==1){
-				ProjectInfo.windowInfos.back().IconResName=(char *)HeapAlloc(hHeap,0,i2+1);
-				lstrcpy(ProjectInfo.windowInfos.back().IconResName,temp2);
+				ProjectInfo.windowInfos.back()->IconResName=(char *)HeapAlloc(hHeap,0,i2+1);
+				lstrcpy(ProjectInfo.windowInfos.back()->IconResName,temp2);
 			}
 			else if(lstrcmpi(temporary,"CLASS")==0&&i3==1){
 				if(temp2[0]=='\"'&&temp2[lstrlen(temp2)-1]=='\"'){
 					temp2[lstrlen(temp2)-1]=0;
-					ProjectInfo.windowInfos.back().ClassName=(char *)HeapAlloc(hHeap,0,i2+1);
-					lstrcpy(ProjectInfo.windowInfos.back().ClassName,temp2+1);
+					ProjectInfo.windowInfos.back()->ClassName=(char *)HeapAlloc(hHeap,0,i2+1);
+					lstrcpy(ProjectInfo.windowInfos.back()->ClassName,temp2+1);
 				}
 			}
 			else if(lstrcmpi(temporary,"CALLBACK")==0&&i3==1){
-				ProjectInfo.windowInfos.back().CallBackName=(char *)HeapAlloc(hHeap,0,i2+1);
-				lstrcpy(ProjectInfo.windowInfos.back().CallBackName,temp2);
+				ProjectInfo.windowInfos.back()->CallBackName=(char *)HeapAlloc(hHeap,0,i2+1);
+				lstrcpy(ProjectInfo.windowInfos.back()->CallBackName,temp2);
 			}
 
 			//以前のバージョンとの互換用
-			else if(lstrcmpi(temporary,"DLGTMP")==0&&i3==1) ProjectInfo.windowInfos.back().type=GetValue(temp2);
-
-			else if(lstrcmpi(temporary,"TYPE")==0&&i3==1) ProjectInfo.windowInfos.back().type=GetValue(temp2);
+			else if(lstrcmpi(temporary,"DLGTMP")==0&&i3==1) ProjectInfo.windowInfos.back()->type=GetValue(temp2);
+
+			else if(lstrcmpi(temporary,"TYPE")==0&&i3==1) ProjectInfo.windowInfos.back()->type=GetValue(temp2);
 			else if(lstrcmpi(temporary,"FILEPATH")==0&&i3==1){
-				ProjectInfo.windowInfos.back().filepath=(char *)HeapAlloc(hHeap,0,i2+1);
-				lstrcpy(ProjectInfo.windowInfos.back().filepath,temp2);
+				ProjectInfo.windowInfos.back()->filepath=(char *)HeapAlloc(hHeap,0,i2+1);
+				lstrcpy(ProjectInfo.windowInfos.back()->filepath,temp2);
 			}
 			else if(lstrcmpi(temporary,"ITEM")==0&&i3==1){
-				ProjectInfo.windowInfos.back().pChildInfo=(CHILDINFO *)HeapReAlloc(hHeap,HEAP_ZERO_MEMORY,ProjectInfo.windowInfos.back().pChildInfo,(ProjectInfo.windowInfos.back().NumberOfChildWindows+1)*sizeof(CHILDINFO));
-				pChildInfo=&ProjectInfo.windowInfos.back().pChildInfo[ProjectInfo.windowInfos.back().NumberOfChildWindows];
+				ProjectInfo.windowInfos.back()->pChildInfo=(CHILDINFO *)HeapReAlloc(hHeap,HEAP_ZERO_MEMORY,ProjectInfo.windowInfos.back()->pChildInfo,(ProjectInfo.windowInfos.back()->NumberOfChildWindows+1)*sizeof(CHILDINFO));
+				pChildInfo=&ProjectInfo.windowInfos.back()->pChildInfo[ProjectInfo.windowInfos.back()->NumberOfChildWindows];
 
 				//ID
@@ -2039,5 +2039,5 @@
 				}
 
-				ProjectInfo.windowInfos.back().NumberOfChildWindows++;
+				ProjectInfo.windowInfos.back()->NumberOfChildWindows++;
 			}
 
@@ -2176,21 +2176,21 @@
 		return;
 	}
-	BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+	BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 	{
-		if(lstrcmpi(NewWindow.name,windowInfo.name)==0){
+		if(lstrcmpi(NewWindow.name,pWindowInfo->name)==0){
 			//"\"%s\" ウィンドウは既にプロジェクト内に存在します。"
-			sprintf(temporary,STRING_DUPLICATIONERROR_WINDOW_IN_PROJECT,windowInfo.name);
+			sprintf(temporary,STRING_DUPLICATIONERROR_WINDOW_IN_PROJECT,pWindowInfo->name);
 			MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
 			return;
 		}
-		if(lstrcmpi(NewWindow.HandleName,windowInfo.HandleName)==0){
+		if(lstrcmpi(NewWindow.HandleName,pWindowInfo->HandleName)==0){
 			//"\"%s\" ハンドルは既にプロジェクト内に存在します。"
-			sprintf(temporary,STRING_DUPLICATIONERROR_HANDLE_IN_PROJECT,windowInfo.HandleName);
+			sprintf(temporary,STRING_DUPLICATIONERROR_HANDLE_IN_PROJECT,pWindowInfo->HandleName);
 			MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
 			return;
 		}
-		if(lstrcmpi(NewWindow.CallBackName,windowInfo.CallBackName)==0){
+		if(lstrcmpi(NewWindow.CallBackName,pWindowInfo->CallBackName)==0){
 			//"\"%s\" プロシージャは既にプロジェクト内に存在します。"
-			sprintf(temporary,STRING_DUPLICATIONERROR_PROC_IN_PROJECT,windowInfo.CallBackName);
+			sprintf(temporary,STRING_DUPLICATIONERROR_PROC_IN_PROJECT,pWindowInfo->CallBackName);
 			MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
 			return;
@@ -2199,5 +2199,5 @@
 
 	//ProjectInfo.windowInfos構造体コレクションに追加
-	ProjectInfo.windowInfos.push_back( WINDOW_INFO() );
+	ProjectInfo.windowInfos.push_back( new WindowInfo() );
 
 
@@ -2206,20 +2206,20 @@
 
 	//ウィンドウ名
-	ProjectInfo.windowInfos.back().name=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1);
-	lstrcpy(ProjectInfo.windowInfos.back().name,NewWindow.name);
+	ProjectInfo.windowInfos.back()->name=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1);
+	lstrcpy(ProjectInfo.windowInfos.back()->name,NewWindow.name);
 
 	//ハンドル名
-	ProjectInfo.windowInfos.back().HandleName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.HandleName)+1);
-	lstrcpy(ProjectInfo.windowInfos.back().HandleName,NewWindow.HandleName);
+	ProjectInfo.windowInfos.back()->HandleName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.HandleName)+1);
+	lstrcpy(ProjectInfo.windowInfos.back()->HandleName,NewWindow.HandleName);
 
 	//位置情報
-	ProjectInfo.windowInfos.back().pos.x=-1;
-	ProjectInfo.windowInfos.back().pos.y=-1;
-	ProjectInfo.windowInfos.back().size.cx=480;
-	ProjectInfo.windowInfos.back().size.cy=360;
+	ProjectInfo.windowInfos.back()->pos.x=-1;
+	ProjectInfo.windowInfos.back()->pos.y=-1;
+	ProjectInfo.windowInfos.back()->size.cx=480;
+	ProjectInfo.windowInfos.back()->size.cy=360;
 
 	//ウィンドウテキスト
-	ProjectInfo.windowInfos.back().caption=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1);
-	lstrcpy(ProjectInfo.windowInfos.back().caption,NewWindow.name);
+	ProjectInfo.windowInfos.back()->caption=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1);
+	lstrcpy(ProjectInfo.windowInfos.back()->caption,NewWindow.name);
 
 	//スタイル
@@ -2227,52 +2227,52 @@
 		case WNDTYPE_DEFAULT:
 			//通常ウィンドウ
-			ProjectInfo.windowInfos.back().style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX;
+			ProjectInfo.windowInfos.back()->style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX;
 			break;
 		case WNDTYPE_MODALDLG:
 		case WNDTYPE_MODELESSDLG:
 			//ダイアログ テンプレート（最大化、最小化ボタンをなくして、細枠にする）
-			ProjectInfo.windowInfos.back().style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU;
+			ProjectInfo.windowInfos.back()->style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU;
 			break;
 	}
 
 	//拡張スタイル
-	ProjectInfo.windowInfos.back().ExStyle=0;
+	ProjectInfo.windowInfos.back()->ExStyle=0;
 
 	//メニュー
-	ProjectInfo.windowInfos.back().MenuID=0;
+	ProjectInfo.windowInfos.back()->MenuID=0;
 
 	//ID
-	ProjectInfo.windowInfos.back().id=0;
+	ProjectInfo.windowInfos.back()->id=0;
 
 	//背景色
-	ProjectInfo.windowInfos.back().bgColor=COLOR_3DFACE;
+	ProjectInfo.windowInfos.back()->bgColor=COLOR_3DFACE;
 
 	//フォント
-	GetDefaultWindowFont(&ProjectInfo.windowInfos.back().LogFont);
+	GetDefaultWindowFont(&ProjectInfo.windowInfos.back()->LogFont);
 
 	//アイコン
-	ProjectInfo.windowInfos.back().IconResName=0;
+	ProjectInfo.windowInfos.back()->IconResName=0;
 
 	//クラス名
 	lstrcpy(temporary,"NORMAL");
-	ProjectInfo.windowInfos.back().ClassName=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);
-	lstrcpy(ProjectInfo.windowInfos.back().ClassName,temporary);
+	ProjectInfo.windowInfos.back()->ClassName=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);
+	lstrcpy(ProjectInfo.windowInfos.back()->ClassName,temporary);
 
 	//コールバック関数名
-	ProjectInfo.windowInfos.back().CallBackName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.CallBackName)+1);
-	lstrcpy(ProjectInfo.windowInfos.back().CallBackName,NewWindow.CallBackName);
+	ProjectInfo.windowInfos.back()->CallBackName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.CallBackName)+1);
+	lstrcpy(ProjectInfo.windowInfos.back()->CallBackName,NewWindow.CallBackName);
 
 	//タイプ識別
-	ProjectInfo.windowInfos.back().type=NewWindow.type;
+	ProjectInfo.windowInfos.back()->type=NewWindow.type;
 
 	//子ウィンドウ情報
-	ProjectInfo.windowInfos.back().NumberOfChildWindows=0;
-	ProjectInfo.windowInfos.back().pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
+	ProjectInfo.windowInfos.back()->NumberOfChildWindows=0;
+	ProjectInfo.windowInfos.back()->pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
 
 
 	//メッセージ処理ファイル名
-	sprintf(temporary,"%s.ab",ProjectInfo.windowInfos.back().name);
-	ProjectInfo.windowInfos.back().filepath=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);
-	lstrcpy(ProjectInfo.windowInfos.back().filepath,temporary);
+	sprintf(temporary,"%s.ab",ProjectInfo.windowInfos.back()->name);
+	ProjectInfo.windowInfos.back()->filepath=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);
+	lstrcpy(ProjectInfo.windowInfos.back()->filepath,temporary);
 
 
@@ -2292,5 +2292,5 @@
 		NewWindow.CallBackName);
 
-	sprintf(temporary,"%s%s.ab",ProjectInfo.dir,ProjectInfo.windowInfos.back().name);
+	sprintf(temporary,"%s%s.ab",ProjectInfo.dir,ProjectInfo.windowInfos.back()->name);
 
 	//書き込み
@@ -2311,14 +2311,14 @@
 	tv.item.iSelectedImage=2;
 	tv.hParent=ProjectInfo.hWindowTreeItem;
-	tv.item.pszText=ProjectInfo.windowInfos.back().name;
-
-	ProjectInfo.windowInfos.back().hTreeItem=TreeView_InsertItem(hMaterialTreeView,&tv);
-
-	TreeView_SelectItem(hMaterialTreeView,ProjectInfo.windowInfos.back().hTreeItem);
+	tv.item.pszText=ProjectInfo.windowInfos.back()->name;
+
+	ProjectInfo.windowInfos.back()->hTreeItem=TreeView_InsertItem(hMaterialTreeView,&tv);
+
+	TreeView_SelectItem(hMaterialTreeView,ProjectInfo.windowInfos.back()->hTreeItem);
 
 
 	ProjectInfo.ModifyOfMaterial=1;
 
-	NewRadWindow( ProjectInfo.windowInfos.back() );
+	NewRadWindow( *ProjectInfo.windowInfos.back() );
 }
 void Project_Window_Delete(int WndInfoNum){
@@ -2327,5 +2327,5 @@
 	int i;
 
-	WINDOW_INFO *pWindowInfo = &ProjectInfo.windowInfos[WndInfoNum];
+	WindowInfo *pWindowInfo = ProjectInfo.windowInfos[WndInfoNum];
 
 	//ウィンドウが開かれている場合は閉じる
@@ -2357,9 +2357,5 @@
 
 	//ProjectInfo.windowInfos構造体から削除
-	std::vector<WINDOW_INFO>::iterator it = ProjectInfo.windowInfos.begin();
-	for( int i=0; i!=WndInfoNum ;i++, it++ )
-	{
-	}
-	ProjectInfo.windowInfos.erase( it );
+	ProjectInfo.windowInfos.Erase( WndInfoNum );
 
 	ProjectInfo.ModifyOfMaterial=1;
