Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O seu controlo está agora concluído. Para ver seu controle funcionar em uma situação do mundo real, coloque-o em uma página da Web. Um arquivo HTML que contém o controle foi criado quando você definiu seu controle. Abra o arquivo de PolyCtl.htm no Gerenciador de Soluções e você pode ver seu controle em uma página da Web.
Nesta etapa, você adiciona funcionalidade ao controle e script da página da Web para responder a eventos. Você também modificará o controle para informar ao Internet Explorer que o controle é seguro para scripts.
Adicionando novas funcionalidades
Para adicionar recursos de controle
Abra PolyCtl.cpp e substitua o seguinte código:
if (PtInRegion(hRgn, xPos, yPos))
Fire_ClickIn(xPos, yPos);
else
Fire_ClickOut(xPos, yPos);
com o
short temp = m_nSides;
if (PtInRegion(hRgn, xPos, yPos))
{
Fire_ClickIn(xPos, yPos);
put_Sides(++temp);
}
else
{
Fire_ClickOut(xPos, yPos);
put_Sides(--temp);
}
A forma agora terá mais lados ou menos, dependendo de onde clicar.
Criando scripts para a página da Web
O controle ainda não faz nada, portanto, altere a página da Web para responder aos eventos enviados.
Para criar scripts para a página da Web
Abra PolyCtl.htm e selecione a visualização HTML. Adicione as seguintes linhas ao código HTML. Eles devem ser adicionados depois de
</OBJECT>
, mas antes de</BODY>
.<SCRIPT LANGUAGE="VBScript"> <!-- Sub PolyCtl_ClickIn(x, y) MsgBox("Clicked (" & x & ", " & y & ") - adding side") End Sub Sub PolyCtl_ClickOut(x, y) MsgBox("Clicked (" & x & ", " & y & ") - removing side") End Sub --> </SCRIPT>
Salve o arquivo HTM.
Você adicionou algum código VBScript que obtém a propriedade Sides do controle. Ele aumenta o número de lados em um se você clicar dentro do controle. Se clicar fora do controlo, reduz o número de lados em um.
Indicando que o controle é seguro para scripts
Você pode exibir a página da Web com o controle somente no Internet Explorer. Outros browsers já não suportam controlos ActiveX devido a falhas de segurança.
Observação
Se o controle não estiver visível, saiba que alguns navegadores exigem ajustes de configurações para executar controles ActiveX. Consulte a documentação do navegador sobre como habilitar controles ActiveX.
Com base nas suas definições de segurança atuais do Internet Explorer, poderá receber uma caixa de diálogo Alerta de Segurança. Afirma que o componente poderá não ser seguro para usar em scripts e poderá causar danos. Por exemplo, se você tivesse um controle que exibisse um arquivo, mas também tivesse um Delete
método que excluísse um arquivo, seria seguro se você apenas o visualizasse em uma página. Não seria seguro escrever scripts, no entanto, porque alguém poderia chamar o método Delete
.
Importante
Para este tutorial, você pode alterar suas configurações de segurança no Internet Explorer para executar controles ActiveX que não estão marcados como seguros. No Painel de Controle, clique em Propriedades da Internet e clique em Segurança para alterar as configurações apropriadas. Quando tiver concluído o tutorial, altere as configurações de segurança de volta ao estado original.
Você pode alertar programaticamente o Internet Explorer que ele não precisa exibir a caixa de diálogo Alerta de Segurança para esse controle específico. Você pode fazê-lo usando a IObjectSafety
interface. ATL fornece uma implementação desta interface na classe IObjectSafetyImpl. Para adicionar a interface ao seu controle, adicione IObjectSafetyImpl
à sua lista de classes herdadas e adicione uma entrada para ela no seu mapa COM.
Para adicionar IObjectSafetyImpl ao controle
Adicione a seguinte linha ao final da lista de classes herdadas em PolyCtl.h e adicione uma vírgula à linha anterior:
public IObjectSafetyImpl<CPolyCtl, INTERFACESAFE_FOR_UNTRUSTED_CALLER>
Adicione a seguinte linha ao mapa COM em PolyCtl.h:
COM_INTERFACE_ENTRY(IObjectSafety)
Construindo e testando o controle
Crie o controle. Quando a compilação tiver terminado, abra PolyCtl.htm novamente na visualização do navegador. Desta vez, a página Web deve ser apresentada diretamente sem a caixa de diálogo Alerta de Segurança . Se você clicar dentro do polígono, o número de lados aumenta em um. Clique fora do polígono para reduzir o número de lados.
Próximas Etapas
Esta etapa conclui o tutorial do ATL. Para obter links para obter mais informações sobre ATL, consulte a página inicial do ATL.