Index: /trunk/ab5.0/abdev/abdev/abdev.cpp
===================================================================
--- /trunk/ab5.0/abdev/abdev/abdev.cpp	(revision 500)
+++ /trunk/ab5.0/abdev/abdev/abdev.cpp	(revision 501)
@@ -1330,5 +1330,4 @@
 	POINT pos;
 	HDROP hDrop;
-	HGLOBAL hGlobal;
 
 	static COLORREF colorUser=RGB(255,255,255);
@@ -1353,178 +1352,4 @@
 			switch(LOWORD(wParam)){
 
-#ifndef THETEXT
-
-
-				////////////////////////
-				// デバッグ コマンド
-				////////////////////////
-
-				case IDM_STEP_IN:
-					pobj_Debugger->StepIn();
-					break;
-				case IDM_STEP_OVER:
-					pobj_Debugger->StepOver();
-					break;
-				case IDM_STEP_CURSOR:
-					pobj_Debugger->StepToCursor();
-					break;
-				case IDM_BREAKPOINT:
-					if(ProjectInfo.name[0]){
-						ProjectInfo.pobj_DBBreakPoint->Event_BreakPoint();
-					}
-					else{
-						pobj_DBBreakPoint->Event_BreakPoint();
-					}
-					break;
-				case IDM_DEBUG_STOP:
-					pobj_Debugger->DebugStop();
-					break;
-				case IDM_DEBUG_PAUSE:
-					pobj_Debugger->DebugPause();
-					break;
-
-
-				case IDM_COMMUNITY:
-					ShellExecute(hwnd,"open","iexplore.exe",
-						"http://www.activebasic.com/forum/",
-						NULL,SW_SHOWNORMAL);
-					return 0;
-				case IDM_COMMU_SEARCH:
-					ShellExecute(hwnd,"open","iexplore.exe",
-						"http://www.activebasic.com/forum/search.php",
-						NULL,SW_SHOWNORMAL);
-					return 0;
-				case IDM_COMMU_PM:
-					ShellExecute(hwnd,"open","iexplore.exe",
-						"http://www.activebasic.com/forum/privmsg.php?folder=inbox",
-						NULL,SW_SHOWNORMAL);
-					return 0;
-				case ID_COMMU_FORUM1:
-					ShellExecute(hwnd,"open","iexplore.exe",
-						"http://www.activebasic.com/forum/viewforum.php?f=1",
-						NULL,SW_SHOWNORMAL);
-					return 0;
-				case ID_COMMU_FORUM2:
-					ShellExecute(hwnd,"open","iexplore.exe",
-						"http://www.activebasic.com/forum/viewforum.php?f=2",
-						NULL,SW_SHOWNORMAL);
-					return 0;
-				case ID_COMMU_FORUM3:
-					ShellExecute(hwnd,"open","iexplore.exe",
-						"http://www.activebasic.com/forum/viewforum.php?f=5",
-						NULL,SW_SHOWNORMAL);
-					return 0;
-				case ID_COMMU_FORUM4:
-					ShellExecute(hwnd,"open","iexplore.exe",
-						"http://www.activebasic.com/forum/viewforum.php?f=3",
-						NULL,SW_SHOWNORMAL);
-					return 0;
-				case ID_COMMU_FORUM5:
-					ShellExecute(hwnd,"open","iexplore.exe",
-						"http://www.activebasic.com/forum/viewforum.php?f=6",
-						NULL,SW_SHOWNORMAL);
-					return 0;
-				case ID_COMMU_FORUM6:
-					ShellExecute(hwnd,"open","iexplore.exe",
-						"http://www.activebasic.com/forum/viewforum.php?f=8",
-						NULL,SW_SHOWNORMAL);
-					return 0;
-				case ID_COMMU_FORUM7:
-					ShellExecute(hwnd,"open","iexplore.exe",
-						"http://www.activebasic.com/forum/viewforum.php?f=4",
-						NULL,SW_SHOWNORMAL);
-					return 0;
-				case ID_COMMU_FORUM8:
-					ShellExecute(hwnd,"open","iexplore.exe",
-						"http://www.activebasic.com/forum/viewforum.php?f=7",
-						NULL,SW_SHOWNORMAL);
-					return 0;
-#endif //THETEXT
-
-
-				case IDM_TOPIC:
-#ifdef THETEXT
-					sprintf(str,"%sTopics\\index.html",pj_editor_Dir);
-					ShellExecute(hwnd,"open",str,NULL,NULL,SW_SHOWNORMAL);
-#else
-					sprintf(str,"%sBasicHelp.chm",pj_editor_Dir);
-					HtmlHelp(NULL,str,HH_DISPLAY_TOPIC,0);
-#endif
-					return 0;
-
-#ifdef THETEXT
-				case IDM_DSHOMEPAGE:
-					ShellExecute(hwnd,"open","http://www.discoversoft.net/",NULL,NULL,SW_SHOWNORMAL);
-					return 0;
-#else
-				case IDM_AB_WEBSITE:
-					ShellExecute(hwnd,"open","http://www.activebasic.com/",NULL,NULL,SW_SHOWNORMAL);
-					return 0;
-				case IDM_ACTBDL:
-					ShellExecute(hwnd,"open","http://www.activebasic.com/activebasic5/download.htm",NULL,NULL,SW_SHOWNORMAL);
-					return 0;
-#endif
-
-				case IDM_ABOUT:
-					DialogBox(hResInst,MAKEINTRESOURCE(IDD_ABOUT),hwnd,(DLGPROC)DialogAbout);
-					return 0;
-
-				case IDM_WEB_SEARCH:
-					hChild=GetWindow(hClient,GW_CHILD);
-					WndNum=GetWndNum(hChild);
-					if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
-						extern HWND hWebSearchCombo;
-						SendMessage(GetWindow(hWebSearchCombo,GW_CHILD),WM_CHAR,VK_RETURN,0);
-					}
-					return 0;
-
-
-
-				//////////////////////////////////////////////////////
-				// レバーコントロールのサブメニューコマンド（レバー追加）
-				//////////////////////////////////////////////////////
-
-				case IDM_DOCSELECTBAND:
-					pobj_Rebar->ChangeRebarBand(ID_DOCCOMBO);
-					return 0;
-				case IDM_STANDARDBAND:
-					pobj_Rebar->ChangeRebarBand(ID_STANDARDTOOLBAR);
-					return 0;
-#ifndef THETEXT
-				case IDM_RELEASEBAND:
-					pobj_Rebar->ChangeRebarBand(ID_RELEASETOOLBAR);
-					return 0;
-				case IDM_DEBUGBAND:
-					pobj_Rebar->ChangeRebarBand(ID_DEBUGGERTOOLBAR);
-					return 0;
-				case IDM_SELECTCOMPILERBAND:
-					pobj_Rebar->ChangeRebarBand(ID_SELECTCOMPILERCOMBO);
-					return 0;
-#endif
-				case IDM_BANDMENU_WEB_SEARCH:
-					pobj_Rebar->ChangeRebarBand(ID_WEB_SEARCH);
-					return 0;
-				case IDM_NOGRIPPER:
-					if(pobj_nv->bNoGripper) pobj_nv->bNoGripper=0;
-					else pobj_nv->bNoGripper=1;
-
-					//レバーコントロールを再生成
-					pobj_Rebar->ResetRebar();
-
-					//メニュー状態を設定
-					ResetState_DocMenu();
-					return 0;
-				case IDM_RESET_REBAR:
-					//"ツールバーの配置をすべて初期状態に戻します。\nよろしいですか？"
-					if(IDCANCEL==MessageBox(hwnd,STRING_TOOLBAR_RESET,APPLICATION_NAME,MB_OKCANCEL|MB_ICONEXCLAMATION)) break;
-
-					//レバーコントロールを再生成
-					pobj_Rebar->ResetInitRebar();
-
-					//メニュー状態を設定
-					ResetState_DocMenu();
-					return 0;
-
-
 
 				////////////////////////////////////////////////////
