Partilhar via


Os controles ActiveX MFC: Controles ActiveX de distribuição

Este artigo descreve diversos problemas relacionados ao redistribuir os controles ActiveX:

  • ANSI ou versões de controle Unicode

  • Instalação de controles ActiveX e DLLs redistribuível

  • Registrar controles

    Observação:

    Para obter informações adicionais sobre redistribuindo controles ActiveX, consulte Redistribuindo controles.

ANSI ou versões de controle Unicode

Você deve decidir se a fornecer uma versão ANSI ou Unicode do controle, ou ambos.Essa decisão se baseia em fatores de portabilidade inerentes em conjuntos de caractere ANSI e Unicode.

Controles ANSI, que trabalha em todos os sistemas operacionais de Win32, permitem portabilidade máxima entre os diversos sistemas operacionais Win32.Unicode controles funcionam no somente Windows NT (versão 3.51 ou posterior), mas não no Windows 95 ou Windows 98.Se portabilidade é sua principal preocupação, são fornecidos controles de ANSI.Se os controles serão executado somente no Windows NT, você pode remeter de controles de Unicode.Você também pode optar por enviar ambos e que seu aplicativo, instale a versão mais adequada ao sistema de operacional do usuário.

Instalação de controles ActiveX e DLLs redistribuível

O programa de instalação fornecida com os controles ActiveX deve criar um subdiretório do diretório Windows especial e instalar ocx arquivos os controles nele.

Observação:

Use o Windows GetWindowsDirectory API no seu programa de instalação para obter o nome da pasta do Windows.É aconselhável derivar o nome do subdiretório do nome da sua empresa ou produto.

O programa de instalação deverá instalar os arquivos DLL redistribuíveis necessários no diretório de sistema do Windows.Se qualquer DLL já estiver presente na computador do usuário, o programa de instalação deve comparar as versões com as versões que você está instalando.Reinstale um arquivo apenas se o seu número de versão é maior do que o arquivo já está instalado.

Como os controles ActiveX podem ser usados somente em aplicativos de contêiner OLE, não é necessário para distribuir o conjunto completo de OLE DLLs com seus controles.Você pode supor que o aplicativo recipiente (ou o próprio sistema operacional) tem o padrão OLE DLLs instalado.

Registrar controles

Para que um controle pode ser usado, as entradas apropriadas devem ser criadas para ele no banco de dados de inscrição do Windows.Alguns recipientes de controle ActiveX fornecem um item de menu para os usuários se registrem novos controles, mas esse recurso pode não ser disponível em todos os recipientes.Portanto, convém seu programa de instalação para registrar os controles quando estiverem instalados.

Se preferir, você pode escrever seu programa de instalação para registrar o controle diretamente.

Use o LoadLibrary API do Windows para carregar a DLL de controle.Em seguida, use GetProcAddress para obter o endereço da função "DllRegisterServer".Por fim, telefonar o DllRegisterServer função. O exemplo de código a seguir mostra um método possível, em que hLib armazena o identificador da biblioteca de controle, e lpDllEntryPoint armazena o endereço da função "DllRegisterServer".

HINSTANCE hLib = LoadLibrary(pszDllName);

if (hLib < (HINSTANCE)HINSTANCE_ERROR)
{
   AfxMessageBox(IDS_LOADLIBFAILED); //unable to load DLL
   iReturn = FAIL_LOAD;              //unable to load DLL
}

// Find the entry point.
lpDllEntryPoint = GetProcAddress(hLib, "DllRegisterServer");
if (lpDllEntryPoint != NULL)
   (*lpDllEntryPoint)();
else
   ;// Unable to locate entry point

A vantagem de registrar o controle diretamente é que você não precisa chamar e carregar um processo separado (ou seja, Regsvr32) reduz o time de instalação.Além disso, como o inscrição é um processo interno, o programa de instalação pode lidar com erros e podem situações imprevistas melhores do que um processo externo.

Observação:

Antes de seu programa de instalação instala um controle ActiveX, ela deve chamar OleInitialize.Quando seu programa de instalação for concluído, telefonar OleUnitialize.Isso garante que o sistema OLE DLLs no estado apropriado para o registro de um controle ActiveX.

Você deve registrar MFCx0.DLL.

Consulte também

Conceitos

Controles do ActiveX MFC