Changeset 620


Ignore:
Timestamp:
Apr 18, 2016, 4:03:32 AM (6 years ago)
Author:
roman
Message:

MediaSampleTrace? UI small improvements - ability to switch back to live data from context menu; SystemDeviceEnumeratorSpy? is extended to track IMMDeviceActivator interface and blind-forward other interfaces

Location:
trunk/DirectShowSpy
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/DirectShowSpy/MediaSampleTrace.h

    r617 r620  
    976976                COMMAND_ID_HANDLER_EX(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_SAVETOFILE, OnSaveToFile)
    977977                COMMAND_ID_HANDLER_EX(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_LOADFROMFILE, OnLoadFromFile)
     978                COMMAND_ID_HANDLER_EX(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_LOADLIVE, OnLoadLive)
    978979                COMMAND_ID_HANDLER_EX(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_RESETDATA, OnResetData)
    979980                COMMAND_ID_HANDLER_EX(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_OPENFILTERGRAPHLIST, OnOpenFilterGraphList)
     
    15211522                        m_pHandleMapLock.Release();
    15221523                        m_HandleMap.RemoveAll();
     1524                        m_RefreshStatic.EnableWindow(FALSE);
    15231525                        UpdateListView();
    15241526                }
     
    17551757                        const INT nItemCount = m_ListView.GetItemCount();
    17561758                        const INT nSelectItemCount = m_ListView.GetSelectedCount();
     1759                        Menu.EnableMenuItem(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_REFRESH, m_RefreshStatic.IsWindowEnabled() ? MF_ENABLED : MF_GRAYED | MF_DISABLED);
    17571760                        for(INT nIdentifier = IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_REMOVE; nIdentifier <= IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_8; nIdentifier++)
    17581761                                Menu.EnableMenuItem(nIdentifier, nSelectItemCount ? MF_ENABLED : MF_GRAYED | MF_DISABLED);
     
    17601763                        Menu.EnableMenuItem(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_COPYTOCLIPBOARD, nItemCount ? MF_ENABLED : MF_GRAYED | MF_DISABLED);
    17611764                        Menu.EnableMenuItem(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_SAVETOFILE, nItemCount ? MF_ENABLED : MF_GRAYED | MF_DISABLED);
     1765                        Menu.EnableMenuItem(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_LOADLIVE, !m_pHandleMapLock ? MF_ENABLED : MF_GRAYED | MF_DISABLED);
    17621766                        Menu.TrackPopupMenu(TPM_RIGHTBUTTON | TPM_LEFTALIGN | TPM_TOPALIGN, Position.x, Position.y, m_hWnd);
    17631767                        return 0;
     
    18031807                        CWaitCursor WaitCursor;
    18041808                        LoadFromFile(sPath);
     1809                        return 0;
     1810                }
     1811                LRESULT OnLoadLive(UINT, INT, HWND)
     1812                {
     1813                        m_pHandleMapLock.Release();
     1814                        m_pHandleMapLock.Construct();
     1815                        m_RefreshStatic.EnableWindow(TRUE);
     1816                        UpdateListView();
    18051817                        return 0;
    18061818                }
  • trunk/DirectShowSpy/SystemDeviceEnumeratorSpy.h

    r545 r620  
    1616#pragma once
    1717
     18#include <mmdeviceapi.h>
    1819#include "rodshow.h"
     20#include "romf.h"
    1921#include "Module_i.h"
    2022#include "Common.h"
     
    3133        public CTransparentCoClassT<T, t_pSystemDeviceEnumeratorClassIdentifier>,
    3234        public IDispatchImpl<ISystemDeviceEnumeratorSpy>,
    33         public ICreateDevEnum
     35        public ICreateDevEnum,
     36        public IMMDeviceActivator
    3437{
    3538        typedef CSystemDeviceEnumeratorSpyT<T, t_pSystemDeviceEnumeratorClassIdentifier> CSystemDeviceEnumeratorSpy;
     
    4952        COM_INTERFACE_ENTRY(ISystemDeviceEnumeratorSpy)
    5053        COM_INTERFACE_ENTRY(ICreateDevEnum)
     54        COM_INTERFACE_ENTRY(IMMDeviceActivator)
    5155        COM_INTERFACE_ENTRY_FUNC(CLSID_SystemDeviceEnum, 0, QuerySystemDeviceEnumInterface)
     56        COM_INTERFACE_ENTRY_AGGREGATE_BLIND(m_pSystemDeviceEnum.p)
    5257        //COM_INTERFACE_ENTRY(IDispatch)
    5358END_COM_MAP()
     
    622627        CComPtr<IUnknown> m_pSystemDeviceEnum;
    623628        CComPtr<ICreateDevEnum> m_pCreateDevEnum;
     629        CComPtr<IMMDeviceActivator> m_pMmDeviceActivator;
    624630
    625631        HRESULT QuerySystemDeviceEnumInterface(REFIID InterfaceIdentifier, VOID** ppvObject)
     
    689695                                __C(pUnknown->QueryInterface(CLSID_SystemDeviceEnum, (VOID**) &pSystemDeviceEnum));
    690696                                const CComQIPtr<ICreateDevEnum> pCreateDevEnum = pUnknown;
     697                                const CComQIPtr<IMMDeviceActivator> pMmDeviceActivator = pUnknown;
    691698                                __D(pCreateDevEnum, E_NOINTERFACE);
    692699                                m_pSystemDeviceEnum = pSystemDeviceEnum;
    693700                                m_pCreateDevEnum = pCreateDevEnum;
     701                                m_pMmDeviceActivator = pMmDeviceActivator;
    694702                        }
    695703                        _ATLCATCHALL()
     
    712720                m_pSystemDeviceEnum.Release();
    713721                m_pCreateDevEnum.Release();
     722                m_pMmDeviceActivator.Release();
    714723                if(m_hDevEnumModule)
    715724                {
     
    753762        STDMETHOD(CreateClassEnumerator)(REFCLSID DeviceCategory, IEnumMoniker** ppEnumMoniker, DWORD nFlags) override
    754763        {
    755                 _Z4(atlTraceCOM, 4, _T("DeviceCategory %s, nFlags 0x%X\n"), FormatDeviceCategory(DeviceCategory), nFlags);
     764                _Z4(atlTraceCOM, 4, _T("this 0x%p, DeviceCategory %s, nFlags 0x%X\n"), this, FormatDeviceCategory(DeviceCategory), nFlags);
    756765                _ATLTRY
    757766                {
     
    793802                return S_OK;
    794803        }
     804
     805// IMMDeviceActivator
     806    STDMETHOD(Activate)(REFIID InterfaceIdentifier, IMMDevice* pMmDevice, PROPVARIANT* pvActivationParameters, VOID** ppObject) override
     807        {
     808                _Z4(atlTraceCOM, 4, _T("this 0x%p, InterfaceIdentifier %s, pMmDevice 0x%p\n"), this, _FilterGraphHelper::StringFromIdentifier(InterfaceIdentifier), pMmDevice);
     809                _ATLTRY
     810                {
     811                        if(pvActivationParameters)
     812                                _Z4(atlTraceCOM, 4, _T("*pvActivationParameters %s\n"), reinterpret_cast<MF::CPropVariant&>(*pvActivationParameters).Format());
     813                        __D(m_pMmDeviceActivator, E_NOINTERFACE);
     814                        const HRESULT nActivateResult = m_pMmDeviceActivator->Activate(InterfaceIdentifier, pMmDevice, pvActivationParameters, ppObject);
     815                        _Z4_DSHRESULT(nActivateResult);
     816                        return nActivateResult;
     817                }
     818                _ATLCATCH(Exception)
     819                {
     820                        _C(Exception);
     821                }
     822                return S_OK;
     823        }
    795824};
    796825
  • trunk/DirectShowSpy/resource.h

    r617 r620  
    131131#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_RESETDATA 2114
    132132#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_LOADFROMFILE 2115
     133#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_LOADLIVE 2116
    133134#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_OPENFILTERGRAPHLIST 2120
    134135#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_OPENFILTERGRAPHPROPERTIES 2121
     
    171172#define IDC_ABOUT_COPYRIGHT             29909
    172173#define IDC_ABOUT_COPYRIGHTWARNING      29910
    173 #define ID_ACCELERATOR32807             32807
    174174
    175175// Next default values for new objects
     
    178178#ifndef APSTUDIO_READONLY_SYMBOLS
    179179#define _APS_NEXT_RESOURCE_VALUE        214
    180 #define _APS_NEXT_COMMAND_VALUE         32809
     180#define _APS_NEXT_COMMAND_VALUE         32812
    181181#define _APS_NEXT_CONTROL_VALUE         257
    182182#define _APS_NEXT_SYMED_VALUE           103
  • trunk/DirectShowSpy/targetver.h

    r376 r620  
    1616#pragma once
    1717
    18 #define WINVER                  0x0600       
    19 #define _WIN32_WINNT    0x0600 
    20 #define _WIN32_WINDOWS  0x0410
    21 #define _WIN32_IE               0x0700     
    22 #define _RICHEDIT_VER   0x0200  // RichEdit 2.0
     18#include <sdkddkver.h>
Note: See TracChangeset for help on using the changeset viewer.