@@ -1532,65 +1357,4 @@
 				////////////////////////////////////////////////////
 
-				case IDM_ALLCLOSE_OMIT_MYSELF:
-					//このウィンドウ以外をすべて閉じる(&A)
-					hChild=GetWindow(hClient,GW_CHILD);
-					WndNum=GetWndNum(hChild);
-					for(i=0;i<MAX_WNDNUM;i++){
-						if(i==WndNum) continue;
-						if(MdiInfo[i].hwnd) SendMessage(MdiInfo[i].hwnd,WM_CLOSE,0,0);
-					}
-					return 0;
-
-				case IDM_PATH_COPY:
-					hChild=GetWindow(hClient,GW_CHILD);
-					WndNum=GetWndNum(hChild);
-
-					//絶対パスをコピー
-					hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,lstrlen(MdiInfo[WndNum].path)+1);
-					pTemp=(char *)GlobalLock(hGlobal);
-					lstrcpy(pTemp,MdiInfo[WndNum].path);
-					GlobalUnlock(hGlobal);
-
-					//クリップボードに保存
-					OpenClipboard(hwnd);
-					EmptyClipboard();
-					SetClipboardData(CF_TEXT,hGlobal);
-					CloseClipboard();
-					return 0;
-
-				case IDM_FOLDER_OPEN:
-					hChild=GetWindow(hClient,GW_CHILD);
-					WndNum=GetWndNum(hChild);
-
-					_splitpath(MdiInfo[WndNum].path,temporary,temp2,NULL,NULL);
-					lstrcat(temporary,temp2);
-
-					ShellExecute(hwnd,"explore",temporary,NULL,NULL,SW_SHOWNORMAL);
-					return 0;
-
-				case IDM_DELETE_FILE:
-					hChild=GetWindow(hClient,GW_CHILD);
-					WndNum=GetWndNum(hChild);
-
-					_splitpath(MdiInfo[WndNum].path,NULL,NULL,temporary,temp2);
-					lstrcat(temporary,temp2);
-
-					lstrcat(temporary," をごみ箱に移動して閉じます。よろしいですか？");
-					if(MessageBox(hwnd,temporary,APPLICATION_NAME,MB_OKCANCEL|MB_ICONQUESTION)==IDCANCEL) return 0;
-
-					//ゴミ箱へ
-					SHFILEOPSTRUCT fo;
-					fo.hwnd=hwnd;
-					fo.wFunc=FO_DELETE;
-					fo.pFrom =MdiInfo[WndNum].path;
-					fo.pTo="\0";
-					fo.fFlags =FOF_ALLOWUNDO|FOF_NOCONFIRMATION;
-					SHFileOperation(&fo);
-
-					//閉じる
-					MdiInfo[WndNum].pMdiTextEdit->UnModify();
-					SendMessage(MdiInfo[WndNum].hwnd,WM_CLOSE,0,0);
-
-					return 0;
 
 				case IDM_USER_COLOR:
@@ -1941,81 +1705,4 @@
 			}
 			break;	//処理をDefFrameProcへ
-		case WM_QUERYENDSESSION:
-		case WM_CLOSE:
-			extern BOOL bSearchingClasses;
-			if(bSearchingClasses){
-				pobj_ClassTreeView->bCloseSwitch=1;
-				return 0;
-			}
-
-			//コンパイラビューを閉じる
-			if(hCompileView)
-				SendMessage(hCompileView,WM_COMMAND,IDCANCEL,0);
-
-			//次回起動時にMDIウィンドウを最大化させるかを判定
-			hChild=GetWindow(hClient,GW_CHILD);
-			pobj_nv->bMDIZoomed=IsZoomed(hChild);
-
-			//プロジェクトを閉じる
-			if(ProjectInfo.name[0]){
-				if(!CloseProject()) return 0;
-			}
-
-			//MDIウィンドウの保存確認
-			hChild=GetWindow(hClient,GW_CHILD);
-			while(hChild){
-				i=GetWndNum(hChild);
-				if(!DocumentModifyCheck(hChild)) return 0;
-				hChild=GetNextWindow(hChild,GW_HWNDNEXT);
-			}
-
-
-			KillTimer(hwnd,ID_TIMER_BACKUP);
-
-
-			//ProjectViewの位置を保存、ProjectViewを破棄
-			GetWindowRect(hProjectView_ToolWindow,&pobj_nv->rectProjectView);
-			DestroyWindow(hProjectView);
-			DestroyWindow(hProjectView_ToolWindow);
-
-			//Rebarの位置を保存、Rebarを破棄
-			delete pobj_Rebar;
-			pobj_Rebar=0;
-
-			//タブコントロールを破棄
-			delete pobj_MainTab;
-			pobj_MainTab=0;
-
-			//SideWebを破棄
-			delete pobj_SideWeb;
-			pobj_SideWeb=0;
-
-			//メインウィンドウの最大化有無、座標を保存
-			if(IsZoomed(hwnd)) pobj_nv->bWindowMax=1;
-			else if(!IsIconic(hwnd)){
-				pobj_nv->bWindowMax=0;
-				GetWindowRect(hwnd,&pobj_nv->StartupWindowRect);
-			}
-
-			hChild=GetWindow(hClient,GW_CHILD);
-			while(hChild){
-				CloseDocWindow(GetWndNum(hChild));
-				DestroyWindow(hChild);
-				hChild=GetWindow(hClient,GW_CHILD);
-			}
-
-			EndProjectEditor();		//ProjectEditorの情報を保存
-
-			//エディタ用フォントを破棄
-			extern HFONT hFont_TextEdit,hFont_HyperLink_TextEdit;
-			if(hFont_TextEdit) DeleteObject(hFont_TextEdit);
-			if(hFont_HyperLink_TextEdit) DeleteObject(hFont_HyperLink_TextEdit);
-
-			DestroyWindow(hwnd);
-			return 0;
-
-		case WM_DESTROY:
-			PostQuitMessage(0);
-			return 0;
 	}
 
Index: /trunk/ab5.0/abdev/abdev/include/MainFrame.h
===================================================================
--- /trunk/ab5.0/abdev/abdev/include/MainFrame.h	(revision 500)
+++ /trunk/ab5.0/abdev/abdev/include/MainFrame.h	(revision 501)
@@ -12,9 +12,18 @@
 public:
 
+	// WebブラウザでURLを開く
+	void OpenWebBrowser( const std::string &url );
+
+	// Explorerでパスを開く
+	void OpenExplorer( const std::string &path );
+
 	// 生成された
 	::LRESULT OnCreate( ::UINT msg, ::WPARAM wParam, ::LPARAM lParam, ::BOOL& handled );
 
+	// OSが終了する
+	BOOL OnQueryEndSession(UINT nSource, UINT uLogOff);
+
 	// 「閉じる」ボタンがクリックされた
-	::LRESULT OnClose( ::UINT msg, ::WPARAM wParam, ::LPARAM lParam, ::BOOL& handled );
+	void OnClose();
 
 	// リサイズされた
@@ -22,5 +31,5 @@
 
 	// 破棄された
-	::LRESULT OnDestroy( ::UINT msg, ::WPARAM wParam, ::LPARAM lParam, ::BOOL& handled );
+	void OnDestroy();
 
 	// タイマーイベント
