Changeset 376


Ignore:
Timestamp:
Mar 18, 2015, 1:57:00 AM (9 years ago)
Author:
roman
Message:

Changed year to 2015; Added Copy and Save As links in graph text, RunTime? property pages

Location:
trunk/DirectShowSpy
Files:
25 edited

Legend:

Unmodified
Added
Removed
  • trunk/DirectShowSpy/AboutDialog.h

    r319 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/Common.h

    r348 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/Configuration.cpp

    r276 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/Configuration.h

    r276 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/FilterGraphHelper.h

    r359 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
     
    5858        MSG_WM_DESTROY(OnDestroy)
    5959        COMMAND_ID_HANDLER_EX(IDC_GENERIC_RUNPROPERTYBAG_REFRESH, OnRefresh)
     60        COMMAND_ID_HANDLER_EX(IDC_GENERIC_RUNPROPERTYBAG_COPY, OnCopy)
     61        COMMAND_ID_HANDLER_EX(IDC_GENERIC_RUNPROPERTYBAG_SAVEAS, OnSaveAs)
    6062        REFLECT_NOTIFICATIONS()
    6163END_MSG_MAP()
     
    6567        DLGRESIZE_CONTROL(IDC_GENERIC_RUNPROPERTYBAG_TEXT, DLSZ_SIZE_X | DLSZ_SIZE_Y)
    6668        DLGRESIZE_CONTROL(IDC_GENERIC_RUNPROPERTYBAG_REFRESH, DLSZ_MOVE_Y)
     69        DLGRESIZE_CONTROL(IDC_GENERIC_RUNPROPERTYBAG_COPY, DLSZ_MOVE_Y)
     70        DLGRESIZE_CONTROL(IDC_GENERIC_RUNPROPERTYBAG_SAVEAS, DLSZ_MOVE_Y)
    6771END_DLGRESIZE_MAP()
    6872
     
    7175        CRoEdit m_TextEdit;
    7276        CFont m_TextFont;
     77        CButton m_CopyButton;
     78        CButton m_SaveAsButton;
    7379        CRoMapT<INT_PTR, BOOL> m_ChangeMap;
    7480
     
    94100        VOID UpdateControls()
    95101        {
     102                const INT nLextLength = m_TextEdit.GetWindowTextLength();
     103                m_CopyButton.EnableWindow(nLextLength > 0);
     104                m_SaveAsButton.EnableWindow(nLextLength > 0);
    96105        }
    97106        VOID UpdateText()
     
    102111        }
    103112
    104 // Window message handlers
     113// Window Message Handler
    105114        LRESULT OnInitDialog(HWND, LPARAM)
    106115        {
     
    116125                        m_TextFont = TextFont.CreateFontIndirect();
    117126                        m_TextEdit.SetFont(m_TextFont);
     127                        //m_RefreshButton = GetDlgItem(IDC_GENERIC_RUNEVENT_REFRESH);
     128                        m_CopyButton = GetDlgItem(IDC_GENERIC_RUNPROPERTYBAG_COPY);
     129                        m_SaveAsButton = GetDlgItem(IDC_GENERIC_RUNPROPERTYBAG_SAVEAS);
    118130                        DlgResize_Init(FALSE);
    119131                        _A(GetObjectCount() >= 1);
     
    142154                UpdateText();
    143155                UpdateControls();
     156                return 0;
     157        }
     158        LRESULT OnCopy(UINT, INT, HWND)
     159        {
     160                SetClipboardText(m_hWnd, m_TextEdit.GetValue());
     161                MessageBeep(MB_OK);     
     162                return 0;
     163        }
     164        LRESULT OnSaveAs(UINT, INT, HWND)
     165        {
     166                static const COMDLG_FILTERSPEC g_pFilter[] =
     167                {
     168                        { _T("Text Files"), _T("*.txt") },
     169                        { _T("BZip2 Compressed Text Files"), _T("*.txt.bz2") },
     170                        { _T("All Files"), _T("*.*") },
     171                };
     172                CPath sPath = _CommonDialogHelper::QuerySavePath(m_hWnd, g_pFilter, _T("txt"));
     173                if(!_tcslen(sPath))
     174                        return 0;
     175                CAtlFile File;
     176                __C(File.Create(sPath, GENERIC_WRITE, FILE_SHARE_READ, CREATE_ALWAYS));
     177                _ATLTRY
     178                {
     179                        CStringA sText = Utf8StringFromString(CStringW(m_TextEdit.GetValue()));
     180                        static const BYTE g_pnByteOrderMark[] = { 0xEF, 0xBB, 0xBF, 0x00 };
     181                        sText.Insert(0, (LPCSTR) g_pnByteOrderMark);
     182                        if(_tcsicmp(GetPathExtension(sPath), _T(".bz2")) == 0)
     183                        {
     184                                CLocalObjectPtr<CBzip2Item> pItem;
     185                                pItem->SetRawData((const BYTE*) (LPCSTR) sText, sText.GetLength());
     186                                CHeapPtr<BYTE> pnData;
     187                                SIZE_T nDataSize = 0;
     188                                pItem->GetData(pnData, nDataSize);
     189                                __C(File.Write(pnData, (DWORD) nDataSize));
     190                        } else
     191                                __C(File.Write(sText, (DWORD) sText.GetLength()));
     192                }
     193                _ATLCATCHALL()
     194                {
     195                        File.Close();
     196                        _W(DeleteFile(sPath));
     197                        _ATLRETHROW;
     198                }
     199                MessageBeep(MB_OK);     
    144200                return 0;
    145201        }
     
    193249        COMMAND_HANDLER_EX(IDC_GENERIC_RUNEVENT_CAPTURE, BN_CLICKED, OnCaptureButtonClicked)
    194250        COMMAND_ID_HANDLER_EX(IDC_GENERIC_RUNEVENT_REFRESH, OnRefresh)
     251        COMMAND_ID_HANDLER_EX(IDC_GENERIC_RUNEVENT_COPY, OnCopy)
     252        COMMAND_ID_HANDLER_EX(IDC_GENERIC_RUNEVENT_SAVEAS, OnSaveAs)
    195253        REFLECT_NOTIFICATIONS()
    196254END_MSG_MAP()
     
    200258        DLGRESIZE_CONTROL(IDC_GENERIC_RUNEVENT_TEXT, DLSZ_SIZE_X | DLSZ_SIZE_Y)
    201259        DLGRESIZE_CONTROL(IDC_GENERIC_RUNEVENT_REFRESH, DLSZ_MOVE_Y)
     260        DLGRESIZE_CONTROL(IDC_GENERIC_RUNEVENT_COPY, DLSZ_MOVE_Y)
     261        DLGRESIZE_CONTROL(IDC_GENERIC_RUNEVENT_SAVEAS, DLSZ_MOVE_Y)
    202262END_DLGRESIZE_MAP()
    203263
     
    209269        CRoEdit m_TextEdit;
    210270        CButton m_RefreshButton;
     271        CButton m_CopyButton;
     272        CButton m_SaveAsButton;
    211273        CRoMapT<INT_PTR, BOOL> m_ChangeMap;
    212274
     
    235297                //m_TextEdit.EnableWindow(bCapture);
    236298                m_RefreshButton.EnableWindow(bCapture);
     299                const INT nLextLength = m_TextEdit.GetWindowTextLength();
     300                m_CopyButton.EnableWindow(nLextLength > 0);
     301                m_SaveAsButton.EnableWindow(nLextLength > 0);
    237302        }
    238303        VOID Refresh()
     
    267332        }
    268333
    269 // Window message handlers
     334// Window Message Handler
    270335        LRESULT OnInitDialog(HWND, LPARAM)
    271336        {
     
    276341                        m_TextEdit = GetDlgItem(IDC_GENERIC_RUNEVENT_TEXT);
    277342                        m_RefreshButton = GetDlgItem(IDC_GENERIC_RUNEVENT_REFRESH);
     343                        m_CopyButton = GetDlgItem(IDC_GENERIC_RUNEVENT_COPY);
     344                        m_SaveAsButton = GetDlgItem(IDC_GENERIC_RUNEVENT_SAVEAS);
    278345                        DlgResize_Init(FALSE);
    279346                        //m_OutputSampleTimeEdit = GetDlgItem(IDC_SUSPENSIONFILTER_SAMPLE_OUTPUTTIME);
     
    326393                return 0;
    327394        }
     395        LRESULT OnCopy(UINT, INT, HWND)
     396        {
     397                SetClipboardText(m_hWnd, m_TextEdit.GetValue());
     398                MessageBeep(MB_OK);     
     399                return 0;
     400        }
     401        LRESULT OnSaveAs(UINT, INT, HWND)
     402        {
     403                static const COMDLG_FILTERSPEC g_pFilter[] =
     404                {
     405                        { _T("Text Files"), _T("*.txt") },
     406                        { _T("BZip2 Compressed Text Files"), _T("*.txt.bz2") },
     407                        { _T("All Files"), _T("*.*") },
     408                };
     409                CPath sPath = _CommonDialogHelper::QuerySavePath(m_hWnd, g_pFilter, _T("txt"));
     410                if(!_tcslen(sPath))
     411                        return 0;
     412                CAtlFile File;
     413                __C(File.Create(sPath, GENERIC_WRITE, FILE_SHARE_READ, CREATE_ALWAYS));
     414                _ATLTRY
     415                {
     416                        CStringA sText = Utf8StringFromString(CStringW(m_TextEdit.GetValue()));
     417                        static const BYTE g_pnByteOrderMark[] = { 0xEF, 0xBB, 0xBF, 0x00 };
     418                        sText.Insert(0, (LPCSTR) g_pnByteOrderMark);
     419                        if(_tcsicmp(GetPathExtension(sPath), _T(".bz2")) == 0)
     420                        {
     421                                CLocalObjectPtr<CBzip2Item> pItem;
     422                                pItem->SetRawData((const BYTE*) (LPCSTR) sText, sText.GetLength());
     423                                CHeapPtr<BYTE> pnData;
     424                                SIZE_T nDataSize = 0;
     425                                pItem->GetData(pnData, nDataSize);
     426                                __C(File.Write(pnData, (DWORD) nDataSize));
     427                        } else
     428                                __C(File.Write(sText, (DWORD) sText.GetLength()));
     429                }
     430                _ATLCATCHALL()
     431                {
     432                        File.Close();
     433                        _W(DeleteFile(sPath));
     434                        _ATLRETHROW;
     435                }
     436                MessageBeep(MB_OK);     
     437                return 0;
     438        }
    328439
    329440// COlePropertyPageT, IRoPropertyPageT, IPropertyPage2, IPropertyPage
     
    411522                MSG_TVN_ITEMEXPANDING(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_TREE, OnTreeViewItemExplanding)
    412523                MSG_TVN_DBLCLK(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_TREE, OnTreeViewDblClk)
     524                NOTIFY_HANDLER_EX(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_REFRESH, CRoHyperStatic::NC_ANCHORCLICKED, OnRefreshAnchorClicked)
     525                NOTIFY_HANDLER_EX(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_COPY, CRoHyperStatic::NC_ANCHORCLICKED, OnCopyAnchorClicked)
     526                NOTIFY_HANDLER_EX(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_SAVEAS, CRoHyperStatic::NC_ANCHORCLICKED, OnSaveAsAnchorClicked)
    413527                MSG_WM_SYSCOMMAND(OnSysCommand)
    414528                COMMAND_ID_HANDLER_EX(IDOK, OnOk)
     
    425539                DLGRESIZE_CONTROL(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_TREE, DLSZ_SIZE_Y)
    426540                DLGRESIZE_CONTROL(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_TEXT, DLSZ_SIZE_X | DLSZ_SIZE_Y)
     541                DLGRESIZE_CONTROL(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_REFRESH, DLSZ_MOVE_Y)
     542                DLGRESIZE_CONTROL(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_COPY, DLSZ_MOVE_Y)
     543                DLGRESIZE_CONTROL(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_SAVEAS, DLSZ_MOVE_Y)
    427544                DLGRESIZE_CONTROL(IDOK, DLSZ_MOVE_X | DLSZ_MOVE_Y)
    428545                DLGRESIZE_CONTROL(IDCANCEL, DLSZ_MOVE_X | DLSZ_MOVE_Y)
     
    851968                        LRESULT OnSaveAs(UINT, INT, HWND)
    852969                        {
    853                                 CPath sPath;
    854970                                static const COMDLG_FILTERSPEC g_pFilter[] =
    855971                                {
     
    857973                                        { _T("All Files"), _T("*.*") },
    858974                                };
    859                                 if(GetOsVersion() >= GetWinVistaOsVersion())
    860                                 {
    861                                         CShellFileSaveDialog Dialog(NULL, FOS_OVERWRITEPROMPT | FOS_FORCEFILESYSTEM | FOS_PATHMUSTEXIST, _T("grf"), g_pFilter, DIM(g_pFilter));
    862                                         if(Dialog.DoModal(m_hWnd) != IDOK)
    863                                                 return 0;
    864                                         CString sPathString;
    865                                         __C(Dialog.GetFilePath(sPathString));
    866                                         sPath = (LPCTSTR) sPathString;
    867                                 } else
    868                                 {
    869                                         CString sFilter;
    870                                         CFileDialog Dialog(FALSE, _T("grf"), NULL, OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY | OFN_PATHMUSTEXIST | OFN_EXPLORER | OFN_ENABLESIZING, GetLegacyFilter(g_pFilter, sFilter));
    871                                         if(Dialog.DoModal(m_hWnd) != IDOK)
    872                                                 return 0;
    873                                         sPath = Dialog.m_szFileName;
    874                                 }
     975                                CPath sPath = _CommonDialogHelper::QuerySavePath(m_hWnd, g_pFilter, _T("grf"));
     976                                if(_tcslen(sPath) == 0)
     977                                        return 0;
    875978                                #pragma region Save
    876979                                // NOTE: See http://msdn.microsoft.com/en-us/library/windows/desktop/dd377551
     
    18161919                CRect m_TextPosition;
    18171920                CFont m_TextFont;
     1921                CRoHyperStatic m_RefreshStatic;
     1922                CRoHyperStatic m_CopyStatic;
     1923                CRoHyperStatic m_SaveAsStatic;
    18181924                CButton m_OkButton;
    18191925                CButton m_CancelButton;
     
    18351941                        if(hStaticWindow)
    18361942                                CStatic(hStaticWindow).SetFont(Font);
     1943                }
     1944                VOID ShowText(BOOL bVisible, BOOL bStaticVisible = FALSE)
     1945                {
     1946                        m_TextEdit.ShowWindow(bVisible ? SW_SHOW : SW_HIDE);
     1947                        bStaticVisible &= bVisible;
     1948                        m_RefreshStatic.ShowWindow(bStaticVisible ? SW_SHOW : SW_HIDE);
     1949                        m_CopyStatic.ShowWindow(bStaticVisible ? SW_SHOW : SW_HIDE);
     1950                        m_SaveAsStatic.ShowWindow(bStaticVisible ? SW_SHOW : SW_HIDE);
    18371951                }
    18381952
     
    20272141                        _W(m_EmailDialog.SetWindowPos(NULL, Position, SWP_NOZORDER | SWP_NOACTIVATE));
    20282142                        _W(m_EmailLogDialog.SetWindowPos(NULL, Position, SWP_NOZORDER | SWP_NOACTIVATE));
     2143                }
     2144
     2145        // CDialogWithAcceleratorsT
     2146                BOOL TranslateAccelerator(MSG* pMessage)
     2147                {
     2148                        CTreeItem TreeItem = m_TreeView.GetSelectedItem();
     2149                        if(TreeItem)
     2150                        {
     2151                                CData& Data = m_TreeView.GetItemData(TreeItem);
     2152                                if(Data.m_Type == CData::TYPE_FILTERPROPERTYPAGE)
     2153                                {
     2154                                        if(Data.m_pPropertyPage)
     2155                                                if(Data.m_pPropertyPage->TranslateAccelerator(pMessage) == S_OK)
     2156                                                        return TRUE;
     2157                                }
     2158                        }
     2159                        return __super::TranslateAccelerator(pMessage);
    20292160                }
    20302161
     
    20682199                                m_TextFont = TextFont.CreateFontIndirect();
    20692200                                m_TextEdit.SetFont(m_TextFont);
     2201                                m_RefreshStatic.SubclassWindow(GetDlgItem(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_REFRESH));
     2202                                m_CopyStatic.SubclassWindow(GetDlgItem(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_COPY));
     2203                                m_SaveAsStatic.SubclassWindow(GetDlgItem(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_SAVEAS));
     2204                                CRoHyperStatic::ArrangeHorizontally(&m_RefreshStatic, &m_CopyStatic, &m_SaveAsStatic, NULL);
    20702205                                m_OkButton = GetDlgItem(IDOK);
    20712206                                m_CancelButton = GetDlgItem(IDCANCEL);
     
    21762311                                        if(Data.m_pPropertyPage)
    21772312                                        {
    2178                                                 m_TextEdit.ShowWindow(SW_HIDE);
     2313                                                ShowText(FALSE);
    21792314                                                if(Data.m_pSite != m_pCurrentSite)
    21802315                                                        HideCurrentSite();
     
    21942329                                                CWaitCursor WaitCursor;
    21952330                                                HideCurrentSite();
    2196                                                 m_TextEdit.ShowWindow(SW_SHOW);
     2331                                                ShowText(TRUE, FALSE);
    21972332                                                CString sText;
    21982333                                                sText += AtlFormatString(_T("## ") _T("Filter %ls") _T("\r\n") _T("\r\n"), _FilterGraphHelper::GetFilterName(Data.m_pBaseFilter));
     
    23132448                                        #pragma region TYPE_MEMORYALLOCATOR
    23142449                                        case CData::TYPE_MEMORYALLOCATOR:
    2315                                                 m_TextEdit.ShowWindow(SW_HIDE);
     2450                                                ShowText(FALSE);
    23162451                                                _W(m_MemoryAllocatorDialog.SetWindowPos(NULL, GetTextEditPosition(), SWP_NOZORDER | SWP_SHOWWINDOW));
    23172452                                                break;
     
    23192454                                        #pragma region TYPE_ACTION
    23202455                                        case CData::TYPE_ACTION:
    2321                                                 m_TextEdit.ShowWindow(SW_HIDE);
     2456                                                ShowText(FALSE);
    23222457                                                _W(m_ActionDialog.SetWindowPos(NULL, GetTextEditPosition(), SWP_NOZORDER | SWP_SHOWWINDOW));
    23232458                                                break;
     
    23252460                                        #pragma region TYPE_EMAIL
    23262461                                        case CData::TYPE_EMAIL:
    2327                                                 m_TextEdit.ShowWindow(SW_HIDE);
     2462                                                ShowText(FALSE);
    23282463                                                _W(m_EmailDialog.SetWindowPos(NULL, GetTextEditPosition(), SWP_NOZORDER | SWP_SHOWWINDOW));
    23292464                                                break;
     
    23312466                                        #pragma region TYPE_EMAIL_LOG
    23322467                                        case CData::TYPE_EMAIL_LOG:
    2333                                                 m_TextEdit.ShowWindow(SW_HIDE);
     2468                                                ShowText(FALSE);
    23342469                                                _W(m_EmailLogDialog.SetWindowPos(NULL, GetTextEditPosition(), SWP_NOZORDER | SWP_SHOWWINDOW));
    23352470                                                break;
    23362471                                        #pragma endregion
    23372472                                        default:
    2338                                                 m_TextEdit.ShowWindow(SW_SHOW);
    2339                                                 m_TextEdit.SetValue(m_Owner.GetText());
     2473                                                UpdateText();
     2474                                                ShowText(TRUE, TRUE);
    23402475                                                m_MemoryAllocatorDialog.ShowWindow(SW_HIDE);
    23412476                                                m_ActionDialog.ShowWindow(SW_HIDE);
     
    23512486                        {
    23522487                                HideCurrentSite();
    2353                                 m_TextEdit.ShowWindow(SW_HIDE);
     2488                                ShowText(FALSE);
    23542489                                m_MemoryAllocatorDialog.ShowWindow(SW_HIDE);
    23552490                                m_ActionDialog.ShowWindow(SW_HIDE);
     
    23792514                                return 0;
    23802515                        Dialog.DoModal(m_hWnd);
     2516                        return 0;
     2517                }
     2518                VOID UpdateText()
     2519                {
     2520                        m_TextEdit.SetValue(m_Owner.GetText());
     2521                        const INT nTextLength = m_TextEdit.GetWindowTextLength();
     2522                        //m_RefreshStatic.EnableWindow(TRUE);
     2523                        m_CopyStatic.EnableWindow(nTextLength > 0);
     2524                        m_SaveAsStatic.EnableWindow(nTextLength > 0);
     2525                }
     2526                LRESULT OnRefreshAnchorClicked(NMHDR*)
     2527                {
     2528                        UpdateText();
     2529                        MessageBeep(MB_OK);
     2530                        return 0;
     2531                }
     2532                LRESULT OnCopyAnchorClicked(NMHDR*)
     2533                {
     2534                        SetClipboardText(m_hWnd, m_TextEdit.GetValue());
     2535                        MessageBeep(MB_OK);
     2536                        return 0;
     2537                }
     2538                LRESULT OnSaveAsAnchorClicked(NMHDR*)
     2539                {
     2540                        static const COMDLG_FILTERSPEC g_pFilter[] =
     2541                        {
     2542                                { _T("Markdown Files"), _T("*.md") },
     2543                                { _T("Text Files"), _T("*.txt") },
     2544                                { _T("BZip2 Compressed Markdown Files"), _T("*.md.bz2") },
     2545                                { _T("All Files"), _T("*.*") },
     2546                        };
     2547                        CPath sPath = _CommonDialogHelper::QuerySavePath(m_hWnd, g_pFilter, _T("md"));
     2548                        if(!_tcslen(sPath))
     2549                                return 0;
     2550                        CAtlFile File;
     2551                        __C(File.Create(sPath, GENERIC_WRITE, FILE_SHARE_READ, CREATE_ALWAYS));
     2552                        _ATLTRY
     2553                        {
     2554                                CStringA sText = Utf8StringFromString(CStringW(m_TextEdit.GetValue()));
     2555                                static const BYTE g_pnByteOrderMark[] = { 0xEF, 0xBB, 0xBF, 0x00 };
     2556                                sText.Insert(0, (LPCSTR) g_pnByteOrderMark);
     2557                                if(_tcsicmp(GetPathExtension(sPath), _T(".bz2")) == 0)
     2558                                {
     2559                                        CLocalObjectPtr<CBzip2Item> pItem;
     2560                                        pItem->SetRawData((const BYTE*) (LPCSTR) sText, sText.GetLength());
     2561                                        CHeapPtr<BYTE> pnData;
     2562                                        SIZE_T nDataSize = 0;
     2563                                        pItem->GetData(pnData, nDataSize);
     2564                                        __C(File.Write(pnData, (DWORD) nDataSize));
     2565                                } else
     2566                                        __C(File.Write(sText, (DWORD) sText.GetLength()));
     2567                        }
     2568                        _ATLCATCHALL()
     2569                        {
     2570                                File.Close();
     2571                                _W(DeleteFile(sPath));
     2572                                _ATLRETHROW;
     2573                        }
     2574                        MessageBeep(MB_OK);     
    23812575                        return 0;
    23822576                }
     
    34713665                #endif // defined(_WIN64)
    34723666        }
    3473         template <SIZE_T t_nItemCount>
    3474         static CString& GetLegacyFilter(const COMDLG_FILTERSPEC (&pItems)[t_nItemCount], CString& sFilter)
    3475         {
    3476                 _A(sFilter.IsEmpty());
    3477                 for(SIZE_T nIndex = 0; nIndex < t_nItemCount; nIndex++)
    3478                 {
    3479                         const COMDLG_FILTERSPEC& Item = pItems[nIndex];
    3480                         sFilter += AtlFormatString(_T("%s (%s)|%s|"), Item.pszName, Item.pszSpec, Item.pszSpec);
    3481                 }
    3482                 sFilter.Replace(_T('|'), 0);
    3483                 return sFilter;
    3484         }
    34853667        static BOOL OpenMonikerWithGsn(LPCWSTR pszMonikerDisplayName, HWND hParentWindow = GetActiveWindow())
    34863668        {
     
    35153697                if(sPath.IsEmpty())
    35163698                {
    3517                         #pragma region Prompt
    35183699                        static const COMDLG_FILTERSPEC g_pFilter[] =
    35193700                        {
     
    35213702                                { _T("All Files"), _T("*.*") },
    35223703                        };
    3523                         if(GetOsVersion() >= GetWinVistaOsVersion())
    3524                         {
    3525                                 CShellFileOpenDialog Dialog(g_pszFileName, FOS_FORCEFILESYSTEM | FOS_FILEMUSTEXIST, _T("exe"), g_pFilter, DIM(g_pFilter));
    3526                                 if(Dialog.DoModal(hParentWindow) != IDOK)
    3527                                         return FALSE;
    3528                                 __C(Dialog.GetFilePath(sPath));
    3529                         } else
    3530                         {
    3531                                 CString sFilter;
    3532                                 CFileDialog Dialog(TRUE, _T("exe"), NULL, OFN_HIDEREADONLY | OFN_FILEMUSTEXIST | OFN_EXPLORER | OFN_ENABLESIZING, GetLegacyFilter(g_pFilter, sFilter));
    3533                                 if(Dialog.DoModal(hParentWindow) != IDOK)
    3534                                         return FALSE;
    3535                                 sPath = Dialog.m_szFileName;
    3536                         }
    3537                         #pragma endregion
     3704                        sPath = (LPCTSTR) _CommonDialogHelper::QueryOpenPath(hParentWindow, g_pFilter, _T("exe"), g_pszFileName);
     3705                        if(sPath.IsEmpty())
     3706                                return FALSE;
    35383707                        _RegKeyHelper::SetStringValue(HKEY_CURRENT_USER, REGISTRY_ROOT, sValueName, sPath);
    35393708                }
     
    35683737                if(sPath.IsEmpty())
    35693738                {
    3570                         #pragma region Prompt
    35713739                        static const COMDLG_FILTERSPEC g_pFilter[] =
    35723740                        {
     
    35743742                                { _T("All Files"), _T("*.*") },
    35753743                        };
    3576                         if(GetOsVersion() >= GetWinVistaOsVersion())
    3577                         {
    3578                                 CShellFileOpenDialog Dialog(g_pszFileName, FOS_FORCEFILESYSTEM | FOS_FILEMUSTEXIST, _T("exe"), g_pFilter, DIM(g_pFilter));
    3579                                 if(Dialog.DoModal(hParentWindow) != IDOK)
    3580                                         return FALSE;
    3581                                 __C(Dialog.GetFilePath(sPath));
    3582                         } else
    3583                         {
    3584                                 CString sFilter;
    3585                                 CFileDialog Dialog(TRUE, _T("exe"), NULL, OFN_HIDEREADONLY | OFN_FILEMUSTEXIST | OFN_EXPLORER | OFN_ENABLESIZING, GetLegacyFilter(g_pFilter, sFilter));
    3586                                 if(Dialog.DoModal(hParentWindow) != IDOK)
    3587                                         return FALSE;
    3588                                 sPath = Dialog.m_szFileName;
    3589                         }
    3590                         #pragma endregion
     3744                        sPath = (LPCTSTR) _CommonDialogHelper::QueryOpenPath(hParentWindow, g_pFilter, _T("exe"), g_pszFileName);
     3745                        if(sPath.IsEmpty())
     3746                                return FALSE;
    35913747                        _RegKeyHelper::SetStringValue(HKEY_CURRENT_USER, REGISTRY_ROOT, sValueName, sPath);
    35923748                }
  • trunk/DirectShowSpy/FilterGraphList.h

    r355 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/FilterGraphSpy.cpp

    r348 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/FilterGraphSpy.h

    r355 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/FilterMapperSpy.h

    r319 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/GraphBuilderCallbackPropertySheet.h

    r276 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/Helper.cpp

    r276 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/Module.cpp

    r310 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/Module.idl

    r348 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/RunEvent.h

    r355 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/RunPropertyBag.h

    r359 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/SystemDeviceEnumeratorSpy.h

    r319 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/dllmain.cpp

    r310 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/dllmain.h

    r319 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/resource.h

    r322 r376  
    7171#define IDC_FILTERGRAPHHELPER_PROPERTYFRAME_APPLY 1510
    7272#define IDC_FILTERGRAPHHELPER_PROPERTYFRAME_TEXT 1511
     73#define IDC_FILTERGRAPHHELPER_PROPERTYFRAME_REFRESH 1512
     74#define IDC_FILTERGRAPHHELPER_PROPERTYFRAME_COPY 1513
     75#define IDC_FILTERGRAPHHELPER_PROPERTYFRAME_SAVEAS 1514
    7376#define IDC_FILTERGRAPHHELPER_PROPERTYFRAME_TREE_WALKUP 1520
    7477#define IDD_FILTERGRAPHHELPER_EMAIL     1600
     
    106109#define IDC_GENERIC_RUNPROPERTYBAG_TEXT 1916
    107110#define IDC_GENERIC_RUNPROPERTYBAG_REFRESH 1917
     111#define IDC_GENERIC_RUNPROPERTYBAG_COPY 1918
     112#define IDC_GENERIC_RUNPROPERTYBAG_SAVEAS 1919
    108113#define IDR_GENERIC_RUNEVENT_PROPERTYPAGE 1950
    109114#define IDD_GENERIC_RUNEVENT            1960
     
    111116#define IDC_GENERIC_RUNEVENT_TEXT       1966
    112117#define IDC_GENERIC_RUNEVENT_REFRESH    1967
     118#define IDC_GENERIC_RUNEVENT_COPY       1968
     119#define IDC_GENERIC_RUNEVENT_SAVEAS     1969
    113120#define IDD_FILTERGRAPHHELPER_MEMORYALLOCATOR 2000
    114121#define IDC_FILTERGRAPHHELPER_MEMORYALLOCATOR_TITLE 2001
     
    138145#define _APS_NEXT_RESOURCE_VALUE        211
    139146#define _APS_NEXT_COMMAND_VALUE         32783
    140 #define _APS_NEXT_CONTROL_VALUE         242
     147#define _APS_NEXT_CONTROL_VALUE         249
    141148#define _APS_NEXT_SYMED_VALUE           103
    142149#endif
  • trunk/DirectShowSpy/stdafx.cpp

    r276 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/stdafx.h

    r312 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
  • trunk/DirectShowSpy/targetver.h

    r276 r376  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2008-2014
     2// Copyright (C) Roman Ryltsov, 2008-2015
    33// Created by Roman Ryltsov roman@alax.info, http://alax.info
    44//
Note: See TracChangeset for help on using the changeset viewer.