The one that you will have to pass into the component is ModuleId. For the others plus a few you didn't mention, you can (in most cases) get as follows thanks to a few shared methods and current UserInfo and PortalSettings objects that are passed on the HttpContext:
Dim _PortalSettings As DotNetNuke.Entities.Portals.PortalSettings = _
DotNetNuke.Entities.Portals.PortalController.GetCurrentPortalSettings
Dim _PortalId As Integer = _PortalSettings.PortalId
Dim _UserID As Integer = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo.UserID
Dim _TabID As Integer = _PortalSettings.ActiveTab.TabID
Dim mc As New DotNetNuke.Entities.Modules.ModuleController
Dim _ModuleConfiguration As DotNetNuke.Entities.Modules.ModuleInfo = mc.GetModule(_ModuleId, _TabID)
Dim _TabModuleID As Integer = _ModuleConfiguration.TabModuleID
Dim _Settings As HashTable = DotNetNuke.Portals.PortalSettings.GetTabModuleSettings(_
New Hashtable(mc.GetModuleSettings(_ModuleId)), _
New Hashtable(mc.GetTabModuleSettings(_TabModuleID)))
If my module has lots of settings I prefer to define a class to encapsulate each setting with a strongly typed property and then store this class object onto the cache (keyed by ModuleId or TabModuleID as appropriate). It is then very easy to load this class object from the cache in your component. Since many components will need the availability of all of the above information, I have defined a base component class that obtains each value as readonly properties and then inherit each component class from it when needed.