EnumProcessModules tienes que pasarle como paramentro un puntero a un array de HMODULEs donde irá devolviendo todos los hMODULE cargados en el programa. Es decir, solo devuelve el HMODULE. Que con eso puedes obtener el filename del modulo.
En cambio Module32Next/Module32First se utiliza con CreateToolhelp32Snapshot y devuelve todo una estructura detallada de cada modulo:
typedef struct tagMODULEENTRY32 {
DWORD dwSize;
DWORD th32ModuleID;
DWORD th32ProcessID;
DWORD GlblcntUsage;
DWORD ProccntUsage;
BYTE *modBaseAddr;
DWORD modBaseSize;
HMODULE hModule;
TCHAR szModule[MAX_MODULE_NAME32 + 1];
TCHAR szExePath[MAX_PATH];
} MODULEENTRY32, *PMODULEENTRY32;
Es decir, esta última no solo devuelve el hModule sino unas cuantas cosas mas.
Si, con module se refiere a las dll.