Ignore:
Timestamp:
May 18, 2008, 4:37:11 PM (16 years ago)
Author:
dai_9181
Message:

ProjectInfo構造体のpWindowInfoメンバをwindowInfosメンバに置き換えた。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/abdev/WindowControl.cpp

    r477 r609  
    1616    extern PROJECTINFO ProjectInfo;
    1717    int i;
    18     for(i=0;i<ProjectInfo.NumberOfWindows;i++){
    19         if(lstrcmpi(name,ProjectInfo.pWindowInfo[i].name)==0) return i;
     18    for(i=0;i<ProjectInfo.windowInfos.size();i++){
     19        if(lstrcmpi(name,ProjectInfo.windowInfos[i].name)==0) return i;
    2020    }
    2121    return -1;
     22}
     23WINDOW_INFO *GetWndInfo( char *name )
     24{
     25    extern PROJECTINFO ProjectInfo;
     26    int i;
     27    for( int i=0;i<ProjectInfo.windowInfos.size();i++)
     28    {
     29        if(lstrcmpi(name,ProjectInfo.windowInfos[i].name)==0) return &ProjectInfo.windowInfos[i];
     30    }
     31    return NULL;
    2232}
    2333void ChangeDivisionToOrSign(char *CopyBuffer,const char *ReadBuffer){
     
    8191
    8292    for(i3--;i3>=0;i3--){
    83         pChildInfo=&ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[i3]];
     93        pChildInfo=&ProjectInfo.windowInfos[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[i3]];
    8494
    8595        MemSize+=lstrlen(pChildInfo->IdName)+1+
     
    518528    int i,i2,sw;
    519529    char temporary[MAX_PATH],*temp2;
    520     WINDOW_INFO *pWindowInfo;
    521 
    522     pWindowInfo=&ProjectInfo.pWindowInfo[WndInfoNum];
     530
     531    WINDOW_INFO *pWindowInfo = &ProjectInfo.windowInfos[WndInfoNum];
    523532
    524533    Command[0]=0;
     
    976985    int i,i2,i3,i4,i5,i6,sw1,sw2,sw3,sw4,size;
    977986    char *buffer,**ppNames,temporary[MAX_PATH];
    978     WINDOW_INFO *pWindowInfo;
    979 
    980     pWindowInfo=ProjectInfo.pWindowInfo;
    981987
    982988    size=2;
     
    10021008
    10031009    ppNames=(char **)HeapAlloc(hHeap,0,1);
    1004     for(i=0,i4=1000,i5=0;i<ProjectInfo.NumberOfWindows;i++){
    1005         for(i3=0;i3<pWindowInfo[i].NumberOfChildWindows;i3++){
     1010    for(i=0,i4=1000,i5=0;i<ProjectInfo.windowInfos.size();i++){
     1011        for(i3=0;i3<ProjectInfo.windowInfos[i].NumberOfChildWindows;i3++){
    10061012
    10071013            //重複チェック
    10081014            for(i6=0,sw1=0;i6<i5;i6++){
    1009                 if(lstrcmpi(ppNames[i6],pWindowInfo[i].pChildInfo[i3].IdName)==0){
     1015                if(lstrcmpi(ppNames[i6],ProjectInfo.windowInfos[i].pChildInfo[i3].IdName)==0){
    10101016                    sw1=1;
    10111017                    break;
     
    10151021
    10161022            ppNames=(char **)HeapReAlloc(hHeap,0,ppNames,sizeof(char *)*(i5+1));
    1017             ppNames[i5]=pWindowInfo[i].pChildInfo[i3].IdName;
     1023            ppNames[i5]=ProjectInfo.windowInfos[i].pChildInfo[i3].IdName;
    10181024            i5++;
    10191025
    1020             sprintf(buffer+i2,"Const %s=%d\r\n",pWindowInfo[i].pChildInfo[i3].IdName,i4);
     1026            sprintf(buffer+i2,"Const %s=%d\r\n",ProjectInfo.windowInfos[i].pChildInfo[i3].IdName,i4);
    10211027            i2+=lstrlen(buffer+i2);
    10221028            i4++;
     
    10381044
    10391045    //ハンドル変数を定義
    1040     for(i=0;i<ProjectInfo.NumberOfWindows;i++){
    1041         sprintf(buffer+i2,"Dim %s As HWND\r\n",pWindowInfo[i].HandleName);
    1042         i2+=lstrlen(buffer+i2);
    1043         sprintf(buffer+i2,"Dim hFont_%s As HFONT\r\n",pWindowInfo[i].name);
     1046    for(i=0;i<ProjectInfo.windowInfos.size();i++){
     1047        sprintf(buffer+i2,"Dim %s As HWND\r\n",ProjectInfo.windowInfos[i].HandleName);
     1048        i2+=lstrlen(buffer+i2);
     1049        sprintf(buffer+i2,"Dim hFont_%s As HFONT\r\n",ProjectInfo.windowInfos[i].name);
    10441050        i2+=lstrlen(buffer+i2);
    10451051        sprintf(buffer+i2,"hFont_%s=CreateFont(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\"%s\")\r\n",
    1046             pWindowInfo[i].name,
    1047             pWindowInfo[i].LogFont.lfHeight,
    1048             pWindowInfo[i].LogFont.lfWidth,
    1049             pWindowInfo[i].LogFont.lfEscapement,
    1050             pWindowInfo[i].LogFont.lfOrientation,
    1051             pWindowInfo[i].LogFont.lfWeight,
    1052             pWindowInfo[i].LogFont.lfItalic,
    1053             pWindowInfo[i].LogFont.lfUnderline,
    1054             pWindowInfo[i].LogFont.lfStrikeOut,
    1055             pWindowInfo[i].LogFont.lfCharSet,
    1056             pWindowInfo[i].LogFont.lfOutPrecision,
    1057             pWindowInfo[i].LogFont.lfClipPrecision,
    1058             pWindowInfo[i].LogFont.lfQuality,
    1059             pWindowInfo[i].LogFont.lfPitchAndFamily,
    1060             pWindowInfo[i].LogFont.lfFaceName);
     1052            ProjectInfo.windowInfos[i].name,
     1053            ProjectInfo.windowInfos[i].LogFont.lfHeight,
     1054            ProjectInfo.windowInfos[i].LogFont.lfWidth,
     1055            ProjectInfo.windowInfos[i].LogFont.lfEscapement,
     1056            ProjectInfo.windowInfos[i].LogFont.lfOrientation,
     1057            ProjectInfo.windowInfos[i].LogFont.lfWeight,
     1058            ProjectInfo.windowInfos[i].LogFont.lfItalic,
     1059            ProjectInfo.windowInfos[i].LogFont.lfUnderline,
     1060            ProjectInfo.windowInfos[i].LogFont.lfStrikeOut,
     1061            ProjectInfo.windowInfos[i].LogFont.lfCharSet,
     1062            ProjectInfo.windowInfos[i].LogFont.lfOutPrecision,
     1063            ProjectInfo.windowInfos[i].LogFont.lfClipPrecision,
     1064            ProjectInfo.windowInfos[i].LogFont.lfQuality,
     1065            ProjectInfo.windowInfos[i].LogFont.lfPitchAndFamily,
     1066            ProjectInfo.windowInfos[i].LogFont.lfFaceName);
    10611067        i2+=lstrlen(buffer+i2);
    10621068
     
    10721078    lstrcpy(buffer+i2,"h3DFaceBrush=CreateSolidBrush(GetSysColor(COLOR_3DFACE))\r\n");
    10731079    i2+=lstrlen(buffer+i2);
    1074     for(i=0;i<ProjectInfo.NumberOfWindows;i++){
    1075         if(pWindowInfo[i].bgColor<=0&&
    1076             pWindowInfo[i].bgColor!=-(int)RGB(255,255,255)&&
    1077             pWindowInfo[i].bgColor!=-(int)RGB(0,0,0)){
     1080    for(i=0;i<ProjectInfo.windowInfos.size();i++){
     1081        if(ProjectInfo.windowInfos[i].bgColor<=0&&
     1082            ProjectInfo.windowInfos[i].bgColor!=-(int)RGB(255,255,255)&&
     1083            ProjectInfo.windowInfos[i].bgColor!=-(int)RGB(0,0,0)){
    10781084                sprintf(buffer+i2,"Dim _RadSys_hBackBrush%d As HBRUSH\r\n",i);
    10791085                i2+=lstrlen(buffer+i2);
    1080                 sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreateSolidBrush(%d)\r\n",i,-pWindowInfo[i].bgColor);
     1086                sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreateSolidBrush(%d)\r\n",i,-ProjectInfo.windowInfos[i].bgColor);
    10811087                i2+=lstrlen(buffer+i2);
    10821088        }
    1083         if(pWindowInfo[i].bgColor>=0x1000){
     1089        if(ProjectInfo.windowInfos[i].bgColor>=0x1000){
    10841090                sprintf(buffer+i2,"Dim _RadSys_hBackBrush%d As HBRUSH\r\n",i);
    10851091                i2+=lstrlen(buffer+i2);
    10861092                sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreatePatternBrush(LoadImage(GetModuleHandle(0),%s,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE or LR_SHARED))\r\n",
    10871093                    i,
    1088                     ProjectInfo.res.pBitmapResInfo[pWindowInfo[i].bgColor-0x1000].IdName);
     1094                    ProjectInfo.res.pBitmapResInfo[ProjectInfo.windowInfos[i].bgColor-0x1000].IdName);
    10891095                i2+=lstrlen(buffer+i2);
    10901096        }
     
    10951101
    10961102    //イメージ ボックス用の変数を定義
    1097     for(i=0;i<ProjectInfo.NumberOfWindows;i++){
    1098         for(i3=0;i3<pWindowInfo[i].NumberOfChildWindows;i3++){
    1099             if(pWindowInfo[i].pChildInfo[i3].Control==CT_IMAGEBOX){
    1100                 if((pWindowInfo[i].pChildInfo[i3].style&0x000F)==SS_ICON||
    1101                     (pWindowInfo[i].pChildInfo[i3].style&0x000F)==SS_BITMAP){
    1102                     sprintf(buffer+i2,"Dim hImage_%s_%s As HANDLE\r\n",pWindowInfo[i].name,pWindowInfo[i].pChildInfo[i3].IdName);
     1103    for(i=0;i<ProjectInfo.windowInfos.size();i++){
     1104        for(i3=0;i3<ProjectInfo.windowInfos[i].NumberOfChildWindows;i3++){
     1105            if(ProjectInfo.windowInfos[i].pChildInfo[i3].Control==CT_IMAGEBOX){
     1106                if((ProjectInfo.windowInfos[i].pChildInfo[i3].style&0x000F)==SS_ICON||
     1107                    (ProjectInfo.windowInfos[i].pChildInfo[i3].style&0x000F)==SS_BITMAP){
     1108                    sprintf(buffer+i2,"Dim hImage_%s_%s As HANDLE\r\n",ProjectInfo.windowInfos[i].name,ProjectInfo.windowInfos[i].pChildInfo[i3].IdName);
    11031109                    i2+=lstrlen(buffer+i2);
    11041110
     
    11481154    }
    11491155
    1150     for(i=0;i<ProjectInfo.NumberOfWindows;i++){
     1156    for(i=0;i<ProjectInfo.windowInfos.size();i++){
    11511157        //フォントハンドル解放
    1152         sprintf(buffer+i2,"\tDeleteObject(hFont_%s)\r\n",ProjectInfo.pWindowInfo[i].name);
     1158        sprintf(buffer+i2,"\tDeleteObject(hFont_%s)\r\n",ProjectInfo.windowInfos[i].name);
    11531159        i2+=lstrlen(buffer+i2);
    11541160
     
    11621168    lstrcpy(buffer+i2,"\tDeleteObject(h3DFaceBrush)\r\n");
    11631169    i2+=lstrlen(buffer+i2);
    1164     for(i=0;i<ProjectInfo.NumberOfWindows;i++){
    1165         if(pWindowInfo[i].bgColor<=0&&
    1166             pWindowInfo[i].bgColor!=-(int)RGB(255,255,255)&&
    1167             pWindowInfo[i].bgColor!=-(int)RGB(0,0,0)){
     1170    for(i=0;i<ProjectInfo.windowInfos.size();i++){
     1171        if(ProjectInfo.windowInfos[i].bgColor<=0&&
     1172            ProjectInfo.windowInfos[i].bgColor!=-(int)RGB(255,255,255)&&
     1173            ProjectInfo.windowInfos[i].bgColor!=-(int)RGB(0,0,0)){
    11681174                sprintf(buffer+i2,"\tDeleteObject(_RadSys_hBackBrush%d)\r\n",i);
    11691175                i2+=lstrlen(buffer+i2);
     
    11781184
    11791185
    1180     for(i=0;i<ProjectInfo.NumberOfWindows;i++){
     1186    for(i=0;i<ProjectInfo.windowInfos.size();i++){
    11811187        if(i!=0){
    11821188            lstrcpy(buffer+i2,"\r\n");
     
    11911197        ppNames=GetProcedureNamesOfMessageCall(i,&pItemEventInfo,&i3,&bAvailUserProc[i]);
    11921198
    1193         sprintf(buffer+i2,"Function EventCall_%s(hWnd As HWND, message As DWord, wParam As WPARAM, lParam As LPARAM) As LRESULT\r\n",pWindowInfo[i].name);
     1199        sprintf(buffer+i2,"Function EventCall_%s(hWnd As HWND, message As DWord, wParam As WPARAM, lParam As LPARAM) As LRESULT\r\n",ProjectInfo.windowInfos[i].name);
    11941200        i2+=lstrlen(buffer+i2);
    11951201
     
    12291235            i2+=lstrlen(buffer+i2);
    12301236            if(sw4){
    1231                 sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",pWindowInfo[i].name);
     1237                sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",ProjectInfo.windowInfos[i].name);
    12321238                i2+=lstrlen(buffer+i2);
    12331239            }
     
    12391245            i2+=lstrlen(buffer+i2);
    12401246
    1241             if(GetNotifyCommandByItemMessage(&pWindowInfo[i],pItemEventInfo,buffer+i2,"\t\t\t\t")){
     1247            if(GetNotifyCommandByItemMessage(&ProjectInfo.windowInfos[i],pItemEventInfo,buffer+i2,"\t\t\t\t")){
    12421248                i2+=lstrlen(buffer+i2);
    12431249
     
    12551261            lstrcpy(buffer+i2,"\t\tCase WM_NOTIFY\r\n");
    12561262            i2+=lstrlen(buffer+i2);
    1257             sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",pWindowInfo[i].name);
     1263            sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",ProjectInfo.windowInfos[i].name);
    12581264            i2+=lstrlen(buffer+i2);
    12591265        }
     
    12671273
    12681274            //pItemEventInfoのIdName、EventNameメンバのメモリ解放はこの関数内で行う
    1269             GetCommandByItemMessage(&pWindowInfo[i],pItemEventInfo,buffer+i2,"\t\t\t\t");
     1275            GetCommandByItemMessage(&ProjectInfo.windowInfos[i],pItemEventInfo,buffer+i2,"\t\t\t\t");
    12701276            i2+=lstrlen(buffer+i2);
    12711277
     
    12781284        lstrcpy(buffer+i2,"\t\tCase Else\r\n");
    12791285        i2+=lstrlen(buffer+i2);
    1280         sprintf(buffer+i2,"\t\t\tEventCall_%s=DefWindowProc(hWnd,message,wParam,lParam)\r\n",pWindowInfo[i].name);
     1286        sprintf(buffer+i2,"\t\t\tEventCall_%s=DefWindowProc(hWnd,message,wParam,lParam)\r\n",ProjectInfo.windowInfos[i].name);
    12811287        i2+=lstrlen(buffer+i2);
    12821288        lstrcpy(buffer+i2,"\t\t\tExit Function\r\n");
     
    12861292        i2+=lstrlen(buffer+i2);
    12871293
    1288         sprintf(buffer+i2,"\tEventCall_%s=0\r\n",pWindowInfo[i].name);
     1294        sprintf(buffer+i2,"\tEventCall_%s=0\r\n",ProjectInfo.windowInfos[i].name);
    12891295        i2+=lstrlen(buffer+i2);
    12901296        lstrcpy(buffer+i2,"End Function\r\n");
     
    13381344    lstrcpy(buffer+i2,"\tDim hDlg As HWND\r\n");
    13391345    i2+=lstrlen(buffer+i2);
    1340     for(i=0,sw1=0;i<ProjectInfo.NumberOfWindows;i++){
    1341         if(pWindowInfo[i].type==WNDTYPE_MODALDLG){
     1346    for(i=0,sw1=0;i<ProjectInfo.windowInfos.size();i++){
     1347        if(ProjectInfo.windowInfos[i].type==WNDTYPE_MODALDLG){
    13421348            if(sw1==0){
    1343                 sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",pWindowInfo[i].name);
     1349                sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",ProjectInfo.windowInfos[i].name);
    13441350                i2+=lstrlen(buffer+i2);
    13451351                sw1=1;
    13461352            }
    13471353            else{
    1348                 sprintf(buffer+i2,"\tElseIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",pWindowInfo[i].name);
     1354                sprintf(buffer+i2,"\tElseIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",ProjectInfo.windowInfos[i].name);
    13491355                i2+=lstrlen(buffer+i2);
    13501356            }
    13511357            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",
    1352                 pWindowInfo[i].HandleName,
    1353                 pWindowInfo[i].ExStyle,
    1354                 pWindowInfo[i].caption,
    1355                 pWindowInfo[i].style,
    1356                 pWindowInfo[i].pos.x,
    1357                 pWindowInfo[i].pos.y,
    1358                 pWindowInfo[i].size.cx,
    1359                 pWindowInfo[i].size.cy,
    1360                 pWindowInfo[i].id);
     1358                ProjectInfo.windowInfos[i].HandleName,
     1359                ProjectInfo.windowInfos[i].ExStyle,
     1360                ProjectInfo.windowInfos[i].caption,
     1361                ProjectInfo.windowInfos[i].style,
     1362                ProjectInfo.windowInfos[i].pos.x,
     1363                ProjectInfo.windowInfos[i].pos.y,
     1364                ProjectInfo.windowInfos[i].size.cx,
     1365                ProjectInfo.windowInfos[i].size.cy,
     1366                ProjectInfo.windowInfos[i].id);
    13611367            i2+=lstrlen(buffer+i2);
    13621368            sprintf(buffer+i2,"\t\thDlg=%s\r\n",
    1363                 pWindowInfo[i].HandleName);
     1369                ProjectInfo.windowInfos[i].HandleName);
    13641370            i2+=lstrlen(buffer+i2);
    13651371            if(bAvailUserProc[i]){
    13661372                sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(%s) As LONG_PTR)\r\n",
    1367                     pWindowInfo[i].HandleName,
    1368                     pWindowInfo[i].CallBackName);
     1373                    ProjectInfo.windowInfos[i].HandleName,
     1374                    ProjectInfo.windowInfos[i].CallBackName);
    13691375            }
    13701376            else{
    13711377                sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(EventCall_%s) As LONG_PTR)\r\n",
    1372                     pWindowInfo[i].HandleName,
    1373                     pWindowInfo[i].name);
    1374             }
    1375             i2+=lstrlen(buffer+i2);
    1376             sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",pWindowInfo[i].HandleName);
    1377             i2+=lstrlen(buffer+i2);
    1378             if(pWindowInfo[i].IconResName){
    1379                 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",pWindowInfo[i].HandleName,pWindowInfo[i].IconResName);
     1378                    ProjectInfo.windowInfos[i].HandleName,
     1379                    ProjectInfo.windowInfos[i].name);
     1380            }
     1381            i2+=lstrlen(buffer+i2);
     1382            sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",ProjectInfo.windowInfos[i].HandleName);
     1383            i2+=lstrlen(buffer+i2);
     1384            if(ProjectInfo.windowInfos[i].IconResName){
     1385                sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",ProjectInfo.windowInfos[i].HandleName,ProjectInfo.windowInfos[i].IconResName);
    13801386                i2+=lstrlen(buffer+i2);
    13811387            }
    1382             sprintf(buffer+i2,"\t\tShowWindow(%s,SW_SHOW)\r\n",pWindowInfo[i].HandleName);
     1388            sprintf(buffer+i2,"\t\tShowWindow(%s,SW_SHOW)\r\n",ProjectInfo.windowInfos[i].HandleName);
    13831389            i2+=lstrlen(buffer+i2);
    13841390        }
     
    14341440    lstrcpy(buffer+i2,"\r\nFunction CreateDialog(hOwnerWnd As HWND, TemplateName As LPSTR) As HWND\r\n");
    14351441    i2+=lstrlen(buffer+i2);
    1436     for(i=0;i<ProjectInfo.NumberOfWindows;i++){
    1437         if(pWindowInfo[i].type==WNDTYPE_MODELESSDLG){
    1438             sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",pWindowInfo[i].name);
     1442    for(i=0;i<ProjectInfo.windowInfos.size();i++){
     1443        if(ProjectInfo.windowInfos[i].type==WNDTYPE_MODELESSDLG){
     1444            sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",ProjectInfo.windowInfos[i].name);
    14391445            i2+=lstrlen(buffer+i2);
    14401446
    14411447            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",
    1442                 pWindowInfo[i].HandleName,
    1443                 pWindowInfo[i].ExStyle,
    1444                 pWindowInfo[i].caption,
    1445                 pWindowInfo[i].style,
    1446                 pWindowInfo[i].pos.x,
    1447                 pWindowInfo[i].pos.y,
    1448                 pWindowInfo[i].size.cx,
    1449                 pWindowInfo[i].size.cy,
    1450                 pWindowInfo[i].id);
    1451             i2+=lstrlen(buffer+i2);
    1452             sprintf(buffer+i2,"\t\tCreateDialog=%s\r\n",pWindowInfo[i].HandleName);
     1448                ProjectInfo.windowInfos[i].HandleName,
     1449                ProjectInfo.windowInfos[i].ExStyle,
     1450                ProjectInfo.windowInfos[i].caption,
     1451                ProjectInfo.windowInfos[i].style,
     1452                ProjectInfo.windowInfos[i].pos.x,
     1453                ProjectInfo.windowInfos[i].pos.y,
     1454                ProjectInfo.windowInfos[i].size.cx,
     1455                ProjectInfo.windowInfos[i].size.cy,
     1456                ProjectInfo.windowInfos[i].id);
     1457            i2+=lstrlen(buffer+i2);
     1458            sprintf(buffer+i2,"\t\tCreateDialog=%s\r\n",ProjectInfo.windowInfos[i].HandleName);
    14531459            i2+=lstrlen(buffer+i2);
    14541460            if(bAvailUserProc[i]){
    14551461                sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(%s) As LONG_PTR)\r\n",
    1456                     pWindowInfo[i].HandleName,
    1457                     pWindowInfo[i].CallBackName);
     1462                    ProjectInfo.windowInfos[i].HandleName,
     1463                    ProjectInfo.windowInfos[i].CallBackName);
    14581464            }
    14591465            else{
    14601466                sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(EventCall_%s) As LONG_PTR)\r\n",
    1461                     pWindowInfo[i].HandleName,
    1462                     pWindowInfo[i].name);
    1463             }
    1464             i2+=lstrlen(buffer+i2);
    1465             sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",pWindowInfo[i].HandleName);
    1466             i2+=lstrlen(buffer+i2);
    1467             if(pWindowInfo[i].IconResName){
    1468                 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",pWindowInfo[i].HandleName,pWindowInfo[i].IconResName);
     1467                    ProjectInfo.windowInfos[i].HandleName,
     1468                    ProjectInfo.windowInfos[i].name);
     1469            }
     1470            i2+=lstrlen(buffer+i2);
     1471            sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",ProjectInfo.windowInfos[i].HandleName);
     1472            i2+=lstrlen(buffer+i2);
     1473            if(ProjectInfo.windowInfos[i].IconResName){
     1474                sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",ProjectInfo.windowInfos[i].HandleName,ProjectInfo.windowInfos[i].IconResName);
    14691475                i2+=lstrlen(buffer+i2);
    14701476            }
    1471             sprintf(buffer+i2,"\tEnd If\r\n",pWindowInfo[i].name);
     1477            sprintf(buffer+i2,"\tEnd If\r\n",ProjectInfo.windowInfos[i].name);
    14721478            i2+=lstrlen(buffer+i2);
    14731479        }
     
    15041510    i2+=lstrlen(buffer+i2);
    15051511
    1506     for(i=0;i<ProjectInfo.NumberOfWindows;i++){
    1507         if(pWindowInfo[i].type==WNDTYPE_DEFAULT){
     1512    for(i=0;i<ProjectInfo.windowInfos.size();i++){
     1513        if(ProjectInfo.windowInfos[i].type==WNDTYPE_DEFAULT){
    15081514            //////////////////////
    15091515            //通常ウィンドウ作成
     
    15121518            i2+=2;
    15131519
    1514             if(pWindowInfo[i].IconResName==0){
     1520            if(ProjectInfo.windowInfos[i].IconResName==0){
    15151521                lstrcpy(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(NULL,MAKEINTRESOURCE(IDI_APPLICATION))\r\n");
    15161522                i2+=lstrlen(buffer+i2);
     
    15191525            }
    15201526            else{
    1521                 sprintf(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",pWindowInfo[i].IconResName);
     1527                sprintf(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",ProjectInfo.windowInfos[i].IconResName);
    15221528                i2+=lstrlen(buffer+i2);
    1523                 sprintf(buffer+i2,"_RadSys_wcl.hIconSm=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",pWindowInfo[i].IconResName);
     1529                sprintf(buffer+i2,"_RadSys_wcl.hIconSm=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",ProjectInfo.windowInfos[i].IconResName);
    15241530                i2+=lstrlen(buffer+i2);
    15251531            }
     
    15281534            i2+=lstrlen(buffer+i2);
    15291535            if(bAvailUserProc[i])
    1530                 sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(%s)\r\n",pWindowInfo[i].CallBackName);
    1531             else sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(EventCall_%s)\r\n",pWindowInfo[i].name);
    1532             i2+=lstrlen(buffer+i2);
    1533             if(pWindowInfo[i].bgColor==COLOR_3DFACE)
     1536                sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(%s)\r\n",ProjectInfo.windowInfos[i].CallBackName);
     1537            else sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(EventCall_%s)\r\n",ProjectInfo.windowInfos[i].name);
     1538            i2+=lstrlen(buffer+i2);
     1539            if(ProjectInfo.windowInfos[i].bgColor==COLOR_3DFACE)
    15341540                lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=h3DFaceBrush\r\n");
    1535             else if(pWindowInfo[i].bgColor==-(int)RGB(255,255,255))
     1541            else if(ProjectInfo.windowInfos[i].bgColor==-(int)RGB(255,255,255))
    15361542                lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=GetStockObject(WHITE_BRUSH)\r\n");
    1537             else if(pWindowInfo[i].bgColor==-(int)RGB(0,0,0))
     1543            else if(ProjectInfo.windowInfos[i].bgColor==-(int)RGB(0,0,0))
    15381544                lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=GetStockObject(BLACK_BRUSH)\r\n");
    1539             else if(pWindowInfo[i].bgColor<=0||
    1540                 pWindowInfo[i].bgColor>=0x1000){
     1545            else if(ProjectInfo.windowInfos[i].bgColor<=0||
     1546                ProjectInfo.windowInfos[i].bgColor>=0x1000){
    15411547                //色指定またはビットマップ
    15421548                sprintf(buffer+i2,"_RadSys_wcl.hbrBackground=_RadSys_hBackBrush%d\r\n",i);
     
    15461552            i2+=lstrlen(buffer+i2);
    15471553            sprintf(buffer+i2,"CreateWindowEx(&H%08x,\"%s%d\",\"%s\",&H%08x,%d,%d,%d,%d,0,0,GetModuleHandle(0),0)\r\n",
    1548                 pWindowInfo[i].ExStyle,
    1549                 pWindowInfo[i].ClassName,i,
    1550                 pWindowInfo[i].caption,
    1551                 pWindowInfo[i].style,
    1552                 pWindowInfo[i].pos.x,
    1553                 pWindowInfo[i].pos.y,
    1554                 pWindowInfo[i].size.cx,
    1555                 pWindowInfo[i].size.cy);
     1554                ProjectInfo.windowInfos[i].ExStyle,
     1555                ProjectInfo.windowInfos[i].ClassName,i,
     1556                ProjectInfo.windowInfos[i].caption,
     1557                ProjectInfo.windowInfos[i].style,
     1558                ProjectInfo.windowInfos[i].pos.x,
     1559                ProjectInfo.windowInfos[i].pos.y,
     1560                ProjectInfo.windowInfos[i].size.cx,
     1561                ProjectInfo.windowInfos[i].size.cy);
    15561562            i2+=lstrlen(buffer+i2);
    15571563        }
     
    15961602    return i2;
    15971603}
    1598 void SaveWindowFile(char *path,WINDOW_INFO *pWindowInfo,int NumberOfWindowInfo){
     1604void SaveWindowFile( char *path, const std::vector<WINDOW_INFO> &windowInfos )
     1605{
    15991606    extern HANDLE hHeap;
    16001607    extern MDIINFO MdiInfo[MAX_WNDNUM];
     
    16051612    size=2;
    16061613    buffer=(char *)HeapAlloc(hHeap,0,GENERAL_SIZE*size);
    1607     for(i=0,i2=0;i<NumberOfWindowInfo;i++){
    1608         sprintf(buffer+i2,"WINDOW:%s\r\n",pWindowInfo[i].name);
    1609         i2+=lstrlen(buffer+i2);
    1610         sprintf(buffer+i2,"    HANDLE    = %s\r\n",pWindowInfo[i].HandleName);
    1611         i2+=lstrlen(buffer+i2);
    1612         sprintf(buffer+i2,"    POINT     = %d,%d\r\n",pWindowInfo[i].pos.x,pWindowInfo[i].pos.y);
    1613         i2+=lstrlen(buffer+i2);
    1614         sprintf(buffer+i2,"    SIZE      = %d,%d\r\n",pWindowInfo[i].size.cx,pWindowInfo[i].size.cy);
    1615         i2+=lstrlen(buffer+i2);
    1616         sprintf(buffer+i2,"    CAPTION   = \"%s\"\r\n",pWindowInfo[i].caption);
    1617         i2+=lstrlen(buffer+i2);
    1618         sprintf(buffer+i2,"    STYLE     = &H%08x\r\n",pWindowInfo[i].style);
    1619         i2+=lstrlen(buffer+i2);
    1620         sprintf(buffer+i2,"    EXSTYLE   = &H%08x\r\n",pWindowInfo[i].ExStyle);
    1621         i2+=lstrlen(buffer+i2);
    1622         if(pWindowInfo[i].MenuID){
    1623             sprintf(buffer+i2,"    MENUID    = %s\r\n",pWindowInfo[i].MenuID);
    1624             i2+=lstrlen(buffer+i2);
    1625         }
    1626         sprintf(buffer+i2,"    ID        = %d\r\n",pWindowInfo[i].id);
    1627         i2+=lstrlen(buffer+i2);
    1628         sprintf(buffer+i2,"    BGCOLOR   = %d\r\n",pWindowInfo[i].bgColor);
     1614    for(i=0,i2=0;i<windowInfos.size();i++){
     1615        sprintf(buffer+i2,"WINDOW:%s\r\n",windowInfos[i].name);
     1616        i2+=lstrlen(buffer+i2);
     1617        sprintf(buffer+i2,"    HANDLE    = %s\r\n",windowInfos[i].HandleName);
     1618        i2+=lstrlen(buffer+i2);
     1619        sprintf(buffer+i2,"    POINT     = %d,%d\r\n",windowInfos[i].pos.x,windowInfos[i].pos.y);
     1620        i2+=lstrlen(buffer+i2);
     1621        sprintf(buffer+i2,"    SIZE      = %d,%d\r\n",windowInfos[i].size.cx,windowInfos[i].size.cy);
     1622        i2+=lstrlen(buffer+i2);
     1623        sprintf(buffer+i2,"    CAPTION   = \"%s\"\r\n",windowInfos[i].caption);
     1624        i2+=lstrlen(buffer+i2);
     1625        sprintf(buffer+i2,"    STYLE     = &H%08x\r\n",windowInfos[i].style);
     1626        i2+=lstrlen(buffer+i2);
     1627        sprintf(buffer+i2,"    EXSTYLE   = &H%08x\r\n",windowInfos[i].ExStyle);
     1628        i2+=lstrlen(buffer+i2);
     1629        if(windowInfos[i].MenuID){
     1630            sprintf(buffer+i2,"    MENUID    = %s\r\n",windowInfos[i].MenuID);
     1631            i2+=lstrlen(buffer+i2);
     1632        }
     1633        sprintf(buffer+i2,"    ID        = %d\r\n",windowInfos[i].id);
     1634        i2+=lstrlen(buffer+i2);
     1635        sprintf(buffer+i2,"    BGCOLOR   = %d\r\n",windowInfos[i].bgColor);
    16291636        i2+=lstrlen(buffer+i2);
    16301637        sprintf(buffer+i2,"    FONT      = %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\"%s\"\r\n",
    1631             pWindowInfo[i].LogFont.lfHeight,
    1632             pWindowInfo[i].LogFont.lfWidth,
    1633             pWindowInfo[i].LogFont.lfEscapement,
    1634             pWindowInfo[i].LogFont.lfOrientation,
    1635             pWindowInfo[i].LogFont.lfWeight,
    1636             pWindowInfo[i].LogFont.lfItalic,
    1637             pWindowInfo[i].LogFont.lfUnderline,
    1638             pWindowInfo[i].LogFont.lfStrikeOut,
    1639             pWindowInfo[i].LogFont.lfCharSet,
    1640             pWindowInfo[i].LogFont.lfOutPrecision,
    1641             pWindowInfo[i].LogFont.lfClipPrecision,
    1642             pWindowInfo[i].LogFont.lfQuality,
    1643             pWindowInfo[i].LogFont.lfPitchAndFamily,
    1644             pWindowInfo[i].LogFont.lfFaceName);
    1645         i2+=lstrlen(buffer+i2);
    1646         if(pWindowInfo[i].IconResName){
    1647             sprintf(buffer+i2,"    ICONID    = %s\r\n",pWindowInfo[i].IconResName);
    1648             i2+=lstrlen(buffer+i2);
    1649         }
    1650         sprintf(buffer+i2,"    CLASS     = \"%s\"\r\n",pWindowInfo[i].ClassName);
    1651         i2+=lstrlen(buffer+i2);
    1652         sprintf(buffer+i2,"    CALLBACK  = %s\r\n",pWindowInfo[i].CallBackName);
    1653         i2+=lstrlen(buffer+i2);
    1654         sprintf(buffer+i2,"    TYPE      = %d\r\n",pWindowInfo[i].type);
    1655         i2+=lstrlen(buffer+i2);
    1656         sprintf(buffer+i2,"    FILEPATH  = %s\r\n",pWindowInfo[i].filepath);
    1657         i2+=lstrlen(buffer+i2);
    1658         for(i3=0;i3<pWindowInfo[i].NumberOfChildWindows;i3++){
    1659             temporary=SetCaptionSequence(pWindowInfo[i].pChildInfo[i3].caption);
     1638            windowInfos[i].LogFont.lfHeight,
     1639            windowInfos[i].LogFont.lfWidth,
     1640            windowInfos[i].LogFont.lfEscapement,
     1641            windowInfos[i].LogFont.lfOrientation,
     1642            windowInfos[i].LogFont.lfWeight,
     1643            windowInfos[i].LogFont.lfItalic,
     1644            windowInfos[i].LogFont.lfUnderline,
     1645            windowInfos[i].LogFont.lfStrikeOut,
     1646            windowInfos[i].LogFont.lfCharSet,
     1647            windowInfos[i].LogFont.lfOutPrecision,
     1648            windowInfos[i].LogFont.lfClipPrecision,
     1649            windowInfos[i].LogFont.lfQuality,
     1650            windowInfos[i].LogFont.lfPitchAndFamily,
     1651            windowInfos[i].LogFont.lfFaceName);
     1652        i2+=lstrlen(buffer+i2);
     1653        if(windowInfos[i].IconResName){
     1654            sprintf(buffer+i2,"    ICONID    = %s\r\n",windowInfos[i].IconResName);
     1655            i2+=lstrlen(buffer+i2);
     1656        }
     1657        sprintf(buffer+i2,"    CLASS     = \"%s\"\r\n",windowInfos[i].ClassName);
     1658        i2+=lstrlen(buffer+i2);
     1659        sprintf(buffer+i2,"    CALLBACK  = %s\r\n",windowInfos[i].CallBackName);
     1660        i2+=lstrlen(buffer+i2);
     1661        sprintf(buffer+i2,"    TYPE      = %d\r\n",windowInfos[i].type);
     1662        i2+=lstrlen(buffer+i2);
     1663        sprintf(buffer+i2,"    FILEPATH  = %s\r\n",windowInfos[i].filepath);
     1664        i2+=lstrlen(buffer+i2);
     1665        for(i3=0;i3<windowInfos[i].NumberOfChildWindows;i3++){
     1666            temporary=SetCaptionSequence(windowInfos[i].pChildInfo[i3].caption);
    16601667            sprintf(buffer+i2,"    ITEM      = %s,%d,%d,%d,%d,\"%s\",&H%08x,&H%08x,%d",
    1661                 pWindowInfo[i].pChildInfo[i3].IdName,
    1662                 pWindowInfo[i].pChildInfo[i3].pos.x,pWindowInfo[i].pChildInfo[i3].pos.y,
    1663                 pWindowInfo[i].pChildInfo[i3].size.cx,pWindowInfo[i].pChildInfo[i3].size.cy,
     1668                windowInfos[i].pChildInfo[i3].IdName,
     1669                windowInfos[i].pChildInfo[i3].pos.x,windowInfos[i].pChildInfo[i3].pos.y,
     1670                windowInfos[i].pChildInfo[i3].size.cx,windowInfos[i].pChildInfo[i3].size.cy,
    16641671                temporary,
    1665                 pWindowInfo[i].pChildInfo[i3].style,
    1666                 pWindowInfo[i].pChildInfo[i3].ExStyle,
    1667                 pWindowInfo[i].pChildInfo[i3].Control
     1672                windowInfos[i].pChildInfo[i3].style,
     1673                windowInfos[i].pChildInfo[i3].ExStyle,
     1674                windowInfos[i].pChildInfo[i3].Control
    16681675            );
    16691676            i2+=lstrlen(buffer+i2);
    16701677            HeapDefaultFree(temporary);
    1671             if(pWindowInfo[i].pChildInfo[i3].Control==CT_IMAGEBOX){
    1672                 sprintf(buffer+i2,",%d,\"%s\"",pWindowInfo[i].pChildInfo[i3].ImageCtrlInfo.type,pWindowInfo[i].pChildInfo[i3].ImageCtrlInfo.path);
     1678            if(windowInfos[i].pChildInfo[i3].Control==CT_IMAGEBOX){
     1679                sprintf(buffer+i2,",%d,\"%s\"",windowInfos[i].pChildInfo[i3].ImageCtrlInfo.type,windowInfos[i].pChildInfo[i3].ImageCtrlInfo.path);
    16731680                i2+=lstrlen(buffer+i2);
    16741681            }
     
    16801687            }
    16811688        }
    1682         sprintf(buffer+i2,"END\r\n",pWindowInfo[i].name);
     1689        sprintf(buffer+i2,"END\r\n",windowInfos[i].name);
    16831690        i2+=lstrlen(buffer+i2);
    16841691        if(i2-GENERAL_SIZE<GENERAL_SIZE){
     
    16911698        i2+=lstrlen(buffer+i2);
    16921699        i2+=GetSaveMenuData(buffer+i2,1,ProjectInfo.pMenuInfo[i].pMenuInfo,ProjectInfo.pMenuInfo[i].NumberOfMenu);
    1693         sprintf(buffer+i2,"END\r\n",pWindowInfo[i].name);
     1700        sprintf(buffer+i2,"END\r\n",windowInfos[i].name);
    16941701        i2+=lstrlen(buffer+i2);
    16951702        if(i2-GENERAL_SIZE<GENERAL_SIZE){
     
    18141821    ProjectInfo.pMenuInfo=(MENU_INFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
    18151822
    1816     ProjectInfo.NumberOfWindows=0;
    1817     ProjectInfo.pWindowInfo=(WINDOW_INFO *)HeapAlloc(hHeap,0,1);
     1823    ProjectInfo.windowInfos.clear();
    18181824
    18191825    for(i=0,i3=0;;i++){
     
    18501856            //ウィンドウ
    18511857            if(lstrcmpi(temporary,"WINDOW")==0&&i3==0){
    1852                 ProjectInfo.NumberOfWindows++;
    1853                 ProjectInfo.pWindowInfo=(WINDOW_INFO *)HeapReAlloc(hHeap,HEAP_ZERO_MEMORY,ProjectInfo.pWindowInfo,ProjectInfo.NumberOfWindows*sizeof(WINDOW_INFO));
    1854                 i4=ProjectInfo.NumberOfWindows-1;
     1858                ProjectInfo.windowInfos.push_back( WINDOW_INFO() );
    18551859                i3=1;
    18561860
    1857                 ProjectInfo.pWindowInfo[i4].name=(char *)HeapAlloc(hHeap,0,i2+1);
    1858                 lstrcpy(ProjectInfo.pWindowInfo[i4].name,temp2);
    1859 
    1860                 ProjectInfo.pWindowInfo[i4].NumberOfChildWindows=0;
    1861                 ProjectInfo.pWindowInfo[i4].pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
     1861                ProjectInfo.windowInfos.back().name=(char *)HeapAlloc(hHeap,0,i2+1);
     1862                lstrcpy(ProjectInfo.windowInfos.back().name,temp2);
     1863
     1864                ProjectInfo.windowInfos.back().NumberOfChildWindows=0;
     1865                ProjectInfo.windowInfos.back().pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
    18621866            }
    18631867            else if(lstrcmpi(temporary,"HANDLE")==0&&i3==1){
    1864                 ProjectInfo.pWindowInfo[i4].HandleName=(char *)HeapAlloc(hHeap,0,i2+1);
    1865                 lstrcpy(ProjectInfo.pWindowInfo[i4].HandleName,temp2);
     1868                ProjectInfo.windowInfos.back().HandleName=(char *)HeapAlloc(hHeap,0,i2+1);
     1869                lstrcpy(ProjectInfo.windowInfos.back().HandleName,temp2);
    18661870            }
    18671871            else if(lstrcmpi(temporary,"POINT")==0&&i3==1){
    18681872                sscanf(temp2,"%d,%d",
    1869                     &ProjectInfo.pWindowInfo[i4].pos.x,
    1870                     &ProjectInfo.pWindowInfo[i4].pos.y);
    1871                 if(ProjectInfo.pWindowInfo[i4].pos.x==-1) ProjectInfo.pWindowInfo[i4].pos.x=CW_USEDEFAULT;
    1872                 if(ProjectInfo.pWindowInfo[i4].pos.y==-1) ProjectInfo.pWindowInfo[i4].pos.y=CW_USEDEFAULT;
     1873                    &ProjectInfo.windowInfos.back().pos.x,
     1874                    &ProjectInfo.windowInfos.back().pos.y);
     1875                if(ProjectInfo.windowInfos.back().pos.x==-1) ProjectInfo.windowInfos.back().pos.x=CW_USEDEFAULT;
     1876                if(ProjectInfo.windowInfos.back().pos.y==-1) ProjectInfo.windowInfos.back().pos.y=CW_USEDEFAULT;
    18731877            }
    18741878            else if(lstrcmpi(temporary,"SIZE")==0&&i3==1){
    18751879                sscanf(temp2,"%d,%d",
    1876                     &ProjectInfo.pWindowInfo[i4].size.cx,
    1877                     &ProjectInfo.pWindowInfo[i4].size.cy);
     1880                    &ProjectInfo.windowInfos.back().size.cx,
     1881                    &ProjectInfo.windowInfos.back().size.cy);
    18781882            }
    18791883            else if(lstrcmpi(temporary,"CAPTION")==0&&i3==1){
    18801884                if(temp2[0]=='\"'&&temp2[lstrlen(temp2)-1]=='\"'){
    18811885                    temp2[lstrlen(temp2)-1]=0;
    1882                     ProjectInfo.pWindowInfo[i4].caption=(char *)HeapAlloc(hHeap,0,i2+1);
    1883                     lstrcpy(ProjectInfo.pWindowInfo[i4].caption,temp2+1);
     1886                    ProjectInfo.windowInfos.back().caption=(char *)HeapAlloc(hHeap,0,i2+1);
     1887                    lstrcpy(ProjectInfo.windowInfos.back().caption,temp2+1);
    18841888                }
    18851889            }
    1886             else if(lstrcmpi(temporary,"STYLE")==0&&i3==1) ProjectInfo.pWindowInfo[i4].style=GetValue(temp2);
    1887             else if(lstrcmpi(temporary,"EXSTYLE")==0&&i3==1) ProjectInfo.pWindowInfo[i4].ExStyle=GetValue(temp2);
     1890            else if(lstrcmpi(temporary,"STYLE")==0&&i3==1) ProjectInfo.windowInfos.back().style=GetValue(temp2);
     1891            else if(lstrcmpi(temporary,"EXSTYLE")==0&&i3==1) ProjectInfo.windowInfos.back().ExStyle=GetValue(temp2);
    18881892            else if(lstrcmpi(temporary,"MENUID")==0&&i3==1){
    1889                 ProjectInfo.pWindowInfo[i4].MenuID=(char *)HeapAlloc(hHeap,0,i2+1);
    1890                 lstrcpy(ProjectInfo.pWindowInfo[i4].MenuID,temp2);
    1891             }
    1892             else if(lstrcmpi(temporary,"ID")==0&&i3==1) ProjectInfo.pWindowInfo[i4].id=GetValue(temp2);
     1893                ProjectInfo.windowInfos.back().MenuID=(char *)HeapAlloc(hHeap,0,i2+1);
     1894                lstrcpy(ProjectInfo.windowInfos.back().MenuID,temp2);
     1895            }
     1896            else if(lstrcmpi(temporary,"ID")==0&&i3==1) ProjectInfo.windowInfos.back().id=GetValue(temp2);
    18931897            else if(lstrcmpi(temporary,"BGCOLOR")==0&&i3==1){
    1894                 ProjectInfo.pWindowInfo[i4].bgColor=GetValue(temp2);
     1898                ProjectInfo.windowInfos.back().bgColor=GetValue(temp2);
    18951899                if(ProjectInfo.dwVersion<=3){
    18961900                    //プロジェクトバージョンが3以前のときは新値に変換する
    1897                     if(ProjectInfo.pWindowInfo[i4].bgColor==-1)
    1898                         ProjectInfo.pWindowInfo[i4].bgColor=-(int)RGB(255,255,255);
     1901                    if(ProjectInfo.windowInfos.back().bgColor==-1)
     1902                        ProjectInfo.windowInfos.back().bgColor=-(int)RGB(255,255,255);
    18991903                }
    19001904            }
    19011905            else if(lstrcmpi(temporary,"FONT")==0&&i3==1){
    19021906                i5=GetOneParameter(temp2,0,temp3);
    1903                 ProjectInfo.pWindowInfo[i4].LogFont.lfHeight=GetValue(temp3);
     1907                ProjectInfo.windowInfos.back().LogFont.lfHeight=GetValue(temp3);
    19041908
    19051909                i5=GetOneParameter(temp2,i5,temp3);
    1906                 ProjectInfo.pWindowInfo[i4].LogFont.lfWidth=GetValue(temp3);
     1910                ProjectInfo.windowInfos.back().LogFont.lfWidth=GetValue(temp3);
    19071911
    19081912                i5=GetOneParameter(temp2,i5,temp3);
    1909                 ProjectInfo.pWindowInfo[i4].LogFont.lfEscapement=GetValue(temp3);
     1913                ProjectInfo.windowInfos.back().LogFont.lfEscapement=GetValue(temp3);
    19101914
    19111915                i5=GetOneParameter(temp2,i5,temp3);
    1912                 ProjectInfo.pWindowInfo[i4].LogFont.lfOrientation=GetValue(temp3);
     1916                ProjectInfo.windowInfos.back().LogFont.lfOrientation=GetValue(temp3);
    19131917
    19141918                i5=GetOneParameter(temp2,i5,temp3);
    1915                 ProjectInfo.pWindowInfo[i4].LogFont.lfWeight=GetValue(temp3);
     1919                ProjectInfo.windowInfos.back().LogFont.lfWeight=GetValue(temp3);
    19161920
    19171921                i5=GetOneParameter(temp2,i5,temp3);
    1918                 ProjectInfo.pWindowInfo[i4].LogFont.lfItalic=(BYTE)GetValue(temp3);
     1922                ProjectInfo.windowInfos.back().LogFont.lfItalic=(BYTE)GetValue(temp3);
    19191923
    19201924                i5=GetOneParameter(temp2,i5,temp3);
    1921                 ProjectInfo.pWindowInfo[i4].LogFont.lfUnderline=(BYTE)GetValue(temp3);
     1925                ProjectInfo.windowInfos.back().LogFont.lfUnderline=(BYTE)GetValue(temp3);
    19221926
    19231927                i5=GetOneParameter(temp2,i5,temp3);
    1924                 ProjectInfo.pWindowInfo[i4].LogFont.lfStrikeOut=(BYTE)GetValue(temp3);
     1928                ProjectInfo.windowInfos.back().LogFont.lfStrikeOut=(BYTE)GetValue(temp3);
    19251929
    19261930                i5=GetOneParameter(temp2,i5,temp3);
    1927                 ProjectInfo.pWindowInfo[i4].LogFont.lfCharSet=(BYTE)GetValue(temp3);
     1931                ProjectInfo.windowInfos.back().LogFont.lfCharSet=(BYTE)GetValue(temp3);
    19281932
    19291933                i5=GetOneParameter(temp2,i5,temp3);
    1930                 ProjectInfo.pWindowInfo[i4].LogFont.lfOutPrecision=(BYTE)GetValue(temp3);
     1934                ProjectInfo.windowInfos.back().LogFont.lfOutPrecision=(BYTE)GetValue(temp3);
    19311935
    19321936                i5=GetOneParameter(temp2,i5,temp3);
    1933                 ProjectInfo.pWindowInfo[i4].LogFont.lfClipPrecision=(BYTE)GetValue(temp3);
     1937                ProjectInfo.windowInfos.back().LogFont.lfClipPrecision=(BYTE)GetValue(temp3);
    19341938
    19351939                i5=GetOneParameter(temp2,i5,temp3);
    1936                 ProjectInfo.pWindowInfo[i4].LogFont.lfQuality=(BYTE)GetValue(temp3);
     1940                ProjectInfo.windowInfos.back().LogFont.lfQuality=(BYTE)GetValue(temp3);
    19371941
    19381942                i5=GetOneParameter(temp2,i5,temp3);
    1939                 ProjectInfo.pWindowInfo[i4].LogFont.lfPitchAndFamily=(BYTE)GetValue(temp3);
     1943                ProjectInfo.windowInfos.back().LogFont.lfPitchAndFamily=(BYTE)GetValue(temp3);
    19401944
    19411945                i5=GetOneParameter(temp2,i5,temp3);
    19421946                RemoveStringQuotes(temp3);
    1943                 lstrcpy(ProjectInfo.pWindowInfo[i4].LogFont.lfFaceName,temp3);
     1947                lstrcpy(ProjectInfo.windowInfos.back().LogFont.lfFaceName,temp3);
    19441948            }
    19451949            else if(lstrcmpi(temporary,"ICONID")==0&&i3==1){
    1946                 ProjectInfo.pWindowInfo[i4].IconResName=(char *)HeapAlloc(hHeap,0,i2+1);
    1947                 lstrcpy(ProjectInfo.pWindowInfo[i4].IconResName,temp2);
     1950                ProjectInfo.windowInfos.back().IconResName=(char *)HeapAlloc(hHeap,0,i2+1);
     1951                lstrcpy(ProjectInfo.windowInfos.back().IconResName,temp2);
    19481952            }
    19491953            else if(lstrcmpi(temporary,"CLASS")==0&&i3==1){
    19501954                if(temp2[0]=='\"'&&temp2[lstrlen(temp2)-1]=='\"'){
    19511955                    temp2[lstrlen(temp2)-1]=0;
    1952                     ProjectInfo.pWindowInfo[i4].ClassName=(char *)HeapAlloc(hHeap,0,i2+1);
    1953                     lstrcpy(ProjectInfo.pWindowInfo[i4].ClassName,temp2+1);
     1956                    ProjectInfo.windowInfos.back().ClassName=(char *)HeapAlloc(hHeap,0,i2+1);
     1957                    lstrcpy(ProjectInfo.windowInfos.back().ClassName,temp2+1);
    19541958                }
    19551959            }
    19561960            else if(lstrcmpi(temporary,"CALLBACK")==0&&i3==1){
    1957                 ProjectInfo.pWindowInfo[i4].CallBackName=(char *)HeapAlloc(hHeap,0,i2+1);
    1958                 lstrcpy(ProjectInfo.pWindowInfo[i4].CallBackName,temp2);
     1961                ProjectInfo.windowInfos.back().CallBackName=(char *)HeapAlloc(hHeap,0,i2+1);
     1962                lstrcpy(ProjectInfo.windowInfos.back().CallBackName,temp2);
    19591963            }
    19601964
    19611965            //以前のバージョンとの互換用
    1962             else if(lstrcmpi(temporary,"DLGTMP")==0&&i3==1) ProjectInfo.pWindowInfo[i4].type=GetValue(temp2);
    1963 
    1964             else if(lstrcmpi(temporary,"TYPE")==0&&i3==1) ProjectInfo.pWindowInfo[i4].type=GetValue(temp2);
     1966            else if(lstrcmpi(temporary,"DLGTMP")==0&&i3==1) ProjectInfo.windowInfos.back().type=GetValue(temp2);
     1967
     1968            else if(lstrcmpi(temporary,"TYPE")==0&&i3==1) ProjectInfo.windowInfos.back().type=GetValue(temp2);
    19651969            else if(lstrcmpi(temporary,"FILEPATH")==0&&i3==1){
    1966                 ProjectInfo.pWindowInfo[i4].filepath=(char *)HeapAlloc(hHeap,0,i2+1);
    1967                 lstrcpy(ProjectInfo.pWindowInfo[i4].filepath,temp2);
     1970                ProjectInfo.windowInfos.back().filepath=(char *)HeapAlloc(hHeap,0,i2+1);
     1971                lstrcpy(ProjectInfo.windowInfos.back().filepath,temp2);
    19681972            }
    19691973            else if(lstrcmpi(temporary,"ITEM")==0&&i3==1){
    1970                 ProjectInfo.pWindowInfo[i4].pChildInfo=(CHILDINFO *)HeapReAlloc(hHeap,HEAP_ZERO_MEMORY,ProjectInfo.pWindowInfo[i4].pChildInfo,(ProjectInfo.pWindowInfo[i4].NumberOfChildWindows+1)*sizeof(CHILDINFO));
    1971                 pChildInfo=&ProjectInfo.pWindowInfo[i4].pChildInfo[ProjectInfo.pWindowInfo[i4].NumberOfChildWindows];
     1974                ProjectInfo.windowInfos.back().pChildInfo=(CHILDINFO *)HeapReAlloc(hHeap,HEAP_ZERO_MEMORY,ProjectInfo.windowInfos.back().pChildInfo,(ProjectInfo.windowInfos.back().NumberOfChildWindows+1)*sizeof(CHILDINFO));
     1975                pChildInfo=&ProjectInfo.windowInfos.back().pChildInfo[ProjectInfo.windowInfos.back().NumberOfChildWindows];
    19721976
    19731977                //ID
     
    20152019                }
    20162020
    2017                 ProjectInfo.pWindowInfo[i4].NumberOfChildWindows++;
     2021                ProjectInfo.windowInfos.back().NumberOfChildWindows++;
    20182022            }
    20192023
     
    21542158        return;
    21552159    }
    2156     for(i=0;i<ProjectInfo.NumberOfWindows;i++){
    2157         if(lstrcmpi(NewWindow.name,ProjectInfo.pWindowInfo[i].name)==0){
     2160    for(i=0;i<ProjectInfo.windowInfos.size();i++){
     2161        if(lstrcmpi(NewWindow.name,ProjectInfo.windowInfos[i].name)==0){
    21582162            //"\"%s\" ウィンドウは既にプロジェクト内に存在します。"
    2159             sprintf(temporary,STRING_DUPLICATIONERROR_WINDOW_IN_PROJECT,ProjectInfo.pWindowInfo[i].name);
     2163            sprintf(temporary,STRING_DUPLICATIONERROR_WINDOW_IN_PROJECT,ProjectInfo.windowInfos[i].name);
    21602164            MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
    21612165            return;
    21622166        }
    2163         if(lstrcmpi(NewWindow.HandleName,ProjectInfo.pWindowInfo[i].HandleName)==0){
     2167        if(lstrcmpi(NewWindow.HandleName,ProjectInfo.windowInfos[i].HandleName)==0){
    21642168            //"\"%s\" ハンドルは既にプロジェクト内に存在します。"
    2165             sprintf(temporary,STRING_DUPLICATIONERROR_HANDLE_IN_PROJECT,ProjectInfo.pWindowInfo[i].HandleName);
     2169            sprintf(temporary,STRING_DUPLICATIONERROR_HANDLE_IN_PROJECT,ProjectInfo.windowInfos[i].HandleName);
    21662170            MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
    21672171            return;
    21682172        }
    2169         if(lstrcmpi(NewWindow.CallBackName,ProjectInfo.pWindowInfo[i].CallBackName)==0){
     2173        if(lstrcmpi(NewWindow.CallBackName,ProjectInfo.windowInfos[i].CallBackName)==0){
    21702174            //"\"%s\" プロシージャは既にプロジェクト内に存在します。"
    2171             sprintf(temporary,STRING_DUPLICATIONERROR_PROC_IN_PROJECT,ProjectInfo.pWindowInfo[i].CallBackName);
     2175            sprintf(temporary,STRING_DUPLICATIONERROR_PROC_IN_PROJECT,ProjectInfo.windowInfos[i].CallBackName);
    21722176            MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
    21732177            return;
     
    21752179    }
    21762180
    2177     //ProjectInfo.pWindowInfo構造体に追加
    2178     ProjectInfo.pWindowInfo=(WINDOW_INFO *)HeapReAlloc(hHeap,0,ProjectInfo.pWindowInfo,(ProjectInfo.NumberOfWindows+1)*sizeof(WINDOW_INFO));
     2181    //ProjectInfo.windowInfos構造体コレクションに追加
     2182    ProjectInfo.windowInfos.push_back( WINDOW_INFO() );
    21792183
    21802184
    21812185    ///////////////////////////////////////
    2182     //ProjectInfo.pWindowInfo構造体を設定
     2186    //ProjectInfo.windowInfos構造体を設定
    21832187
    21842188    //ウィンドウ名
    2185     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].name=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1);
    2186     lstrcpy(ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].name,NewWindow.name);
     2189    ProjectInfo.windowInfos.back().name=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1);
     2190    lstrcpy(ProjectInfo.windowInfos.back().name,NewWindow.name);
    21872191
    21882192    //ハンドル名
    2189     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].HandleName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.HandleName)+1);
    2190     lstrcpy(ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].HandleName,NewWindow.HandleName);
     2193    ProjectInfo.windowInfos.back().HandleName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.HandleName)+1);
     2194    lstrcpy(ProjectInfo.windowInfos.back().HandleName,NewWindow.HandleName);
    21912195
    21922196    //位置情報
    2193     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].pos.x=-1;
    2194     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].pos.y=-1;
    2195     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].size.cx=480;
    2196     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].size.cy=360;
     2197    ProjectInfo.windowInfos.back().pos.x=-1;
     2198    ProjectInfo.windowInfos.back().pos.y=-1;
     2199    ProjectInfo.windowInfos.back().size.cx=480;
     2200    ProjectInfo.windowInfos.back().size.cy=360;
    21972201
    21982202    //ウィンドウテキスト
    2199     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].caption=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1);
    2200     lstrcpy(ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].caption,NewWindow.name);
     2203    ProjectInfo.windowInfos.back().caption=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1);
     2204    lstrcpy(ProjectInfo.windowInfos.back().caption,NewWindow.name);
    22012205
    22022206    //スタイル
     
    22042208        case WNDTYPE_DEFAULT:
    22052209            //通常ウィンドウ
    2206             ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX;
     2210            ProjectInfo.windowInfos.back().style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX;
    22072211            break;
    22082212        case WNDTYPE_MODALDLG:
    22092213        case WNDTYPE_MODELESSDLG:
    22102214            //ダイアログ テンプレート(最大化、最小化ボタンをなくして、細枠にする)
    2211             ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU;
     2215            ProjectInfo.windowInfos.back().style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU;
    22122216            break;
    22132217    }
    22142218
    22152219    //拡張スタイル
    2216     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].ExStyle=0;
     2220    ProjectInfo.windowInfos.back().ExStyle=0;
    22172221
    22182222    //メニュー
    2219     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].MenuID=0;
     2223    ProjectInfo.windowInfos.back().MenuID=0;
    22202224
    22212225    //ID
    2222     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].id=0;
     2226    ProjectInfo.windowInfos.back().id=0;
    22232227
    22242228    //背景色
    2225     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].bgColor=COLOR_3DFACE;
     2229    ProjectInfo.windowInfos.back().bgColor=COLOR_3DFACE;
    22262230
    22272231    //フォント
    2228     GetDefaultWindowFont(&ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].LogFont);
     2232    GetDefaultWindowFont(&ProjectInfo.windowInfos.back().LogFont);
    22292233
    22302234    //アイコン
    2231     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].IconResName=0;
     2235    ProjectInfo.windowInfos.back().IconResName=0;
    22322236
    22332237    //クラス名
    22342238    lstrcpy(temporary,"NORMAL");
    2235     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].ClassName=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);
    2236     lstrcpy(ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].ClassName,temporary);
     2239    ProjectInfo.windowInfos.back().ClassName=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);
     2240    lstrcpy(ProjectInfo.windowInfos.back().ClassName,temporary);
    22372241
    22382242    //コールバック関数名
    2239     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].CallBackName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.CallBackName)+1);
    2240     lstrcpy(ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].CallBackName,NewWindow.CallBackName);
     2243    ProjectInfo.windowInfos.back().CallBackName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.CallBackName)+1);
     2244    lstrcpy(ProjectInfo.windowInfos.back().CallBackName,NewWindow.CallBackName);
    22412245
    22422246    //タイプ識別
    2243     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].type=NewWindow.type;
     2247    ProjectInfo.windowInfos.back().type=NewWindow.type;
    22442248
    22452249    //子ウィンドウ情報
    2246     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].NumberOfChildWindows=0;
    2247     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
     2250    ProjectInfo.windowInfos.back().NumberOfChildWindows=0;
     2251    ProjectInfo.windowInfos.back().pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
    22482252
    22492253
    22502254    //メッセージ処理ファイル名
    2251     sprintf(temporary,"%s.ab",ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].name);
    2252     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].filepath=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);
    2253     lstrcpy(ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].filepath,temporary);
     2255    sprintf(temporary,"%s.ab",ProjectInfo.windowInfos.back().name);
     2256    ProjectInfo.windowInfos.back().filepath=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);
     2257    lstrcpy(ProjectInfo.windowInfos.back().filepath,temporary);
    22542258
    22552259
     
    22692273        NewWindow.CallBackName);
    22702274
    2271     sprintf(temporary,"%s%s.ab",ProjectInfo.dir,ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].name);
     2275    sprintf(temporary,"%s%s.ab",ProjectInfo.dir,ProjectInfo.windowInfos.back().name);
    22722276
    22732277    //書き込み
     
    22882292    tv.item.iSelectedImage=2;
    22892293    tv.hParent=ProjectInfo.hWindowTreeItem;
    2290     tv.item.pszText=ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].name;
    2291 
    2292     ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].hTreeItem=TreeView_InsertItem(hMaterialTreeView,&tv);
    2293 
    2294     TreeView_SelectItem(hMaterialTreeView,ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].hTreeItem);
    2295 
    2296 
    2297     ProjectInfo.NumberOfWindows++;
     2294    tv.item.pszText=ProjectInfo.windowInfos.back().name;
     2295
     2296    ProjectInfo.windowInfos.back().hTreeItem=TreeView_InsertItem(hMaterialTreeView,&tv);
     2297
     2298    TreeView_SelectItem(hMaterialTreeView,ProjectInfo.windowInfos.back().hTreeItem);
     2299
     2300
    22982301    ProjectInfo.ModifyOfMaterial=1;
    22992302
    2300     NewRadWindow(ProjectInfo.NumberOfWindows-1);
     2303    NewRadWindow(ProjectInfo.windowInfos.size()-1);
    23012304}
    23022305void Project_Window_Delete(int WndInfoNum){
     
    23062309    int i;
    23072310
     2311    WINDOW_INFO *pWindowInfo = &ProjectInfo.windowInfos[WndInfoNum];
     2312
    23082313    //ウィンドウが開かれている場合は閉じる
    23092314    for(i=0;i<MAX_WNDNUM;i++){
    2310         if(MdiInfo[i].hwnd&&lstrcmpi(ProjectInfo.pWindowInfo[WndInfoNum].name,MdiInfo[i].path)==0){
     2315        if(MdiInfo[i].hwnd&&lstrcmpi(pWindowInfo->name,MdiInfo[i].path)==0){
    23112316            SendMessage(MdiInfo[i].hwnd,WM_CLOSE,0,0);
    23122317            break;
     
    23152320
    23162321    //ウィンドウ情報のメモリを解放
    2317     HeapDefaultFree(ProjectInfo.pWindowInfo[WndInfoNum].name);
    2318     HeapDefaultFree(ProjectInfo.pWindowInfo[WndInfoNum].filepath);
    2319     HeapDefaultFree(ProjectInfo.pWindowInfo[WndInfoNum].HandleName);
    2320     HeapDefaultFree(ProjectInfo.pWindowInfo[WndInfoNum].caption);
    2321     HeapDefaultFree(ProjectInfo.pWindowInfo[WndInfoNum].ClassName);
    2322     HeapDefaultFree(ProjectInfo.pWindowInfo[WndInfoNum].CallBackName);
     2322    HeapDefaultFree(pWindowInfo->name);
     2323    HeapDefaultFree(pWindowInfo->filepath);
     2324    HeapDefaultFree(pWindowInfo->HandleName);
     2325    HeapDefaultFree(pWindowInfo->caption);
     2326    HeapDefaultFree(pWindowInfo->ClassName);
     2327    HeapDefaultFree(pWindowInfo->CallBackName);
    23232328
    23242329    //子ウィンドウのメモリを解放
    2325     for(i=0;i<ProjectInfo.pWindowInfo[WndInfoNum].NumberOfChildWindows;i++){
    2326         HeapDefaultFree(ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[i].IdName);
    2327         HeapDefaultFree(ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[i].caption);
    2328     }
    2329     HeapDefaultFree(ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo);
     2330    for(i=0;i<pWindowInfo->NumberOfChildWindows;i++){
     2331        HeapDefaultFree(pWindowInfo->pChildInfo[i].IdName);
     2332        HeapDefaultFree(pWindowInfo->pChildInfo[i].caption);
     2333    }
     2334    HeapDefaultFree(pWindowInfo->pChildInfo);
    23302335
    23312336    //ツリービューから削除
    23322337    extern HWND hMaterialTreeView;
    2333     TreeView_DeleteItem(hMaterialTreeView,ProjectInfo.pWindowInfo[WndInfoNum].hTreeItem);
    2334 
    2335     //ProjectInfo.pWindowInfo構造体から削除
    2336     ProjectInfo.NumberOfWindows--;
    2337     for(i=WndInfoNum;i<ProjectInfo.NumberOfWindows;i++) ProjectInfo.pWindowInfo[i]=ProjectInfo.pWindowInfo[i+1];
    2338     if(ProjectInfo.NumberOfWindows==0) ProjectInfo.pWindowInfo=(WINDOW_INFO *)HeapReAlloc(hHeap,0,ProjectInfo.pWindowInfo,1);
    2339     else ProjectInfo.pWindowInfo=(WINDOW_INFO *)HeapReAlloc(hHeap,0,ProjectInfo.pWindowInfo,ProjectInfo.NumberOfWindows*sizeof(WINDOW_INFO));
     2338    TreeView_DeleteItem(hMaterialTreeView,pWindowInfo->hTreeItem);
     2339
     2340    //ProjectInfo.windowInfos構造体から削除
     2341    std::vector<WINDOW_INFO>::iterator it = ProjectInfo.windowInfos.begin();
     2342    for( int i=0; i!=WndInfoNum ;i++, it++ )
     2343    {
     2344    }
     2345    ProjectInfo.windowInfos.erase( it );
    23402346
    23412347    ProjectInfo.ModifyOfMaterial=1;
Note: See TracChangeset for help on using the changeset viewer.