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
関数の動作を制御するフラグ。 CTF 定数の 1 つ以上。
[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 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の | ウィンドウズ |
ヘッダー | shlwapi.h |
ライブラリ | Shlwapi.lib |
DLL | Shlwapi.dll (バージョン 5.0 以降) |
関連項目
CreateProcess の
CreateThread の
SHReleaseThreadRef を する