Decoder-Specific registerposter
Förutom de registerposter som krävs för alla kodare och avkodare krävs följande registerposter specifikt för avkodare.
Dessa poster registrerar avkodaren under kategorin Windows Imaging Component (WIC) avkodare. Det första GUID:t i dessa poster är kategoriidentifieraren (CATID) för WICBitmapDecoders.
HKEY_CLASSES_ROOT
CLSID
{7ED96837-96F0-4812-B211-F13C24117ED3}
Instance
{Decoder CLSID}
CLSID = {Decoder CLSID}
FriendlyName = {Name of Decoder}
Som anges i avsnittet Identifiering och skiljeförfarande i How The Windows Imaging Component Works baseras mekanismen som gör det möjligt att identifiera en lämplig avkodare för en specifik avbildning vid körningen på att matcha ett identifierande mönster som är inbäddat i bildfilen med ett mönster som anges i avkodarens registerpost. Om du vill aktivera körningsidentifiering av avkodare måste du registrera det unika identifieringsmönstret för bildformatet på följande sätt. Alla dessa registerposter krävs förutom posten EndOfStream, vilket är valfritt, enligt beskrivningen i följande tabell.
HKEY_CLASSES_ROOT
CLSID
{Decoder CLSID}
Patterns
{0}
Position = Offset in block
Length = Length of pattern
Pattern = Pattern to match
Mask = FF FF FF FF
EndOfStream = 0|1
Värde | Beskrivning |
---|---|
Position | Förskjutningen till filen där mönstret finns. |
Längd | Längden på mönstret. |
Mönster | De faktiska bitar som utgör mönstret. Det här är de bitar som matchas mot identifieringsmönstret i en bildfil under identifieringen. |
Mask | Tillåter jokerteckenvärden i mönster. Masken används genom att utföra en logisk AND-åtgärd på mönstret och masken. Alla bitar i mönstret som motsvarar en bit i masken med värdet 0 ignoreras. |
EndOfStream | Förskjutningen av identifieringsmönstret bör beräknas från slutet av strömmen i stället för början. Vissa bildformat placerar det identifierande mönstret i eller nära slutet av filen. Eftersom standardvärdet är att söka från början, såvida inte mönstret ligger nära slutet av filen, kan du utelämna den här posten. |
En codec kan ha stöd för mer än ett identifieringsmönster. I så fall upprepar du alla nycklar under HKEY_CLASSES_ROOT\CLSID\{Decoder CLSID}\Patternsoch använder den numeriska nyckeln (0 i exemplet) för att skilja mellan de olika mönstren. Du måste inkludera vart och ett av de fyra värdena under nyckeln för varje mönster.
Om du skapar ett nytt containerformat för din codec måste du också skapa registerposter som stöd för identifiering av metadataläsare för metadatablocken i dina bilder, precis som för metadataförfattarna. Följande poster måste skapas under klassidentifieraren (CLSID) för metadataläsaren för varje metadataformat som ditt containerformat stöder. (Observera att om codec använder en TIFF-container (Tagged Image File Format) finns den här informationen redan i registret.)
HKEY_CLASSES_ROOT
CLSID
{Metadata Reader CLSID}
Containers
{Container Format GUID}
Position = Offset relative to its container
Pattern = Pattern used for metadata header
Mask = FF FF FF FF
DataOffset = Offset from beginning of header
Eftersom posterna för metadataläsare också används för identifiering är de mycket lika posterna för avkodare. Dessa poster används av komponentfabriken för att hitta metadataläsarna som stöds av containern och för att välja lämplig när din IWICMetadataBlockReader implementering begär en metadataläsare.
Värde | Beskrivning |
---|---|
Position | Förskjutningen i metadatablockets container där metadatahuvudet finns. För metadatablock på den översta nivån är detta förskjutningen i filströmmen. För metadatablock kapslade i andra metadatablock är det förskjutningen i förhållande till det innehållande metadatablocket. |
Mönster | De faktiska bitar som utgör mönstret. Det här är de bitar som matchas mot identifieringsmönstret i en bildfil under identifieringen. |
Mask | Metadatahuvudet definieras vanligtvis av metadatahanteraren. Du bör använda standardmetadatarubriken för varje läsare om mönstret av någon anledning inte måste ha ett annat format i containern. |
DataOffset | Förskjutningen från början av metadatahuvudet där de faktiska data börjar. I fall där metadata inte finns vid en specifik förskjutning från rubriken kan den här posten utelämnas. |
-
konceptuell