Función SHCreateThread (shlwapi.h)

Crea un subproceso.

Sintaxis

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

Puntero a una función definida por la aplicación del tipo LPTHREAD_START_ROUTINE . Si se creó correctamente un nuevo subproceso, se llama a esta función definida por la aplicación en el contexto de ese subproceso. SHCreateThread no espera a que se complete la función a la que apunta este parámetro antes de volver a su llamador. El valor devuelto de la función definida por la aplicación es el código de salida del subproceso.

[in, optional] pData

Tipo: void*

Puntero a una estructura de datos opcional definida por la aplicación que contiene datos de inicialización. Se pasa a la función a la que apunta pfnThreadProc y, opcionalmente, pfnCallback. Este valor puede ser NULL.

[in] flags

Tipo: SHCT_FLAGS

Marcas que controlan el comportamiento de la función. Una o varias de las constantes CTF .

[in, optional] pfnCallback

Tipo: LPTHREAD_START_ROUTINE

Puntero a una función opcional definida por la aplicación del tipo LPTHREAD_START_ROUTINE . Se llama a esta función en el contexto del subproceso creado antes de llamar a la función a la que apunta pfnThreadProc . También recibirá pData como argumento. SHCreateThread esperará a que la función a la que apunta pfnCallback vuelva antes de volver a su llamador. El valor devuelto de la función a la que apunta pfnCallback se omite.

Valor devuelto

Tipo: BOOL

Devuelve TRUE si el subproceso se ha creado correctamente o FALSE en caso contrario. Si se produce un error, use GetLastError para recuperar el valor de error específico como se muestra aquí.

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

Comentarios

La función a la que apunta pfnThreadProc y pfnCallback debe tener el siguiente formato.

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

El nombre de la función es arbitrario. El parámetro pData apunta a una estructura de datos definida por la aplicación con información de inicialización.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional, Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shlwapi.h
Library Shlwapi.lib
Archivo DLL Shlwapi.dll (versión 5.0 o posterior)

Consulte también

CreateProcess

CreateThread

SHCreateThreadRef

SHGetThreadRef

SHReleaseThreadRef

SHSetThreadRef

Versiones de shell y controles comunes