'Initialize an exception
**Params**
description -- A string description for the exception.
scode -- An integer scode to be returned to the server, if necessary.
The pythoncom framework defaults this to be DISP_E_EXCEPTION if not specified otherwise.
source -- A string which identifies the source of the error.
helpfile -- A string which points to a help file which contains details on the error.
helpContext -- An integer context in the help file.
desc -- A short-cut for description.
hresult -- A short-cut for scode.'

def __init__(self, description=None, scode=None, source=None, helpfile=None, helpContext=None, desc=None, hresult=None):

    scode = (scode or hresult)
    if (scode and (scode != 1)):
        if ((scode >= (-32768)) and (scode < 32768)):
            scode = ((-2147024896) | (scode & 65535))
    self.scode = scode
    self.description = (description or desc)
    if ((scode == 1) and (not self.description)):
        self.description = 'S_FALSE'
    elif (scode and (not self.description)):
        self.description = pythoncom.GetScodeString(scode)
    self.source = source
    self.helpfile = helpfile
    self.helpcontext = helpContext
    pythoncom.com_error.__init__(self, scode, self.description, None, (-1))
