ShellExecuteExW 関数 (shellapi.h)
指定したファイルに対して操作を実行します。
構文
BOOL ShellExecuteExW(
[in, out] SHELLEXECUTEINFOW *pExecInfo
);
パラメーター
[in, out] pExecInfo
型: SHELLEXECUTEINFO*
実行中のアプリケーションに関する情報を格納および受信する SHELLEXECUTEINFO 構造体へのポインター。
戻り値
型: BOOL
成功した場合
備考
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)
ShellExecuteEx でこれらの種類のシェル拡張機能のいずれかが使用されず、これらのインスタンスで COM を初期化する必要がまったくない場合があります。 ただし、この関数を使用する前に常に COM を初期化することをお勧めします。
DLL がプロセスに読み込まれると、ローダー ロックと呼ばれるロックが取得されます。 DllMain 関数は、常にローダー ロックの下で実行されます。 ローダー ロックを保持している間は、ShellExecuteEx を呼び出さないでください。 ShellExecuteEx は拡張可能であるため、ローダー ロックがある場合に正常に機能しないコードを読み込み、デッドロックが発生し、応答しないスレッドが発生する可能性があります。
複数のモニターを使用する場合、
関数が成功した場合は、SHELLEXECUTEINFO 構造体の hInstApp メンバーを 32 より大きい値に設定します。 関数が失敗した場合、hInstApp は、エラーの原因を最もよく示す SE_ERR_XXX エラー値に設定されます。 hInstApp は、16 ビット Windows アプリケーションとの互換性のために HINSTANCE として宣言されていますが、実際の HINSTANCE ではありません。 int にのみキャストでき、値 32 またはSE_ERR_XXXエラー コードとのみ比較できます。
SE_ERR_XXXエラー値は、ShellExecuteとの互換性のために提供されます。 より正確なエラー情報を取得するには、GetLastError
エラー | 形容 |
---|---|
ERROR_FILE_NOT_FOUND | 指定したファイルが見つかりませんでした。 |
ERROR_PATH_NOT_FOUND | 指定したパスが見つかりませんでした。 |
ERROR_DDE_FAIL | 動的データ交換 (DDE) トランザクションが失敗しました。 |
ERROR_NO_ASSOCIATION | 指定したファイル名拡張子に関連付けられているアプリケーションはありません。 |
ERROR_ACCESS_DENIED | 指定されたファイルへのアクセスが拒否されます。 |
ERROR_DLL_NOT_FOUND | アプリケーションの実行に必要なライブラリ ファイルの 1 つが見つかりません。 |
ERROR_CANCELLED | この関数はユーザーに追加情報の入力を求めたが、ユーザーは要求をキャンセルした。 |
ERROR_NOT_ENOUGH_MEMORY | 指定されたアクションを実行するのに十分なメモリがありません。 |
ERROR_SHARING_VIOLATION | 共有違反が発生しました。 |
URL からアイテムを開く URL が渡されたときにアクティブ化するアプリケーションを登録できます。 アプリケーションでサポートされるプロトコルを指定することもできます。 詳細については、「アプリケーション登録」を参照してください。
Windows 8 の時点 サイト チェーンサポート
手記
shellapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして ShellExecuteEx を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | shellapi.h |
ライブラリ | Shell32.lib |
DLL | Shell32.dll (バージョン 3.51 以降) |
関連項目
CoInitializeEx の
IShellExecuteHook の