GetModuleBaseName モジュールのベース名を取得

Cの宣言:

DWORD GetModuleBaseName(
	HANDLE hProcess,
	HMODULE hModule,
	LPTSTR BaseName,
	DWORD BaseNameSize);

説明:

hProcessで指定されたプロセスがロードしている、hModuleで指定されたモジュールのベース名を取得し、結果をBaseNameに返す。

引数の意味は以下の通り。
hProcess (IN) 情報の取得元のプロセスのハンドル。
hModule (IN) 情報の取得元のモジュールのハンドル。
BaseName (OUT) 取得結果のベース名。
BaseNameSize (IN) BaseNameのサイズ。

戻り値は、BaseNameに設定されたファイル名のサイズである。関数の実行に失敗した場合、0が返される。

Cのサンプル:

呼び出し元プロセスが現在ロードしている全てのモジュールのベース名とファイル名を列挙し、結果を表示する。
/* 現在のプロセスのがロードしているモジュールの一覧を表示 */
void DispModules()
{
	HANDLE hProcess;
	HMODULE ModuleHandles[1000];
	DWORD ModuleNum;
	DWORD ReturnSize;
	char BaseName[1000];
	char FileName[1000];
	DWORD i;

	/* 現在のプロセスのハンドルを取得 */
	hProcess = GetCurrentProcess();

	/* 現在のプロセスにロードされているモジュールのハンドルと数を取得 */
	EnumProcessModules(hProcess, ModuleHandles, sizeof(ModuleHandles), &ReturnSize);
	ModuleNum = ReturnSize / sizeof(HMODULE);

	/* 結果の表示 */
	for(i=0; i<ModuleNum; i++) {
		/* ベース名およびファイル名を取得 */
		GetModuleBaseName(hProcess, ModuleHandles[i], BaseName, 1000);
		GetModuleFileName(ModuleHandles[i], FileName, 1000);

		/* ベース名およびファイル名の表示 */
		printf("ベース名: '%s', ファイル名: '%s'\n", BaseName, FileName);
	}
}

(original text:1999/01/06 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。