Função SHCreateThread (shlwapi.h)

Cria um thread.

Sintaxe

BOOL SHCreateThread(
  [in]           LPTHREAD_START_ROUTINE pfnThreadProc,
  [in, optional] void                   *pData,
  [in]           SHCT_FLAGS             flags,
  [in, optional] LPTHREAD_START_ROUTINE pfnCallback
);

Parâmetros

[in] pfnThreadProc

Tipo: LPTHREAD_START_ROUTINE

Um ponteiro para uma função definida pelo aplicativo do tipo LPTHREAD_START_ROUTINE . Se um novo thread tiver sido criado com êxito, essa função definida pelo aplicativo será chamada no contexto desse thread. SHCreateThread não aguarda que a função apontada por esse parâmetro seja concluída antes de retornar ao chamador. O valor retornado da função definida pelo aplicativo é o código de saída do thread.

[in, optional] pData

Tipo: void*

Um ponteiro para uma estrutura de dados opcional definida pelo aplicativo que contém dados de inicialização. Ele é passado para a função apontada por pfnThreadProc e, opcionalmente, pfnCallback. Esse valor pode ser NULL.

[in] flags

Tipo: SHCT_FLAGS

Os sinalizadores que controlam o comportamento da função. Uma ou mais das constantes CTF .

[in, optional] pfnCallback

Tipo: LPTHREAD_START_ROUTINE

Um ponteiro para uma função opcional definida pelo aplicativo do tipo LPTHREAD_START_ROUTINE . Essa função é chamada no contexto do thread criado antes que a função apontada por pfnThreadProc seja chamada. Ele também receberá pData como seu argumento. SHCreateThread aguardará a função apontada por pfnCallback retornar antes de retornar ao chamador. O valor retornado da função apontada por pfnCallback é ignorado.

Retornar valor

Tipo: BOOL

Retornará TRUE se o thread for criado com êxito ou FALSE caso contrário. Em caso de falha, use GetLastError para recuperar o valor de erro específico, conforme mostrado aqui.

if (!SHCreateThread(...))
{
    hr = HRESULT_FROM_WIN32( GetLastError() );
}
else
{
    ....
}

Comentários

A função apontada por pfnThreadProc e pfnCallback deve seguir o formulário a seguir.

DWORD WINAPI ThreadProc(LPVOID pData)
{
  ...
}

O nome da função é arbitrário. O parâmetro pData aponta para uma estrutura de dados definida pelo aplicativo com informações de inicialização.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional, Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shlwapi.h
Biblioteca Shlwapi.lib
DLL Shlwapi.dll (versão 5.0 ou posterior)

Confira também

CreateProcess

CreateThread

SHCreateThreadRef

SHGetThreadRef

SHReleaseThreadRef

SHSetThreadRef

Versões de shell e controles comuns