DWORD GetModuleBaseName( HANDLE hProcess, HMODULE hModule, LPTSTR BaseName, DWORD BaseNameSize);
引数の意味は以下の通り。
| hProcess | (IN) | 情報の取得元のプロセスのハンドル。 |
| hModule | (IN) | 情報の取得元のモジュールのハンドル。 |
| BaseName | (OUT) | 取得結果のベース名。 |
| BaseNameSize | (IN) | BaseNameのサイズ。 |
戻り値は、BaseNameに設定されたファイル名のサイズである。関数の実行に失敗した場合、0が返される。
/* 現在のプロセスのがロードしているモジュールの一覧を表示 */
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);
}
}