Fonction SHCreateThread (shlwapi.h)

Crée un thread.

Syntaxe

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

Paramètres

[in] pfnThreadProc

Type : LPTHREAD_START_ROUTINE

Pointeur vers une fonction définie par l’application du type LPTHREAD_START_ROUTINE . Si un nouveau thread a été créé avec succès, cette fonction définie par l’application est appelée dans le contexte de ce thread. SHCreateThread n’attend pas que la fonction pointée par ce paramètre se termine avant de revenir à son appelant. La valeur de retour de la fonction définie par l’application est le code de sortie du thread.

[in, optional] pData

Type : void*

Pointeur vers une structure de données facultative définie par l’application qui contient des données d’initialisation. Elle est passée à la fonction pointée vers pfnThreadProc et, éventuellement, pfnCallback. Cette valeur peut être NULL.

[in] flags

Type : SHCT_FLAGS

Indicateurs qui contrôlent le comportement de la fonction. Une ou plusieurs constantes CTF .

[in, optional] pfnCallback

Type : LPTHREAD_START_ROUTINE

Pointeur vers une fonction facultative définie par l’application du type LPTHREAD_START_ROUTINE . Cette fonction est appelée dans le contexte du thread créé avant l’appel de la fonction pointée par pfnThreadProc . Il recevra également pData comme argument. SHCreateThread attend que la fonction pointée par pfnCallback retourne avant de revenir à son appelant. La valeur de retour de la fonction pointée vers pfnCallback est ignorée.

Valeur retournée

Type : BOOL

Retourne TRUE si le thread est correctement créé, ou FALSE dans le cas contraire. En cas d’échec, utilisez GetLastError pour récupérer la valeur d’erreur spécifique, comme indiqué ici.

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

Remarques

La fonction pointée par pfnThreadProc et pfnCallback doit prendre la forme suivante.

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

Le nom de la fonction est arbitraire. Le paramètre pData pointe vers une structure de données définie par l’application avec des informations d’initialisation.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel, Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête shlwapi.h
Bibliothèque Shlwapi.lib
DLL Shlwapi.dll (version 5.0 ou ultérieure)

Voir aussi

CreateProcess

CreateThread

SHCreateThreadRef

SHGetThreadRef

SHReleaseThreadRef

SHSetThreadRef

Versions de l’interpréteur de commandes et des contrôles communs