共用方式為


CBasePropertyPage 類別

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]

cbasepropertypage 類別階層

類別 CBasePropertyPage 是實作屬性頁的抽象類別。 如果您要撰寫支援屬性頁的篩選 (或其他物件) ,請使用這個類別。

受保護的成員變數 Description
m_bDirty 指出是否有任何屬性已變更。
m_DialogId 對話方塊的資源識別碼。
m_Dlg 對話方塊視窗的控制碼。
m_hwnd 對話方塊視窗的控制碼。
m_pPageSite 屬性頁網站的 IPropertyPageSite 介面指標。
m_TitleId 包含對話方塊標題之字串的資源識別碼。
公用方法 Description
CBasePropertyPage 建構函式方法。
~CBasePropertyPage 解構函式方法。 虛擬。
OnActivate 啟動屬性頁時呼叫。 虛擬。
OnApplyChanges 當使用者將變更套用至屬性頁時呼叫。 虛擬。
OnConnect 提供與屬性頁相關聯之物件的 IUnknown 指標。 虛擬。
OnDeactivate 當對話方塊視窗終結時呼叫。 虛擬。
OnDisconnect 當屬性頁應該釋放相關聯的物件時呼叫。 虛擬。
OnReceiveMessage 當對話方塊收到訊息時呼叫。 虛擬。
IPropertyPage 方法 Description
啟動 建立對話方塊視窗。
套用 將目前的屬性值套用至與屬性頁相關聯的物件
停用 終結對話方塊視窗。
GetPageInfo 擷取屬性頁的相關資訊。
說明 叫用屬性頁說明。
IsPageDirty 指出屬性頁自啟動後變更,或自 最近呼叫 IPropertyPage::Apply之後變更。
移動 放置對話方塊並調整大小。
SetObjects 提供與屬性頁相關聯之物件的 IUnknown 指標。
SetPageSite 初始化屬性頁。
顯示 顯示或隱藏對話方塊。
TranslateAccelerator 指示屬性頁處理按鍵。

備註

屬性頁是 COM 物件,因此您必須 (CLSID) 產生類別識別碼的 GUID,並在 CFactoryTemplate 陣列中提供專案。 如需詳細資訊,請參閱 DirectShow 和 COM。 下列範例顯示典型的 Class Factory 專案:

CFactoryTemplate g_Templates[] =
{   
    { 
        L"My Property Page",
        &CLSID_MyPropPage,
        CMyProp::CreateInstance,
        NULL,
        NULL
    },
    /* Also include the template for your filter (not shown). */
};

您的篩選準則必須公開 ISpecifyPropertyPages 介面。 此介面包含單一方法 GetPages,其會傳回屬性頁的 CLSID。 下列範例示範如何實作此方法:

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;
} 

請記得同時覆寫篩選的 NonDelegatingQueryInterface 方法。 如需詳細資訊,請參閱 DirectShow 和 COM 和INonDelegatingUnknown

接下來,在專案中建立對話方塊做為資源,並建立保存對話方塊標題的字串資源。 這兩個資源識別碼都是 CBasePropertyPage 建構函式的參數。 將標題字串保留在資源中,可讓您更輕鬆地當地語系化屬性頁。

CBasePropertyPage類別提供IPropertyPage介面的架構。 此架構會呼叫許多虛擬方法,包括 CBasePropertyPage::OnActivateCBasePropertyPage::OnApplyChanges等等。 在基類中,這些方法只會傳回S_OK。 您的衍生類別必須覆寫部分或全部的虛擬方法。 如需詳細資訊,請參閱個別方法的備註。

如需如何使用這個類別建立屬性頁的擴充範例,請參閱 建立篩選屬性頁

規格需求

需求
標頭
Cprop.h (包含 Streams.h)
程式庫
Strmbase.lib (零售組建) ;
Strmbasd.lib (偵錯組建)