Commit 4e0e915b authored by Thomas Heller's avatar Thomas Heller

Remove code that is no longer used (ctypes.com).

Fix the DllGetClassObject and DllCanUnloadNow so that they forward the
call to the comtypes.server.inprocserver module.

The latter was never documented, never used by published code, and
didn't work anyway, so I think it does not deserve a NEWS entry (but I
might be wrong).
parent cc38bc04
...@@ -464,52 +464,21 @@ else: ...@@ -464,52 +464,21 @@ else:
return _wstring_at(ptr, size) return _wstring_at(ptr, size)
if _os.name == "nt": # COM stuff if _os.name in ("nt", "ce"): # COM stuff
def DllGetClassObject(rclsid, riid, ppv): def DllGetClassObject(rclsid, riid, ppv):
# First ask ctypes.com.server than comtypes.server for the
# class object.
# trick py2exe by doing dynamic imports
result = -2147221231 # CLASS_E_CLASSNOTAVAILABLE
try: try:
ctcom = __import__("ctypes.com.server", globals(), locals(), ['*']) ccom = __import__("comtypes.server.inprocserver", globals(), locals(), ['*'])
except ImportError: except ImportError:
pass return -2147221231 # CLASS_E_CLASSNOTAVAILABLE
else: else:
result = ctcom.DllGetClassObject(rclsid, riid, ppv) return ccom.DllGetClassObject(rclsid, riid, ppv)
if result == -2147221231: # CLASS_E_CLASSNOTAVAILABLE
try:
ccom = __import__("comtypes.server", globals(), locals(), ['*'])
except ImportError:
pass
else:
result = ccom.DllGetClassObject(rclsid, riid, ppv)
return result
def DllCanUnloadNow(): def DllCanUnloadNow():
# First ask ctypes.com.server than comtypes.server if we can unload or not.
# trick py2exe by doing dynamic imports
result = 0 # S_OK
try:
ctcom = __import__("ctypes.com.server", globals(), locals(), ['*'])
except ImportError:
pass
else:
result = ctcom.DllCanUnloadNow()
if result != 0: # != S_OK
return result
try: try:
ccom = __import__("comtypes.server", globals(), locals(), ['*']) ccom = __import__("comtypes.server.inprocserver", globals(), locals(), ['*'])
except ImportError: except ImportError:
return result return 0 # S_OK
try: return ccom.DllCanUnloadNow()
return ccom.DllCanUnloadNow()
except AttributeError:
pass
return result
from ctypes._endian import BigEndianStructure, LittleEndianStructure from ctypes._endian import BigEndianStructure, LittleEndianStructure
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment