Verwenden eines IViewHelper-Clone-View COM-Objekts
TMM verwendet die Methoden des IViewHelper-COM-Schnittstellenobjekts eines Hardwareherstellers in neuen Monitor- und persistenten Monitorkonfigurationen. In einer dauerhaften Monitorkonfiguration stellt TMM Anzeigedaten (d. h. Anzeigemodi und Topologiedaten) für Monitore wieder her. TMM kann diese Anzeigedaten über die IViewHelper::SetConfiguration-Methode an den Benutzermodustreiber übergeben, sodass der Treiber andere Anzeigedaten ändern oder falten kann (z. B. Gamma- oder TV-Einstellungen).
Fehler aus einem Video Present Network (VidPN) werden über die Methoden von IViewHelper zurückgegeben. Wenn TMM daher eine falsche Topologie anwendet, schlägt der VidPN fehl, und das Fehlerergebnis wird an die aufrufende Funktion zurückgegeben. Das Zuordnen eines Ziels zu zwei Quellen oder die Verwendung eines Ziel- oder Quellbezeichners, den der VidPN nicht identifizieren kann, sind Beispiele für eine falsche Topologie.
TMM bestimmt das IViewHelper COM-Schnittstellenobjekt über den Zeichenfolgenregistrierungswert UserModeDriverGUID . Hardwarehersteller sollten diesen Wert unter den Registrierungsschlüsseln hinzufügen, die das DeviceKey-Mitglied der DISPLAY_DEVICE-Struktur angibt. Ein Aufruf der Win32 EnumDisplayDevices-Funktion gibt diese Registrierungsschlüsselinformationen in DISPLAY_DEVICE zurück, auf die der lpDisplayDevice-Parameter verweist. Wenn mehrere DeviceKey-Namen vorhanden sind, sollte dieser Wert unter jedem dieser Schlüssel angezeigt werden. Im Folgenden ist ein Beispiel für einen Geräteschlüssel und den Registrierungswert der UserModeDriverGUID-Zeichenfolge aufgeführt:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{7661971C-A9BD-48B5-ACBC-298A8826535D}\0000]
"UserModeDriverGUID"="{YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY}"
Damit COM das IViewHelper-COM-Schnittstellenobjekt lädt, muss das COM-Objekt als Prozesshandler (in-proc) registriert werden, und das Threadingmodell sollte Beides sein. Die registrierte GUID sollte mit der GUID in UserModeDriverGUID übereinstimmen. Informationen zum Attribut "Both threading model" finden Sie in der Microsoft Windows SDK-Dokumentation.
Sie sollten nur die ordnungsgemäß kompilierten Versionen von IViewHelper COM-Schnittstellenobjekt-DLLs im Systemverzeichnis kopieren und registrieren. Das heißt, Sie sollten nur die 64-Bit-IViewHelper-DLL für 64-Bit-Betriebssysteme und die 32-Bit-IViewHelper-DLL für 32-Bit-Betriebssysteme kopieren und registrieren. Die beiden DLL-Binärdateien sollten nicht gleichzeitig auf demselben Computer vorhanden sein. TMM funktioniert nicht ordnungsgemäß, wenn die beiden Binärdateien gleichzeitig auf demselben Computer vorhanden sind, auch bei Windows unter Windows (WOW).