/* * Add this source with appropriate configuration keys to the registry. */ void addRegistryInfo(wchar_t *source) { const wchar_t *prefix = L"SYSTEM\\CurrentControlSet\\Services\\EventLog\\Application\\"; DWORD disposition; HKEY hkey = 0; wchar_t subkey[256]; wcscpy(subkey, prefix); wcscat(subkey, source); hkey = regGetKey(subkey, &disposition); if (disposition == REG_CREATED_NEW_KEY) { HMODULE hmodule = gModule; if (hmodule == NULL) { hmodule = GetModuleHandleW(L"NTEventLogAppender.dll"); } if (hmodule != NULL) { wchar_t modpath[_MAX_PATH]; DWORD modlen = GetModuleFileNameW(hmodule, modpath, _MAX_PATH - 1); if (modlen > 0) { modpath[modlen] = 0; regSetString(hkey, L"EventMessageFile", modpath); regSetString(hkey, L"CategoryMessageFile", modpath); } } regSetDword(hkey, L"TypesSupported", (DWORD)7); regSetDword(hkey, L"CategoryCount", (DWORD) 6); } RegCloseKey(hkey); return; }
BOOL CPageVqf::OnApply() { regSetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"vqf_PropEnable",(DWORD )m_bPropEnable); regSetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"vqf_InfotipEnable",(DWORD )m_bInfotipEnable); regSetString(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"vqf_InfotipFormat",m_strInfotipFormat); regSetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"vqf_ColumnEnable",(DWORD )m_bColumnEnable); return CPropertyPage::OnApply(); }
BOOL CPageMp3::OnApply() { regSetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"mp3_PropEnable",(DWORD )m_bMp3PropEnable); regSetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"mp3_Id3v1ScmpxGenre",(DWORD )m_bId3v1ScmpxGenre); regSetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"mp3_RiffSifDisable",(DWORD )m_bRiffSifDisable); regSetString(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"mp3_RmpSoft",m_strRiffSoft); regSetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"mp3_InfotipEnable",(DWORD )m_bInfotipEnable); regSetString(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"mp3_InfotipFormat",m_strInfotipFormat); regSetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,"mp3_ColumnEnable",(DWORD )m_bColumnEnable); return CPropertyPage::OnApply(); }
/* * Add this source with appropriate configuration keys to the registry. */ void NTEventLogAppender::addRegistryInfo(const char *source) { const TCHAR *prefix = "SYSTEM\\CurrentControlSet\\Services\\EventLog\\Application\\"; DWORD disposition; HKEY hkey = 0; TCHAR subkey[256]; lstrcpy(subkey, prefix); lstrcat(subkey, source); hkey = regGetKey(subkey, &disposition); if (disposition == REG_CREATED_NEW_KEY) { regSetString(hkey, "EventMessageFile", "NTEventLogAppender.dll"); regSetString(hkey, "CategoryMessageFile", "NTEventLogAppender.dll"); regSetDword(hkey, "TypesSupported", (DWORD)7); regSetDword(hkey, "CategoryCount", (DWORD)8); } RegCloseKey(hkey); return; }
/* * Add this source with appropriate configuration keys to the registry. */ void addRegistryInfo(char *source) { const TCHAR *prefix = "SYSTEM\\CurrentControlSet\\Services\\EventLog\\Application\\"; DWORD disposition; HKEY hkey = 0; TCHAR subkey[256]; lstrcpy(subkey, prefix); lstrcat(subkey, source); hkey = regGetKey(subkey, &disposition); if (disposition == REG_CREATED_NEW_KEY) { regSetString(hkey, "EventMessageFile", "NTEventLogAppender.dll"); regSetString(hkey, "CategoryMessageFile", "NTEventLogAppender.dll"); regSetDword(hkey, "TypesSupported", (DWORD)7); regSetDword(hkey, "CategoryCount", (DWORD)8); } //RegSetValueEx(hkey, "EventMessageFile", 0, REG_SZ, (LPBYTE)dllname, lstrlen(dllname)); //RegSetValueEx(hkey, "CategoryMessageFile", 0, REG_SZ, (LPBYTE)dllname, lstrlen(dllname)); //RegSetValueEx(hkey, "TypesSupported", 0, REG_DWORD, (LPBYTE)&whichTypes, sizeof(DWORD)); //RegSetValueEx(hkey, "CategoryCount", 0, REG_DWORD, (LPBYTE)&numCategories, sizeof(DWORD)); RegCloseKey(hkey); return; }
BOOL CALLBACK CShellExt::PageDlgProc_ogg(HWND hDlg,UINT uMessage,WPARAM wParam,LPARAM lParam) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); LPCSHELLEXT lpcs = (CShellExt *)GetWindowLongPtr(hDlg,DWLP_USER); switch(uMessage){ case WM_INITDIALOG: { lpcs = (LPCSHELLEXT )((LPPROPSHEETPAGE )lParam)->lParam; lpcs->m_hwndPage = hDlg; SetWindowLongPtr(hDlg, DWLP_USER, (LONG_PTR)lpcs); lpcs->m_bApply = FALSE; //Ver情報 SetDlgItemText(hDlg,IDC_STATIC_VER_INFO,SOFT_NAME); //タイトル SetDlgItemText(hDlg,IDC_EDIT_FILENAME,getFileName(lpcs->m_strSelectFile)); //アイコンを表示 SHFILEINFO sfi; if(SHGetFileInfo(lpcs->m_strSelectFile,0,&sfi,sizeof(sfi),SHGFI_ICON)) { Static_SetImage_Icon(GetDlgItem(hDlg,IDC_ICON1),sfi.hIcon); } //コンボボックスの初期化 ComboBox_AddString(GetDlgItem(hDlg,IDC_EDIT_GNR), _T("")); for(int i=0; i<256; i++) { if(lpcs->m_Id3tagv1.GenreNum2String((unsigned char)i).GetLength()) ComboBox_AddString(GetDlgItem(hDlg,IDC_EDIT_GNR), lpcs->m_Id3tagv1.GenreNum2String((unsigned char)i)); } //オーナードローボタンの初期化 /* RECT rect; SetRect(&rect,145,208,145,75);//ボタン位置の基準 MapDialogRect(hDlg,&rect); SetWindowPos(GetDlgItem(hDlg,IDC_BUTTON_REW),NULL,rect.left+25*0,rect.top,23,23,SWP_NOZORDER | SWP_SHOWWINDOW); SetWindowPos(GetDlgItem(hDlg,IDC_BUTTON_PLAY),NULL,rect.left+25*1,rect.top,23,23,SWP_NOZORDER | SWP_SHOWWINDOW); SetWindowPos(GetDlgItem(hDlg,IDC_BUTTON_PAUSE),NULL,rect.left+25*2,rect.top,23,23,SWP_NOZORDER | SWP_SHOWWINDOW); SetWindowPos(GetDlgItem(hDlg,IDC_BUTTON_STOP),NULL,rect.left+25*3,rect.top,23,23,SWP_NOZORDER | SWP_SHOWWINDOW); SetWindowPos(GetDlgItem(hDlg,IDC_BUTTON_FFW),NULL,rect.left+25*4,rect.top,23,23,SWP_NOZORDER | SWP_SHOWWINDOW); */ //情報を表示 DispInfo(hDlg,lpcs); DispInfoExt(hDlg,lpcs); return FALSE; } break; case WM_TIMER: switch(wParam){ case REW_TIMER: SendMessage(hDlg,WM_COMMAND, MAKEWPARAM((UINT )IDC_BUTTON_REW,(UINT )BN_CLICKED), 0); break; case FFW_TIMER: SendMessage(hDlg,WM_COMMAND, MAKEWPARAM((UINT )IDC_BUTTON_FFW,(UINT )BN_CLICKED), 0); break; } break; // オーナー描画コントロール case WM_DRAWITEM: DrawControl(hDlg,(LPDRAWITEMSTRUCT )lParam); break; case WM_COMMAND: switch(LOWORD(wParam)){ case IDC_BUTTON_ADD_VALUE: //値追加 { CDlg_ogg_exttag dlg; if(dlg.DoModal() == IDOK) { COggExt *oggExt = new COggExt(dlg.m_strName,dlg.m_strValue); long index = ListBox_AddString(GetDlgItem(hDlg,IDC_LIST_VALUE),oggExt->Get1LineDisp()); if(index == LB_ERR) { delete oggExt; } else { ListBox_SetItemData(GetDlgItem(hDlg,IDC_LIST_VALUE),index,oggExt); } PropSheet_Changed(GetParent(hDlg),hDlg); lpcs->m_bApply = TRUE; } } break; case IDC_BUTTON_DEL_VALUE: //値削除 { long item = ListBox_GetCurSel(GetDlgItem(hDlg,IDC_LIST_VALUE)); if(item == LB_ERR) break; COggExt *oggExt = (COggExt *)ListBox_GetItemData(GetDlgItem(hDlg,IDC_LIST_VALUE),item); if(oggExt) { delete oggExt; } ListBox_DeleteString(GetDlgItem(hDlg,IDC_LIST_VALUE),item); PropSheet_Changed(GetParent(hDlg),hDlg); lpcs->m_bApply = TRUE; } break; case IDC_LIST_VALUE: if(HIWORD(wParam) == LBN_DBLCLK) { //ダブルクリック - 編集 long item = ListBox_GetCurSel(GetDlgItem(hDlg,IDC_LIST_VALUE)); if(item == LB_ERR) break; COggExt *oggExt = (COggExt *)ListBox_GetItemData(GetDlgItem(hDlg,IDC_LIST_VALUE),item); if(oggExt == NULL) break; CDlg_ogg_exttag dlg; dlg.m_strName = oggExt->GetName(); dlg.m_strValue = oggExt->GetValue(); if(dlg.DoModal() == IDOK) { oggExt->SetName(dlg.m_strName); oggExt->SetValue(dlg.m_strValue); ListBox_DeleteString(GetDlgItem(hDlg,IDC_LIST_VALUE),item); ListBox_InsertString(GetDlgItem(hDlg,IDC_LIST_VALUE),item,oggExt->Get1LineDisp()); ListBox_SetItemData(GetDlgItem(hDlg,IDC_LIST_VALUE),item,oggExt); PropSheet_Changed(GetParent(hDlg),hDlg); lpcs->m_bApply = TRUE; } } break; case IDC_EDIT_SBJ: case IDC_EDIT_TRK: case IDC_EDIT_ART: case IDC_EDIT_PRD: case IDC_EDIT_AART: case IDC_EDIT_DISC: case IDC_EDIT_CRD: case IDC_EDIT_CMT: if((HIWORD(wParam) == EN_CHANGE) && (IsWindowEnabled((HWND )lParam)) ) { PropSheet_Changed(GetParent(hDlg),hDlg); lpcs->m_bApply = TRUE; } break; case IDC_EDIT_GNR: if( ((HIWORD(wParam) == CBN_SELENDOK) || (HIWORD(wParam) == CBN_EDITCHANGE)) && (IsWindowEnabled((HWND )lParam)) ) { PropSheet_Changed(GetParent(hDlg),hDlg); lpcs->m_bApply = TRUE; } break; case IDC_BUTTON_PLAY: { PlayWinamp(hDlg,lpcs->m_strSelectFile); break; } case IDC_BUTTON_PAUSE: { PauseWinamp(); break; } case IDC_BUTTON_STOP: { StopWinamp(); break; } case IDC_BUTTON_REW: { Rew5Winamp(); break; } case IDC_BUTTON_FFW: { Ffw5Winamp(); break; } case IDC_CHECK_AOT: if(IsDlgButtonChecked(hDlg,IDC_CHECK_AOT) == BST_CHECKED) { lpcs->m_bPropAOT = TRUE; SetWindowPos(GetParent(hDlg),HWND_TOPMOST,0,0,0,0, SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOOWNERZORDER|SWP_NOSIZE); } else { lpcs->m_bPropAOT = FALSE; SetWindowPos(GetParent(hDlg),HWND_NOTOPMOST,0,0,0,0, SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOOWNERZORDER|SWP_NOSIZE); } regSetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("PropAOT"),(DWORD )lpcs->m_bPropAOT); break; case IDC_SETUP: OpenConfigPage(hDlg,8); break; case IDC_HELPVIEW: lpcs->OpenHtmlHelp(hDlg,_T("extension.htm")); break; DLG_CLIPBOARD_MACRO(lpcs->m_strSelectFile); } break; case WM_DESTROY: { //後始末 long items = ListBox_GetCount(GetDlgItem(hDlg,IDC_LIST_VALUE)); if(items != LB_ERR) { for(int i=0; i<items; i++) { COggExt *oggExt = (COggExt *)ListBox_GetItemData(GetDlgItem(hDlg,IDC_LIST_VALUE),i); if(oggExt) { delete oggExt; } } } } return TRUE; // コンテキストメニュー case WM_CONTEXTMENU: DlgContextMenu(hDlg,lParam,lpcs->m_Ogg.IsEnable()); break; //状況依存ヘルプ case WM_HELP: OpenAboutDlg(hDlg); break; case WM_NOTIFY: switch(((NMHDR FAR *)lParam)->code){ // case PSN_SETACTIVE: // break; case PSN_APPLY: //保存 if(lpcs->m_bApply) { TRACE(_T("WM_NOTIFY(PSN_APPLY) - 保存\n")); //ファイルが書き込み可能か調べる if(GetFileAttributes(lpcs->m_strSelectFile) & (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_READONLY)) { //「このファイルは「読み込み専用」です」 AfxMessageBox(IDS_PAGE_THIS_READONLY,MB_ICONINFORMATION); //適用ボタンは引き続き有効 SetWindowLongPtr(hDlg,DWLP_MSGRESULT,PSNRET_INVALID); break; } lpcs->m_bApply = FALSE; CString strTmp; CWnd wnd; //いったんリセット lpcs->m_Ogg.Release(); wnd.Attach(hDlg); wnd.GetDlgItemText(IDC_EDIT_SBJ,strTmp); lpcs->m_Ogg.AddComment(_T("TITLE"),strTmp); wnd.GetDlgItemText(IDC_EDIT_TRK,strTmp); lpcs->m_Ogg.AddComment(_T("TRACKNUMBER"),strTmp); wnd.GetDlgItemText(IDC_EDIT_ART,strTmp); lpcs->m_Ogg.AddComment(_T("ARTIST"),strTmp); wnd.GetDlgItemText(IDC_EDIT_PRD,strTmp); lpcs->m_Ogg.AddComment(_T("ALBUM"),strTmp); wnd.GetDlgItemText(IDC_EDIT_AART,strTmp); lpcs->m_Ogg.AddComment(_T("ALBUMARTIST"),strTmp); wnd.GetDlgItemText(IDC_EDIT_DISC,strTmp); lpcs->m_Ogg.AddComment(_T("DISCNUMBER"),strTmp); wnd.GetDlgItemText(IDC_EDIT_CRD,strTmp); lpcs->m_Ogg.AddComment(_T("DATE"),strTmp); wnd.GetDlgItemText(IDC_EDIT_GNR,strTmp); lpcs->m_Ogg.AddComment(_T("GENRE"),strTmp); wnd.GetDlgItemText(IDC_EDIT_CMT,strTmp); lpcs->m_Ogg.AddComment(_T("COMMENT"),strTmp); wnd.Detach(); //その他分を保存 long items = ListBox_GetCount(GetDlgItem(hDlg,IDC_LIST_VALUE)); if(items != LB_ERR) { for(int i=0; i<items; i++) { COggExt *oggExt = (COggExt *)ListBox_GetItemData(GetDlgItem(hDlg,IDC_LIST_VALUE),i); if(oggExt) { lpcs->m_Ogg.AddComment(oggExt->GetName(),oggExt->GetValue()); } } } //タイムスタンプを保存 lpcs->PushTimeStamp(lpcs->m_strSelectFile); DWORD dwRet = lpcs->m_Ogg.Save(lpcs->m_strSelectFile); if(dwRet != ERROR_SUCCESS) { lpcs->m_bApply = TRUE; if(dwRet == -1) //「ファイルを正しく更新できませんでした。」 AfxMessageBox(IDS_PAGE_BROKEN,MB_ICONINFORMATION); else //システムエラーを表示 errMessageBox(hDlg,dwRet); //適用ボタンは引き続き有効 SetWindowLongPtr(hDlg,DWLP_MSGRESULT,PSNRET_INVALID); break; } //タイムスタンプを復元 if(lpcs->m_bSaveTimeStamp) { lpcs->PopTimeStamp(lpcs->m_strSelectFile); } //情報を表示 lpcs->m_Ogg.Load(lpcs->m_strSelectFile); DispInfo(hDlg,lpcs); DispInfoExt(hDlg,lpcs); SetWindowLongPtr(hDlg,DWLP_MSGRESULT,PSNRET_NOERROR); //シェルに変更を通知 SHChangeNotify(SHCNE_UPDATEITEM,SHCNF_PATH,lpcs->m_strSelectFile,NULL); } break; default: break; } break; default: return FALSE; } return TRUE; }
BOOL CALLBACK CShellExt::PageDlgProc_vqf(HWND hDlg,UINT uMessage,WPARAM wParam,LPARAM lParam) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); TRACE(_T("PageDlgProc_avi(mes=%08x,wParam=%08x,lParam=%08x\r\n"),uMessage,wParam,lParam); LPCSHELLEXT lpcs = (CShellExt *)GetWindowLongPtr(hDlg,DWLP_USER); switch(uMessage){ case WM_INITDIALOG: { lpcs = (LPCSHELLEXT )((LPPROPSHEETPAGE )lParam)->lParam; lpcs->m_hwndPage = hDlg; SetWindowLongPtr(hDlg, DWLP_USER, (LONG_PTR)lpcs); lpcs->m_bApply = FALSE; //Ver情報 SetDlgItemText(hDlg,IDC_STATIC_VER_INFO,SOFT_NAME); //タイトル SetDlgItemText(hDlg,IDC_EDIT_FILENAME,getFileName(lpcs->m_strSelectFile)); //アイコンを表示 SHFILEINFO sfi; if(SHGetFileInfo(lpcs->m_strSelectFile,0,&sfi,sizeof(sfi),SHGFI_ICON)) { Static_SetImage_Icon(GetDlgItem(hDlg,IDC_ICON1),sfi.hIcon); } //オーナードローボタンの初期化 /* RECT rect; SetRect(&rect,145,208,145,75);//ボタン位置の基準 MapDialogRect(hDlg,&rect); SetWindowPos(GetDlgItem(hDlg,IDC_BUTTON_REW),NULL,rect.left+25*0,rect.top,23,23,SWP_NOZORDER | SWP_SHOWWINDOW); SetWindowPos(GetDlgItem(hDlg,IDC_BUTTON_PLAY),NULL,rect.left+25*1,rect.top,23,23,SWP_NOZORDER | SWP_SHOWWINDOW); SetWindowPos(GetDlgItem(hDlg,IDC_BUTTON_PAUSE),NULL,rect.left+25*2,rect.top,23,23,SWP_NOZORDER | SWP_SHOWWINDOW); SetWindowPos(GetDlgItem(hDlg,IDC_BUTTON_STOP),NULL,rect.left+25*3,rect.top,23,23,SWP_NOZORDER | SWP_SHOWWINDOW); SetWindowPos(GetDlgItem(hDlg,IDC_BUTTON_FFW),NULL,rect.left+25*4,rect.top,23,23,SWP_NOZORDER | SWP_SHOWWINDOW); */ //情報を表示 DispInfo(hDlg,lpcs); } break; case WM_TIMER: switch(wParam){ case REW_TIMER: SendMessage(hDlg,WM_COMMAND, MAKEWPARAM((UINT )IDC_BUTTON_REW,(UINT )BN_CLICKED), 0); break; case FFW_TIMER: SendMessage(hDlg,WM_COMMAND, MAKEWPARAM((UINT )IDC_BUTTON_FFW,(UINT )BN_CLICKED), 0); break; } break; // オーナー描画コントロール case WM_DRAWITEM: DrawControl(hDlg,(LPDRAWITEMSTRUCT )lParam); break; case WM_COMMAND: switch(LOWORD(wParam)){ case IDC_EDIT_NAM: case IDC_EDIT_ART: case IDC_EDIT_FILE: case IDC_EDIT_COP: case IDC_EDIT_CMT: if((HIWORD(wParam) == EN_CHANGE) && (IsWindowEnabled((HWND )lParam)) ) { PropSheet_Changed(GetParent(hDlg),hDlg); lpcs->m_bApply = TRUE; } break; case IDC_BUTTON_PLAY: { PlayWinamp(hDlg,lpcs->m_strSelectFile); break; } case IDC_BUTTON_PAUSE: { PauseWinamp(); break; } case IDC_BUTTON_STOP: { StopWinamp(); break; } case IDC_BUTTON_REW: { Rew5Winamp(); break; } case IDC_BUTTON_FFW: { Ffw5Winamp(); break; } case IDC_CHECK_AOT: if(IsDlgButtonChecked(hDlg,IDC_CHECK_AOT) == BST_CHECKED) { lpcs->m_bPropAOT = TRUE; SetWindowPos(GetParent(hDlg),HWND_TOPMOST,0,0,0,0, SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOOWNERZORDER|SWP_NOSIZE); } else { lpcs->m_bPropAOT = FALSE; SetWindowPos(GetParent(hDlg),HWND_NOTOPMOST,0,0,0,0, SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOOWNERZORDER|SWP_NOSIZE); } regSetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("PropAOT"),(DWORD )lpcs->m_bPropAOT); break; case IDC_SETUP: OpenConfigPage(hDlg,5); break; case IDC_HELPVIEW: lpcs->OpenHtmlHelp(hDlg,_T("extension.htm")); break; DLG_CLIPBOARD_MACRO(lpcs->m_strSelectFile); } break; // コンテキストメニュー case WM_CONTEXTMENU: DlgContextMenu(hDlg,lParam,lpcs->m_Vqf.IsEnable()); break; //状況依存ヘルプ case WM_HELP: OpenAboutDlg(hDlg); break; case WM_NOTIFY: switch(((NMHDR FAR *)lParam)->code){ // case PSN_SETACTIVE: // break; case PSN_APPLY: //保存 if(lpcs->m_bApply && lpcs->m_Vqf.IsEnable()) { //ファイルが書き込み可能か調べる if(GetFileAttributes(lpcs->m_strSelectFile) & (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_READONLY)) { //「このファイルは「読み込み専用」です」 AfxMessageBox(IDS_PAGE_THIS_READONLY,MB_ICONINFORMATION); //適用ボタンは引き続き有効 SetWindowLongPtr(hDlg,DWLP_MSGRESULT,PSNRET_INVALID); break; } lpcs->m_bApply = FALSE; CString strTmp; CWnd wnd; wnd.Attach(hDlg); wnd.GetDlgItemText(IDC_EDIT_NAM,strTmp); lpcs->m_Vqf.SetField('N','A','M','E',strTmp); wnd.GetDlgItemText(IDC_EDIT_ART,strTmp); lpcs->m_Vqf.SetField('A','U','T','H',strTmp); wnd.GetDlgItemText(IDC_EDIT_FILE,strTmp); lpcs->m_Vqf.SetField('F','I','L','E',strTmp); wnd.GetDlgItemText(IDC_EDIT_COP,strTmp); lpcs->m_Vqf.SetField('(','c',')',' ',strTmp); wnd.GetDlgItemText(IDC_EDIT_CMT,strTmp); lpcs->m_Vqf.SetField('C','O','M','T',strTmp); wnd.Detach(); //タイムスタンプを保存 lpcs->PushTimeStamp(lpcs->m_strSelectFile); DWORD dwRet = lpcs->m_Vqf.Save(lpcs->m_strSelectFile); if(dwRet != ERROR_SUCCESS) { lpcs->m_bApply = TRUE; if(dwRet == -1) //「ファイルを正しく更新できませんでした。」 AfxMessageBox(IDS_PAGE_BROKEN,MB_ICONINFORMATION); else //システムエラーを表示 errMessageBox(hDlg,dwRet); //適用ボタンは引き続き有効 SetWindowLongPtr(hDlg,DWLP_MSGRESULT,PSNRET_INVALID); break; } //タイムスタンプを復元 if(lpcs->m_bSaveTimeStamp) { lpcs->PopTimeStamp(lpcs->m_strSelectFile); } //情報を表示 DispInfo(hDlg,lpcs); SetWindowLongPtr(hDlg,DWLP_MSGRESULT,PSNRET_NOERROR); //シェルに変更を通知 SHChangeNotify(SHCNE_UPDATEITEM,SHCNF_PATH,lpcs->m_strSelectFile,NULL); } break; default: break; } break; default: return FALSE; } return TRUE; }
BOOL CALLBACK CShellExt::PageDlgProc_mp3_LAME(HWND hDlg, UINT uMessage, WPARAM wParam, LPARAM lParam) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); LPCSHELLEXT lpcs = (CShellExt *)GetWindowLongPtr(hDlg,DWLP_USER); CString strTmp; switch(uMessage){ case WM_USER+1: //表示のリフレッシュ DispInfo(hDlg,lpcs); break; case WM_INITDIALOG: { lpcs = (LPCSHELLEXT )((LPPROPSHEETPAGE )lParam)->lParam; SetWindowLongPtr(hDlg, DWLP_USER, (LONG_PTR)lpcs); //Ver情報 SetDlgItemText(hDlg,IDC_STATIC_VER_INFO,SOFT_NAME); //情報を表示 DispInfo(hDlg,lpcs); } break; case WM_COMMAND: switch(LOWORD(wParam)){ case IDC_CHECK_AOT: if(IsDlgButtonChecked(hDlg,IDC_CHECK_AOT) == BST_CHECKED) { lpcs->m_bPropAOT = TRUE; SetWindowPos(GetParent(hDlg),HWND_TOPMOST,0,0,0,0, SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOOWNERZORDER|SWP_NOSIZE); } else { lpcs->m_bPropAOT = FALSE; SetWindowPos(GetParent(hDlg),HWND_NOTOPMOST,0,0,0,0, SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOOWNERZORDER|SWP_NOSIZE); } if(lpcs->m_hwndId3v1) PostMessage(lpcs->m_hwndId3v1,WM_USER+1,0,0); if(lpcs->m_hwndId3v2) PostMessage(lpcs->m_hwndId3v2,WM_USER+1,0,0); regSetDword(HKEY_CURRENT_USER,MP3INFP_REG_ENTRY,_T("PropAOT"),(DWORD )lpcs->m_bPropAOT); break; case IDC_SETUP: ShellExecute(hDlg,_T("open"),_T("rundll32.exe"),_T("shell32.dll,Control_RunDLL mp3infp.cpl,,2"),NULL,SW_SHOW); break; case IDC_HELPVIEW: lpcs->OpenHtmlHelp(hDlg,_T("extension.htm")); break; } break; //状況依存ヘルプ case WM_HELP: { TCHAR szTmp[256]; lstrcpy(szTmp,SOFT_NAME); lstrcat(szTmp,_T(" ")); lstrcat(szTmp,COPY_RIGHT); MessageBox(hDlg,szTmp,_T("About"),MB_APPLMODAL); break; } default: return FALSE; } return TRUE; }