You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
884 B
32 lines
884 B
6 years ago
|
"""General utility functions common to client and server.
|
||
|
|
||
|
This module contains a collection of general purpose utility functions.
|
||
|
"""
|
||
|
import pythoncom
|
||
|
import win32api, win32con
|
||
|
|
||
|
def IIDToInterfaceName(iid):
|
||
|
"""Converts an IID to a string interface name.
|
||
|
|
||
|
Used primarily for debugging purposes, this allows a cryptic IID to
|
||
|
be converted to a useful string name. This will firstly look for interfaces
|
||
|
known (ie, registered) by pythoncom. If not known, it will look in the
|
||
|
registry for a registered interface.
|
||
|
|
||
|
iid -- An IID object.
|
||
|
|
||
|
Result -- Always a string - either an interface name, or '<Unregistered interface>'
|
||
|
"""
|
||
|
try:
|
||
|
return pythoncom.ServerInterfaces[iid]
|
||
|
except KeyError:
|
||
|
try:
|
||
|
try:
|
||
|
return win32api.RegQueryValue(win32con.HKEY_CLASSES_ROOT, "Interface\\%s" % iid)
|
||
|
except win32api.error:
|
||
|
pass
|
||
|
except ImportError:
|
||
|
pass
|
||
|
return str(iid)
|
||
|
|