LoadModule 関数 (winbase.h)

アプリケーションを読み込んで実行するか、既存のアプリケーションの新しいインスタンスを作成します。

メモ この関数は、16 ビット バージョンの Windows との互換性のためにのみ提供されます。 アプリケーションでは CreateProcess 関数を使用する必要があります。
 

構文

DWORD LoadModule(
  [in] LPCSTR lpModuleName,
  [in] LPVOID lpParameterBlock
);

パラメーター

[in] lpModuleName

実行するアプリケーションのファイル名。 パスを指定するときは、スラッシュ (/) ではなく、円記号 (\) を使用してください。 lpModuleName パラメーターにディレクトリ パスが含まれていない場合、システムは実行可能ファイルを次の順序で検索します。

  1. アプリケーションの読み込み元のディレクトリ。
  2. 現在のフォルダー。
  3. システム ディレクトリです。 GetSystemDirectory 関数を使用して、このディレクトリのパスを取得します。
  4. 16 ビット システム ディレクトリ。 このディレクトリのパスを取得する関数はありませんが、検索されます。 このディレクトリの名前は System です。
  5. Windows ディレクトリ。 GetWindowsDirectory 関数を使用して、このディレクトリのパスを取得します。
  6. PATH 環境変数に一覧表示されているディレクトリ。

[in] lpParameterBlock

新しいアプリケーションのパラメーター ブロックを定義するアプリケーション定義 のLOADPARMS32 構造体へのポインター。

使用されていない場合は null で終わる文字列を指す必要がある lpCmdLine を除き、未使用のすべてのメンバーを NULL に設定します。 詳細については、「解説」を参照してください。

戻り値

関数が成功した場合、戻り値は 31 より大きくなります。

関数が失敗した場合、戻り値はエラー値であり、次のいずれかの値になる可能性があります。

リターン コード/値 説明
0
システムのメモリまたはリソースが不足しています。
ERROR_BAD_FORMAT
11L
.exe ファイルが無効です。
ERROR_FILE_NOT_FOUND
2L
The specified file was not found. (指定されたファイルは見つかりませんでした。)
ERROR_PATH_NOT_FOUND
3L
指定したパスが見つかりませんでした。

解説

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 lpParameterBlocklpCmdLine
lpProcessAttributes NULL
lpThreadAttributes NULL
bInheritHandles FALSE
dwCreationFlags 0
lpEnvironment lpParameterBlocklpEnvAddress
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

関連項目

CreateProcess

ダイナミック リンク ライブラリ関数

GetSystemDirectory

GetWindowsDirectory