LoadModule 関数 (winbase.h)
アプリケーションを読み込んで実行するか、既存のアプリケーションの新しいインスタンスを作成します。
メモ この関数は、16 ビット バージョンの Windows との互換性のためにのみ提供されます。 アプリケーションでは CreateProcess 関数を使用する必要があります。
構文
DWORD LoadModule(
[in] LPCSTR lpModuleName,
[in] LPVOID lpParameterBlock
);
パラメーター
[in] lpModuleName
実行するアプリケーションのファイル名。 パスを指定するときは、スラッシュ (/) ではなく、円記号 (\) を使用してください。 lpModuleName パラメーターにディレクトリ パスが含まれていない場合、システムは実行可能ファイルを次の順序で検索します。
- アプリケーションの読み込み元のディレクトリ。
- 現在のフォルダー。
- システム ディレクトリです。 GetSystemDirectory 関数を使用して、このディレクトリのパスを取得します。
- 16 ビット システム ディレクトリ。 このディレクトリのパスを取得する関数はありませんが、検索されます。 このディレクトリの名前は System です。
- Windows ディレクトリ。 GetWindowsDirectory 関数を使用して、このディレクトリのパスを取得します。
- PATH 環境変数に一覧表示されているディレクトリ。
[in] lpParameterBlock
新しいアプリケーションのパラメーター ブロックを定義するアプリケーション定義 のLOADPARMS32 構造体へのポインター。
使用されていない場合は null で終わる文字列を指す必要がある lpCmdLine を除き、未使用のすべてのメンバーを NULL に設定します。 詳細については、「解説」を参照してください。
戻り値
関数が成功した場合、戻り値は 31 より大きくなります。
関数が失敗した場合、戻り値はエラー値であり、次のいずれかの値になる可能性があります。
リターン コード/値 | 説明 |
---|---|
|
システムのメモリまたはリソースが不足しています。 |
|
.exe ファイルが無効です。 |
|
The specified file was not found. (指定されたファイルは見つかりませんでした。) |
|
指定したパスが見つかりませんでした。 |
解説
LOADPARMS32構造体の形式は次のとおりです。
typedef struct tagLOADPARMS32 {
LPSTR lpEnvAddress; // address of environment strings
LPSTR lpCmdLine; // address of command line
LPSTR lpCmdShow; // how to show new program
DWORD dwReserved; // must be zero
} LOADPARMS32;
メンバー | 説明 |
---|---|
lpEnvAddress | 新しいプロセスの環境文字列を提供する null で終わる文字列の配列へのポインター。 配列の値は、最後のエントリとして NULL です。 このパラメーターの値が NULL の場合、新しいプロセスは呼び出し元プロセスと同じ環境で開始されます。 |
lpCmdLine | 正しい形式のコマンド ラインを含む Pascal スタイルの文字列へのポインター。 文字列の最初のバイトには、文字列内のバイト数が含まれます。 文字列の残りの部分には、子プロセスの名前を除くコマンド ライン引数が含まれています。 コマンド ライン引数がない場合、このパラメーターは長さ 0 の文字列を指す必要があります。NULL にすることはできません。 |
lpCmdShow | 2 つの WORD 値を含む構造体へのポインター。 最初の値は常に 2 に設定する必要があります。 2 番目の値は、アプリケーション ウィンドウの表示方法を指定し、STARTUPINFO 構造体の wShowWindow メンバーを CreateProcess 関数に提供するために使用します。 許容される値の一覧については、ShowWindow 関数の nCmdShow パラメーターの説明を参照してください。 |
dwReserved | このパラメーターは予約されています。0 にする必要があります。 |
アプリケーションでは、LoadModule の代わりに CreateProcess 関数を使用する必要があります。 LoadModule 関数は、次のようにパラメーターを形成して CreateProcess を呼び出します。
CreateProcess パラメーター | 使用される引数 |
---|---|
lpszApplicationName | lpModuleName |
lpszCommandLine | lpParameterBlock。lpCmdLine |
lpProcessAttributes | NULL |
lpThreadAttributes | NULL |
bInheritHandles | FALSE |
dwCreationFlags | 0 |
lpEnvironment | lpParameterBlock。lpEnvAddress |
lpCurrentDirectory | NULL |
lpStartupInfo | 構造体は 0 に初期化されます。 cb メンバーは構造体のサイズに設定されます。 wShowWindow メンバーは、lpParameterBlock の 2 番目の単語の値に設定されます。lpCmdShow。 |
lpProcessInformation.hProcess | ハンドルはすぐに閉じられます。 |
lpProcessInformation.hThread | ハンドルはすぐに閉じられます。 |
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |