Etapa 7: Colocar o Controlar em uma página da Web

Seu controle agora está concluído. Para ver seu Controlarar em uma situação real de trabalho, colocá-lo em uma página da Web. Quando o Assistente de objeto ATL cria o controle inicial, ele também cria um arquivo HTML que contém o Controlarar. Você pode abrir o arquivo PolyCtl. htm no Internet Explorer e você ver seu Controlarar em uma página da Web.

O Controlarar não fazer nada ainda, então, mudar a página da Web para responder a eventos que você envia. Abrir PolyCtl. htm no Visual C++ (se o arquivo não aparece na FileView, selecione Abrir no menu arquivo para abrir o arquivo) e adicione as linhas em negrito.

LT;HTML > <HEAD> página de teste <TITLE> ATL 3.0 para object PolyCtl </TITLE> </HEAD> <BODY> < OBJECT ID = "PolyCtl" < CLASSID = "CLSID:4CBBC676-507F-11 D 0-B98B-000000000000" > > </OBJECT>< SCRIPT LANGUAGE = "VBScript" > <!-- Sub PolyCtl_ClickIn (x, y) PolyCtl.Sides = PolyCtl.Sides + 1 End Sub Sub PolyCtl_ClickOut (x, y) PolyCtl.Sides = PolyCtl.Sides - 1 End Sub --> </SCRIPT></BODY> < / HTML & gt

Você adicionou um código de VBScript que obtém a propriedade de lados do Controlarar e aumenta o número de lados em um se você clique dentro do controle. Se você clique fora do controle é reduzir o número de lados por um.

Inicie o Internet Explorer e verifique se que as definições de segurança estão definidas como média:

  1. Clique em Opções da Internet no menu Exibir.

  2. Selecione a guia segurança e defina a segurança para Médio, se necessário e, em seguida, clique em OK.

Agora abra PolyCtl. htm no Internet Explorer. Após você clicar no controle, uma caixa de diálogo Alerta de segurança informa que o Internet Explorer não sabe se o Controlarar é seguro para script.

O que isso significa? Imagine se você tivesse um controle que, por exemplo, exibido um arquivo, mas também tinha um Delete método que excluiu um arquivo. O controle seria seguro se você apenas visto em uma página, mas não seria seguro para script desde que alguém poderia chamar o Delete Método. Esta mensagem é maneira do Internet Explorer de dizer que não sabe se alguém poderia fazer danos com esse controle, então ele está solicitando que o usuário.

Você sabe o controle é seguro, portanto, clique em Sim. Agora clique dentro do polígono; o número de lados aumenta em um. Clique fora do polígono para reduzir o número de lados. Se você tentar reduzir o número de lados abaixo três, você verá a mensagem de erro que você definir.

A figura a seguir mostra o controle executado no Internet Explorer após você ter clicado duas vezes dentro do polígono.

Pois você sabe que seu controle seja sempre seguro para script, seria bom que a Internet Explorer saiba, para que ele não precisa de mostrar a caixa de diálogo Alerta de segurança . Você pode fazer isso através da interface IObjectSafety . ATL fornece uma implementação desta interface na classe IObjectSafetyImpl.

Para adicionar a interface a seu Controlarar, adicionar IObjectSafetyImpl à sua lista de classes herdadas e adicione uma entrada para ele no seu mapa de COM.

Adicione a seguinte linha ao final da lista de classes herdadas em PolyCtl. H, lembrando-se de adicionar uma vírgula para a linha anterior:

   iObjectSafetyImpllt pública;CPolyCtl, INTERFACESAFE_FOR_UNTRUSTED_CALLER & gt

Em seguida, adicione a seguinte linha para o mapa de COM em PolyCtl. H:

   COM_INTERFACE_ENTRY(IObjectSafety)

Agora crie o controle. Quando termina a compilação, abra PolyCtl. htm no Internet Explorer novamente. Desta vez a página da Web deve ser exibida diretamente sem caixa de diálogo Violação de segurança . Clique dentro e fora do polígono para confirmar que o script está funcionando.

Voltar para a etapa 6 |nbsp; Para referências

Index