Compartilhar via


Função LoadModule (winbase.h)

Carrega e executa um aplicativo ou cria uma nova instância de um aplicativo existente.

Nota Essa função é fornecida apenas para compatibilidade com versões de 16 bits do Windows. Os aplicativos devem usar a função CreateProcess .
 

Sintaxe

DWORD LoadModule(
  [in] LPCSTR lpModuleName,
  [in] LPVOID lpParameterBlock
);

Parâmetros

[in] lpModuleName

O nome do arquivo do aplicativo a ser executado. Ao especificar um caminho, use barras invertidas (\), não barras (/). Se o parâmetro lpModuleName não contiver um caminho de diretório, o sistema procurará o arquivo executável nesta ordem:

  1. O diretório do qual o aplicativo foi carregado.
  2. O diretório atual.
  3. O diretório do sistema. Use a função GetSystemDirectory para obter o caminho desse diretório.
  4. O diretório do sistema de 16 bits. Não há nenhuma função que obtenha o caminho desse diretório, mas ela é pesquisada. O nome desse diretório é System.
  5. O diretório do Windows. Use a função GetWindowsDirectory para obter o caminho desse diretório.
  6. Os diretórios listados na variável de ambiente PATH.

[in] lpParameterBlock

Um ponteiro para uma estrutura de LOADPARMS32 definida pelo aplicativo que define o bloco de parâmetros do novo aplicativo.

Defina todos os membros não utilizados como NULL, exceto lpCmdLine, que deve apontar para uma cadeia de caracteres terminada em nulo se ela não for usada. Para obter mais informações, consulte Comentários.

Valor retornado

Se a função for bem-sucedida, o valor retornado será maior que 31.

Se a função falhar, o valor retornado será um valor de erro, que pode ser um dos valores a seguir.

Valor/código retornado Descrição
0
O sistema está sem memória ou recursos.
ERROR_BAD_FORMAT
11L
O arquivo .exe é inválido.
ERROR_FILE_NOT_FOUND
2L
O arquivo especificado não foi encontrado.
ERROR_PATH_NOT_FOUND
3L
O caminho especificado não foi encontrado.

Comentários

A estrutura LOADPARMS32 tem o seguinte formato:

typedef struct tagLOADPARMS32 { 
  LPSTR lpEnvAddress;  // address of environment strings 
  LPSTR lpCmdLine;     // address of command line 
  LPSTR lpCmdShow;     // how to show new program 
  DWORD dwReserved;    // must be zero 
} LOADPARMS32;
Membro Significado
lpEnvAddress Ponteiro para uma matriz de cadeias de caracteres terminadas em nulo que fornecem as cadeias de caracteres de ambiente para o novo processo. A matriz tem um valor NULL como sua última entrada. Um valor nulo para esse parâmetro faz com que o novo processo comece com o mesmo ambiente que o processo de chamada.
lpCmdLine Ponteiro para uma cadeia de caracteres no estilo Pascal que contém uma linha de comando formada corretamente. O primeiro byte da cadeia de caracteres contém o número de bytes na cadeia de caracteres. O restante da cadeia de caracteres contém os argumentos de linha de comando, excluindo o nome do processo filho. Se não houver argumentos de linha de comando, esse parâmetro deverá apontar para uma cadeia de caracteres de comprimento zero; não pode ser NULL.
lpCmdShow Ponteiro para uma estrutura que contém dois valores WORD . O primeiro valor deve ser sempre definido como dois. O segundo valor especifica como a janela do aplicativo deve ser mostrada e é usada para fornecer o membro wShowWindow da estrutura STARTUPINFO para a função CreateProcess . Consulte a descrição do parâmetro nCmdShow da função ShowWindow para obter uma lista de valores aceitáveis.
dwReserved Esse parâmetro é reservado; deve ser zero.
 

Os aplicativos devem usar a função CreateProcess em vez de LoadModule. A função LoadModule chama CreateProcess formando os parâmetros da seguinte maneira.

Parâmetro CreateProcess Argumento usado
lpszApplicationName lpModuleName
lpszCommandLine lpParameterBlock. lpCmdLine
lpProcessAttributes NULO
lpThreadAttributes NULO
bInheritHandles FALSE
dwCreationFlags 0
lpEnvironment lpParameterBlock. lpEnvAddress
lpCurrentDirectory NULO
lpStartupInfo A estrutura é inicializada como zero. O membro cb é definido como o tamanho da estrutura. O membro wShowWindow é definido como o valor da segunda palavra de lpParameterBlock. lpCmdShow.
lpProcessInformation.hProcess O identificador é imediatamente fechado.
lpProcessInformation.hThread O identificador é imediatamente fechado.

Requisitos

   
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winbase.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

CreateProcess

Funções de biblioteca de link dinâmico

Getsystemdirectory

Getwindowsdirectory