void OpenConfigPage(HWND hwnd, int pagenum) { // install path of mp3infp CString strMp3infpPath = regGetStringEx(HKEY_LOCAL_MACHINE,MP3INFP_REG_ENTRY,_T("path"),_T("")); AddTailYenSign(strMp3infpPath); CString strConfigPath = strMp3infpPath + _T("mp3infp_config.exe"); CString strParam; strParam.Format(_T("%d"),pagenum); ShellExecute(hwnd,_T("open"),strConfigPath,strParam,NULL,SW_SHOW); }
BOOL CMp3infpApp::InitInstance() { TRACE(_T("CMp3infpApp::InitInstance(0)\n")); theApp.m_hResource = NULL; CString strLangPath; strLangPath = regGetStringEx(HKEY_LOCAL_MACHINE,MP3INFP_REG_ENTRY,_T("path"),_T("c:\\progra~1\\mp3infp")); AddTailYenSign(strLangPath); strLangPath += _T("language\\"); CString strLanguage = regGetStringEx(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("Language"),DEF_SETUP_MAIN_LANGUAGE); strLanguage += _T(".lng"); strLangPath += strLanguage; //theApp.m_hResource = LoadLibraryEx(strLangPath,0,LOAD_LIBRARY_AS_DATAFILE); theApp.m_hResource = LoadLibrary(strLangPath); if(theApp.m_hResource) { AfxSetResourceHandle(theApp.m_hResource); TCHAR tmp[20]; if((LoadString(AfxGetResourceHandle(),IDS_LANGUAGE_VER,tmp,sizeof_array(tmp)) == 0) || (_ttoi(tmp) < LANG_VER) ) { FreeLibrary(theApp.m_hResource); theApp.m_hResource = NULL; } } if(theApp.m_hResource == NULL) { // 言語パックがロードできないときは内蔵のリソースを使う theApp.m_hResource = theApp.m_hInstance; AfxSetResourceHandle(theApp.m_hResource); } return CWinApp::InitInstance(); }
CPageMp3::CPageMp3() : CPropertyPage(CPageMp3::IDD) { //{{AFX_DATA_INIT(CPageMp3) m_bId3v1ScmpxGenre = FALSE; m_bRiffSifDisable = TRUE; m_strRiffSoft = _T(""); m_bInfotipEnable = FALSE; m_bColumnEnable = FALSE; m_strInfotipFormat = _T(""); m_strInfotipInfo = _T(""); m_bMp3PropEnable = FALSE; //}}AFX_DATA_INIT regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"mp3_PropEnable",(DWORD *)&m_bMp3PropEnable,TRUE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"mp3_Id3v1ScmpxGenre",(DWORD *)&m_bId3v1ScmpxGenre,FALSE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"mp3_RiffSifDisable",(DWORD *)&m_bRiffSifDisable,TRUE); m_strRiffSoft = regGetStringEx(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"mp3_RmpSoft",APP_NAME); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"mp3_InfotipEnable",(DWORD *)&m_bInfotipEnable,TRUE); CString strDefault; strDefault.LoadString(IDS_DEF_INFOTIP_MP3_FORMAT); m_strInfotipFormat = regGetStringEx(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"mp3_InfotipFormat",(char *)(LPCSTR )strDefault); m_strInfotipInfo = LoadResString(AfxGetResourceHandle(),IDS_DEF_INFOTIP_INF_MP3_FORMAT); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"mp3_ColumnEnable",(DWORD *)&m_bColumnEnable,TRUE); }
CPageVqf::CPageVqf() : CPropertyPage(CPageVqf::IDD) { //{{AFX_DATA_INIT(CPageVqf) m_bInfotipEnable = FALSE; m_bColumnEnable = FALSE; m_bPropEnable = FALSE; m_strInfotipFormat = _T(""); m_strInfotipInfo = _T(""); //}}AFX_DATA_INIT regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"vqf_PropEnable",(DWORD *)&m_bPropEnable,TRUE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"vqf_InfotipEnable",(DWORD *)&m_bInfotipEnable,TRUE); CString strDefault; strDefault.LoadString(IDS_DEF_INFOTIP_VQF_FORMAT); m_strInfotipFormat = regGetStringEx(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"vqf_InfotipFormat",(char *)(LPCSTR )strDefault); m_strInfotipInfo = LoadResString(AfxGetResourceHandle(),IDS_DEF_INFOTIP_INF_VQF_FORMAT); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"vqf_ColumnEnable",(DWORD *)&m_bColumnEnable,TRUE); }
CPageOgg::CPageOgg() : CPropertyPage(CPageOgg::IDD) { //{{AFX_DATA_INIT(CPageOgg) m_bInfotipEnable = FALSE; m_bColumnEnable = FALSE; m_bPropEnable = FALSE; m_strInfotipFormat = _T(""); m_strInfotipInfo = _T(""); //}}AFX_DATA_INIT regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"ogg_PropEnable",(DWORD *)&m_bPropEnable,DEF_OGG_PROP_ENABLE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"ogg_InfotipEnable",(DWORD *)&m_bInfotipEnable,DEF_OGG_INFOTIP_ENABLE); CString strDefault; strDefault.LoadString(IDS_DEF_INFOTIP_OGG_FORMAT); m_strInfotipFormat = regGetStringEx(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"ogg_InfotipFormat",strDefault); m_strInfotipInfo = LoadResString(AfxGetResourceHandle(),IDS_DEF_INFOTIP_INF_OGG_FORMAT); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"ogg_ColumnEnable",(DWORD *)&m_bColumnEnable,DEF_OGG_COLUMN_ENABLE); }
STDAPI DllUnregisterServer() { AFX_MANAGE_STATE(AfxGetStaticModuleState()); //関連付け解除 //(ContextMenu) RegDeleteKey(HKEY_CLASSES_ROOT,_T("*\\shellex\\ContextMenuHandlers\\mp3infp")); //(Property) RegDeleteKey(HKEY_CLASSES_ROOT,_T("*\\shellex\\PropertySheetHandlers\\mp3infp")); for(int i=0; i<sizeof_array(extlist); i++) { CString strKey = regGetStringEx(HKEY_CLASSES_ROOT,extlist[i],_T(""),_T("")); if(!strKey.IsEmpty()) { //(Property) 〜Ver.2.00Beta2 strKey += _T("\\shellex\\PropertySheetHandlers\\mp3infp"); RegDeleteKey(HKEY_CLASSES_ROOT,strKey); } //(InfoTip) strKey = extlist[i]; strKey += _T("\\shellex\\{00021500-0000-0000-C000-000000000046}"); RegDeleteKey(HKEY_CLASSES_ROOT,strKey); } //ドライブ RegDeleteKey(HKEY_CLASSES_ROOT,_T("Drive\\shellex\\PropertySheetHandlers\\") CLSID_STR_ShellExt); RegDeleteKey(HKEY_CLASSES_ROOT,_T("Folder\\shellex\\ColumnHandlers\\") CLSID_STR_ShellExt); //Approved登録解除 regDelVal(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"),CLSID_STR_ShellExt); //関連付けの設定を維持する設定を解除 // regDelVal(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"),APP_NAME); //コンポーネントの登録解除 RegDeleteKey(HKEY_CLASSES_ROOT,_T("CLSID\\") CLSID_STR_ShellExt _T("\\InProcServer32")); RegDeleteKey(HKEY_CLASSES_ROOT,_T("CLSID\\") CLSID_STR_ShellExt); //mp3infpの設定を削除 // RegDeleteKey(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\win32lab.com\\mp3infp")); // RegDeleteKey(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\win32lab.com")); // RegDeleteKey(HKEY_CURRENT_USER,_T("Software\\win32lab.com\\mp3infp")); // RegDeleteKey(HKEY_CURRENT_USER,_T("Software\\win32lab.com")); return S_OK; }
void CShellExt::ConfigLoad() { TRACE(_T("ConfigLoad()\n")); //オプションを取得 CString strDefault; //(共通) regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("SaveTimeStamp"),(DWORD *)&m_bSaveTimeStamp,TRUE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("ContextMenu"),(DWORD *)&m_bContextMenu,TRUE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("SelectDrive"),(DWORD *)&m_bSelectDrive,DEF_SETUP_MAIN_SELECT_DRIVE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("Disable_FDD"),(DWORD *)&m_bDisable_FDD,DEF_SETUP_MAIN_DISABLE_FDD); // Workaround for the old wrong value name. DWORD dwTemp; regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("Disable_RAMOVABLE"),&dwTemp,DEF_SETUP_MAIN_DISABLE_REMOVABLE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("Disable_REMOVABLE"),(DWORD *)&m_bDisable_REMOVABLE,dwTemp); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("Disable_CDROM"),(DWORD *)&m_bDisable_CDROM,DEF_SETUP_MAIN_DISABLE_CDROM); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("Disable_NETWORK"),(DWORD *)&m_bDisable_NETWORK,DEF_SETUP_MAIN_DISABLE_NETWORK); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("Column_8_3"),(DWORD *)&m_bColumn_8_3,DEF_SETUP_MAIN_COLUMN_8_3); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("PropAOT"),(DWORD *)&m_bPropAOT,DEF_SETUP_PROP_AOT); //(mp3) regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("mp3_PropEnable"),(DWORD *)&m_bMp3PropEnable,TRUE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("mp3_Id3v1ScmpxGenre"),(DWORD *)&m_bId3v1ScmpxGenre,FALSE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("mp3_RiffSifDisable"),(DWORD *)&m_bRiffSifDisable,TRUE); m_strRmpSoft = regGetStringEx(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("mp3_RmpSoft"),SOFT_NAME); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("mp3_InfotipEnable"),(DWORD *)&m_bMp3InfotipEnable,TRUE); strDefault.LoadString(IDS_DEF_INFOTIP_MP3_FORMAT); m_strMp3InfoTipFormat = regGetStringEx(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("mp3_InfotipFormat"),strDefault); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("mp3_ColumnEnable"),(DWORD *)&m_bMp3ColumnEnable,TRUE); m_bMp3ApeTagDisable = FALSE; //(wave) regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("wave_PropEnable"),(DWORD *)&m_bWavePropEnable,TRUE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("wave_InfotipEnable"),(DWORD *)&m_bWaveInfotipEnable,TRUE); strDefault.LoadString(IDS_DEF_INFOTIP_WAVE_FORMAT); m_strWaveInfoTipFormat = regGetStringEx(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("wave_InfotipFormat"),strDefault); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("wave_ColumnEnable"),(DWORD *)&m_bWaveColumnEnable,TRUE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("wave_CodecFind"),(DWORD *)&m_iWaveCodecFind,0); m_iWaveCodecFind = 2; // 2004-01-21 コーデック取得方法は内蔵辞書固定 //(avi) regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("avi_PropEnable"),(DWORD *)&m_bAviPropEnable,TRUE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("avi_InfotipEnable"),(DWORD *)&m_bAviInfotipEnable,TRUE); strDefault.LoadString(IDS_DEF_INFOTIP_AVI_FORMAT); m_strAviInfoTipFormat = regGetStringEx(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("avi_InfotipFormat"),strDefault); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("avi_ColumnEnable"),(DWORD *)&m_bAviColumnEnable,TRUE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("avi_CodecFind"),(DWORD *)&m_iAviCodecFind,0); m_iAviCodecFind = 2; // 2004-01-21 コーデック取得方法は内蔵辞書固定 //(vqf) regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("vqf_PropEnable"),(DWORD *)&m_bVqfPropEnable,TRUE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("vqf_InfotipEnable"),(DWORD *)&m_bVqfInfotipEnable,TRUE); strDefault.LoadString(IDS_DEF_INFOTIP_VQF_FORMAT); m_strVqfInfoTipFormat = regGetStringEx(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("vqf_InfotipFormat"),strDefault); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("vqf_ColumnEnable"),(DWORD *)&m_bVqfColumnEnable,TRUE); //(wma) regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("wma_PropEnable"),(DWORD *)&m_bWmaPropEnable,TRUE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("wma_InfotipEnable"),(DWORD *)&m_bWmaInfotipEnable,TRUE); strDefault.LoadString(IDS_DEF_INFOTIP_WMA_FORMAT); m_strWmaInfoTipFormat = regGetStringEx(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("wma_InfotipFormat"),strDefault); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("wma_ColumnEnable"),(DWORD *)&m_bWmaColumnEnable,TRUE); //(m3u) regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("m3u_PropEnable"),(DWORD *)&m_bM3uPropEnable,DEF_M3U_PROP_ENABLE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("m3u_InfotipEnable"),(DWORD *)&m_bM3uInfotipEnable,DEF_M3U_INFOTIP_ENABLE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("m3u_Prop_Fullpath"),(DWORD *)&m_bM3uProp_Fullpath,DEF_M3U_PROP_FULLPATH); //(ogg) regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("ogg_PropEnable"),(DWORD *)&m_bOggPropEnable,DEF_OGG_PROP_ENABLE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("ogg_InfotipEnable"),(DWORD *)&m_bOggInfotipEnable,DEF_OGG_INFOTIP_ENABLE); strDefault.LoadString(IDS_DEF_INFOTIP_OGG_FORMAT); m_strOggInfoTipFormat = regGetStringEx(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("ogg_InfotipFormat"),strDefault); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("ogg_ColumnEnable"),(DWORD *)&m_bOggColumnEnable,DEF_OGG_COLUMN_ENABLE); //(ape) regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("ape_PropEnable"),(DWORD *)&m_bApePropEnable,DEF_APE_PROP_ENABLE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("ape_InfotipEnable"),(DWORD *)&m_bApeInfotipEnable,DEF_APE_INFOTIP_ENABLE); strDefault.LoadString(IDS_DEF_INFOTIP_APE_FORMAT); m_strApeInfoTipFormat = regGetStringEx(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("ape_InfotipFormat"),strDefault); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("ape_ColumnEnable"),(DWORD *)&m_bApeColumnEnable,DEF_APE_COLUMN_ENABLE); //(mp4) regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("mp4_PropEnable"),(DWORD *)&m_bMp4PropEnable,DEF_MP4_PROP_ENABLE); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("mp4_InfotipEnable"),(DWORD *)&m_bMp4InfotipEnable,DEF_MP4_INFOTIP_ENABLE); strDefault.LoadString(IDS_DEF_INFOTIP_MP4_FORMAT); m_strMp4InfoTipFormat = regGetStringEx(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("mp4_InfotipFormat"),strDefault); regGetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("mp4_ColumnEnable"),(DWORD *)&m_bMp4ColumnEnable,DEF_MP4_COLUMN_ENABLE); }
void CShellExt::OpenHtmlHelp(HWND hWnd,LPCTSTR szViewFile) { CString strHelpPath; // mp3infpのインストールパス CString strMp3infpPath = regGetStringEx(HKEY_LOCAL_MACHINE,MP3INFP_REG_ENTRY,_T("path"),_T("")); AddTailYenSign(strMp3infpPath); // 選択言語 CString strLanguage = regGetStringEx(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("Language"),DEF_SETUP_MAIN_LANGUAGE); if(strLanguage.Compare(DEF_SETUP_MAIN_LANGUAGE) == 0) { // デフォルト選択 strHelpPath = strMp3infpPath; strHelpPath += _T("\\mp3infp_eng.txt"); ShellExecute(NULL,_T("open"),strHelpPath,NULL,NULL,SW_SHOW); return; } else { strHelpPath = strMp3infpPath; strHelpPath += _T("language\\"); strHelpPath += strLanguage; strHelpPath += _T(".chm"); CFileStatus status; if(CFile::GetStatus(strHelpPath,status) == FALSE) { // chmが無ければtxtを開く strHelpPath = strMp3infpPath; strHelpPath += _T("language\\"); strHelpPath += strLanguage; strHelpPath += _T(".txt"); ShellExecute(NULL,_T("open"),strHelpPath,NULL,NULL,SW_SHOW); return; } } TRACE(_T("strHelPath=%s\n"),strHelpPath); // DWORD dwCookie; // HtmlHelp( // NULL, // NULL, // HH_INITIALIZE, // (DWORD )&dwCookie);//Hhctrl.ocx により返される cookie HWND hwndHelp = HtmlHelp(hWnd,strHelpPath,HH_DISPLAY_INDEX,(DWORD_PTR )szViewFile); /* if(hwndHelp) { HtmlHelp( NULL, NULL, HH_UNINITIALIZE, (DWORD )dwCookie);//Hhctrl.ocx により返される cookie ::SetForegroundWindow(hwndHelp); } else { // strcpy(szHelpFile,szHelpPath); // lstrcat(szHelpFile,README_FILE); // ShellExecute(hWnd,_T("open"),szHelpFile,NULL,NULL,SW_SHOWNORMAL); }*/ }