Index: trunk/ab5.0/abdev/abdev/Rad_UndoRedo.cpp
===================================================================
--- trunk/ab5.0/abdev/abdev/Rad_UndoRedo.cpp	(revision 481)
+++ trunk/ab5.0/abdev/abdev/Rad_UndoRedo.cpp	(revision 609)
@@ -7,5 +7,5 @@
 	extern MDIINFO MdiInfo[MAX_WNDNUM];
 	extern PROJECTINFO ProjectInfo;
-	int i,WndInfoNum;
+	int i;
 	DWORD dw;
 	char *temporary;
@@ -21,5 +21,6 @@
 	pUndoState->NowPos=i;
 
-	WndInfoNum=GetWndInfoNum(MdiInfo[WndNum].path);
+	WINDOW_INFO *pWindowInfo = GetWndInfo(MdiInfo[WndNum].path);
+	int WndInfoNum = GetWndInfoNum(MdiInfo[WndNum].path);
 	switch(pUndoState->Command[pUndoState->NowPos]){
 		case RAD_UNDO_INSERTITEM:
@@ -44,22 +45,22 @@
 				names=(RAD_UNDOSTATE_NAME *)pUndoState->lpdwData[pUndoState->NowPos];
 
-				temporary=ProjectInfo.pWindowInfo[WndInfoNum].name;
-				ProjectInfo.pWindowInfo[WndInfoNum].name=names->name;
+				temporary=pWindowInfo->name;
+				pWindowInfo->name=names->name;
 				names->name=temporary;
 				GlobalFree(MdiInfo[WndNum].path);
-				MdiInfo[WndNum].path=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(ProjectInfo.pWindowInfo[WndInfoNum].name)+1);
-				lstrcpy(MdiInfo[WndNum].path,ProjectInfo.pWindowInfo[WndInfoNum].name);
-
-				temporary=ProjectInfo.pWindowInfo[WndInfoNum].HandleName;
-				ProjectInfo.pWindowInfo[WndInfoNum].HandleName=names->HandleName;
+				MdiInfo[WndNum].path=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(pWindowInfo->name)+1);
+				lstrcpy(MdiInfo[WndNum].path,pWindowInfo->name);
+
+				temporary=pWindowInfo->HandleName;
+				pWindowInfo->HandleName=names->HandleName;
 				names->HandleName=temporary;
 
-				temporary=ProjectInfo.pWindowInfo[WndInfoNum].CallBackName;
-				ProjectInfo.pWindowInfo[WndInfoNum].CallBackName=names->CallBackName;
+				temporary=pWindowInfo->CallBackName;
+				pWindowInfo->CallBackName=names->CallBackName;
 				names->CallBackName=temporary;
 			}
 			else{
-				temporary=ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].IdName;
-				ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].IdName=(char *)pUndoState->lpdwData[pUndoState->NowPos];
+				temporary=pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].IdName;
+				pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].IdName=(char *)pUndoState->lpdwData[pUndoState->NowPos];
 				pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary;
 			}
@@ -69,38 +70,38 @@
 		case RAD_UNDO_CAPTION:
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==SELECT_WINDOW){
-				temporary=ProjectInfo.pWindowInfo[WndInfoNum].caption;
-				ProjectInfo.pWindowInfo[WndInfoNum].caption=(char *)pUndoState->lpdwData[pUndoState->NowPos];
+				temporary=pWindowInfo->caption;
+				pWindowInfo->caption=(char *)pUndoState->lpdwData[pUndoState->NowPos];
 				pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary;
 			}
 			else{
-				temporary=ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].caption;
-				ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].caption=(char *)pUndoState->lpdwData[pUndoState->NowPos];
+				temporary=pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].caption;
+				pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].caption=(char *)pUndoState->lpdwData[pUndoState->NowPos];
 				pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary;
 			}
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
 				ChangePropertyWindow(WndNum,WndInfoNum);
