Usando um objeto COM Clone-View IViewHelper
O TMM usará os métodos do objeto de interface COM IViewHelper de exibição de clone de um fornecedor de hardware em novas configurações de monitor e monitor persistentes. Em uma configuração de monitor persistente, o TMM restaura dados de exibição (ou seja, modos de exibição e dados de topologia) para monitores. O TMM pode passar esses dados de exibição para o driver de exibição do modo de usuário por meio do método IViewHelper::SetConfiguration para que o driver possa modificar ou dobrar em outros dados de exibição (por exemplo, configurações de gama ou TV).
Erros de uma VidPN (Video Present Network) são retornados por meio dos métodos de IViewHelper. Portanto, se o TMM aplicar uma topologia inadequada, o VidPN falhará e o resultado da falha será passado de volta para a função de chamada. Mapear um destino para duas fontes ou usar um identificador de destino ou de origem que o VidPN não pode identificar são exemplos de topologia inadequada.
O TMM determina o objeto de interface COM IViewHelper por meio do valor do registro de cadeia de caracteres UserModeDriverGUID . Os fornecedores de hardware devem adicionar esse valor sob as chaves do Registro especificadas pelo membro DeviceKey da estrutura DISPLAY_DEVICE. Uma chamada para a função Win32 EnumDisplayDevices retorna essas informações de chave do Registro em DISPLAY_DEVICE para as quais o parâmetro lpDisplayDevice aponta. Se existirem vários nomes DeviceKey , esse valor deverá aparecer em cada uma dessas chaves. Veja a seguir um exemplo de uma chave de dispositivo e o valor do registro de cadeia de caracteres UserModeDriverGUID :
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{7661971C-A9BD-48B5-ACBC-298A8826535D}\0000]
"UserModeDriverGUID"="{YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY}"
Para o COM carregar o objeto de interface COM IViewHelper , o objeto COM deve ser registrado como um manipulador em processo (in-proc) e o modelo de threading deve ser Ambos. O GUID registrado deve corresponder ao GUID em UserModeDriverGUID. Para obter informações sobre o atributo De ambos os modelos de threading, consulte a documentação SDK do Microsoft Windows.
Você só deve copiar e registrar as versões compiladas corretamente das DLLs do objeto de interface COM do IViewHelper no diretório do sistema. Ou seja, você só deve copiar e registrar a DLL IViewHelper de 64 bits para sistemas operacionais de 64 bits e a DLL IViewHelper de 32 bits para sistemas operacionais de 32 bits. Os dois binários de DLL não devem estar presentes simultaneamente no mesmo computador. O TMM não funcionará corretamente se os dois binários estiverem presentes simultaneamente no mesmo computador, mesmo com o Windows no Windows (WOW).