Bagikan melalui


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.]

hierarki kelas cbasepropertypage

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
Cprop.h (termasuk Streams.h)
Pustaka
Strmbase.lib (build ritel);
Strmbasd.lib (build debug)