-			DrawRadWindow(WndNum,&ProjectInfo.pWindowInfo[WndInfoNum]);
+			DrawRadWindow(WndNum,pWindowInfo);
 			break;
 		case RAD_UNDO_FONT:
 			LOGFONT *pLogFont,lf;
 			pLogFont=(LOGFONT *)pUndoState->lpdwData[pUndoState->NowPos];
-			lf=ProjectInfo.pWindowInfo[WndInfoNum].LogFont;
-			ProjectInfo.pWindowInfo[WndInfoNum].LogFont=*pLogFont;
+			lf=pWindowInfo->LogFont;
+			pWindowInfo->LogFont=*pLogFont;
 			*pLogFont=lf;
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
 				ChangePropertyWindow(WndNum,WndInfoNum);
-			DrawRadWindow(WndNum,&ProjectInfo.pWindowInfo[WndInfoNum]);
+			DrawRadWindow(WndNum,pWindowInfo);
 			break;
 		case RAD_UNDO_BGCOLOR:
-			dw=ProjectInfo.pWindowInfo[WndInfoNum].bgColor;
-			ProjectInfo.pWindowInfo[WndInfoNum].bgColor=pUndoState->lpdwData[pUndoState->NowPos];
+			dw=pWindowInfo->bgColor;
+			pWindowInfo->bgColor=pUndoState->lpdwData[pUndoState->NowPos];
 			pUndoState->lpdwData[pUndoState->NowPos]=dw;
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
 				ChangePropertyWindow(WndNum,WndInfoNum);
-			DrawRadWindow(WndNum,&ProjectInfo.pWindowInfo[WndInfoNum]);
+			DrawRadWindow(WndNum,pWindowInfo);
 			break;
 		case RAD_UNDO_WINDOWMENU:
-			temporary=ProjectInfo.pWindowInfo[WndInfoNum].MenuID;
-			ProjectInfo.pWindowInfo[WndInfoNum].MenuID=(char *)pUndoState->lpdwData[pUndoState->NowPos];
+			temporary=pWindowInfo->MenuID;
+			pWindowInfo->MenuID=(char *)pUndoState->lpdwData[pUndoState->NowPos];
 			pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary;
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
@@ -108,6 +109,6 @@
 			break;
 		case RAD_UNDO_ICONRES:
-			temporary=ProjectInfo.pWindowInfo[WndInfoNum].IconResName;
-			ProjectInfo.pWindowInfo[WndInfoNum].IconResName=(char *)pUndoState->lpdwData[pUndoState->NowPos];
+			temporary=pWindowInfo->IconResName;
+			pWindowInfo->IconResName=(char *)pUndoState->lpdwData[pUndoState->NowPos];
 			pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary;
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
@@ -116,29 +117,29 @@
 		case RAD_UNDO_STYLE:
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==SELECT_WINDOW){
-				dw=ProjectInfo.pWindowInfo[WndInfoNum].style;
-				ProjectInfo.pWindowInfo[WndInfoNum].style=pUndoState->lpdwData[pUndoState->NowPos];
-				pUndoState->lpdwData[pUndoState->NowPos]=dw;
-			}
-			else{
-				dw=ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].style;
-				ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].style=pUndoState->lpdwData[pUndoState->NowPos];
-				pUndoState->lpdwData[pUndoState->NowPos]=dw;
-			}
-			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
-				ChangePropertyWindow(WndNum,WndInfoNum);
-			DrawRadWindow(WndNum,&ProjectInfo.pWindowInfo[WndInfoNum]);
+				dw=pWindowInfo->style;
+				pWindowInfo->style=pUndoState->lpdwData[pUndoState->NowPos];
+				pUndoState->lpdwData[pUndoState->NowPos]=dw;
+			}
+			else{
+				dw=pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].style;
+				pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].style=pUndoState->lpdwData[pUndoState->NowPos];
+				pUndoState->lpdwData[pUndoState->NowPos]=dw;
+			}
+			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
+				ChangePropertyWindow(WndNum,WndInfoNum);
+			DrawRadWindow(WndNum,pWindowInfo);
 			break;
 		case RAD_UNDO_EXSTYLE:
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==SELECT_WINDOW){
-				dw=ProjectInfo.pWindowInfo[WndInfoNum].ExStyle;
-				ProjectInfo.pWindowInfo[WndInfoNum].ExStyle=pUndoState->lpdwData[pUndoState->NowPos];
-				pUndoState->lpdwData[pUndoState->NowPos]=dw;
-			}
-			else{
-				dw=ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ExStyle;
-				ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ExStyle=pUndoState->lpdwData[pUndoState->NowPos];
-				pUndoState->lpdwData[pUndoState->NowPos]=dw;
-			}
-			DrawRadWindow(WndNum,&ProjectInfo.pWindowInfo[WndInfoNum]);
+				dw=pWindowInfo->ExStyle;
+				pWindowInfo->ExStyle=pUndoState->lpdwData[pUndoState->NowPos];
+				pUndoState->lpdwData[pUndoState->NowPos]=dw;
+			}
+			else{
+				dw=pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ExStyle;
+				pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ExStyle=pUndoState->lpdwData[pUndoState->NowPos];
+				pUndoState->lpdwData[pUndoState->NowPos]=dw;
+			}
+			DrawRadWindow(WndNum,pWindowInfo);
 			break;
 		case RAD_UNDO_POSITION:
