次の方法で共有


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

SHCreateThreadRef

SHGetThreadRef

SHReleaseThreadRef する

SHSetThreadRef

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