Kelas CBasePropertyPage
[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Pengambilan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine , dan Pengambilan Audio/Video di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]
Kelas CBasePropertyPage
adalah kelas abstrak untuk mengimplementasikan halaman properti. Gunakan kelas ini jika Anda menulis filter (atau objek lain) yang mendukung halaman properti.
Variabel Anggota yang Dilindungi | Deskripsi |
---|---|
m_bDirty | Menunjukkan apakah salah satu properti telah berubah. |
m_DialogId | Pengidentifikasi sumber daya untuk dialog. |
m_Dlg | Tangani ke jendela dialog. |
m_hwnd | Tangani ke jendela dialog. |
m_pPageSite | Arahkan ke antarmuka IPropertyPageSite dari situs halaman properti. |
m_TitleId | Pengidentifikasi sumber daya untuk string yang berisi judul dialog. |
Metode Publik | Deskripsi |
CBasePropertyPage | Metode konstruktor. |
~CBasePropertyPage | Metode destruktor. Virtual. |
Aktifkan | Dipanggil saat halaman properti diaktifkan. Virtual. |
OnApplyChanges | Dipanggil saat pengguna menerapkan perubahan pada halaman properti. Virtual. |
OnConnect | Menyediakan penunjuk IUnknown ke objek yang terkait dengan halaman properti. Virtual. |
OnDeactivate | Dipanggil saat jendela kotak dialog dihancurkan. Virtual. |
OnDisconnect | Dipanggil ketika halaman properti harus merilis objek terkait. Virtual. |
OnReceiveMessage | Dipanggil saat kotak dialog menerima pesan. Virtual. |
Metode IPropertyPage | Deskripsi |
Aktifkan | Membuat jendela kotak dialog. |
Terapkan | Menerapkan nilai halaman properti saat ini ke objek yang terkait dengan halaman properti |
Menonaktifkan | Menghancurkan jendela dialog. |
GetPageInfo | Mengambil informasi tentang halaman properti. |
Bantuan | Memanggil bantuan halaman properti. |
IsPageDirty | Menunjukkan apakah halaman properti telah berubah sejak diaktifkan atau sejak panggilan terbaru ke IPropertyPage::Apply. |
Bergerak | Memposisikan dan mengubah ukuran kotak dialog. |
SetObjects | Menyediakan pointer IUnknown untuk objek yang terkait dengan halaman properti. |
SetPageSite | Menginisialisasi halaman properti. |
tampilkan | Memperlihatkan atau menyembunyikan kotak dialog. |
TranslateAccelerator | Menginstruksikan halaman properti untuk memproses penekanan tombol. |
Keterangan
Halaman properti adalah objek COM, jadi Anda harus membuat GUID untuk pengidentifikasi kelas (CLSID) dan menyediakan entri dalam array CFactoryTemplate . Untuk informasi selengkapnya, lihat DirectShow dan COM. Contoh berikut menunjukkan entri pabrik kelas yang khas:
CFactoryTemplate g_Templates[] =
{
{
L"My Property Page",
&CLSID_MyPropPage,
CMyProp::CreateInstance,
NULL,
NULL
},
/* Also include the template for your filter (not shown). */
};
Filter Anda harus mengekspos antarmuka ISpecifyPropertyPages . Antarmuka ini berisi satu metode, GetPages, yang mengembalikan CLSID dari halaman properti. Contoh berikut menunjukkan cara menerapkan metode ini:
STDMETHODIMP CMyFilter::GetPages(CAUUID *pPages)
{
if (!pPages) return E_POINTER;
pPages->cElems = 1;
pPages->pElems = reinterpret_cast<GUID*>(CoTaskMemAlloc(sizeof(GUID)));
if (pPages->pElems == NULL)
{
return E_OUTOFMEMORY;
}
*(pPages->pElems) = CLSID_MyPropPage;
return S_OK;
}
Ingatlah untuk mengganti metode NonDelegatingQueryInterface filter juga. Untuk informasi selengkapnya, lihat DirectShow dan COM dan INonDelegatingUnknown.
Selanjutnya, buat dialog sebagai sumber daya di proyek Anda, dan buat sumber daya string yang menyimpan judul dialog. Kedua ID sumber daya ini adalah parameter untuk konstruktor CBasePropertyPage . Menyimpan string judul dalam sumber daya memudahkan untuk melokalisasi halaman properti Anda.
Kelas CBasePropertyPage menyediakan kerangka kerja untuk antarmuka IPropertyPage . Kerangka kerja ini memanggil sejumlah metode virtual, termasuk CBasePropertyPage::OnActivate, CBasePropertyPage::OnApplyChanges, dan sebagainya. Di kelas dasar, metode ini hanya mengembalikan S_OK. Kelas turunan Anda perlu mengambil alih beberapa atau semua metode virtual ini. Untuk detailnya, lihat keterangan untuk metode individual.
Untuk contoh yang diperluas tentang cara menggunakan kelas ini untuk membuat halaman properti, lihat Membuat Halaman Properti Filter.
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|