@@ -146,15 +147,15 @@
 			pReadPointAndSize=(POINTANDSIZE *)pUndoState->lpdwData[pUndoState->NowPos];
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==SELECT_WINDOW){
-				PointAndSize.size=ProjectInfo.pWindowInfo[WndInfoNum].size;
-				ProjectInfo.pWindowInfo[WndInfoNum].size=pReadPointAndSize->size;
-			}
-			else{
-				PointAndSize.pos=ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].pos;
-				PointAndSize.size=ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].size;
-				ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].pos=pReadPointAndSize->pos;
-				ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].size=pReadPointAndSize->size;
+				PointAndSize.size=pWindowInfo->size;
+				pWindowInfo->size=pReadPointAndSize->size;
+			}
+			else{
+				PointAndSize.pos=pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].pos;
+				PointAndSize.size=pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].size;
+				pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].pos=pReadPointAndSize->pos;
+				pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].size=pReadPointAndSize->size;
 			}
 			*pReadPointAndSize=PointAndSize;
-			DrawRadWindow(WndNum,&ProjectInfo.pWindowInfo[WndInfoNum]);
+			DrawRadWindow(WndNum,pWindowInfo);
 			SetStatusText(NULL);
 
@@ -166,19 +167,19 @@
 			pImageCtrlInfo=(IMAGECTRLINFO *)pUndoState->lpdwData[pUndoState->NowPos];
 
-			dw=ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.type;
-			ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.type=pImageCtrlInfo->type;
+			dw=pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.type;
+			pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.type=pImageCtrlInfo->type;
 			pImageCtrlInfo->type=dw;
 
-			dw=(DWORD)ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.path;
-			ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.path=pImageCtrlInfo->path;
+			dw=(DWORD)pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.path;
+			pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.path=pImageCtrlInfo->path;
 			pImageCtrlInfo->path=(char *)dw;
 
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
 				ChangePropertyWindow(WndNum,WndInfoNum);
-			DrawRadWindow(WndNum,&ProjectInfo.pWindowInfo[WndInfoNum]);
+			DrawRadWindow(WndNum,pWindowInfo);
 			break;
 		case RAD_UNDO_TYPE:
-			dw=ProjectInfo.pWindowInfo[WndInfoNum].type;
-			ProjectInfo.pWindowInfo[WndInfoNum].type=pUndoState->lpdwData[pUndoState->NowPos];
+			dw=pWindowInfo->type;
+			pWindowInfo->type=pUndoState->lpdwData[pUndoState->NowPos];
 			pUndoState->lpdwData[pUndoState->NowPos]=dw;
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
@@ -195,5 +196,4 @@
 	extern MDIINFO MdiInfo[MAX_WNDNUM];
 	extern PROJECTINFO ProjectInfo;
