Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A API DualEngine só pode ser utilizada a partir do processo de Explorer Da Internet. Por conseguinte, para utilizar a API DualEngine, tem de criar uma DLL de plug-in que a Internet Explorer carregar. Esta DLL aloja o código que utiliza a API DualEngine, bem como qualquer código necessário para comunicar com a sua aplicação principal; é por isso que é referido como o adaptador.
Para que a Internet Explorer carregue com êxito a DLL, faça o seguinte.
Desbloquear a Funcionalidade de Acesso Limitado
A API DualEngine é uma Funcionalidade de Acesso Limitado (LAF); ou seja, uma funcionalidade que tem de ser desbloqueada antes de poder ser utilizada. Para obter mais informações sobre a implementação, veja LimitedAccessFeatures Class (Classe LimitedAccessFeatures). Para pedir um token de desbloqueio, contacte Suporte da Microsoft.
A API DualEngine não é uma LAF típica, uma vez que Windows.ApplicationModel.TryUnlockFeature não é utilizada para desbloquear a funcionalidade. Isto acontece porque, normalmente, a LAF utiliza a identidade da aplicação do processo de chamada para conceder acesso e, como DLL de plug-in, esta será sempre a Internet Explorer. Por conseguinte, para desbloquear a API, tem de chamar DualEngineSessionFactory::TryUnlockFeature.
Além disso, a identidade da sua aplicação tem de ser fornecida à Internet Explorer através de uma cadeia de recursos específica definida na DLL. Pode definir o valor no ficheiro de recursos da seguinte forma:
IDENTITY LIMITEDACCESSFEATURE { L"ExampleApp_6v1kqc8g0gcae" }
A sua cadeia de identidade específica será-lhe fornecida pela Microsoft quando for concedido acesso à LAF.
Implementar exportações de funções
A DLL do adaptador tem de implementar as seguintes exportações de funções:
DualEngineInitializeDualEngineReady
Estas exportações são chamadas pela Internet Explorer ao carregar a DLL. Fornecem-lhe os objetos de fábrica para criar objetos da API DualEngine.
Estas exportações são chamadas a partir do tópico principal do processo de Explorer Internet, pelo que qualquer processamento a longo prazo dentro das exportações irá parar a Internet Explorer. Por conseguinte, para processar qualquer trabalho de execução prolongada, deve criar um novo thread.
DualEngineInitialize
HRESULT APIENTRY DualEngineInitialize(DualEngineSessionFactory* pSessionFactory, PCWSTR pipeName)
Parâmetros
-
pSessionFactoryO objeto de fábrica a utilizar para aceder à API DualEngine. -
pipeNameUma cadeia que foi transmitida para a Internet Explorer através do sinalizador da-DualEnginePipelinha de comandos.
Esta exportação é chamada imediatamente após a Internet Explorer carregar com êxito a DLL. Esta é a primeira oportunidade para configurar tudo o que for necessário para a sua aplicação.
É aqui que normalmente configuraria a comunicação entre a DLL do adaptador e a aplicação anfitriã. A pipeName cadeia é fornecida para esta finalidade. Apesar do nome, a pipeName cadeia não precisa de ser um nome de pipe; é simplesmente uma cadeia que é transmitida ao adaptador com base no valor do sinalizador da -DualEnginePipe linha de comandos com o qual a Internet Explorer foi iniciada e não tem outro significado semântico.
Apesar de o pSessionFactory objeto ser fornecido nesta chamada, ainda não é válido efetuar uma chamada GetVersionedBrowserSession porque, neste momento, a Internet Explorer não está pronta para criar Sessões.
DualEngineReady
HRESULT APIENTRY DualEngineReady()
Esta exportação é chamada depois de a Internet Explorer ter concluído toda a configuração inicial e a API estar pronta para ser utilizada. Agora é possível ligar GetVersionedBrowserSession e obter o objeto Sessão, partindo do princípio de que foi feita uma chamada TryUnlockFeature com êxito.
Ignorar a assinatura da DLL do adaptador
A Internet Explorer tem um requisito de que, para que uma DLL de adaptador seja carregada, tem de ser assinada com uma assinatura fidedigna. Para fins de teste e desenvolvimento, este marcar pode ser ignorado ao ativar TestSigning o dispositivo no qual está a testar, da seguinte forma:
Bcdedit.exe -set TESTSIGNING ON