[pywin32-checkins] /hgroot/pywin32/pywin32: 5 new changesets
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: <pyw...@li...> - 2016-01-10 07:46:09
|
changeset f493b5fa45a8 in /hgroot/pywin32/pywin32 details: http://pywin32.hg.sourceforge.net/hgweb/pywin32/pywin32/hgroot/pywin32/pywin32?cmd=changeset;node=f493b5fa45a8 summary: fix tp_compare/tp_as_async slot on py3k changeset 0c31e8c1039c in /hgroot/pywin32/pywin32 details: http://pywin32.hg.sourceforge.net/hgweb/pywin32/pywin32/hgroot/pywin32/pywin32?cmd=changeset;node=0c31e8c1039c summary: get things building with vs2015 and other changes introduced in 3.5 changeset aeed1c9d4bf9 in /hgroot/pywin32/pywin32 details: http://pywin32.hg.sourceforge.net/hgweb/pywin32/pywin32/hgroot/pywin32/pywin32?cmd=changeset;node=aeed1c9d4bf9 summary: Fix that allows a property to be fetched on COM objects to work in more cases changeset 9eaa93a263fa in /hgroot/pywin32/pywin32 details: http://pywin32.hg.sourceforge.net/hgweb/pywin32/pywin32/hgroot/pywin32/pywin32?cmd=changeset;node=9eaa93a263fa summary: get pythonwin building with vs2015 changeset 06de33e3604d in /hgroot/pywin32/pywin32 details: http://pywin32.hg.sourceforge.net/hgweb/pywin32/pywin32/hgroot/pywin32/pywin32?cmd=changeset;node=06de33e3604d summary: more build tweaks (use py.exe in more places; build 3.6) diffstat: AutoDuck/common_top.mak | 2 +- CHANGES.txt | 3 +++ Pythonwin/stdafx.h | 4 ++++ Pythonwin/stdafxdde.h | 2 ++ Pythonwin/stdafxole.h | 2 ++ Pythonwin/stdafxpw.h | 1 + build_all.bat | 4 ++++ com/win32com/client/dynamic.py | 11 ++++++++--- make_all.bat | 11 +++++++---- setup.py | 25 ++++++++++++++++++++----- win32/src/win32wnet/PyNetresource.cpp | 4 ++++ 11 files changed, 56 insertions(+), 13 deletions(-) diffs (213 lines): diff -r 835a071ad7bf -r 06de33e3604d AutoDuck/common_top.mak --- a/AutoDuck/common_top.mak Mon Aug 24 18:56:44 2015 +1000 +++ b/AutoDuck/common_top.mak Sun Jan 10 12:34:56 2016 +1100 @@ -10,5 +10,5 @@ ADTAB = 8 HC = hcw /a /c /e HHC = hhc -PYTHON = python +PYTHON = py -2.7 diff -r 835a071ad7bf -r 06de33e3604d CHANGES.txt --- a/CHANGES.txt Mon Aug 24 18:56:44 2015 +1000 +++ b/CHANGES.txt Sun Jan 10 12:34:56 2016 +1100 @@ -8,6 +8,9 @@ * win32com - sys.argv[0] may be set to a bytes object instead of a string on Python 3 when implementing an in-process COM object. +* Fix that allows a property to be fetched on COM objects to work in more cases + (Fredrik Orderud via patch #155) + Since build 218: ---------------- * win32com.mapi diff -r 835a071ad7bf -r 06de33e3604d Pythonwin/stdafx.h --- a/Pythonwin/stdafx.h Mon Aug 24 18:56:44 2015 +1000 +++ b/Pythonwin/stdafx.h Sun Jan 10 12:34:56 2016 +1100 @@ -11,6 +11,10 @@ #define WINVER 0x0600 #endif +#define _USING_V110_SDK71_ +// MFC support for mbcs is going away, but no need for us to constantly be told... +#define NO_WARN_MBCS_MFC_DEPRECATION + #include <afxwin.h> // MFC core and standard components #if (_MFC_VER < 0x0600) diff -r 835a071ad7bf -r 06de33e3604d Pythonwin/stdafxdde.h --- a/Pythonwin/stdafxdde.h Mon Aug 24 18:56:44 2015 +1000 +++ b/Pythonwin/stdafxdde.h Sun Jan 10 12:34:56 2016 +1100 @@ -1,3 +1,5 @@ +#define _USING_V110_SDK71_ + #include <afxwin.h> // MFC core and standard components #include <afxext.h> // MFC extensions #include <afxmt.h> // Thread safety! diff -r 835a071ad7bf -r 06de33e3604d Pythonwin/stdafxole.h --- a/Pythonwin/stdafxole.h Mon Aug 24 18:56:44 2015 +1000 +++ b/Pythonwin/stdafxole.h Sun Jan 10 12:34:56 2016 +1100 @@ -5,6 +5,8 @@ #define WIN32_LEAN_AND_MEAN +#define _USING_V110_SDK71_ + #include <afxwin.h> // MFC core and standard components #include <afxext.h> // MFC extensions #include <afxcmn.h> // common controls. diff -r 835a071ad7bf -r 06de33e3604d Pythonwin/stdafxpw.h --- a/Pythonwin/stdafxpw.h Mon Aug 24 18:56:44 2015 +1000 +++ b/Pythonwin/stdafxpw.h Sun Jan 10 12:34:56 2016 +1100 @@ -4,6 +4,7 @@ // #define HIER_LIST #define WIN32_LEAN_AND_MEAN +#define _USING_V110_SDK71_ #include <afxwin.h> // MFC core and standard components #include <afxext.h> // MFC extensions diff -r 835a071ad7bf -r 06de33e3604d build_all.bat --- a/build_all.bat Mon Aug 24 18:56:44 2015 +1000 +++ b/build_all.bat Sun Jan 10 12:34:56 2016 +1100 @@ -34,6 +34,10 @@ @if errorlevel 1 goto failed py -3.5 setup3.py -q build @if errorlevel 1 goto failed +py -3.6-32 setup3.py -q build +@if errorlevel 1 goto failed +py -3.6 setup3.py -q build +@if errorlevel 1 goto failed goto xit :failed diff -r 835a071ad7bf -r 06de33e3604d com/win32com/client/dynamic.py --- a/com/win32com/client/dynamic.py Mon Aug 24 18:56:44 2015 +1000 +++ b/com/win32com/client/dynamic.py Sun Jan 10 12:34:56 2016 +1100 @@ -113,9 +113,14 @@ userName = str(userName) return (_GetGoodDispatch(IDispatch, clsctx), userName) -def _GetDescInvokeType(entry, default_invoke_type): - if not entry or not entry.desc: return default_invoke_type - return entry.desc[4] +def _GetDescInvokeType(entry, invoke_type): + # determine the wFlags argument passed as input to IDispatch::Invoke + if not entry or not entry.desc: return invoke_type + varkind = entry.desc[4] # from VARDESC struct returned by ITypeComp::Bind + if varkind == pythoncom.VAR_DISPATCH and invoke_type == pythoncom.INVOKE_PROPERTYGET: + return pythoncom.INVOKE_FUNC | invoke_type # DISPATCH_METHOD & DISPATCH_PROPERTYGET can be combined in IDispatch::Invoke + else: + return invoke_type def Dispatch(IDispatch, userName = None, createClass = None, typeinfo = None, UnicodeToString=None, clsctx = pythoncom.CLSCTX_SERVER): assert UnicodeToString is None, "this is deprecated and will go away" diff -r 835a071ad7bf -r 06de33e3604d make_all.bat --- a/make_all.bat Mon Aug 24 18:56:44 2015 +1000 +++ b/make_all.bat Sun Jan 10 12:34:56 2016 +1100 @@ -2,12 +2,12 @@ @if "%1"=="already_built" goto already_built if exist build\. rm -rf build if exist build\. goto couldnt_rm +:quick +call build_all.bat cd autoduck call make.bat @if errorlevel 1 goto failed cd .. -:quick -call build_all.bat :already_built rem Now the binaries. @@ -37,8 +37,11 @@ py -3.4-32 setup3.py -q bdist_wininst --target-version=3.4 --skip-build py -3.4-32 setup3.py -q bdist_wininst --target-version=3.4 --skip-build --plat-name=win-amd64 -py -3.5-32 setup3.py -q bdist_wininst --target-version=3.5 --skip-build -py -3.5-32 setup3.py -q bdist_wininst --target-version=3.5 --skip-build --plat-name=win-amd64 +py -3.5-32 setup3.py -q bdist_wininst --skip-build +py -3.5 setup3.py -q bdist_wininst --skip-build + +py -3.6-32 setup3.py -q bdist_wininst --skip-build +py -3.6 setup3.py -q bdist_wininst --skip-build rem And nuke the dirs one more time :) if exist build/bdist.win32/. rm -rf build/bdist.win32 diff -r 835a071ad7bf -r 06de33e3604d setup.py --- a/setup.py Mon Aug 24 18:56:44 2015 +1000 +++ b/setup.py Sun Jan 10 12:34:56 2016 +1100 @@ -107,11 +107,18 @@ from distutils.dep_util import newer_group, newer from distutils import dir_util, file_util -from distutils.sysconfig import get_python_lib +from distutils.sysconfig import get_python_lib, get_config_vars from distutils.filelist import FileList from distutils.errors import DistutilsExecError import distutils.util +# prevent the new in 3.5 suffix of "cpXX-win32" from being added. +# (adjusting both .cp35-win_amd64.pyd and .cp35-win32.pyd to .pyd) +try: + get_config_vars()["EXT_SUFFIX"] = re.sub("\\.cp\d\d-win((32)|(_amd64))", "", get_config_vars()["EXT_SUFFIX"]) +except KeyError: + pass # no EXT_SUFFIX in this build. + build_id_patch = build_id if not "." in build_id_patch: build_id_patch = build_id_patch + ".0" @@ -803,8 +810,10 @@ # Exclude exchange 32-bit utility libraries from 64-bit # builds. Note that the exchange module now builds, but only # includes interfaces for 64-bit builds. - if self.plat_name == 'win-amd64' and ext.name in ['exchdapi']: + if self.plat_name == 'win-amd64' and ext.name in ['exchdapi', 'exchange']: return "No 64-bit library for utility functions available." + if get_build_version() >=14 and ext.name in ['exchdapi', 'exchange']: + return "Haven't worked out how to make exchange modules build on vs2015" include_dirs = self.compiler.include_dirs + \ os.environ.get("INCLUDE", "").split(os.pathsep) if self.windows_h_version is None: @@ -1037,17 +1046,23 @@ raise RuntimeError("Can't find %r" % (src,)) self.copy_file(src, target_dir) else: - # vs2008 or vs2010 + plat_dir_64 = "x64" + # 2.6, 2.7, 3.0, 3.1 and 3.2 all use(d) vs2008 (compiler version 1500) if sys.hexversion < 0x3030000: product_key = r"SOFTWARE\Microsoft\VisualStudio\9.0\Setup\VC" plat_dir_64 = "amd64" mfc_dir = "Microsoft.VC90.MFC" mfc_files = "mfc90.dll mfc90u.dll mfcm90.dll mfcm90u.dll Microsoft.VC90.MFC.manifest".split() - else: + # 3.3 and 3.4 use(d) vs2010 (compiler version 1600, crt=10) + elif sys.hexversion < 0x3050000: product_key = r"SOFTWARE\Microsoft\VisualStudio\10.0\Setup\VC" - plat_dir_64 = "x64" mfc_dir = "Microsoft.VC100.MFC" mfc_files = ["mfc100u.dll", "mfcm100u.dll"] + # 3.5 and later on vs2015 (compiler version 1900, crt=14) + else: + product_key = r"SOFTWARE\Microsoft\VisualStudio\14.0\Setup\VC" + mfc_dir = "Microsoft.VC140.MFC" + mfc_files = ["mfc140u.dll", "mfcm140u.dll"] # On a 64bit host, the value we are looking for is actually in # SysWow64Node - but that is only available on xp and later. diff -r 835a071ad7bf -r 06de33e3604d win32/src/win32wnet/PyNetresource.cpp --- a/win32/src/win32wnet/PyNetresource.cpp Mon Aug 24 18:56:44 2015 +1000 +++ b/win32/src/win32wnet/PyNetresource.cpp Sun Jan 10 12:34:56 2016 +1100 @@ -87,7 +87,11 @@ 0, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ +#if (PY_VERSION_HEX >= 0x03000000) + 0, /* tp_as_async */ +#else PyNETRESOURCE::compareFunc, /* tp_compare */ +#endif 0, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ |