/*! 外部HTMLヘルプ @param helpfile [in] HTMLヘルプファイル名.NULLのときはタイプ別に設定されたファイル. @param kwd [in] 検索キーワード.NULLのときはカーソル位置or選択されたワード @date 2002.07.05 genta 任意のファイル・キーワードの指定ができるよう引数追加 */ void CViewCommander::Command_EXTHTMLHELP( const WCHAR* _helpfile, const WCHAR* kwd ) { std::tstring helpfile; if( _helpfile != NULL ){ helpfile = to_tchar(_helpfile); } HWND hwndHtmlHelp; int nLen; DEBUG_TRACE( _T("helpfile=%ts\n"), helpfile.c_str() ); // From Here Jul. 5, 2002 genta const TCHAR *filename = NULL; if ( 0 == helpfile.length() ){ while( !CHelpManager().ExtHTMLHelpIsSet( &(GetDocument()->m_cDocType.GetDocumentAttribute())) ){ ErrorBeep(); // From Here Sept. 15, 2000 JEPRO // [Esc]キーと[x]ボタンでも中止できるように変更 if( IDYES != ::MYMESSAGEBOX( NULL, MB_YESNOCANCEL | MB_ICONEXCLAMATION | MB_APPLMODAL | MB_TOPMOST, GSTR_APPNAME, // To Here Sept. 15, 2000 LS(STR_ERR_CEDITVIEW_CMD02) ) ){ return; } /* 共通設定 プロパティシート */ if( !CEditApp::getInstance()->OpenPropertySheet( ID_PROPCOM_PAGENUM_HELPER ) ){ return; } } filename = CHelpManager().GetExtHTMLHelp( &(GetDocument()->m_cDocType.GetDocumentAttribute()) ); } else { filename = helpfile.c_str(); } // To Here Jul. 5, 2002 genta // Jul. 5, 2002 genta // キーワードの外部指定を可能に CNativeW cmemCurText; if( kwd != NULL && kwd[0] != _T('\0') ){ cmemCurText.SetString( kwd ); } else { /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */ m_pCommanderView->GetCurrentTextForSearch( cmemCurText ); } /* HtmlHelpビューアはひとつ */ if( CHelpManager().HTMLHelpIsSingle( &(GetDocument()->m_cDocType.GetDocumentAttribute())) ){ // タスクトレイのプロセスにHtmlHelpを起動させる // 2003.06.23 Moca 相対パスは実行ファイルからのパス // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先 TCHAR* pWork=GetDllShareData().m_sWorkBuffer.GetWorkBuffer<TCHAR>(); if( _IS_REL_PATH( filename ) ){ GetInidirOrExedir( pWork, filename ); }else{ _tcscpy( pWork, filename ); // Jul. 5, 2002 genta } nLen = _tcslen( pWork ); _tcscpy( &pWork[nLen + 1], cmemCurText.GetStringT() ); hwndHtmlHelp = (HWND)::SendMessageAny( GetDllShareData().m_sHandles.m_hwndTray, MYWM_HTMLHELP, (WPARAM)GetMainWindow(), 0 ); } else{ /* 自分でHtmlHelpを起動させる */ HH_AKLINK link; link.cbStruct = sizeof( link ) ; link.fReserved = FALSE ; link.pszKeywords = cmemCurText.GetStringT(); link.pszUrl = NULL; link.pszMsgText = NULL; link.pszMsgTitle = NULL; link.pszWindow = NULL; link.fIndexOnFail = TRUE; // 2003.06.23 Moca 相対パスは実行ファイルからのパス // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先 if( _IS_REL_PATH( filename ) ){ TCHAR path[_MAX_PATH]; GetInidirOrExedir( path, filename ); // Jul. 6, 2001 genta HtmlHelpの呼び出し方法変更 hwndHtmlHelp = OpenHtmlHelp( NULL/*GetDllShareData().m_sHandles.m_hwndTray*/, path, // Jul. 5, 2002 genta HH_KEYWORD_LOOKUP, (DWORD_PTR)&link ); }else{ // Jul. 6, 2001 genta HtmlHelpの呼び出し方法変更 hwndHtmlHelp = OpenHtmlHelp( NULL/*GetDllShareData().m_sHandles.m_hwndTray*/, filename, // Jul. 5, 2002 genta HH_KEYWORD_LOOKUP, (DWORD_PTR)&link ); } } // Jul. 6, 2001 genta hwndHtmlHelpのチェックを追加 if( hwndHtmlHelp != NULL ){ ::BringWindowToTop( hwndHtmlHelp ); } return; }