Index: trunk/ab5.0/abdev/abdev/ProjectControl.cpp
===================================================================
--- trunk/ab5.0/abdev/abdev/ProjectControl.cpp	(revision 618)
+++ trunk/ab5.0/abdev/abdev/ProjectControl.cpp	(revision 619)
@@ -133,5 +133,5 @@
 						if(pobj_ClassTreeView->pProcInfo[i].hTreeItem==hTreeItem){
 
-							if( projectInfo.name[0] ){
+							if( projectInfo.IsOpened() ){
 								// 対象ファイルを開く
 								lstrcpy(temporary,
@@ -559,6 +559,6 @@
 
 			hOldFont=(HFONT)SelectObject(hdc,hStatusFont);
-			if( projectInfo.name[0] ){
-				sprintf(temporary,"%s \'%s\'",STRING_PROJECT,projectInfo.name);
+			if( projectInfo.IsOpened() ){
+				sprintf(temporary,"%s \'%s\'",STRING_PROJECT,projectInfo.GetName().c_str());
 			}
 			else{
@@ -707,6 +707,6 @@
 
 	//既にプロジェクトが開かれている場合は閉じる
-	if(projectInfo.name[0]){
-		if(!CloseProject()) return;
+	if( projectInfo.IsOpened() ){
+		if(!projectInfo.Close()) return;
 	}
 
@@ -1109,5 +1109,5 @@
 
 	sprintf(temporary,"%s%s.pj",dir,NewProjectInfo.name);
-	OpenProject(temporary);
+	projectInfo.Open(temporary);
 	SaveProject();
 }
@@ -1119,5 +1119,5 @@
 	TV_INSERTSTRUCT tv;
 
-	sprintf(temporary,"%s ",projectInfo.name);
+	sprintf(temporary,"%s ",projectInfo.GetName().c_str());
 	lstrcat(temporary,STRING_PROJECT);
 	SetWindowText(hProjectView,temporary);
@@ -1215,255 +1215,9 @@
 	}
 }
-void OpenProject(char *path){
+void OpenWorkfile( const std::string &path )
+{
 	extern HANDLE hHeap;
 	int i,i2,i3;
 	char *buffer,temporary[MAX_PATH],temp2[MAX_PATH];
-
-	//既にプロジェクトが開かれている場合は閉じる
-	if(projectInfo.name[0]){
-		if(!CloseProject()) return;
-	}
-	//memset(&projectInfo,0,sizeof(PROJECTINFO));
-
-	//プロジェクトの作業ディレクトリを取得
-	_splitpath(path,projectInfo.dir,temporary,0,0);
-	lstrcat(projectInfo.dir,temporary);
-
-	//ファイルを開く、保存の初期ディレクトリをセット
-	lstrcpy(pobj_nv->DefSaveDir,projectInfo.dir);
-
-
-	//////////////////////////////////////////
-	// リソースデータ用領域を確保
-	projectInfo.res.pCursorResInfo=(RESITEMINFO *)HeapAlloc(hHeap,0,1);
-	projectInfo.res.NumberOfCursorRes=0;
-	projectInfo.res.pBitmapResInfo=(RESITEMINFO *)HeapAlloc(hHeap,0,1);
-	projectInfo.res.NumberOfBitmapRes=0;
-	projectInfo.res.pIconResInfo=(RESITEMINFO *)HeapAlloc(hHeap,0,1);
-	projectInfo.res.NumberOfIconRes=0;
-
-
-	//////////////////////////////////////////
-	//プロジェクトファイル（*.pj）をオープン
-	buffer=ReadBuffer(path);
-	if(!buffer) return;
-
-	//解析
-	projectInfo.pobj_DBFileInfo=new CDBFileInfo();
-	bool isUseWindow = false;
-	for(i=0;;i++){
-		if(buffer[i]=='\0') break;
-		if(buffer[i]=='\r'&&buffer[i+1]=='\n'&&buffer[i+2]=='#'){
-			for(i+=3,i2=0;;i++,i2++){
-				if(!IsVariableChar(buffer[i])){
-					temporary[i2]=0;
-					break;
-				}
-				temporary[i2]=buffer[i];
-			}
-			if(lstrcmpi(temporary,"VERSION")==0&&buffer[i]=='='){
-				for(i++,i2=0;;i++,i2++){
-					if((buffer[i]=='\r'&&buffer[i+1]=='\n')||buffer[i]=='\0'){
-						temporary[i2]=0;
-						if(buffer[i]=='\r'&&buffer[i+1]=='\n') i-=2;
-						break;
-					}
-					temporary[i2]=buffer[i];
-				}
-				projectInfo.dwVersion=GetValue(temporary);
-			}
-			else if(lstrcmpi(temporary,"MODULETYPE")==0&&buffer[i]=='='){
-				for(i++,i2=0;;i++,i2++){
-					if((buffer[i]=='\r'&&buffer[i+1]=='\n')||buffer[i]=='\0'){
-						temporary[i2]=0;
-						if(buffer[i]=='\r'&&buffer[i+1]=='\n') i-=2;
-						break;
-					}
-					temporary[i2]=buffer[i];
-				}
-				projectInfo.dwModuleType=atoi(temporary);
-			}
-			else if(lstrcmpi(temporary,"NAME")==0&&buffer[i]=='='){
-				for(i++,i2=0;;i++,i2++){
-					if((buffer[i]=='\r'&&buffer[i+1]=='\n')||buffer[i]=='\0'){
-						projectInfo.name[i2]=0;
-						break;
-					}
-					projectInfo.name[i2]=buffer[i];
-				}
-			}
-			else if(lstrcmpi(temporary,"PLATFORM")==0&&buffer[i]=='='){
-				for(i++,i2=0;;i++,i2++){
-					if((buffer[i]=='\r'&&buffer[i+1]=='\n')||buffer[i]=='\0'){
-						temporary[i2]=0;
-						if(buffer[i]=='\r'&&buffer[i+1]=='\n') i-=2;
-						break;
-					}
-					temporary[i2]=buffer[i];
-				}
-				i2=atoi(temporary);
-				extern HWND hSelectCompilerCombo;
-				if(i2==32){
-					//プラットフォームにWin32を選択
-					SendMessage(hSelectCompilerCombo,CB_SETCURSEL,0,0);
-				}
-				else if(i2==64){
-					//プラットフォームにWin64を選択
-					SendMessage(hSelectCompilerCombo,CB_SETCURSEL,1,0);
-				}
-				SendMessage(hSelectCompilerCombo,WM_COMMAND,MAKELONG(0,CBN_SELCHANGE),0);
-			}
-			else if(lstrcmpi(temporary,"USEWINDOW")==0&&buffer[i]=='='){
-				for(i++,i2=0;;i++,i2++){
-					if((buffer[i]=='\r'&&buffer[i+1]=='\n')||buffer[i]=='\0'){
-						temporary[i2]=0;
-						if(buffer[i]=='\r'&&buffer[i+1]=='\n') i-=2;
-						break;
-					}
-					temporary[i2]=buffer[i];
-				}
-				if( atoi(temporary) > 0 )
-				{
-					isUseWindow = true;
-				}
-			}
-			else if(lstrcmpi(temporary,"OPTION")==0&&buffer[i]=='='){
-				for(i++,i2=0;;i++,i2++){
-					if((buffer[i]=='\r'&&buffer[i+1]=='\n')||buffer[i]=='\0'){
-						temporary[i2]=0;
-						if(buffer[i]=='\r'&&buffer[i+1]=='\n') i-=2;
-						break;
-					}
-					temporary[i2]=buffer[i];
-				}
-				projectInfo.dwOption=GetValue(temporary);
-			}
-			else if(lstrcmpi(temporary,"OUTPUT_RELEASE")==0&&buffer[i]=='='){
-				for(i++,i2=0;;i++,i2++){
-					if((buffer[i]=='\r'&&buffer[i+1]=='\n')||buffer[i]=='\0'){
-						temporary[i2]=0;
-						if(buffer[i]=='\r'&&buffer[i+1]=='\n') i-=2;
-						break;
-					}
-					temporary[i2]=buffer[i];
-				}
-				lstrcpy(projectInfo.lpszOutput_Release,temporary);
-			}
-			else if(lstrcmpi(temporary,"OUTPUT_DEBUG")==0&&buffer[i]=='='){
-				for(i++,i2=0;;i++,i2++){
-					if((buffer[i]=='\r'&&buffer[i+1]=='\n')||buffer[i]=='\0'){
-						temporary[i2]=0;
-						if(buffer[i]=='\r'&&buffer[i+1]=='\n') i-=2;
-						break;
-					}
-					temporary[i2]=buffer[i];
-				}
-				lstrcpy(projectInfo.lpszOutput_Debug,temporary);
-			}
-			else if(lstrcmpi(temporary,"MANIFEST")==0&&buffer[i]=='='){
-				for(i++,i2=0;;i++,i2++){
-					if((buffer[i]=='\r'&&buffer[i+1]=='\n')||buffer[i]=='\0'){
-						temporary[i2]=0;
-						if(buffer[i]=='\r'&&buffer[i+1]=='\n') i-=2;
-						break;
-					}
-					temporary[i2]=buffer[i];
-				}
-				lstrcpy(projectInfo.szManifestPath,temporary);
-			}
-			else if(lstrcmpi(temporary,"DEBUG_CMD_LINE")==0&&buffer[i]=='='){
-				for(i++,i2=0;;i++,i2++){
-					if((buffer[i]=='\r'&&buffer[i+1]=='\n')||buffer[i]=='\0'){
-						temporary[i2]=0;
-						if(buffer[i]=='\r'&&buffer[i+1]=='\n') i-=2;
-						break;
-					}
-					temporary[i2]=buffer[i];
-				}
-				lstrcpy(projectInfo.szCmdLine,temporary);
-			}
-			else if(lstrcmpi(temporary,"DEBUG_EXE_PATH")==0&&buffer[i]=='='){
-				for(i++,i2=0;;i++,i2++){
-					if((buffer[i]=='\r'&&buffer[i+1]=='\n')||buffer[i]=='\0'){
-						temporary[i2]=0;
-						if(buffer[i]=='\r'&&buffer[i+1]=='\n') i-=2;
-						break;
-					}
-					temporary[i2]=buffer[i];
-				}
-				lstrcpy(projectInfo.szExePath,temporary);
-			}
-			else if(lstrcmpi(temporary,"RESOURCE")==0&&buffer[i]=='='){
-				for(i++,i2=0;;i++,i2++){
-					if((buffer[i]=='\r'&&buffer[i+1]=='\n')||buffer[i]=='\0'){
-						temporary[i2]=0;
-						if(buffer[i]=='\r'&&buffer[i+1]=='\n') i-=2;
-						break;
-					}
-					temporary[i2]=buffer[i];
-				}
-				if(temporary[0]!='\0'&&(!(temporary[0]=='0'&&temporary[1]=='\0'))){
-					lstrcpy(projectInfo.ResourceFileName,temporary);
-					GetResourceData();
-				}
-				else{
-					sprintf(projectInfo.ResourceFileName,"%s.rc",projectInfo.name);
-				}
-			}
-			else if(lstrcmpi(temporary,"SOURCE")==0&&buffer[i]=='\r'&&buffer[i+1]=='\n'){
-				while(1){
-					for(i+=2,i2=0;;i++,i2++){
-						if((buffer[i]=='\r'&&buffer[i+1]=='\n')||buffer[i]=='\0'){
-							temporary[i2]=0;
-							break;
-						}
-						temporary[i2]=buffer[i];
-					}
-					if(temporary[0]=='\0') break;
-					projectInfo.pobj_DBFileInfo->add(temporary,0);
-
-					if(buffer[i]=='\0') break;
-				}
-			}
-			else{
-				//不明なパラメータは無視
-				for(i++;;i++){
-					if((buffer[i]=='\r'&&buffer[i+1]=='\n')||buffer[i]=='\0'){
-						if(buffer[i]=='\r'&&buffer[i+1]=='\n') i-=2;
-						break;
-					}
-				}
-			}
-			if(buffer[i]=='\0') break;
-		}
-	}
-	HeapDefaultFree(buffer);
-
-	//古いバージョンファイルを考慮
-	if(projectInfo.dwVersion<=4){
-		if(projectInfo.dwModuleType==MT_DLL)
-			sprintf(projectInfo.lpszOutput_Release,".\\%s.dll",projectInfo.name);
-		else sprintf(projectInfo.lpszOutput_Release,".\\%s.exe",projectInfo.name);
-		sprintf(projectInfo.lpszOutput_Debug,".\\%s_debug.exe",projectInfo.name);
-	}
-
-	//ブレークポイントを初期化
-	projectInfo.pobj_DBBreakPoint=new CDBBreakPoint();
-
-
-	if( isUseWindow )
-	{
-		/////////////////////////////////////////////
-		//ウィンドウ定義ファイル（*.wnd）をオープン
-		sprintf(temp2,"%s%s.wnd",projectInfo.dir,projectInfo.name);
-		if(!OpenWindowFile(temp2)) return;
-	}
-	else{
-		projectInfo.windowInfos.Clear();
-
-		projectInfo.NumberOfMenu=0;
-		projectInfo.pMenuInfo=(MENU_INFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
-	}
-
 
 	//プロジェクト ビューを設定、表示
@@ -1485,9 +1239,8 @@
 	HWND hChild;
 	int WndNum;
-	sprintf(temp2,"%s%s.wrk",projectInfo.dir,projectInfo.name);
-	hFind=FindFirstFile(temp2,&wfd);
+	hFind=FindFirstFile(path.c_str(),&wfd);
 	if(hFind!=INVALID_HANDLE_VALUE){
 		FindClose(hFind);
-		buffer=ReadBuffer(temp2);
+		buffer=ReadBuffer(path);
 		if(!buffer) return;
 
@@ -1802,11 +1555,6 @@
 
 	//ウィンドウ タイトルを変更
-	sprintf(temporary,"%s - %s",projectInfo.name,APPLICATION_NAME);
+	sprintf(temporary,"%s - %s",projectInfo.GetName().c_str(),APPLICATION_NAME);
 	SetWindowText(hOwner,temporary);
-
-
-	projectInfo.modify=0;
-	projectInfo.ModifyOfMaterial=0;
-	projectInfo.ModifuOfResource=0;
 }
 BOOL ProjectModifyCheck(BOOL bRun){
@@ -1818,5 +1566,5 @@
 		if(bRun==0||pobj_nv->bSaveCheckProject){
 			//"\"%s\" プロジェクトは変更されています。保存しますか？"
-			sprintf(temporary,STRING_MODIFYCHECK_PROJECT,projectInfo.name);
+			sprintf(temporary,STRING_MODIFYCHECK_PROJECT,projectInfo.GetName().c_str());
 			i=MessageBox(hOwner,temporary,APPLICATION_NAME,MB_YESNOCANCEL|MB_ICONEXCLAMATION);
 
@@ -1852,5 +1600,5 @@
 			if(bRun==0||pobj_nv->bSaveCheckProject){
 				//"\"%s\" プロジェクトは変更されています。保存しますか？"
-				sprintf(temporary,STRING_MODIFYCHECK_PROJECT,projectInfo.name);
+				sprintf(temporary,STRING_MODIFYCHECK_PROJECT,projectInfo.GetName().c_str());
 				i=MessageBox(hOwner,temporary,APPLICATION_NAME,MB_YESNOCANCEL|MB_ICONEXCLAMATION);
 
@@ -1864,138 +1612,4 @@
 	}
 	return 2;
-}
-_int8 CloseProject(void){
-	extern HANDLE hHeap;
-	extern MDIINFO MdiInfo[MAX_WNDNUM];
-	int i,i2,WndNum;
-	HWND hChild,hCloseChild;
-	char temporary[MAX_PATH];
-
-
-	//保存確認
-	i=ProjectModifyCheck(0);
-	if(i==0) return 0;
-	else if(i==2) MakeWorkFile();
-
-	//プロジェクトに関するMDIウィンドウをすべて閉じる
-	hChild=GetWindow(hClient,GW_CHILD);
-	while(hChild){
-		hCloseChild=hChild;
-		hChild=GetNextWindow(hChild,GW_HWNDNEXT);
-		WndNum=GetWndNum(hCloseChild);
-		if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
-			for(i=0;i<projectInfo.pobj_DBFileInfo->iNum;i++){
-				projectInfo.pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
-				if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
-
-					//変更フラグをオフにする
-					MdiInfo[WndNum].pMdiTextEdit->UnModify();
-
-					SendMessage(hCloseChild,WM_CLOSE,0,0);
-					break;
-				}
-			}
-		}
-		else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
-			BOOST_FOREACH( const WindowInfo *pWindowInfo, projectInfo.windowInfos )
-			{
-				if( pWindowInfo->GetName() == MdiInfo[WndNum].path ){
-					SendMessage(hCloseChild,WM_CLOSE,0,0);
-					break;
-				}
-			}
-		}
-		else if(MdiInfo[WndNum].DocType==WNDTYPE_MENU){
-			for(i=0;i<projectInfo.NumberOfMenu;i++){
-				if(lstrcmp(MdiInfo[WndNum].path,projectInfo.pMenuInfo[i].IdName)==0){
-					SendMessage(hCloseChild,WM_CLOSE,0,0);
-					break;
-				}
-			}
-		}
-		else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){
-			for(i=0;projectInfo.res.NumberOfIconRes;i++){
-				lstrcpy(temporary,projectInfo.res.pIconResInfo[i].path);
-				GetFullPath(temporary,projectInfo.dir);
-				if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
-					SendMessage(hCloseChild,WM_CLOSE,0,0);
-					break;
-				}
-			}
-		}
-	}
-
-	//ファイル情報のメモリを解放
-	delete projectInfo.pobj_DBFileInfo;
-
-	//ブレークポイントのオブジェクトを解放
-	delete projectInfo.pobj_DBBreakPoint;
-
-	//ウィンドウ情報のメモリを解放
-	BOOST_FOREACH( WindowInfo *pWindowInfo, projectInfo.windowInfos )
-	{
-		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<pWindowInfo->childWindowInfos.size();i2++){
-			HeapDefaultFree(pWindowInfo->childWindowInfos[i2]->IdName);
-			HeapDefaultFree(pWindowInfo->childWindowInfos[i2]->caption);
-			if(pWindowInfo->childWindowInfos[i2]->Control==CT_IMAGEBOX){
-				//イメージ ボックスの場合
-				HeapDefaultFree(pWindowInfo->childWindowInfos[i2]->ImageCtrlInfo.path);
-			}
-
-			delete pWindowInfo->childWindowInfos[i2];
-		}
-		pWindowInfo->childWindowInfos.clear();
-	}
-	projectInfo.windowInfos.Clear();
-
-	//メニュー情報のメモリを解放
-	HeapMenuDataFree(projectInfo.pMenuInfo,projectInfo.NumberOfMenu,0);
-	HeapDefaultFree(projectInfo.pMenuInfo);
-
-	//リソースのメモリを解放
-	for(i=0;i<projectInfo.res.NumberOfCursorRes;i++){
-		HeapDefaultFree(projectInfo.res.pCursorResInfo[i].IdName);
-		HeapDefaultFree(projectInfo.res.pCursorResInfo[i].path);
-	}
-	HeapDefaultFree(projectInfo.res.pCursorResInfo);
-	for(i=0;i<projectInfo.res.NumberOfBitmapRes;i++){
-		HeapDefaultFree(projectInfo.res.pBitmapResInfo[i].IdName);
-		HeapDefaultFree(projectInfo.res.pBitmapResInfo[i].path);
-	}
-	HeapDefaultFree(projectInfo.res.pBitmapResInfo);
-	for(i=0;i<projectInfo.res.NumberOfIconRes;i++){
-		HeapDefaultFree(projectInfo.res.pIconResInfo[i].IdName);
-		HeapDefaultFree(projectInfo.res.pIconResInfo[i].path);
-	}
-	HeapDefaultFree(projectInfo.res.pIconResInfo);
-
-	//プロジェクト ビューを非表示にする
-	extern HWND hProjectView;
-	if(IsWindowVisible(hProjectView)) SendMessage(hOwner,WM_COMMAND,IDM_PROJECTVIEW,0);
-	SetWindowText(hProjectView,"Project View");
-
-	TreeView_DeleteAllItems(pobj_FileTree->hTree);
-	TreeView_DeleteAllItems(hProcedureTreeView);
-	TreeView_DeleteAllItems(hMaterialTreeView);
-
-	//ウィンドウ タイトルを変更
-	SetWindowText(hOwner,APPLICATION_NAME);
-
-	projectInfo.name[0]=0;
-
-	//メニュー状態を設定
-	ResetState_DocMenu();
-
-	return 1;
 }
 void MakeWorkFile(void){
@@ -2116,5 +1730,5 @@
 
 	//保存
-	sprintf(temporary,"%s%s.wrk",projectInfo.dir,projectInfo.name);
+	sprintf(temporary,"%s%s.wrk",projectInfo.dir,projectInfo.GetName().c_str());
 	WriteBuffer(temporary,buffer,i2);
 }
@@ -2167,15 +1781,15 @@
 	sprintf(buffer+i2,"#VERSION=%d\r\n\r\n",projectInfo.dwVersion);
 	i2+=lstrlen(buffer+i2);
-	sprintf(buffer+i2,"#MODULETYPE=%d\r\n\r\n",projectInfo.dwModuleType);
+	sprintf(buffer+i2,"#MODULETYPE=%d\r\n\r\n",(int)projectInfo.GetModuleType());
 	i2+=lstrlen(buffer+i2);
-	sprintf(buffer+i2,"#NAME=%s\r\n\r\n",projectInfo.name);
+	sprintf(buffer+i2,"#NAME=%s\r\n\r\n",projectInfo.GetName().c_str());
 	i2+=lstrlen(buffer+i2);
 	extern HWND hSelectCompilerCombo;
 	if(SendMessage(hSelectCompilerCombo,CB_GETCURSEL,0,0)==0){
-		sprintf(buffer+i2,"#PLATFORM=32\r\n\r\n",projectInfo.name);
+		sprintf(buffer+i2,"#PLATFORM=32\r\n\r\n",projectInfo.GetName().c_str());
 		i2+=lstrlen(buffer+i2);
 	}
 	else{
-		sprintf(buffer+i2,"#PLATFORM=64\r\n\r\n",projectInfo.name);
+		sprintf(buffer+i2,"#PLATFORM=64\r\n\r\n",projectInfo.GetName().c_str());
 		i2+=lstrlen(buffer+i2);
 	}
@@ -2210,5 +1824,5 @@
 
 	//保存
-	sprintf(temporary,"%s%s.pj",projectInfo.dir,projectInfo.name);
+	sprintf(temporary,"%s%s.pj",projectInfo.dir,projectInfo.GetName().c_str());
 	WriteBuffer(temporary,buffer,i2);
 
@@ -2353,10 +1967,10 @@
 		lstrcpy(buffer+i2,"#include \"resource.ab\"\r\n");
 		i2+=lstrlen(buffer+i2);
-		sprintf(buffer+i2,"#resource \"%s.rc\"\r\n",projectInfo.name);
+		sprintf(buffer+i2,"#resource \"%s.rc\"\r\n",projectInfo.GetName().c_str());
 		i2+=lstrlen(buffer+i2);
 	}
 
 	//保存
-	sprintf(temporary,"%s%s.idx",projectInfo.dir,projectInfo.name);
+	sprintf(temporary,"%s%s.idx",projectInfo.dir,projectInfo.GetName().c_str());
 	WriteBuffer(temporary,buffer,i2);
 
@@ -2367,5 +1981,5 @@
 		//ウィンドウ関連ファイル（*.wnd）を作成、保存
 		if(projectInfo.ModifyOfMaterial){
-			sprintf(temporary,"%s%s.wnd",projectInfo.dir,projectInfo.name);
+			sprintf(temporary,"%s%s.wnd",projectInfo.dir,projectInfo.GetName().c_str());
 			SaveWindowFile( temporary, projectInfo.windowInfos );
 		}
