Utilisation d’un objet COM IViewHelper Clone-View
TMM utilise les méthodes de l’objet d’interface COM IViewHelper clone view d’un fournisseur de matériel dans les nouvelles configurations de moniteur et de moniteur persistantes. Dans une configuration de moniteur persistante, TMM restaure les données d’affichage (c’est-à-dire les modes d’affichage et les données de topologie) sur des moniteurs. TMM peut transmettre ces données d’affichage au pilote d’affichage en mode utilisateur via la méthode IViewHelper::SetConfiguration afin que le pilote puisse modifier ou plier d’autres données d’affichage (par exemple, les paramètres gamma ou TV).
Les erreurs d’un réseau VidPN (Video Present Network) sont retournées par le biais des méthodes de IViewHelper. Par conséquent, si TMM applique une topologie incorrecte, le VidPN échoue et le résultat de l’échec est repassé à la fonction appelante. Le mappage d’une cible à deux sources ou l’utilisation d’une cible ou d’un identificateur de source que le VidPN ne peut pas identifier sont des exemples de topologie incorrecte.
TMM détermine l’objet d’interface COM IViewHelper via la valeur de registre de chaîne UserModeDriverGUID . Les fournisseurs de matériel doivent ajouter cette valeur sous les clés de Registre spécifiées par le membre DeviceKey de la structure DISPLAY_DEVICE. Un appel à la fonction Win32 EnumDisplayDevices retourne ces informations de clé de Registre dans DISPLAY_DEVICE vers laquelle pointe le paramètre lpDisplayDevice . S’il existe plusieurs noms DeviceKey , cette valeur doit apparaître sous chacune de ces clés. Voici un exemple de clé d’appareil et de la valeur de registre de chaîne UserModeDriverGUID :
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{7661971C-A9BD-48B5-ACBC-298A8826535D}\0000]
"UserModeDriverGUID"="{YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY}"
Pour que COM charge l’objet d’interface COM IViewHelper , l’objet COM doit être inscrit en tant que gestionnaire in-process (in-proc), et le modèle de threading doit être Both. Le GUID inscrit doit correspondre au GUID dans UserModeDriverGUID. Pour plus d’informations sur l’attribut de modèle de threading, consultez la documentation Microsoft Windows SDK.
Vous devez uniquement copier et inscrire les versions correctement compilées des DLL d’objet d’interface COM IViewHelper dans le répertoire système. Autrement dit, vous devez uniquement copier et inscrire la DLL IViewHelper 64 bits pour les systèmes d’exploitation 64 bits et la DLL IViewHelper 32 bits pour les systèmes d’exploitation 32 bits. Les deux fichiers binaires DLL ne doivent pas être présents simultanément sur le même ordinateur. TMM ne fonctionnera pas correctement si les deux fichiers binaires sont présents simultanément sur le même ordinateur, même avec Windows sur Windows (WOW).