-	int WndInfoNum;
 	DWORD dw;
 	char *temporary;
@@ -208,5 +208,6 @@
 	}
 
-	WndInfoNum=GetWndInfoNum(MdiInfo[WndNum].path);
+	WINDOW_INFO *pWindowInfo = GetWndInfo(MdiInfo[WndNum].path);
+	int WndInfoNum = GetWndInfoNum(MdiInfo[WndNum].path);
 	switch(pUndoState->Command[pUndoState->NowPos]){
 		case RAD_UNDO_INSERTITEM:
@@ -229,22 +230,22 @@
 				names=(RAD_UNDOSTATE_NAME *)pUndoState->lpdwData[pUndoState->NowPos];
 
-				temporary=ProjectInfo.pWindowInfo[WndInfoNum].name;
-				ProjectInfo.pWindowInfo[WndInfoNum].name=names->name;
+				temporary=pWindowInfo->name;
+				pWindowInfo->name=names->name;
 				names->name=temporary;
 				GlobalFree(MdiInfo[WndNum].path);
-				MdiInfo[WndNum].path=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(ProjectInfo.pWindowInfo[WndInfoNum].name)+1);
-				lstrcpy(MdiInfo[WndNum].path,ProjectInfo.pWindowInfo[WndInfoNum].name);
-
-				temporary=ProjectInfo.pWindowInfo[WndInfoNum].HandleName;
-				ProjectInfo.pWindowInfo[WndInfoNum].HandleName=names->HandleName;
+				MdiInfo[WndNum].path=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(pWindowInfo->name)+1);
+				lstrcpy(MdiInfo[WndNum].path,pWindowInfo->name);
+
+				temporary=pWindowInfo->HandleName;
+				pWindowInfo->HandleName=names->HandleName;
 				names->HandleName=temporary;
 
-				temporary=ProjectInfo.pWindowInfo[WndInfoNum].CallBackName;
-				ProjectInfo.pWindowInfo[WndInfoNum].CallBackName=names->CallBackName;
+				temporary=pWindowInfo->CallBackName;
+				pWindowInfo->CallBackName=names->CallBackName;
 				names->CallBackName=temporary;
 			}
 			else{
-				temporary=ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].IdName;
-				ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].IdName=(char *)pUndoState->lpdwData[pUndoState->NowPos];
+				temporary=pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].IdName;
+				pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].IdName=(char *)pUndoState->lpdwData[pUndoState->NowPos];
 				pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary;
 			}
@@ -254,38 +255,38 @@
 		case RAD_UNDO_CAPTION:
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==SELECT_WINDOW){
-				temporary=ProjectInfo.pWindowInfo[WndInfoNum].caption;
-				ProjectInfo.pWindowInfo[WndInfoNum].caption=(char *)pUndoState->lpdwData[pUndoState->NowPos];
+				temporary=pWindowInfo->caption;
+				pWindowInfo->caption=(char *)pUndoState->lpdwData[pUndoState->NowPos];
 				pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary;
 			}
 			else{
-				temporary=ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].caption;
-				ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].caption=(char *)pUndoState->lpdwData[pUndoState->NowPos];
+				temporary=pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].caption;
+				pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].caption=(char *)pUndoState->lpdwData[pUndoState->NowPos];
 				pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary;
 			}
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
 				ChangePropertyWindow(WndNum,WndInfoNum);
-			DrawRadWindow(WndNum,&ProjectInfo.pWindowInfo[WndInfoNum]);
+			DrawRadWindow(WndNum,pWindowInfo);
 			break;
 		case RAD_UNDO_FONT:
 			LOGFONT *pLogFont,lf;
 			pLogFont=(LOGFONT *)pUndoState->lpdwData[pUndoState->NowPos];
