Index: trunk/ab5.0/abdev/ProjectEditor/ProjectEditor.cpp
===================================================================
--- trunk/ab5.0/abdev/ProjectEditor/ProjectEditor.cpp	(revision 440)
+++ trunk/ab5.0/abdev/ProjectEditor/ProjectEditor.cpp	(revision 455)
@@ -86,4 +86,23 @@
 #endif
 
+
+void CreateProcessWithStdHandle( const char *appPath, const char *cmdLine)
+{
+	std::string argsStr = (std::string)"\"" + appPath + "\" " + cmdLine;
+	STARTUPINFO si;
+	PROCESS_INFORMATION pi;
+	memset(&si,0,sizeof(STARTUPINFO));
+	si.cb=sizeof(STARTUPINFO);
+	si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
+	si.wShowWindow = SW_HIDE;
+	si.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
+	si.hStdInput = GetStdHandle(STD_INPUT_HANDLE);
+	si.hStdError = GetStdHandle(STD_ERROR_HANDLE);
+	
+	char args[8192];
+	lstrcpy( args, argsStr.c_str() );
+
+	CreateProcess( NULL, args, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi );
+}
 
 void ToBigChar(char str[]){
@@ -1288,6 +1307,9 @@
 
 	int width_SideWeb=0;
-	if(pobj_SideWeb->bShow){
-		width_SideWeb=pobj_nv->width_WebSearchView+LEVER_THICK;
+	if( pobj_SideWeb )
+	{
+		if(pobj_SideWeb->bShow){
+			width_SideWeb=pobj_nv->width_WebSearchView+LEVER_THICK;
+		}
 	}
 
@@ -1323,13 +1345,16 @@
 		1);
 
-	if(pobj_SideWeb->bShow){
-		//SideWeb
-		pobj_SideWeb->resize(
-			width_owner - pobj_nv->width_WebSearchView,
-			height_Rebar,
-			pobj_nv->width_WebSearchView,
-			height_MdiClient);
-	}
-	else pobj_SideWeb->resize(0,0,0,0);
+	if( pobj_SideWeb )
+	{
+		if(pobj_SideWeb->bShow){
+			//SideWeb
+			pobj_SideWeb->resize(
+				width_owner - pobj_nv->width_WebSearchView,
+				height_Rebar,
+				pobj_nv->width_WebSearchView,
+				height_MdiClient);
+		}
+		else pobj_SideWeb->resize(0,0,0,0);
+	}
 
 	if(width_pjv){
@@ -1459,29 +1484,31 @@
 
 		case WM_DRAWITEM:
-			DRAWITEMSTRUCT *pdis;
-			pdis=(DRAWITEMSTRUCT *)lParam;
-
-			if(pdis->CtlType==ODT_MENU){
-				if(!pobj_MainMenu) return 0;
-
-				CMenuItemData *pobj_MenuItemData;
-				pobj_MenuItemData=(CMenuItemData *)pdis->itemData;
-				if(pobj_MainMenu->hMenu==pobj_MenuItemData->pobj_ThisMenu->hMenu){
-					//メインメニューの親アイテム
-					pobj_MainMenu->OwnerDrawMenu(pdis->hDC,
-						&pdis->rcItem,
-						(pdis->itemState&ODS_SELECTED)!=0,
-						pobj_MenuItemData->item_index);
+			{
+				DRAWITEMSTRUCT *pdis = (DRAWITEMSTRUCT *)lParam;
+
+				if(pdis->CtlType==ODT_MENU){
+					if(!pobj_MainMenu) return 0;
+
+					CMenuItemData *pobj_MenuItemData;
+					pobj_MenuItemData=(CMenuItemData *)pdis->itemData;
+					if(pobj_MainMenu->hMenu==pobj_MenuItemData->pobj_ThisMenu->hMenu){
+						//メインメニューの親アイテム
+						pobj_MainMenu->OwnerDrawMenu(pdis->hDC,
+							&pdis->rcItem,
+							(pdis->itemState&ODS_SELECTED)!=0,
+							pobj_MenuItemData->item_index);
+					}
+					else{
+						//メインメニューにぶらさがるサブメニュー
+						pobj_MainMenu->OwnerDrawSubMenu(pobj_MenuItemData->pobj_ThisMenu->hMenu,
+							pdis->hDC,
+							&pdis->rcItem,
+							(pdis->itemState&ODS_SELECTED)!=0,
+							pobj_MenuItemData->item_index);
+					}
 				}
-				else{
-					//メインメニューにぶらさがるサブメニュー
-					pobj_MainMenu->OwnerDrawSubMenu(pobj_MenuItemData->pobj_ThisMenu->hMenu,
-						pdis->hDC,
-						&pdis->rcItem,
-						(pdis->itemState&ODS_SELECTED)!=0,
-						pobj_MenuItemData->item_index);
-				}
-			}
-			return 0;
+
+				return 0;
+			}
 
 		case WM_NOTIFY:
@@ -2054,5 +2081,7 @@
 
 					sprintf(str,"%s%s",pj_editor_Dir,lpszCompilerName);
-					ShellExecute(hwnd,"open",str,temporary,NULL,SW_SHOWNORMAL);
+
+					CreateProcessWithStdHandle( str, temporary );
+
 					return 0;
 				case IDM_DEBUGCOMPILE:
@@ -2104,5 +2133,6 @@
 
 					sprintf(str,"%s%s",pj_editor_Dir,lpszCompilerName);
-					ShellExecute(hwnd,"open",str,temporary,NULL,SW_SHOWNORMAL);
+
+					CreateProcessWithStdHandle( str, temporary );
 
 					return 0;
@@ -2140,5 +2170,6 @@
 						sprintf(str,"%s%s",pj_editor_Dir,WIN64_COMPILER_NAME);
 
-					ShellExecute(hwnd,"open",str,temporary,NULL,SW_SHOWNORMAL);
+					CreateProcessWithStdHandle( str, temporary );
+
 					return 0;
 				case IDM_RELEASECOMPILE:
@@ -2190,5 +2221,7 @@
 
 					sprintf(str,"%s%s",pj_editor_Dir,lpszCompilerName);
-					ShellExecute(hwnd,"open",str,temporary,NULL,SW_SHOWNORMAL);
+
+					CreateProcessWithStdHandle( str, temporary );
+
 					return 0;
 				case IDM_RELEASERUN:
@@ -2721,11 +2754,14 @@
 			}
 #endif
-			if(pobj_SideWeb->bShow){
-				//SideWebとMDIクライアントの境目のサイズ変更ライン
-				pobj_SideWeb->GetRect(&rect);
-				ClientToScreen(hwnd,&rect);
-				if(rect.top<=pos.y&&pos.y<=rect.bottom&&
-					rect.left-LEVER_THICK<=pos.x&&pos.x<=rect.left){
-					SetCursor(LoadCursor(0,IDC_SIZEWE));
+			if( pobj_SideWeb )
+			{
+				if(pobj_SideWeb->bShow){
+					//SideWebとMDIクライアントの境目のサイズ変更ライン
+					pobj_SideWeb->GetRect(&rect);
+					ClientToScreen(hwnd,&rect);
+					if(rect.top<=pos.y&&pos.y<=rect.bottom&&
+						rect.left-LEVER_THICK<=pos.x&&pos.x<=rect.left){
+						SetCursor(LoadCursor(0,IDC_SIZEWE));
+					}
 				}
 			}
