SHCreateThread 関数 (shlwapi.h)
スレッドを作成します。
構文
BOOL SHCreateThread(
[in] LPTHREAD_START_ROUTINE pfnThreadProc,
[in, optional] void *pData,
[in] SHCT_FLAGS flags,
[in, optional] LPTHREAD_START_ROUTINE pfnCallback
);
パラメーター
[in] pfnThreadProc
種類: LPTHREAD_START_ROUTINE
LPTHREAD_START_ROUTINE型のアプリケーション定義関数へのポインター。 新しいスレッドが正常に作成された場合、このアプリケーション定義関数は、そのスレッドのコンテキストで呼び出されます。 SHCreateThread は、呼び出し元に戻る前に、このパラメーターが指す関数の完了を待機しません。 アプリケーション定義関数の戻り値は、スレッドの終了コードです。
[in, optional] pData
型: void*
初期化データを含むオプションのアプリケーション定義データ構造へのポインター。 pfnThreadProc が指す関数と、必要に応じて pfnCallback に渡されます。 この値には NULL を指定できます。
[in] flags
種類: SHCT_FLAGS
関数の動作を制御するフラグ。 1 つ以上の CTF 定数。
[in, optional] pfnCallback
種類: LPTHREAD_START_ROUTINE
LPTHREAD_START_ROUTINE型の省略可能なアプリケーション定義関数へのポインター。 この関数は、 pfnThreadProc によって指される関数が呼び出される前に、作成されたスレッドのコンテキストで呼び出されます。 また、引数として pData を受け取ります。 SHCreateThread は、 pfnCallback が指す関数が呼び出し元に戻るまで待機します。 pfnCallback が指す関数の戻り値は無視されます。
戻り値
種類: BOOL
スレッドが正常に作成された場合は TRUE 、それ以外の場合は FALSE を 返します。 失敗した場合は、 GetLastError を 使用して、次に示すように特定のエラー値を取得します。
if (!SHCreateThread(...))
{
hr = HRESULT_FROM_WIN32( GetLastError() );
}
else
{
....
}
注釈
pfnThreadProc および pfnCallback が指す関数は、次の形式にする必要があります。
DWORD WINAPI ThreadProc(LPVOID pData)
{
...
}
関数名は任意です。 pData パラメーターは、初期化情報を含むアプリケーション定義のデータ構造を指します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional、Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | shlwapi.h |
Library | Shlwapi.lib |
[DLL] | Shlwapi.dll (バージョン 5.0 以降) |