@@ -155,4 +164,64 @@
 	// 「リリース実行」メニューがクリックされた
 	void OnCmdReleaseRun( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// 「ステップイン」メニューがクリックされた
+	void OnCmdStepIn( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// 「ステップオーバー」メニューがクリックされた
+	void OnCmdStepOver( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// 「カーソル行まで実行」メニューがクリックされた
+	void OnCmdStepCursor( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// 「ブレークポイント」メニューがクリックされた
+	void OnCmdBreakPoint( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// 「デバッグの停止」メニューがクリックされた
+	void OnCmdDebugStop( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// 「デバッグの一時停止」メニューがクリックされた
+	void OnCmdDebugPause( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// Webリンクメニューがクリックされた
+	void OnCmdWebLink( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// 「トピックス」メニューがクリックされた
+	void OnCmdTopics( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// 「バージョン情報」メニューがクリックされた
+	void OnCmdAbout( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// レバーの「ドキュメントセレクト」メニューがクリックされた
+	void OnCmdDocSelectBand( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// レバーの「標準」メニューがクリックされた
+	void OnCmdStandardBand( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// レバーの「リリース」メニューがクリックされた
+	void OnCmdReleaseBand( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// レバーの「デバッグ」メニューがクリックされた
+	void OnCmdDebugBand( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// レバーの「プラットフォーム選択」メニューがクリックされた
+	void OnCmdSelectCompilerBand( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// レバーの「レバーを固定」メニューがクリックされた
+	void OnCmdNoGripper( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// レバーの「レバーをリセット」メニューがクリックされた
+	void OnCmdResetRebar( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// タブの「自分以外のウィンドウを閉じる」メニューがクリックされた
+	void OnCmdAllCloseOmitMyself( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// タブの「絶対パスをコピー」メニューがクリックされた
+	void OnCmdPathCopy( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// タブの「フォルダを開く」メニューがクリックされた
+	void OnCmdFolderOpen( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// タブの「ファイルを削除」メニューがクリックされた
+	void OnCmdDeleteFile( UINT uNotifyCode, int nID, CWindow wndCtl );
 
 private:
@@ -160,6 +229,7 @@
 	BEGIN_MSG_MAP( MainFrame )
 		MESSAGE_HANDLER( WM_CREATE, OnCreate )
-		MESSAGE_HANDLER( WM_CLOSE, OnClose )
-		MESSAGE_HANDLER( WM_DESTROY, OnDestroy )
+		MSG_WM_QUERYENDSESSION( OnQueryEndSession )
+		MSG_WM_CLOSE( OnClose )
+		MSG_WM_DESTROY( OnDestroy )
 		MSG_WM_TIMER( OnTimer )
 		MSG_WM_DRAWCLIPBOARD( OnDrawClipboard )
@@ -222,4 +292,5 @@
 #endif
 		COMMAND_ID_HANDLER_EX( IDM_SET, OnCmdSet )
+#ifndef THETEXT
 		COMMAND_ID_HANDLER_EX( IDM_DEBUG, OnCmdDebug )
 		COMMAND_ID_HANDLER_EX( IDM_DEBUGCOMPILE, OnCmdDebugCompile )
@@ -227,4 +298,41 @@
 		COMMAND_ID_HANDLER_EX( IDM_RELEASECOMPILE, OnCmdReleaseCompile )
 		COMMAND_ID_HANDLER_EX( IDM_RELEASERUN, OnCmdReleaseRun )
+		COMMAND_ID_HANDLER_EX( IDM_STEP_IN, OnCmdStepIn )
+		COMMAND_ID_HANDLER_EX( IDM_STEP_OVER, OnCmdStepOver )
+		COMMAND_ID_HANDLER_EX( IDM_STEP_CURSOR, OnCmdStepCursor )
+		COMMAND_ID_HANDLER_EX( IDM_BREAKPOINT, OnCmdBreakPoint )
+		COMMAND_ID_HANDLER_EX( IDM_DEBUG_STOP, OnCmdDebugStop )
+		COMMAND_ID_HANDLER_EX( IDM_DEBUG_PAUSE, OnCmdDebugPause )
+		COMMAND_ID_HANDLER_EX( IDM_COMMUNITY, OnCmdWebLink )
+		COMMAND_ID_HANDLER_EX( IDM_COMMU_SEARCH, OnCmdWebLink )
+		COMMAND_ID_HANDLER_EX( IDM_COMMU_PM, OnCmdWebLink )
+		COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM1, OnCmdWebLink )
+		COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM2, OnCmdWebLink )
+		COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM3, OnCmdWebLink )
+		COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM4, OnCmdWebLink )
+		COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM5, OnCmdWebLink )
+		COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM6, OnCmdWebLink )
+		COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM7, OnCmdWebLink )
+		COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM8, OnCmdWebLink )
+		COMMAND_ID_HANDLER_EX( IDM_AB_WEBSITE, OnCmdWebLink )
+		COMMAND_ID_HANDLER_EX( IDM_ACTBDL, OnCmdWebLink )
+#else
+		COMMAND_ID_HANDLER_EX( IDM_DSHOMEPAGE, OnCmdWebLink )
+#endif
+		COMMAND_ID_HANDLER_EX( IDM_TOPIC, OnCmdTopics )
+		COMMAND_ID_HANDLER_EX( IDM_ABOUT, OnCmdAbout )
+		COMMAND_ID_HANDLER_EX( IDM_DOCSELECTBAND, OnCmdDocSelectBand )
+		COMMAND_ID_HANDLER_EX( IDM_STANDARDBAND, OnCmdStandardBand )
+#ifndef THETEXT
+		COMMAND_ID_HANDLER_EX( IDM_RELEASEBAND, OnCmdReleaseBand )
+		COMMAND_ID_HANDLER_EX( IDM_DEBUGBAND, OnCmdDebugBand )
+		COMMAND_ID_HANDLER_EX( IDM_SELECTCOMPILERBAND, OnCmdSelectCompilerBand )
+#endif
+		COMMAND_ID_HANDLER_EX( IDM_NOGRIPPER, OnCmdNoGripper )
+		COMMAND_ID_HANDLER_EX( IDM_RESET_REBAR, OnCmdResetRebar )
+		COMMAND_ID_HANDLER_EX( IDM_ALLCLOSE_OMIT_MYSELF, OnCmdAllCloseOmitMyself )
+		COMMAND_ID_HANDLER_EX( IDM_PATH_COPY, OnCmdPathCopy )
+		COMMAND_ID_HANDLER_EX( IDM_FOLDER_OPEN, OnCmdFolderOpen )
+		COMMAND_ID_HANDLER_EX( IDM_DELETE_FILE, OnCmdDeleteFile )
 	END_MSG_MAP()
 };
Index: /trunk/ab5.0/abdev/abdev/src/MainFrame.cpp
===================================================================
--- /trunk/ab5.0/abdev/abdev/src/MainFrame.cpp	(revision 500)
+++ /trunk/ab5.0/abdev/abdev/src/MainFrame.cpp	(revision 501)
@@ -7,4 +7,14 @@
 void SetupWindow(HWND hwnd);
 void ResetTextEditFont(HWND hwnd);
+
+void MainFrame::OpenWebBrowser( const std::string &url )
+{
+	ShellExecute(m_hWnd,"open",url.c_str(),"",NULL,SW_SHOWNORMAL);
+}
+
+void MainFrame::OpenExplorer( const std::string &path )
+{
+	ShellExecute(m_hWnd,"explore",path.c_str(),NULL,NULL,SW_SHOWNORMAL);
+}
 
 ::LRESULT MainFrame::OnCreate( ::UINT msg, ::WPARAM wParam, ::LPARAM lParam, ::BOOL& handled )
@@ -51,10 +61,87 @@
 }
 
-::LRESULT MainFrame::OnClose( ::UINT msg, ::WPARAM wParam, ::LPARAM lParam, ::BOOL& handled )
-{
+BOOL MainFrame::OnQueryEndSession(UINT nSource, UINT uLogOff)
+{
+	OnClose();
+
+	return TRUE;
+}
+
+void MainFrame::OnClose()
+{
+	extern BOOL bSearchingClasses;
+	if(bSearchingClasses){
+		pobj_ClassTreeView->bCloseSwitch=1;
+		return;
+	}
+
+	//コンパイラビューを閉じる
+	extern HWND hCompileView;
+	if(hCompileView)
+		SendMessage(hCompileView,WM_COMMAND,IDCANCEL,0);
+
+	//次回起動時にMDIウィンドウを最大化させるかを判定
+	HWND hChild=::GetWindow(hClient,GW_CHILD);
+	pobj_nv->bMDIZoomed=::IsZoomed(hChild);
+
+	//プロジェクトを閉じる
+	if(ProjectInfo.name[0]){
+		if(!CloseProject()) return;
+	}
+
+	//MDIウィンドウの保存確認
+	hChild=::GetWindow(hClient,GW_CHILD);
+	while(hChild){
+		if(!DocumentModifyCheck(hChild)) return;
+		hChild=::GetNextWindow(hChild,GW_HWNDNEXT);
+	}
+
+
+	KillTimer(ID_TIMER_BACKUP);
+
+
+	//ProjectViewの位置を保存、ProjectViewを破棄
+	extern HWND hProjectView;
+	extern HWND hProjectView_ToolWindow;
+	::GetWindowRect(hProjectView_ToolWindow,&pobj_nv->rectProjectView);
+	::DestroyWindow(hProjectView);
+	::DestroyWindow(hProjectView_ToolWindow);
+
+	//Rebarの位置を保存、Rebarを破棄
+	delete pobj_Rebar;
+	pobj_Rebar=0;
+
+	//タブコントロールを破棄
+	delete pobj_MainTab;
+	pobj_MainTab=0;
+
+	//SideWebを破棄
+	delete pobj_SideWeb;
+	pobj_SideWeb=0;
+
+	//メインウィンドウの最大化有無、座標を保存
+	if(IsZoomed()) pobj_nv->bWindowMax=1;
+	else if(!IsIconic()){
+		pobj_nv->bWindowMax=0;
+		GetWindowRect(&pobj_nv->StartupWindowRect);
+	}
+
+	hChild=::GetWindow(hClient,GW_CHILD);
+	while(hChild){
+		CloseDocWindow(GetWndNum(hChild));
+		::DestroyWindow(hChild);
+		hChild=::GetWindow(hClient,GW_CHILD);
+	}
+
+	EndProjectEditor();		//ProjectEditorの情報を保存
+
+	//エディタ用フォントを破棄
+	extern HFONT hFont_TextEdit,hFont_HyperLink_TextEdit;
+	if(hFont_TextEdit) DeleteObject(hFont_TextEdit);
+	if(hFont_HyperLink_TextEdit) DeleteObject(hFont_HyperLink_TextEdit);
+
 	DestroyWindow();
-	return 0;
-}
-::LRESULT MainFrame::OnDestroy( ::UINT msg, ::WPARAM wParam, ::LPARAM lParam, ::BOOL& handled )
+}
+void MainFrame::OnDestroy()
 {
 	mdiWindow->DestroyWindow();
@@ -62,6 +149,4 @@
 
 	::PostQuitMessage( 0 );
-
-	return 0;
 }
 
@@ -766,4 +851,5 @@
 }
 
+#ifndef THETEXT
 void MainFrame::OnCmdDebug( UINT uNotifyCode, int nID, CWindow wndCtl )
 {
@@ -1052,2 +1138,230 @@
 	ShellExecute(m_hWnd,"open",temporary,NULL,NULL,SW_SHOWNORMAL);
 }
+
+void MainFrame::OnCmdStepIn( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	pobj_Debugger->StepIn();
+}
+
+void MainFrame::OnCmdStepOver( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	pobj_Debugger->StepOver();
+}
+
+void MainFrame::OnCmdStepCursor( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	pobj_Debugger->StepToCursor();
+}
+
+void MainFrame::OnCmdBreakPoint( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	if(ProjectInfo.name[0]){
+		ProjectInfo.pobj_DBBreakPoint->Event_BreakPoint();
+	}
+	else{
+		extern CDBBreakPoint *pobj_DBBreakPoint;
+		pobj_DBBreakPoint->Event_BreakPoint();
+	}
+}
+
+void MainFrame::OnCmdDebugStop( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	pobj_Debugger->DebugStop();
+}
+
+void MainFrame::OnCmdDebugPause( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	pobj_Debugger->DebugPause();
+}
+
+#endif	// not THETEXT
+
+void MainFrame::OnCmdWebLink( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	switch( nID )
+	{
+#ifndef THETEXT
+	case IDM_COMMUNITY:
+		OpenWebBrowser( "http://www.activebasic.com/forum/" );
+		break;
+	case IDM_COMMU_SEARCH:
+		OpenWebBrowser( "http://www.activebasic.com/forum/search.php" );
+		break;
+	case IDM_COMMU_PM:
+		OpenWebBrowser( "http://www.activebasic.com/forum/privmsg.php?folder=inbox" );
+		break;
+	case ID_COMMU_FORUM1:
+		OpenWebBrowser( "http://www.activebasic.com/forum/viewforum.php?f=1" );
+		break;
+	case ID_COMMU_FORUM2:
+		OpenWebBrowser( "http://www.activebasic.com/forum/viewforum.php?f=2" );
+		break;
+	case ID_COMMU_FORUM3:
+		OpenWebBrowser( "http://www.activebasic.com/forum/viewforum.php?f=5" );
+		break;
+	case ID_COMMU_FORUM4:
+		OpenWebBrowser( "http://www.activebasic.com/forum/viewforum.php?f=3" );
+		break;
+	case ID_COMMU_FORUM5:
+		OpenWebBrowser( "http://www.activebasic.com/forum/viewforum.php?f=6" );
+		break;
+	case ID_COMMU_FORUM6:
+		OpenWebBrowser( "http://www.activebasic.com/forum/viewforum.php?f=8" );
+		break;
+	case ID_COMMU_FORUM7:
+		OpenWebBrowser( "http://www.activebasic.com/forum/viewforum.php?f=4" );
+		break;
+	case ID_COMMU_FORUM8:
+		OpenWebBrowser( "http://www.activebasic.com/forum/viewforum.php?f=7" );
+		break;
+	case IDM_AB_WEBSITE:
+		OpenWebBrowser( "http://www.activebasic.com/" );
+		break;
+	case IDM_ACTBDL:
+		OpenWebBrowser( "http://www.activebasic.com/activebasic5/download.htm" );
+		break;
+#else
+	case IDM_DSHOMEPAGE:
+		OpenWebBrowser( "http://www.discoversoft.net/" );
+		break;
+#endif // not THETEXT
+	default:
+		throw;
+	}
+}
+
+void MainFrame::OnCmdTopics( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	char temporary[1024];
+#ifdef THETEXT
+	sprintf(temporary,"%sTopics\\index.html",pj_editor_Dir);
+	ShellExecute(m_hWnd,"open",temporary,NULL,NULL,SW_SHOWNORMAL);
+#else
+	sprintf(temporary,"%sBasicHelp.chm",pj_editor_Dir);
+	HtmlHelp(NULL,temporary,HH_DISPLAY_TOPIC,0);
+#endif
+}
+
+void MainFrame::OnCmdAbout( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	DialogBox(hResInst,MAKEINTRESOURCE(IDD_ABOUT),m_hWnd,(DLGPROC)DialogAbout);
+}
+
+void MainFrame::OnCmdDocSelectBand( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	pobj_Rebar->ChangeRebarBand(ID_DOCCOMBO);
+}
+
+void MainFrame::OnCmdStandardBand( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	pobj_Rebar->ChangeRebarBand(ID_STANDARDTOOLBAR);
+}
+
+void MainFrame::OnCmdReleaseBand( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	pobj_Rebar->ChangeRebarBand(ID_RELEASETOOLBAR);
+}
+
+void MainFrame::OnCmdDebugBand( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	pobj_Rebar->ChangeRebarBand(ID_DEBUGGERTOOLBAR);
+}
+
+void MainFrame::OnCmdSelectCompilerBand( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	pobj_Rebar->ChangeRebarBand(ID_SELECTCOMPILERCOMBO);
+}
+
+void MainFrame::OnCmdNoGripper( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	if(pobj_nv->bNoGripper) pobj_nv->bNoGripper=0;
+	else pobj_nv->bNoGripper=1;
+
+	//レバーコントロールを再生成
+	pobj_Rebar->ResetRebar();
+
+	//メニュー状態を設定
+	ResetState_DocMenu();
+}
+
+void MainFrame::OnCmdResetRebar( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	//"ツールバーの配置をすべて初期状態に戻します。\nよろしいですか？"
+	if( MessageBox(STRING_TOOLBAR_RESET,APPLICATION_NAME,MB_OKCANCEL|MB_ICONEXCLAMATION) == IDCANCEL )
+	{
+		return;
+	}
+
+	//レバーコントロールを再生成
+	pobj_Rebar->ResetInitRebar();
+
+	//メニュー状態を設定
+	ResetState_DocMenu();
+}
+
+void MainFrame::OnCmdAllCloseOmitMyself( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	//このウィンドウ以外をすべて閉じる(&A)
+	HWND hChild=::GetWindow(hClient,GW_CHILD);
+	int WndNum=GetWndNum(hChild);
+	for(int i=0;i<MAX_WNDNUM;i++){
+		if(i==WndNum) continue;
+		if(MdiInfo[i].hwnd) SendMessage(MdiInfo[i].hwnd,WM_CLOSE,0,0);
+	}
+}
+
+void MainFrame::OnCmdPathCopy( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	HWND hChild=::GetWindow(hClient,GW_CHILD);
+	int WndNum=GetWndNum(hChild);
+
+	//絶対パスをコピー
+	HGLOBAL hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,lstrlen(MdiInfo[WndNum].path)+1);
+	char *pTemp=(char *)GlobalLock(hGlobal);
+	lstrcpy(pTemp,MdiInfo[WndNum].path);
+	GlobalUnlock(hGlobal);
+
+	//クリップボードに保存
+	OpenClipboard();
+	EmptyClipboard();
+	SetClipboardData(CF_TEXT,hGlobal);
+	CloseClipboard();
+}
+
+void MainFrame::OnCmdFolderOpen( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	HWND hChild=::GetWindow(hClient,GW_CHILD);
+	int WndNum=GetWndNum(hChild);
+
+	char temporary[1024], temp2[1024];
+	_splitpath(MdiInfo[WndNum].path,temporary,temp2,NULL,NULL);
+	lstrcat(temporary,temp2);
+
+	OpenExplorer( temporary );
+}
+
+void MainFrame::OnCmdDeleteFile( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	HWND hChild=::GetWindow(hClient,GW_CHILD);
+	int WndNum=GetWndNum(hChild);
+
+	char temporary[1024], temp2[1024];
+	_splitpath(MdiInfo[WndNum].path,NULL,NULL,temporary,temp2);
+	lstrcat(temporary,temp2);
+
+	lstrcat(temporary," をごみ箱に移動して閉じます。よろしいですか？");
+	if(MessageBox(temporary,APPLICATION_NAME,MB_OKCANCEL|MB_ICONQUESTION)==IDCANCEL) return;
+
+	//ゴミ箱へ
+	SHFILEOPSTRUCT fo;
+	fo.hwnd=m_hWnd;
+	fo.wFunc=FO_DELETE;
+	fo.pFrom =MdiInfo[WndNum].path;
+	fo.pTo="\0";
+	fo.fFlags =FOF_ALLOWUNDO|FOF_NOCONFIRMATION;
+	SHFileOperation(&fo);
+
+	//閉じる
+	MdiInfo[WndNum].pMdiTextEdit->UnModify();
+	SendMessage(MdiInfo[WndNum].hwnd,WM_CLOSE,0,0);
+}
