from pywintypes import com_error
from win32com.client import gencache

def prepare_gencache():
 gencache.is_readonly = False
 gencache.GetGeneratePath()



def load_com(*names):
 result = None
 for name in names:
  try:
   result = gencache.EnsureDispatch(name)
   break
  except com_error:
   continue
 if result is None:
  raise com_error("Unable to load any of the provided com objects.")
 return result