-			lf=ProjectInfo.pWindowInfo[WndInfoNum].LogFont;
-			ProjectInfo.pWindowInfo[WndInfoNum].LogFont=*pLogFont;
+			lf=pWindowInfo->LogFont;
+			pWindowInfo->LogFont=*pLogFont;
 			*pLogFont=lf;
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
 				ChangePropertyWindow(WndNum,WndInfoNum);
-			DrawRadWindow(WndNum,&ProjectInfo.pWindowInfo[WndInfoNum]);
+			DrawRadWindow(WndNum,pWindowInfo);
 			break;
 		case RAD_UNDO_BGCOLOR:
-			dw=ProjectInfo.pWindowInfo[WndInfoNum].bgColor;
-			ProjectInfo.pWindowInfo[WndInfoNum].bgColor=pUndoState->lpdwData[pUndoState->NowPos];
+			dw=pWindowInfo->bgColor;
+			pWindowInfo->bgColor=pUndoState->lpdwData[pUndoState->NowPos];
 			pUndoState->lpdwData[pUndoState->NowPos]=dw;
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
 				ChangePropertyWindow(WndNum,WndInfoNum);
-			DrawRadWindow(WndNum,&ProjectInfo.pWindowInfo[WndInfoNum]);
+			DrawRadWindow(WndNum,pWindowInfo);
 			break;
 		case RAD_UNDO_WINDOWMENU:
-			temporary=ProjectInfo.pWindowInfo[WndInfoNum].MenuID;
-			ProjectInfo.pWindowInfo[WndInfoNum].MenuID=(char *)pUndoState->lpdwData[pUndoState->NowPos];
+			temporary=pWindowInfo->MenuID;
+			pWindowInfo->MenuID=(char *)pUndoState->lpdwData[pUndoState->NowPos];
 			pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary;
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
@@ -293,6 +294,6 @@
 			break;
 		case RAD_UNDO_ICONRES:
-			temporary=ProjectInfo.pWindowInfo[WndInfoNum].IconResName;
-			ProjectInfo.pWindowInfo[WndInfoNum].IconResName=(char *)pUndoState->lpdwData[pUndoState->NowPos];
+			temporary=pWindowInfo->IconResName;
+			pWindowInfo->IconResName=(char *)pUndoState->lpdwData[pUndoState->NowPos];
 			pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary;
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
@@ -301,29 +302,29 @@
 		case RAD_UNDO_STYLE:
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==SELECT_WINDOW){
-				dw=ProjectInfo.pWindowInfo[WndInfoNum].style;
-				ProjectInfo.pWindowInfo[WndInfoNum].style=pUndoState->lpdwData[pUndoState->NowPos];
-				pUndoState->lpdwData[pUndoState->NowPos]=dw;
-			}
-			else{
-				dw=ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].style;
-				ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].style=pUndoState->lpdwData[pUndoState->NowPos];
-				pUndoState->lpdwData[pUndoState->NowPos]=dw;
-			}
-			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
-				ChangePropertyWindow(WndNum,WndInfoNum);
-			DrawRadWindow(WndNum,&ProjectInfo.pWindowInfo[WndInfoNum]);
+				dw=pWindowInfo->style;
+				pWindowInfo->style=pUndoState->lpdwData[pUndoState->NowPos];
+				pUndoState->lpdwData[pUndoState->NowPos]=dw;
+			}
+			else{
+				dw=pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].style;
+				pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].style=pUndoState->lpdwData[pUndoState->NowPos];
+				pUndoState->lpdwData[pUndoState->NowPos]=dw;
+			}
+			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
+				ChangePropertyWindow(WndNum,WndInfoNum);
+			DrawRadWindow(WndNum,pWindowInfo);
 			break;
 		case RAD_UNDO_EXSTYLE:
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==SELECT_WINDOW){
-				dw=ProjectInfo.pWindowInfo[WndInfoNum].ExStyle;
-				ProjectInfo.pWindowInfo[WndInfoNum].ExStyle=pUndoState->lpdwData[pUndoState->NowPos];
-				pUndoState->lpdwData[pUndoState->NowPos]=dw;
-			}
-			else{
-				dw=ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ExStyle;
-				ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ExStyle=pUndoState->lpdwData[pUndoState->NowPos];
-				pUndoState->lpdwData[pUndoState->NowPos]=dw;
-			}
-			DrawRadWindow(WndNum,&ProjectInfo.pWindowInfo[WndInfoNum]);
+				dw=pWindowInfo->ExStyle;
+				pWindowInfo->ExStyle=pUndoState->lpdwData[pUndoState->NowPos];
+				pUndoState->lpdwData[pUndoState->NowPos]=dw;
+			}
+			else{
+				dw=pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ExStyle;
+				pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ExStyle=pUndoState->lpdwData[pUndoState->NowPos];
+				pUndoState->lpdwData[pUndoState->NowPos]=dw;
+			}
+			DrawRadWindow(WndNum,pWindowInfo);
 			break;
 		case RAD_UNDO_POSITION:
