Je suis actuellement la conception d'une application avec le cadre de l'application Metro qui comprend une fonctionnalité de chat vidéo en direct. J'utilise le MFT GrayscaleTransform inclus dans l'exemple MediaCapture (à ce stade simplement copier-coller de l'échantillon). Cependant, lorsque j'essaie d'ajouter l'effet de niveaux de gris au flux d'images de la caméra, j'obtiens une erreur fatale "class not registered". Je comprends que c'est parce que je dois 'activer et enregistrer' l'extension média, mais je ne sais pas comment. Comment enregistrer l'extension média?Metro Style App MFT "Classe non enregistrée" Erreur
Toute aide est grandement appréciée et j'accepte toujours une réponse!
MISE À JOUR: Mon fichier IDL GrayScale est indiqué ci-dessous:
import "Windows.Media.idl";
#include <sdkddkver.h>
namespace GrayscaleTransform
{
[version(NTDDI_WIN8), activatable(NTDDI_WIN8)]
runtimeclass GrayscaleEffect
{
[default] interface Windows.Media.IMediaExtension;
}
}
La modification manuelle des extensions ne devrait généralement pas être nécessaire: si vous avez une référence à un projet ou à un SDK d'extension, la construction ajoutera automatiquement des éléments Extension pour chaque classe activable dans le projet référencé ou le SDK d'extension.Le problème ici semble être que les classes MediaExtensions ne sont pas annotées avec [activatable] dans l'IDL, elles ne sont donc pas attribuées avec ActivatableAttribute dans leurs WinMD respectifs. C'est un peu particulier. –
Bien que cette solution fonctionne, il semble étrange que j'ai besoin de modifier directement le fichier manifeste pour le faire fonctionner. J'accepterai cette réponse demain si je n'ai pas trouvé de meilleure solution d'ici là. – danielmhanover
J'essaye de faire la même tâche, cependant, je ne veux pas avoir cette DLL supplémentaire (GrayscaleTransform.dll). Donc, j'ai copié tous les fichiers de ce projet dll sur ma DLL principale, mais cela ne fonctionne pas. Y a-t-il quelque chose que je dois faire? – Pavel