Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
[Funktionen som är associerad med den här sidan, DirectShow, är en äldre funktion. Det har ersatts av MediaPlayer, IMFMediaEngineoch Audio / Video Capture i Media Foundation. Dessa funktioner har optimerats för Windows 10 och Windows 11. Microsoft rekommenderar starkt att ny kod använder MediaPlayer, IMFMediaEngine och Audio/Video Capture i Media Foundation i stället för DirectShow, när det är möjligt. Microsoft föreslår att befintlig kod som använder äldre API:er skrivs om för att använda de nya API:erna om möjligt.]
Den sista återstående uppgiften är att understödja COM-registrering så att egenskapsramen kan skapa nya instanser av din egenskapssida. Lägg till ytterligare en CFactoryTemplate- post i matrisen global g_Templates, som används för att registrera alla COM-objekt i din DLL. Ta inte med någon information om filteruppsättningen för egenskapssidan.
const AMOVIESETUP_FILTER FilterSetupData =
{
/* Not shown ... */
};
CFactoryTemplate g_Templates[] =
{
// This entry is for the filter.
{
wszName,
&CLSID_GrayFilter,
CGrayFilter::CreateInstance,
NULL,
&FilterSetupData
},
// This entry is for the property page.
{
L"Saturation Props",
&CLSID_SaturationProp,
CGrayProp::CreateInstance,
NULL, NULL
}
};
Om du deklarerar g_cTemplates enligt följande kod har den automatiskt rätt värde baserat på matrisstorleken:
int g_cTemplates = sizeof(g_Templates)/sizeof(g_Templates[0]);
Lägg också till en statisk CreateInstance
-metod i egenskapssidans klass. Du kan ge metoden namnet vad du vill, men signaturen måste matcha den som visas i följande exempel:
static CUnknown * WINAPI CreateInstance(LPUNKNOWN pUnk, HRESULT *pHr)
{
CGrayProp *pNewObject = new CGrayProp(pUnk);
if (pNewObject == NULL)
{
*pHr = E_OUTOFMEMORY;
}
return pNewObject;
}
Om du vill testa egenskapssidan registrerar du DLL:en och läser sedan in filtret i GraphEdit. Högerklicka på filtret och välj Filteregenskaper.
Relaterade ämnen