Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A API DualEngine só pode ser usada de dentro do processo do Internet Explorer. Portanto, para usar a API DualEngine, você deve criar uma DLL de plug-in que o Internet Explorer carrega. Essa DLL hospeda seu código que usa a API DualEngine, bem como qualquer código necessário para se comunicar com seu aplicativo principal; Por isso, ele é chamado de adaptador.
Para que o Internet Explorer carregue sua DLL com êxito, faça o seguinte.
Desbloquear o recurso de Acesso Limitado
A API DualEngine é um recurso de acesso limitado (LAF); ou seja, um recurso que precisa ser desbloqueado antes de poder ser usado. Para obter mais informações sobre a implementação, consulte a classe LimitedAccessFeatures. Para solicitar um token de desbloqueio, entre em contato com o Suporte da Microsoft.
A API DualEngine não é um LAF típico, pois Windows.ApplicationModel.TryUnlockFeature não é usado para desbloquear o recurso. Isso ocorre porque o LAF normalmente usa a identidade do aplicativo do processo de chamada para conceder acesso e, como uma DLL de plug-in, sempre será o Internet Explorer. Portanto, para desbloquear a API, você precisa chamar DualEngineSessionFactory::TryUnlockFeature.
Além disso, a identidade do seu aplicativo deve ser fornecida ao Internet Explorer por meio de uma cadeia de caracteres de recurso específica definida na DLL. Você pode definir o valor em seu arquivo de recurso da seguinte maneira:
IDENTITY LIMITEDACCESSFEATURE { L"ExampleApp_6v1kqc8g0gcae" }
Sua cadeia de caracteres de identidade específica será fornecida a você pela Microsoft quando o acesso ao LAF for concedido.
Implementar exportações de função
A DLL do adaptador deve implementar as seguintes exportações de função:
DualEngineInitializeDualEngineReady
Essas exportações são chamadas pelo Internet Explorer ao carregar sua DLL. Eles fornecem os objetos de fábrica para a criação de objetos da API DualEngine.
Essas exportações são chamadas do thread principal do processo do Internet Explorer, portanto, fazer qualquer processamento de longo prazo dentro das exportações interromperá o Internet Explorer. Portanto, para lidar com qualquer trabalho de longa duração, você deve criar um novo thread.
DualEngineInitialize
HRESULT APIENTRY DualEngineInitialize(DualEngineSessionFactory* pSessionFactory, PCWSTR pipeName)
Parâmetros
-
pSessionFactoryO objeto de fábrica a ser usado para acessar a API DualEngine. -
pipeNameUma cadeia de caracteres que foi passada no Internet Explorer por meio do-DualEnginePipesinalizador de linha de comando.
Essa exportação é chamada imediatamente após o Internet Explorer carregar a DLL com êxito. Esta é sua primeira chance de configurar qualquer coisa necessária para sua inscrição.
É aqui que você normalmente configuraria a comunicação entre a DLL do adaptador e seu aplicativo host. A pipeName cadeia de caracteres é fornecida para essa finalidade. Apesar do nome, a pipeName cadeia de caracteres não precisa ser um nome de tubo; é simplesmente uma cadeia de caracteres passada para o adaptador com base no valor do sinalizador de linha de comando com o qual o -DualEnginePipe Internet Explorer foi iniciado e não tem outro significado semântico.
Embora o pSessionFactory objeto seja fornecido nesta chamada, ele ainda não é válido para chamarGetVersionedBrowserSession, porque, neste momento, o Internet Explorer não está pronto para criar Sessões.
DualEngineReady
HRESULT APIENTRY DualEngineReady()
Essa exportação é chamada depois que o Internet Explorer concluir toda a configuração inicial e a API estiver pronta para uso. Agora é possível chamar GetVersionedBrowserSession e obter o objeto Session, supondo que uma chamada TryUnlockFeature bem-sucedida tenha sido feita.
Ignorar a assinatura da DLL do adaptador
O Internet Explorer tem um requisito de que, para que uma DLL de adaptador seja carregada, ela deve ser assinada com uma assinatura confiável. Para fins de teste e desenvolvimento, essa marca pode ser ignorada, ativando-se TestSigning para o dispositivo em que você está testando, da seguinte maneira:
Bcdedit.exe -set TESTSIGNING ON