CFilterMpeg2VDProp.cpp
上传用户:hhs829
上传日期:2022-06-17
资源大小:586k
文件大小:4k
源码类别:

DirextX编程

开发平台:

Visual C++

  1. //
  2. // CFilterMpeg2VDProp.cpp
  3. //
  4. #include <streams.h>
  5. // Eliminate two expected level 4 warnings from the Microsoft compiler.
  6. // The class does not have an assignment or copy operator, and so cannot
  7. // be passed by value.  This is normal.  This file compiles clean at the
  8. // highest (most picky) warning level (-W4).
  9. #pragma warning(disable: 4511 4512)
  10. #include <windowsx.h>
  11. #include <commctrl.h>
  12. #include <olectl.h>
  13. #include <memory.h>
  14. #include <stdlib.h>
  15. #include <stdio.h>
  16. #include <tchar.h>
  17. #include "Resource.h"            // ids used in the dialog
  18. #include "CFilterMpeg2VDProp.h"    // our own class
  19. //
  20. // CreateInstance
  21. //
  22. // Override CClassFactory method.
  23. // Set lpUnk to point to an IUnknown interface on a new NullIPProperties object
  24. // Part of the COM object instantiation mechanism
  25. //
  26. CUnknown * WINAPI CFilterMpeg2VDProp::CreateInstance(LPUNKNOWN lpunk, HRESULT *phr)
  27. {
  28.     CUnknown *punk = new CFilterMpeg2VDProp(lpunk, phr);
  29.     if (punk == NULL) 
  30. {
  31.         *phr = E_OUTOFMEMORY;
  32.     }
  33.     return punk;
  34. }
  35. // Constructs and initialises a object
  36. CFilterMpeg2VDProp::CFilterMpeg2VDProp(LPUNKNOWN pUnk, HRESULT *phr)
  37.     : CBasePropertyPage(NAME("Mpeg2 Video Decoder Property Page"),pUnk,
  38.         IDD_FILTER_Mpeg2, IDS_INFO)
  39. {
  40. ASSERT(phr);
  41. } // CGraphInfoProp
  42. // Override CBasePropertyPage method.
  43. // Handles the messages for our property window
  44. BOOL CFilterMpeg2VDProp::OnReceiveMessage(HWND hwnd,
  45.                                         UINT uMsg,
  46.                                         WPARAM wParam,
  47.                                         LPARAM lParam)
  48. {
  49.     switch (uMsg)
  50.     {
  51.         case WM_INITDIALOG:
  52.         {
  53. // Get windows' handles
  54. // m_hComboFilter    = GetDlgItem(hwnd, IDC_COMBO_FILTER);
  55.             break;
  56.         }
  57.         case WM_COMMAND:
  58.         {
  59. /* switch (HIWORD(wParam))
  60. {
  61. case CBN_SELCHANGE:  // Combo box selected change
  62. {
  63. if ((HWND) lParam == m_hComboFilter)
  64. {
  65. ReflectFilterChange();
  66. }
  67. else if ((HWND) lParam == m_hComboPin)
  68. {
  69. ReflectPinChange();
  70. }
  71. else if ((HWND) lParam == m_hComboMediaType)
  72. {
  73. ReflectMediaTypeChange();
  74. }
  75. break;
  76. }
  77. };*/
  78. SetDirty();
  79.             break;
  80.         }
  81.     }
  82.     return CBasePropertyPage::OnReceiveMessage(hwnd,uMsg,wParam,lParam);
  83. } // OnReceiveMessage
  84. // Override CBasePropertyPage method.
  85. // Notification of which object this property page should display.
  86. // We query the object for the IFltTrace interface.
  87. HRESULT CFilterMpeg2VDProp::OnConnect(IUnknown *pUnknown)
  88. {
  89. /* HRESULT hr = pUnknown->QueryInterface(IID_IGraphInfo, (void **) &m_pIGraphInfo);
  90.     if (FAILED(hr))
  91.     {
  92.         return E_NOINTERFACE;
  93.     }
  94.     ASSERT(m_pIGraphInfo);
  95. m_pIGraphInfo->get_FilterGraph(&m_pGraph);*/
  96.     
  97. return NOERROR;
  98. } // OnConnect
  99. // Override CBasePropertyPage method.
  100. // Release the private interface, release the upstream pin.
  101. HRESULT CFilterMpeg2VDProp::OnDisconnect()
  102. {
  103. /* // Release of Interface
  104. if (m_pIGraphInfo == NULL)
  105.         return E_UNEXPECTED;
  106.     m_pIGraphInfo->Release();
  107.     m_pIGraphInfo = NULL;
  108. */
  109.     return NOERROR;
  110. } // OnDisconnect
  111. // We are being activated
  112. HRESULT CFilterMpeg2VDProp::OnActivate()
  113. {
  114. /* FillFilterComboBox();
  115. // The first time to enter this property page
  116. if (m_nFilterIndex == -1) 
  117. {
  118. m_nFilterIndex = SendMessage(m_hComboFilter, CB_GETCURSEL, 0, 0);
  119. }
  120. else
  121. {
  122. if (m_nFilterIndex < SendMessage(m_hComboFilter, CB_GETCOUNT, 0, 0))
  123. {
  124. SendMessage(m_hComboFilter, CB_SETCURSEL, (WPARAM) m_nFilterIndex, 0);
  125. }
  126. }
  127. ReflectFilterChange();*/
  128.     return NOERROR;
  129. } // Activate
  130. // Changes made should be kept
  131. HRESULT CFilterMpeg2VDProp::OnApplyChanges()
  132. {
  133.     return NOERROR;
  134. } // OnApplyChanges
  135. //
  136. // Sets m_hrDirtyFlag and notifies the property page site of the change
  137. void CFilterMpeg2VDProp::SetDirty()
  138. {
  139.     m_bDirty = TRUE;
  140.     if (m_pPageSite)
  141.     {
  142.         m_pPageSite->OnStatusChange(PROPPAGESTATUS_DIRTY);
  143.     }
  144. } // SetDirty