FindExecutableW 関数 (shellapi.h)

特定のドキュメント ファイルに関連付けられている実行可能ファイル (.exe) の名前とハンドルを取得します。

構文

HINSTANCE FindExecutableW(
  [in]           LPCWSTR lpFile,
  [in, optional] LPCWSTR lpDirectory,
  [out]          LPWSTR  lpResult
);

パラメーター

[in] lpFile

種類: LPCTSTR

ファイル名を指定する null で終わる文字列のアドレス。 このファイルはドキュメントである必要があります。

[in, optional] lpDirectory

種類: LPCTSTR

既定のディレクトリを指定する null で終わる文字列のアドレス。 この値には NULL を指定できます。

[out] lpResult

種類: LPTSTR

関連付けられている実行可能ファイルのファイル名を受け取るバッファーのアドレス。 このファイル名は、lpFile パラメーターで指定されたファイルに対して関連付けによって "開く" が実行されたときに開始される実行可能ファイルを指定する null で終わる文字列です。 簡単に言うと、これは、ドキュメント ファイルが直接ダブルクリックされたとき、またはファイルのショートカット メニューから [開く ] が選択されたときに起動されるアプリケーションです。 このパラメーターには有効な null 以外の値を含める必要があり、長さは MAX_PATHであると見なされます。 値を検証する責任はプログラマに任されています。

戻り値

種類: HINSTANCE

成功した場合は 32 より大きい値、またはエラーを表す 32 以下の値を返します。

次の表に、考えられるエラー値を示します。

リターン コード/値 Description
SE_ERR_FNF
2
The specified file was not found. (指定されたファイルは見つかりませんでした。)
SE_ERR_PNF
3
指定されたパスが無効です。
SE_ERR_ACCESSDENIED
5
指定したファイルにアクセスできません。
SE_ERR_OOM
8
システムのメモリまたはリソースが不足しています。
SE_ERR_NOASSOC
31
指定したファイルの種類と実行可能ファイルの関連付けはありません。

注釈

ドキュメントには FindExecutable を使用します。 実行可能ファイルのパスを取得する場合は、次のコマンドを使用します。

AssocQueryString(ASSOCF_OPEN_BYEXENAME,
                 ASSOCSTR_EXECUTABLE,
                 pszExecutableName,
                 NULL,
                 pszPath,
                 pcchOut);

ここで、pszExecutableName は実行可能ファイルの名前を指定する null で終わる文字列へのポインターであり、pszPath は実行可能ファイルへのパスを受け取る null で終わる文字列バッファーへのポインターであり、pcchOutpszPath バッファー内の文字数を指定する DWORD へのポインターです。 関数が戻ると、 pcchOut はバッファーに実際に配置された文字数に設定されます。 詳細については、「 AssocQueryString 」を参照してください。

FindExecutable から戻るときに、サーバーが DDE クライアント アプリケーションとの DDE 会話を開始する要求に応答しない場合、lpResult パラメーターには、開始された動的データ交換 (DDE) サーバーへのパスが含まれる場合があります。

注意

shellapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして FindExecutable を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー shellapi.h
Library Shell32.lib
[DLL] Shell32.dll

こちらもご覧ください

ShellExecute