次の方法で共有


WOWShellExecute 関数

[この関数は、Service Pack 2 (SP2) と Windows Server 2003 を使用した Windows XP を通じて使用できます。 それ以降のバージョンの Windows では、変更または使用できない可能性があります。

指定したファイルに対して操作を実行します。 WOWShellExecute は、Microsoft Windows NT Virtual DOS マシン (Ntvdm.exe) で使用するためにのみ存在します。これにより、ディスク オペレーティング システム (DOS) と 16 ビット ソフトウェアを Windows システム上で実行でき、他のユーザーが使用することはできません。 代わりに ShellExecute を使用してください。

構文

HINSTANCE WOWShellExecute(
  _In_ HWND    hwnd,
  _In_ LPCTSTR lpOperation,
  _In_ LPCTSTR lpFile,
  _In_ LPCTSTR lpParameters,
  _In_ LPCTSTR lpDirectory,
  _In_ INT     nShowCmd,
       void    *lpfnCBWinExec
);

パラメーター

hwnd [in]

型: HWND

UI またはエラー メッセージの表示に使用される所有者ウィンドウへのハンドル。 操作がウィンドウに関連付けられていない場合、この値は NULL にすることができます。

lpOperation [in]

種類: LPCTSTR

実行するアクションを指定する 、null で終わる文字列 (この場合は 動詞と呼ばれる) へのポインター。 使用可能な動詞のセットは、特定のファイルまたはフォルダーによって異なります。 一般に、オブジェクトのショートカット メニューから使用できるアクションは、動詞を使用できます。 動詞とその可用性の詳細については、「アプリケーションの起動」の「オブジェクト動詞」セクションを参照してください。 ショートカット メニューの詳細については、「ショートカット メニューの拡張」を参照してください。 次の動詞が一般的に使用されます。

編集

エディターを起動し、編集用にドキュメントを開きます。 lpFile がドキュメント ファイルでない場合、関数は失敗します。

探索

lpFile で指定されたフォルダーを探索します。

見つける

指定したディレクトリから検索を開始します。

開く

lpFile パラメーターで指定されたファイルを開きます。 ファイルには、実行可能ファイル、ドキュメント ファイル、またはフォルダーを指定できます。

印刷

lpFile で指定されたドキュメント ファイルを印刷します。 lpFile がドキュメント ファイルでない場合、関数は失敗します。

Null

Windows 2000 より前のシステムでは、有効でレジストリで使用できる場合は、既定の動詞が使用されます。 そうでない場合は、"オープン" 動詞が使用されます。

Windows 2000 以降のシステムでは、使用可能な場合は既定の動詞が使用されます。 そうでない場合は、"オープン" 動詞が使用されます。 どちらの動詞も使用できない場合、システムはレジストリに記載されている最初の動詞を使用します。

lpFile [in]

種類: LPCTSTR

指定した動詞を実行するファイルまたはオブジェクトを指定する null で終わる文字列へのポインター。 シェル名前空間オブジェクトを指定するには、完全修飾解析名を渡します。 すべての動詞がすべてのオブジェクトでサポートされているわけではないことに注意してください。 たとえば、すべてのドキュメントの種類で "print" 動詞がサポートされているわけではありません。

lpParameters [in]

種類: LPCTSTR

lpFile パラメーターが実行可能ファイルを指定する場合、lpParameters は、アプリケーションに渡されるパラメーターを指定する null で終わる文字列へのポインターです。 この文字列の形式は、呼び出される動詞によって決まります。 lpFile でドキュメント ファイルが指定されている場合、lpParametersNULL である必要があります。

lpDirectory [in]

種類: LPCTSTR

既定のディレクトリを指定する null で終わる文字列へのポインター。

nShowCmd [in]

型: INT

アプリケーションを開いたときの表示方法を指定するフラグ。 lpFile でドキュメント ファイルが指定されている場合、フラグは関連付けられているアプリケーションに渡されます。 その処理方法を決めるのは、アプリケーションによって決まる必要があります。 ShowWindow 関数の nCmdShow パラメーターで指定できる任意の値を指定できます。

lpfnCBWinExec

型: void*

16 ビット カーネルで CreateProcess を 呼び出すために使用されるコールバック関数。

戻り値

種類: HINSTANCE

成功した場合は 32 より大きい値を返し、それ以外の場合は 32 以下のエラー値を返します。 次の表に、エラー値の一覧を示します。 戻り値は、16 ビット Windows アプリケーションとの下位互換性のために HINSTANCE としてキャストされます。 ただし、これは真の HINSTANCE ではありません。 返された HINSTANCE で実行できるのは、 int にキャストし、値 32 または以下のいずれかのエラー コードと比較することだけです。

リターン コード 説明
0
オペレーティング システムのメモリまたはリソースが不足しています。
ERROR_FILE_NOT_FOUND
The specified file was not found. (指定されたファイルは見つかりませんでした。)
ERROR_PATH_NOT_FOUND
指定したパスが見つかりませんでした。
ERROR_BAD_FORMAT
.exe ファイルが無効です (Win32 以外の.exeまたはイメージのエラー.exe)。
SE_ERR_ACCESSDENIED
オペレーティング システムは、指定されたファイルへのアクセスを拒否しました。
SE_ERR_ASSOCINCOMPLETE
ファイル名の関連付けが不完全または無効です。
SE_ERR_DDEBUSY
他の DDE トランザクションが処理されていたため、DDE トランザクションを完了できませんでした。
SE_ERR_DDEFAIL
DDE トランザクションが失敗しました。
SE_ERR_DDETIMEOUT
要求がタイムアウトしたため、DDE トランザクションを完了できませんでした。
SE_ERR_DLLNOTFOUND
指定した DLL が見つかりませんでした。
SE_ERR_FNF
The specified file was not found. (指定されたファイルは見つかりませんでした。)
SE_ERR_NOASSOC
指定されたファイル名拡張子に関連付けられているアプリケーションはありません。 印刷できないファイルを印刷しようとすると、このエラーも返されます。
SE_ERR_OOM
操作を完了するのに十分なメモリが不足していました。
SE_ERR_PNF
指定したパスが見つかりませんでした。
SE_ERR_SHARE
共有違反が発生しました。

 

解説

WOWShellExecute は、ヘッダー ファイルまたは .lib ファイルには含まれません。 名前によってShell32.dllからエクスポートされます。

このメソッドを使用すると、フォルダーのショートカット メニューまたはレジストリに格納されているコマンドを実行できます。

lpOperationNULL の場合、関数は lpFile で指定されたファイルを開きます。 lpOperation が "open" または "explore" の場合、関数はフォルダーを開いたり探索したりしようとします。

WOWShellExecute を呼び出した結果として起動されるアプリケーションに関する情報を取得するには、ShellExecuteEx を使用します

Note

[フォルダー オプション] の [別のプロセスでフォルダーを起動 する] ウィンドウは 、WOWShellExecute に影響します。 このオプションが無効になっている場合 (既定の設定)、WOWShellExecute は新しいウィンドウを起動するのではなく、開いているエクスプローラー ウィンドウを使用します。 エクスプローラー ウィンドウが開かっていない場合は、WOWShellExecute によって新しいウィンドウが起動されます。

 

必要条件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
[DLL]
Shell32.dll

関連項目

ShellExecute