Decoder-Specific Entrées de Registre
En plus des entrées de Registre requises pour tous les encodeurs et décodeurs, les entrées de Registre suivantes sont requises spécifiquement pour les décodeurs.
Ces entrées inscrivent votre décodeur sous la catégorie des décodeurs wic (Windows Imaging Component). Le premier GUID de ces entrées est l’identificateur de catégorie (CATID) pour WICBitmapDecoders.
HKEY_CLASSES_ROOT
CLSID
{7ED96837-96F0-4812-B211-F13C24117ED3}
Instance
{Decoder CLSID}
CLSID = {Decoder CLSID}
FriendlyName = {Name of Decoder}
Comme indiqué dans la section Découverte et arbitrage du fonctionnement du composant d’imagerie Windows, le mécanisme qui permet de détecter un décodeur approprié pour une image spécifique au moment de l’exécution est basé sur la mise en correspondance d’un modèle d’identification incorporé dans le fichier image avec un modèle spécifié dans l’entrée de Registre du décodeur. Pour activer la découverte au moment de l’exécution des décodeurs, vous devez inscrire le modèle d’identification unique pour votre format d’image comme suit. Toutes ces entrées de Registre sont requises, à l’exception de l’entrée EndOfStream , qui est facultative, comme décrit dans le tableau suivant.
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
Valeur | Description |
---|---|
Position | Décalage dans le fichier où se trouve le modèle. |
Longueur | Longueur du modèle. |
Modèle | Bits réels qui composent le modèle. Il s’agit des bits qui sont mis en correspondance avec le modèle d’identification dans un fichier image lors de la découverte. |
Mask | Autorise les valeurs génériques dans les modèles. Le masque est appliqué en effectuant une opération AND logique sur le modèle et le masque. Tout bit du modèle qui correspond à un bit dans le masque avec la valeur 0 est ignoré. |
EndOfStream | Le décalage du modèle d’identification doit être calculé à partir de la fin du flux, plutôt que du début. Certains formats d’image placent le modèle d’identification à ou près de la fin du fichier. Étant donné que la valeur par défaut consiste à rechercher depuis le début, sauf si votre modèle est proche de la fin du fichier, vous pouvez omettre cette entrée. |
Un codec peut prendre en charge plusieurs modèles d’identification. Dans ce cas, vous devez répéter toutes les clés sous HKEY_CLASSES_ROOT\CLSID\{Decoder CLSID}\Patternset utiliser la clé numérique (0 dans l’exemple) pour faire la distinction entre les différents modèles. Vous devez inclure chacune des quatre valeurs sous la clé pour chaque modèle.
Inscription d’un format de conteneur auprès des lecteurs de métadonnées
Si vous créez un nouveau format de conteneur pour votre codec, vous devez également créer des entrées de Registre pour prendre en charge la découverte des lecteurs de métadonnées pour les blocs de métadonnées dans vos images, comme vous l’avez fait pour les enregistreurs de métadonnées. Les entrées suivantes doivent être créées sous l’identificateur de classe (CLSID) du lecteur de métadonnées pour chaque format de métadonnées pris en charge par votre format de conteneur. (Notez que, si votre codec utilise un conteneur TIFF (Tagged Image File Format), ces informations se trouvent déjà dans le registre.)
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
Étant donné que les entrées des lecteurs de métadonnées sont également utilisées pour la découverte, elles sont très similaires à celles des décodeurs. Ces entrées sont utilisées par la fabrique de composants pour rechercher les lecteurs de métadonnées pris en charge par votre conteneur et pour sélectionner le lecteur approprié lorsque votre implémentation IWICMetadataBlockReader demande un lecteur de métadonnées.
Valeur | Description |
---|---|
Position | Décalage dans le conteneur du bloc de métadonnées où se trouve l’en-tête de métadonnées. Pour les blocs de métadonnées de niveau supérieur, il s’agit du décalage dans le flux de fichiers. Pour les blocs de métadonnées imbriqués dans d’autres blocs de métadonnées, il s’agit du décalage par rapport au bloc de métadonnées contenant. |
Modèle | Bits réels qui composent le modèle. Il s’agit des bits qui sont mis en correspondance avec le modèle d’identification dans un fichier image lors de la découverte. |
Mask | L’en-tête de métadonnées est généralement défini par le gestionnaire de métadonnées. Vous devez utiliser l’en-tête de métadonnées standard pour chaque lecteur, sauf si, pour une raison quelconque, le modèle doit avoir un format différent dans votre conteneur. |
DataOffset | Décalage par rapport au début de l’en-tête de métadonnées à partir duquel les données réelles commencent. Dans les cas où les métadonnées ne se trouvent pas à un décalage spécifique de l’en-tête, cette entrée peut être omise. |
Rubriques connexes