Index: trunk/ab5.0/abdev/abdev/ProjectControl.cpp
===================================================================
--- trunk/ab5.0/abdev/abdev/ProjectControl.cpp	(revision 613)
+++ trunk/ab5.0/abdev/abdev/ProjectControl.cpp	(revision 615)
@@ -180,6 +180,6 @@
 					hTreeItem=TreeView_GetSelection(hMaterialTreeView);
 					for(i=0;i<static_cast<int>(ProjectInfo.windowInfos.size());i++){
-						if(ProjectInfo.windowInfos[i].hTreeItem==hTreeItem){
-							NewRadWindow( ProjectInfo.windowInfos[i] );
+						if(ProjectInfo.windowInfos[i]->hTreeItem==hTreeItem){
+							NewRadWindow( *ProjectInfo.windowInfos[i] );
 							break;
 						}
@@ -247,8 +247,8 @@
 					}
 					for(i=0;i<static_cast<int>(ProjectInfo.windowInfos.size());i++){
-						if(ProjectInfo.windowInfos[i].hTreeItem==hTreeItem){
+						if(ProjectInfo.windowInfos[i]->hTreeItem==hTreeItem){
 
 							//"%s ウィンドウをプロジェクトから削除します。よろしいですか？"
-							sprintf(str,STRING_PJ_CHECK_DELETEWINDOW,ProjectInfo.windowInfos[i].name);
+							sprintf(str,STRING_PJ_CHECK_DELETEWINDOW,ProjectInfo.windowInfos[i]->name);
 							if(IDCANCEL==MessageBox(hOwner,str,APPLICATION_NAME,MB_OKCANCEL|MB_ICONEXCLAMATION)) break;
 
@@ -1053,28 +1053,28 @@
 		// ウィンドウ定義ファイル（*.wnd）を作成
 		/////////////////////////////////////////
-		std::vector<WINDOW_INFO> windowInfos;
-		windowInfos.push_back( WINDOW_INFO() );
-		windowInfos.back().name="MainWnd";
-		windowInfos.back().HandleName="hMainWnd";
-		windowInfos.back().pos.x=CW_USEDEFAULT;
-		windowInfos.back().pos.y=CW_USEDEFAULT;
-		windowInfos.back().size.cx=480;
-		windowInfos.back().size.cy=360;
-		windowInfos.back().caption=NewProjectInfo.name;
+		WindowInfos windowInfos;
+		windowInfos.push_back( new WindowInfo() );
+		windowInfos.back()->name="MainWnd";
+		windowInfos.back()->HandleName="hMainWnd";
+		windowInfos.back()->pos.x=CW_USEDEFAULT;
+		windowInfos.back()->pos.y=CW_USEDEFAULT;
+		windowInfos.back()->size.cx=480;
+		windowInfos.back()->size.cy=360;
+		windowInfos.back()->caption=NewProjectInfo.name;
 		if(NewProjectInfo.dwTypeID==IDC_EXE_WINDOWBASE)
-			windowInfos.back().style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_VISIBLE;
+			windowInfos.back()->style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_VISIBLE;
 		else if(NewProjectInfo.dwTypeID==IDC_EXE_DIRECTX)
-			windowInfos.back().style=WS_OVERLAPPED|WS_THICKFRAME|WS_SYSMENU;
-		windowInfos.back().ExStyle=0;
-		windowInfos.back().MenuID=0;
-		windowInfos.back().id=0;
-		windowInfos.back().bgColor=COLOR_3DFACE;
-		GetDefaultWindowFont(&windowInfos.back().LogFont);
-		windowInfos.back().IconResName=0;
-		windowInfos.back().ClassName="NORMAL";
-		windowInfos.back().CallBackName="MainWndProc";
-		windowInfos.back().type=WNDTYPE_DEFAULT;
-		windowInfos.back().filepath="MainWnd.ab";
-		windowInfos.back().NumberOfChildWindows=0;
+			windowInfos.back()->style=WS_OVERLAPPED|WS_THICKFRAME|WS_SYSMENU;
+		windowInfos.back()->ExStyle=0;
+		windowInfos.back()->MenuID=0;
+		windowInfos.back()->id=0;
+		windowInfos.back()->bgColor=COLOR_3DFACE;
+		GetDefaultWindowFont(&windowInfos.back()->LogFont);
+		windowInfos.back()->IconResName=0;
+		windowInfos.back()->ClassName="NORMAL";
+		windowInfos.back()->CallBackName="MainWndProc";
+		windowInfos.back()->type=WNDTYPE_DEFAULT;
+		windowInfos.back()->filepath="MainWnd.ab";
+		windowInfos.back()->NumberOfChildWindows=0;
 		sprintf(temporary,"%s%s.wnd",dir,NewProjectInfo.name);
 
@@ -1204,10 +1204,10 @@
 	tv.hParent=TreeView_InsertItem(hMaterialTreeView,&tv);
 	ProjectInfo.hWindowTreeItem=tv.hParent;
-	BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+	BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 	{
 		tv.item.iImage=2;
 		tv.item.iSelectedImage=2;
-		tv.item.pszText = windowInfo.name;
-		windowInfo.hTreeItem=TreeView_InsertItem(hMaterialTreeView,&tv);
+		tv.item.pszText = pWindowInfo->name;
+		pWindowInfo->hTreeItem=TreeView_InsertItem(hMaterialTreeView,&tv);
 	}
 }
@@ -1457,5 +1457,5 @@
 	}
 	else{
-		ProjectInfo.windowInfos.clear();
+		ProjectInfo.windowInfos.Clear();
 
 		ProjectInfo.NumberOfMenu=0;
@@ -1582,6 +1582,6 @@
 						else if(lstrcmpi(temporary,"rad")==0){
 							for(i3=0;i3<static_cast<int>(ProjectInfo.windowInfos.size());i3++){
-								if(lstrcmpi(ProjectInfo.windowInfos[i3].name,temp2)==0){
-									NewRadWindow( ProjectInfo.windowInfos[i3] );
+								if(lstrcmpi(ProjectInfo.windowInfos[i3]->name,temp2)==0){
+									NewRadWindow( *ProjectInfo.windowInfos[i3] );
 									break;
 								}
@@ -1704,6 +1704,6 @@
 						else if(lstrcmpi(temporary,"rad")==0){
 							for(i3=0;i3<static_cast<int>(ProjectInfo.windowInfos.size());i3++){
-								if(lstrcmpi(ProjectInfo.windowInfos[i3].name,temp2)==0){
-									NewRadWindow( ProjectInfo.windowInfos[i3] );
+								if(lstrcmpi(ProjectInfo.windowInfos[i3]->name,temp2)==0){
+									NewRadWindow( *ProjectInfo.windowInfos[i3] );
 									break;
 								}
@@ -1895,7 +1895,7 @@
 		}
 		else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
-			BOOST_FOREACH( const WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+			BOOST_FOREACH( const WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 			{
-				if(lstrcmp(MdiInfo[WndNum].path, windowInfo.name)==0){
+				if(lstrcmp(MdiInfo[WndNum].path, pWindowInfo->name)==0){
 					SendMessage(hCloseChild,WM_CLOSE,0,0);
 					break;
@@ -1930,29 +1930,29 @@
 
 	//ウィンドウ情報のメモリを解放
-	BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+	BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 	{
-		HeapDefaultFree(windowInfo.name);
-		HeapDefaultFree(windowInfo.HandleName);
-		HeapDefaultFree(windowInfo.caption);
-		HeapDefaultFree(windowInfo.ClassName);
-		HeapDefaultFree(windowInfo.CallBackName);
-		HeapDefaultFree(windowInfo.filepath);
-		if(windowInfo.MenuID)
-			HeapDefaultFree(windowInfo.MenuID);
-		if(windowInfo.IconResName)
-			HeapDefaultFree(windowInfo.IconResName);
+		HeapDefaultFree(pWindowInfo->name);
+		HeapDefaultFree(pWindowInfo->HandleName);
+		HeapDefaultFree(pWindowInfo->caption);
+		HeapDefaultFree(pWindowInfo->ClassName);
+		HeapDefaultFree(pWindowInfo->CallBackName);
+		HeapDefaultFree(pWindowInfo->filepath);
+		if(pWindowInfo->MenuID)
+			HeapDefaultFree(pWindowInfo->MenuID);
+		if(pWindowInfo->IconResName)
+			HeapDefaultFree(pWindowInfo->IconResName);
 
 		//子ウィンドウのメモリを解放
-		for(i2=0;i2<windowInfo.NumberOfChildWindows;i2++){
-			HeapDefaultFree(windowInfo.pChildInfo[i2].IdName);
-			HeapDefaultFree(windowInfo.pChildInfo[i2].caption);
-			if(windowInfo.pChildInfo[i2].Control==CT_IMAGEBOX){
+		for(i2=0;i2<pWindowInfo->NumberOfChildWindows;i2++){
+			HeapDefaultFree(pWindowInfo->pChildInfo[i2].IdName);
+			HeapDefaultFree(pWindowInfo->pChildInfo[i2].caption);
+			if(pWindowInfo->pChildInfo[i2].Control==CT_IMAGEBOX){
 				//イメージ ボックスの場合
-				HeapDefaultFree(windowInfo.pChildInfo[i2].ImageCtrlInfo.path);
-			}
-		}
-		HeapDefaultFree(windowInfo.pChildInfo);
-	}
-	ProjectInfo.windowInfos.clear();
+				HeapDefaultFree(pWindowInfo->pChildInfo[i2].ImageCtrlInfo.path);
+			}
+		}
+		HeapDefaultFree(pWindowInfo->pChildInfo);
+	}
+	ProjectInfo.windowInfos.Clear();
 
 	//メニュー情報のメモリを解放
@@ -2040,7 +2040,7 @@
 		}
 		else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
-			BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
+			BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
 			{
-				if(lstrcmpi(MdiInfo[WndNum].path,windowInfo.name)==0){
+				if(lstrcmpi(MdiInfo[WndNum].path,pWindowInfo->name)==0){
 					sprintf(buffer+i2,"rad,%s\r\n",MdiInfo[WndNum].path);
 					i2+=lstrlen(buffer+i2);
