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 以降)

こちらもご覧ください

CreateProcess

CreateThread

SHCreateThreadRef

SHGetThreadRef

SHReleaseThreadRef

SHSetThreadRef

シェルと共通コントロールのバージョン