@@ -331,15 +332,15 @@
 			pReadPointAndSize=(POINTANDSIZE *)pUndoState->lpdwData[pUndoState->NowPos];
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==SELECT_WINDOW){
-				PointAndSize.size=ProjectInfo.pWindowInfo[WndInfoNum].size;
-				ProjectInfo.pWindowInfo[WndInfoNum].size=pReadPointAndSize->size;
-			}
-			else{
-				PointAndSize.pos=ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].pos;
-				PointAndSize.size=ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].size;
-				ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].pos=pReadPointAndSize->pos;
-				ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].size=pReadPointAndSize->size;
+				PointAndSize.size=pWindowInfo->size;
+				pWindowInfo->size=pReadPointAndSize->size;
+			}
+			else{
+				PointAndSize.pos=pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].pos;
+				PointAndSize.size=pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].size;
+				pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].pos=pReadPointAndSize->pos;
+				pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].size=pReadPointAndSize->size;
 			}
 			*pReadPointAndSize=PointAndSize;
-			DrawRadWindow(WndNum,&ProjectInfo.pWindowInfo[WndInfoNum]);
+			DrawRadWindow(WndNum,pWindowInfo);
 			SetStatusText(NULL);
 
@@ -351,19 +352,19 @@
 			pImageCtrlInfo=(IMAGECTRLINFO *)pUndoState->lpdwData[pUndoState->NowPos];
 
-			dw=ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.type;
-			ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.type=pImageCtrlInfo->type;
+			dw=pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.type;
+			pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.type=pImageCtrlInfo->type;
 			pImageCtrlInfo->type=dw;
 
-			dw=(DWORD)ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.path;
-			ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.path=pImageCtrlInfo->path;
+			dw=(DWORD)pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.path;
+			pWindowInfo->pChildInfo[pUndoState->SelectItemNum[pUndoState->NowPos]].ImageCtrlInfo.path=pImageCtrlInfo->path;
 			pImageCtrlInfo->path=(char *)dw;
 
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
 				ChangePropertyWindow(WndNum,WndInfoNum);
-			DrawRadWindow(WndNum,&ProjectInfo.pWindowInfo[WndInfoNum]);
+			DrawRadWindow(WndNum,pWindowInfo);
 			break;
 		case RAD_UNDO_TYPE:
-			dw=ProjectInfo.pWindowInfo[WndInfoNum].type;
-			ProjectInfo.pWindowInfo[WndInfoNum].type=pUndoState->lpdwData[pUndoState->NowPos];
+			dw=pWindowInfo->type;
+			pWindowInfo->type=pUndoState->lpdwData[pUndoState->NowPos];
 			pUndoState->lpdwData[pUndoState->NowPos]=dw;
 			if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
