Advertisement
Guest User

pywin32 patch for PyPy

a guest
Sep 17th, 2012
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 256.83 KB | None | 0 0
  1. diff -r 977f4f21ae8b -r 2a1da51e8152 Pythonwin/win32notify.cpp
  2. --- a/Pythonwin/win32notify.cpp Mon Sep 10 17:23:43 2012 -0400
  3. +++ b/Pythonwin/win32notify.cpp Mon Sep 17 20:02:58 2012 +0200
  4. @@ -368,7 +368,7 @@
  5.         PyErr_Warn(PyExc_Warning, "Exception in OnNotify() handler");
  6.     else if (result==Py_None)   // allow for None "dont pass on", else result to windows
  7.         bPassOn = TRUE;
  8. -   else if PyTuple_Check(result){
  9. +   else if (PyTuple_Check(result)) {
  10.         // Result should be a tuple of the LRESULT and a tuple to fill the appropriate
  11.         //  struct for this particular message
  12.         if (PyArg_ParseTuple(result, "O&O", PyWinLong_AsVoidPtr, &rc, &obOther))
  13. diff -r 977f4f21ae8b -r 2a1da51e8152 Pythonwin/win32uimodule.cpp
  14. --- a/Pythonwin/win32uimodule.cpp   Mon Sep 10 17:23:43 2012 -0400
  15. +++ b/Pythonwin/win32uimodule.cpp   Mon Sep 17 20:02:58 2012 +0200
  16. @@ -246,8 +246,7 @@
  17.     }
  18.    
  19.     ui_base_class *pNew = (*makeType->ctor)();
  20. -   pNew->ob_type = makeType;
  21. -   _Py_NewReference(pNew);
  22. +   PyObject_Init(pNew, makeType);
  23.  #ifdef _DEBUG  // this is really only for internal errors, and they should be ironed out!
  24.     if (!pNew->is_uiobject(makeType))
  25.         RETURN_ERR("Internal error - created type isnt what was requested!");
  26. diff -r 977f4f21ae8b -r 2a1da51e8152 Pythonwin/win32util.cpp
  27. --- a/Pythonwin/win32util.cpp   Mon Sep 10 17:23:43 2012 -0400
  28. +++ b/Pythonwin/win32util.cpp   Mon Sep 17 20:02:58 2012 +0200
  29. @@ -50,14 +50,12 @@
  30.             m_pRect = new CRect(*pRect);
  31.         else
  32.             m_pRect = pRect;
  33. -       ob_type = &type;
  34. -       _Py_NewReference(this);
  35. +       PyObject_Init(this, &type);
  36.     }
  37.     PyCRect(const RECT &rect) {
  38.         m_owned = true;
  39.         m_pRect = new CRect(rect);
  40. -       ob_type = &type;
  41. -       _Py_NewReference(this);
  42. +       PyObject_Init(this, &type);
  43.     }
  44.     ~PyCRect() {if (m_owned) delete m_pRect;}
  45.     virtual PyObject *getattro(PyObject *obname);
  46. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/makegw/makegw.py
  47. --- a/com/win32com/makegw/makegw.py Mon Sep 10 17:23:43 2012 -0400
  48. +++ b/com/win32com/makegw/makegw.py Mon Sep 17 20:02:58 2012 +0200
  49. @@ -140,7 +140,7 @@
  50.  '''\
  51.  
  52.  protected:
  53. -   Py%s(IUnknown *pdisp);
  54. +   Py%s(IUnknown *pdisp, PyTypeObject *ptype);
  55.     ~Py%s();
  56.  };
  57.  ''' % (interface.name, interface.name))
  58. @@ -153,10 +153,9 @@
  59.  //
  60.  // Interface Implementation
  61.  
  62. -Py%(name)s::Py%(name)s(IUnknown *pdisp):
  63. -   Py%(base)s(pdisp)
  64. +Py%(name)s::Py%(name)s(IUnknown *pdisp, PyTypeObject *ptype):
  65. +   Py%(base)s(pdisp, ptype)
  66.  {
  67. -   ob_type = &type;
  68.  }
  69.  
  70.  Py%(name)s::~Py%(name)s()
  71. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/makegw/makegwenum.py
  72. --- a/com/win32com/makegw/makegwenum.py Mon Sep 10 17:23:43 2012 -0400
  73. +++ b/com/win32com/makegw/makegwenum.py Mon Sep 17 20:02:58 2012 +0200
  74. @@ -35,10 +35,9 @@
  75.  //
  76.  // Interface Implementation
  77.  
  78. -PyIEnum%(enumtype)s::PyIEnum%(enumtype)s(IUnknown *pdisp):
  79. -   PyIUnknown(pdisp)
  80. +PyIEnum%(enumtype)s::PyIEnum%(enumtype)s(IUnknown *pdisp, PyTypeObject *ptype):
  81. +   PyIUnknown(pdisp, ptype)
  82.  {
  83. -   ob_type = &type;
  84.  }
  85.  
  86.  PyIEnum%(enumtype)s::~PyIEnum%(enumtype)s()
  87. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/MiscTypes.cpp
  88. --- a/com/win32com/src/MiscTypes.cpp    Mon Sep 10 17:23:43 2012 -0400
  89. +++ b/com/win32com/src/MiscTypes.cpp    Mon Sep 17 20:02:58 2012 +0200
  90. @@ -199,8 +199,7 @@
  91.  // class PyOleEmpty
  92.  PyOleEmpty::PyOleEmpty()
  93.  {
  94. -   ob_type = &PyOleEmptyType;
  95. -   _Py_NewReference(this);
  96. +   PyObject_Init(this, &PyOleEmptyType);
  97.  }
  98.  
  99.  static void empty_dealloc(PyOleEmpty *o)
  100. @@ -229,8 +228,7 @@
  101.  // class PyOleMissing
  102.  PyOleMissing::PyOleMissing()
  103.  {
  104. -   ob_type = &PyOleMissingType;
  105. -   _Py_NewReference(this);
  106. +   PyObject_Init(this, &PyOleMissingType);
  107.  }
  108.  
  109.  static void missing_dealloc(PyOleMissing *o)
  110. @@ -258,8 +256,7 @@
  111.  // class PyOleArgNotFound
  112.  PyOleArgNotFound::PyOleArgNotFound()
  113.  {
  114. -   ob_type = &PyOleArgNotFoundType;
  115. -   _Py_NewReference(this);
  116. +   PyObject_Init(this, &PyOleArgNotFoundType);
  117.  }
  118.  
  119.  static void notfound_dealloc(PyOleArgNotFound *o)
  120. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/PyIBase.cpp
  121. --- a/com/win32com/src/PyIBase.cpp  Mon Sep 10 17:23:43 2012 -0400
  122. +++ b/com/win32com/src/PyIBase.cpp  Mon Sep 17 20:02:58 2012 +0200
  123. @@ -1,9 +1,9 @@
  124.  #include "stdafx.h"
  125.  #include "PythonCOM.h"
  126.  
  127. -PyIBase::PyIBase()
  128. +PyIBase::PyIBase(PyTypeObject *ptype)
  129.  {
  130. -   _Py_NewReference(this);
  131. +   PyObject_Init(this, ptype);
  132.  }
  133.  PyIBase::~PyIBase()
  134.  {
  135. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/PyIClassFactory.cpp
  136. --- a/com/win32com/src/PyIClassFactory.cpp  Mon Sep 10 17:23:43 2012 -0400
  137. +++ b/com/win32com/src/PyIClassFactory.cpp  Mon Sep 17 20:02:58 2012 +0200
  138. @@ -6,10 +6,9 @@
  139.  #include "PythonCOMServer.h" // For the DLL Ref functions.
  140.  
  141.  
  142. -PyIClassFactory::PyIClassFactory(IUnknown *pDisp) :
  143. -   PyIUnknown(pDisp)
  144. +PyIClassFactory::PyIClassFactory(IUnknown *pDisp, PyTypeObject *pType) :
  145. +   PyIUnknown(pDisp, pType)
  146.  {
  147. -   ob_type = &type;
  148.     // Class Factory interfaces do not count towards DLL Ref counts,
  149.     // but the PyIUnknown ctor Added a reference.
  150.     PyCom_DLLReleaseRef();
  151. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/PyIDispatch.cpp
  152. --- a/com/win32com/src/PyIDispatch.cpp  Mon Sep 10 17:23:43 2012 -0400
  153. +++ b/com/win32com/src/PyIDispatch.cpp  Mon Sep 17 20:02:58 2012 +0200
  154. @@ -29,10 +29,9 @@
  155.     return FALSE;
  156.  }
  157.  
  158. -PyIDispatch::PyIDispatch(IUnknown *pDisp) :
  159. -   PyIUnknown(pDisp)
  160. +PyIDispatch::PyIDispatch(IUnknown *pDisp, PyTypeObject *pType) :
  161. +   PyIUnknown(pDisp, pType)
  162.  {
  163. -   ob_type = &type;
  164.  }
  165.  
  166.  PyIDispatch::~PyIDispatch()
  167. @@ -556,10 +555,9 @@
  168.  //
  169.  // PyIDispatchEx
  170.  
  171. -PyIDispatchEx::PyIDispatchEx(IUnknown *pDisp) :
  172. -   PyIDispatch(pDisp)
  173. +PyIDispatchEx::PyIDispatchEx(IUnknown *pDisp, PyTypeObject *pType) :
  174. +   PyIDispatch(pDisp, pType)
  175.  {
  176. -   ob_type = &type;
  177.  }
  178.  
  179.  PyIDispatchEx::~PyIDispatchEx()
  180. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/PyIUnknown.cpp
  181. --- a/com/win32com/src/PyIUnknown.cpp   Mon Sep 10 17:23:43 2012 -0400
  182. +++ b/com/win32com/src/PyIUnknown.cpp   Mon Sep 17 20:02:58 2012 +0200
  183. @@ -14,9 +14,9 @@
  184.     return cUnknowns;
  185.  }
  186.  
  187. -PyIUnknown::PyIUnknown(IUnknown *punk)
  188. +PyIUnknown::PyIUnknown(IUnknown *punk, PyTypeObject *ptype):
  189. +   PyIBase(ptype)
  190.  {
  191. -   ob_type = &type;
  192.     m_obj = punk;
  193.     // refcnt of object managed by caller.
  194.     InterlockedIncrement(&cUnknowns);
  195. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/PyRecord.cpp
  196. --- a/com/win32com/src/PyRecord.cpp Mon Sep 10 17:23:43 2012 -0400
  197. +++ b/com/win32com/src/PyRecord.cpp Mon Sep 17 20:02:58 2012 +0200
  198. @@ -193,8 +193,7 @@
  199.  
  200.  PyRecord::PyRecord(IRecordInfo *ri, PVOID data, PyRecordBuffer *owner)
  201.  {
  202. -   ob_type = &PyRecord::Type;
  203. -   _Py_NewReference(this);
  204. +   PyObject_Init(this, &PyRecord::Type);
  205.     ri->AddRef();
  206.     pri = ri;
  207.     pdata = data;
  208. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyFUNCDESC.cpp
  209. --- a/com/win32com/src/extensions/PyFUNCDESC.cpp    Mon Sep 10 17:23:43 2012 -0400
  210. +++ b/com/win32com/src/extensions/PyFUNCDESC.cpp    Mon Sep 17 20:02:58 2012 +0200
  211. @@ -179,8 +179,7 @@
  212.  
  213.  PyFUNCDESC::PyFUNCDESC()
  214.  {
  215. -   ob_type = &PyFUNCDESC::Type;
  216. -   _Py_NewReference(this);
  217. +   PyObject_Init(this, &PyFUNCDESC::Type);
  218.  
  219.     memid = 0;
  220.     scodeArray = NULL;
  221. @@ -192,8 +191,7 @@
  222.  
  223.  PyFUNCDESC::PyFUNCDESC(const FUNCDESC *desc)
  224.  {
  225. -   ob_type = &PyFUNCDESC::Type;
  226. -   _Py_NewReference(this);
  227. +   PyObject_Init(this, &PyFUNCDESC::Type);
  228.  
  229.     scodeArray = MakeSCODEArray(desc->lprgscode, desc->cScodes);
  230.     args = PyObject_FromELEMDESCArray(desc->lprgelemdescParam, desc->cParams);
  231. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIBindCtx.cpp
  232. --- a/com/win32com/src/extensions/PyIBindCtx.cpp    Mon Sep 10 17:23:43 2012 -0400
  233. +++ b/com/win32com/src/extensions/PyIBindCtx.cpp    Mon Sep 17 20:02:58 2012 +0200
  234. @@ -39,10 +39,9 @@
  235.  }
  236.  
  237.  
  238. -PyIBindCtx::PyIBindCtx(IUnknown *pDisp) :
  239. -   PyIUnknown(pDisp)
  240. +PyIBindCtx::PyIBindCtx(IUnknown *pDisp, PyTypeObject *pType) :
  241. +   PyIUnknown(pDisp, pType)
  242.  {
  243. -   ob_type = &type;
  244.  }
  245.  
  246.  PyIBindCtx::~PyIBindCtx()
  247. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyICatInformation.cpp
  248. --- a/com/win32com/src/extensions/PyICatInformation.cpp Mon Sep 10 17:23:43 2012 -0400
  249. +++ b/com/win32com/src/extensions/PyICatInformation.cpp Mon Sep 17 20:02:58 2012 +0200
  250. @@ -9,10 +9,9 @@
  251.  #include <comcat.h>
  252.  #include "PyICatInformation.h"
  253.  
  254. -PyICatInformation::PyICatInformation(IUnknown *pDisp) :
  255. -   PyIUnknown(pDisp)
  256. +PyICatInformation::PyICatInformation(IUnknown *pDisp, PyTypeObject *pType) :
  257. +   PyIUnknown(pDisp, pType)
  258.  {
  259. -   ob_type = &type;
  260.  }
  261.  
  262.  PyICatInformation::~PyICatInformation()
  263. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyICatRegister.cpp
  264. --- a/com/win32com/src/extensions/PyICatRegister.cpp    Mon Sep 10 17:23:43 2012 -0400
  265. +++ b/com/win32com/src/extensions/PyICatRegister.cpp    Mon Sep 17 20:02:58 2012 +0200
  266. @@ -48,10 +48,9 @@
  267.  {
  268.     delete [] pCatIds;
  269.  }
  270. -PyICatRegister::PyICatRegister(IUnknown *pdisp):
  271. -   PyIUnknown(pdisp)
  272. +PyICatRegister::PyICatRegister(IUnknown *pdisp, PyTypeObject *ptype):
  273. +   PyIUnknown(pdisp, ptype)
  274.  {
  275. -   ob_type = &type;
  276.  }
  277.  
  278.  PyICatRegister::~PyICatRegister()
  279. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIConnectionPoint.cpp
  280. --- a/com/win32com/src/extensions/PyIConnectionPoint.cpp    Mon Sep 10 17:23:43 2012 -0400
  281. +++ b/com/win32com/src/extensions/PyIConnectionPoint.cpp    Mon Sep 17 20:02:58 2012 +0200
  282. @@ -2,10 +2,9 @@
  283.  #include "PythonCOM.h"
  284.  
  285.  // @doc
  286. -PyIConnectionPoint::PyIConnectionPoint(IUnknown *pdisp):
  287. -   PyIUnknown(pdisp)
  288. +PyIConnectionPoint::PyIConnectionPoint(IUnknown *pdisp, PyTypeObject *ptype):
  289. +   PyIUnknown(pdisp, ptype)
  290.  {
  291. -   ob_type = &type;
  292.  }
  293.  
  294.  PyIConnectionPoint::~PyIConnectionPoint()
  295. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIConnectionPointContainer.cpp
  296. --- a/com/win32com/src/extensions/PyIConnectionPointContainer.cpp   Mon Sep 10 17:23:43 2012 -0400
  297. +++ b/com/win32com/src/extensions/PyIConnectionPointContainer.cpp   Mon Sep 17 20:02:58 2012 +0200
  298. @@ -2,10 +2,9 @@
  299.  #include "PythonCOM.h"
  300.  // @doc
  301.  
  302. -PyIConnectionPointContainer::PyIConnectionPointContainer(IUnknown *pdisp):
  303. -   PyIUnknown(pdisp)
  304. +PyIConnectionPointContainer::PyIConnectionPointContainer(IUnknown *pdisp, PyTypeObject *ptype):
  305. +   PyIUnknown(pdisp, ptype)
  306.  {
  307. -   ob_type = &type;
  308.  }
  309.  
  310.  PyIConnectionPointContainer::~PyIConnectionPointContainer()
  311. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyICreateTypeInfo.cpp
  312. --- a/com/win32com/src/extensions/PyICreateTypeInfo.cpp Mon Sep 10 17:23:43 2012 -0400
  313. +++ b/com/win32com/src/extensions/PyICreateTypeInfo.cpp Mon Sep 17 20:02:58 2012 +0200
  314. @@ -12,10 +12,9 @@
  315.  //
  316.  // Interface Implementation
  317.  
  318. -PyICreateTypeInfo::PyICreateTypeInfo(IUnknown *pdisp):
  319. -   PyIUnknown(pdisp)
  320. +PyICreateTypeInfo::PyICreateTypeInfo(IUnknown *pdisp, PyTypeObject *ptype):
  321. +   PyIUnknown(pdisp, ptype)
  322.  {
  323. -   ob_type = &type;
  324.  }
  325.  
  326.  PyICreateTypeInfo::~PyICreateTypeInfo()
  327. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyICreateTypeLib.cpp
  328. --- a/com/win32com/src/extensions/PyICreateTypeLib.cpp  Mon Sep 10 17:23:43 2012 -0400
  329. +++ b/com/win32com/src/extensions/PyICreateTypeLib.cpp  Mon Sep 17 20:02:58 2012 +0200
  330. @@ -11,10 +11,9 @@
  331.  //
  332.  // Interface Implementation
  333.  
  334. -PyICreateTypeLib::PyICreateTypeLib(IUnknown *pdisp):
  335. -   PyIUnknown(pdisp)
  336. +PyICreateTypeLib::PyICreateTypeLib(IUnknown *pdisp, PyTypeObject *ptype):
  337. +   PyIUnknown(pdisp, ptype)
  338.  {
  339. -   ob_type = &type;
  340.  }
  341.  
  342.  PyICreateTypeLib::~PyICreateTypeLib()
  343. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyICreateTypeLib2.cpp
  344. --- a/com/win32com/src/extensions/PyICreateTypeLib2.cpp Mon Sep 10 17:23:43 2012 -0400
  345. +++ b/com/win32com/src/extensions/PyICreateTypeLib2.cpp Mon Sep 17 20:02:58 2012 +0200
  346. @@ -11,10 +11,9 @@
  347.  //
  348.  // Interface Implementation
  349.  
  350. -PyICreateTypeLib2::PyICreateTypeLib2(IUnknown *pdisp):
  351. -   PyIUnknown(pdisp)
  352. +PyICreateTypeLib2::PyICreateTypeLib2(IUnknown *pdisp, PyTypeObject *ptype):
  353. +   PyIUnknown(pdisp, ptype)
  354.  {
  355. -   ob_type = &type;
  356.  }
  357.  
  358.  PyICreateTypeLib2::~PyICreateTypeLib2()
  359. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIDataObject.cpp
  360. --- a/com/win32com/src/extensions/PyIDataObject.cpp Mon Sep 10 17:23:43 2012 -0400
  361. +++ b/com/win32com/src/extensions/PyIDataObject.cpp Mon Sep 17 20:02:58 2012 +0200
  362. @@ -56,10 +56,9 @@
  363.  //
  364.  // Interface Implementation
  365.  
  366. -PyIDataObject::PyIDataObject(IUnknown *pdisp):
  367. -   PyIUnknown(pdisp)
  368. +PyIDataObject::PyIDataObject(IUnknown *pdisp, PyTypeObject *ptype):
  369. +   PyIUnknown(pdisp, ptype)
  370.  {
  371. -   ob_type = &type;
  372.  }
  373.  
  374.  PyIDataObject::~PyIDataObject()
  375. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIDropSource.cpp
  376. --- a/com/win32com/src/extensions/PyIDropSource.cpp Mon Sep 10 17:23:43 2012 -0400
  377. +++ b/com/win32com/src/extensions/PyIDropSource.cpp Mon Sep 17 20:02:58 2012 +0200
  378. @@ -11,10 +11,9 @@
  379.  //
  380.  // Interface Implementation
  381.  
  382. -PyIDropSource::PyIDropSource(IUnknown *pdisp):
  383. -   PyIUnknown(pdisp)
  384. +PyIDropSource::PyIDropSource(IUnknown *pdisp, PyTypeObject *ptype):
  385. +   PyIUnknown(pdisp, ptype)
  386.  {
  387. -   ob_type = &type;
  388.  }
  389.  
  390.  PyIDropSource::~PyIDropSource()
  391. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIDropTarget.cpp
  392. --- a/com/win32com/src/extensions/PyIDropTarget.cpp Mon Sep 10 17:23:43 2012 -0400
  393. +++ b/com/win32com/src/extensions/PyIDropTarget.cpp Mon Sep 17 20:02:58 2012 +0200
  394. @@ -21,10 +21,9 @@
  395.  //
  396.  // Interface Implementation
  397.  
  398. -PyIDropTarget::PyIDropTarget(IUnknown *pdisp):
  399. -   PyIUnknown(pdisp)
  400. +PyIDropTarget::PyIDropTarget(IUnknown *pdisp, PyTypeObject *ptype):
  401. +   PyIUnknown(pdisp, ptype)
  402.  {
  403. -   ob_type = &type;
  404.  }
  405.  
  406.  PyIDropTarget::~PyIDropTarget()
  407. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIEnumCATEGORYINFO.cpp
  408. --- a/com/win32com/src/extensions/PyIEnumCATEGORYINFO.cpp   Mon Sep 10 17:23:43 2012 -0400
  409. +++ b/com/win32com/src/extensions/PyIEnumCATEGORYINFO.cpp   Mon Sep 17 20:02:58 2012 +0200
  410. @@ -9,10 +9,9 @@
  411.  #include <comcat.h>
  412.  #include "PyIEnumGUID.h"
  413.  
  414. -PyIEnumCATEGORYINFO::PyIEnumCATEGORYINFO(IUnknown *pDisp) :
  415. -   PyIUnknown(pDisp)
  416. +PyIEnumCATEGORYINFO::PyIEnumCATEGORYINFO(IUnknown *pDisp, PyTypeObject *pType) :
  417. +   PyIUnknown(pDisp, pType)
  418.  {
  419. -   ob_type = &type;
  420.  }
  421.  
  422.  PyIEnumCATEGORYINFO::~PyIEnumCATEGORYINFO()
  423. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIEnumConnectionPoints.cpp
  424. --- a/com/win32com/src/extensions/PyIEnumConnectionPoints.cpp   Mon Sep 10 17:23:43 2012 -0400
  425. +++ b/com/win32com/src/extensions/PyIEnumConnectionPoints.cpp   Mon Sep 17 20:02:58 2012 +0200
  426. @@ -12,10 +12,9 @@
  427.  //
  428.  // Interface Implementation
  429.  
  430. -PyIEnumConnectionPoints::PyIEnumConnectionPoints(IUnknown *pdisp):
  431. -   PyIUnknown(pdisp)
  432. +PyIEnumConnectionPoints::PyIEnumConnectionPoints(IUnknown *pdisp, PyTypeObject *ptype):
  433. +   PyIUnknown(pdisp, ptype)
  434.  {
  435. -   ob_type = &type;
  436.  }
  437.  
  438.  PyIEnumConnectionPoints::~PyIEnumConnectionPoints()
  439. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIEnumConnections.cpp
  440. --- a/com/win32com/src/extensions/PyIEnumConnections.cpp    Mon Sep 10 17:23:43 2012 -0400
  441. +++ b/com/win32com/src/extensions/PyIEnumConnections.cpp    Mon Sep 17 20:02:58 2012 +0200
  442. @@ -12,10 +12,9 @@
  443.  //
  444.  // Interface Implementation
  445.  
  446. -PyIEnumConnections::PyIEnumConnections(IUnknown *pdisp):
  447. -   PyIUnknown(pdisp)
  448. +PyIEnumConnections::PyIEnumConnections(IUnknown *pdisp, PyTypeObject *ptype):
  449. +   PyIUnknown(pdisp, ptype)
  450.  {
  451. -   ob_type = &type;
  452.  }
  453.  
  454.  PyIEnumConnections::~PyIEnumConnections()
  455. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIEnumFORMATETC.cpp
  456. --- a/com/win32com/src/extensions/PyIEnumFORMATETC.cpp  Mon Sep 10 17:23:43 2012 -0400
  457. +++ b/com/win32com/src/extensions/PyIEnumFORMATETC.cpp  Mon Sep 17 20:02:58 2012 +0200
  458. @@ -14,10 +14,9 @@
  459.  //
  460.  // Interface Implementation
  461.  
  462. -PyIEnumFORMATETC::PyIEnumFORMATETC(IUnknown *pdisp):
  463. -   PyIUnknown(pdisp)
  464. +PyIEnumFORMATETC::PyIEnumFORMATETC(IUnknown *pdisp, PyTypeObject *ptype):
  465. +   PyIUnknown(pdisp, ptype)
  466.  {
  467. -   ob_type = &type;
  468.  }
  469.  
  470.  PyIEnumFORMATETC::~PyIEnumFORMATETC()
  471. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIEnumGUID.cpp
  472. --- a/com/win32com/src/extensions/PyIEnumGUID.cpp   Mon Sep 10 17:23:43 2012 -0400
  473. +++ b/com/win32com/src/extensions/PyIEnumGUID.cpp   Mon Sep 17 20:02:58 2012 +0200
  474. @@ -9,10 +9,9 @@
  475.  #include <comcat.h>
  476.  #include "PyIEnumGUID.h"
  477.  
  478. -PyIEnumGUID::PyIEnumGUID(IUnknown *pDisp) :
  479. -   PyIUnknown(pDisp)
  480. +PyIEnumGUID::PyIEnumGUID(IUnknown *pDisp, PyTypeObject *ptype) :
  481. +   PyIUnknown(pDisp, ptype)
  482.  {
  483. -   ob_type = &type;
  484.  }
  485.  
  486.  PyIEnumGUID::~PyIEnumGUID()
  487. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIEnumSTATPROPSETSTG.cpp
  488. --- a/com/win32com/src/extensions/PyIEnumSTATPROPSETSTG.cpp Mon Sep 10 17:23:43 2012 -0400
  489. +++ b/com/win32com/src/extensions/PyIEnumSTATPROPSETSTG.cpp Mon Sep 17 20:02:58 2012 +0200
  490. @@ -14,10 +14,9 @@
  491.  //
  492.  // Interface Implementation
  493.  
  494. -PyIEnumSTATPROPSETSTG::PyIEnumSTATPROPSETSTG(IUnknown *pdisp):
  495. -   PyIUnknown(pdisp)
  496. +PyIEnumSTATPROPSETSTG::PyIEnumSTATPROPSETSTG(IUnknown *pdisp, PyTypeObject *ptype):
  497. +   PyIUnknown(pdisp, ptype)
  498.  {
  499. -   ob_type = &type;
  500.  }
  501.  
  502.  PyIEnumSTATPROPSETSTG::~PyIEnumSTATPROPSETSTG()
  503. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIEnumSTATPROPSTG.cpp
  504. --- a/com/win32com/src/extensions/PyIEnumSTATPROPSTG.cpp    Mon Sep 10 17:23:43 2012 -0400
  505. +++ b/com/win32com/src/extensions/PyIEnumSTATPROPSTG.cpp    Mon Sep 17 20:02:58 2012 +0200
  506. @@ -14,10 +14,9 @@
  507.  //
  508.  // Interface Implementation
  509.  
  510. -PyIEnumSTATPROPSTG::PyIEnumSTATPROPSTG(IUnknown *pdisp):
  511. -   PyIUnknown(pdisp)
  512. +PyIEnumSTATPROPSTG::PyIEnumSTATPROPSTG(IUnknown *pdisp, PyTypeObject *ptype):
  513. +   PyIUnknown(pdisp, ptype)
  514.  {
  515. -   ob_type = &type;
  516.  }
  517.  
  518.  PyIEnumSTATPROPSTG::~PyIEnumSTATPROPSTG()
  519. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIEnumSTATSTG.cpp
  520. --- a/com/win32com/src/extensions/PyIEnumSTATSTG.cpp    Mon Sep 10 17:23:43 2012 -0400
  521. +++ b/com/win32com/src/extensions/PyIEnumSTATSTG.cpp    Mon Sep 17 20:02:58 2012 +0200
  522. @@ -12,10 +12,9 @@
  523.  //
  524.  // Interface Implementation
  525.  
  526. -PyIEnumSTATSTG::PyIEnumSTATSTG(IUnknown *pdisp):
  527. -   PyIUnknown(pdisp)
  528. +PyIEnumSTATSTG::PyIEnumSTATSTG(IUnknown *pdisp, PyTypeObject *ptype):
  529. +   PyIUnknown(pdisp, ptype)
  530.  {
  531. -   ob_type = &type;
  532.  }
  533.  
  534.  PyIEnumSTATSTG::~PyIEnumSTATSTG()
  535. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIEnumString.cpp
  536. --- a/com/win32com/src/extensions/PyIEnumString.cpp Mon Sep 10 17:23:43 2012 -0400
  537. +++ b/com/win32com/src/extensions/PyIEnumString.cpp Mon Sep 17 20:02:58 2012 +0200
  538. @@ -12,10 +12,9 @@
  539.  //
  540.  // Interface Implementation
  541.  
  542. -PyIEnumString::PyIEnumString(IUnknown *pdisp):
  543. -   PyIUnknown(pdisp)
  544. +PyIEnumString::PyIEnumString(IUnknown *pdisp, PyTypeObject *ptype):
  545. +   PyIUnknown(pdisp, ptype)
  546.  {
  547. -   ob_type = &type;
  548.  }
  549.  
  550.  PyIEnumString::~PyIEnumString()
  551. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIEnumVARIANT.cpp
  552. --- a/com/win32com/src/extensions/PyIEnumVARIANT.cpp    Mon Sep 10 17:23:43 2012 -0400
  553. +++ b/com/win32com/src/extensions/PyIEnumVARIANT.cpp    Mon Sep 17 20:02:58 2012 +0200
  554. @@ -2,10 +2,9 @@
  555.  #include "PythonCOM.h"
  556.  #include "PyIEnumVARIANT.h"
  557.  
  558. -PyIEnumVARIANT::PyIEnumVARIANT(IUnknown *pdisp):
  559. -   PyIUnknown(pdisp)
  560. +PyIEnumVARIANT::PyIEnumVARIANT(IUnknown *pdisp, PyTypeObject *ptype):
  561. +   PyIUnknown(pdisp, ptype)
  562.  {
  563. -   ob_type = &type;
  564.  }
  565.  
  566.  PyIEnumVARIANT::~PyIEnumVARIANT()
  567. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIErrorLog.cpp
  568. --- a/com/win32com/src/extensions/PyIErrorLog.cpp   Mon Sep 10 17:23:43 2012 -0400
  569. +++ b/com/win32com/src/extensions/PyIErrorLog.cpp   Mon Sep 17 20:02:58 2012 +0200
  570. @@ -4,10 +4,9 @@
  571.  #include "propbag.h"
  572.  // @doc
  573.  
  574. -PyIErrorLog::PyIErrorLog(IUnknown *pdisp):
  575. -   PyIUnknown(pdisp)
  576. +PyIErrorLog::PyIErrorLog(IUnknown *pdisp, PyTypeObject *ptype):
  577. +   PyIUnknown(pdisp, ptype)
  578.  {
  579. -   ob_type = &type;
  580.  }
  581.  
  582.  PyIErrorLog::~PyIErrorLog()
  583. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIExternalConnection.cpp
  584. --- a/com/win32com/src/extensions/PyIExternalConnection.cpp Mon Sep 10 17:23:43 2012 -0400
  585. +++ b/com/win32com/src/extensions/PyIExternalConnection.cpp Mon Sep 17 20:02:58 2012 +0200
  586. @@ -11,10 +11,9 @@
  587.  //
  588.  // Interface Implementation
  589.  
  590. -PyIExternalConnection::PyIExternalConnection(IUnknown *pdisp):
  591. -   PyIUnknown(pdisp)
  592. +PyIExternalConnection::PyIExternalConnection(IUnknown *pdisp, PyTypeObject *ptype):
  593. +   PyIUnknown(pdisp, ptype)
  594.  {
  595. -   ob_type = &type;
  596.  }
  597.  
  598.  PyIExternalConnection::~PyIExternalConnection()
  599. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIGlobalInterfaceTable.cpp
  600. --- a/com/win32com/src/extensions/PyIGlobalInterfaceTable.cpp   Mon Sep 10 17:23:43 2012 -0400
  601. +++ b/com/win32com/src/extensions/PyIGlobalInterfaceTable.cpp   Mon Sep 17 20:02:58 2012 +0200
  602. @@ -10,10 +10,9 @@
  603.  //
  604.  // Interface Implementation
  605.  
  606. -PyIGlobalInterfaceTable::PyIGlobalInterfaceTable(IUnknown *pdisp):
  607. -   PyIUnknown(pdisp)
  608. +PyIGlobalInterfaceTable::PyIGlobalInterfaceTable(IUnknown *pdisp, PyTypeObject *ptype):
  609. +   PyIUnknown(pdisp, ptype)
  610.  {
  611. -   ob_type = &type;
  612.  }
  613.  
  614.  PyIGlobalInterfaceTable::~PyIGlobalInterfaceTable()
  615. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyILockBytes.cpp
  616. --- a/com/win32com/src/extensions/PyILockBytes.cpp  Mon Sep 10 17:23:43 2012 -0400
  617. +++ b/com/win32com/src/extensions/PyILockBytes.cpp  Mon Sep 17 20:02:58 2012 +0200
  618. @@ -11,10 +11,9 @@
  619.  //
  620.  // Interface Implementation
  621.  
  622. -PyILockBytes::PyILockBytes(IUnknown *pdisp):
  623. -   PyIUnknown(pdisp)
  624. +PyILockBytes::PyILockBytes(IUnknown *pdisp, PyTypeObject *ptype):
  625. +   PyIUnknown(pdisp, ptype)
  626.  {
  627. -   ob_type = &type;
  628.  }
  629.  
  630.  PyILockBytes::~PyILockBytes()
  631. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIMoniker.cpp
  632. --- a/com/win32com/src/extensions/PyIMoniker.cpp    Mon Sep 10 17:23:43 2012 -0400
  633. +++ b/com/win32com/src/extensions/PyIMoniker.cpp    Mon Sep 17 20:02:58 2012 +0200
  634. @@ -8,10 +8,9 @@
  635.  #include "PyIMoniker.h"
  636.  #include "PyIBindCtx.h"
  637.  
  638. -PyIEnumMoniker::PyIEnumMoniker(IUnknown *pDisp) :
  639. -   PyIUnknown(pDisp)
  640. +PyIEnumMoniker::PyIEnumMoniker(IUnknown *pDisp, PyTypeObject *pType) :
  641. +   PyIUnknown(pDisp, pType)
  642.  {
  643. -   ob_type = &type;
  644.  }
  645.  
  646.  PyIEnumMoniker::~PyIEnumMoniker()
  647. @@ -145,10 +144,9 @@
  648.                  GET_PYCOM_CTOR(PyIEnumMoniker));
  649.  
  650.  //////////////////////////////////////////////////////////////////////////////////////
  651. -PyIMoniker::PyIMoniker(IUnknown *pDisp) :
  652. -   PyIPersistStream(pDisp)
  653. +PyIMoniker::PyIMoniker(IUnknown *pDisp, PyTypeObject *pType) :
  654. +   PyIPersistStream(pDisp, pType)
  655.  {
  656. -   ob_type = &type;
  657.  }
  658.  
  659.  PyIMoniker::~PyIMoniker()
  660. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIOleWindow.cpp
  661. --- a/com/win32com/src/extensions/PyIOleWindow.cpp  Mon Sep 10 17:23:43 2012 -0400
  662. +++ b/com/win32com/src/extensions/PyIOleWindow.cpp  Mon Sep 17 20:02:58 2012 +0200
  663. @@ -11,10 +11,9 @@
  664.  //
  665.  // Interface Implementation
  666.  
  667. -PyIOleWindow::PyIOleWindow(IUnknown *pdisp):
  668. -   PyIUnknown(pdisp)
  669. +PyIOleWindow::PyIOleWindow(IUnknown *pdisp, PyTypeObject *ptype):
  670. +   PyIUnknown(pdisp, ptype)
  671.  {
  672. -   ob_type = &type;
  673.  }
  674.  
  675.  PyIOleWindow::~PyIOleWindow()
  676. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIPersist.cpp
  677. --- a/com/win32com/src/extensions/PyIPersist.cpp    Mon Sep 10 17:23:43 2012 -0400
  678. +++ b/com/win32com/src/extensions/PyIPersist.cpp    Mon Sep 17 20:02:58 2012 +0200
  679. @@ -5,10 +5,9 @@
  680.  #include "PythonCOM.h"
  681.  #include "PyIPersist.h"
  682.  
  683. -PyIPersist::PyIPersist(IUnknown *pdisp):
  684. -   PyIUnknown(pdisp)
  685. +PyIPersist::PyIPersist(IUnknown *pdisp, PyTypeObject *ptype):
  686. +   PyIUnknown(pdisp, ptype)
  687.  {
  688. -   ob_type = &type;
  689.  }
  690.  
  691.  PyIPersist::~PyIPersist()
  692. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIPersistFile.cpp
  693. --- a/com/win32com/src/extensions/PyIPersistFile.cpp    Mon Sep 10 17:23:43 2012 -0400
  694. +++ b/com/win32com/src/extensions/PyIPersistFile.cpp    Mon Sep 17 20:02:58 2012 +0200
  695. @@ -12,10 +12,9 @@
  696.  //
  697.  // Interface Implementation
  698.  
  699. -PyIPersistFile::PyIPersistFile(IUnknown *pdisp):
  700. -   PyIPersist(pdisp)
  701. +PyIPersistFile::PyIPersistFile(IUnknown *pdisp, PyTypeObject *ptype):
  702. +   PyIPersist(pdisp, ptype)
  703.  {
  704. -   ob_type = &type;
  705.  }
  706.  
  707.  PyIPersistFile::~PyIPersistFile()
  708. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIPersistPropertyBag.cpp
  709. --- a/com/win32com/src/extensions/PyIPersistPropertyBag.cpp Mon Sep 10 17:23:43 2012 -0400
  710. +++ b/com/win32com/src/extensions/PyIPersistPropertyBag.cpp Mon Sep 17 20:02:58 2012 +0200
  711. @@ -4,10 +4,9 @@
  712.  #include "propbag.h"
  713.  
  714.  // @doc
  715. -PyIPersistPropertyBag::PyIPersistPropertyBag(IUnknown *pdisp):
  716. -   PyIUnknown(pdisp)
  717. +PyIPersistPropertyBag::PyIPersistPropertyBag(IUnknown *pdisp, PyTypeObject *ptype):
  718. +   PyIUnknown(pdisp, ptype)
  719.  {
  720. -   ob_type = &type;
  721.  }
  722.  
  723.  PyIPersistPropertyBag::~PyIPersistPropertyBag()
  724. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIPersistStorage.cpp
  725. --- a/com/win32com/src/extensions/PyIPersistStorage.cpp Mon Sep 10 17:23:43 2012 -0400
  726. +++ b/com/win32com/src/extensions/PyIPersistStorage.cpp Mon Sep 17 20:02:58 2012 +0200
  727. @@ -7,10 +7,9 @@
  728.  
  729.  // @doc - This file contains autoduck documentation
  730.  
  731. -PyIPersistStorage::PyIPersistStorage(IUnknown *pdisp):
  732. -   PyIPersist(pdisp)
  733. +PyIPersistStorage::PyIPersistStorage(IUnknown *pdisp, PyTypeObject *ptype):
  734. +   PyIPersist(pdisp, ptype)
  735.  {
  736. -   ob_type = &type;
  737.  }
  738.  
  739.  PyIPersistStorage::~PyIPersistStorage()
  740. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIPersistStream.cpp
  741. --- a/com/win32com/src/extensions/PyIPersistStream.cpp  Mon Sep 10 17:23:43 2012 -0400
  742. +++ b/com/win32com/src/extensions/PyIPersistStream.cpp  Mon Sep 17 20:02:58 2012 +0200
  743. @@ -9,10 +9,9 @@
  744.  
  745.  
  746.  /////////////////////////////////////////////////////////////
  747. -PyIPersistStream::PyIPersistStream(IUnknown *pDisp) :
  748. -   PyIPersist(pDisp)
  749. +PyIPersistStream::PyIPersistStream(IUnknown *pDisp, PyTypeObject *pType) :
  750. +   PyIPersist(pDisp, pType)
  751.  {
  752. -   ob_type = &type;
  753.  }
  754.  
  755.  PyIPersistStream::~PyIPersistStream()
  756. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIPersistStreamInit.cpp
  757. --- a/com/win32com/src/extensions/PyIPersistStreamInit.cpp  Mon Sep 10 17:23:43 2012 -0400
  758. +++ b/com/win32com/src/extensions/PyIPersistStreamInit.cpp  Mon Sep 17 20:02:58 2012 +0200
  759. @@ -8,10 +8,9 @@
  760.  
  761.  
  762.  /////////////////////////////////////////////////////////////
  763. -PyIPersistStreamInit::PyIPersistStreamInit(IUnknown *pDisp) :
  764. -   PyIPersistStream(pDisp)
  765. +PyIPersistStreamInit::PyIPersistStreamInit(IUnknown *pDisp, PyTypeObject *pType) :
  766. +   PyIPersistStream(pDisp, pType)
  767.  {
  768. -   ob_type = &type;
  769.  }
  770.  
  771.  PyIPersistStreamInit::~PyIPersistStreamInit()
  772. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIPropertyBag.cpp
  773. --- a/com/win32com/src/extensions/PyIPropertyBag.cpp    Mon Sep 10 17:23:43 2012 -0400
  774. +++ b/com/win32com/src/extensions/PyIPropertyBag.cpp    Mon Sep 17 20:02:58 2012 +0200
  775. @@ -3,10 +3,9 @@
  776.  #include "PythonCOMServer.h"
  777.  #include "propbag.h"
  778.  // @doc
  779. -PyIPropertyBag::PyIPropertyBag(IUnknown *pdisp):
  780. -   PyIUnknown(pdisp)
  781. +PyIPropertyBag::PyIPropertyBag(IUnknown *pdisp, PyTypeObject *ptype):
  782. +   PyIUnknown(pdisp, ptype)
  783.  {
  784. -   ob_type = &type;
  785.  }
  786.  
  787.  PyIPropertyBag::~PyIPropertyBag()
  788. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIPropertySetStorage.cpp
  789. --- a/com/win32com/src/extensions/PyIPropertySetStorage.cpp Mon Sep 10 17:23:43 2012 -0400
  790. +++ b/com/win32com/src/extensions/PyIPropertySetStorage.cpp Mon Sep 17 20:02:58 2012 +0200
  791. @@ -12,10 +12,9 @@
  792.  //
  793.  // Interface Implementation
  794.  
  795. -PyIPropertySetStorage::PyIPropertySetStorage(IUnknown *pdisp):
  796. -   PyIUnknown(pdisp)
  797. +PyIPropertySetStorage::PyIPropertySetStorage(IUnknown *pdisp, PyTypeObject *ptype):
  798. +   PyIUnknown(pdisp, ptype)
  799.  {
  800. -   ob_type = &type;
  801.  }
  802.  
  803.  PyIPropertySetStorage::~PyIPropertySetStorage()
  804. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIPropertyStorage.cpp
  805. --- a/com/win32com/src/extensions/PyIPropertyStorage.cpp    Mon Sep 10 17:23:43 2012 -0400
  806. +++ b/com/win32com/src/extensions/PyIPropertyStorage.cpp    Mon Sep 17 20:02:58 2012 +0200
  807. @@ -421,10 +421,9 @@
  808.  //
  809.  // Interface Implementation
  810.  
  811. -PyIPropertyStorage::PyIPropertyStorage(IUnknown *pdisp):
  812. -   PyIUnknown(pdisp)
  813. +PyIPropertyStorage::PyIPropertyStorage(IUnknown *pdisp, PyTypeObject *ptype):
  814. +   PyIUnknown(pdisp, ptype)
  815.  {
  816. -   ob_type = &type;
  817.  }
  818.  
  819.  PyIPropertyStorage::~PyIPropertyStorage()
  820. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIProvideClassInfo.cpp
  821. --- a/com/win32com/src/extensions/PyIProvideClassInfo.cpp   Mon Sep 10 17:23:43 2012 -0400
  822. +++ b/com/win32com/src/extensions/PyIProvideClassInfo.cpp   Mon Sep 17 20:02:58 2012 +0200
  823. @@ -6,10 +6,9 @@
  824.  
  825.  #ifndef NO_PYCOM_IPROVIDECLASSINFO
  826.  
  827. -PyIProvideClassInfo::PyIProvideClassInfo(IUnknown *pDisp) :
  828. -   PyIUnknown(pDisp)
  829. +PyIProvideClassInfo::PyIProvideClassInfo(IUnknown *pDisp, PyTypeObject *pType) :
  830. +   PyIUnknown(pDisp, pType)
  831.  {
  832. -   ob_type = &type;
  833.  }
  834.  
  835.  PyIProvideClassInfo::~PyIProvideClassInfo()
  836. @@ -57,10 +56,9 @@
  837.  //////////////////////////////////////////////////////////
  838.  // IProvideClassInfo2 client support.
  839.  
  840. -PyIProvideClassInfo2::PyIProvideClassInfo2(IUnknown *pDisp) :
  841. -   PyIProvideClassInfo(pDisp)
  842. +PyIProvideClassInfo2::PyIProvideClassInfo2(IUnknown *pDisp, PyTypeObject *pType) :
  843. +   PyIProvideClassInfo(pDisp, pType)
  844.  {
  845. -   ob_type = &type;
  846.  }
  847.  
  848.  PyIProvideClassInfo2::~PyIProvideClassInfo2()
  849. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIRunningObjectTable.cpp
  850. --- a/com/win32com/src/extensions/PyIRunningObjectTable.cpp Mon Sep 10 17:23:43 2012 -0400
  851. +++ b/com/win32com/src/extensions/PyIRunningObjectTable.cpp Mon Sep 17 20:02:58 2012 +0200
  852. @@ -8,10 +8,9 @@
  853.  #include "PyIPersist.h"
  854.  #include "PyIMoniker.h"
  855.  
  856. -PyIRunningObjectTable::PyIRunningObjectTable(IUnknown *pDisp) :
  857. -   PyIUnknown(pDisp)
  858. +PyIRunningObjectTable::PyIRunningObjectTable(IUnknown *pDisp, PyTypeObject *pType) :
  859. +   PyIUnknown(pDisp, pType)
  860.  {
  861. -   ob_type = &type;
  862.  }
  863.  
  864.  PyIRunningObjectTable::~PyIRunningObjectTable()
  865. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIServiceProvider.cpp
  866. --- a/com/win32com/src/extensions/PyIServiceProvider.cpp    Mon Sep 10 17:23:43 2012 -0400
  867. +++ b/com/win32com/src/extensions/PyIServiceProvider.cpp    Mon Sep 17 20:02:58 2012 +0200
  868. @@ -6,10 +6,9 @@
  869.  #include "PythonCOMServer.h"
  870.  #include "PyIServiceProvider.h"
  871.   // @doc
  872. -PyIServiceProvider::PyIServiceProvider(IUnknown *pDisp) :
  873. -   PyIUnknown(pDisp)
  874. +PyIServiceProvider::PyIServiceProvider(IUnknown *pDisp, PyTypeObject *pType) :
  875. +   PyIUnknown(pDisp, pType)
  876.  {
  877. -   ob_type = &type;
  878.  }
  879.  
  880.  PyIServiceProvider::~PyIServiceProvider()
  881. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIStorage.cpp
  882. --- a/com/win32com/src/extensions/PyIStorage.cpp    Mon Sep 10 17:23:43 2012 -0400
  883. +++ b/com/win32com/src/extensions/PyIStorage.cpp    Mon Sep 17 20:02:58 2012 +0200
  884. @@ -12,10 +12,9 @@
  885.  //
  886.  // Interface Implementation
  887.  
  888. -PyIStorage::PyIStorage(IUnknown *pdisp):
  889. -   PyIUnknown(pdisp)
  890. +PyIStorage::PyIStorage(IUnknown *pdisp, PyTypeObject *ptype):
  891. +   PyIUnknown(pdisp, ptype)
  892.  {
  893. -   ob_type = &type;
  894.  }
  895.  
  896.  PyIStorage::~PyIStorage()
  897. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIStream.cpp
  898. --- a/com/win32com/src/extensions/PyIStream.cpp Mon Sep 10 17:23:43 2012 -0400
  899. +++ b/com/win32com/src/extensions/PyIStream.cpp Mon Sep 17 20:02:58 2012 +0200
  900. @@ -5,10 +5,9 @@
  901.  #include "PythonCOM.h"
  902.  #include "PyIStream.h"
  903.  
  904. -PyIStream::PyIStream(IUnknown *pDisp) :
  905. -   PyIUnknown(pDisp)
  906. +PyIStream::PyIStream(IUnknown *pDisp, PyTypeObject *pType) :
  907. +   PyIUnknown(pDisp, pType)
  908.  {
  909. -   ob_type = &type;
  910.  }
  911.  
  912.  PyIStream::~PyIStream()
  913. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyIType.cpp
  914. --- a/com/win32com/src/extensions/PyIType.cpp   Mon Sep 10 17:23:43 2012 -0400
  915. +++ b/com/win32com/src/extensions/PyIType.cpp   Mon Sep 17 20:02:58 2012 +0200
  916. @@ -20,10 +20,9 @@
  917.  /////////////////////////////////////////////////////////////////////////////
  918.  // class PyITypeInfo
  919.  
  920. -PyITypeInfo::PyITypeInfo(IUnknown *ti) :
  921. -   PyIUnknown(ti)
  922. +PyITypeInfo::PyITypeInfo(IUnknown *ti, PyTypeObject *ptype) :
  923. +   PyIUnknown(ti, ptype)
  924.  {
  925. -   ob_type = &type;
  926.  }
  927.  
  928.  PyITypeInfo::~PyITypeInfo()
  929. @@ -280,7 +279,7 @@
  930.     PY_INTERFACE_POSTCALL;
  931.     if (FAILED(sc))
  932.         return PyCom_BuildPyException(sc, pMyTypeInfo, IID_ITypeInfo);
  933. -   return new PyITypeInfo(pti);
  934. +   return GET_PYCOM_CTOR(PyITypeInfo)(pti);
  935.  }
  936.  
  937.  PyObject *PyITypeInfo::GetRefTypeOfImplType(int index)
  938. @@ -517,10 +516,9 @@
  939.  /////////////////////////////////////////////////////////////////////////////
  940.  // class PyITypeLib
  941.  
  942. -PyITypeLib::PyITypeLib(IUnknown *tl) :
  943. -   PyIUnknown(tl)
  944. +PyITypeLib::PyITypeLib(IUnknown *tl, PyTypeObject *ptype) :
  945. +   PyIUnknown(tl, ptype)
  946.  {
  947. -   ob_type = &type;
  948.  }
  949.  
  950.  PyITypeLib::~PyITypeLib()
  951. @@ -914,10 +912,9 @@
  952.  /////////////////////////////////////////////////////////////////////////////
  953.  // class PyITypeComp
  954.  
  955. -PyITypeComp::PyITypeComp(IUnknown *ti) :
  956. -   PyIUnknown(ti)
  957. +PyITypeComp::PyITypeComp(IUnknown *ti, PyTypeObject *ptype) :
  958. +   PyIUnknown(ti, ptype)
  959.  {
  960. -   ob_type = &type;
  961.  }
  962.  
  963.  PyITypeComp::~PyITypeComp()
  964. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PySTGMEDIUM.cpp
  965. --- a/com/win32com/src/extensions/PySTGMEDIUM.cpp   Mon Sep 10 17:23:43 2012 -0400
  966. +++ b/com/win32com/src/extensions/PySTGMEDIUM.cpp   Mon Sep 17 20:02:58 2012 +0200
  967. @@ -149,8 +149,7 @@
  968.  
  969.  PySTGMEDIUM::PySTGMEDIUM(STGMEDIUM *pm)
  970.  {
  971. -   ob_type = &PySTGMEDIUM::Type;
  972. -   _Py_NewReference(this);
  973. +   PyObject_Init(this, &PySTGMEDIUM::Type);
  974.     if (pm)
  975.         memcpy(&medium, pm, sizeof(medium));
  976.     else
  977. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyTYPEATTR.cpp
  978. --- a/com/win32com/src/extensions/PyTYPEATTR.cpp    Mon Sep 10 17:23:43 2012 -0400
  979. +++ b/com/win32com/src/extensions/PyTYPEATTR.cpp    Mon Sep 17 20:02:58 2012 +0200
  980. @@ -112,8 +112,7 @@
  981.  
  982.  PyTYPEATTR::PyTYPEATTR()
  983.  {
  984. -   ob_type = &PyTYPEATTR::Type;
  985. -   _Py_NewReference(this);
  986. +   PyObject_Init(this, &PyTYPEATTR::Type);
  987.  
  988.     iid = NULL;
  989.     lcid = 0;
  990. @@ -135,8 +134,7 @@
  991.  
  992.  PyTYPEATTR::PyTYPEATTR(const TYPEATTR *attr)
  993.  {
  994. -   ob_type = &PyTYPEATTR::Type;
  995. -   _Py_NewReference(this);
  996. +   PyObject_Init(this, &PyTYPEATTR::Type);
  997.  
  998.     iid = PyWinObject_FromIID(attr->guid);
  999.     lcid = attr->lcid;
  1000. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/extensions/PyVARDESC.cpp
  1001. --- a/com/win32com/src/extensions/PyVARDESC.cpp Mon Sep 10 17:23:43 2012 -0400
  1002. +++ b/com/win32com/src/extensions/PyVARDESC.cpp Mon Sep 17 20:02:58 2012 +0200
  1003. @@ -148,8 +148,7 @@
  1004.  
  1005.  PyVARDESC::PyVARDESC()
  1006.  {
  1007. -   ob_type = &PyVARDESC::Type;
  1008. -   _Py_NewReference(this);
  1009. +   PyObject_Init(this, &PyVARDESC::Type);
  1010.  
  1011.     memid = 0;
  1012.     value = NULL;
  1013. @@ -160,8 +159,7 @@
  1014.  
  1015.  PyVARDESC::PyVARDESC(const VARDESC *pVD)
  1016.  {
  1017. -   ob_type = &PyVARDESC::Type;
  1018. -   _Py_NewReference(this);
  1019. +   PyObject_Init(this, &PyVARDESC::Type);
  1020.  
  1021.     memid = pVD->memid;
  1022.     wVarFlags = pVD->wVarFlags;
  1023. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIBindCtx.h
  1024. --- a/com/win32com/src/include/PyIBindCtx.h Mon Sep 10 17:23:43 2012 -0400
  1025. +++ b/com/win32com/src/include/PyIBindCtx.h Mon Sep 17 20:02:58 2012 +0200
  1026. @@ -17,6 +17,6 @@
  1027.     static PyObject *GetObjectParam(PyObject *self, PyObject *args);
  1028.     static PyObject *EnumObjectParam(PyObject *self, PyObject *args);
  1029.  protected:
  1030. -   PyIBindCtx(IUnknown *);
  1031. +   PyIBindCtx(IUnknown *, PyTypeObject *type);
  1032.     ~PyIBindCtx();
  1033.  };
  1034. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyICatInformation.h
  1035. --- a/com/win32com/src/include/PyICatInformation.h  Mon Sep 10 17:23:43 2012 -0400
  1036. +++ b/com/win32com/src/include/PyICatInformation.h  Mon Sep 17 20:02:58 2012 +0200
  1037. @@ -12,7 +12,7 @@
  1038.     static PyObject *GetCategoryDesc(PyObject *self, PyObject *args);
  1039.     static PyObject *EnumClassesOfCategories(PyObject *self, PyObject *args);
  1040.  protected:
  1041. -   PyICatInformation(IUnknown *);
  1042. +   PyICatInformation(IUnknown *, PyTypeObject *type);
  1043.     ~PyICatInformation();
  1044.  };
  1045.  #endif // NO_PYCOM_ICATINFORMATION
  1046. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyICatRegister.h
  1047. --- a/com/win32com/src/include/PyICatRegister.h Mon Sep 10 17:23:43 2012 -0400
  1048. +++ b/com/win32com/src/include/PyICatRegister.h Mon Sep 17 20:02:58 2012 +0200
  1049. @@ -15,7 +15,7 @@
  1050.     static PyObject *UnRegisterClassReqCategories(PyObject *self, PyObject *args);
  1051.  
  1052.  protected:
  1053. -   PyICatRegister(IUnknown *pdisp);
  1054. +   PyICatRegister(IUnknown *pdisp, PyTypeObject *type);
  1055.     ~PyICatRegister();
  1056.  };
  1057.  #endif // NO_PYCOM_ICATREGISTER
  1058. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyICreateTypeInfo.h
  1059. --- a/com/win32com/src/include/PyICreateTypeInfo.h  Mon Sep 10 17:23:43 2012 -0400
  1060. +++ b/com/win32com/src/include/PyICreateTypeInfo.h  Mon Sep 17 20:02:58 2012 +0200
  1061. @@ -37,7 +37,7 @@
  1062.     static PyObject *LayOut(PyObject *self, PyObject *args);
  1063.  
  1064.  protected:
  1065. -   PyICreateTypeInfo(IUnknown *pdisp);
  1066. +   PyICreateTypeInfo(IUnknown *pdisp, PyTypeObject *type);
  1067.     ~PyICreateTypeInfo();
  1068.  };
  1069.  
  1070. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyICreateTypeLib.h
  1071. --- a/com/win32com/src/include/PyICreateTypeLib.h   Mon Sep 10 17:23:43 2012 -0400
  1072. +++ b/com/win32com/src/include/PyICreateTypeLib.h   Mon Sep 17 20:02:58 2012 +0200
  1073. @@ -24,7 +24,7 @@
  1074.     static PyObject *SaveAllChanges(PyObject *self, PyObject *args);
  1075.  
  1076.  protected:
  1077. -   PyICreateTypeLib(IUnknown *pdisp);
  1078. +   PyICreateTypeLib(IUnknown *pdisp, PyTypeObject *type);
  1079.     ~PyICreateTypeLib();
  1080.  };
  1081.  
  1082. @@ -48,6 +48,6 @@
  1083.     static PyObject *SaveAllChanges(PyObject *self, PyObject *args);
  1084.  
  1085.  protected:
  1086. -   PyICreateTypeLib2(IUnknown *pdisp);
  1087. +   PyICreateTypeLib2(IUnknown *pdisp, PyTypeObject *type);
  1088.     ~PyICreateTypeLib2();
  1089.  };
  1090. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIDataObject.h
  1091. --- a/com/win32com/src/include/PyIDataObject.h  Mon Sep 10 17:23:43 2012 -0400
  1092. +++ b/com/win32com/src/include/PyIDataObject.h  Mon Sep 17 20:02:58 2012 +0200
  1093. @@ -23,7 +23,7 @@
  1094.     static PyObject *EnumDAdvise(PyObject *self, PyObject *args);
  1095.  
  1096.  protected:
  1097. -   PyIDataObject(IUnknown *pdisp);
  1098. +   PyIDataObject(IUnknown *pdisp, PyTypeObject *type);
  1099.     ~PyIDataObject();
  1100.  };
  1101.  // ---------------------------------------------------
  1102. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIDropSource.h
  1103. --- a/com/win32com/src/include/PyIDropSource.h  Mon Sep 10 17:23:43 2012 -0400
  1104. +++ b/com/win32com/src/include/PyIDropSource.h  Mon Sep 17 20:02:58 2012 +0200
  1105. @@ -16,7 +16,7 @@
  1106.     static PyObject *GiveFeedback(PyObject *self, PyObject *args);
  1107.  
  1108.  protected:
  1109. -   PyIDropSource(IUnknown *pdisp);
  1110. +   PyIDropSource(IUnknown *pdisp, PyTypeObject *type);
  1111.     ~PyIDropSource();
  1112.  };
  1113.  // ---------------------------------------------------
  1114. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIDropTarget.h
  1115. --- a/com/win32com/src/include/PyIDropTarget.h  Mon Sep 10 17:23:43 2012 -0400
  1116. +++ b/com/win32com/src/include/PyIDropTarget.h  Mon Sep 17 20:02:58 2012 +0200
  1117. @@ -18,7 +18,7 @@
  1118.     static PyObject *Drop(PyObject *self, PyObject *args);
  1119.  
  1120.  protected:
  1121. -   PyIDropTarget(IUnknown *pdisp);
  1122. +   PyIDropTarget(IUnknown *pdisp, PyTypeObject *type);
  1123.     ~PyIDropTarget();
  1124.  };
  1125.  // ---------------------------------------------------
  1126. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIEnumConnectionPoints.h
  1127. --- a/com/win32com/src/include/PyIEnumConnectionPoints.h    Mon Sep 10 17:23:43 2012 -0400
  1128. +++ b/com/win32com/src/include/PyIEnumConnectionPoints.h    Mon Sep 17 20:02:58 2012 +0200
  1129. @@ -18,7 +18,7 @@
  1130.     static PyObject *Clone(PyObject *self, PyObject *args);
  1131.  
  1132.  protected:
  1133. -   PyIEnumConnectionPoints(IUnknown *pdisp);
  1134. +   PyIEnumConnectionPoints(IUnknown *pdisp, PyTypeObject *type);
  1135.     ~PyIEnumConnectionPoints();
  1136.  };
  1137.  // ---------------------------------------------------
  1138. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIEnumConnections.h
  1139. --- a/com/win32com/src/include/PyIEnumConnections.h Mon Sep 10 17:23:43 2012 -0400
  1140. +++ b/com/win32com/src/include/PyIEnumConnections.h Mon Sep 17 20:02:58 2012 +0200
  1141. @@ -18,7 +18,7 @@
  1142.     static PyObject *Clone(PyObject *self, PyObject *args);
  1143.  
  1144.  protected:
  1145. -   PyIEnumConnections(IUnknown *pdisp);
  1146. +   PyIEnumConnections(IUnknown *pdisp, PyTypeObject *type);
  1147.     ~PyIEnumConnections();
  1148.  };
  1149.  // ---------------------------------------------------
  1150. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIEnumFORMATETC.h
  1151. --- a/com/win32com/src/include/PyIEnumFORMATETC.h   Mon Sep 10 17:23:43 2012 -0400
  1152. +++ b/com/win32com/src/include/PyIEnumFORMATETC.h   Mon Sep 17 20:02:58 2012 +0200
  1153. @@ -18,7 +18,7 @@
  1154.     static PyObject *Clone(PyObject *self, PyObject *args);
  1155.  
  1156.  protected:
  1157. -   PyIEnumFORMATETC(IUnknown *pdisp);
  1158. +   PyIEnumFORMATETC(IUnknown *pdisp, PyTypeObject *type);
  1159.     ~PyIEnumFORMATETC();
  1160.  };
  1161.  // ---------------------------------------------------
  1162. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIEnumGUID.h
  1163. --- a/com/win32com/src/include/PyIEnumGUID.h    Mon Sep 10 17:23:43 2012 -0400
  1164. +++ b/com/win32com/src/include/PyIEnumGUID.h    Mon Sep 17 20:02:58 2012 +0200
  1165. @@ -18,7 +18,7 @@
  1166.     static PyObject *Clone(PyObject *self, PyObject *args);
  1167.  
  1168.  protected:
  1169. -   PyIEnumGUID(IUnknown *);
  1170. +   PyIEnumGUID(IUnknown *, PyTypeObject *type);
  1171.     ~PyIEnumGUID();
  1172.  };
  1173.  
  1174. @@ -67,7 +67,7 @@
  1175.     static PyObject *Clone(PyObject *self, PyObject *args);
  1176.  
  1177.  protected:
  1178. -   PyIEnumCATEGORYINFO(IUnknown *);
  1179. +   PyIEnumCATEGORYINFO(IUnknown *, PyTypeObject *type);
  1180.     ~PyIEnumCATEGORYINFO();
  1181.  };
  1182.  #endif // NO_PYCOM_IENUMCATEGORYINFO
  1183. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIEnumSTATPROPSETSTG.h
  1184. --- a/com/win32com/src/include/PyIEnumSTATPROPSETSTG.h  Mon Sep 10 17:23:43 2012 -0400
  1185. +++ b/com/win32com/src/include/PyIEnumSTATPROPSETSTG.h  Mon Sep 17 20:02:58 2012 +0200
  1186. @@ -14,6 +14,6 @@
  1187.     static PyObject *Clone(PyObject *self, PyObject *args);
  1188.  
  1189.  protected:
  1190. -   PyIEnumSTATPROPSETSTG(IUnknown *pdisp);
  1191. +   PyIEnumSTATPROPSETSTG(IUnknown *pdisp, PyTypeObject *type);
  1192.     ~PyIEnumSTATPROPSETSTG();
  1193.  };
  1194. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIEnumSTATPROPSTG.h
  1195. --- a/com/win32com/src/include/PyIEnumSTATPROPSTG.h Mon Sep 10 17:23:43 2012 -0400
  1196. +++ b/com/win32com/src/include/PyIEnumSTATPROPSTG.h Mon Sep 17 20:02:58 2012 +0200
  1197. @@ -18,6 +18,6 @@
  1198.     static PyObject *Clone(PyObject *self, PyObject *args);
  1199.  
  1200.  protected:
  1201. -   PyIEnumSTATPROPSTG(IUnknown *pdisp);
  1202. +   PyIEnumSTATPROPSTG(IUnknown *pdisp, PyTypeObject *type);
  1203.     ~PyIEnumSTATPROPSTG();
  1204.  };
  1205. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIEnumSTATSTG.h
  1206. --- a/com/win32com/src/include/PyIEnumSTATSTG.h Mon Sep 10 17:23:43 2012 -0400
  1207. +++ b/com/win32com/src/include/PyIEnumSTATSTG.h Mon Sep 17 20:02:58 2012 +0200
  1208. @@ -18,7 +18,7 @@
  1209.     static PyObject *Clone(PyObject *self, PyObject *args);
  1210.  
  1211.  protected:
  1212. -   PyIEnumSTATSTG(IUnknown *pdisp);
  1213. +   PyIEnumSTATSTG(IUnknown *pdisp, PyTypeObject *type);
  1214.     ~PyIEnumSTATSTG();
  1215.  };
  1216.  // ---------------------------------------------------
  1217. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIEnumString.h
  1218. --- a/com/win32com/src/include/PyIEnumString.h  Mon Sep 10 17:23:43 2012 -0400
  1219. +++ b/com/win32com/src/include/PyIEnumString.h  Mon Sep 17 20:02:58 2012 +0200
  1220. @@ -18,7 +18,7 @@
  1221.     static PyObject *Clone(PyObject *self, PyObject *args);
  1222.  
  1223.  protected:
  1224. -   PyIEnumString(IUnknown *pdisp);
  1225. +   PyIEnumString(IUnknown *pdisp, PyTypeObject *type);
  1226.     ~PyIEnumString();
  1227.  };
  1228.  // ---------------------------------------------------
  1229. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIEnumVARIANT.h
  1230. --- a/com/win32com/src/include/PyIEnumVARIANT.h Mon Sep 10 17:23:43 2012 -0400
  1231. +++ b/com/win32com/src/include/PyIEnumVARIANT.h Mon Sep 17 20:02:58 2012 +0200
  1232. @@ -18,7 +18,7 @@
  1233.     static PyObject *Clone(PyObject *self, PyObject *args);
  1234.  
  1235.  protected:
  1236. -   PyIEnumVARIANT(IUnknown *pdisp);
  1237. +   PyIEnumVARIANT(IUnknown *pdisp, PyTypeObject *type);
  1238.     ~PyIEnumVARIANT();
  1239.  };
  1240.  
  1241. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIExternalConnection.h
  1242. --- a/com/win32com/src/include/PyIExternalConnection.h  Mon Sep 10 17:23:43 2012 -0400
  1243. +++ b/com/win32com/src/include/PyIExternalConnection.h  Mon Sep 17 20:02:58 2012 +0200
  1244. @@ -16,7 +16,7 @@
  1245.     static PyObject *ReleaseConnection(PyObject *self, PyObject *args);
  1246.  
  1247.  protected:
  1248. -   PyIExternalConnection(IUnknown *pdisp);
  1249. +   PyIExternalConnection(IUnknown *pdisp, PyTypeObject *type);
  1250.     ~PyIExternalConnection();
  1251.  };
  1252.  // ---------------------------------------------------
  1253. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIGlobalInterfaceTable.h
  1254. --- a/com/win32com/src/include/PyIGlobalInterfaceTable.h    Mon Sep 10 17:23:43 2012 -0400
  1255. +++ b/com/win32com/src/include/PyIGlobalInterfaceTable.h    Mon Sep 17 20:02:58 2012 +0200
  1256. @@ -17,6 +17,6 @@
  1257.     static PyObject *GetInterfaceFromGlobal(PyObject *self, PyObject *args);
  1258.  
  1259.  protected:
  1260. -   PyIGlobalInterfaceTable(IUnknown *pdisp);
  1261. +   PyIGlobalInterfaceTable(IUnknown *pdisp, PyTypeObject *type);
  1262.     ~PyIGlobalInterfaceTable();
  1263.  };
  1264. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyILockBytes.h
  1265. --- a/com/win32com/src/include/PyILockBytes.h   Mon Sep 10 17:23:43 2012 -0400
  1266. +++ b/com/win32com/src/include/PyILockBytes.h   Mon Sep 17 20:02:58 2012 +0200
  1267. @@ -21,7 +21,7 @@
  1268.     static PyObject *Stat(PyObject *self, PyObject *args);
  1269.  
  1270.  protected:
  1271. -   PyILockBytes(IUnknown *pdisp);
  1272. +   PyILockBytes(IUnknown *pdisp, PyTypeObject *type);
  1273.     ~PyILockBytes();
  1274.  };
  1275.  // ---------------------------------------------------
  1276. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIMoniker.h
  1277. --- a/com/win32com/src/include/PyIMoniker.h Mon Sep 10 17:23:43 2012 -0400
  1278. +++ b/com/win32com/src/include/PyIMoniker.h Mon Sep 17 20:02:58 2012 +0200
  1279. @@ -16,7 +16,7 @@
  1280.     static PyObject *Clone(PyObject *self, PyObject *args);
  1281.  
  1282.  protected:
  1283. -   PyIEnumMoniker(IUnknown *);
  1284. +   PyIEnumMoniker(IUnknown *, PyTypeObject *type);
  1285.     ~PyIEnumMoniker();
  1286.  };
  1287.  
  1288. @@ -44,7 +44,7 @@
  1289.     static PyObject *ParseDisplayName(PyObject *self, PyObject *args);
  1290.     static PyObject *IsSystemMoniker(PyObject *self, PyObject *args);
  1291.  protected:
  1292. -   PyIMoniker(IUnknown *);
  1293. +   PyIMoniker(IUnknown *, PyTypeObject *type);
  1294.     ~PyIMoniker();
  1295.  };
  1296.  
  1297. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIOleWindow.h
  1298. --- a/com/win32com/src/include/PyIOleWindow.h   Mon Sep 10 17:23:43 2012 -0400
  1299. +++ b/com/win32com/src/include/PyIOleWindow.h   Mon Sep 17 20:02:58 2012 +0200
  1300. @@ -16,7 +16,7 @@
  1301.     static PyObject *ContextSensitiveHelp(PyObject *self, PyObject *args);
  1302.  
  1303.  protected:
  1304. -   PyIOleWindow(IUnknown *pdisp);
  1305. +   PyIOleWindow(IUnknown *pdisp, PyTypeObject *type);
  1306.     ~PyIOleWindow();
  1307.  };
  1308.  // ---------------------------------------------------
  1309. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIPersist.h
  1310. --- a/com/win32com/src/include/PyIPersist.h Mon Sep 10 17:23:43 2012 -0400
  1311. +++ b/com/win32com/src/include/PyIPersist.h Mon Sep 17 20:02:58 2012 +0200
  1312. @@ -14,7 +14,7 @@
  1313.     static PyObject *GetClassID(PyObject *self, PyObject *args);
  1314.  
  1315.  protected:
  1316. -   PyIPersist(IUnknown *);
  1317. +   PyIPersist(IUnknown *, PyTypeObject *);
  1318.     ~PyIPersist();
  1319.  };
  1320.  
  1321. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIPersistFile.h
  1322. --- a/com/win32com/src/include/PyIPersistFile.h Mon Sep 10 17:23:43 2012 -0400
  1323. +++ b/com/win32com/src/include/PyIPersistFile.h Mon Sep 17 20:02:58 2012 +0200
  1324. @@ -19,7 +19,7 @@
  1325.     static PyObject *GetCurFile(PyObject *self, PyObject *args);
  1326.  
  1327.  protected:
  1328. -   PyIPersistFile(IUnknown *pdisp);
  1329. +   PyIPersistFile(IUnknown *pdisp, PyTypeObject *type);
  1330.     ~PyIPersistFile();
  1331.  };
  1332.  // ---------------------------------------------------
  1333. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIPersistStorage.h
  1334. --- a/com/win32com/src/include/PyIPersistStorage.h  Mon Sep 10 17:23:43 2012 -0400
  1335. +++ b/com/win32com/src/include/PyIPersistStorage.h  Mon Sep 17 20:02:58 2012 +0200
  1336. @@ -17,6 +17,6 @@
  1337.     static PyObject *HandsOffStorage(PyObject *self, PyObject *args);
  1338.  
  1339.  protected:
  1340. -   PyIPersistStorage(IUnknown *pdisp);
  1341. +   PyIPersistStorage(IUnknown *pdisp, PyTypeObject *type);
  1342.     ~PyIPersistStorage();
  1343.  };
  1344. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIPersistStream.h
  1345. --- a/com/win32com/src/include/PyIPersistStream.h   Mon Sep 10 17:23:43 2012 -0400
  1346. +++ b/com/win32com/src/include/PyIPersistStream.h   Mon Sep 17 20:02:58 2012 +0200
  1347. @@ -19,7 +19,7 @@
  1348.     static PyObject *GetSizeMax(PyObject *self, PyObject *args);
  1349.  
  1350.  protected:
  1351. -   PyIPersistStream(IUnknown *);
  1352. +   PyIPersistStream(IUnknown *, PyTypeObject *type);
  1353.     ~PyIPersistStream();
  1354.  };
  1355.  
  1356. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIPersistStreamInit.h
  1357. --- a/com/win32com/src/include/PyIPersistStreamInit.h   Mon Sep 10 17:23:43 2012 -0400
  1358. +++ b/com/win32com/src/include/PyIPersistStreamInit.h   Mon Sep 17 20:02:58 2012 +0200
  1359. @@ -16,7 +16,7 @@
  1360.     static PyObject *InitNew(PyObject *self, PyObject *args);
  1361.  
  1362.  protected:
  1363. -   PyIPersistStreamInit(IUnknown *);
  1364. +   PyIPersistStreamInit(IUnknown *, PyTypeObject *type);
  1365.     ~PyIPersistStreamInit();
  1366.  };
  1367.  
  1368. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIPropertySetStorage.h
  1369. --- a/com/win32com/src/include/PyIPropertySetStorage.h  Mon Sep 10 17:23:43 2012 -0400
  1370. +++ b/com/win32com/src/include/PyIPropertySetStorage.h  Mon Sep 17 20:02:58 2012 +0200
  1371. @@ -17,6 +17,6 @@
  1372.     static PyObject *Delete(PyObject *self, PyObject *args);
  1373.     static PyObject *Enum(PyObject *self, PyObject *args);
  1374.  protected:
  1375. -   PyIPropertySetStorage(IUnknown *pdisp);
  1376. +   PyIPropertySetStorage(IUnknown *pdisp, PyTypeObject *type);
  1377.     ~PyIPropertySetStorage();
  1378.  };
  1379. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIPropertyStorage.h
  1380. --- a/com/win32com/src/include/PyIPropertyStorage.h Mon Sep 10 17:23:43 2012 -0400
  1381. +++ b/com/win32com/src/include/PyIPropertyStorage.h Mon Sep 17 20:02:58 2012 +0200
  1382. @@ -26,6 +26,6 @@
  1383.     static PyObject *Stat(PyObject *self, PyObject *args);
  1384.  
  1385.  protected:
  1386. -   PyIPropertyStorage(IUnknown *pdisp);
  1387. +   PyIPropertyStorage(IUnknown *pdisp, PyTypeObject *type);
  1388.     ~PyIPropertyStorage();
  1389.  };
  1390. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIRunningObjectTable.h
  1391. --- a/com/win32com/src/include/PyIRunningObjectTable.h  Mon Sep 10 17:23:43 2012 -0400
  1392. +++ b/com/win32com/src/include/PyIRunningObjectTable.h  Mon Sep 17 20:02:58 2012 +0200
  1393. @@ -13,6 +13,6 @@
  1394.     static PyObject *Revoke(PyObject *self, PyObject *args);
  1395.  
  1396.  protected:
  1397. -   PyIRunningObjectTable(IUnknown *);
  1398. +   PyIRunningObjectTable(IUnknown *, PyTypeObject *type);
  1399.     ~PyIRunningObjectTable();
  1400.  };
  1401. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIServiceProvider.h
  1402. --- a/com/win32com/src/include/PyIServiceProvider.h Mon Sep 10 17:23:43 2012 -0400
  1403. +++ b/com/win32com/src/include/PyIServiceProvider.h Mon Sep 17 20:02:58 2012 +0200
  1404. @@ -12,7 +12,7 @@
  1405.     static PyObject *QueryService(PyObject *self, PyObject *args);
  1406.  
  1407.  protected:
  1408. -   PyIServiceProvider(IUnknown *);
  1409. +   PyIServiceProvider(IUnknown *, PyTypeObject *type);
  1410.     ~PyIServiceProvider();
  1411.  };
  1412.  
  1413. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIStorage.h
  1414. --- a/com/win32com/src/include/PyIStorage.h Mon Sep 10 17:23:43 2012 -0400
  1415. +++ b/com/win32com/src/include/PyIStorage.h Mon Sep 17 20:02:58 2012 +0200
  1416. @@ -29,7 +29,7 @@
  1417.     static PyObject *Stat(PyObject *self, PyObject *args);
  1418.  
  1419.  protected:
  1420. -   PyIStorage(IUnknown *pdisp);
  1421. +   PyIStorage(IUnknown *pdisp, PyTypeObject *);
  1422.     ~PyIStorage();
  1423.  };
  1424.  // ---------------------------------------------------
  1425. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PyIStream.h
  1426. --- a/com/win32com/src/include/PyIStream.h  Mon Sep 10 17:23:43 2012 -0400
  1427. +++ b/com/win32com/src/include/PyIStream.h  Mon Sep 17 20:02:58 2012 +0200
  1428. @@ -27,7 +27,7 @@
  1429.     static PyObject *Clone(PyObject *self, PyObject *args);
  1430.  
  1431.  protected:
  1432. -   PyIStream(IUnknown *);
  1433. +   PyIStream(IUnknown *, PyTypeObject *);
  1434.     ~PyIStream();
  1435.  };
  1436.  
  1437. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/PythonCOM.h
  1438. --- a/com/win32com/src/include/PythonCOM.h  Mon Sep 10 17:23:43 2012 -0400
  1439. +++ b/com/win32com/src/include/PythonCOM.h  Mon Sep 17 20:02:58 2012 +0200
  1440. @@ -208,7 +208,7 @@
  1441.     virtual PyObject *iter() {return NULL;}
  1442.     virtual PyObject *iternext() {return NULL;}
  1443.  protected:
  1444. -   PyIBase();
  1445. +   PyIBase(PyTypeObject *ptype);
  1446.     virtual ~PyIBase();
  1447.  
  1448.  public:
  1449. @@ -435,9 +435,9 @@
  1450.  
  1451.  // We need to dynamically create C++ Python objects
  1452.  // These helpers allow each type object to create it.
  1453. -#define MAKE_PYCOM_CTOR(classname) static PyIUnknown * classname::PyObConstruct(IUnknown *pInitObj) {return new classname(pInitObj);}
  1454. +#define MAKE_PYCOM_CTOR(classname) static PyIUnknown * classname::PyObConstruct(IUnknown *pInitObj) {return new classname(pInitObj, &type);}
  1455.  #define MAKE_PYCOM_CTOR_ERRORINFO(classname, iid) \
  1456. -         static PyIUnknown * classname::PyObConstruct(IUnknown *pInitObj) {return new classname(pInitObj);} \
  1457. +         static PyIUnknown * classname::PyObConstruct(IUnknown *pInitObj) {return new classname(pInitObj, &type);} \
  1458.          static PyObject *SetPythonCOMError(PyObject *self, HRESULT hr) {return PyCom_BuildPyException(hr, GetI(self), iid);}
  1459.  #define GET_PYCOM_CTOR(classname) classname::PyObConstruct
  1460.  
  1461. @@ -468,7 +468,7 @@
  1462.     static PyObject *SafeRelease(PyObject *self, PyObject *args);
  1463.  
  1464.  protected:
  1465. -   PyIUnknown(IUnknown *punk);
  1466. +   PyIUnknown(IUnknown *punk, PyTypeObject *ptype);
  1467.     ~PyIUnknown();
  1468.  };
  1469.  
  1470. @@ -489,7 +489,7 @@
  1471.     static PyObject *GetTypeInfo(PyObject *self, PyObject *args);
  1472.     static PyObject *GetTypeInfoCount(PyObject *self, PyObject *args);
  1473.  protected:
  1474. -   PyIDispatch(IUnknown *pdisp);
  1475. +   PyIDispatch(IUnknown *pdisp, PyTypeObject *ptype);
  1476.     ~PyIDispatch();
  1477.  };
  1478.  
  1479. @@ -514,7 +514,7 @@
  1480.     static PyObject *GetNextDispID(PyObject *self, PyObject *args);
  1481.  
  1482.  protected:
  1483. -   PyIDispatchEx(IUnknown *pdisp);
  1484. +   PyIDispatchEx(IUnknown *pdisp, PyTypeObject *ptype);
  1485.     ~PyIDispatchEx();
  1486.  };
  1487.  #endif // NO_PYCOM_IDISPATCHEX
  1488. @@ -533,7 +533,7 @@
  1489.     static PyObject *CreateInstance(PyObject *self, PyObject *args);
  1490.     static PyObject *LockServer(PyObject *self, PyObject *args);
  1491.  protected:
  1492. -   PyIClassFactory(IUnknown *pdisp);
  1493. +   PyIClassFactory(IUnknown *pdisp, PyTypeObject *ptype);
  1494.     ~PyIClassFactory();
  1495.  };
  1496.  
  1497. @@ -552,7 +552,7 @@
  1498.     // The Python methods
  1499.     static PyObject *GetClassInfo(PyObject *self, PyObject *args);
  1500.  protected:
  1501. -   PyIProvideClassInfo(IUnknown *pdisp);
  1502. +   PyIProvideClassInfo(IUnknown *pdisp, PyTypeObject *ptype);
  1503.     ~PyIProvideClassInfo();
  1504.  };
  1505.  
  1506. @@ -566,7 +566,7 @@
  1507.     // The Python methods
  1508.     static PyObject *GetGUID(PyObject *self, PyObject *args);
  1509.  protected:
  1510. -   PyIProvideClassInfo2(IUnknown *pdisp);
  1511. +   PyIProvideClassInfo2(IUnknown *pdisp, PyTypeObject *ptype);
  1512.     ~PyIProvideClassInfo2();
  1513.  };
  1514.  #endif //NO_PYCOM_IPROVIDECLASSINFO
  1515. @@ -593,7 +593,7 @@
  1516.     PyObject *GetTypeComp();
  1517.  
  1518.  protected:
  1519. -   PyITypeInfo(IUnknown *);
  1520. +   PyITypeInfo(IUnknown *, PyTypeObject *);
  1521.     ~PyITypeInfo();
  1522.  };
  1523.  
  1524. @@ -610,7 +610,7 @@
  1525.     PyObject *BindType(OLECHAR* szName);
  1526.  
  1527.  protected:
  1528. -   PyITypeComp(IUnknown *);
  1529. +   PyITypeComp(IUnknown *, PyTypeObject *);
  1530.     ~PyITypeComp();
  1531.  };
  1532.  
  1533. @@ -634,7 +634,7 @@
  1534.     PyObject *GetTypeComp();
  1535.  
  1536.  protected:
  1537. -   PyITypeLib(IUnknown *);
  1538. +   PyITypeLib(IUnknown *, PyTypeObject *);
  1539.     ~PyITypeLib();
  1540.  };
  1541.  
  1542. @@ -655,7 +655,7 @@
  1543.     static PyObject *EnumConnections(PyObject *self, PyObject *args);
  1544.  
  1545.  protected:
  1546. -   PyIConnectionPoint(IUnknown *);
  1547. +   PyIConnectionPoint(IUnknown *, PyTypeObject *);
  1548.     ~PyIConnectionPoint();
  1549.  };
  1550.  
  1551. @@ -670,7 +670,7 @@
  1552.     static PyObject *FindConnectionPoint(PyObject *self, PyObject *args);
  1553.  
  1554.  protected:
  1555. -   PyIConnectionPointContainer(IUnknown *);
  1556. +   PyIConnectionPointContainer(IUnknown *, PyTypeObject *);
  1557.     ~PyIConnectionPointContainer();
  1558.  };
  1559.  
  1560. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32com/src/include/propbag.h
  1561. --- a/com/win32com/src/include/propbag.h    Mon Sep 10 17:23:43 2012 -0400
  1562. +++ b/com/win32com/src/include/propbag.h    Mon Sep 17 20:02:58 2012 +0200
  1563. @@ -20,7 +20,7 @@
  1564.     static PyObject *Write(PyObject *self, PyObject *args);
  1565.  
  1566.  protected:
  1567. -   PyIPropertyBag(IUnknown *pdisp);
  1568. +   PyIPropertyBag(IUnknown *pdisp, PyTypeObject *type);
  1569.     ~PyIPropertyBag();
  1570.  };
  1571.  
  1572. @@ -37,7 +37,7 @@
  1573.     static PyObject *Save(PyObject *self, PyObject *args);
  1574.  
  1575.  protected:
  1576. -   PyIPersistPropertyBag(IUnknown *pdisp);
  1577. +   PyIPersistPropertyBag(IUnknown *pdisp, PyTypeObject *type);
  1578.     ~PyIPersistPropertyBag();
  1579.  };
  1580.  
  1581. @@ -52,7 +52,7 @@
  1582.     static PyObject *AddError(PyObject *self, PyObject *args);
  1583.  
  1584.  protected:
  1585. -   PyIErrorLog(IUnknown *pdisp);
  1586. +   PyIErrorLog(IUnknown *pdisp, PyTypeObject *type);
  1587.     ~PyIErrorLog();
  1588.  };
  1589.  
  1590. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/adsi/src/PyADSIUtil.cpp
  1591. --- a/com/win32comext/adsi/src/PyADSIUtil.cpp   Mon Sep 10 17:23:43 2012 -0400
  1592. +++ b/com/win32comext/adsi/src/PyADSIUtil.cpp   Mon Sep 17 20:02:58 2012 +0200
  1593. @@ -301,13 +301,11 @@
  1594.  {
  1595.  public:
  1596.     PyADS_OBJECT_INFO(void) {
  1597. -       ob_type = &Type;
  1598. -       _Py_NewReference(this);
  1599. +       PyObject_Init(this, &Type);
  1600.         obRDN = obObjectDN = obParentDN = obClassName = NULL;
  1601.     }
  1602.     PyADS_OBJECT_INFO(const ADS_OBJECT_INFO *pInfo) {
  1603. -       ob_type = &Type;
  1604. -       _Py_NewReference(this);
  1605. +       PyObject_Init(this, &Type);
  1606.         obRDN = PyWinObject_FromWCHAR(pInfo->pszRDN);
  1607.         obObjectDN = PyWinObject_FromWCHAR(pInfo->pszObjectDN);
  1608.         obParentDN = PyWinObject_FromWCHAR(pInfo->pszParentDN);
  1609. @@ -374,8 +372,7 @@
  1610.  {
  1611.  public:
  1612.     PyADS_ATTR_INFO(void) {
  1613. -       ob_type = &Type;
  1614. -       _Py_NewReference(this);
  1615. +       PyObject_Init(this, &Type);
  1616.         dwControlCode = 0;
  1617.         dwADsType = ADSTYPE_INVALID;
  1618.         obValues = PyList_New(0);
  1619. @@ -385,8 +382,7 @@
  1620.         bufValues = NULL;
  1621.     }
  1622.     PyADS_ATTR_INFO(const ADS_ATTR_INFO *pInfo) {
  1623. -       ob_type = &Type;
  1624. -       _Py_NewReference(this);
  1625. +       PyObject_Init(this, &Type);
  1626.         bufName = NULL;
  1627.         bufValues = NULL;
  1628.         obName = PyWinObject_FromWCHAR(pInfo->pszAttrName);
  1629. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/adsi/src/PyDSOPObjects.cpp
  1630. --- a/com/win32comext/adsi/src/PyDSOPObjects.cpp    Mon Sep 10 17:23:43 2012 -0400
  1631. +++ b/com/win32comext/adsi/src/PyDSOPObjects.cpp    Mon Sep 17 20:02:58 2012 +0200
  1632. @@ -192,13 +192,12 @@
  1633.  
  1634.  PyDSOP_SCOPE_INIT_INFOs::PyDSOP_SCOPE_INIT_INFOs(DSOP_SCOPE_INIT_INFO *_scopes, int _count)
  1635.  {
  1636. -   ob_type = &PyDSOP_SCOPE_INIT_INFOsType;
  1637.     pScopes = _scopes;
  1638.     count = _count;
  1639.     memset(pScopes, 0, sizeof(DSOP_SCOPE_INIT_INFO) * count);
  1640.     for (int i=0;i<count;i++)
  1641.         pScopes[i].cbSize = sizeof(DSOP_SCOPE_INIT_INFO);
  1642. -   _Py_NewReference(this);
  1643. +   PyObject_Init(this, &PyDSOP_SCOPE_INIT_INFOsType);
  1644.  }
  1645.  
  1646.  PyDSOP_SCOPE_INIT_INFOs::~PyDSOP_SCOPE_INIT_INFOs()
  1647. @@ -288,12 +287,11 @@
  1648.  
  1649.  PyDSOP_SCOPE_INIT_INFO::PyDSOP_SCOPE_INIT_INFO(PyDSOP_SCOPE_INIT_INFOs *_owner, int _index)
  1650.  {
  1651. -   ob_type = &PyDSOP_SCOPE_INIT_INFOType;
  1652.     owner = _owner;
  1653.     index = _index;
  1654.  
  1655.     Py_INCREF(owner);
  1656. -   _Py_NewReference(this);
  1657. +   PyObject_Init(this, &PyDSOP_SCOPE_INIT_INFOType);
  1658.  }
  1659.  
  1660.  PyDSOP_SCOPE_INIT_INFO::~PyDSOP_SCOPE_INIT_INFO()
  1661. @@ -410,10 +408,9 @@
  1662.  
  1663.  PyDSOP_FILTER_FLAGS::PyDSOP_FILTER_FLAGS(PyDSOP_SCOPE_INIT_INFO *_owner)
  1664.  {
  1665. -   ob_type = &PyDSOP_FILTER_FLAGSType;
  1666.     owner = _owner;
  1667.     Py_INCREF(owner);
  1668. -   _Py_NewReference(this);
  1669. +   PyObject_Init(this, &PyDSOP_FILTER_FLAGSType);
  1670.  }
  1671.  
  1672.  PyDSOP_FILTER_FLAGS::~PyDSOP_FILTER_FLAGS()
  1673. @@ -510,10 +507,9 @@
  1674.  
  1675.  PyDSOP_UPLEVEL_FILTER_FLAGS::PyDSOP_UPLEVEL_FILTER_FLAGS(PyDSOP_SCOPE_INIT_INFO *_owner)
  1676.  {
  1677. -   ob_type = &PyDSOP_UPLEVEL_FILTER_FLAGSType;
  1678.     owner = _owner;
  1679.     Py_INCREF(owner);
  1680. -   _Py_NewReference(this);
  1681. +   PyObject_Init(this, &PyDSOP_UPLEVEL_FILTER_FLAGSType);
  1682.  }
  1683.  
  1684.  PyDSOP_UPLEVEL_FILTER_FLAGS::~PyDSOP_UPLEVEL_FILTER_FLAGS()
  1685. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/adsi/src/PyIADs.cpp
  1686. --- a/com/win32comext/adsi/src/PyIADs.cpp   Mon Sep 10 17:23:43 2012 -0400
  1687. +++ b/com/win32comext/adsi/src/PyIADs.cpp   Mon Sep 17 20:02:58 2012 +0200
  1688. @@ -13,10 +13,9 @@
  1689.  //
  1690.  // Interface Implementation
  1691.  
  1692. -PyIADs::PyIADs(IUnknown *pdisp):
  1693. -   PyIDispatch(pdisp)
  1694. +PyIADs::PyIADs(IUnknown *pdisp, PyTypeObject *ptype):
  1695. +   PyIDispatch(pdisp, ptype)
  1696.  {
  1697. -   ob_type = &type;
  1698.  }
  1699.  
  1700.  PyIADs::~PyIADs()
  1701. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/adsi/src/PyIADs.h
  1702. --- a/com/win32comext/adsi/src/PyIADs.h Mon Sep 10 17:23:43 2012 -0400
  1703. +++ b/com/win32comext/adsi/src/PyIADs.h Mon Sep 17 20:02:58 2012 +0200
  1704. @@ -21,6 +21,6 @@
  1705.     static PyObject *GetInfoEx(PyObject *self, PyObject *args);
  1706.  
  1707.  protected:
  1708. -   PyIADs(IUnknown *pdisp);
  1709. +   PyIADs(IUnknown *pdisp, PyTypeObject *ptype);
  1710.     ~PyIADs();
  1711.  };
  1712. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/adsi/src/PyIADsContainer.i
  1713. --- a/com/win32comext/adsi/src/PyIADsContainer.i    Mon Sep 10 17:23:43 2012 -0400
  1714. +++ b/com/win32comext/adsi/src/PyIADsContainer.i    Mon Sep 17 20:02:58 2012 +0200
  1715. @@ -10,10 +10,9 @@
  1716.  #include "PyIADsContainer.h"
  1717.  #define SWIG_THIS_IID IID_IADsContainer
  1718.  
  1719. -PyIADsContainer::PyIADsContainer(IUnknown *pDisp) :
  1720. -   PyIDispatch(pDisp)
  1721. +PyIADsContainer::PyIADsContainer(IUnknown *pDisp, PyTypeObject *pType) :
  1722. +   PyIDispatch(pDisp, pType)
  1723.  {
  1724. -   ob_type = &type;
  1725.  }
  1726.  
  1727.  PyIADsContainer::~PyIADsContainer()
  1728. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/adsi/src/PyIADsDeleteOps.i
  1729. --- a/com/win32comext/adsi/src/PyIADsDeleteOps.i    Mon Sep 10 17:23:43 2012 -0400
  1730. +++ b/com/win32comext/adsi/src/PyIADsDeleteOps.i    Mon Sep 17 20:02:58 2012 +0200
  1731. @@ -10,10 +10,9 @@
  1732.  #include "PyIADsDeleteOps.h"
  1733.  #define SWIG_THIS_IID IID_IADsDeleteOps
  1734.  
  1735. -PyIADsDeleteOps::PyIADsDeleteOps(IUnknown *pDisp) :
  1736. -   PyIDispatch(pDisp)
  1737. +PyIADsDeleteOps::PyIADsDeleteOps(IUnknown *pDisp, PyTypeObject *pType) :
  1738. +   PyIDispatch(pDisp, pType)
  1739.  {
  1740. -   ob_type = &type;
  1741.  }
  1742.  
  1743.  PyIADsDeleteOps::~PyIADsDeleteOps()
  1744. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/adsi/src/PyIADsUser.i
  1745. --- a/com/win32comext/adsi/src/PyIADsUser.i Mon Sep 10 17:23:43 2012 -0400
  1746. +++ b/com/win32comext/adsi/src/PyIADsUser.i Mon Sep 17 20:02:58 2012 +0200
  1747. @@ -11,10 +11,9 @@
  1748.  
  1749.  #define SWIG_THIS_IID IID_IADsUser
  1750.  
  1751. -PyIADsUser::PyIADsUser(IUnknown *pDisp) :
  1752. -   PyIADs(pDisp)
  1753. +PyIADsUser::PyIADsUser(IUnknown *pDisp, PyTypeObject *pType) :
  1754. +   PyIADs(pDisp, pType)
  1755.  {
  1756. -   ob_type = &type;
  1757.  }
  1758.  
  1759.  PyIADsUser::~PyIADsUser()
  1760. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/adsi/src/PyIDirectoryObject.i
  1761. --- a/com/win32comext/adsi/src/PyIDirectoryObject.i Mon Sep 10 17:23:43 2012 -0400
  1762. +++ b/com/win32comext/adsi/src/PyIDirectoryObject.i Mon Sep 17 20:02:58 2012 +0200
  1763. @@ -11,10 +11,9 @@
  1764.  
  1765.  #define SWIG_THIS_IID IID_IDirectoryObject
  1766.  
  1767. -PyIDirectoryObject::PyIDirectoryObject(IUnknown *pDisp) :
  1768. -   PyIUnknown(pDisp)
  1769. +PyIDirectoryObject::PyIDirectoryObject(IUnknown *pDisp, PyTypeObject *pType) :
  1770. +   PyIUnknown(pDisp, pType)
  1771.  {
  1772. -   ob_type = &type;
  1773.  }
  1774.  
  1775.  PyIDirectoryObject::~PyIDirectoryObject()
  1776. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/adsi/src/PyIDirectorySearch.i
  1777. --- a/com/win32comext/adsi/src/PyIDirectorySearch.i Mon Sep 10 17:23:43 2012 -0400
  1778. +++ b/com/win32comext/adsi/src/PyIDirectorySearch.i Mon Sep 17 20:02:58 2012 +0200
  1779. @@ -12,10 +12,9 @@
  1780.  
  1781.  #define SWIG_THIS_IID IID_IDirectorySearch
  1782.  
  1783. -PyIDirectorySearch::PyIDirectorySearch(IUnknown *pDisp) :
  1784. -   PyIUnknown(pDisp)
  1785. +PyIDirectorySearch::PyIDirectorySearch(IUnknown *pDisp, PyTypeObject *pType) :
  1786. +   PyIUnknown(pDisp, pType)
  1787.  {
  1788. -   ob_type = &type;
  1789.  }
  1790.  
  1791.  PyIDirectorySearch::~PyIDirectorySearch()
  1792. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/adsi/src/PyIDsObjectPicker.i
  1793. --- a/com/win32comext/adsi/src/PyIDsObjectPicker.i  Mon Sep 10 17:23:43 2012 -0400
  1794. +++ b/com/win32comext/adsi/src/PyIDsObjectPicker.i  Mon Sep 17 20:02:58 2012 +0200
  1795. @@ -14,10 +14,9 @@
  1796.  
  1797.  #define SWIG_THIS_IID IID_IDsObjectPicker
  1798.  
  1799. -PyIDsObjectPicker::PyIDsObjectPicker(IUnknown *pDisp) :
  1800. -   PyIUnknown(pDisp)
  1801. +PyIDsObjectPicker::PyIDsObjectPicker(IUnknown *pDisp, PyTypeObject *pType) :
  1802. +   PyIUnknown(pDisp, pType)
  1803.  {
  1804. -   ob_type = &type;
  1805.  }
  1806.  
  1807.  PyIDsObjectPicker::~PyIDsObjectPicker()
  1808. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIObjectWithSite.cpp
  1809. --- a/com/win32comext/axcontrol/src/PyIObjectWithSite.cpp   Mon Sep 10 17:23:43 2012 -0400
  1810. +++ b/com/win32comext/axcontrol/src/PyIObjectWithSite.cpp   Mon Sep 17 20:02:58 2012 +0200
  1811. @@ -9,10 +9,9 @@
  1812.  //
  1813.  // Interface Implementation
  1814.  
  1815. -PyIObjectWithSite::PyIObjectWithSite(IUnknown *pdisp):
  1816. -   PyIUnknown(pdisp)
  1817. +PyIObjectWithSite::PyIObjectWithSite(IUnknown *pdisp, PyTypeObject *ptype):
  1818. +   PyIUnknown(pdisp, ptype)
  1819.  {
  1820. -   ob_type = &type;
  1821.  }
  1822.  
  1823.  PyIObjectWithSite::~PyIObjectWithSite()
  1824. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIObjectWithSite.h
  1825. --- a/com/win32comext/axcontrol/src/PyIObjectWithSite.h Mon Sep 10 17:23:43 2012 -0400
  1826. +++ b/com/win32comext/axcontrol/src/PyIObjectWithSite.h Mon Sep 17 20:02:58 2012 +0200
  1827. @@ -16,7 +16,7 @@
  1828.     static PyObject *GetSite(PyObject *self, PyObject *args);
  1829.  
  1830.  protected:
  1831. -   PyIObjectWithSite(IUnknown *pdisp);
  1832. +   PyIObjectWithSite(IUnknown *pdisp, PyTypeObject *ptype);
  1833.     ~PyIObjectWithSite();
  1834.  };
  1835.  // ---------------------------------------------------
  1836. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleClientSite.cpp
  1837. --- a/com/win32comext/axcontrol/src/PyIOleClientSite.cpp    Mon Sep 10 17:23:43 2012 -0400
  1838. +++ b/com/win32comext/axcontrol/src/PyIOleClientSite.cpp    Mon Sep 17 20:02:58 2012 +0200
  1839. @@ -9,10 +9,9 @@
  1840.  //
  1841.  // Interface Implementation
  1842.  
  1843. -PyIOleClientSite::PyIOleClientSite(IUnknown *pdisp):
  1844. -   PyIUnknown(pdisp)
  1845. +PyIOleClientSite::PyIOleClientSite(IUnknown *pdisp, PyTypeObject *ptype):
  1846. +   PyIUnknown(pdisp, ptype)
  1847.  {
  1848. -   ob_type = &type;
  1849.  }
  1850.  
  1851.  PyIOleClientSite::~PyIOleClientSite()
  1852. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleClientSite.h
  1853. --- a/com/win32comext/axcontrol/src/PyIOleClientSite.h  Mon Sep 10 17:23:43 2012 -0400
  1854. +++ b/com/win32comext/axcontrol/src/PyIOleClientSite.h  Mon Sep 17 20:02:58 2012 +0200
  1855. @@ -20,7 +20,7 @@
  1856.     static PyObject *RequestNewObjectLayout(PyObject *self, PyObject *args);
  1857.  
  1858.  protected:
  1859. -   PyIOleClientSite(IUnknown *pdisp);
  1860. +   PyIOleClientSite(IUnknown *pdisp, PyTypeObject *ptype);
  1861.     ~PyIOleClientSite();
  1862.  };
  1863.  // ---------------------------------------------------
  1864. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleCommandTarget.cpp
  1865. --- a/com/win32comext/axcontrol/src/PyIOleCommandTarget.cpp Mon Sep 10 17:23:43 2012 -0400
  1866. +++ b/com/win32comext/axcontrol/src/PyIOleCommandTarget.cpp Mon Sep 17 20:02:58 2012 +0200
  1867. @@ -26,10 +26,9 @@
  1868.  //
  1869.  // Interface Implementation
  1870.  
  1871. -PyIOleCommandTarget::PyIOleCommandTarget(IUnknown *pdisp):
  1872. -   PyIUnknown(pdisp)
  1873. +PyIOleCommandTarget::PyIOleCommandTarget(IUnknown *pdisp, PyTypeObject *ptype):
  1874. +   PyIUnknown(pdisp, ptype)
  1875.  {
  1876. -   ob_type = &type;
  1877.  }
  1878.  
  1879.  PyIOleCommandTarget::~PyIOleCommandTarget()
  1880. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleCommandTarget.h
  1881. --- a/com/win32comext/axcontrol/src/PyIOleCommandTarget.h   Mon Sep 10 17:23:43 2012 -0400
  1882. +++ b/com/win32comext/axcontrol/src/PyIOleCommandTarget.h   Mon Sep 17 20:02:58 2012 +0200
  1883. @@ -18,7 +18,7 @@
  1884.     static PyObject *Exec(PyObject *self, PyObject *args);
  1885.  
  1886.  protected:
  1887. -   PyIOleCommandTarget(IUnknown *pdisp);
  1888. +   PyIOleCommandTarget(IUnknown *pdisp, PyTypeObject *ptype);
  1889.     ~PyIOleCommandTarget();
  1890.  };
  1891.  // ---------------------------------------------------
  1892. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleControl.cpp
  1893. --- a/com/win32comext/axcontrol/src/PyIOleControl.cpp   Mon Sep 10 17:23:43 2012 -0400
  1894. +++ b/com/win32comext/axcontrol/src/PyIOleControl.cpp   Mon Sep 17 20:02:58 2012 +0200
  1895. @@ -9,10 +9,9 @@
  1896.  //
  1897.  // Interface Implementation
  1898.  
  1899. -PyIOleControl::PyIOleControl(IUnknown *pdisp):
  1900. -   PyIUnknown(pdisp)
  1901. +PyIOleControl::PyIOleControl(IUnknown *pdisp, PyTypeObject *ptype):
  1902. +   PyIUnknown(pdisp, ptype)
  1903.  {
  1904. -   ob_type = &type;
  1905.  }
  1906.  
  1907.  PyIOleControl::~PyIOleControl()
  1908. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleControl.h
  1909. --- a/com/win32comext/axcontrol/src/PyIOleControl.h Mon Sep 10 17:23:43 2012 -0400
  1910. +++ b/com/win32comext/axcontrol/src/PyIOleControl.h Mon Sep 17 20:02:58 2012 +0200
  1911. @@ -18,7 +18,7 @@
  1912.     static PyObject *FreezeEvents(PyObject *self, PyObject *args);
  1913.  
  1914.  protected:
  1915. -   PyIOleControl(IUnknown *pdisp);
  1916. +   PyIOleControl(IUnknown *pdisp, PyTypeObject *ptype);
  1917.     ~PyIOleControl();
  1918.  };
  1919.  // ---------------------------------------------------
  1920. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleControlSite.cpp
  1921. --- a/com/win32comext/axcontrol/src/PyIOleControlSite.cpp   Mon Sep 10 17:23:43 2012 -0400
  1922. +++ b/com/win32comext/axcontrol/src/PyIOleControlSite.cpp   Mon Sep 17 20:02:58 2012 +0200
  1923. @@ -9,10 +9,9 @@
  1924.  //
  1925.  // Interface Implementation
  1926.  
  1927. -PyIOleControlSite::PyIOleControlSite(IUnknown *pdisp):
  1928. -   PyIUnknown(pdisp)
  1929. +PyIOleControlSite::PyIOleControlSite(IUnknown *pdisp, PyTypeObject *ptype):
  1930. +   PyIUnknown(pdisp, ptype)
  1931.  {
  1932. -   ob_type = &type;
  1933.  }
  1934.  
  1935.  PyIOleControlSite::~PyIOleControlSite()
  1936. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleControlSite.h
  1937. --- a/com/win32comext/axcontrol/src/PyIOleControlSite.h Mon Sep 10 17:23:43 2012 -0400
  1938. +++ b/com/win32comext/axcontrol/src/PyIOleControlSite.h Mon Sep 17 20:02:58 2012 +0200
  1939. @@ -21,7 +21,7 @@
  1940.     static PyObject *ShowPropertyFrame(PyObject *self, PyObject *args);
  1941.  
  1942.  protected:
  1943. -   PyIOleControlSite(IUnknown *pdisp);
  1944. +   PyIOleControlSite(IUnknown *pdisp, PyTypeObject *ptype);
  1945.     ~PyIOleControlSite();
  1946.  };
  1947.  // ---------------------------------------------------
  1948. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleInPlaceActiveObject.cpp
  1949. --- a/com/win32comext/axcontrol/src/PyIOleInPlaceActiveObject.cpp   Mon Sep 10 17:23:43 2012 -0400
  1950. +++ b/com/win32comext/axcontrol/src/PyIOleInPlaceActiveObject.cpp   Mon Sep 17 20:02:58 2012 +0200
  1951. @@ -10,10 +10,9 @@
  1952.  //
  1953.  // Interface Implementation
  1954.  
  1955. -PyIOleInPlaceActiveObject::PyIOleInPlaceActiveObject(IUnknown *pdisp):
  1956. -   PyIOleWindow(pdisp)
  1957. +PyIOleInPlaceActiveObject::PyIOleInPlaceActiveObject(IUnknown *pdisp, PyTypeObject *ptype):
  1958. +   PyIOleWindow(pdisp, ptype)
  1959.  {
  1960. -   ob_type = &type;
  1961.  }
  1962.  
  1963.  PyIOleInPlaceActiveObject::~PyIOleInPlaceActiveObject()
  1964. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleInPlaceActiveObject.h
  1965. --- a/com/win32comext/axcontrol/src/PyIOleInPlaceActiveObject.h Mon Sep 10 17:23:43 2012 -0400
  1966. +++ b/com/win32comext/axcontrol/src/PyIOleInPlaceActiveObject.h Mon Sep 17 20:02:58 2012 +0200
  1967. @@ -19,7 +19,7 @@
  1968.     static PyObject *EnableModeless(PyObject *self, PyObject *args);
  1969.  
  1970.  protected:
  1971. -   PyIOleInPlaceActiveObject(IUnknown *pdisp);
  1972. +   PyIOleInPlaceActiveObject(IUnknown *pdisp, PyTypeObject *ptype);
  1973.     ~PyIOleInPlaceActiveObject();
  1974.  };
  1975.  // ---------------------------------------------------
  1976. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleInPlaceFrame.cpp
  1977. --- a/com/win32comext/axcontrol/src/PyIOleInPlaceFrame.cpp  Mon Sep 10 17:23:43 2012 -0400
  1978. +++ b/com/win32comext/axcontrol/src/PyIOleInPlaceFrame.cpp  Mon Sep 17 20:02:58 2012 +0200
  1979. @@ -12,10 +12,9 @@
  1980.  //
  1981.  // Interface Implementation
  1982.  
  1983. -PyIOleInPlaceFrame::PyIOleInPlaceFrame(IUnknown *pdisp):
  1984. -   PyIOleInPlaceUIWindow(pdisp)
  1985. +PyIOleInPlaceFrame::PyIOleInPlaceFrame(IUnknown *pdisp, PyTypeObject *ptype):
  1986. +   PyIOleInPlaceUIWindow(pdisp, ptype)
  1987.  {
  1988. -   ob_type = &type;
  1989.  }
  1990.  
  1991.  PyIOleInPlaceFrame::~PyIOleInPlaceFrame()
  1992. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleInPlaceFrame.h
  1993. --- a/com/win32comext/axcontrol/src/PyIOleInPlaceFrame.h    Mon Sep 10 17:23:43 2012 -0400
  1994. +++ b/com/win32comext/axcontrol/src/PyIOleInPlaceFrame.h    Mon Sep 17 20:02:58 2012 +0200
  1995. @@ -20,7 +20,7 @@
  1996.     static PyObject *TranslateAccelerator(PyObject *self, PyObject *args);
  1997.  
  1998.  protected:
  1999. -   PyIOleInPlaceFrame(IUnknown *pdisp);
  2000. +   PyIOleInPlaceFrame(IUnknown *pdisp, PyTypeObject *ptype);
  2001.     ~PyIOleInPlaceFrame();
  2002.  };
  2003.  // ---------------------------------------------------
  2004. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleInPlaceObject.cpp
  2005. --- a/com/win32comext/axcontrol/src/PyIOleInPlaceObject.cpp Mon Sep 10 17:23:43 2012 -0400
  2006. +++ b/com/win32comext/axcontrol/src/PyIOleInPlaceObject.cpp Mon Sep 17 20:02:58 2012 +0200
  2007. @@ -10,10 +10,9 @@
  2008.  //
  2009.  // Interface Implementation
  2010.  
  2011. -PyIOleInPlaceObject::PyIOleInPlaceObject(IUnknown *pdisp):
  2012. -   PyIOleWindow(pdisp)
  2013. +PyIOleInPlaceObject::PyIOleInPlaceObject(IUnknown *pdisp, PyTypeObject *ptype):
  2014. +   PyIOleWindow(pdisp, ptype)
  2015.  {
  2016. -   ob_type = &type;
  2017.  }
  2018.  
  2019.  PyIOleInPlaceObject::~PyIOleInPlaceObject()
  2020. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleInPlaceObject.h
  2021. --- a/com/win32comext/axcontrol/src/PyIOleInPlaceObject.h   Mon Sep 10 17:23:43 2012 -0400
  2022. +++ b/com/win32comext/axcontrol/src/PyIOleInPlaceObject.h   Mon Sep 17 20:02:58 2012 +0200
  2023. @@ -18,7 +18,7 @@
  2024.     static PyObject *ReactivateAndUndo(PyObject *self, PyObject *args);
  2025.  
  2026.  protected:
  2027. -   PyIOleInPlaceObject(IUnknown *pdisp);
  2028. +   PyIOleInPlaceObject(IUnknown *pdisp, PyTypeObject *ptype);
  2029.     ~PyIOleInPlaceObject();
  2030.  };
  2031.  // ---------------------------------------------------
  2032. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleInPlaceSite.cpp
  2033. --- a/com/win32comext/axcontrol/src/PyIOleInPlaceSite.cpp   Mon Sep 10 17:23:43 2012 -0400
  2034. +++ b/com/win32comext/axcontrol/src/PyIOleInPlaceSite.cpp   Mon Sep 17 20:02:58 2012 +0200
  2035. @@ -14,10 +14,9 @@
  2036.  extern PyObject *PyObject_FromOLEINPLACEFRAMEINFO(const OLEINPLACEFRAMEINFO *pfi);
  2037.  
  2038.  
  2039. -PyIOleInPlaceSite::PyIOleInPlaceSite(IUnknown *pdisp):
  2040. -   PyIOleWindow(pdisp)
  2041. +PyIOleInPlaceSite::PyIOleInPlaceSite(IUnknown *pdisp, PyTypeObject *ptype):
  2042. +   PyIOleWindow(pdisp, ptype)
  2043.  {
  2044. -   ob_type = &type;
  2045.  }
  2046.  
  2047.  PyIOleInPlaceSite::~PyIOleInPlaceSite()
  2048. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleInPlaceSite.h
  2049. --- a/com/win32comext/axcontrol/src/PyIOleInPlaceSite.h Mon Sep 10 17:23:43 2012 -0400
  2050. +++ b/com/win32comext/axcontrol/src/PyIOleInPlaceSite.h Mon Sep 17 20:02:58 2012 +0200
  2051. @@ -24,7 +24,7 @@
  2052.     static PyObject *OnPosRectChange(PyObject *self, PyObject *args);
  2053.  
  2054.  protected:
  2055. -   PyIOleInPlaceSite(IUnknown *pdisp);
  2056. +   PyIOleInPlaceSite(IUnknown *pdisp, PyTypeObject *ptype);
  2057.     ~PyIOleInPlaceSite();
  2058.  };
  2059.  // ---------------------------------------------------
  2060. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleInPlaceSiteEx.cpp
  2061. --- a/com/win32comext/axcontrol/src/PyIOleInPlaceSiteEx.cpp Mon Sep 10 17:23:43 2012 -0400
  2062. +++ b/com/win32comext/axcontrol/src/PyIOleInPlaceSiteEx.cpp Mon Sep 17 20:02:58 2012 +0200
  2063. @@ -11,10 +11,9 @@
  2064.  //
  2065.  // Interface Implementation
  2066.  
  2067. -PyIOleInPlaceSiteEx::PyIOleInPlaceSiteEx(IUnknown *pdisp):
  2068. -   PyIOleInPlaceSite(pdisp)
  2069. +PyIOleInPlaceSiteEx::PyIOleInPlaceSiteEx(IUnknown *pdisp, PyTypeObject *ptype):
  2070. +   PyIOleInPlaceSite(pdisp, ptype)
  2071.  {
  2072. -   ob_type = &type;
  2073.  }
  2074.  
  2075.  PyIOleInPlaceSiteEx::~PyIOleInPlaceSiteEx()
  2076. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleInPlaceSiteEx.h
  2077. --- a/com/win32comext/axcontrol/src/PyIOleInPlaceSiteEx.h   Mon Sep 10 17:23:43 2012 -0400
  2078. +++ b/com/win32comext/axcontrol/src/PyIOleInPlaceSiteEx.h   Mon Sep 17 20:02:58 2012 +0200
  2079. @@ -17,7 +17,7 @@
  2080.     static PyObject *RequestUIActivate(PyObject *self, PyObject *args);
  2081.  
  2082.  protected:
  2083. -   PyIOleInPlaceSiteEx(IUnknown *pdisp);
  2084. +   PyIOleInPlaceSiteEx(IUnknown *pdisp, PyTypeObject *ptype);
  2085.     ~PyIOleInPlaceSiteEx();
  2086.  };
  2087.  // ---------------------------------------------------
  2088. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleInPlaceSiteWindowless.cpp
  2089. --- a/com/win32comext/axcontrol/src/PyIOleInPlaceSiteWindowless.cpp Mon Sep 10 17:23:43 2012 -0400
  2090. +++ b/com/win32comext/axcontrol/src/PyIOleInPlaceSiteWindowless.cpp Mon Sep 17 20:02:58 2012 +0200
  2091. @@ -12,10 +12,9 @@
  2092.  //
  2093.  // Interface Implementation
  2094.  
  2095. -PyIOleInPlaceSiteWindowless::PyIOleInPlaceSiteWindowless(IUnknown *pdisp):
  2096. -   PyIOleInPlaceSiteEx(pdisp)
  2097. +PyIOleInPlaceSiteWindowless::PyIOleInPlaceSiteWindowless(IUnknown *pdisp, PyTypeObject *ptype):
  2098. +   PyIOleInPlaceSiteEx(pdisp, ptype)
  2099.  {
  2100. -   ob_type = &type;
  2101.  }
  2102.  
  2103.  PyIOleInPlaceSiteWindowless::~PyIOleInPlaceSiteWindowless()
  2104. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleInPlaceSiteWindowless.h
  2105. --- a/com/win32comext/axcontrol/src/PyIOleInPlaceSiteWindowless.h   Mon Sep 10 17:23:43 2012 -0400
  2106. +++ b/com/win32comext/axcontrol/src/PyIOleInPlaceSiteWindowless.h   Mon Sep 17 20:02:58 2012 +0200
  2107. @@ -26,7 +26,7 @@
  2108.     static PyObject *OnDefWindowMessage(PyObject *self, PyObject *args);
  2109.  
  2110.  protected:
  2111. -   PyIOleInPlaceSiteWindowless(IUnknown *pdisp);
  2112. +   PyIOleInPlaceSiteWindowless(IUnknown *pdisp, PyTypeObject *ptype);
  2113.     ~PyIOleInPlaceSiteWindowless();
  2114.  };
  2115.  // ---------------------------------------------------
  2116. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleInPlaceUIWindow.cpp
  2117. --- a/com/win32comext/axcontrol/src/PyIOleInPlaceUIWindow.cpp   Mon Sep 10 17:23:43 2012 -0400
  2118. +++ b/com/win32comext/axcontrol/src/PyIOleInPlaceUIWindow.cpp   Mon Sep 17 20:02:58 2012 +0200
  2119. @@ -10,10 +10,9 @@
  2120.  //
  2121.  // Interface Implementation
  2122.  
  2123. -PyIOleInPlaceUIWindow::PyIOleInPlaceUIWindow(IUnknown *pdisp):
  2124. -   PyIOleWindow(pdisp)
  2125. +PyIOleInPlaceUIWindow::PyIOleInPlaceUIWindow(IUnknown *pdisp, PyTypeObject *ptype):
  2126. +   PyIOleWindow(pdisp, ptype)
  2127.  {
  2128. -   ob_type = &type;
  2129.  }
  2130.  
  2131.  PyIOleInPlaceUIWindow::~PyIOleInPlaceUIWindow()
  2132. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleInPlaceUIWindow.h
  2133. --- a/com/win32comext/axcontrol/src/PyIOleInPlaceUIWindow.h Mon Sep 10 17:23:43 2012 -0400
  2134. +++ b/com/win32comext/axcontrol/src/PyIOleInPlaceUIWindow.h Mon Sep 17 20:02:58 2012 +0200
  2135. @@ -18,7 +18,7 @@
  2136.     static PyObject *SetActiveObject(PyObject *self, PyObject *args);
  2137.  
  2138.  protected:
  2139. -   PyIOleInPlaceUIWindow(IUnknown *pdisp);
  2140. +   PyIOleInPlaceUIWindow(IUnknown *pdisp, PyTypeObject *ptype);
  2141.     ~PyIOleInPlaceUIWindow();
  2142.  };
  2143.  // ---------------------------------------------------
  2144. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleObject.cpp
  2145. --- a/com/win32comext/axcontrol/src/PyIOleObject.cpp    Mon Sep 10 17:23:43 2012 -0400
  2146. +++ b/com/win32comext/axcontrol/src/PyIOleObject.cpp    Mon Sep 17 20:02:58 2012 +0200
  2147. @@ -12,10 +12,9 @@
  2148.  //
  2149.  // Interface Implementation
  2150.  
  2151. -PyIOleObject::PyIOleObject(IUnknown *pdisp):
  2152. -   PyIUnknown(pdisp)
  2153. +PyIOleObject::PyIOleObject(IUnknown *pdisp, PyTypeObject *ptype):
  2154. +   PyIUnknown(pdisp, ptype)
  2155.  {
  2156. -   ob_type = &type;
  2157.  }
  2158.  
  2159.  PyIOleObject::~PyIOleObject()
  2160. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIOleObject.h
  2161. --- a/com/win32comext/axcontrol/src/PyIOleObject.h  Mon Sep 10 17:23:43 2012 -0400
  2162. +++ b/com/win32comext/axcontrol/src/PyIOleObject.h  Mon Sep 17 20:02:58 2012 +0200
  2163. @@ -35,7 +35,7 @@
  2164.     static PyObject *SetColorScheme(PyObject *self, PyObject *args);
  2165.  
  2166.  protected:
  2167. -   PyIOleObject(IUnknown *pdisp);
  2168. +   PyIOleObject(IUnknown *pdisp, PyTypeObject *ptype);
  2169.     ~PyIOleObject();
  2170.  };
  2171.  // ---------------------------------------------------
  2172. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyISpecifyPropertyPages.cpp
  2173. --- a/com/win32comext/axcontrol/src/PyISpecifyPropertyPages.cpp Mon Sep 10 17:23:43 2012 -0400
  2174. +++ b/com/win32comext/axcontrol/src/PyISpecifyPropertyPages.cpp Mon Sep 17 20:02:58 2012 +0200
  2175. @@ -11,10 +11,9 @@
  2176.  //
  2177.  // Interface Implementation
  2178.  
  2179. -PyISpecifyPropertyPages::PyISpecifyPropertyPages(IUnknown *pdisp):
  2180. -   PyIUnknown(pdisp)
  2181. +PyISpecifyPropertyPages::PyISpecifyPropertyPages(IUnknown *pdisp, PyTypeObject *ptype):
  2182. +   PyIUnknown(pdisp, ptype)
  2183.  {
  2184. -   ob_type = &type;
  2185.  }
  2186.  
  2187.  PyISpecifyPropertyPages::~PyISpecifyPropertyPages()
  2188. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyISpecifyPropertyPages.h
  2189. --- a/com/win32comext/axcontrol/src/PyISpecifyPropertyPages.h   Mon Sep 10 17:23:43 2012 -0400
  2190. +++ b/com/win32comext/axcontrol/src/PyISpecifyPropertyPages.h   Mon Sep 17 20:02:58 2012 +0200
  2191. @@ -15,7 +15,7 @@
  2192.     static PyObject *GetPages(PyObject *self, PyObject *args);
  2193.  
  2194.  protected:
  2195. -   PyISpecifyPropertyPages(IUnknown *pdisp);
  2196. +   PyISpecifyPropertyPages(IUnknown *pdisp, PyTypeObject *ptype);
  2197.     ~PyISpecifyPropertyPages();
  2198.  };
  2199.  // ---------------------------------------------------
  2200. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIViewObject.cpp
  2201. --- a/com/win32comext/axcontrol/src/PyIViewObject.cpp   Mon Sep 10 17:23:43 2012 -0400
  2202. +++ b/com/win32comext/axcontrol/src/PyIViewObject.cpp   Mon Sep 17 20:02:58 2012 +0200
  2203. @@ -9,10 +9,9 @@
  2204.  //
  2205.  // Interface Implementation
  2206.  
  2207. -PyIViewObject::PyIViewObject(IUnknown *pdisp):
  2208. -   PyIUnknown(pdisp)
  2209. +PyIViewObject::PyIViewObject(IUnknown *pdisp, PyTypeObject *ptype):
  2210. +   PyIUnknown(pdisp, ptype)
  2211.  {
  2212. -   ob_type = &type;
  2213.  }
  2214.  
  2215.  PyIViewObject::~PyIViewObject()
  2216. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIViewObject.h
  2217. --- a/com/win32comext/axcontrol/src/PyIViewObject.h Mon Sep 10 17:23:43 2012 -0400
  2218. +++ b/com/win32comext/axcontrol/src/PyIViewObject.h Mon Sep 17 20:02:58 2012 +0200
  2219. @@ -20,7 +20,7 @@
  2220.     static PyObject *GetAdvise(PyObject *self, PyObject *args);
  2221.  
  2222.  protected:
  2223. -   PyIViewObject(IUnknown *pdisp);
  2224. +   PyIViewObject(IUnknown *pdisp, PyTypeObject *ptype);
  2225.     ~PyIViewObject();
  2226.  };
  2227.  // ---------------------------------------------------
  2228. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIViewObject2.cpp
  2229. --- a/com/win32comext/axcontrol/src/PyIViewObject2.cpp  Mon Sep 10 17:23:43 2012 -0400
  2230. +++ b/com/win32comext/axcontrol/src/PyIViewObject2.cpp  Mon Sep 17 20:02:58 2012 +0200
  2231. @@ -10,10 +10,9 @@
  2232.  //
  2233.  // Interface Implementation
  2234.  
  2235. -PyIViewObject2::PyIViewObject2(IUnknown *pdisp):
  2236. -   PyIViewObject(pdisp)
  2237. +PyIViewObject2::PyIViewObject2(IUnknown *pdisp, PyTypeObject *ptype):
  2238. +   PyIViewObject(pdisp, ptype)
  2239.  {
  2240. -   ob_type = &type;
  2241.  }
  2242.  
  2243.  PyIViewObject2::~PyIViewObject2()
  2244. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axcontrol/src/PyIViewObject2.h
  2245. --- a/com/win32comext/axcontrol/src/PyIViewObject2.h    Mon Sep 10 17:23:43 2012 -0400
  2246. +++ b/com/win32comext/axcontrol/src/PyIViewObject2.h    Mon Sep 17 20:02:58 2012 +0200
  2247. @@ -15,7 +15,7 @@
  2248.     static PyObject *GetExtent(PyObject *self, PyObject *args);
  2249.  
  2250.  protected:
  2251. -   PyIViewObject2(IUnknown *pdisp);
  2252. +   PyIViewObject2(IUnknown *pdisp, PyTypeObject *ptype);
  2253.     ~PyIViewObject2();
  2254.  };
  2255.  // ---------------------------------------------------
  2256. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIActiveScriptDebug.cpp
  2257. --- a/com/win32comext/axdebug/src/PyIActiveScriptDebug.cpp  Mon Sep 10 17:23:43 2012 -0400
  2258. +++ b/com/win32comext/axdebug/src/PyIActiveScriptDebug.cpp  Mon Sep 17 20:02:58 2012 +0200
  2259. @@ -10,10 +10,9 @@
  2260.  //
  2261.  // Interface Implementation
  2262.  
  2263. -PyIActiveScriptDebug::PyIActiveScriptDebug(IUnknown *pdisp):
  2264. -   PyIUnknown(pdisp)
  2265. +PyIActiveScriptDebug::PyIActiveScriptDebug(IUnknown *pdisp, PyTypeObject *ptype):
  2266. +   PyIUnknown(pdisp, ptype)
  2267.  {
  2268. -   ob_type = &type;
  2269.  }
  2270.  
  2271.  PyIActiveScriptDebug::~PyIActiveScriptDebug()
  2272. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIActiveScriptDebug.h
  2273. --- a/com/win32comext/axdebug/src/PyIActiveScriptDebug.h    Mon Sep 10 17:23:43 2012 -0400
  2274. +++ b/com/win32comext/axdebug/src/PyIActiveScriptDebug.h    Mon Sep 17 20:02:58 2012 +0200
  2275. @@ -17,7 +17,7 @@
  2276.     static PyObject *EnumCodeContextsOfPosition(PyObject *self, PyObject *args);
  2277.  
  2278.  protected:
  2279. -   PyIActiveScriptDebug(IUnknown *pdisp);
  2280. +   PyIActiveScriptDebug(IUnknown *pdisp, PyTypeObject *ptype);
  2281.     ~PyIActiveScriptDebug();
  2282.  };
  2283.  // ---------------------------------------------------
  2284. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIActiveScriptErrorDebug.cpp
  2285. --- a/com/win32comext/axdebug/src/PyIActiveScriptErrorDebug.cpp Mon Sep 10 17:23:43 2012 -0400
  2286. +++ b/com/win32comext/axdebug/src/PyIActiveScriptErrorDebug.cpp Mon Sep 17 20:02:58 2012 +0200
  2287. @@ -11,10 +11,9 @@
  2288.  //
  2289.  // Interface Implementation
  2290.  
  2291. -PyIActiveScriptErrorDebug::PyIActiveScriptErrorDebug(IUnknown *pdisp):
  2292. -   PyIActiveScriptError(pdisp)
  2293. +PyIActiveScriptErrorDebug::PyIActiveScriptErrorDebug(IUnknown *pdisp, PyTypeObject *ptype):
  2294. +   PyIActiveScriptError(pdisp, ptype)
  2295.  {
  2296. -   ob_type = &type;
  2297.  }
  2298.  
  2299.  PyIActiveScriptErrorDebug::~PyIActiveScriptErrorDebug()
  2300. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIActiveScriptErrorDebug.h
  2301. --- a/com/win32comext/axdebug/src/PyIActiveScriptErrorDebug.h   Mon Sep 10 17:23:43 2012 -0400
  2302. +++ b/com/win32comext/axdebug/src/PyIActiveScriptErrorDebug.h   Mon Sep 17 20:02:58 2012 +0200
  2303. @@ -20,7 +20,7 @@
  2304.     static PyObject *GetStackFrame(PyObject *self, PyObject *args);
  2305.  
  2306.  protected:
  2307. -   PyIActiveScriptErrorDebug(IUnknown *pdisp);
  2308. +   PyIActiveScriptErrorDebug(IUnknown *pdisp, PyTypeObject *ptype);
  2309.     ~PyIActiveScriptErrorDebug();
  2310.  };
  2311.  // ---------------------------------------------------
  2312. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIActiveScriptSiteDebug.cpp
  2313. --- a/com/win32comext/axdebug/src/PyIActiveScriptSiteDebug.cpp  Mon Sep 10 17:23:43 2012 -0400
  2314. +++ b/com/win32comext/axdebug/src/PyIActiveScriptSiteDebug.cpp  Mon Sep 17 20:02:58 2012 +0200
  2315. @@ -9,10 +9,9 @@
  2316.  //
  2317.  // Interface Implementation
  2318.  
  2319. -PyIActiveScriptSiteDebug::PyIActiveScriptSiteDebug(IUnknown *pdisp):
  2320. -   PyIUnknown(pdisp)
  2321. +PyIActiveScriptSiteDebug::PyIActiveScriptSiteDebug(IUnknown *pdisp, PyTypeObject *ptype):
  2322. +   PyIUnknown(pdisp, ptype)
  2323.  {
  2324. -   ob_type = &type;
  2325.  }
  2326.  
  2327.  PyIActiveScriptSiteDebug::~PyIActiveScriptSiteDebug()
  2328. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIActiveScriptSiteDebug.h
  2329. --- a/com/win32comext/axdebug/src/PyIActiveScriptSiteDebug.h    Mon Sep 10 17:23:43 2012 -0400
  2330. +++ b/com/win32comext/axdebug/src/PyIActiveScriptSiteDebug.h    Mon Sep 17 20:02:58 2012 +0200
  2331. @@ -18,7 +18,7 @@
  2332.     static PyObject *OnScriptErrorDebug(PyObject *self, PyObject *args);
  2333.  
  2334.  protected:
  2335. -   PyIActiveScriptSiteDebug(IUnknown *pdisp);
  2336. +   PyIActiveScriptSiteDebug(IUnknown *pdisp, PyTypeObject *ptype);
  2337.     ~PyIActiveScriptSiteDebug();
  2338.  };
  2339.  // ---------------------------------------------------
  2340. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIApplicationDebugger.cpp
  2341. --- a/com/win32comext/axdebug/src/PyIApplicationDebugger.cpp    Mon Sep 10 17:23:43 2012 -0400
  2342. +++ b/com/win32comext/axdebug/src/PyIApplicationDebugger.cpp    Mon Sep 17 20:02:58 2012 +0200
  2343. @@ -9,10 +9,9 @@
  2344.  //
  2345.  // Interface Implementation
  2346.  
  2347. -PyIApplicationDebugger::PyIApplicationDebugger(IUnknown *pdisp):
  2348. -   PyIUnknown(pdisp)
  2349. +PyIApplicationDebugger::PyIApplicationDebugger(IUnknown *pdisp, PyTypeObject *ptype):
  2350. +   PyIUnknown(pdisp, ptype)
  2351.  {
  2352. -   ob_type = &type;
  2353.  }
  2354.  
  2355.  PyIApplicationDebugger::~PyIApplicationDebugger()
  2356. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIApplicationDebugger.h
  2357. --- a/com/win32comext/axdebug/src/PyIApplicationDebugger.h  Mon Sep 10 17:23:43 2012 -0400
  2358. +++ b/com/win32comext/axdebug/src/PyIApplicationDebugger.h  Mon Sep 17 20:02:58 2012 +0200
  2359. @@ -20,7 +20,7 @@
  2360.     static PyObject *onDebuggerEvent(PyObject *self, PyObject *args);
  2361.  
  2362.  protected:
  2363. -   PyIApplicationDebugger(IUnknown *pdisp);
  2364. +   PyIApplicationDebugger(IUnknown *pdisp, PyTypeObject *ptype);
  2365.     ~PyIApplicationDebugger();
  2366.  };
  2367.  // ---------------------------------------------------
  2368. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugApplication.cpp
  2369. --- a/com/win32comext/axdebug/src/PyIDebugApplication.cpp   Mon Sep 10 17:23:43 2012 -0400
  2370. +++ b/com/win32comext/axdebug/src/PyIDebugApplication.cpp   Mon Sep 17 20:02:58 2012 +0200
  2371. @@ -10,10 +10,9 @@
  2372.  //
  2373.  // Interface Implementation
  2374.  
  2375. -PyIDebugApplication::PyIDebugApplication(IUnknown *pdisp):
  2376. -   PyIRemoteDebugApplication(pdisp)
  2377. +PyIDebugApplication::PyIDebugApplication(IUnknown *pdisp, PyTypeObject *ptype):
  2378. +   PyIRemoteDebugApplication(pdisp, ptype)
  2379.  {
  2380. -   ob_type = &type;
  2381.  }
  2382.  
  2383.  PyIDebugApplication::~PyIDebugApplication()
  2384. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugApplication.h
  2385. --- a/com/win32comext/axdebug/src/PyIDebugApplication.h Mon Sep 10 17:23:43 2012 -0400
  2386. +++ b/com/win32comext/axdebug/src/PyIDebugApplication.h Mon Sep 17 20:02:58 2012 +0200
  2387. @@ -33,7 +33,7 @@
  2388.     static PyObject *AddGlobalExpressionContextProvider(PyObject *self, PyObject *args);
  2389.     static PyObject *RemoveGlobalExpressionContextProvider(PyObject *self, PyObject *args);
  2390.  protected:
  2391. -   PyIDebugApplication(IUnknown *pdisp);
  2392. +   PyIDebugApplication(IUnknown *pdisp, PyTypeObject *ptype);
  2393.     ~PyIDebugApplication();
  2394.  };
  2395.  // ---------------------------------------------------
  2396. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugApplicationNode.cpp
  2397. --- a/com/win32comext/axdebug/src/PyIDebugApplicationNode.cpp   Mon Sep 10 17:23:43 2012 -0400
  2398. +++ b/com/win32comext/axdebug/src/PyIDebugApplicationNode.cpp   Mon Sep 17 20:02:58 2012 +0200
  2399. @@ -13,10 +13,9 @@
  2400.  //
  2401.  // Interface Implementation
  2402.  
  2403. -PyIDebugApplicationNode::PyIDebugApplicationNode(IUnknown *pdisp):
  2404. -   PyIDebugDocumentProvider(pdisp)
  2405. +PyIDebugApplicationNode::PyIDebugApplicationNode(IUnknown *pdisp, PyTypeObject *ptype):
  2406. +   PyIDebugDocumentProvider(pdisp, ptype)
  2407.  {
  2408. -   ob_type = &type;
  2409.  }
  2410.  
  2411.  PyIDebugApplicationNode::~PyIDebugApplicationNode()
  2412. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugApplicationNode.h
  2413. --- a/com/win32comext/axdebug/src/PyIDebugApplicationNode.h Mon Sep 10 17:23:43 2012 -0400
  2414. +++ b/com/win32comext/axdebug/src/PyIDebugApplicationNode.h Mon Sep 17 20:02:58 2012 +0200
  2415. @@ -20,7 +20,7 @@
  2416.     static PyObject *Detach(PyObject *self, PyObject *args);
  2417.  
  2418.  protected:
  2419. -   PyIDebugApplicationNode(IUnknown *pdisp);
  2420. +   PyIDebugApplicationNode(IUnknown *pdisp, PyTypeObject *ptype);
  2421.     ~PyIDebugApplicationNode();
  2422.  };
  2423.  // ---------------------------------------------------
  2424. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugApplicationNodeEvents.cpp
  2425. --- a/com/win32comext/axdebug/src/PyIDebugApplicationNodeEvents.cpp Mon Sep 10 17:23:43 2012 -0400
  2426. +++ b/com/win32comext/axdebug/src/PyIDebugApplicationNodeEvents.cpp Mon Sep 17 20:02:58 2012 +0200
  2427. @@ -11,10 +11,9 @@
  2428.  //
  2429.  // Interface Implementation
  2430.  
  2431. -PyIDebugApplicationNodeEvents::PyIDebugApplicationNodeEvents(IUnknown *pdisp):
  2432. -   PyIUnknown(pdisp)
  2433. +PyIDebugApplicationNodeEvents::PyIDebugApplicationNodeEvents(IUnknown *pdisp, PyTypeObject *ptype):
  2434. +   PyIUnknown(pdisp, ptype)
  2435.  {
  2436. -   ob_type = &type;
  2437.  }
  2438.  
  2439.  PyIDebugApplicationNodeEvents::~PyIDebugApplicationNodeEvents()
  2440. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugApplicationNodeEvents.h
  2441. --- a/com/win32comext/axdebug/src/PyIDebugApplicationNodeEvents.h   Mon Sep 10 17:23:43 2012 -0400
  2442. +++ b/com/win32comext/axdebug/src/PyIDebugApplicationNodeEvents.h   Mon Sep 17 20:02:58 2012 +0200
  2443. @@ -18,7 +18,7 @@
  2444.     static PyObject *onAttach(PyObject *self, PyObject *args);
  2445.  
  2446.  protected:
  2447. -   PyIDebugApplicationNodeEvents(IUnknown *pdisp);
  2448. +   PyIDebugApplicationNodeEvents(IUnknown *pdisp, PyTypeObject *ptype);
  2449.     ~PyIDebugApplicationNodeEvents();
  2450.  };
  2451.  // ---------------------------------------------------
  2452. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugApplicationThread.cpp
  2453. --- a/com/win32comext/axdebug/src/PyIDebugApplicationThread.cpp Mon Sep 10 17:23:43 2012 -0400
  2454. +++ b/com/win32comext/axdebug/src/PyIDebugApplicationThread.cpp Mon Sep 17 20:02:58 2012 +0200
  2455. @@ -12,10 +12,9 @@
  2456.  //
  2457.  // Interface Implementation
  2458.  
  2459. -PyIDebugApplicationThread::PyIDebugApplicationThread(IUnknown *pdisp):
  2460. -   PyIRemoteDebugApplicationThread(pdisp)
  2461. +PyIDebugApplicationThread::PyIDebugApplicationThread(IUnknown *pdisp, PyTypeObject *ptype):
  2462. +   PyIRemoteDebugApplicationThread(pdisp, ptype)
  2463.  {
  2464. -   ob_type = &type;
  2465.  }
  2466.  
  2467.  PyIDebugApplicationThread::~PyIDebugApplicationThread()
  2468. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugApplicationThread.h
  2469. --- a/com/win32comext/axdebug/src/PyIDebugApplicationThread.h   Mon Sep 10 17:23:43 2012 -0400
  2470. +++ b/com/win32comext/axdebug/src/PyIDebugApplicationThread.h   Mon Sep 17 20:02:58 2012 +0200
  2471. @@ -19,7 +19,7 @@
  2472.     static PyObject *SetStateString(PyObject *self, PyObject *args);
  2473.  
  2474.  protected:
  2475. -   PyIDebugApplicationThread(IUnknown *pdisp);
  2476. +   PyIDebugApplicationThread(IUnknown *pdisp, PyTypeObject *ptype);
  2477.     ~PyIDebugApplicationThread();
  2478.  };
  2479.  // ---------------------------------------------------
  2480. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugCodeContext.cpp
  2481. --- a/com/win32comext/axdebug/src/PyIDebugCodeContext.cpp   Mon Sep 10 17:23:43 2012 -0400
  2482. +++ b/com/win32comext/axdebug/src/PyIDebugCodeContext.cpp   Mon Sep 17 20:02:58 2012 +0200
  2483. @@ -9,10 +9,9 @@
  2484.  //
  2485.  // Interface Implementation
  2486.  
  2487. -PyIDebugCodeContext::PyIDebugCodeContext(IUnknown *pdisp):
  2488. -   PyIUnknown(pdisp)
  2489. +PyIDebugCodeContext::PyIDebugCodeContext(IUnknown *pdisp, PyTypeObject *ptype):
  2490. +   PyIUnknown(pdisp, ptype)
  2491.  {
  2492. -   ob_type = &type;
  2493.  }
  2494.  
  2495.  PyIDebugCodeContext::~PyIDebugCodeContext()
  2496. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugCodeContext.h
  2497. --- a/com/win32comext/axdebug/src/PyIDebugCodeContext.h Mon Sep 10 17:23:43 2012 -0400
  2498. +++ b/com/win32comext/axdebug/src/PyIDebugCodeContext.h Mon Sep 17 20:02:58 2012 +0200
  2499. @@ -16,7 +16,7 @@
  2500.     static PyObject *SetBreakPoint(PyObject *self, PyObject *args);
  2501.  
  2502.  protected:
  2503. -   PyIDebugCodeContext(IUnknown *pdisp);
  2504. +   PyIDebugCodeContext(IUnknown *pdisp, PyTypeObject *ptype);
  2505.     ~PyIDebugCodeContext();
  2506.  };
  2507.  // ---------------------------------------------------
  2508. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocument.cpp
  2509. --- a/com/win32comext/axdebug/src/PyIDebugDocument.cpp  Mon Sep 10 17:23:43 2012 -0400
  2510. +++ b/com/win32comext/axdebug/src/PyIDebugDocument.cpp  Mon Sep 17 20:02:58 2012 +0200
  2511. @@ -11,10 +11,9 @@
  2512.  //
  2513.  // Interface Implementation
  2514.  
  2515. -PyIDebugDocument::PyIDebugDocument(IUnknown *pdisp):
  2516. -   PyIDebugDocumentInfo(pdisp)
  2517. +PyIDebugDocument::PyIDebugDocument(IUnknown *pdisp, PyTypeObject *ptype):
  2518. +   PyIDebugDocumentInfo(pdisp, ptype)
  2519.  {
  2520. -   ob_type = &type;
  2521.  }
  2522.  
  2523.  PyIDebugDocument::~PyIDebugDocument()
  2524. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocument.h
  2525. --- a/com/win32comext/axdebug/src/PyIDebugDocument.h    Mon Sep 10 17:23:43 2012 -0400
  2526. +++ b/com/win32comext/axdebug/src/PyIDebugDocument.h    Mon Sep 17 20:02:58 2012 +0200
  2527. @@ -14,7 +14,7 @@
  2528.     // The Python methods
  2529.  
  2530.  protected:
  2531. -   PyIDebugDocument(IUnknown *pdisp);
  2532. +   PyIDebugDocument(IUnknown *pdisp, PyTypeObject *ptype);
  2533.     ~PyIDebugDocument();
  2534.  };
  2535.  // ---------------------------------------------------
  2536. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentContext.cpp
  2537. --- a/com/win32comext/axdebug/src/PyIDebugDocumentContext.cpp   Mon Sep 10 17:23:43 2012 -0400
  2538. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentContext.cpp   Mon Sep 17 20:02:58 2012 +0200
  2539. @@ -11,10 +11,9 @@
  2540.  //
  2541.  // Interface Implementation
  2542.  
  2543. -PyIDebugDocumentContext::PyIDebugDocumentContext(IUnknown *pdisp):
  2544. -   PyIUnknown(pdisp)
  2545. +PyIDebugDocumentContext::PyIDebugDocumentContext(IUnknown *pdisp, PyTypeObject *ptype):
  2546. +   PyIUnknown(pdisp, ptype)
  2547.  {
  2548. -   ob_type = &type;
  2549.  }
  2550.  
  2551.  PyIDebugDocumentContext::~PyIDebugDocumentContext()
  2552. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentContext.h
  2553. --- a/com/win32comext/axdebug/src/PyIDebugDocumentContext.h Mon Sep 10 17:23:43 2012 -0400
  2554. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentContext.h Mon Sep 17 20:02:58 2012 +0200
  2555. @@ -16,7 +16,7 @@
  2556.     static PyObject *EnumCodeContexts(PyObject *self, PyObject *args);
  2557.  
  2558.  protected:
  2559. -   PyIDebugDocumentContext(IUnknown *pdisp);
  2560. +   PyIDebugDocumentContext(IUnknown *pdisp, PyTypeObject *ptype);
  2561.     ~PyIDebugDocumentContext();
  2562.  };
  2563.  // ---------------------------------------------------
  2564. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentHelper.cpp
  2565. --- a/com/win32comext/axdebug/src/PyIDebugDocumentHelper.cpp    Mon Sep 10 17:23:43 2012 -0400
  2566. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentHelper.cpp    Mon Sep 17 20:02:58 2012 +0200
  2567. @@ -11,10 +11,9 @@
  2568.  //
  2569.  // Interface Implementation
  2570.  
  2571. -PyIDebugDocumentHelper::PyIDebugDocumentHelper(IUnknown *pdisp):
  2572. -   PyIUnknown(pdisp)
  2573. +PyIDebugDocumentHelper::PyIDebugDocumentHelper(IUnknown *pdisp, PyTypeObject *ptype):
  2574. +   PyIUnknown(pdisp, ptype)
  2575.  {
  2576. -   ob_type = &type;
  2577.  }
  2578.  
  2579.  PyIDebugDocumentHelper::~PyIDebugDocumentHelper()
  2580. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentHelper.h
  2581. --- a/com/win32comext/axdebug/src/PyIDebugDocumentHelper.h  Mon Sep 10 17:23:43 2012 -0400
  2582. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentHelper.h  Mon Sep 17 20:02:58 2012 +0200
  2583. @@ -32,7 +32,7 @@
  2584.     static PyObject *BringDocumentContextToTop(PyObject *self, PyObject *args);
  2585.  
  2586.  protected:
  2587. -   PyIDebugDocumentHelper(IUnknown *pdisp);
  2588. +   PyIDebugDocumentHelper(IUnknown *pdisp, PyTypeObject *ptype);
  2589.     ~PyIDebugDocumentHelper();
  2590.  };
  2591.  // ---------------------------------------------------
  2592. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentHost.cpp
  2593. --- a/com/win32comext/axdebug/src/PyIDebugDocumentHost.cpp  Mon Sep 10 17:23:43 2012 -0400
  2594. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentHost.cpp  Mon Sep 17 20:02:58 2012 +0200
  2595. @@ -11,10 +11,9 @@
  2596.  //
  2597.  // Interface Implementation
  2598.  
  2599. -PyIDebugDocumentHost::PyIDebugDocumentHost(IUnknown *pdisp):
  2600. -   PyIUnknown(pdisp)
  2601. +PyIDebugDocumentHost::PyIDebugDocumentHost(IUnknown *pdisp, PyTypeObject *ptype):
  2602. +   PyIUnknown(pdisp, ptype)
  2603.  {
  2604. -   ob_type = &type;
  2605.  }
  2606.  
  2607.  PyIDebugDocumentHost::~PyIDebugDocumentHost()
  2608. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentHost.h
  2609. --- a/com/win32comext/axdebug/src/PyIDebugDocumentHost.h    Mon Sep 10 17:23:43 2012 -0400
  2610. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentHost.h    Mon Sep 17 20:02:58 2012 +0200
  2611. @@ -20,7 +20,7 @@
  2612.     static PyObject *NotifyChanged(PyObject *self, PyObject *args);
  2613.  
  2614.  protected:
  2615. -   PyIDebugDocumentHost(IUnknown *pdisp);
  2616. +   PyIDebugDocumentHost(IUnknown *pdisp, PyTypeObject *ptype);
  2617.     ~PyIDebugDocumentHost();
  2618.  };
  2619.  // ---------------------------------------------------
  2620. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentInfo.cpp
  2621. --- a/com/win32comext/axdebug/src/PyIDebugDocumentInfo.cpp  Mon Sep 10 17:23:43 2012 -0400
  2622. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentInfo.cpp  Mon Sep 17 20:02:58 2012 +0200
  2623. @@ -10,10 +10,9 @@
  2624.  //
  2625.  // Interface Implementation
  2626.  
  2627. -PyIDebugDocumentInfo::PyIDebugDocumentInfo(IUnknown *pdisp):
  2628. -   PyIUnknown(pdisp)
  2629. +PyIDebugDocumentInfo::PyIDebugDocumentInfo(IUnknown *pdisp, PyTypeObject *ptype):
  2630. +   PyIUnknown(pdisp, ptype)
  2631.  {
  2632. -   ob_type = &type;
  2633.  }
  2634.  
  2635.  PyIDebugDocumentInfo::~PyIDebugDocumentInfo()
  2636. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentInfo.h
  2637. --- a/com/win32comext/axdebug/src/PyIDebugDocumentInfo.h    Mon Sep 10 17:23:43 2012 -0400
  2638. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentInfo.h    Mon Sep 17 20:02:58 2012 +0200
  2639. @@ -12,7 +12,7 @@
  2640.     static PyObject *GetDocumentClassId(PyObject *self, PyObject *args);
  2641.  
  2642.  protected:
  2643. -   PyIDebugDocumentInfo(IUnknown *pdisp);
  2644. +   PyIDebugDocumentInfo(IUnknown *pdisp, PyTypeObject *ptype);
  2645.     ~PyIDebugDocumentInfo();
  2646.  };
  2647.  // ---------------------------------------------------
  2648. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentProvider.cpp
  2649. --- a/com/win32comext/axdebug/src/PyIDebugDocumentProvider.cpp  Mon Sep 10 17:23:43 2012 -0400
  2650. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentProvider.cpp  Mon Sep 17 20:02:58 2012 +0200
  2651. @@ -11,10 +11,9 @@
  2652.  //
  2653.  // Interface Implementation
  2654.  
  2655. -PyIDebugDocumentProvider::PyIDebugDocumentProvider(IUnknown *pdisp):
  2656. -   PyIDebugDocumentInfo(pdisp)
  2657. +PyIDebugDocumentProvider::PyIDebugDocumentProvider(IUnknown *pdisp, PyTypeObject *ptype):
  2658. +   PyIDebugDocumentInfo(pdisp, ptype)
  2659.  {
  2660. -   ob_type = &type;
  2661.  }
  2662.  
  2663.  PyIDebugDocumentProvider::~PyIDebugDocumentProvider()
  2664. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentProvider.h
  2665. --- a/com/win32comext/axdebug/src/PyIDebugDocumentProvider.h    Mon Sep 10 17:23:43 2012 -0400
  2666. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentProvider.h    Mon Sep 17 20:02:58 2012 +0200
  2667. @@ -15,7 +15,7 @@
  2668.     static PyObject *GetDocument(PyObject *self, PyObject *args);
  2669.  
  2670.  protected:
  2671. -   PyIDebugDocumentProvider(IUnknown *pdisp);
  2672. +   PyIDebugDocumentProvider(IUnknown *pdisp, PyTypeObject *ptype);
  2673.     ~PyIDebugDocumentProvider();
  2674.  };
  2675.  // ---------------------------------------------------
  2676. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentText.cpp
  2677. --- a/com/win32comext/axdebug/src/PyIDebugDocumentText.cpp  Mon Sep 10 17:23:43 2012 -0400
  2678. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentText.cpp  Mon Sep 17 20:02:58 2012 +0200
  2679. @@ -11,10 +11,9 @@
  2680.  //
  2681.  // Interface Implementation
  2682.  
  2683. -PyIDebugDocumentText::PyIDebugDocumentText(IUnknown *pdisp):
  2684. -   PyIDebugDocument(pdisp)
  2685. +PyIDebugDocumentText::PyIDebugDocumentText(IUnknown *pdisp, PyTypeObject *ptype):
  2686. +   PyIDebugDocument(pdisp, ptype)
  2687.  {
  2688. -   ob_type = &type;
  2689.  }
  2690.  
  2691.  PyIDebugDocumentText::~PyIDebugDocumentText()
  2692. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentText.h
  2693. --- a/com/win32comext/axdebug/src/PyIDebugDocumentText.h    Mon Sep 10 17:23:43 2012 -0400
  2694. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentText.h    Mon Sep 17 20:02:58 2012 +0200
  2695. @@ -21,7 +21,7 @@
  2696.     static PyObject *GetContextOfPosition(PyObject *self, PyObject *args);
  2697.  
  2698.  protected:
  2699. -   PyIDebugDocumentText(IUnknown *pdisp);
  2700. +   PyIDebugDocumentText(IUnknown *pdisp, PyTypeObject *ptype);
  2701.     ~PyIDebugDocumentText();
  2702.  };
  2703.  // ---------------------------------------------------
  2704. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentTextAuthor.cpp
  2705. --- a/com/win32comext/axdebug/src/PyIDebugDocumentTextAuthor.cpp    Mon Sep 10 17:23:43 2012 -0400
  2706. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentTextAuthor.cpp    Mon Sep 17 20:02:58 2012 +0200
  2707. @@ -14,10 +14,9 @@
  2708.  //
  2709.  // Interface Implementation
  2710.  
  2711. -PyIDebugDocumentTextAuthor::PyIDebugDocumentTextAuthor(IUnknown *pdisp):
  2712. -   PyIDebugDocumentText(pdisp)
  2713. +PyIDebugDocumentTextAuthor::PyIDebugDocumentTextAuthor(IUnknown *pdisp, PyTypeObject *ptype):
  2714. +   PyIDebugDocumentText(pdisp, ptype)
  2715.  {
  2716. -   ob_type = &type;
  2717.  }
  2718.  
  2719.  PyIDebugDocumentTextAuthor::~PyIDebugDocumentTextAuthor()
  2720. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentTextAuthor.h
  2721. --- a/com/win32comext/axdebug/src/PyIDebugDocumentTextAuthor.h  Mon Sep 10 17:23:43 2012 -0400
  2722. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentTextAuthor.h  Mon Sep 17 20:02:58 2012 +0200
  2723. @@ -17,7 +17,7 @@
  2724.     static PyObject *ReplaceText(PyObject *self, PyObject *args);
  2725.  
  2726.  protected:
  2727. -   PyIDebugDocumentTextAuthor(IUnknown *pdisp);
  2728. +   PyIDebugDocumentTextAuthor(IUnknown *pdisp, PyTypeObject *ptype);
  2729.     ~PyIDebugDocumentTextAuthor();
  2730.  };
  2731.  // ---------------------------------------------------
  2732. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentTextEvents.cpp
  2733. --- a/com/win32comext/axdebug/src/PyIDebugDocumentTextEvents.cpp    Mon Sep 10 17:23:43 2012 -0400
  2734. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentTextEvents.cpp    Mon Sep 17 20:02:58 2012 +0200
  2735. @@ -11,10 +11,9 @@
  2736.  //
  2737.  // Interface Implementation
  2738.  
  2739. -PyIDebugDocumentTextEvents::PyIDebugDocumentTextEvents(IUnknown *pdisp):
  2740. -   PyIUnknown(pdisp)
  2741. +PyIDebugDocumentTextEvents::PyIDebugDocumentTextEvents(IUnknown *pdisp, PyTypeObject *ptype):
  2742. +   PyIUnknown(pdisp, ptype)
  2743.  {
  2744. -   ob_type = &type;
  2745.  }
  2746.  
  2747.  PyIDebugDocumentTextEvents::~PyIDebugDocumentTextEvents()
  2748. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentTextEvents.h
  2749. --- a/com/win32comext/axdebug/src/PyIDebugDocumentTextEvents.h  Mon Sep 10 17:23:43 2012 -0400
  2750. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentTextEvents.h  Mon Sep 17 20:02:58 2012 +0200
  2751. @@ -20,7 +20,7 @@
  2752.     static PyObject *onUpdateDocumentAttributes(PyObject *self, PyObject *args);
  2753.  
  2754.  protected:
  2755. -   PyIDebugDocumentTextEvents(IUnknown *pdisp);
  2756. +   PyIDebugDocumentTextEvents(IUnknown *pdisp, PyTypeObject *ptype);
  2757.     ~PyIDebugDocumentTextEvents();
  2758.  };
  2759.  // ---------------------------------------------------
  2760. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentTextExternalAuthor.cpp
  2761. --- a/com/win32comext/axdebug/src/PyIDebugDocumentTextExternalAuthor.cpp    Mon Sep 10 17:23:43 2012 -0400
  2762. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentTextExternalAuthor.cpp    Mon Sep 17 20:02:58 2012 +0200
  2763. @@ -11,10 +11,9 @@
  2764.  //
  2765.  // Interface Implementation
  2766.  
  2767. -PyIDebugDocumentTextExternalAuthor::PyIDebugDocumentTextExternalAuthor(IUnknown *pdisp):
  2768. -   PyIUnknown(pdisp)
  2769. +PyIDebugDocumentTextExternalAuthor::PyIDebugDocumentTextExternalAuthor(IUnknown *pdisp, PyTypeObject *ptype):
  2770. +   PyIUnknown(pdisp, ptype)
  2771.  {
  2772. -   ob_type = &type;
  2773.  }
  2774.  
  2775.  PyIDebugDocumentTextExternalAuthor::~PyIDebugDocumentTextExternalAuthor()
  2776. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugDocumentTextExternalAuthor.h
  2777. --- a/com/win32comext/axdebug/src/PyIDebugDocumentTextExternalAuthor.h  Mon Sep 10 17:23:43 2012 -0400
  2778. +++ b/com/win32comext/axdebug/src/PyIDebugDocumentTextExternalAuthor.h  Mon Sep 17 20:02:58 2012 +0200
  2779. @@ -17,7 +17,7 @@
  2780.     static PyObject *NotifyChanged(PyObject *self, PyObject *args);
  2781.  
  2782.  protected:
  2783. -   PyIDebugDocumentTextExternalAuthor(IUnknown *pdisp);
  2784. +   PyIDebugDocumentTextExternalAuthor(IUnknown *pdisp, PyTypeObject *ptype);
  2785.     ~PyIDebugDocumentTextExternalAuthor();
  2786.  };
  2787.  // ---------------------------------------------------
  2788. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugExpression.cpp
  2789. --- a/com/win32comext/axdebug/src/PyIDebugExpression.cpp    Mon Sep 10 17:23:43 2012 -0400
  2790. +++ b/com/win32comext/axdebug/src/PyIDebugExpression.cpp    Mon Sep 17 20:02:58 2012 +0200
  2791. @@ -11,10 +11,9 @@
  2792.  //
  2793.  // Interface Implementation
  2794.  
  2795. -PyIDebugExpression::PyIDebugExpression(IUnknown *pdisp):
  2796. -   PyIUnknown(pdisp)
  2797. +PyIDebugExpression::PyIDebugExpression(IUnknown *pdisp, PyTypeObject *ptype):
  2798. +   PyIUnknown(pdisp, ptype)
  2799.  {
  2800. -   ob_type = &type;
  2801.  }
  2802.  
  2803.  PyIDebugExpression::~PyIDebugExpression()
  2804. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugExpression.h
  2805. --- a/com/win32comext/axdebug/src/PyIDebugExpression.h  Mon Sep 10 17:23:43 2012 -0400
  2806. +++ b/com/win32comext/axdebug/src/PyIDebugExpression.h  Mon Sep 17 20:02:58 2012 +0200
  2807. @@ -19,7 +19,7 @@
  2808.     static PyObject *GetResultAsDebugProperty(PyObject *self, PyObject *args);
  2809.  
  2810.  protected:
  2811. -   PyIDebugExpression(IUnknown *pdisp);
  2812. +   PyIDebugExpression(IUnknown *pdisp, PyTypeObject *ptype);
  2813.     ~PyIDebugExpression();
  2814.  };
  2815.  // ---------------------------------------------------
  2816. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugExpressionCallBack.cpp
  2817. --- a/com/win32comext/axdebug/src/PyIDebugExpressionCallBack.cpp    Mon Sep 10 17:23:43 2012 -0400
  2818. +++ b/com/win32comext/axdebug/src/PyIDebugExpressionCallBack.cpp    Mon Sep 17 20:02:58 2012 +0200
  2819. @@ -9,10 +9,9 @@
  2820.  //
  2821.  // Interface Implementation
  2822.  
  2823. -PyIDebugExpressionCallBack::PyIDebugExpressionCallBack(IUnknown *pdisp):
  2824. -   PyIUnknown(pdisp)
  2825. +PyIDebugExpressionCallBack::PyIDebugExpressionCallBack(IUnknown *pdisp, PyTypeObject *ptype):
  2826. +   PyIUnknown(pdisp, ptype)
  2827.  {
  2828. -   ob_type = &type;
  2829.  }
  2830.  
  2831.  PyIDebugExpressionCallBack::~PyIDebugExpressionCallBack()
  2832. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugExpressionCallBack.h
  2833. --- a/com/win32comext/axdebug/src/PyIDebugExpressionCallBack.h  Mon Sep 10 17:23:43 2012 -0400
  2834. +++ b/com/win32comext/axdebug/src/PyIDebugExpressionCallBack.h  Mon Sep 17 20:02:58 2012 +0200
  2835. @@ -15,7 +15,7 @@
  2836.     static PyObject *onComplete(PyObject *self, PyObject *args);
  2837.  
  2838.  protected:
  2839. -   PyIDebugExpressionCallBack(IUnknown *pdisp);
  2840. +   PyIDebugExpressionCallBack(IUnknown *pdisp, PyTypeObject *ptype);
  2841.     ~PyIDebugExpressionCallBack();
  2842.  };
  2843.  // ---------------------------------------------------
  2844. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugExpressionContext.cpp
  2845. --- a/com/win32comext/axdebug/src/PyIDebugExpressionContext.cpp Mon Sep 10 17:23:43 2012 -0400
  2846. +++ b/com/win32comext/axdebug/src/PyIDebugExpressionContext.cpp Mon Sep 17 20:02:58 2012 +0200
  2847. @@ -11,10 +11,9 @@
  2848.  //
  2849.  // Interface Implementation
  2850.  
  2851. -PyIDebugExpressionContext::PyIDebugExpressionContext(IUnknown *pdisp):
  2852. -   PyIUnknown(pdisp)
  2853. +PyIDebugExpressionContext::PyIDebugExpressionContext(IUnknown *pdisp, PyTypeObject *ptype):
  2854. +   PyIUnknown(pdisp, ptype)
  2855.  {
  2856. -   ob_type = &type;
  2857.  }
  2858.  
  2859.  PyIDebugExpressionContext::~PyIDebugExpressionContext()
  2860. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugExpressionContext.h
  2861. --- a/com/win32comext/axdebug/src/PyIDebugExpressionContext.h   Mon Sep 10 17:23:43 2012 -0400
  2862. +++ b/com/win32comext/axdebug/src/PyIDebugExpressionContext.h   Mon Sep 17 20:02:58 2012 +0200
  2863. @@ -16,7 +16,7 @@
  2864.     static PyObject *GetLanguageInfo(PyObject *self, PyObject *args);
  2865.  
  2866.  protected:
  2867. -   PyIDebugExpressionContext(IUnknown *pdisp);
  2868. +   PyIDebugExpressionContext(IUnknown *pdisp, PyTypeObject *ptype);
  2869.     ~PyIDebugExpressionContext();
  2870.  };
  2871.  // ---------------------------------------------------
  2872. @@ -41,4 +41,4 @@
  2873.         BSTR __RPC_FAR * pbstrLanguageName,
  2874.         GUID __RPC_FAR * pLanguageID);
  2875.  
  2876. -};
  2877. \ No newline at end of file
  2878. +};
  2879. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugProperties.cpp
  2880. --- a/com/win32comext/axdebug/src/PyIDebugProperties.cpp    Mon Sep 10 17:23:43 2012 -0400
  2881. +++ b/com/win32comext/axdebug/src/PyIDebugProperties.cpp    Mon Sep 17 20:02:58 2012 +0200
  2882. @@ -140,10 +140,9 @@
  2883.  //
  2884.  // Interface Implementation
  2885.  
  2886. -PyIDebugProperty::PyIDebugProperty(IUnknown *pdisp):
  2887. -   PyIUnknown(pdisp)
  2888. +PyIDebugProperty::PyIDebugProperty(IUnknown *pdisp, PyTypeObject *ptype):
  2889. +   PyIUnknown(pdisp, ptype)
  2890.  {
  2891. -   ob_type = &type;
  2892.  }
  2893.  
  2894.  PyIDebugProperty::~PyIDebugProperty()
  2895. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugProperties.h
  2896. --- a/com/win32comext/axdebug/src/PyIDebugProperties.h  Mon Sep 10 17:23:43 2012 -0400
  2897. +++ b/com/win32comext/axdebug/src/PyIDebugProperties.h  Mon Sep 17 20:02:58 2012 +0200
  2898. @@ -19,7 +19,7 @@
  2899.     static PyObject *GetParent(PyObject *self, PyObject *args);
  2900.  
  2901.  protected:
  2902. -   PyIDebugProperty(IUnknown *pdisp);
  2903. +   PyIDebugProperty(IUnknown *pdisp, PyTypeObject *ptype);
  2904.     ~PyIDebugProperty();
  2905.  };
  2906.  // ---------------------------------------------------
  2907. @@ -56,4 +56,4 @@
  2908.     STDMETHOD(GetParent)(
  2909.         IDebugProperty __RPC_FAR *__RPC_FAR * ppDebugProp);
  2910.  
  2911. -};
  2912. \ No newline at end of file
  2913. +};
  2914. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugSessionProvider.cpp
  2915. --- a/com/win32comext/axdebug/src/PyIDebugSessionProvider.cpp   Mon Sep 10 17:23:43 2012 -0400
  2916. +++ b/com/win32comext/axdebug/src/PyIDebugSessionProvider.cpp   Mon Sep 17 20:02:58 2012 +0200
  2917. @@ -11,10 +11,9 @@
  2918.  //
  2919.  // Interface Implementation
  2920.  
  2921. -PyIDebugSessionProvider::PyIDebugSessionProvider(IUnknown *pdisp):
  2922. -   PyIUnknown(pdisp)
  2923. +PyIDebugSessionProvider::PyIDebugSessionProvider(IUnknown *pdisp, PyTypeObject *ptype):
  2924. +   PyIUnknown(pdisp, ptype)
  2925.  {
  2926. -   ob_type = &type;
  2927.  }
  2928.  
  2929.  PyIDebugSessionProvider::~PyIDebugSessionProvider()
  2930. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugSessionProvider.h
  2931. --- a/com/win32comext/axdebug/src/PyIDebugSessionProvider.h Mon Sep 10 17:23:43 2012 -0400
  2932. +++ b/com/win32comext/axdebug/src/PyIDebugSessionProvider.h Mon Sep 17 20:02:58 2012 +0200
  2933. @@ -15,7 +15,7 @@
  2934.     static PyObject *StartDebugSession(PyObject *self, PyObject *args);
  2935.  
  2936.  protected:
  2937. -   PyIDebugSessionProvider(IUnknown *pdisp);
  2938. +   PyIDebugSessionProvider(IUnknown *pdisp, PyTypeObject *ptype);
  2939.     ~PyIDebugSessionProvider();
  2940.  };
  2941.  // ---------------------------------------------------
  2942. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugStackFrame.cpp
  2943. --- a/com/win32comext/axdebug/src/PyIDebugStackFrame.cpp    Mon Sep 10 17:23:43 2012 -0400
  2944. +++ b/com/win32comext/axdebug/src/PyIDebugStackFrame.cpp    Mon Sep 17 20:02:58 2012 +0200
  2945. @@ -9,10 +9,9 @@
  2946.  //
  2947.  // Interface Implementation
  2948.  
  2949. -PyIDebugStackFrame::PyIDebugStackFrame(IUnknown *pdisp):
  2950. -   PyIUnknown(pdisp)
  2951. +PyIDebugStackFrame::PyIDebugStackFrame(IUnknown *pdisp, PyTypeObject *ptype):
  2952. +   PyIUnknown(pdisp, ptype)
  2953.  {
  2954. -   ob_type = &type;
  2955.  }
  2956.  
  2957.  PyIDebugStackFrame::~PyIDebugStackFrame()
  2958. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugStackFrame.h
  2959. --- a/com/win32comext/axdebug/src/PyIDebugStackFrame.h  Mon Sep 10 17:23:43 2012 -0400
  2960. +++ b/com/win32comext/axdebug/src/PyIDebugStackFrame.h  Mon Sep 17 20:02:58 2012 +0200
  2961. @@ -19,7 +19,7 @@
  2962.     static PyObject *GetDebugProperty(PyObject *self, PyObject *args);
  2963.  
  2964.  protected:
  2965. -   PyIDebugStackFrame(IUnknown *pdisp);
  2966. +   PyIDebugStackFrame(IUnknown *pdisp, PyTypeObject *ptype);
  2967.     ~PyIDebugStackFrame();
  2968.  };
  2969.  // ---------------------------------------------------
  2970. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugStackFrameSniffer.cpp
  2971. --- a/com/win32comext/axdebug/src/PyIDebugStackFrameSniffer.cpp Mon Sep 10 17:23:43 2012 -0400
  2972. +++ b/com/win32comext/axdebug/src/PyIDebugStackFrameSniffer.cpp Mon Sep 17 20:02:58 2012 +0200
  2973. @@ -9,10 +9,9 @@
  2974.  //
  2975.  // Interface Implementation
  2976.  
  2977. -PyIDebugStackFrameSniffer::PyIDebugStackFrameSniffer(IUnknown *pdisp):
  2978. -   PyIUnknown(pdisp)
  2979. +PyIDebugStackFrameSniffer::PyIDebugStackFrameSniffer(IUnknown *pdisp, PyTypeObject *ptype):
  2980. +   PyIUnknown(pdisp, ptype)
  2981.  {
  2982. -   ob_type = &type;
  2983.  }
  2984.  
  2985.  PyIDebugStackFrameSniffer::~PyIDebugStackFrameSniffer()
  2986. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugStackFrameSniffer.h
  2987. --- a/com/win32comext/axdebug/src/PyIDebugStackFrameSniffer.h   Mon Sep 10 17:23:43 2012 -0400
  2988. +++ b/com/win32comext/axdebug/src/PyIDebugStackFrameSniffer.h   Mon Sep 17 20:02:58 2012 +0200
  2989. @@ -15,7 +15,7 @@
  2990.     static PyObject *EnumStackFrames(PyObject *self, PyObject *args);
  2991.  
  2992.  protected:
  2993. -   PyIDebugStackFrameSniffer(IUnknown *pdisp);
  2994. +   PyIDebugStackFrameSniffer(IUnknown *pdisp, PyTypeObject *ptype);
  2995.     ~PyIDebugStackFrameSniffer();
  2996.  };
  2997.  // ---------------------------------------------------
  2998. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugStackFrameSnifferEx.cpp
  2999. --- a/com/win32comext/axdebug/src/PyIDebugStackFrameSnifferEx.cpp   Mon Sep 10 17:23:43 2012 -0400
  3000. +++ b/com/win32comext/axdebug/src/PyIDebugStackFrameSnifferEx.cpp   Mon Sep 17 20:02:58 2012 +0200
  3001. @@ -10,10 +10,9 @@
  3002.  //
  3003.  // Interface Implementation
  3004.  
  3005. -PyIDebugStackFrameSnifferEx::PyIDebugStackFrameSnifferEx(IUnknown *pdisp):
  3006. -   PyIDebugStackFrameSniffer(pdisp)
  3007. +PyIDebugStackFrameSnifferEx::PyIDebugStackFrameSnifferEx(IUnknown *pdisp, PyTypeObject *ptype):
  3008. +   PyIDebugStackFrameSniffer(pdisp, ptype)
  3009.  {
  3010. -   ob_type = &type;
  3011.  }
  3012.  
  3013.  PyIDebugStackFrameSnifferEx::~PyIDebugStackFrameSnifferEx()
  3014. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugStackFrameSnifferEx.h
  3015. --- a/com/win32comext/axdebug/src/PyIDebugStackFrameSnifferEx.h Mon Sep 10 17:23:43 2012 -0400
  3016. +++ b/com/win32comext/axdebug/src/PyIDebugStackFrameSnifferEx.h Mon Sep 17 20:02:58 2012 +0200
  3017. @@ -11,7 +11,7 @@
  3018.     static PyObject *EnumStackFramesEx(PyObject *self, PyObject *args);
  3019.  
  3020.  protected:
  3021. -   PyIDebugStackFrameSnifferEx(IUnknown *pdisp);
  3022. +   PyIDebugStackFrameSnifferEx(IUnknown *pdisp, PyTypeObject *ptype);
  3023.     ~PyIDebugStackFrameSnifferEx();
  3024.  };
  3025.  // ---------------------------------------------------
  3026. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugSyncOperation.cpp
  3027. --- a/com/win32comext/axdebug/src/PyIDebugSyncOperation.cpp Mon Sep 10 17:23:43 2012 -0400
  3028. +++ b/com/win32comext/axdebug/src/PyIDebugSyncOperation.cpp Mon Sep 17 20:02:58 2012 +0200
  3029. @@ -11,10 +11,9 @@
  3030.  //
  3031.  // Interface Implementation
  3032.  
  3033. -PyIDebugSyncOperation::PyIDebugSyncOperation(IUnknown *pdisp):
  3034. -   PyIUnknown(pdisp)
  3035. +PyIDebugSyncOperation::PyIDebugSyncOperation(IUnknown *pdisp, PyTypeObject *ptype):
  3036. +   PyIUnknown(pdisp, ptype)
  3037.  {
  3038. -   ob_type = &type;
  3039.  }
  3040.  
  3041.  PyIDebugSyncOperation::~PyIDebugSyncOperation()
  3042. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIDebugSyncOperation.h
  3043. --- a/com/win32comext/axdebug/src/PyIDebugSyncOperation.h   Mon Sep 10 17:23:43 2012 -0400
  3044. +++ b/com/win32comext/axdebug/src/PyIDebugSyncOperation.h   Mon Sep 17 20:02:58 2012 +0200
  3045. @@ -17,7 +17,7 @@
  3046.     static PyObject *InProgressAbort(PyObject *self, PyObject *args);
  3047.  
  3048.  protected:
  3049. -   PyIDebugSyncOperation(IUnknown *pdisp);
  3050. +   PyIDebugSyncOperation(IUnknown *pdisp, PyTypeObject *ptype);
  3051.     ~PyIDebugSyncOperation();
  3052.  };
  3053.  // ---------------------------------------------------
  3054. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIEnumDebugApplicationNodes.cpp
  3055. --- a/com/win32comext/axdebug/src/PyIEnumDebugApplicationNodes.cpp  Mon Sep 10 17:23:43 2012 -0400
  3056. +++ b/com/win32comext/axdebug/src/PyIEnumDebugApplicationNodes.cpp  Mon Sep 17 20:02:58 2012 +0200
  3057. @@ -12,10 +12,9 @@
  3058.  //
  3059.  // Interface Implementation
  3060.  
  3061. -PyIEnumDebugApplicationNodes::PyIEnumDebugApplicationNodes(IUnknown *pdisp):
  3062. -   PyIUnknown(pdisp)
  3063. +PyIEnumDebugApplicationNodes::PyIEnumDebugApplicationNodes(IUnknown *pdisp, PyTypeObject *ptype):
  3064. +   PyIUnknown(pdisp, ptype)
  3065.  {
  3066. -   ob_type = &type;
  3067.  }
  3068.  
  3069.  PyIEnumDebugApplicationNodes::~PyIEnumDebugApplicationNodes()
  3070. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIEnumDebugApplicationNodes.h
  3071. --- a/com/win32comext/axdebug/src/PyIEnumDebugApplicationNodes.h    Mon Sep 10 17:23:43 2012 -0400
  3072. +++ b/com/win32comext/axdebug/src/PyIEnumDebugApplicationNodes.h    Mon Sep 17 20:02:58 2012 +0200
  3073. @@ -18,7 +18,7 @@
  3074.     static PyObject *Clone(PyObject *self, PyObject *args);
  3075.  
  3076.  protected:
  3077. -   PyIEnumDebugApplicationNodes(IUnknown *pdisp);
  3078. +   PyIEnumDebugApplicationNodes(IUnknown *pdisp, PyTypeObject *ptype);
  3079.     ~PyIEnumDebugApplicationNodes();
  3080.  };
  3081.  // ---------------------------------------------------
  3082. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIEnumDebugCodeContexts.cpp
  3083. --- a/com/win32comext/axdebug/src/PyIEnumDebugCodeContexts.cpp  Mon Sep 10 17:23:43 2012 -0400
  3084. +++ b/com/win32comext/axdebug/src/PyIEnumDebugCodeContexts.cpp  Mon Sep 17 20:02:58 2012 +0200
  3085. @@ -12,10 +12,9 @@
  3086.  //
  3087.  // Interface Implementation
  3088.  
  3089. -PyIEnumDebugCodeContexts::PyIEnumDebugCodeContexts(IUnknown *pdisp):
  3090. -   PyIUnknown(pdisp)
  3091. +PyIEnumDebugCodeContexts::PyIEnumDebugCodeContexts(IUnknown *pdisp, PyTypeObject *ptype):
  3092. +   PyIUnknown(pdisp, ptype)
  3093.  {
  3094. -   ob_type = &type;
  3095.  }
  3096.  
  3097.  PyIEnumDebugCodeContexts::~PyIEnumDebugCodeContexts()
  3098. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIEnumDebugCodeContexts.h
  3099. --- a/com/win32comext/axdebug/src/PyIEnumDebugCodeContexts.h    Mon Sep 10 17:23:43 2012 -0400
  3100. +++ b/com/win32comext/axdebug/src/PyIEnumDebugCodeContexts.h    Mon Sep 17 20:02:58 2012 +0200
  3101. @@ -18,7 +18,7 @@
  3102.     static PyObject *Clone(PyObject *self, PyObject *args);
  3103.  
  3104.  protected:
  3105. -   PyIEnumDebugCodeContexts(IUnknown *pdisp);
  3106. +   PyIEnumDebugCodeContexts(IUnknown *pdisp, PyTypeObject *ptype);
  3107.     ~PyIEnumDebugCodeContexts();
  3108.  };
  3109.  // ---------------------------------------------------
  3110. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIEnumDebugExpressionContexts.cpp
  3111. --- a/com/win32comext/axdebug/src/PyIEnumDebugExpressionContexts.cpp    Mon Sep 10 17:23:43 2012 -0400
  3112. +++ b/com/win32comext/axdebug/src/PyIEnumDebugExpressionContexts.cpp    Mon Sep 17 20:02:58 2012 +0200
  3113. @@ -10,10 +10,9 @@
  3114.  //
  3115.  // Interface Implementation
  3116.  
  3117. -PyIEnumDebugExpressionContexts::PyIEnumDebugExpressionContexts(IUnknown *pdisp):
  3118. -   PyIUnknown(pdisp)
  3119. +PyIEnumDebugExpressionContexts::PyIEnumDebugExpressionContexts(IUnknown *pdisp, PyTypeObject *ptype):
  3120. +   PyIUnknown(pdisp, ptype)
  3121.  {
  3122. -   ob_type = &type;
  3123.  }
  3124.  
  3125.  PyIEnumDebugExpressionContexts::~PyIEnumDebugExpressionContexts()
  3126. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIEnumDebugExpressionContexts.h
  3127. --- a/com/win32comext/axdebug/src/PyIEnumDebugExpressionContexts.h  Mon Sep 10 17:23:43 2012 -0400
  3128. +++ b/com/win32comext/axdebug/src/PyIEnumDebugExpressionContexts.h  Mon Sep 17 20:02:58 2012 +0200
  3129. @@ -18,7 +18,7 @@
  3130.     static PyObject *Clone(PyObject *self, PyObject *args);
  3131.  
  3132.  protected:
  3133. -   PyIEnumDebugExpressionContexts(IUnknown *pdisp);
  3134. +   PyIEnumDebugExpressionContexts(IUnknown *pdisp, PyTypeObject *ptype);
  3135.     ~PyIEnumDebugExpressionContexts();
  3136.  };
  3137.  // ---------------------------------------------------
  3138. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIEnumDebugPropertyInfo.cpp
  3139. --- a/com/win32comext/axdebug/src/PyIEnumDebugPropertyInfo.cpp  Mon Sep 10 17:23:43 2012 -0400
  3140. +++ b/com/win32comext/axdebug/src/PyIEnumDebugPropertyInfo.cpp  Mon Sep 17 20:02:58 2012 +0200
  3141. @@ -11,10 +11,9 @@
  3142.  //
  3143.  // Interface Implementation
  3144.  
  3145. -PyIEnumDebugPropertyInfo::PyIEnumDebugPropertyInfo(IUnknown *pdisp):
  3146. -   PyIUnknown(pdisp)
  3147. +PyIEnumDebugPropertyInfo::PyIEnumDebugPropertyInfo(IUnknown *pdisp, PyTypeObject *ptype):
  3148. +   PyIUnknown(pdisp, ptype)
  3149.  {
  3150. -   ob_type = &type;
  3151.  }
  3152.  
  3153.  PyIEnumDebugPropertyInfo::~PyIEnumDebugPropertyInfo()
  3154. @@ -301,4 +300,4 @@
  3155.     *pcelt = PyInt_AsLong(result);
  3156.     Py_DECREF(result);
  3157.     return PyCom_SetCOMErrorFromPyException(IID_IEnumDebugPropertyInfo);
  3158. -}
  3159. \ No newline at end of file
  3160. +}
  3161. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIEnumDebugPropertyInfo.h
  3162. --- a/com/win32comext/axdebug/src/PyIEnumDebugPropertyInfo.h    Mon Sep 10 17:23:43 2012 -0400
  3163. +++ b/com/win32comext/axdebug/src/PyIEnumDebugPropertyInfo.h    Mon Sep 17 20:02:58 2012 +0200
  3164. @@ -19,7 +19,7 @@
  3165.     static PyObject *GetCount(PyObject *self, PyObject *args);
  3166.  
  3167.  protected:
  3168. -   PyIEnumDebugPropertyInfo(IUnknown *pdisp);
  3169. +   PyIEnumDebugPropertyInfo(IUnknown *pdisp, PyTypeObject *ptype);
  3170.     ~PyIEnumDebugPropertyInfo();
  3171.  };
  3172.  // ---------------------------------------------------
  3173. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIEnumDebugStackFrames.cpp
  3174. --- a/com/win32comext/axdebug/src/PyIEnumDebugStackFrames.cpp   Mon Sep 10 17:23:43 2012 -0400
  3175. +++ b/com/win32comext/axdebug/src/PyIEnumDebugStackFrames.cpp   Mon Sep 17 20:02:58 2012 +0200
  3176. @@ -12,10 +12,9 @@
  3177.  //
  3178.  // Interface Implementation
  3179.  
  3180. -PyIEnumDebugStackFrames::PyIEnumDebugStackFrames(IUnknown *pdisp):
  3181. -   PyIUnknown(pdisp)
  3182. +PyIEnumDebugStackFrames::PyIEnumDebugStackFrames(IUnknown *pdisp, PyTypeObject *ptype):
  3183. +   PyIUnknown(pdisp, ptype)
  3184.  {
  3185. -   ob_type = &type;
  3186.  }
  3187.  
  3188.  PyIEnumDebugStackFrames::~PyIEnumDebugStackFrames()
  3189. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIEnumDebugStackFrames.h
  3190. --- a/com/win32comext/axdebug/src/PyIEnumDebugStackFrames.h Mon Sep 10 17:23:43 2012 -0400
  3191. +++ b/com/win32comext/axdebug/src/PyIEnumDebugStackFrames.h Mon Sep 17 20:02:58 2012 +0200
  3192. @@ -18,7 +18,7 @@
  3193.     static PyObject *Clone(PyObject *self, PyObject *args);
  3194.  
  3195.  protected:
  3196. -   PyIEnumDebugStackFrames(IUnknown *pdisp);
  3197. +   PyIEnumDebugStackFrames(IUnknown *pdisp, PyTypeObject *ptype);
  3198.     ~PyIEnumDebugStackFrames();
  3199.  };
  3200.  // ---------------------------------------------------
  3201. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIEnumRemoteDebugApplicationThreads.cpp
  3202. --- a/com/win32comext/axdebug/src/PyIEnumRemoteDebugApplicationThreads.cpp  Mon Sep 10 17:23:43 2012 -0400
  3203. +++ b/com/win32comext/axdebug/src/PyIEnumRemoteDebugApplicationThreads.cpp  Mon Sep 17 20:02:58 2012 +0200
  3204. @@ -12,10 +12,9 @@
  3205.  //
  3206.  // Interface Implementation
  3207.  
  3208. -PyIEnumRemoteDebugApplicationThreads::PyIEnumRemoteDebugApplicationThreads(IUnknown *pdisp):
  3209. -   PyIUnknown(pdisp)
  3210. +PyIEnumRemoteDebugApplicationThreads::PyIEnumRemoteDebugApplicationThreads(IUnknown *pdisp, PyTypeObject *ptype):
  3211. +   PyIUnknown(pdisp, ptype)
  3212.  {
  3213. -   ob_type = &type;
  3214.  }
  3215.  
  3216.  PyIEnumRemoteDebugApplicationThreads::~PyIEnumRemoteDebugApplicationThreads()
  3217. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIEnumRemoteDebugApplicationThreads.h
  3218. --- a/com/win32comext/axdebug/src/PyIEnumRemoteDebugApplicationThreads.h    Mon Sep 10 17:23:43 2012 -0400
  3219. +++ b/com/win32comext/axdebug/src/PyIEnumRemoteDebugApplicationThreads.h    Mon Sep 17 20:02:58 2012 +0200
  3220. @@ -18,7 +18,7 @@
  3221.     static PyObject *Clone(PyObject *self, PyObject *args);
  3222.  
  3223.  protected:
  3224. -   PyIEnumRemoteDebugApplicationThreads(IUnknown *pdisp);
  3225. +   PyIEnumRemoteDebugApplicationThreads(IUnknown *pdisp, PyTypeObject *ptype);
  3226.     ~PyIEnumRemoteDebugApplicationThreads();
  3227.  };
  3228.  // ---------------------------------------------------
  3229. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIEnumRemoteDebugApplications.cpp
  3230. --- a/com/win32comext/axdebug/src/PyIEnumRemoteDebugApplications.cpp    Mon Sep 10 17:23:43 2012 -0400
  3231. +++ b/com/win32comext/axdebug/src/PyIEnumRemoteDebugApplications.cpp    Mon Sep 17 20:02:58 2012 +0200
  3232. @@ -11,10 +11,9 @@
  3233.  //
  3234.  // Interface Implementation
  3235.  
  3236. -PyIEnumRemoteDebugApplications::PyIEnumRemoteDebugApplications(IUnknown *pdisp):
  3237. -   PyIUnknown(pdisp)
  3238. +PyIEnumRemoteDebugApplications::PyIEnumRemoteDebugApplications(IUnknown *pdisp, PyTypeObject *ptype):
  3239. +   PyIUnknown(pdisp, ptype)
  3240.  {
  3241. -   ob_type = &type;
  3242.  }
  3243.  
  3244.  PyIEnumRemoteDebugApplications::~PyIEnumRemoteDebugApplications()
  3245. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIEnumRemoteDebugApplications.h
  3246. --- a/com/win32comext/axdebug/src/PyIEnumRemoteDebugApplications.h  Mon Sep 10 17:23:43 2012 -0400
  3247. +++ b/com/win32comext/axdebug/src/PyIEnumRemoteDebugApplications.h  Mon Sep 17 20:02:58 2012 +0200
  3248. @@ -18,7 +18,7 @@
  3249.     static PyObject *Clone(PyObject *self, PyObject *args);
  3250.  
  3251.  protected:
  3252. -   PyIEnumRemoteDebugApplications(IUnknown *pdisp);
  3253. +   PyIEnumRemoteDebugApplications(IUnknown *pdisp, PyTypeObject *ptype);
  3254.     ~PyIEnumRemoteDebugApplications();
  3255.  };
  3256.  // ---------------------------------------------------
  3257. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIMachineDebugManager.cpp
  3258. --- a/com/win32comext/axdebug/src/PyIMachineDebugManager.cpp    Mon Sep 10 17:23:43 2012 -0400
  3259. +++ b/com/win32comext/axdebug/src/PyIMachineDebugManager.cpp    Mon Sep 17 20:02:58 2012 +0200
  3260. @@ -10,10 +10,9 @@
  3261.  //
  3262.  // Interface Implementation
  3263.  
  3264. -PyIMachineDebugManager::PyIMachineDebugManager(IUnknown *pdisp):
  3265. -   PyIUnknown(pdisp)
  3266. +PyIMachineDebugManager::PyIMachineDebugManager(IUnknown *pdisp, PyTypeObject *ptype):
  3267. +   PyIUnknown(pdisp, ptype)
  3268.  {
  3269. -   ob_type = &type;
  3270.  }
  3271.  
  3272.  PyIMachineDebugManager::~PyIMachineDebugManager()
  3273. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIMachineDebugManager.h
  3274. --- a/com/win32comext/axdebug/src/PyIMachineDebugManager.h  Mon Sep 10 17:23:43 2012 -0400
  3275. +++ b/com/win32comext/axdebug/src/PyIMachineDebugManager.h  Mon Sep 17 20:02:58 2012 +0200
  3276. @@ -17,7 +17,7 @@
  3277.     static PyObject *EnumApplications(PyObject *self, PyObject *args);
  3278.  
  3279.  protected:
  3280. -   PyIMachineDebugManager(IUnknown *pdisp);
  3281. +   PyIMachineDebugManager(IUnknown *pdisp, PyTypeObject *ptype);
  3282.     ~PyIMachineDebugManager();
  3283.  };
  3284.  // ---------------------------------------------------
  3285. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIMachineDebugManagerEvents.cpp
  3286. --- a/com/win32comext/axdebug/src/PyIMachineDebugManagerEvents.cpp  Mon Sep 10 17:23:43 2012 -0400
  3287. +++ b/com/win32comext/axdebug/src/PyIMachineDebugManagerEvents.cpp  Mon Sep 17 20:02:58 2012 +0200
  3288. @@ -11,10 +11,9 @@
  3289.  //
  3290.  // Interface Implementation
  3291.  
  3292. -PyIMachineDebugManagerEvents::PyIMachineDebugManagerEvents(IUnknown *pdisp):
  3293. -   PyIUnknown(pdisp)
  3294. +PyIMachineDebugManagerEvents::PyIMachineDebugManagerEvents(IUnknown *pdisp, PyTypeObject *ptype):
  3295. +   PyIUnknown(pdisp, ptype)
  3296.  {
  3297. -   ob_type = &type;
  3298.  }
  3299.  
  3300.  PyIMachineDebugManagerEvents::~PyIMachineDebugManagerEvents()
  3301. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIMachineDebugManagerEvents.h
  3302. --- a/com/win32comext/axdebug/src/PyIMachineDebugManagerEvents.h    Mon Sep 10 17:23:43 2012 -0400
  3303. +++ b/com/win32comext/axdebug/src/PyIMachineDebugManagerEvents.h    Mon Sep 17 20:02:58 2012 +0200
  3304. @@ -16,7 +16,7 @@
  3305.     static PyObject *onRemoveApplication(PyObject *self, PyObject *args);
  3306.  
  3307.  protected:
  3308. -   PyIMachineDebugManagerEvents(IUnknown *pdisp);
  3309. +   PyIMachineDebugManagerEvents(IUnknown *pdisp, PyTypeObject *ptype);
  3310.     ~PyIMachineDebugManagerEvents();
  3311.  };
  3312.  // ---------------------------------------------------
  3313. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIProcessDebugManager.cpp
  3314. --- a/com/win32comext/axdebug/src/PyIProcessDebugManager.cpp    Mon Sep 10 17:23:43 2012 -0400
  3315. +++ b/com/win32comext/axdebug/src/PyIProcessDebugManager.cpp    Mon Sep 17 20:02:58 2012 +0200
  3316. @@ -9,10 +9,9 @@
  3317.  //
  3318.  // Interface Implementation
  3319.  
  3320. -PyIProcessDebugManager::PyIProcessDebugManager(IUnknown *pdisp):
  3321. -   PyIUnknown(pdisp)
  3322. +PyIProcessDebugManager::PyIProcessDebugManager(IUnknown *pdisp, PyTypeObject *ptype):
  3323. +   PyIUnknown(pdisp, ptype)
  3324.  {
  3325. -   ob_type = &type;
  3326.  }
  3327.  
  3328.  PyIProcessDebugManager::~PyIProcessDebugManager()
  3329. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIProcessDebugManager.h
  3330. --- a/com/win32comext/axdebug/src/PyIProcessDebugManager.h  Mon Sep 10 17:23:43 2012 -0400
  3331. +++ b/com/win32comext/axdebug/src/PyIProcessDebugManager.h  Mon Sep 17 20:02:58 2012 +0200
  3332. @@ -19,7 +19,7 @@
  3333.     static PyObject *CreateDebugDocumentHelper(PyObject *self, PyObject *args);
  3334.  
  3335.  protected:
  3336. -   PyIProcessDebugManager(IUnknown *pdisp);
  3337. +   PyIProcessDebugManager(IUnknown *pdisp, PyTypeObject *ptype);
  3338.     ~PyIProcessDebugManager();
  3339.  };
  3340.  // ---------------------------------------------------
  3341. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIProvideExpressionContexts.cpp
  3342. --- a/com/win32comext/axdebug/src/PyIProvideExpressionContexts.cpp  Mon Sep 10 17:23:43 2012 -0400
  3343. +++ b/com/win32comext/axdebug/src/PyIProvideExpressionContexts.cpp  Mon Sep 17 20:02:58 2012 +0200
  3344. @@ -11,10 +11,9 @@
  3345.  //
  3346.  // Interface Implementation
  3347.  
  3348. -PyIProvideExpressionContexts::PyIProvideExpressionContexts(IUnknown *pdisp):
  3349. -   PyIUnknown(pdisp)
  3350. +PyIProvideExpressionContexts::PyIProvideExpressionContexts(IUnknown *pdisp, PyTypeObject *ptype):
  3351. +   PyIUnknown(pdisp, ptype)
  3352.  {
  3353. -   ob_type = &type;
  3354.  }
  3355.  
  3356.  PyIProvideExpressionContexts::~PyIProvideExpressionContexts()
  3357. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIProvideExpressionContexts.h
  3358. --- a/com/win32comext/axdebug/src/PyIProvideExpressionContexts.h    Mon Sep 10 17:23:43 2012 -0400
  3359. +++ b/com/win32comext/axdebug/src/PyIProvideExpressionContexts.h    Mon Sep 17 20:02:58 2012 +0200
  3360. @@ -15,7 +15,7 @@
  3361.     static PyObject *EnumExpressionContexts(PyObject *self, PyObject *args);
  3362.  
  3363.  protected:
  3364. -   PyIProvideExpressionContexts(IUnknown *pdisp);
  3365. +   PyIProvideExpressionContexts(IUnknown *pdisp, PyTypeObject *ptype);
  3366.     ~PyIProvideExpressionContexts();
  3367.  };
  3368.  // ---------------------------------------------------
  3369. @@ -31,4 +31,4 @@
  3370.     // IProvideExpressionContexts
  3371.     STDMETHOD(EnumExpressionContexts)(
  3372.         IEnumDebugExpressionContexts __RPC_FAR *__RPC_FAR * ppedsf);
  3373. -};
  3374. \ No newline at end of file
  3375. +};
  3376. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIRemoteDebugApplication.cpp
  3377. --- a/com/win32comext/axdebug/src/PyIRemoteDebugApplication.cpp Mon Sep 10 17:23:43 2012 -0400
  3378. +++ b/com/win32comext/axdebug/src/PyIRemoteDebugApplication.cpp Mon Sep 17 20:02:58 2012 +0200
  3379. @@ -10,10 +10,9 @@
  3380.  //
  3381.  // Interface Implementation
  3382.  
  3383. -PyIRemoteDebugApplication::PyIRemoteDebugApplication(IUnknown *pdisp):
  3384. -   PyIUnknown(pdisp)
  3385. +PyIRemoteDebugApplication::PyIRemoteDebugApplication(IUnknown *pdisp, PyTypeObject *ptype):
  3386. +   PyIUnknown(pdisp, ptype)
  3387.  {
  3388. -   ob_type = &type;
  3389.  }
  3390.  
  3391.  PyIRemoteDebugApplication::~PyIRemoteDebugApplication()
  3392. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIRemoteDebugApplication.h
  3393. --- a/com/win32comext/axdebug/src/PyIRemoteDebugApplication.h   Mon Sep 10 17:23:43 2012 -0400
  3394. +++ b/com/win32comext/axdebug/src/PyIRemoteDebugApplication.h   Mon Sep 17 20:02:58 2012 +0200
  3395. @@ -24,7 +24,7 @@
  3396.     static PyObject *GetRootNode(PyObject *self, PyObject *args);
  3397.     static PyObject *EnumGlobalExpressionContexts(PyObject *self, PyObject *args);
  3398.  protected:
  3399. -   PyIRemoteDebugApplication(IUnknown *pdisp);
  3400. +   PyIRemoteDebugApplication(IUnknown *pdisp, PyTypeObject *ptype);
  3401.     ~PyIRemoteDebugApplication();
  3402.  };
  3403.  // ---------------------------------------------------
  3404. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIRemoteDebugApplicationEvents.cpp
  3405. --- a/com/win32comext/axdebug/src/PyIRemoteDebugApplicationEvents.cpp   Mon Sep 10 17:23:43 2012 -0400
  3406. +++ b/com/win32comext/axdebug/src/PyIRemoteDebugApplicationEvents.cpp   Mon Sep 17 20:02:58 2012 +0200
  3407. @@ -11,10 +11,9 @@
  3408.  //
  3409.  // Interface Implementation
  3410.  
  3411. -PyIRemoteDebugApplicationEvents::PyIRemoteDebugApplicationEvents(IUnknown *pdisp):
  3412. -   PyIUnknown(pdisp)
  3413. +PyIRemoteDebugApplicationEvents::PyIRemoteDebugApplicationEvents(IUnknown *pdisp, PyTypeObject *ptype):
  3414. +   PyIUnknown(pdisp, ptype)
  3415.  {
  3416. -   ob_type = &type;
  3417.  }
  3418.  
  3419.  PyIRemoteDebugApplicationEvents::~PyIRemoteDebugApplicationEvents()
  3420. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIRemoteDebugApplicationEvents.h
  3421. --- a/com/win32comext/axdebug/src/PyIRemoteDebugApplicationEvents.h Mon Sep 10 17:23:43 2012 -0400
  3422. +++ b/com/win32comext/axdebug/src/PyIRemoteDebugApplicationEvents.h Mon Sep 17 20:02:58 2012 +0200
  3423. @@ -24,7 +24,7 @@
  3424.     static PyObject *OnBreakFlagChange(PyObject *self, PyObject *args);
  3425.  
  3426.  protected:
  3427. -   PyIRemoteDebugApplicationEvents(IUnknown *pdisp);
  3428. +   PyIRemoteDebugApplicationEvents(IUnknown *pdisp, PyTypeObject *ptype);
  3429.     ~PyIRemoteDebugApplicationEvents();
  3430.  };
  3431.  // ---------------------------------------------------
  3432. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIRemoteDebugApplicationThread.cpp
  3433. --- a/com/win32comext/axdebug/src/PyIRemoteDebugApplicationThread.cpp   Mon Sep 10 17:23:43 2012 -0400
  3434. +++ b/com/win32comext/axdebug/src/PyIRemoteDebugApplicationThread.cpp   Mon Sep 17 20:02:58 2012 +0200
  3435. @@ -11,10 +11,9 @@
  3436.  //
  3437.  // Interface Implementation
  3438.  
  3439. -PyIRemoteDebugApplicationThread::PyIRemoteDebugApplicationThread(IUnknown *pdisp):
  3440. -   PyIUnknown(pdisp)
  3441. +PyIRemoteDebugApplicationThread::PyIRemoteDebugApplicationThread(IUnknown *pdisp, PyTypeObject *ptype):
  3442. +   PyIUnknown(pdisp, ptype)
  3443.  {
  3444. -   ob_type = &type;
  3445.  }
  3446.  
  3447.  PyIRemoteDebugApplicationThread::~PyIRemoteDebugApplicationThread()
  3448. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axdebug/src/PyIRemoteDebugApplicationThread.h
  3449. --- a/com/win32comext/axdebug/src/PyIRemoteDebugApplicationThread.h Mon Sep 10 17:23:43 2012 -0400
  3450. +++ b/com/win32comext/axdebug/src/PyIRemoteDebugApplicationThread.h Mon Sep 17 20:02:58 2012 +0200
  3451. @@ -23,7 +23,7 @@
  3452.     static PyObject *GetSuspendCount(PyObject *self, PyObject *args);
  3453.  
  3454.  protected:
  3455. -   PyIRemoteDebugApplicationThread(IUnknown *pdisp);
  3456. +   PyIRemoteDebugApplicationThread(IUnknown *pdisp, PyTypeObject *ptype);
  3457.     ~PyIRemoteDebugApplicationThread();
  3458.  };
  3459.  // ---------------------------------------------------
  3460. @@ -66,4 +66,4 @@
  3461.     STDMETHOD(GetSuspendCount)(
  3462.         DWORD __RPC_FAR * pdwCount);
  3463.  
  3464. -};
  3465. \ No newline at end of file
  3466. +};
  3467. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axscript/src/AXScript.h
  3468. --- a/com/win32comext/axscript/src/AXScript.h   Mon Sep 10 17:23:43 2012 -0400
  3469. +++ b/com/win32comext/axscript/src/AXScript.h   Mon Sep 17 20:02:58 2012 +0200
  3470. @@ -42,7 +42,7 @@
  3471.     static PyObject *Clone(PyObject *self, PyObject *args);
  3472.    
  3473.  protected:
  3474. -   PyIActiveScript(IUnknown *pdisp);
  3475. +   PyIActiveScript(IUnknown *pdisp, PyTypeObject *ptype);
  3476.     ~PyIActiveScript();
  3477.  };
  3478.  
  3479. @@ -59,7 +59,7 @@
  3480.     static PyObject *ParseScriptText(PyObject *self, PyObject *args);
  3481.    
  3482.  protected:
  3483. -   PyIActiveScriptParse(IUnknown *pdisp);
  3484. +   PyIActiveScriptParse(IUnknown *pdisp, PyTypeObject *ptype);
  3485.     ~PyIActiveScriptParse();
  3486.  };
  3487.  
  3488. @@ -81,7 +81,7 @@
  3489.     static PyObject *OnScriptTerminate(PyObject *self, PyObject *args);
  3490.    
  3491.  protected:
  3492. -   PyIActiveScriptSite(IUnknown *pdisp);
  3493. +   PyIActiveScriptSite(IUnknown *pdisp, PyTypeObject *ptype);
  3494.     ~PyIActiveScriptSite();
  3495.  };
  3496.  
  3497. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axscript/src/PyIActiveScript.cpp
  3498. --- a/com/win32comext/axscript/src/PyIActiveScript.cpp  Mon Sep 10 17:23:43 2012 -0400
  3499. +++ b/com/win32comext/axscript/src/PyIActiveScript.cpp  Mon Sep 17 20:02:58 2012 +0200
  3500. @@ -1,9 +1,8 @@
  3501.  #include "stdafx.h"
  3502.  
  3503. -PyIActiveScript::PyIActiveScript(IUnknown *pdisp):
  3504. -   PyIUnknown(pdisp)
  3505. +PyIActiveScript::PyIActiveScript(IUnknown *pdisp, PyTypeObject *ptype):
  3506. +   PyIUnknown(pdisp, ptype)
  3507.  {
  3508. -   ob_type = &type;
  3509.  }
  3510.  
  3511.  PyIActiveScript::~PyIActiveScript()
  3512. @@ -335,7 +334,7 @@
  3513.     if ( FAILED(hr) )
  3514.         return SetPythonCOMError(self, hr);
  3515.  
  3516. -   return new PyIActiveScript(pIASClone);
  3517. +   return GET_PYCOM_CTOR(PyIActiveScript)(pIASClone);
  3518.  }
  3519.  
  3520.  static struct PyMethodDef PyIActiveScript_methods[] =
  3521. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axscript/src/PyIActiveScriptError.cpp
  3522. --- a/com/win32comext/axscript/src/PyIActiveScriptError.cpp Mon Sep 10 17:23:43 2012 -0400
  3523. +++ b/com/win32comext/axscript/src/PyIActiveScriptError.cpp Mon Sep 17 20:02:58 2012 +0200
  3524. @@ -9,10 +9,9 @@
  3525.  //
  3526.  // Interface Implementation
  3527.  
  3528. -PyIActiveScriptError::PyIActiveScriptError(IUnknown *pdisp):
  3529. -   PyIUnknown(pdisp)
  3530. +PyIActiveScriptError::PyIActiveScriptError(IUnknown *pdisp, PyTypeObject *ptype):
  3531. +   PyIUnknown(pdisp, ptype)
  3532.  {
  3533. -   ob_type = &type;
  3534.  }
  3535.  
  3536.  PyIActiveScriptError::~PyIActiveScriptError()
  3537. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axscript/src/PyIActiveScriptError.h
  3538. --- a/com/win32comext/axscript/src/PyIActiveScriptError.h   Mon Sep 10 17:23:43 2012 -0400
  3539. +++ b/com/win32comext/axscript/src/PyIActiveScriptError.h   Mon Sep 17 20:02:58 2012 +0200
  3540. @@ -17,6 +17,6 @@
  3541.     static PyObject *GetSourceLineText(PyObject *self, PyObject *args);
  3542.  
  3543.  protected:
  3544. -   PyIActiveScriptError(IUnknown *pdisp);
  3545. +   PyIActiveScriptError(IUnknown *pdisp, PyTypeObject *ptype);
  3546.     ~PyIActiveScriptError();
  3547.  };
  3548. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axscript/src/PyIActiveScriptParse.cpp
  3549. --- a/com/win32comext/axscript/src/PyIActiveScriptParse.cpp Mon Sep 10 17:23:43 2012 -0400
  3550. +++ b/com/win32comext/axscript/src/PyIActiveScriptParse.cpp Mon Sep 17 20:02:58 2012 +0200
  3551. @@ -1,9 +1,8 @@
  3552.  #include "stdafx.h"
  3553.  
  3554. -PyIActiveScriptParse::PyIActiveScriptParse(IUnknown *pdisp):
  3555. -   PyIUnknown(pdisp)
  3556. +PyIActiveScriptParse::PyIActiveScriptParse(IUnknown *pdisp, PyTypeObject *ptype):
  3557. +   PyIUnknown(pdisp, ptype)
  3558.  {
  3559. -   ob_type = &type;
  3560.  }
  3561.  
  3562.  PyIActiveScriptParse::~PyIActiveScriptParse()
  3563. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axscript/src/PyIActiveScriptParseProcedure.cpp
  3564. --- a/com/win32comext/axscript/src/PyIActiveScriptParseProcedure.cpp    Mon Sep 10 17:23:43 2012 -0400
  3565. +++ b/com/win32comext/axscript/src/PyIActiveScriptParseProcedure.cpp    Mon Sep 17 20:02:58 2012 +0200
  3566. @@ -9,10 +9,9 @@
  3567.  //
  3568.  // Interface Implementation
  3569.  
  3570. -PyIActiveScriptParseProcedure::PyIActiveScriptParseProcedure(IUnknown *pdisp):
  3571. -   PyIUnknown(pdisp)
  3572. +PyIActiveScriptParseProcedure::PyIActiveScriptParseProcedure(IUnknown *pdisp, PyTypeObject *ptype):
  3573. +   PyIUnknown(pdisp, ptype)
  3574.  {
  3575. -   ob_type = &type;
  3576.  }
  3577.  
  3578.  PyIActiveScriptParseProcedure::~PyIActiveScriptParseProcedure()
  3579. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axscript/src/PyIActiveScriptParseProcedure.h
  3580. --- a/com/win32comext/axscript/src/PyIActiveScriptParseProcedure.h  Mon Sep 10 17:23:43 2012 -0400
  3581. +++ b/com/win32comext/axscript/src/PyIActiveScriptParseProcedure.h  Mon Sep 17 20:02:58 2012 +0200
  3582. @@ -15,7 +15,7 @@
  3583.     static PyObject *ParseProcedureText(PyObject *self, PyObject *args);
  3584.  
  3585.  protected:
  3586. -   PyIActiveScriptParseProcedure(IUnknown *pdisp);
  3587. +   PyIActiveScriptParseProcedure(IUnknown *pdisp, PyTypeObject *ptype);
  3588.     ~PyIActiveScriptParseProcedure();
  3589.  };
  3590.  // ---------------------------------------------------
  3591. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axscript/src/PyIActiveScriptSite.cpp
  3592. --- a/com/win32comext/axscript/src/PyIActiveScriptSite.cpp  Mon Sep 10 17:23:43 2012 -0400
  3593. +++ b/com/win32comext/axscript/src/PyIActiveScriptSite.cpp  Mon Sep 17 20:02:58 2012 +0200
  3594. @@ -4,10 +4,9 @@
  3595.  
  3596.  #include "stdafx.h"
  3597.  
  3598. -PyIActiveScriptSite::PyIActiveScriptSite(IUnknown *pDisp) :
  3599. -   PyIUnknown(pDisp)
  3600. +PyIActiveScriptSite::PyIActiveScriptSite(IUnknown *pDisp, PyTypeObject *ptype) :
  3601. +   PyIUnknown(pDisp, ptype)
  3602.  {
  3603. -   ob_type = &type;
  3604.  }
  3605.  
  3606.  PyIActiveScriptSite::~PyIActiveScriptSite()
  3607. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axscript/src/PyIMultiInfos.cpp
  3608. --- a/com/win32comext/axscript/src/PyIMultiInfos.cpp    Mon Sep 10 17:23:43 2012 -0400
  3609. +++ b/com/win32comext/axscript/src/PyIMultiInfos.cpp    Mon Sep 17 20:02:58 2012 +0200
  3610. @@ -5,10 +5,9 @@
  3611.  
  3612.  ///////////////////////////////////////////////////////////////
  3613.  
  3614. -PyIProvideMultipleClassInfo::PyIProvideMultipleClassInfo(IUnknown *pDisp) :
  3615. -   PyIProvideClassInfo2(pDisp)
  3616. +PyIProvideMultipleClassInfo::PyIProvideMultipleClassInfo(IUnknown *pDisp, PyTypeObject *ptype) :
  3617. +   PyIProvideClassInfo2(pDisp, ptype)
  3618.  {
  3619. -   ob_type = &type;
  3620.  }
  3621.  
  3622.  PyIProvideMultipleClassInfo::~PyIProvideMultipleClassInfo()
  3623. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axscript/src/PyIObjectSafety.cpp
  3624. --- a/com/win32comext/axscript/src/PyIObjectSafety.cpp  Mon Sep 10 17:23:43 2012 -0400
  3625. +++ b/com/win32comext/axscript/src/PyIObjectSafety.cpp  Mon Sep 17 20:02:58 2012 +0200
  3626. @@ -1,10 +1,9 @@
  3627.  #include "stdafx.h"
  3628.  #include "PyIObjectSafety.h"
  3629.  
  3630. -PyIObjectSafety::PyIObjectSafety(IUnknown *pdisp):
  3631. -   PyIUnknown(pdisp)
  3632. +PyIObjectSafety::PyIObjectSafety(IUnknown *pdisp, PyTypeObject *ptype):
  3633. +   PyIUnknown(pdisp, ptype)
  3634.  {
  3635. -   ob_type = &type;
  3636.  }
  3637.  
  3638.  PyIObjectSafety::~PyIObjectSafety()
  3639. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axscript/src/PyIObjectSafety.h
  3640. --- a/com/win32comext/axscript/src/PyIObjectSafety.h    Mon Sep 10 17:23:43 2012 -0400
  3641. +++ b/com/win32comext/axscript/src/PyIObjectSafety.h    Mon Sep 17 20:02:58 2012 +0200
  3642. @@ -10,7 +10,7 @@
  3643.     static PyObject *SetInterfaceSafetyOptions(PyObject *self, PyObject *args);
  3644.    
  3645.  protected:
  3646. -   PyIObjectSafety(IUnknown *pdisp);
  3647. +   PyIObjectSafety(IUnknown *pdisp, PyTypeObject *ptype);
  3648.     ~PyIObjectSafety();
  3649.  };
  3650.  
  3651. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/axscript/src/PyIProvideMultipleClassInfo.h
  3652. --- a/com/win32comext/axscript/src/PyIProvideMultipleClassInfo.h    Mon Sep 10 17:23:43 2012 -0400
  3653. +++ b/com/win32comext/axscript/src/PyIProvideMultipleClassInfo.h    Mon Sep 17 20:02:58 2012 +0200
  3654. @@ -9,6 +9,6 @@
  3655.     static PyObject *GetMultiTypeInfoCount(PyObject *self, PyObject *args);
  3656.     static PyObject *GetInfoOfIndex(PyObject *self, PyObject *args);
  3657.  protected:
  3658. -   PyIProvideMultipleClassInfo(IUnknown *pdisp);
  3659. +   PyIProvideMultipleClassInfo(IUnknown *pdisp, PyTypeObject *ptype);
  3660.     ~PyIProvideMultipleClassInfo();
  3661.  };
  3662. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIBackgroundCopyError.cpp
  3663. --- a/com/win32comext/bits/src/PyIBackgroundCopyError.cpp   Mon Sep 10 17:23:43 2012 -0400
  3664. +++ b/com/win32comext/bits/src/PyIBackgroundCopyError.cpp   Mon Sep 17 20:02:58 2012 +0200
  3665. @@ -9,10 +9,9 @@
  3666.  //
  3667.  // Interface Implementation
  3668.  
  3669. -PyIBackgroundCopyError::PyIBackgroundCopyError(IUnknown *pdisp):
  3670. -   PyIUnknown(pdisp)
  3671. +PyIBackgroundCopyError::PyIBackgroundCopyError(IUnknown *pdisp, PyTypeObject *ptype):
  3672. +   PyIUnknown(pdisp, ptype)
  3673.  {
  3674. -   ob_type = &type;
  3675.  }
  3676.  
  3677.  PyIBackgroundCopyError::~PyIBackgroundCopyError()
  3678. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIBackgroundCopyError.h
  3679. --- a/com/win32comext/bits/src/PyIBackgroundCopyError.h Mon Sep 10 17:23:43 2012 -0400
  3680. +++ b/com/win32comext/bits/src/PyIBackgroundCopyError.h Mon Sep 17 20:02:58 2012 +0200
  3681. @@ -19,6 +19,6 @@
  3682.     static PyObject *GetProtocol(PyObject *self, PyObject *args);
  3683.  
  3684.  protected:
  3685. -   PyIBackgroundCopyError(IUnknown *pdisp);
  3686. +   PyIBackgroundCopyError(IUnknown *pdisp, PyTypeObject *ptype);
  3687.     ~PyIBackgroundCopyError();
  3688.  };
  3689. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIBackgroundCopyFile.cpp
  3690. --- a/com/win32comext/bits/src/PyIBackgroundCopyFile.cpp    Mon Sep 10 17:23:43 2012 -0400
  3691. +++ b/com/win32comext/bits/src/PyIBackgroundCopyFile.cpp    Mon Sep 17 20:02:58 2012 +0200
  3692. @@ -9,10 +9,9 @@
  3693.  //
  3694.  // Interface Implementation
  3695.  
  3696. -PyIBackgroundCopyFile::PyIBackgroundCopyFile(IUnknown *pdisp):
  3697. -   PyIUnknown(pdisp)
  3698. +PyIBackgroundCopyFile::PyIBackgroundCopyFile(IUnknown *pdisp, PyTypeObject *ptype):
  3699. +   PyIUnknown(pdisp, ptype)
  3700.  {
  3701. -   ob_type = &type;
  3702.  }
  3703.  
  3704.  PyIBackgroundCopyFile::~PyIBackgroundCopyFile()
  3705. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIBackgroundCopyFile.h
  3706. --- a/com/win32comext/bits/src/PyIBackgroundCopyFile.h  Mon Sep 10 17:23:43 2012 -0400
  3707. +++ b/com/win32comext/bits/src/PyIBackgroundCopyFile.h  Mon Sep 17 20:02:58 2012 +0200
  3708. @@ -17,6 +17,6 @@
  3709.     static PyObject *GetProgress(PyObject *self, PyObject *args);
  3710.  
  3711.  protected:
  3712. -   PyIBackgroundCopyFile(IUnknown *pdisp);
  3713. +   PyIBackgroundCopyFile(IUnknown *pdisp, PyTypeObject *ptype);
  3714.     ~PyIBackgroundCopyFile();
  3715.  };
  3716. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIBackgroundCopyFile2.cpp
  3717. --- a/com/win32comext/bits/src/PyIBackgroundCopyFile2.cpp   Mon Sep 10 17:23:43 2012 -0400
  3718. +++ b/com/win32comext/bits/src/PyIBackgroundCopyFile2.cpp   Mon Sep 17 20:02:58 2012 +0200
  3719. @@ -10,10 +10,9 @@
  3720.  //
  3721.  // Interface Implementation
  3722.  
  3723. -PyIBackgroundCopyFile2::PyIBackgroundCopyFile2(IUnknown *pdisp):
  3724. -   PyIBackgroundCopyFile(pdisp)
  3725. +PyIBackgroundCopyFile2::PyIBackgroundCopyFile2(IUnknown *pdisp, PyTypeObject *ptype):
  3726. +   PyIBackgroundCopyFile(pdisp, ptype)
  3727.  {
  3728. -   ob_type = &type;
  3729.  }
  3730.  
  3731.  PyIBackgroundCopyFile2::~PyIBackgroundCopyFile2()
  3732. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIBackgroundCopyFile2.h
  3733. --- a/com/win32comext/bits/src/PyIBackgroundCopyFile2.h Mon Sep 10 17:23:43 2012 -0400
  3734. +++ b/com/win32comext/bits/src/PyIBackgroundCopyFile2.h Mon Sep 17 20:02:58 2012 +0200
  3735. @@ -16,6 +16,6 @@
  3736.     static PyObject *SetRemoteName(PyObject *self, PyObject *args);
  3737.  
  3738.  protected:
  3739. -   PyIBackgroundCopyFile2(IUnknown *pdisp);
  3740. +   PyIBackgroundCopyFile2(IUnknown *pdisp, PyTypeObject *ptype);
  3741.     ~PyIBackgroundCopyFile2();
  3742.  };
  3743. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIBackgroundCopyJob.cpp
  3744. --- a/com/win32comext/bits/src/PyIBackgroundCopyJob.cpp Mon Sep 10 17:23:43 2012 -0400
  3745. +++ b/com/win32comext/bits/src/PyIBackgroundCopyJob.cpp Mon Sep 17 20:02:58 2012 +0200
  3746. @@ -9,10 +9,9 @@
  3747.  //
  3748.  // Interface Implementation
  3749.  
  3750. -PyIBackgroundCopyJob::PyIBackgroundCopyJob(IUnknown *pdisp):
  3751. -   PyIUnknown(pdisp)
  3752. +PyIBackgroundCopyJob::PyIBackgroundCopyJob(IUnknown *pdisp, PyTypeObject *ptype):
  3753. +   PyIUnknown(pdisp, ptype)
  3754.  {
  3755. -   ob_type = &type;
  3756.  }
  3757.  
  3758.  PyIBackgroundCopyJob::~PyIBackgroundCopyJob()
  3759. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIBackgroundCopyJob.h
  3760. --- a/com/win32comext/bits/src/PyIBackgroundCopyJob.h   Mon Sep 10 17:23:43 2012 -0400
  3761. +++ b/com/win32comext/bits/src/PyIBackgroundCopyJob.h   Mon Sep 17 20:02:58 2012 +0200
  3762. @@ -48,6 +48,6 @@
  3763.     static PyObject *TakeOwnership(PyObject *self, PyObject *args);
  3764.  
  3765.  protected:
  3766. -   PyIBackgroundCopyJob(IUnknown *pdisp);
  3767. +   PyIBackgroundCopyJob(IUnknown *pdisp, PyTypeObject *ptype);
  3768.     ~PyIBackgroundCopyJob();
  3769.  };
  3770. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIBackgroundCopyJob2.cpp
  3771. --- a/com/win32comext/bits/src/PyIBackgroundCopyJob2.cpp    Mon Sep 10 17:23:43 2012 -0400
  3772. +++ b/com/win32comext/bits/src/PyIBackgroundCopyJob2.cpp    Mon Sep 17 20:02:58 2012 +0200
  3773. @@ -10,10 +10,9 @@
  3774.  //
  3775.  // Interface Implementation
  3776.  
  3777. -PyIBackgroundCopyJob2::PyIBackgroundCopyJob2(IUnknown *pdisp):
  3778. -   PyIBackgroundCopyJob(pdisp)
  3779. +PyIBackgroundCopyJob2::PyIBackgroundCopyJob2(IUnknown *pdisp, PyTypeObject *ptype):
  3780. +   PyIBackgroundCopyJob(pdisp, ptype)
  3781.  {
  3782. -   ob_type = &type;
  3783.  }
  3784.  
  3785.  PyIBackgroundCopyJob2::~PyIBackgroundCopyJob2()
  3786. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIBackgroundCopyJob2.h
  3787. --- a/com/win32comext/bits/src/PyIBackgroundCopyJob2.h  Mon Sep 10 17:23:43 2012 -0400
  3788. +++ b/com/win32comext/bits/src/PyIBackgroundCopyJob2.h  Mon Sep 17 20:02:58 2012 +0200
  3789. @@ -23,6 +23,6 @@
  3790.     static PyObject *SetCredentials(PyObject *self, PyObject *args);
  3791.  
  3792.  protected:
  3793. -   PyIBackgroundCopyJob2(IUnknown *pdisp);
  3794. +   PyIBackgroundCopyJob2(IUnknown *pdisp, PyTypeObject *ptype);
  3795.     ~PyIBackgroundCopyJob2();
  3796.  };
  3797. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIBackgroundCopyJob3.cpp
  3798. --- a/com/win32comext/bits/src/PyIBackgroundCopyJob3.cpp    Mon Sep 10 17:23:43 2012 -0400
  3799. +++ b/com/win32comext/bits/src/PyIBackgroundCopyJob3.cpp    Mon Sep 17 20:02:58 2012 +0200
  3800. @@ -10,10 +10,9 @@
  3801.  //
  3802.  // Interface Implementation
  3803.  
  3804. -PyIBackgroundCopyJob3::PyIBackgroundCopyJob3(IUnknown *pdisp):
  3805. -   PyIBackgroundCopyJob2(pdisp)
  3806. +PyIBackgroundCopyJob3::PyIBackgroundCopyJob3(IUnknown *pdisp, PyTypeObject *ptype):
  3807. +   PyIBackgroundCopyJob2(pdisp, ptype)
  3808.  {
  3809. -   ob_type = &type;
  3810.  }
  3811.  
  3812.  PyIBackgroundCopyJob3::~PyIBackgroundCopyJob3()
  3813. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIBackgroundCopyJob3.h
  3814. --- a/com/win32comext/bits/src/PyIBackgroundCopyJob3.h  Mon Sep 10 17:23:43 2012 -0400
  3815. +++ b/com/win32comext/bits/src/PyIBackgroundCopyJob3.h  Mon Sep 17 20:02:58 2012 +0200
  3816. @@ -18,6 +18,6 @@
  3817.     static PyObject *GetFileACLFlags(PyObject *self, PyObject *args);
  3818.  
  3819.  protected:
  3820. -   PyIBackgroundCopyJob3(IUnknown *pdisp);
  3821. +   PyIBackgroundCopyJob3(IUnknown *pdisp, PyTypeObject *ptype);
  3822.     ~PyIBackgroundCopyJob3();
  3823.  };
  3824. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIBackgroundCopyManager.cpp
  3825. --- a/com/win32comext/bits/src/PyIBackgroundCopyManager.cpp Mon Sep 10 17:23:43 2012 -0400
  3826. +++ b/com/win32comext/bits/src/PyIBackgroundCopyManager.cpp Mon Sep 17 20:02:58 2012 +0200
  3827. @@ -9,10 +9,9 @@
  3828.  //
  3829.  // Interface Implementation
  3830.  
  3831. -PyIBackgroundCopyManager::PyIBackgroundCopyManager(IUnknown *pdisp):
  3832. -   PyIUnknown(pdisp)
  3833. +PyIBackgroundCopyManager::PyIBackgroundCopyManager(IUnknown *pdisp, PyTypeObject *ptype):
  3834. +   PyIUnknown(pdisp, ptype)
  3835.  {
  3836. -   ob_type = &type;
  3837.  }
  3838.  
  3839.  PyIBackgroundCopyManager::~PyIBackgroundCopyManager()
  3840. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIBackgroundCopyManager.h
  3841. --- a/com/win32comext/bits/src/PyIBackgroundCopyManager.h   Mon Sep 10 17:23:43 2012 -0400
  3842. +++ b/com/win32comext/bits/src/PyIBackgroundCopyManager.h   Mon Sep 17 20:02:58 2012 +0200
  3843. @@ -18,6 +18,6 @@
  3844.     static PyObject *GetErrorDescription(PyObject *self, PyObject *args);
  3845.  
  3846.  protected:
  3847. -   PyIBackgroundCopyManager(IUnknown *pdisp);
  3848. +   PyIBackgroundCopyManager(IUnknown *pdisp, PyTypeObject *ptype);
  3849.     ~PyIBackgroundCopyManager();
  3850.  };
  3851. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIEnumBackgroundCopyFiles.cpp
  3852. --- a/com/win32comext/bits/src/PyIEnumBackgroundCopyFiles.cpp   Mon Sep 10 17:23:43 2012 -0400
  3853. +++ b/com/win32comext/bits/src/PyIEnumBackgroundCopyFiles.cpp   Mon Sep 17 20:02:58 2012 +0200
  3854. @@ -10,10 +10,9 @@
  3855.  //
  3856.  // Interface Implementation
  3857.  
  3858. -PyIEnumBackgroundCopyFiles::PyIEnumBackgroundCopyFiles(IUnknown *pdisp):
  3859. -   PyIUnknown(pdisp)
  3860. +PyIEnumBackgroundCopyFiles::PyIEnumBackgroundCopyFiles(IUnknown *pdisp, PyTypeObject *ptype):
  3861. +   PyIUnknown(pdisp, ptype)
  3862.  {
  3863. -   ob_type = &type;
  3864.  }
  3865.  
  3866.  PyIEnumBackgroundCopyFiles::~PyIEnumBackgroundCopyFiles()
  3867. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIEnumBackgroundCopyFiles.h
  3868. --- a/com/win32comext/bits/src/PyIEnumBackgroundCopyFiles.h Mon Sep 10 17:23:43 2012 -0400
  3869. +++ b/com/win32comext/bits/src/PyIEnumBackgroundCopyFiles.h Mon Sep 17 20:02:58 2012 +0200
  3870. @@ -19,6 +19,6 @@
  3871.     static PyObject *GetCount(PyObject *self, PyObject *args);
  3872.  
  3873.  protected:
  3874. -   PyIEnumBackgroundCopyFiles(IUnknown *pdisp);
  3875. +   PyIEnumBackgroundCopyFiles(IUnknown *pdisp, PyTypeObject *ptype);
  3876.     ~PyIEnumBackgroundCopyFiles();
  3877.  };
  3878. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIEnumBackgroundCopyJobs.cpp
  3879. --- a/com/win32comext/bits/src/PyIEnumBackgroundCopyJobs.cpp    Mon Sep 10 17:23:43 2012 -0400
  3880. +++ b/com/win32comext/bits/src/PyIEnumBackgroundCopyJobs.cpp    Mon Sep 17 20:02:58 2012 +0200
  3881. @@ -10,10 +10,9 @@
  3882.  //
  3883.  // Interface Implementation
  3884.  
  3885. -PyIEnumBackgroundCopyJobs::PyIEnumBackgroundCopyJobs(IUnknown *pdisp):
  3886. -   PyIUnknown(pdisp)
  3887. +PyIEnumBackgroundCopyJobs::PyIEnumBackgroundCopyJobs(IUnknown *pdisp, PyTypeObject *ptype):
  3888. +   PyIUnknown(pdisp, ptype)
  3889.  {
  3890. -   ob_type = &type;
  3891.  }
  3892.  
  3893.  PyIEnumBackgroundCopyJobs::~PyIEnumBackgroundCopyJobs()
  3894. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/bits/src/PyIEnumBackgroundCopyJobs.h
  3895. --- a/com/win32comext/bits/src/PyIEnumBackgroundCopyJobs.h  Mon Sep 10 17:23:43 2012 -0400
  3896. +++ b/com/win32comext/bits/src/PyIEnumBackgroundCopyJobs.h  Mon Sep 17 20:02:58 2012 +0200
  3897. @@ -19,6 +19,6 @@
  3898.     static PyObject *GetCount(PyObject *self, PyObject *args);
  3899.  
  3900.  protected:
  3901. -   PyIEnumBackgroundCopyJobs(IUnknown *pdisp);
  3902. +   PyIEnumBackgroundCopyJobs(IUnknown *pdisp, PyTypeObject *ptype);
  3903.     ~PyIEnumBackgroundCopyJobs();
  3904.  };
  3905. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/directsound/src/PyDSBCAPS.cpp
  3906. --- a/com/win32comext/directsound/src/PyDSBCAPS.cpp Mon Sep 10 17:23:43 2012 -0400
  3907. +++ b/com/win32comext/directsound/src/PyDSBCAPS.cpp Mon Sep 17 20:02:58 2012 +0200
  3908. @@ -110,16 +110,14 @@
  3909.  
  3910.  PyDSBCAPS::PyDSBCAPS(void)
  3911.  {
  3912. -   ob_type = &PyDSBCAPSType;
  3913. -   _Py_NewReference(this);
  3914. +   PyObject_Init(this, &PyDSBCAPSType);
  3915.     memset(&m_caps, 0, sizeof(m_caps));
  3916.     m_caps.dwSize = sizeof(DSBCAPS);
  3917.  }
  3918.  
  3919.  PyDSBCAPS::PyDSBCAPS(const DSBCAPS &caps)
  3920.  {
  3921. -   ob_type = &PyDSBCAPSType;
  3922. -   _Py_NewReference(this);
  3923. +   PyObject_Init(this, &PyDSBCAPSType);
  3924.     m_caps = caps;
  3925.     m_caps.dwSize = sizeof(DSBCAPS);
  3926.  }
  3927. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/directsound/src/PyDSBUFFERDESC.cpp
  3928. --- a/com/win32comext/directsound/src/PyDSBUFFERDESC.cpp    Mon Sep 10 17:23:43 2012 -0400
  3929. +++ b/com/win32comext/directsound/src/PyDSBUFFERDESC.cpp    Mon Sep 17 20:02:58 2012 +0200
  3930. @@ -115,8 +115,7 @@
  3931.  
  3932.  PyDSBUFFERDESC::PyDSBUFFERDESC(void)
  3933.  {
  3934. -   ob_type = &PyDSBUFFERDESCType;
  3935. -   _Py_NewReference(this);
  3936. +   PyObject_Init(this, &PyDSBUFFERDESCType);
  3937.     memset(&m_dsbd, 0, sizeof(m_dsbd));
  3938.     m_dsbd.dwSize = sizeof(DSBUFFERDESC);
  3939.     Py_INCREF(Py_None);
  3940. @@ -125,8 +124,7 @@
  3941.  
  3942.  PyDSBUFFERDESC::PyDSBUFFERDESC(const DSBUFFERDESC &dsbd)
  3943.  {
  3944. -   m_dsbd.dwSize = sizeof(DSBUFFERDESC);
  3945. -   ob_type = &PyDSBUFFERDESCType;
  3946. +   PyObject_Init(this, &PyDSBUFFERDESCType);
  3947.     _Py_NewReference(this);
  3948.     m_dsbd = dsbd;
  3949.     if (dsbd.lpwfxFormat) {
  3950. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/directsound/src/PyDSCAPS.cpp
  3951. --- a/com/win32comext/directsound/src/PyDSCAPS.cpp  Mon Sep 10 17:23:43 2012 -0400
  3952. +++ b/com/win32comext/directsound/src/PyDSCAPS.cpp  Mon Sep 17 20:02:58 2012 +0200
  3953. @@ -145,15 +145,13 @@
  3954.  
  3955.  PyDSCAPS::PyDSCAPS(void)
  3956.  {
  3957. -   ob_type = &PyDSCAPSType;
  3958. -   _Py_NewReference(this);
  3959. +   PyObject_Init(this, &PyDSCAPSType);
  3960.     memset(&m_caps, 0, sizeof(m_caps));
  3961.  }
  3962.  
  3963.  PyDSCAPS::PyDSCAPS(const DSCAPS &caps)
  3964.  {
  3965. -   ob_type = &PyDSCAPSType;
  3966. -   _Py_NewReference(this);
  3967. +   PyObject_Init(this, &PyDSCAPSType);
  3968.     m_caps = caps;
  3969.     m_caps.dwSize = sizeof(DSCAPS);
  3970.  }
  3971. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/directsound/src/PyDSCBCAPS.cpp
  3972. --- a/com/win32comext/directsound/src/PyDSCBCAPS.cpp    Mon Sep 10 17:23:43 2012 -0400
  3973. +++ b/com/win32comext/directsound/src/PyDSCBCAPS.cpp    Mon Sep 17 20:02:58 2012 +0200
  3974. @@ -95,15 +95,13 @@
  3975.  
  3976.  PyDSCBCAPS::PyDSCBCAPS(void)
  3977.  {
  3978. -   ob_type = &PyDSCBCAPSType;
  3979. -   _Py_NewReference(this);
  3980. +   PyObject_Init(this, &PyDSCBCAPSType);
  3981.     memset(&m_caps, 0, sizeof(m_caps));
  3982.  }
  3983.  
  3984.  PyDSCBCAPS::PyDSCBCAPS(const DSCBCAPS &caps)
  3985.  {
  3986. -   ob_type = &PyDSCBCAPSType;
  3987. -   _Py_NewReference(this);
  3988. +   PyObject_Init(this, &PyDSCBCAPSType);
  3989.     m_caps = caps;
  3990.     m_caps.dwSize = sizeof(DSCBCAPS);
  3991.  }
  3992. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/directsound/src/PyDSCBUFFERDESC.cpp
  3993. --- a/com/win32comext/directsound/src/PyDSCBUFFERDESC.cpp   Mon Sep 10 17:23:43 2012 -0400
  3994. +++ b/com/win32comext/directsound/src/PyDSCBUFFERDESC.cpp   Mon Sep 17 20:02:58 2012 +0200
  3995. @@ -103,8 +103,7 @@
  3996.  
  3997.  PyDSCBUFFERDESC::PyDSCBUFFERDESC(void)
  3998.  {
  3999. -   ob_type = &PyDSCBUFFERDESCType;
  4000. -   _Py_NewReference(this);
  4001. +   PyObject_Init(this, &PyDSCBUFFERDESCType);
  4002.     memset(&m_dscbd, 0, sizeof(m_dscbd));
  4003.     m_dscbd.dwSize = sizeof(DSCBUFFERDESC);
  4004.     Py_INCREF(Py_None);
  4005. @@ -114,8 +113,7 @@
  4006.  PyDSCBUFFERDESC::PyDSCBUFFERDESC(const DSCBUFFERDESC &dscbd)
  4007.  {
  4008.     m_dscbd.dwSize = sizeof(DSCBUFFERDESC);
  4009. -   ob_type = &PyDSCBUFFERDESCType;
  4010. -   _Py_NewReference(this);
  4011. +   PyObject_Init(this, &PyDSCBUFFERDESCType);
  4012.     m_dscbd = dscbd;
  4013.     if (dscbd.lpwfxFormat) {
  4014.         m_obWFX = new PyWAVEFORMATEX(*dscbd.lpwfxFormat);
  4015. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/directsound/src/PyDSCCAPS.cpp
  4016. --- a/com/win32comext/directsound/src/PyDSCCAPS.cpp Mon Sep 10 17:23:43 2012 -0400
  4017. +++ b/com/win32comext/directsound/src/PyDSCCAPS.cpp Mon Sep 17 20:02:58 2012 +0200
  4018. @@ -99,15 +99,13 @@
  4019.  
  4020.  PyDSCCAPS::PyDSCCAPS(void)
  4021.  {
  4022. -   ob_type = &PyDSCCAPSType;
  4023. -   _Py_NewReference(this);
  4024. +   PyObject_Init(this, &PyDSCCAPSType);
  4025.     memset(&m_caps, 0, sizeof(m_caps));
  4026.  }
  4027.  
  4028.  PyDSCCAPS::PyDSCCAPS(const DSCCAPS &caps)
  4029.  {
  4030. -   ob_type = &PyDSCCAPSType;
  4031. -   _Py_NewReference(this);
  4032. +   PyObject_Init(this, &PyDSCCAPSType);
  4033.     m_caps = caps;
  4034.     m_caps.dwSize = sizeof(DSCCAPS);
  4035.  }
  4036. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/ifilter/src/PyIFilter.cpp
  4037. --- a/com/win32comext/ifilter/src/PyIFilter.cpp Mon Sep 10 17:23:43 2012 -0400
  4038. +++ b/com/win32comext/ifilter/src/PyIFilter.cpp Mon Sep 17 20:02:58 2012 +0200
  4039. @@ -13,10 +13,9 @@
  4040.  //
  4041.  // Interface Implementation
  4042.  
  4043. -PyIFilter::PyIFilter(IUnknown *pdisp):
  4044. -   PyIUnknown(pdisp)
  4045. +PyIFilter::PyIFilter(IUnknown *pdisp, PyTypeObject *ptype):
  4046. +   PyIUnknown(pdisp, ptype)
  4047.  {
  4048. -   ob_type = &type;
  4049.  }
  4050.  
  4051.  PyIFilter::~PyIFilter()
  4052. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/ifilter/src/PyIFilter.h
  4053. --- a/com/win32comext/ifilter/src/PyIFilter.h   Mon Sep 10 17:23:43 2012 -0400
  4054. +++ b/com/win32comext/ifilter/src/PyIFilter.h   Mon Sep 17 20:02:58 2012 +0200
  4055. @@ -19,6 +19,6 @@
  4056.     static PyObject *BindRegion(PyObject *self, PyObject *args);
  4057.  
  4058.  protected:
  4059. -   PyIFilter(IUnknown *pdisp);
  4060. +   PyIFilter(IUnknown *pdisp, PyTypeObject *ptype);
  4061.     ~PyIFilter();
  4062.  };
  4063. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIDocHostUIHandler.cpp
  4064. --- a/com/win32comext/internet/src/PyIDocHostUIHandler.cpp  Mon Sep 10 17:23:43 2012 -0400
  4065. +++ b/com/win32comext/internet/src/PyIDocHostUIHandler.cpp  Mon Sep 17 20:02:58 2012 +0200
  4066. @@ -10,10 +10,9 @@
  4067.  //
  4068.  // Interface Implementation
  4069.  
  4070. -PyIDocHostUIHandler::PyIDocHostUIHandler(IUnknown *pdisp):
  4071. -   PyIUnknown(pdisp)
  4072. +PyIDocHostUIHandler::PyIDocHostUIHandler(IUnknown *pdisp, PyTypeObject *ptype):
  4073. +   PyIUnknown(pdisp, ptype)
  4074.  {
  4075. -   ob_type = &type;
  4076.  }
  4077.  
  4078.  PyIDocHostUIHandler::~PyIDocHostUIHandler()
  4079. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIDocHostUIHandler.h
  4080. --- a/com/win32comext/internet/src/PyIDocHostUIHandler.h    Mon Sep 10 17:23:43 2012 -0400
  4081. +++ b/com/win32comext/internet/src/PyIDocHostUIHandler.h    Mon Sep 17 20:02:58 2012 +0200
  4082. @@ -29,7 +29,7 @@
  4083.     static PyObject *FilterDataObject(PyObject *self, PyObject *args);
  4084.  
  4085.  protected:
  4086. -   PyIDocHostUIHandler(IUnknown *pdisp);
  4087. +   PyIDocHostUIHandler(IUnknown *pdisp, PyTypeObject *ptype);
  4088.     ~PyIDocHostUIHandler();
  4089.  };
  4090.  // ---------------------------------------------------
  4091. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIInternetBindInfo.cpp
  4092. --- a/com/win32comext/internet/src/PyIInternetBindInfo.cpp  Mon Sep 10 17:23:43 2012 -0400
  4093. +++ b/com/win32comext/internet/src/PyIInternetBindInfo.cpp  Mon Sep 17 20:02:58 2012 +0200
  4094. @@ -9,10 +9,9 @@
  4095.  //
  4096.  // Interface Implementation
  4097.  
  4098. -PyIInternetBindInfo::PyIInternetBindInfo(IUnknown *pdisp):
  4099. -   PyIUnknown(pdisp)
  4100. +PyIInternetBindInfo::PyIInternetBindInfo(IUnknown *pdisp, PyTypeObject *ptype):
  4101. +   PyIUnknown(pdisp, ptype)
  4102.  {
  4103. -   ob_type = &type;
  4104.  }
  4105.  
  4106.  PyIInternetBindInfo::~PyIInternetBindInfo()
  4107. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIInternetBindInfo.h
  4108. --- a/com/win32comext/internet/src/PyIInternetBindInfo.h    Mon Sep 10 17:23:43 2012 -0400
  4109. +++ b/com/win32comext/internet/src/PyIInternetBindInfo.h    Mon Sep 17 20:02:58 2012 +0200
  4110. @@ -16,7 +16,7 @@
  4111.     static PyObject *GetBindString(PyObject *self, PyObject *args);
  4112.  
  4113.  protected:
  4114. -   PyIInternetBindInfo(IUnknown *pdisp);
  4115. +   PyIInternetBindInfo(IUnknown *pdisp, PyTypeObject *ptype);
  4116.     ~PyIInternetBindInfo();
  4117.  };
  4118.  // ---------------------------------------------------
  4119. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIInternetPriority.cpp
  4120. --- a/com/win32comext/internet/src/PyIInternetPriority.cpp  Mon Sep 10 17:23:43 2012 -0400
  4121. +++ b/com/win32comext/internet/src/PyIInternetPriority.cpp  Mon Sep 17 20:02:58 2012 +0200
  4122. @@ -9,10 +9,9 @@
  4123.  //
  4124.  // Interface Implementation
  4125.  
  4126. -PyIInternetPriority::PyIInternetPriority(IUnknown *pdisp):
  4127. -   PyIUnknown(pdisp)
  4128. +PyIInternetPriority::PyIInternetPriority(IUnknown *pdisp, PyTypeObject *ptype):
  4129. +   PyIUnknown(pdisp, ptype)
  4130.  {
  4131. -   ob_type = &type;
  4132.  }
  4133.  
  4134.  PyIInternetPriority::~PyIInternetPriority()
  4135. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIInternetPriority.h
  4136. --- a/com/win32comext/internet/src/PyIInternetPriority.h    Mon Sep 10 17:23:43 2012 -0400
  4137. +++ b/com/win32comext/internet/src/PyIInternetPriority.h    Mon Sep 17 20:02:58 2012 +0200
  4138. @@ -16,7 +16,7 @@
  4139.     static PyObject *GetPriority(PyObject *self, PyObject *args);
  4140.  
  4141.  protected:
  4142. -   PyIInternetPriority(IUnknown *pdisp);
  4143. +   PyIInternetPriority(IUnknown *pdisp, PyTypeObject *ptype);
  4144.     ~PyIInternetPriority();
  4145.  };
  4146.  // ---------------------------------------------------
  4147. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIInternetProtocol.cpp
  4148. --- a/com/win32comext/internet/src/PyIInternetProtocol.cpp  Mon Sep 10 17:23:43 2012 -0400
  4149. +++ b/com/win32comext/internet/src/PyIInternetProtocol.cpp  Mon Sep 17 20:02:58 2012 +0200
  4150. @@ -10,10 +10,9 @@
  4151.  //
  4152.  // Interface Implementation
  4153.  
  4154. -PyIInternetProtocol::PyIInternetProtocol(IUnknown *pdisp):
  4155. -   PyIInternetProtocolRoot(pdisp)
  4156. +PyIInternetProtocol::PyIInternetProtocol(IUnknown *pdisp, PyTypeObject *ptype):
  4157. +   PyIInternetProtocolRoot(pdisp, ptype)
  4158.  {
  4159. -   ob_type = &type;
  4160.  }
  4161.  
  4162.  PyIInternetProtocol::~PyIInternetProtocol()
  4163. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIInternetProtocol.h
  4164. --- a/com/win32comext/internet/src/PyIInternetProtocol.h    Mon Sep 10 17:23:43 2012 -0400
  4165. +++ b/com/win32comext/internet/src/PyIInternetProtocol.h    Mon Sep 17 20:02:58 2012 +0200
  4166. @@ -18,7 +18,7 @@
  4167.     static PyObject *UnlockRequest(PyObject *self, PyObject *args);
  4168.  
  4169.  protected:
  4170. -   PyIInternetProtocol(IUnknown *pdisp);
  4171. +   PyIInternetProtocol(IUnknown *pdisp, PyTypeObject *ptype);
  4172.     ~PyIInternetProtocol();
  4173.  };
  4174.  // ---------------------------------------------------
  4175. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIInternetProtocolInfo.cpp
  4176. --- a/com/win32comext/internet/src/PyIInternetProtocolInfo.cpp  Mon Sep 10 17:23:43 2012 -0400
  4177. +++ b/com/win32comext/internet/src/PyIInternetProtocolInfo.cpp  Mon Sep 17 20:02:58 2012 +0200
  4178. @@ -9,10 +9,9 @@
  4179.  //
  4180.  // Interface Implementation
  4181.  
  4182. -PyIInternetProtocolInfo::PyIInternetProtocolInfo(IUnknown *pdisp):
  4183. -   PyIUnknown(pdisp)
  4184. +PyIInternetProtocolInfo::PyIInternetProtocolInfo(IUnknown *pdisp, PyTypeObject *ptype):
  4185. +   PyIUnknown(pdisp, ptype)
  4186.  {
  4187. -   ob_type = &type;
  4188.  }
  4189.  
  4190.  PyIInternetProtocolInfo::~PyIInternetProtocolInfo()
  4191. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIInternetProtocolInfo.h
  4192. --- a/com/win32comext/internet/src/PyIInternetProtocolInfo.h    Mon Sep 10 17:23:43 2012 -0400
  4193. +++ b/com/win32comext/internet/src/PyIInternetProtocolInfo.h    Mon Sep 17 20:02:58 2012 +0200
  4194. @@ -18,7 +18,7 @@
  4195.     static PyObject *QueryInfo(PyObject *self, PyObject *args);
  4196.  
  4197.  protected:
  4198. -   PyIInternetProtocolInfo(IUnknown *pdisp);
  4199. +   PyIInternetProtocolInfo(IUnknown *pdisp, PyTypeObject *ptype);
  4200.     ~PyIInternetProtocolInfo();
  4201.  };
  4202.  // ---------------------------------------------------
  4203. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIInternetProtocolRoot.cpp
  4204. --- a/com/win32comext/internet/src/PyIInternetProtocolRoot.cpp  Mon Sep 10 17:23:43 2012 -0400
  4205. +++ b/com/win32comext/internet/src/PyIInternetProtocolRoot.cpp  Mon Sep 17 20:02:58 2012 +0200
  4206. @@ -9,10 +9,9 @@
  4207.  //
  4208.  // Interface Implementation
  4209.  
  4210. -PyIInternetProtocolRoot::PyIInternetProtocolRoot(IUnknown *pdisp):
  4211. -   PyIUnknown(pdisp)
  4212. +PyIInternetProtocolRoot::PyIInternetProtocolRoot(IUnknown *pdisp, PyTypeObject *ptype):
  4213. +   PyIUnknown(pdisp, ptype)
  4214.  {
  4215. -   ob_type = &type;
  4216.  }
  4217.  
  4218.  PyIInternetProtocolRoot::~PyIInternetProtocolRoot()
  4219. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIInternetProtocolRoot.h
  4220. --- a/com/win32comext/internet/src/PyIInternetProtocolRoot.h    Mon Sep 10 17:23:43 2012 -0400
  4221. +++ b/com/win32comext/internet/src/PyIInternetProtocolRoot.h    Mon Sep 17 20:02:58 2012 +0200
  4222. @@ -20,7 +20,7 @@
  4223.     static PyObject *Resume(PyObject *self, PyObject *args);
  4224.  
  4225.  protected:
  4226. -   PyIInternetProtocolRoot(IUnknown *pdisp);
  4227. +   PyIInternetProtocolRoot(IUnknown *pdisp, PyTypeObject *ptype);
  4228.     ~PyIInternetProtocolRoot();
  4229.  };
  4230.  // ---------------------------------------------------
  4231. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIInternetProtocolSink.cpp
  4232. --- a/com/win32comext/internet/src/PyIInternetProtocolSink.cpp  Mon Sep 10 17:23:43 2012 -0400
  4233. +++ b/com/win32comext/internet/src/PyIInternetProtocolSink.cpp  Mon Sep 17 20:02:58 2012 +0200
  4234. @@ -9,10 +9,9 @@
  4235.  //
  4236.  // Interface Implementation
  4237.  
  4238. -PyIInternetProtocolSink::PyIInternetProtocolSink(IUnknown *pdisp):
  4239. -   PyIUnknown(pdisp)
  4240. +PyIInternetProtocolSink::PyIInternetProtocolSink(IUnknown *pdisp, PyTypeObject *ptype):
  4241. +   PyIUnknown(pdisp, ptype)
  4242.  {
  4243. -   ob_type = &type;
  4244.  }
  4245.  
  4246.  PyIInternetProtocolSink::~PyIInternetProtocolSink()
  4247. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIInternetProtocolSink.h
  4248. --- a/com/win32comext/internet/src/PyIInternetProtocolSink.h    Mon Sep 10 17:23:43 2012 -0400
  4249. +++ b/com/win32comext/internet/src/PyIInternetProtocolSink.h    Mon Sep 17 20:02:58 2012 +0200
  4250. @@ -18,7 +18,7 @@
  4251.     static PyObject *ReportResult(PyObject *self, PyObject *args);
  4252.  
  4253.  protected:
  4254. -   PyIInternetProtocolSink(IUnknown *pdisp);
  4255. +   PyIInternetProtocolSink(IUnknown *pdisp, PyTypeObject *ptype);
  4256.     ~PyIInternetProtocolSink();
  4257.  };
  4258.  // ---------------------------------------------------
  4259. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIInternetSecurityManager.cpp
  4260. --- a/com/win32comext/internet/src/PyIInternetSecurityManager.cpp   Mon Sep 10 17:23:43 2012 -0400
  4261. +++ b/com/win32comext/internet/src/PyIInternetSecurityManager.cpp   Mon Sep 17 20:02:58 2012 +0200
  4262. @@ -9,10 +9,9 @@
  4263.  //
  4264.  // Interface Implementation
  4265.  
  4266. -PyIInternetSecurityManager::PyIInternetSecurityManager(IUnknown *pdisp):
  4267. -   PyIUnknown(pdisp)
  4268. +PyIInternetSecurityManager::PyIInternetSecurityManager(IUnknown *pdisp, PyTypeObject *ptype):
  4269. +   PyIUnknown(pdisp, ptype)
  4270.  {
  4271. -   ob_type = &type;
  4272.  }
  4273.  
  4274.  PyIInternetSecurityManager::~PyIInternetSecurityManager()
  4275. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/internet/src/PyIInternetSecurityManager.h
  4276. --- a/com/win32comext/internet/src/PyIInternetSecurityManager.h Mon Sep 10 17:23:43 2012 -0400
  4277. +++ b/com/win32comext/internet/src/PyIInternetSecurityManager.h Mon Sep 17 20:02:58 2012 +0200
  4278. @@ -24,7 +24,7 @@
  4279.     static PyObject *GetZoneMappings(PyObject *self, PyObject *args);
  4280.  
  4281.  protected:
  4282. -   PyIInternetSecurityManager(IUnknown *pdisp);
  4283. +   PyIInternetSecurityManager(IUnknown *pdisp, PyTypeObject *ptype);
  4284.     ~PyIInternetSecurityManager();
  4285.  };
  4286.  // ---------------------------------------------------
  4287. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIABContainer.i
  4288. --- a/com/win32comext/mapi/src/PyIABContainer.i Mon Sep 10 17:23:43 2012 -0400
  4289. +++ b/com/win32comext/mapi/src/PyIABContainer.i Mon Sep 17 20:02:58 2012 +0200
  4290. @@ -13,10 +13,9 @@
  4291.  #include "PyIMAPIContainer.h"
  4292.  #include "PyIABContainer.h"
  4293.  
  4294. -PyIABContainer::PyIABContainer(IUnknown *pDisp) :
  4295. -   PyIMAPIContainer(pDisp)
  4296. +PyIABContainer::PyIABContainer(IUnknown *pDisp, PyTypeObject *pType) :
  4297. +   PyIMAPIContainer(pDisp, pType)
  4298.  {
  4299. -   ob_type = &type;
  4300.  }
  4301.  
  4302.  PyIABContainer::~PyIABContainer()
  4303. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIAddrBook.i
  4304. --- a/com/win32comext/mapi/src/PyIAddrBook.i    Mon Sep 10 17:23:43 2012 -0400
  4305. +++ b/com/win32comext/mapi/src/PyIAddrBook.i    Mon Sep 17 20:02:58 2012 +0200
  4306. @@ -10,10 +10,9 @@
  4307.  #include "PyIMAPIProp.h"
  4308.  #include "PyIAddrBook.h"
  4309.  
  4310. -PyIAddrBook::PyIAddrBook(IUnknown *pDisp) :
  4311. -   PyIMAPIProp(pDisp)
  4312. +PyIAddrBook::PyIAddrBook(IUnknown *pDisp, PyTypeObject *pType) :
  4313. +   PyIMAPIProp(pDisp, pType)
  4314.  {
  4315. -   ob_type = &type;
  4316.  }
  4317.  
  4318.  PyIAddrBook::~PyIAddrBook()
  4319. @@ -60,7 +59,7 @@
  4320.     if (obEntry==Py_None) {
  4321.         entryString = NULL;
  4322.         entryStrLen = 0;
  4323. -   } else if PyString_Check(obEntry) {
  4324. +   } else if (PyString_Check(obEntry)) {
  4325.         entryString = PyString_AsString(obEntry);
  4326.         entryStrLen = PyString_Size(obEntry);
  4327.     } else {
  4328. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIAttach.i
  4329. --- a/com/win32comext/mapi/src/PyIAttach.i  Mon Sep 10 17:23:43 2012 -0400
  4330. +++ b/com/win32comext/mapi/src/PyIAttach.i  Mon Sep 17 20:02:58 2012 +0200
  4331. @@ -12,10 +12,9 @@
  4332.  #include "PyIMAPIProp.h"
  4333.  #include "PyIAttach.h"
  4334.  
  4335. -PyIAttach::PyIAttach(IUnknown *pDisp) :
  4336. -   PyIMAPIProp(pDisp)
  4337. +PyIAttach::PyIAttach(IUnknown *pDisp, PyTypeObject *pType) :
  4338. +   PyIMAPIProp(pDisp, pType)
  4339.  {
  4340. -   ob_type = &type;
  4341.  }
  4342.  
  4343.  PyIAttach::~PyIAttach()
  4344. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIDistList.i
  4345. --- a/com/win32comext/mapi/src/PyIDistList.i    Mon Sep 10 17:23:43 2012 -0400
  4346. +++ b/com/win32comext/mapi/src/PyIDistList.i    Mon Sep 17 20:02:58 2012 +0200
  4347. @@ -13,10 +13,9 @@
  4348.  #include "PyIMAPIContainer.h"
  4349.  #include "PyIDistList.h"
  4350.  
  4351. -PyIDistList::PyIDistList(IUnknown *pDisp) :
  4352. -   PyIMAPIContainer(pDisp)
  4353. +PyIDistList::PyIDistList(IUnknown *pDisp, PyTypeObject *pType) :
  4354. +   PyIMAPIContainer(pDisp, pType)
  4355.  {
  4356. -   ob_type = &type;
  4357.  }
  4358.  
  4359.  PyIDistList::~PyIDistList()
  4360. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIExchangeManageStore.i
  4361. --- a/com/win32comext/mapi/src/PyIExchangeManageStore.i Mon Sep 10 17:23:43 2012 -0400
  4362. +++ b/com/win32comext/mapi/src/PyIExchangeManageStore.i Mon Sep 17 20:02:58 2012 +0200
  4363. @@ -40,10 +40,9 @@
  4364.  
  4365.  #include "PyIExchangeManageStore.h"
  4366.  
  4367. -PyIExchangeManageStore::PyIExchangeManageStore(IUnknown *pDisp) :
  4368. -   PyIUnknown(pDisp)
  4369. +PyIExchangeManageStore::PyIExchangeManageStore(IUnknown *pDisp, PyTypeObject *pType) :
  4370. +   PyIUnknown(pDisp, pType)
  4371.  {
  4372. -   ob_type = &type;
  4373.  }
  4374.  
  4375.  /*static*/ IExchangeManageStore *PyIExchangeManageStore::GetI(PyObject *self)
  4376. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIMAPIContainer.i
  4377. --- a/com/win32comext/mapi/src/PyIMAPIContainer.i   Mon Sep 10 17:23:43 2012 -0400
  4378. +++ b/com/win32comext/mapi/src/PyIMAPIContainer.i   Mon Sep 17 20:02:58 2012 +0200
  4379. @@ -12,10 +12,9 @@
  4380.  #include "PyIMAPIProp.h"
  4381.  #include "PyIMAPIContainer.h"
  4382.  
  4383. -PyIMAPIContainer::PyIMAPIContainer(IUnknown *pDisp) :
  4384. -   PyIMAPIProp(pDisp)
  4385. +PyIMAPIContainer::PyIMAPIContainer(IUnknown *pDisp, PyTypeObject *pType) :
  4386. +   PyIMAPIProp(pDisp, pType)
  4387.  {
  4388. -   ob_type = &type;
  4389.  }
  4390.  
  4391.  PyIMAPIContainer::~PyIMAPIContainer()
  4392. @@ -51,7 +50,7 @@
  4393.     if (obEntry==Py_None) {
  4394.         entryString = NULL;
  4395.         entryStrLen = 0;
  4396. -   } else if PyString_Check(obEntry) {
  4397. +   } else if (PyString_Check(obEntry)) {
  4398.         entryString = PyString_AsString(obEntry);
  4399.         entryStrLen = PyString_Size(obEntry);
  4400.     } else {
  4401. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIMAPIFolder.i
  4402. --- a/com/win32comext/mapi/src/PyIMAPIFolder.i  Mon Sep 10 17:23:43 2012 -0400
  4403. +++ b/com/win32comext/mapi/src/PyIMAPIFolder.i  Mon Sep 17 20:02:58 2012 +0200
  4404. @@ -13,10 +13,9 @@
  4405.  #include "PyIMAPIContainer.h"
  4406.  #include "PyIMAPIFolder.h"
  4407.  
  4408. -PyIMAPIFolder::PyIMAPIFolder(IUnknown *pDisp) :
  4409. -   PyIMAPIContainer(pDisp)
  4410. +PyIMAPIFolder::PyIMAPIFolder(IUnknown *pDisp, PyTypeObject *pType) :
  4411. +   PyIMAPIContainer(pDisp, pType)
  4412.  {
  4413. -   ob_type = &type;
  4414.  }
  4415.  
  4416.  PyIMAPIFolder::~PyIMAPIFolder()
  4417. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIMAPIProp.i
  4418. --- a/com/win32comext/mapi/src/PyIMAPIProp.i    Mon Sep 10 17:23:43 2012 -0400
  4419. +++ b/com/win32comext/mapi/src/PyIMAPIProp.i    Mon Sep 17 20:02:58 2012 +0200
  4420. @@ -19,10 +19,9 @@
  4421.  }
  4422.  
  4423.  
  4424. -PyIMAPIProp::PyIMAPIProp(IUnknown *pDisp) :
  4425. -   PyIUnknown(pDisp)
  4426. +PyIMAPIProp::PyIMAPIProp(IUnknown *pDisp, PyTypeObject *pType) :
  4427. +   PyIUnknown(pDisp, pType)
  4428.  {
  4429. -   ob_type = &type;
  4430.  }
  4431.  
  4432.  PyIMAPIProp::~PyIMAPIProp()
  4433. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIMAPISession.i
  4434. --- a/com/win32comext/mapi/src/PyIMAPISession.i Mon Sep 10 17:23:43 2012 -0400
  4435. +++ b/com/win32comext/mapi/src/PyIMAPISession.i Mon Sep 17 20:02:58 2012 +0200
  4436. @@ -11,10 +11,9 @@
  4437.  
  4438.  #include "PyIMAPISession.h"
  4439.  
  4440. -PyIMAPISession::PyIMAPISession(IUnknown *pDisp) :
  4441. -   PyIUnknown(pDisp)
  4442. +PyIMAPISession::PyIMAPISession(IUnknown *pDisp, PyTypeObject *pType) :
  4443. +   PyIUnknown(pDisp, pType)
  4444.  {
  4445. -   ob_type = &type;
  4446.  }
  4447.  
  4448.  PyIMAPISession::~PyIMAPISession()
  4449. @@ -53,7 +52,7 @@
  4450.     if (obEntry==Py_None) {
  4451.         entryString = NULL;
  4452.         entryStrLen = 0;
  4453. -   } else if PyString_Check(obEntry) {
  4454. +   } else if (PyString_Check(obEntry)) {
  4455.         entryString = PyString_AsString(obEntry);
  4456.         entryStrLen = PyString_Size(obEntry);
  4457.     } else {
  4458. @@ -170,7 +169,7 @@
  4459.     if (obEntry==Py_None) {
  4460.         entryString = NULL;
  4461.         entryStrLen = 0;
  4462. -   } else if PyString_Check(obEntry) {
  4463. +   } else if (PyString_Check(obEntry)) {
  4464.         entryString = PyString_AsString(obEntry);
  4465.         entryStrLen = PyString_Size(obEntry);
  4466.     } else {
  4467. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIMAPIStatus.i
  4468. --- a/com/win32comext/mapi/src/PyIMAPIStatus.i  Mon Sep 10 17:23:43 2012 -0400
  4469. +++ b/com/win32comext/mapi/src/PyIMAPIStatus.i  Mon Sep 17 20:02:58 2012 +0200
  4470. @@ -14,10 +14,9 @@
  4471.  #include "PyIMAPIProp.h"
  4472.  #include "PyIMAPIStatus.h"
  4473.  
  4474. -PyIMAPIStatus::PyIMAPIStatus(IUnknown *pDisp) :
  4475. -    PyIMAPIProp(pDisp)
  4476. +PyIMAPIStatus::PyIMAPIStatus(IUnknown *pDisp, PyTypeObject *pType) :
  4477. +    PyIMAPIProp(pDisp, pType)
  4478.  {
  4479. -    ob_type = &type;
  4480.  }
  4481.  
  4482.  PyIMAPIStatus::~PyIMAPIStatus()
  4483. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIMAPITable.i
  4484. --- a/com/win32comext/mapi/src/PyIMAPITable.i   Mon Sep 10 17:23:43 2012 -0400
  4485. +++ b/com/win32comext/mapi/src/PyIMAPITable.i   Mon Sep 17 20:02:58 2012 +0200
  4486. @@ -11,10 +11,9 @@
  4487.  
  4488.  #include "PyIMAPITable.h"
  4489.  
  4490. -PyIMAPITable::PyIMAPITable(IUnknown *pDisp) :
  4491. -   PyIUnknown(pDisp)
  4492. +PyIMAPITable::PyIMAPITable(IUnknown *pDisp, PyTypeObject *pType) :
  4493. +   PyIUnknown(pDisp, pType)
  4494.  {
  4495. -   ob_type = &type;
  4496.  }
  4497.  
  4498.  PyIMAPITable::~PyIMAPITable()
  4499. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIMailUser.i
  4500. --- a/com/win32comext/mapi/src/PyIMailUser.i    Mon Sep 10 17:23:43 2012 -0400
  4501. +++ b/com/win32comext/mapi/src/PyIMailUser.i    Mon Sep 17 20:02:58 2012 +0200
  4502. @@ -13,10 +13,9 @@
  4503.  #include "PyIMAPIContainer.h"
  4504.  #include "PyIMailUser.h"
  4505.  
  4506. -PyIMailUser::PyIMailUser(IUnknown *pDisp) :
  4507. -   PyIMAPIContainer(pDisp)
  4508. +PyIMailUser::PyIMailUser(IUnknown *pDisp, PyTypeObject *pType) :
  4509. +   PyIMAPIContainer(pDisp, pType)
  4510.  {
  4511. -   ob_type = &type;
  4512.  }
  4513.  
  4514.  PyIMailUser::~PyIMailUser()
  4515. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIMessage.i
  4516. --- a/com/win32comext/mapi/src/PyIMessage.i Mon Sep 10 17:23:43 2012 -0400
  4517. +++ b/com/win32comext/mapi/src/PyIMessage.i Mon Sep 17 20:02:58 2012 +0200
  4518. @@ -12,10 +12,9 @@
  4519.  #include "PyIMAPIProp.h"
  4520.  #include "PyIMessage.h"
  4521.  
  4522. -PyIMessage::PyIMessage(IUnknown *pDisp) :
  4523. -   PyIMAPIProp(pDisp)
  4524. +PyIMessage::PyIMessage(IUnknown *pDisp, PyTypeObject *pType) :
  4525. +   PyIMAPIProp(pDisp, pType)
  4526.  {
  4527. -   ob_type = &type;
  4528.  }
  4529.  
  4530.  PyIMessage::~PyIMessage()
  4531. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIMsgServiceAdmin.i
  4532. --- a/com/win32comext/mapi/src/PyIMsgServiceAdmin.i Mon Sep 10 17:23:43 2012 -0400
  4533. +++ b/com/win32comext/mapi/src/PyIMsgServiceAdmin.i Mon Sep 17 20:02:58 2012 +0200
  4534. @@ -11,10 +11,9 @@
  4535.  
  4536.  #include "PyIMsgServiceAdmin.h"
  4537.  
  4538. -PyIMsgServiceAdmin::PyIMsgServiceAdmin(IUnknown *pDisp) :
  4539. -   PyIUnknown(pDisp)
  4540. +PyIMsgServiceAdmin::PyIMsgServiceAdmin(IUnknown *pDisp, PyTypeObject *pType) :
  4541. +   PyIUnknown(pDisp, pType)
  4542.  {
  4543. -   ob_type = &type;
  4544.  }
  4545.  
  4546.  PyIMsgServiceAdmin::~PyIMsgServiceAdmin()
  4547. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIMsgStore.i
  4548. --- a/com/win32comext/mapi/src/PyIMsgStore.i    Mon Sep 10 17:23:43 2012 -0400
  4549. +++ b/com/win32comext/mapi/src/PyIMsgStore.i    Mon Sep 17 20:02:58 2012 +0200
  4550. @@ -12,10 +12,9 @@
  4551.  #include "PyIMAPIProp.h"
  4552.  #include "PyIMsgStore.h"
  4553.  
  4554. -PyIMsgStore::PyIMsgStore(IUnknown *pDisp) :
  4555. -   PyIMAPIProp(pDisp)
  4556. +PyIMsgStore::PyIMsgStore(IUnknown *pDisp, PyTypeObject *pType) :
  4557. +   PyIMAPIProp(pDisp, pType)
  4558.  {
  4559. -   ob_type = &type;
  4560.  }
  4561.  
  4562.  PyIMsgStore::~PyIMsgStore()
  4563. @@ -54,7 +53,7 @@
  4564.     if (obEntry==Py_None) {
  4565.         entryString = NULL;
  4566.         entryStrLen = 0;
  4567. -   } else if PyString_Check(obEntry) {
  4568. +   } else if (PyString_Check(obEntry)) {
  4569.         entryString = PyString_AsString(obEntry);
  4570.         entryStrLen = PyString_Size(obEntry);
  4571.     } else {
  4572. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIProfAdmin.i
  4573. --- a/com/win32comext/mapi/src/PyIProfAdmin.i   Mon Sep 10 17:23:43 2012 -0400
  4574. +++ b/com/win32comext/mapi/src/PyIProfAdmin.i   Mon Sep 17 20:02:58 2012 +0200
  4575. @@ -11,10 +11,9 @@
  4576.  
  4577.  #include "PyIProfAdmin.h"
  4578.  
  4579. -PyIProfAdmin::PyIProfAdmin(IUnknown *pDisp) :
  4580. -   PyIUnknown(pDisp)
  4581. +PyIProfAdmin::PyIProfAdmin(IUnknown *pDisp, PyTypeObject *pType) :
  4582. +   PyIUnknown(pDisp, pType)
  4583.  {
  4584. -   ob_type = &type;
  4585.  }
  4586.  
  4587.  PyIProfAdmin::~PyIProfAdmin()
  4588. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIProfSect.i
  4589. --- a/com/win32comext/mapi/src/PyIProfSect.i    Mon Sep 10 17:23:43 2012 -0400
  4590. +++ b/com/win32comext/mapi/src/PyIProfSect.i    Mon Sep 17 20:02:58 2012 +0200
  4591. @@ -12,10 +12,9 @@
  4592.  #include "PyIMAPIProp.h"
  4593.  #include "PyIProfSect.h"
  4594.  
  4595. -PyIProfSect::PyIProfSect(IUnknown *pDisp) :
  4596. -   PyIMAPIProp(pDisp)
  4597. +PyIProfSect::PyIProfSect(IUnknown *pDisp, PyTypeObject *pType) :
  4598. +   PyIMAPIProp(pDisp, pType)
  4599.  {
  4600. -   ob_type = &type;
  4601.  }
  4602.  
  4603.  PyIProfSect::~PyIProfSect()
  4604. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/mapi/src/PyIProviderAdmin.i
  4605. --- a/com/win32comext/mapi/src/PyIProviderAdmin.i   Mon Sep 10 17:23:43 2012 -0400
  4606. +++ b/com/win32comext/mapi/src/PyIProviderAdmin.i   Mon Sep 17 20:02:58 2012 +0200
  4607. @@ -11,10 +11,9 @@
  4608.  
  4609.  #include "PyIProviderAdmin.h"
  4610.  
  4611. -PyIProviderAdmin::PyIProviderAdmin(IUnknown *pDisp) :
  4612. -    PyIUnknown(pDisp)
  4613. +PyIProviderAdmin::PyIProviderAdmin(IUnknown *pDisp, PyTypeObject *pType) :
  4614. +    PyIUnknown(pDisp, pType)
  4615.  {
  4616. -    ob_type = &type;
  4617.  }
  4618.  
  4619.  PyIProviderAdmin::~PyIProviderAdmin()
  4620. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIActiveDesktop.cpp
  4621. --- a/com/win32comext/shell/src/PyIActiveDesktop.cpp    Mon Sep 10 17:23:43 2012 -0400
  4622. +++ b/com/win32comext/shell/src/PyIActiveDesktop.cpp    Mon Sep 17 20:02:58 2012 +0200
  4623. @@ -185,9 +185,8 @@
  4624.  ///////////////////////////////////////////////////////////////////////////////////////////////////////
  4625.  // IActiveDesktop
  4626.  ///////////////////////////////////////////////////////////////////////////////////////////////////////
  4627. -PyIActiveDesktop::PyIActiveDesktop(IUnknown *pdisp):PyIUnknown(pdisp)
  4628. +PyIActiveDesktop::PyIActiveDesktop(IUnknown *pdisp, PyTypeObject *ptype):PyIUnknown(pdisp, ptype)
  4629.  {
  4630. -   ob_type = &type;
  4631.  }
  4632.  
  4633.  PyIActiveDesktop::~PyIActiveDesktop()
  4634. @@ -771,9 +770,8 @@
  4635.  ///////////////////////////////////////////////////////////////////////////////////////////////////////
  4636.  // IActiveDesktopP
  4637.  ///////////////////////////////////////////////////////////////////////////////////////////////////////
  4638. -PyIActiveDesktopP::PyIActiveDesktopP(IUnknown *pdisp):PyIUnknown(pdisp)
  4639. +PyIActiveDesktopP::PyIActiveDesktopP(IUnknown *pdisp, PyTypeObject *ptype):PyIUnknown(pdisp, ptype)
  4640.  {
  4641. -   ob_type = &type;
  4642.  }
  4643.  
  4644.  PyIActiveDesktopP::~PyIActiveDesktopP()
  4645. @@ -825,9 +823,8 @@
  4646.  ///////////////////////////////////////////////////////////////////////////////////////////////////////
  4647.  // IADesktopP2
  4648.  ///////////////////////////////////////////////////////////////////////////////////////////////////////
  4649. -PyIADesktopP2::PyIADesktopP2(IUnknown *pdisp):PyIUnknown(pdisp)
  4650. +PyIADesktopP2::PyIADesktopP2(IUnknown *pdisp, PyTypeObject *ptype):PyIUnknown(pdisp, ptype)
  4651.  {
  4652. -   ob_type = &type;
  4653.  }
  4654.  
  4655.  PyIADesktopP2::~PyIADesktopP2()
  4656. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIActiveDesktop.h
  4657. --- a/com/win32comext/shell/src/PyIActiveDesktop.h  Mon Sep 10 17:23:43 2012 -0400
  4658. +++ b/com/win32comext/shell/src/PyIActiveDesktop.h  Mon Sep 17 20:02:58 2012 +0200
  4659. @@ -28,7 +28,7 @@
  4660.     static PyObject *GetDesktopItemBySource(PyObject *self, PyObject *args);
  4661.  
  4662.  protected:
  4663. -   PyIActiveDesktop(IUnknown *pdisp);
  4664. +   PyIActiveDesktop(IUnknown *pdisp, PyTypeObject *ptype);
  4665.     ~PyIActiveDesktop();
  4666.  };
  4667.  
  4668. @@ -46,7 +46,7 @@
  4669.         GetScheme(LPWSTR pwszSchemeName, DWORD *lpdwcchBuffer, DWORD dwFlags)
  4670.     */
  4671.  protected:
  4672. -   PyIActiveDesktopP(IUnknown *pdisp);
  4673. +   PyIActiveDesktopP(IUnknown *pdisp, PyTypeObject *ptype);
  4674.     ~PyIActiveDesktopP();
  4675.  };
  4676.  
  4677. @@ -63,7 +63,7 @@
  4678.         MakeDynamicChanges(IOleObject *pOleObj)
  4679.     */
  4680.  protected:
  4681. -   PyIADesktopP2(IUnknown *pdisp);
  4682. +   PyIADesktopP2(IUnknown *pdisp, PyTypeObject *ptype);
  4683.     ~PyIADesktopP2();
  4684.  
  4685.  };
  4686. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIAsyncOperation.cpp
  4687. --- a/com/win32comext/shell/src/PyIAsyncOperation.cpp   Mon Sep 10 17:23:43 2012 -0400
  4688. +++ b/com/win32comext/shell/src/PyIAsyncOperation.cpp   Mon Sep 17 20:02:58 2012 +0200
  4689. @@ -9,10 +9,9 @@
  4690.  //
  4691.  // Interface Implementation
  4692.  
  4693. -PyIAsyncOperation::PyIAsyncOperation(IUnknown *pdisp):
  4694. -   PyIUnknown(pdisp)
  4695. +PyIAsyncOperation::PyIAsyncOperation(IUnknown *pdisp, PyTypeObject *ptype):
  4696. +   PyIUnknown(pdisp, ptype)
  4697.  {
  4698. -   ob_type = &type;
  4699.  }
  4700.  
  4701.  PyIAsyncOperation::~PyIAsyncOperation()
  4702. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIAsyncOperation.h
  4703. --- a/com/win32comext/shell/src/PyIAsyncOperation.h Mon Sep 10 17:23:43 2012 -0400
  4704. +++ b/com/win32comext/shell/src/PyIAsyncOperation.h Mon Sep 17 20:02:58 2012 +0200
  4705. @@ -19,7 +19,7 @@
  4706.     static PyObject *EndOperation(PyObject *self, PyObject *args);
  4707.  
  4708.  protected:
  4709. -   PyIAsyncOperation(IUnknown *pdisp);
  4710. +   PyIAsyncOperation(IUnknown *pdisp, PyTypeObject *ptype);
  4711.     ~PyIAsyncOperation();
  4712.  };
  4713.  // ---------------------------------------------------
  4714. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIBrowserFrameOptions.cpp
  4715. --- a/com/win32comext/shell/src/PyIBrowserFrameOptions.cpp  Mon Sep 10 17:23:43 2012 -0400
  4716. +++ b/com/win32comext/shell/src/PyIBrowserFrameOptions.cpp  Mon Sep 17 20:02:58 2012 +0200
  4717. @@ -14,10 +14,9 @@
  4718.  //
  4719.  // Interface Implementation
  4720.  
  4721. -PyIBrowserFrameOptions::PyIBrowserFrameOptions(IUnknown *pdisp):
  4722. -   PyIUnknown(pdisp)
  4723. +PyIBrowserFrameOptions::PyIBrowserFrameOptions(IUnknown *pdisp, PyTypeObject *ptype):
  4724. +   PyIUnknown(pdisp, ptype)
  4725.  {
  4726. -   ob_type = &type;
  4727.  }
  4728.  
  4729.  PyIBrowserFrameOptions::~PyIBrowserFrameOptions()
  4730. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIBrowserFrameOptions.h
  4731. --- a/com/win32comext/shell/src/PyIBrowserFrameOptions.h    Mon Sep 10 17:23:43 2012 -0400
  4732. +++ b/com/win32comext/shell/src/PyIBrowserFrameOptions.h    Mon Sep 17 20:02:58 2012 +0200
  4733. @@ -39,7 +39,7 @@
  4734.     static PyObject *GetFrameOptions(PyObject *self, PyObject *args);
  4735.  
  4736.  protected:
  4737. -   PyIBrowserFrameOptions(IUnknown *pdisp);
  4738. +   PyIBrowserFrameOptions(IUnknown *pdisp, PyTypeObject *ptype);
  4739.     ~PyIBrowserFrameOptions();
  4740.  };
  4741.  // ---------------------------------------------------
  4742. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyICategoryProvider.cpp
  4743. --- a/com/win32comext/shell/src/PyICategoryProvider.cpp Mon Sep 10 17:23:43 2012 -0400
  4744. +++ b/com/win32comext/shell/src/PyICategoryProvider.cpp Mon Sep 17 20:02:58 2012 +0200
  4745. @@ -9,10 +9,9 @@
  4746.  //
  4747.  // Interface Implementation
  4748.  
  4749. -PyICategoryProvider::PyICategoryProvider(IUnknown *pdisp):
  4750. -   PyIUnknown(pdisp)
  4751. +PyICategoryProvider::PyICategoryProvider(IUnknown *pdisp, PyTypeObject *ptype):
  4752. +   PyIUnknown(pdisp, ptype)
  4753.  {
  4754. -   ob_type = &type;
  4755.  }
  4756.  
  4757.  PyICategoryProvider::~PyICategoryProvider()
  4758. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyICategoryProvider.h
  4759. --- a/com/win32comext/shell/src/PyICategoryProvider.h   Mon Sep 10 17:23:43 2012 -0400
  4760. +++ b/com/win32comext/shell/src/PyICategoryProvider.h   Mon Sep 17 20:02:58 2012 +0200
  4761. @@ -20,7 +20,7 @@
  4762.     static PyObject *CreateCategory(PyObject *self, PyObject *args);
  4763.  
  4764.  protected:
  4765. -   PyICategoryProvider(IUnknown *pdisp);
  4766. +   PyICategoryProvider(IUnknown *pdisp, PyTypeObject *ptype);
  4767.     ~PyICategoryProvider();
  4768.  };
  4769.  // ---------------------------------------------------
  4770. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIColumnProvider.cpp
  4771. --- a/com/win32comext/shell/src/PyIColumnProvider.cpp   Mon Sep 10 17:23:43 2012 -0400
  4772. +++ b/com/win32comext/shell/src/PyIColumnProvider.cpp   Mon Sep 17 20:02:58 2012 +0200
  4773. @@ -9,10 +9,9 @@
  4774.  //
  4775.  // Interface Implementation
  4776.  
  4777. -PyIColumnProvider::PyIColumnProvider(IUnknown *pdisp):
  4778. -   PyIUnknown(pdisp)
  4779. +PyIColumnProvider::PyIColumnProvider(IUnknown *pdisp, PyTypeObject *ptype):
  4780. +   PyIUnknown(pdisp, ptype)
  4781.  {
  4782. -   ob_type = &type;
  4783.  }
  4784.  
  4785.  PyIColumnProvider::~PyIColumnProvider()
  4786. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIColumnProvider.h
  4787. --- a/com/win32comext/shell/src/PyIColumnProvider.h Mon Sep 10 17:23:43 2012 -0400
  4788. +++ b/com/win32comext/shell/src/PyIColumnProvider.h Mon Sep 17 20:02:58 2012 +0200
  4789. @@ -17,7 +17,7 @@
  4790.     static PyObject *GetItemData(PyObject *self, PyObject *args);
  4791.  
  4792.  protected:
  4793. -   PyIColumnProvider(IUnknown *pdisp);
  4794. +   PyIColumnProvider(IUnknown *pdisp, PyTypeObject *ptype);
  4795.     ~PyIColumnProvider();
  4796.  };
  4797.  // ---------------------------------------------------
  4798. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIContextMenu.cpp
  4799. --- a/com/win32comext/shell/src/PyIContextMenu.cpp  Mon Sep 10 17:23:43 2012 -0400
  4800. +++ b/com/win32comext/shell/src/PyIContextMenu.cpp  Mon Sep 17 20:02:58 2012 +0200
  4801. @@ -9,10 +9,9 @@
  4802.  //
  4803.  // Interface Implementation
  4804.  
  4805. -PyIContextMenu::PyIContextMenu(IUnknown *pdisp):
  4806. -   PyIUnknown(pdisp)
  4807. +PyIContextMenu::PyIContextMenu(IUnknown *pdisp, PyTypeObject *ptype):
  4808. +   PyIUnknown(pdisp, ptype)
  4809.  {
  4810. -   ob_type = &type;
  4811.  }
  4812.  
  4813.  PyIContextMenu::~PyIContextMenu()
  4814. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIContextMenu.h
  4815. --- a/com/win32comext/shell/src/PyIContextMenu.h    Mon Sep 10 17:23:43 2012 -0400
  4816. +++ b/com/win32comext/shell/src/PyIContextMenu.h    Mon Sep 17 20:02:58 2012 +0200
  4817. @@ -18,7 +18,7 @@
  4818.     static PyObject *GetCommandString(PyObject *self, PyObject *args);
  4819.  
  4820.  protected:
  4821. -   PyIContextMenu(IUnknown *pdisp);
  4822. +   PyIContextMenu(IUnknown *pdisp, PyTypeObject *ptype);
  4823.     ~PyIContextMenu();
  4824.  };
  4825.  // ---------------------------------------------------
  4826. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyICopyHook.cpp
  4827. --- a/com/win32comext/shell/src/PyICopyHook.cpp Mon Sep 10 17:23:43 2012 -0400
  4828. +++ b/com/win32comext/shell/src/PyICopyHook.cpp Mon Sep 17 20:02:58 2012 +0200
  4829. @@ -10,10 +10,9 @@
  4830.  //
  4831.  // Interface Implementation
  4832.  
  4833. -PyICopyHookA::PyICopyHookA(IUnknown *pdisp):
  4834. -   PyIUnknown(pdisp)
  4835. +PyICopyHookA::PyICopyHookA(IUnknown *pdisp, PyTypeObject *ptype):
  4836. +   PyIUnknown(pdisp, ptype)
  4837.  {
  4838. -   ob_type = &type;
  4839.  }
  4840.  
  4841.  PyICopyHookA::~PyICopyHookA()
  4842. @@ -107,10 +106,9 @@
  4843.  }
  4844.  
  4845.  // ICopyHookW
  4846. -PyICopyHookW::PyICopyHookW(IUnknown *pdisp):
  4847. -   PyIUnknown(pdisp)
  4848. +PyICopyHookW::PyICopyHookW(IUnknown *pdisp, PyTypeObject *ptype):
  4849. +   PyIUnknown(pdisp, ptype)
  4850.  {
  4851. -   ob_type = &type;
  4852.  }
  4853.  
  4854.  PyICopyHookW::~PyICopyHookW()
  4855. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyICopyHook.h
  4856. --- a/com/win32comext/shell/src/PyICopyHook.h   Mon Sep 10 17:23:43 2012 -0400
  4857. +++ b/com/win32comext/shell/src/PyICopyHook.h   Mon Sep 17 20:02:58 2012 +0200
  4858. @@ -15,7 +15,7 @@
  4859.     static PyObject *CopyCallback(PyObject *self, PyObject *args);
  4860.  
  4861.  protected:
  4862. -   PyICopyHookA(IUnknown *pdisp);
  4863. +   PyICopyHookA(IUnknown *pdisp, PyTypeObject *ptype);
  4864.     ~PyICopyHookA();
  4865.  };
  4866.  
  4867. @@ -30,7 +30,7 @@
  4868.     static PyObject *CopyCallback(PyObject *self, PyObject *args);
  4869.  
  4870.  protected:
  4871. -   PyICopyHookW(IUnknown *pdisp);
  4872. +   PyICopyHookW(IUnknown *pdisp, PyTypeObject *ptype);
  4873.     ~PyICopyHookW();
  4874.  };
  4875.  
  4876. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIDefaultExtractIconInit.cpp
  4877. --- a/com/win32comext/shell/src/PyIDefaultExtractIconInit.cpp   Mon Sep 10 17:23:43 2012 -0400
  4878. +++ b/com/win32comext/shell/src/PyIDefaultExtractIconInit.cpp   Mon Sep 17 20:02:58 2012 +0200
  4879. @@ -9,10 +9,9 @@
  4880.  //
  4881.  // Interface Implementation
  4882.  
  4883. -PyIDefaultExtractIconInit::PyIDefaultExtractIconInit(IUnknown *pdisp):
  4884. -   PyIUnknown(pdisp)
  4885. +PyIDefaultExtractIconInit::PyIDefaultExtractIconInit(IUnknown *pdisp, PyTypeObject *ptype):
  4886. +   PyIUnknown(pdisp, ptype)
  4887.  {
  4888. -   ob_type = &type;
  4889.  }
  4890.  
  4891.  PyIDefaultExtractIconInit::~PyIDefaultExtractIconInit()
  4892. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIDefaultExtractIconInit.h
  4893. --- a/com/win32comext/shell/src/PyIDefaultExtractIconInit.h Mon Sep 10 17:23:43 2012 -0400
  4894. +++ b/com/win32comext/shell/src/PyIDefaultExtractIconInit.h Mon Sep 17 20:02:58 2012 +0200
  4895. @@ -20,6 +20,6 @@
  4896.     static PyObject *SetDefaultIcon(PyObject *self, PyObject *args);
  4897.  
  4898.  protected:
  4899. -   PyIDefaultExtractIconInit(IUnknown *pdisp);
  4900. +   PyIDefaultExtractIconInit(IUnknown *pdisp, PyTypeObject *ptype);
  4901.     ~PyIDefaultExtractIconInit();
  4902.  };
  4903. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIDropTargetHelper.cpp
  4904. --- a/com/win32comext/shell/src/PyIDropTargetHelper.cpp Mon Sep 10 17:23:43 2012 -0400
  4905. +++ b/com/win32comext/shell/src/PyIDropTargetHelper.cpp Mon Sep 17 20:02:58 2012 +0200
  4906. @@ -19,10 +19,9 @@
  4907.  //
  4908.  // Interface Implementation
  4909.  
  4910. -PyIDropTargetHelper::PyIDropTargetHelper(IUnknown *pdisp):
  4911. -   PyIUnknown(pdisp)
  4912. +PyIDropTargetHelper::PyIDropTargetHelper(IUnknown *pdisp, PyTypeObject *ptype):
  4913. +   PyIUnknown(pdisp, ptype)
  4914.  {
  4915. -   ob_type = &type;
  4916.  }
  4917.  
  4918.  PyIDropTargetHelper::~PyIDropTargetHelper()
  4919. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIDropTargetHelper.h
  4920. --- a/com/win32comext/shell/src/PyIDropTargetHelper.h   Mon Sep 10 17:23:43 2012 -0400
  4921. +++ b/com/win32comext/shell/src/PyIDropTargetHelper.h   Mon Sep 17 20:02:58 2012 +0200
  4922. @@ -19,7 +19,7 @@
  4923.     static PyObject *Show(PyObject *self, PyObject *args);
  4924.  
  4925.  protected:
  4926. -   PyIDropTargetHelper(IUnknown *pdisp);
  4927. +   PyIDropTargetHelper(IUnknown *pdisp, PyTypeObject *ptype);
  4928.     ~PyIDropTargetHelper();
  4929.  };
  4930.  // ---------------------------------------------------
  4931. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIEmptyVolumeCacheCallBack.cpp
  4932. --- a/com/win32comext/shell/src/PyIEmptyVolumeCacheCallBack.cpp Mon Sep 10 17:23:43 2012 -0400
  4933. +++ b/com/win32comext/shell/src/PyIEmptyVolumeCacheCallBack.cpp Mon Sep 17 20:02:58 2012 +0200
  4934. @@ -15,10 +15,9 @@
  4935.  //
  4936.  // Interface Implementation
  4937.  
  4938. -PyIEmptyVolumeCacheCallBack::PyIEmptyVolumeCacheCallBack(IUnknown *pdisp):
  4939. -   PyIUnknown(pdisp)
  4940. +PyIEmptyVolumeCacheCallBack::PyIEmptyVolumeCacheCallBack(IUnknown *pdisp, PyTypeObject *ptype):
  4941. +   PyIUnknown(pdisp, ptype)
  4942.  {
  4943. -   ob_type = &type;
  4944.  }
  4945.  
  4946.  PyIEmptyVolumeCacheCallBack::~PyIEmptyVolumeCacheCallBack()
  4947. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIEmptyVolumeCacheCallBack.h
  4948. --- a/com/win32comext/shell/src/PyIEmptyVolumeCacheCallBack.h   Mon Sep 10 17:23:43 2012 -0400
  4949. +++ b/com/win32comext/shell/src/PyIEmptyVolumeCacheCallBack.h   Mon Sep 17 20:02:58 2012 +0200
  4950. @@ -15,6 +15,6 @@
  4951.     static PyObject *PurgeProgress(PyObject *self, PyObject *args);
  4952.  
  4953.  protected:
  4954. -   PyIEmptyVolumeCacheCallBack(IUnknown *pdisp);
  4955. +   PyIEmptyVolumeCacheCallBack(IUnknown *pdisp, PyTypeObject *ptype);
  4956.     ~PyIEmptyVolumeCacheCallBack();
  4957.  };
  4958. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIEnumExplorerCommand.cpp
  4959. --- a/com/win32comext/shell/src/PyIEnumExplorerCommand.cpp  Mon Sep 10 17:23:43 2012 -0400
  4960. +++ b/com/win32comext/shell/src/PyIEnumExplorerCommand.cpp  Mon Sep 17 20:02:58 2012 +0200
  4961. @@ -10,10 +10,9 @@
  4962.  //
  4963.  // Interface Implementation
  4964.  
  4965. -PyIEnumExplorerCommand::PyIEnumExplorerCommand(IUnknown *pdisp):
  4966. -   PyIUnknown(pdisp)
  4967. +PyIEnumExplorerCommand::PyIEnumExplorerCommand(IUnknown *pdisp, PyTypeObject *ptype):
  4968. +   PyIUnknown(pdisp, ptype)
  4969.  {
  4970. -   ob_type = &type;
  4971.  }
  4972.  
  4973.  PyIEnumExplorerCommand::~PyIEnumExplorerCommand()
  4974. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIEnumExplorerCommand.h
  4975. --- a/com/win32comext/shell/src/PyIEnumExplorerCommand.h    Mon Sep 10 17:23:43 2012 -0400
  4976. +++ b/com/win32comext/shell/src/PyIEnumExplorerCommand.h    Mon Sep 17 20:02:58 2012 +0200
  4977. @@ -18,7 +18,7 @@
  4978.     static PyObject *Clone(PyObject *self, PyObject *args);
  4979.  
  4980.  protected:
  4981. -   PyIEnumExplorerCommand(IUnknown *pdisp);
  4982. +   PyIEnumExplorerCommand(IUnknown *pdisp, PyTypeObject *ptype);
  4983.     ~PyIEnumExplorerCommand();
  4984.  };
  4985.  // ---------------------------------------------------
  4986. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIEnumIDList.cpp
  4987. --- a/com/win32comext/shell/src/PyIEnumIDList.cpp   Mon Sep 10 17:23:43 2012 -0400
  4988. +++ b/com/win32comext/shell/src/PyIEnumIDList.cpp   Mon Sep 17 20:02:58 2012 +0200
  4989. @@ -9,10 +9,9 @@
  4990.  //
  4991.  // Interface Implementation
  4992.  
  4993. -PyIEnumIDList::PyIEnumIDList(IUnknown *pdisp):
  4994. -   PyIUnknown(pdisp)
  4995. +PyIEnumIDList::PyIEnumIDList(IUnknown *pdisp, PyTypeObject *ptype):
  4996. +   PyIUnknown(pdisp, ptype)
  4997.  {
  4998. -   ob_type = &type;
  4999.  }
  5000.  
  5001.  PyIEnumIDList::~PyIEnumIDList()
  5002. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIEnumIDList.h
  5003. --- a/com/win32comext/shell/src/PyIEnumIDList.h Mon Sep 10 17:23:43 2012 -0400
  5004. +++ b/com/win32comext/shell/src/PyIEnumIDList.h Mon Sep 17 20:02:58 2012 +0200
  5005. @@ -18,7 +18,7 @@
  5006.     static PyObject *Clone(PyObject *self, PyObject *args);
  5007.  
  5008.  protected:
  5009. -   PyIEnumIDList(IUnknown *pdisp);
  5010. +   PyIEnumIDList(IUnknown *pdisp, PyTypeObject *ptype);
  5011.     ~PyIEnumIDList();
  5012.  };
  5013.  // ---------------------------------------------------
  5014. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIExplorerBrowser.cpp
  5015. --- a/com/win32comext/shell/src/PyIExplorerBrowser.cpp  Mon Sep 10 17:23:43 2012 -0400
  5016. +++ b/com/win32comext/shell/src/PyIExplorerBrowser.cpp  Mon Sep 17 20:02:58 2012 +0200
  5017. @@ -9,10 +9,9 @@
  5018.  //
  5019.  // Interface Implementation
  5020.  
  5021. -PyIExplorerBrowser::PyIExplorerBrowser(IUnknown *pdisp):
  5022. -   PyIUnknown(pdisp)
  5023. +PyIExplorerBrowser::PyIExplorerBrowser(IUnknown *pdisp, PyTypeObject *ptype):
  5024. +   PyIUnknown(pdisp, ptype)
  5025.  {
  5026. -   ob_type = &type;
  5027.  }
  5028.  
  5029.  PyIExplorerBrowser::~PyIExplorerBrowser()
  5030. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIExplorerBrowser.h
  5031. --- a/com/win32comext/shell/src/PyIExplorerBrowser.h    Mon Sep 10 17:23:43 2012 -0400
  5032. +++ b/com/win32comext/shell/src/PyIExplorerBrowser.h    Mon Sep 17 20:02:58 2012 +0200
  5033. @@ -29,6 +29,6 @@
  5034.     static PyObject *GetCurrentView(PyObject *self, PyObject *args);
  5035.  
  5036.  protected:
  5037. -   PyIExplorerBrowser(IUnknown *pdisp);
  5038. +   PyIExplorerBrowser(IUnknown *pdisp, PyTypeObject *ptype);
  5039.     ~PyIExplorerBrowser();
  5040.  };
  5041. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIExplorerBrowserEvents.cpp
  5042. --- a/com/win32comext/shell/src/PyIExplorerBrowserEvents.cpp    Mon Sep 10 17:23:43 2012 -0400
  5043. +++ b/com/win32comext/shell/src/PyIExplorerBrowserEvents.cpp    Mon Sep 17 20:02:58 2012 +0200
  5044. @@ -9,10 +9,9 @@
  5045.  //
  5046.  // Interface Implementation
  5047.  
  5048. -PyIExplorerBrowserEvents::PyIExplorerBrowserEvents(IUnknown *pdisp):
  5049. -   PyIUnknown(pdisp)
  5050. +PyIExplorerBrowserEvents::PyIExplorerBrowserEvents(IUnknown *pdisp, PyTypeObject *ptype):
  5051. +   PyIUnknown(pdisp, ptype)
  5052.  {
  5053. -   ob_type = &type;
  5054.  }
  5055.  
  5056.  PyIExplorerBrowserEvents::~PyIExplorerBrowserEvents()
  5057. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIExplorerBrowserEvents.h
  5058. --- a/com/win32comext/shell/src/PyIExplorerBrowserEvents.h  Mon Sep 10 17:23:43 2012 -0400
  5059. +++ b/com/win32comext/shell/src/PyIExplorerBrowserEvents.h  Mon Sep 17 20:02:58 2012 +0200
  5060. @@ -18,7 +18,7 @@
  5061.     static PyObject *OnNavigationFailed(PyObject *self, PyObject *args);
  5062.  
  5063.  protected:
  5064. -   PyIExplorerBrowserEvents(IUnknown *pdisp);
  5065. +   PyIExplorerBrowserEvents(IUnknown *pdisp, PyTypeObject *ptype);
  5066.     ~PyIExplorerBrowserEvents();
  5067.  };
  5068.  // ---------------------------------------------------
  5069. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIExplorerCommand.cpp
  5070. --- a/com/win32comext/shell/src/PyIExplorerCommand.cpp  Mon Sep 10 17:23:43 2012 -0400
  5071. +++ b/com/win32comext/shell/src/PyIExplorerCommand.cpp  Mon Sep 17 20:02:58 2012 +0200
  5072. @@ -9,10 +9,9 @@
  5073.  //
  5074.  // Interface Implementation
  5075.  
  5076. -PyIExplorerCommand::PyIExplorerCommand(IUnknown *pdisp):
  5077. -   PyIUnknown(pdisp)
  5078. +PyIExplorerCommand::PyIExplorerCommand(IUnknown *pdisp, PyTypeObject *ptype):
  5079. +   PyIUnknown(pdisp, ptype)
  5080.  {
  5081. -   ob_type = &type;
  5082.  }
  5083.  
  5084.  PyIExplorerCommand::~PyIExplorerCommand()
  5085. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIExplorerCommand.h
  5086. --- a/com/win32comext/shell/src/PyIExplorerCommand.h    Mon Sep 10 17:23:43 2012 -0400
  5087. +++ b/com/win32comext/shell/src/PyIExplorerCommand.h    Mon Sep 17 20:02:58 2012 +0200
  5088. @@ -22,7 +22,7 @@
  5089.     static PyObject *EnumSubCommands(PyObject *self, PyObject *args);
  5090.  
  5091.  protected:
  5092. -   PyIExplorerCommand(IUnknown *pdisp);
  5093. +   PyIExplorerCommand(IUnknown *pdisp, PyTypeObject *ptype);
  5094.     ~PyIExplorerCommand();
  5095.  };
  5096.  // ---------------------------------------------------
  5097. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIExplorerPaneVisibility.cpp
  5098. --- a/com/win32comext/shell/src/PyIExplorerPaneVisibility.cpp   Mon Sep 10 17:23:43 2012 -0400
  5099. +++ b/com/win32comext/shell/src/PyIExplorerPaneVisibility.cpp   Mon Sep 17 20:02:58 2012 +0200
  5100. @@ -6,10 +6,9 @@
  5101.  //
  5102.  // Interface Implementation
  5103.  
  5104. -PyIExplorerPaneVisibility::PyIExplorerPaneVisibility(IUnknown *pdisp):
  5105. -   PyIUnknown(pdisp)
  5106. +PyIExplorerPaneVisibility::PyIExplorerPaneVisibility(IUnknown *pdisp, PyTypeObject *ptype):
  5107. +   PyIUnknown(pdisp, ptype)
  5108.  {
  5109. -   ob_type = &type;
  5110.  }
  5111.  
  5112.  PyIExplorerPaneVisibility::~PyIExplorerPaneVisibility()
  5113. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIExplorerPaneVisibility.h
  5114. --- a/com/win32comext/shell/src/PyIExplorerPaneVisibility.h Mon Sep 10 17:23:43 2012 -0400
  5115. +++ b/com/win32comext/shell/src/PyIExplorerPaneVisibility.h Mon Sep 17 20:02:58 2012 +0200
  5116. @@ -15,6 +15,6 @@
  5117.     static PyObject *GetPaneState(PyObject *self, PyObject *args);
  5118.  
  5119.  protected:
  5120. -   PyIExplorerPaneVisibility(IUnknown *pdisp);
  5121. +   PyIExplorerPaneVisibility(IUnknown *pdisp, PyTypeObject *ptype);
  5122.     ~PyIExplorerPaneVisibility();
  5123.  };
  5124. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIExtractIcon.cpp
  5125. --- a/com/win32comext/shell/src/PyIExtractIcon.cpp  Mon Sep 10 17:23:43 2012 -0400
  5126. +++ b/com/win32comext/shell/src/PyIExtractIcon.cpp  Mon Sep 17 20:02:58 2012 +0200
  5127. @@ -7,10 +7,9 @@
  5128.  //
  5129.  // Interface Implementation
  5130.  
  5131. -PyIExtractIcon::PyIExtractIcon(IUnknown *pdisp):
  5132. -   PyIUnknown(pdisp)
  5133. +PyIExtractIcon::PyIExtractIcon(IUnknown *pdisp, PyTypeObject *ptype):
  5134. +   PyIUnknown(pdisp, ptype)
  5135.  {
  5136. -   ob_type = &type;
  5137.  }
  5138.  
  5139.  PyIExtractIcon::~PyIExtractIcon()
  5140. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIExtractIcon.h
  5141. --- a/com/win32comext/shell/src/PyIExtractIcon.h    Mon Sep 10 17:23:43 2012 -0400
  5142. +++ b/com/win32comext/shell/src/PyIExtractIcon.h    Mon Sep 17 20:02:58 2012 +0200
  5143. @@ -16,7 +16,7 @@
  5144.     static PyObject *GetIconLocation(PyObject *self, PyObject *args);
  5145.  
  5146.  protected:
  5147. -   PyIExtractIcon(IUnknown *pdisp);
  5148. +   PyIExtractIcon(IUnknown *pdisp, PyTypeObject *ptype);
  5149.     ~PyIExtractIcon();
  5150.  };
  5151.  // ---------------------------------------------------
  5152. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIExtractIconW.cpp
  5153. --- a/com/win32comext/shell/src/PyIExtractIconW.cpp Mon Sep 10 17:23:43 2012 -0400
  5154. +++ b/com/win32comext/shell/src/PyIExtractIconW.cpp Mon Sep 17 20:02:58 2012 +0200
  5155. @@ -11,10 +11,9 @@
  5156.  //
  5157.  // Interface Implementation
  5158.  
  5159. -PyIExtractIconW::PyIExtractIconW(IUnknown *pdisp):
  5160. -   PyIUnknown(pdisp)
  5161. +PyIExtractIconW::PyIExtractIconW(IUnknown *pdisp, PyTypeObject *ptype):
  5162. +   PyIUnknown(pdisp, ptype)
  5163.  {
  5164. -   ob_type = &type;
  5165.  }
  5166.  
  5167.  PyIExtractIconW::~PyIExtractIconW()
  5168. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIExtractIconW.h
  5169. --- a/com/win32comext/shell/src/PyIExtractIconW.h   Mon Sep 10 17:23:43 2012 -0400
  5170. +++ b/com/win32comext/shell/src/PyIExtractIconW.h   Mon Sep 17 20:02:58 2012 +0200
  5171. @@ -16,7 +16,7 @@
  5172.     static PyObject *GetIconLocation(PyObject *self, PyObject *args);
  5173.  
  5174.  protected:
  5175. -   PyIExtractIconW(IUnknown *pdisp);
  5176. +   PyIExtractIconW(IUnknown *pdisp, PyTypeObject *ptype);
  5177.     ~PyIExtractIconW();
  5178.  };
  5179.  // ---------------------------------------------------
  5180. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIExtractImage.cpp
  5181. --- a/com/win32comext/shell/src/PyIExtractImage.cpp Mon Sep 10 17:23:43 2012 -0400
  5182. +++ b/com/win32comext/shell/src/PyIExtractImage.cpp Mon Sep 17 20:02:58 2012 +0200
  5183. @@ -31,10 +31,9 @@
  5184.  //
  5185.  // Interface Implementation
  5186.  
  5187. -PyIExtractImage::PyIExtractImage(IUnknown *pdisp):
  5188. -   PyIUnknown(pdisp)
  5189. +PyIExtractImage::PyIExtractImage(IUnknown *pdisp, PyTypeObject *ptype):
  5190. +   PyIUnknown(pdisp, ptype)
  5191.  {
  5192. -   ob_type = &type;
  5193.  }
  5194.  
  5195.  PyIExtractImage::~PyIExtractImage()
  5196. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIExtractImage.h
  5197. --- a/com/win32comext/shell/src/PyIExtractImage.h   Mon Sep 10 17:23:43 2012 -0400
  5198. +++ b/com/win32comext/shell/src/PyIExtractImage.h   Mon Sep 17 20:02:58 2012 +0200
  5199. @@ -16,6 +16,6 @@
  5200.     static PyObject *Extract(PyObject *self, PyObject *args);
  5201.  
  5202.  protected:
  5203. -   PyIExtractImage(IUnknown *pdisp);
  5204. +   PyIExtractImage(IUnknown *pdisp, PyTypeObject *ptype);
  5205.     ~PyIExtractImage();
  5206.  };
  5207. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIInputObject.cpp
  5208. --- a/com/win32comext/shell/src/PyIInputObject.cpp  Mon Sep 10 17:23:43 2012 -0400
  5209. +++ b/com/win32comext/shell/src/PyIInputObject.cpp  Mon Sep 17 20:02:58 2012 +0200
  5210. @@ -10,10 +10,9 @@
  5211.  //
  5212.  // Interface Implementation
  5213.  
  5214. -PyIInputObject::PyIInputObject(IUnknown *pdisp):
  5215. -   PyIUnknown(pdisp)
  5216. +PyIInputObject::PyIInputObject(IUnknown *pdisp, PyTypeObject *ptype):
  5217. +   PyIUnknown(pdisp, ptype)
  5218.  {
  5219. -   ob_type = &type;
  5220.  }
  5221.  
  5222.  PyIInputObject::~PyIInputObject()
  5223. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIInputObject.h
  5224. --- a/com/win32comext/shell/src/PyIInputObject.h    Mon Sep 10 17:23:43 2012 -0400
  5225. +++ b/com/win32comext/shell/src/PyIInputObject.h    Mon Sep 17 20:02:58 2012 +0200
  5226. @@ -17,7 +17,7 @@
  5227.     static PyObject *HasFocusIO(PyObject *self, PyObject *args);
  5228.  
  5229.  protected:
  5230. -   PyIInputObject(IUnknown *pdisp);
  5231. +   PyIInputObject(IUnknown *pdisp, PyTypeObject *ptype);
  5232.     ~PyIInputObject();
  5233.  };
  5234.  // ---------------------------------------------------
  5235. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyINameSpaceTreeControl.cpp
  5236. --- a/com/win32comext/shell/src/PyINameSpaceTreeControl.cpp Mon Sep 10 17:23:43 2012 -0400
  5237. +++ b/com/win32comext/shell/src/PyINameSpaceTreeControl.cpp Mon Sep 17 20:02:58 2012 +0200
  5238. @@ -9,10 +9,9 @@
  5239.  //
  5240.  // Interface Implementation
  5241.  
  5242. -PyINameSpaceTreeControl::PyINameSpaceTreeControl(IUnknown *pdisp):
  5243. -   PyIUnknown(pdisp)
  5244. +PyINameSpaceTreeControl::PyINameSpaceTreeControl(IUnknown *pdisp, PyTypeObject *ptype):
  5245. +   PyIUnknown(pdisp, ptype)
  5246.  {
  5247. -   ob_type = &type;
  5248.  }
  5249.  
  5250.  PyINameSpaceTreeControl::~PyINameSpaceTreeControl()
  5251. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyINameSpaceTreeControl.h
  5252. --- a/com/win32comext/shell/src/PyINameSpaceTreeControl.h   Mon Sep 10 17:23:43 2012 -0400
  5253. +++ b/com/win32comext/shell/src/PyINameSpaceTreeControl.h   Mon Sep 17 20:02:58 2012 +0200
  5254. @@ -33,6 +33,6 @@
  5255.     static PyObject *CollapseAll(PyObject *self, PyObject *args);
  5256.  
  5257.  protected:
  5258. -   PyINameSpaceTreeControl(IUnknown *pdisp);
  5259. +   PyINameSpaceTreeControl(IUnknown *pdisp, PyTypeObject *ptype);
  5260.     ~PyINameSpaceTreeControl();
  5261.  };
  5262. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIPersistFolder.cpp
  5263. --- a/com/win32comext/shell/src/PyIPersistFolder.cpp    Mon Sep 10 17:23:43 2012 -0400
  5264. +++ b/com/win32comext/shell/src/PyIPersistFolder.cpp    Mon Sep 17 20:02:58 2012 +0200
  5265. @@ -10,10 +10,9 @@
  5266.  //
  5267.  // Interface Implementation
  5268.  
  5269. -PyIPersistFolder::PyIPersistFolder(IUnknown *pdisp):
  5270. -   PyIPersist(pdisp)
  5271. +PyIPersistFolder::PyIPersistFolder(IUnknown *pdisp, PyTypeObject *ptype):
  5272. +   PyIPersist(pdisp, ptype)
  5273.  {
  5274. -   ob_type = &type;
  5275.  }
  5276.  
  5277.  PyIPersistFolder::~PyIPersistFolder()
  5278. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIPersistFolder.h
  5279. --- a/com/win32comext/shell/src/PyIPersistFolder.h  Mon Sep 10 17:23:43 2012 -0400
  5280. +++ b/com/win32comext/shell/src/PyIPersistFolder.h  Mon Sep 17 20:02:58 2012 +0200
  5281. @@ -15,7 +15,7 @@
  5282.     static PyObject *Initialize(PyObject *self, PyObject *args);
  5283.  
  5284.  protected:
  5285. -   PyIPersistFolder(IUnknown *pdisp);
  5286. +   PyIPersistFolder(IUnknown *pdisp, PyTypeObject *ptype);
  5287.     ~PyIPersistFolder();
  5288.  };
  5289.  // ---------------------------------------------------
  5290. @@ -53,7 +53,7 @@
  5291.     static PyObject *GetCurFolder(PyObject *self, PyObject *args);
  5292.  
  5293.  protected:
  5294. -   PyIPersistFolder2(IUnknown *pdisp);
  5295. +   PyIPersistFolder2(IUnknown *pdisp, PyTypeObject *ptype);
  5296.     ~PyIPersistFolder2();
  5297.  };
  5298.  // ---------------------------------------------------
  5299. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIPersistFolder2.cpp
  5300. --- a/com/win32comext/shell/src/PyIPersistFolder2.cpp   Mon Sep 10 17:23:43 2012 -0400
  5301. +++ b/com/win32comext/shell/src/PyIPersistFolder2.cpp   Mon Sep 17 20:02:58 2012 +0200
  5302. @@ -10,10 +10,9 @@
  5303.  //
  5304.  // Interface Implementation
  5305.  
  5306. -PyIPersistFolder2::PyIPersistFolder2(IUnknown *pdisp):
  5307. -   PyIPersistFolder(pdisp)
  5308. +PyIPersistFolder2::PyIPersistFolder2(IUnknown *pdisp, PyTypeObject *ptype):
  5309. +   PyIPersistFolder(pdisp, ptype)
  5310.  {
  5311. -   ob_type = &type;
  5312.  }
  5313.  
  5314.  PyIPersistFolder2::~PyIPersistFolder2()
  5315. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIQueryAssociations.cpp
  5316. --- a/com/win32comext/shell/src/PyIQueryAssociations.cpp    Mon Sep 10 17:23:43 2012 -0400
  5317. +++ b/com/win32comext/shell/src/PyIQueryAssociations.cpp    Mon Sep 17 20:02:58 2012 +0200
  5318. @@ -9,10 +9,9 @@
  5319.  //
  5320.  // Interface Implementation
  5321.  
  5322. -PyIQueryAssociations::PyIQueryAssociations(IUnknown *pdisp):
  5323. -   PyIUnknown(pdisp)
  5324. +PyIQueryAssociations::PyIQueryAssociations(IUnknown *pdisp, PyTypeObject *ptype):
  5325. +   PyIUnknown(pdisp, ptype)
  5326.  {
  5327. -   ob_type = &type;
  5328.  }
  5329.  
  5330.  PyIQueryAssociations::~PyIQueryAssociations()
  5331. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIQueryAssociations.h
  5332. --- a/com/win32comext/shell/src/PyIQueryAssociations.h  Mon Sep 10 17:23:43 2012 -0400
  5333. +++ b/com/win32comext/shell/src/PyIQueryAssociations.h  Mon Sep 17 20:02:58 2012 +0200
  5334. @@ -65,6 +65,6 @@
  5335.     static PyObject *GetString(PyObject *self, PyObject *args);
  5336.  
  5337.  protected:
  5338. -   PyIQueryAssociations(IUnknown *pdisp);
  5339. +   PyIQueryAssociations(IUnknown *pdisp, PyTypeObject *ptype);
  5340.     ~PyIQueryAssociations();
  5341.  };
  5342. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellBrowser.cpp
  5343. --- a/com/win32comext/shell/src/PyIShellBrowser.cpp Mon Sep 10 17:23:43 2012 -0400
  5344. +++ b/com/win32comext/shell/src/PyIShellBrowser.cpp Mon Sep 17 20:02:58 2012 +0200
  5345. @@ -13,10 +13,9 @@
  5346.  
  5347.  // Interface Implementation
  5348.  
  5349. -PyIShellBrowser::PyIShellBrowser(IUnknown *pdisp):
  5350. -   PyIOleWindow(pdisp)
  5351. +PyIShellBrowser::PyIShellBrowser(IUnknown *pdisp, PyTypeObject *ptype):
  5352. +   PyIOleWindow(pdisp, ptype)
  5353.  {
  5354. -   ob_type = &type;
  5355.  }
  5356.  
  5357.  PyIShellBrowser::~PyIShellBrowser()
  5358. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellBrowser.h
  5359. --- a/com/win32comext/shell/src/PyIShellBrowser.h   Mon Sep 10 17:23:43 2012 -0400
  5360. +++ b/com/win32comext/shell/src/PyIShellBrowser.h   Mon Sep 17 20:02:58 2012 +0200
  5361. @@ -27,7 +27,7 @@
  5362.     static PyObject *SetToolbarItems(PyObject *self, PyObject *args);
  5363.  
  5364.  protected:
  5365. -   PyIShellBrowser(IUnknown *pdisp);
  5366. +   PyIShellBrowser(IUnknown *pdisp, PyTypeObject *ptype);
  5367.     ~PyIShellBrowser();
  5368.  };
  5369.  // ---------------------------------------------------
  5370. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellExtInit.cpp
  5371. --- a/com/win32comext/shell/src/PyIShellExtInit.cpp Mon Sep 10 17:23:43 2012 -0400
  5372. +++ b/com/win32comext/shell/src/PyIShellExtInit.cpp Mon Sep 17 20:02:58 2012 +0200
  5373. @@ -9,10 +9,9 @@
  5374.  //
  5375.  // Interface Implementation
  5376.  
  5377. -PyIShellExtInit::PyIShellExtInit(IUnknown *pdisp):
  5378. -   PyIUnknown(pdisp)
  5379. +PyIShellExtInit::PyIShellExtInit(IUnknown *pdisp, PyTypeObject *ptype):
  5380. +   PyIUnknown(pdisp, ptype)
  5381.  {
  5382. -   ob_type = &type;
  5383.  }
  5384.  
  5385.  PyIShellExtInit::~PyIShellExtInit()
  5386. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellExtInit.h
  5387. --- a/com/win32comext/shell/src/PyIShellExtInit.h   Mon Sep 10 17:23:43 2012 -0400
  5388. +++ b/com/win32comext/shell/src/PyIShellExtInit.h   Mon Sep 17 20:02:58 2012 +0200
  5389. @@ -15,7 +15,7 @@
  5390.     static PyObject *Initialize(PyObject *self, PyObject *args);
  5391.  
  5392.  protected:
  5393. -   PyIShellExtInit(IUnknown *pdisp);
  5394. +   PyIShellExtInit(IUnknown *pdisp, PyTypeObject *ptype);
  5395.     ~PyIShellExtInit();
  5396.  };
  5397.  // ---------------------------------------------------
  5398. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellFolder.cpp
  5399. --- a/com/win32comext/shell/src/PyIShellFolder.cpp  Mon Sep 10 17:23:43 2012 -0400
  5400. +++ b/com/win32comext/shell/src/PyIShellFolder.cpp  Mon Sep 17 20:02:58 2012 +0200
  5401. @@ -9,10 +9,9 @@
  5402.  //
  5403.  // Interface Implementation
  5404.  
  5405. -PyIShellFolder::PyIShellFolder(IUnknown *pdisp):
  5406. -   PyIUnknown(pdisp)
  5407. +PyIShellFolder::PyIShellFolder(IUnknown *pdisp, PyTypeObject *ptype):
  5408. +   PyIUnknown(pdisp, ptype)
  5409.  {
  5410. -   ob_type = &type;
  5411.  }
  5412.  
  5413.  PyIShellFolder::~PyIShellFolder()
  5414. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellFolder.h
  5415. --- a/com/win32comext/shell/src/PyIShellFolder.h    Mon Sep 10 17:23:43 2012 -0400
  5416. +++ b/com/win32comext/shell/src/PyIShellFolder.h    Mon Sep 17 20:02:58 2012 +0200
  5417. @@ -24,7 +24,7 @@
  5418.     static PyObject *SetNameOf(PyObject *self, PyObject *args);
  5419.  
  5420.  protected:
  5421. -   PyIShellFolder(IUnknown *pdisp);
  5422. +   PyIShellFolder(IUnknown *pdisp, PyTypeObject *ptype);
  5423.     ~PyIShellFolder();
  5424.  };
  5425.  // ---------------------------------------------------
  5426. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellFolder2.cpp
  5427. --- a/com/win32comext/shell/src/PyIShellFolder2.cpp Mon Sep 10 17:23:43 2012 -0400
  5428. +++ b/com/win32comext/shell/src/PyIShellFolder2.cpp Mon Sep 17 20:02:58 2012 +0200
  5429. @@ -10,10 +10,9 @@
  5430.  //
  5431.  // Interface Implementation
  5432.  
  5433. -PyIShellFolder2::PyIShellFolder2(IUnknown *pdisp):
  5434. -   PyIShellFolder(pdisp)
  5435. +PyIShellFolder2::PyIShellFolder2(IUnknown *pdisp, PyTypeObject *ptype):
  5436. +   PyIShellFolder(pdisp, ptype)
  5437.  {
  5438. -   ob_type = &type;
  5439.  }
  5440.  
  5441.  PyIShellFolder2::~PyIShellFolder2()
  5442. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellFolder2.h
  5443. --- a/com/win32comext/shell/src/PyIShellFolder2.h   Mon Sep 10 17:23:43 2012 -0400
  5444. +++ b/com/win32comext/shell/src/PyIShellFolder2.h   Mon Sep 17 20:02:58 2012 +0200
  5445. @@ -21,7 +21,7 @@
  5446.     static PyObject *MapColumnToSCID(PyObject *self, PyObject *args);
  5447.  
  5448.  protected:
  5449. -   PyIShellFolder2(IUnknown *pdisp);
  5450. +   PyIShellFolder2(IUnknown *pdisp, PyTypeObject *ptype);
  5451.     ~PyIShellFolder2();
  5452.  };
  5453.  // ---------------------------------------------------
  5454. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellIcon.cpp
  5455. --- a/com/win32comext/shell/src/PyIShellIcon.cpp    Mon Sep 10 17:23:43 2012 -0400
  5456. +++ b/com/win32comext/shell/src/PyIShellIcon.cpp    Mon Sep 17 20:02:58 2012 +0200
  5457. @@ -9,10 +9,9 @@
  5458.  //
  5459.  // Interface Implementation
  5460.  
  5461. -PyIShellIcon::PyIShellIcon(IUnknown *pdisp):
  5462. -   PyIUnknown(pdisp)
  5463. +PyIShellIcon::PyIShellIcon(IUnknown *pdisp, PyTypeObject *ptype):
  5464. +   PyIUnknown(pdisp, ptype)
  5465.  {
  5466. -   ob_type = &type;
  5467.  }
  5468.  
  5469.  PyIShellIcon::~PyIShellIcon()
  5470. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellIcon.h
  5471. --- a/com/win32comext/shell/src/PyIShellIcon.h  Mon Sep 10 17:23:43 2012 -0400
  5472. +++ b/com/win32comext/shell/src/PyIShellIcon.h  Mon Sep 17 20:02:58 2012 +0200
  5473. @@ -15,7 +15,7 @@
  5474.     static PyObject *GetIconOf(PyObject *self, PyObject *args);
  5475.  
  5476.  protected:
  5477. -   PyIShellIcon(IUnknown *pdisp);
  5478. +   PyIShellIcon(IUnknown *pdisp, PyTypeObject *ptype);
  5479.     ~PyIShellIcon();
  5480.  };
  5481.  // ---------------------------------------------------
  5482. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellIconOverlay.cpp
  5483. --- a/com/win32comext/shell/src/PyIShellIconOverlay.cpp Mon Sep 10 17:23:43 2012 -0400
  5484. +++ b/com/win32comext/shell/src/PyIShellIconOverlay.cpp Mon Sep 17 20:02:58 2012 +0200
  5485. @@ -9,10 +9,9 @@
  5486.  //
  5487.  // Interface Implementation
  5488.  
  5489. -PyIShellIconOverlay::PyIShellIconOverlay(IUnknown *pdisp):
  5490. -   PyIUnknown(pdisp)
  5491. +PyIShellIconOverlay::PyIShellIconOverlay(IUnknown *pdisp, PyTypeObject *ptype):
  5492. +   PyIUnknown(pdisp, ptype)
  5493.  {
  5494. -   ob_type = &type;
  5495.  }
  5496.  
  5497.  PyIShellIconOverlay::~PyIShellIconOverlay()
  5498. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellIconOverlay.h
  5499. --- a/com/win32comext/shell/src/PyIShellIconOverlay.h   Mon Sep 10 17:23:43 2012 -0400
  5500. +++ b/com/win32comext/shell/src/PyIShellIconOverlay.h   Mon Sep 17 20:02:58 2012 +0200
  5501. @@ -16,7 +16,7 @@
  5502.     static PyObject *GetOverlayIconIndex(PyObject *self, PyObject *args);
  5503.  
  5504.  protected:
  5505. -   PyIShellIconOverlay(IUnknown *pdisp);
  5506. +   PyIShellIconOverlay(IUnknown *pdisp, PyTypeObject *ptype);
  5507.     ~PyIShellIconOverlay();
  5508.  };
  5509.  // ---------------------------------------------------
  5510. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellIconOverlayIdentifier.cpp
  5511. --- a/com/win32comext/shell/src/PyIShellIconOverlayIdentifier.cpp   Mon Sep 10 17:23:43 2012 -0400
  5512. +++ b/com/win32comext/shell/src/PyIShellIconOverlayIdentifier.cpp   Mon Sep 17 20:02:58 2012 +0200
  5513. @@ -9,10 +9,9 @@
  5514.  //
  5515.  // Interface Implementation
  5516.  
  5517. -PyIShellIconOverlayIdentifier::PyIShellIconOverlayIdentifier(IUnknown *pdisp):
  5518. -   PyIUnknown(pdisp)
  5519. +PyIShellIconOverlayIdentifier::PyIShellIconOverlayIdentifier(IUnknown *pdisp, PyTypeObject *ptype):
  5520. +   PyIUnknown(pdisp, ptype)
  5521.  {
  5522. -   ob_type = &type;
  5523.  }
  5524.  
  5525.  PyIShellIconOverlayIdentifier::~PyIShellIconOverlayIdentifier()
  5526. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellIconOverlayIdentifier.h
  5527. --- a/com/win32comext/shell/src/PyIShellIconOverlayIdentifier.h Mon Sep 10 17:23:43 2012 -0400
  5528. +++ b/com/win32comext/shell/src/PyIShellIconOverlayIdentifier.h Mon Sep 17 20:02:58 2012 +0200
  5529. @@ -17,7 +17,7 @@
  5530.     static PyObject *GetPriority(PyObject *self, PyObject *args);
  5531.  
  5532.  protected:
  5533. -   PyIShellIconOverlayIdentifier(IUnknown *pdisp);
  5534. +   PyIShellIconOverlayIdentifier(IUnknown *pdisp, PyTypeObject *ptype);
  5535.     ~PyIShellIconOverlayIdentifier();
  5536.  };
  5537.  // ---------------------------------------------------
  5538. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellIconOverlayManager.cpp
  5539. --- a/com/win32comext/shell/src/PyIShellIconOverlayManager.cpp  Mon Sep 10 17:23:43 2012 -0400
  5540. +++ b/com/win32comext/shell/src/PyIShellIconOverlayManager.cpp  Mon Sep 17 20:02:58 2012 +0200
  5541. @@ -9,10 +9,9 @@
  5542.  //
  5543.  // Interface Implementation
  5544.  
  5545. -PyIShellIconOverlayManager::PyIShellIconOverlayManager(IUnknown *pdisp):
  5546. -   PyIUnknown(pdisp)
  5547. +PyIShellIconOverlayManager::PyIShellIconOverlayManager(IUnknown *pdisp, PyTypeObject *ptype):
  5548. +   PyIUnknown(pdisp, ptype)
  5549.  {
  5550. -   ob_type = &type;
  5551.  }
  5552.  
  5553.  PyIShellIconOverlayManager::~PyIShellIconOverlayManager()
  5554. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellIconOverlayManager.h
  5555. --- a/com/win32comext/shell/src/PyIShellIconOverlayManager.h    Mon Sep 10 17:23:43 2012 -0400
  5556. +++ b/com/win32comext/shell/src/PyIShellIconOverlayManager.h    Mon Sep 17 20:02:58 2012 +0200
  5557. @@ -19,7 +19,7 @@
  5558.     static PyObject *OverlayIndexFromImageIndex(PyObject *self, PyObject *args);
  5559.  
  5560.  protected:
  5561. -   PyIShellIconOverlayManager(IUnknown *pdisp);
  5562. +   PyIShellIconOverlayManager(IUnknown *pdisp, PyTypeObject *ptype);
  5563.     ~PyIShellIconOverlayManager();
  5564.  };
  5565.  // ---------------------------------------------------
  5566. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellItem.cpp
  5567. --- a/com/win32comext/shell/src/PyIShellItem.cpp    Mon Sep 10 17:23:43 2012 -0400
  5568. +++ b/com/win32comext/shell/src/PyIShellItem.cpp    Mon Sep 17 20:02:58 2012 +0200
  5569. @@ -9,10 +9,9 @@
  5570.  //
  5571.  // Interface Implementation
  5572.  
  5573. -PyIShellItem::PyIShellItem(IUnknown *pdisp):
  5574. -   PyIUnknown(pdisp)
  5575. +PyIShellItem::PyIShellItem(IUnknown *pdisp, PyTypeObject *ptype):
  5576. +   PyIUnknown(pdisp, ptype)
  5577.  {
  5578. -   ob_type = &type;
  5579.  }
  5580.  
  5581.  PyIShellItem::~PyIShellItem()
  5582. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellItem.h
  5583. --- a/com/win32comext/shell/src/PyIShellItem.h  Mon Sep 10 17:23:43 2012 -0400
  5584. +++ b/com/win32comext/shell/src/PyIShellItem.h  Mon Sep 17 20:02:58 2012 +0200
  5585. @@ -19,7 +19,7 @@
  5586.     static PyObject *Compare(PyObject *self, PyObject *args);
  5587.  
  5588.  protected:
  5589. -   PyIShellItem(IUnknown *pdisp);
  5590. +   PyIShellItem(IUnknown *pdisp, PyTypeObject *ptype);
  5591.     ~PyIShellItem();
  5592.  };
  5593.  // ---------------------------------------------------
  5594. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellItemArray.cpp
  5595. --- a/com/win32comext/shell/src/PyIShellItemArray.cpp   Mon Sep 10 17:23:43 2012 -0400
  5596. +++ b/com/win32comext/shell/src/PyIShellItemArray.cpp   Mon Sep 17 20:02:58 2012 +0200
  5597. @@ -9,10 +9,9 @@
  5598.  //
  5599.  // Interface Implementation
  5600.  
  5601. -PyIShellItemArray::PyIShellItemArray(IUnknown *pdisp):
  5602. -   PyIUnknown(pdisp)
  5603. +PyIShellItemArray::PyIShellItemArray(IUnknown *pdisp, PyTypeObject *ptype):
  5604. +   PyIUnknown(pdisp, ptype)
  5605.  {
  5606. -   ob_type = &type;
  5607.  }
  5608.  
  5609.  PyIShellItemArray::~PyIShellItemArray()
  5610. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellItemArray.h
  5611. --- a/com/win32comext/shell/src/PyIShellItemArray.h Mon Sep 10 17:23:43 2012 -0400
  5612. +++ b/com/win32comext/shell/src/PyIShellItemArray.h Mon Sep 17 20:02:58 2012 +0200
  5613. @@ -21,7 +21,7 @@
  5614.     static PyObject *EnumItems(PyObject *self, PyObject *args);
  5615.  
  5616.  protected:
  5617. -   PyIShellItemArray(IUnknown *pdisp);
  5618. +   PyIShellItemArray(IUnknown *pdisp, PyTypeObject *ptype);
  5619.     ~PyIShellItemArray();
  5620.  };
  5621.  // ---------------------------------------------------
  5622. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellLink.cpp
  5623. --- a/com/win32comext/shell/src/PyIShellLink.cpp    Mon Sep 10 17:23:43 2012 -0400
  5624. +++ b/com/win32comext/shell/src/PyIShellLink.cpp    Mon Sep 17 20:02:58 2012 +0200
  5625. @@ -12,10 +12,9 @@
  5626.  //
  5627.  // Interface Implementation
  5628.  
  5629. -PyIShellLink::PyIShellLink(IUnknown *pdisp):
  5630. -   PyIUnknown(pdisp)
  5631. +PyIShellLink::PyIShellLink(IUnknown *pdisp, PyTypeObject *ptype):
  5632. +   PyIUnknown(pdisp, ptype)
  5633.  {
  5634. -   ob_type = &type;
  5635.  }
  5636.  
  5637.  PyIShellLink::~PyIShellLink()
  5638. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellLink.h
  5639. --- a/com/win32comext/shell/src/PyIShellLink.h  Mon Sep 10 17:23:43 2012 -0400
  5640. +++ b/com/win32comext/shell/src/PyIShellLink.h  Mon Sep 17 20:02:58 2012 +0200
  5641. @@ -32,7 +32,7 @@
  5642.     static PyObject *SetPath(PyObject *self, PyObject *args);
  5643.  
  5644.  protected:
  5645. -   PyIShellLink(IUnknown *pdisp);
  5646. +   PyIShellLink(IUnknown *pdisp, PyTypeObject *ptype);
  5647.     ~PyIShellLink();
  5648.  };
  5649.  // ---------------------------------------------------
  5650. @@ -114,4 +114,4 @@
  5651.         LPCSTR pszFile);
  5652.  
  5653.  };
  5654. -****/
  5655. \ No newline at end of file
  5656. +****/
  5657. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellLinkDataList.cpp
  5658. --- a/com/win32comext/shell/src/PyIShellLinkDataList.cpp    Mon Sep 10 17:23:43 2012 -0400
  5659. +++ b/com/win32comext/shell/src/PyIShellLinkDataList.cpp    Mon Sep 17 20:02:58 2012 +0200
  5660. @@ -2,10 +2,9 @@
  5661.  #include "shell_pch.h"
  5662.  #include "PyIShellLinkDataList.h"
  5663.  
  5664. -PyIShellLinkDataList::PyIShellLinkDataList(IUnknown *pdisp):
  5665. -   PyIUnknown(pdisp)
  5666. +PyIShellLinkDataList::PyIShellLinkDataList(IUnknown *pdisp, PyTypeObject *ptype):
  5667. +   PyIUnknown(pdisp, ptype)
  5668.  {
  5669. -   ob_type = &type;
  5670.  }
  5671.  
  5672.  PyIShellLinkDataList::~PyIShellLinkDataList()
  5673. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellLinkDataList.h
  5674. --- a/com/win32comext/shell/src/PyIShellLinkDataList.h  Mon Sep 10 17:23:43 2012 -0400
  5675. +++ b/com/win32comext/shell/src/PyIShellLinkDataList.h  Mon Sep 17 20:02:58 2012 +0200
  5676. @@ -13,6 +13,6 @@
  5677.     static PyObject *SetFlags(PyObject *self, PyObject *args);
  5678.  
  5679.  protected:
  5680. -   PyIShellLinkDataList(IUnknown *pdisp);
  5681. +   PyIShellLinkDataList(IUnknown *pdisp, PyTypeObject *ptype);
  5682.     ~PyIShellLinkDataList();
  5683.  };
  5684. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellView.cpp
  5685. --- a/com/win32comext/shell/src/PyIShellView.cpp    Mon Sep 10 17:23:43 2012 -0400
  5686. +++ b/com/win32comext/shell/src/PyIShellView.cpp    Mon Sep 17 20:02:58 2012 +0200
  5687. @@ -10,10 +10,9 @@
  5688.  //
  5689.  // Interface Implementation
  5690.  
  5691. -PyIShellView::PyIShellView(IUnknown *pdisp):
  5692. -   PyIOleWindow(pdisp)
  5693. +PyIShellView::PyIShellView(IUnknown *pdisp, PyTypeObject *ptype):
  5694. +   PyIOleWindow(pdisp, ptype)
  5695.  {
  5696. -   ob_type = &type;
  5697.  }
  5698.  
  5699.  PyIShellView::~PyIShellView()
  5700. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIShellView.h
  5701. --- a/com/win32comext/shell/src/PyIShellView.h  Mon Sep 10 17:23:43 2012 -0400
  5702. +++ b/com/win32comext/shell/src/PyIShellView.h  Mon Sep 17 20:02:58 2012 +0200
  5703. @@ -25,7 +25,7 @@
  5704.     static PyObject *GetItemObject(PyObject *self, PyObject *args);
  5705.  
  5706.  protected:
  5707. -   PyIShellView(IUnknown *pdisp);
  5708. +   PyIShellView(IUnknown *pdisp, PyTypeObject *ptype);
  5709.     ~PyIShellView();
  5710.  };
  5711.  // ---------------------------------------------------
  5712. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIUniformResourceLocator.cpp
  5713. --- a/com/win32comext/shell/src/PyIUniformResourceLocator.cpp   Mon Sep 10 17:23:43 2012 -0400
  5714. +++ b/com/win32comext/shell/src/PyIUniformResourceLocator.cpp   Mon Sep 17 20:02:58 2012 +0200
  5715. @@ -2,10 +2,9 @@
  5716.  #include "shell_pch.h"
  5717.  #include "PyIUniformResourceLocator.h"
  5718.  
  5719. -PyIUniformResourceLocator::PyIUniformResourceLocator(IUnknown *pdisp):
  5720. -   PyIUnknown(pdisp)
  5721. +PyIUniformResourceLocator::PyIUniformResourceLocator(IUnknown *pdisp, PyTypeObject *ptype):
  5722. +   PyIUnknown(pdisp, ptype)
  5723.  {
  5724. -   ob_type = &type;
  5725.  }
  5726.  
  5727.  PyIUniformResourceLocator::~PyIUniformResourceLocator()
  5728. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/shell/src/PyIUniformResourceLocator.h
  5729. --- a/com/win32comext/shell/src/PyIUniformResourceLocator.h Mon Sep 10 17:23:43 2012 -0400
  5730. +++ b/com/win32comext/shell/src/PyIUniformResourceLocator.h Mon Sep 17 20:02:58 2012 +0200
  5731. @@ -12,6 +12,6 @@
  5732.     static PyObject *InvokeCommand(PyObject *self, PyObject *args);
  5733.  
  5734.  protected:
  5735. -   PyIUniformResourceLocator(IUnknown *pdisp);
  5736. +   PyIUniformResourceLocator(IUnknown *pdisp, PyTypeObject *ptype);
  5737.     ~PyIUniformResourceLocator();
  5738.  };
  5739. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/taskscheduler/src/PyIProvideTaskPage.cpp
  5740. --- a/com/win32comext/taskscheduler/src/PyIProvideTaskPage.cpp  Mon Sep 10 17:23:43 2012 -0400
  5741. +++ b/com/win32comext/taskscheduler/src/PyIProvideTaskPage.cpp  Mon Sep 17 20:02:58 2012 +0200
  5742. @@ -9,10 +9,9 @@
  5743.  //
  5744.  // Interface Implementation
  5745.  
  5746. -PyIProvideTaskPage::PyIProvideTaskPage(IUnknown *pdisp):
  5747. -   PyIUnknown(pdisp)
  5748. +PyIProvideTaskPage::PyIProvideTaskPage(IUnknown *pdisp, PyTypeObject *ptype):
  5749. +   PyIUnknown(pdisp, ptype)
  5750.  {
  5751. -   ob_type = &type;
  5752.  }
  5753.  
  5754.  PyIProvideTaskPage::~PyIProvideTaskPage()
  5755. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/taskscheduler/src/PyIProvideTaskPage.h
  5756. --- a/com/win32comext/taskscheduler/src/PyIProvideTaskPage.h    Mon Sep 10 17:23:43 2012 -0400
  5757. +++ b/com/win32comext/taskscheduler/src/PyIProvideTaskPage.h    Mon Sep 17 20:02:58 2012 +0200
  5758. @@ -18,6 +18,6 @@
  5759.     static PyObject *GetPage(PyObject *self, PyObject *args);
  5760.  
  5761.  protected:
  5762. -   PyIProvideTaskPage(IUnknown *pdisp);
  5763. +   PyIProvideTaskPage(IUnknown *pdisp, PyTypeObject *ptype);
  5764.     ~PyIProvideTaskPage();
  5765.  };
  5766. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/taskscheduler/src/PyIScheduledWorkItem.cpp
  5767. --- a/com/win32comext/taskscheduler/src/PyIScheduledWorkItem.cpp    Mon Sep 10 17:23:43 2012 -0400
  5768. +++ b/com/win32comext/taskscheduler/src/PyIScheduledWorkItem.cpp    Mon Sep 17 20:02:58 2012 +0200
  5769. @@ -8,10 +8,9 @@
  5770.  //
  5771.  // Interface Implementation
  5772.  
  5773. -PyIScheduledWorkItem::PyIScheduledWorkItem(IUnknown *pdisp):
  5774. -   PyIUnknown(pdisp)
  5775. +PyIScheduledWorkItem::PyIScheduledWorkItem(IUnknown *pdisp, PyTypeObject *ptype):
  5776. +   PyIUnknown(pdisp, ptype)
  5777.  {
  5778. -   ob_type = &type;
  5779.  }
  5780.  
  5781.  PyIScheduledWorkItem::~PyIScheduledWorkItem()
  5782. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/taskscheduler/src/PyIScheduledWorkItem.h
  5783. --- a/com/win32comext/taskscheduler/src/PyIScheduledWorkItem.h  Mon Sep 10 17:23:43 2012 -0400
  5784. +++ b/com/win32comext/taskscheduler/src/PyIScheduledWorkItem.h  Mon Sep 17 20:02:58 2012 +0200
  5785. @@ -46,6 +46,6 @@
  5786.     static PyObject *GetAccountInformation(PyObject *self, PyObject *args);
  5787.  
  5788.  protected:
  5789. -   PyIScheduledWorkItem(IUnknown *pdisp);
  5790. +   PyIScheduledWorkItem(IUnknown *pdisp, PyTypeObject *ptype);
  5791.     ~PyIScheduledWorkItem();
  5792.  };
  5793. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/taskscheduler/src/PyITask.cpp
  5794. --- a/com/win32comext/taskscheduler/src/PyITask.cpp Mon Sep 10 17:23:43 2012 -0400
  5795. +++ b/com/win32comext/taskscheduler/src/PyITask.cpp Mon Sep 17 20:02:58 2012 +0200
  5796. @@ -8,10 +8,9 @@
  5797.  //
  5798.  // Interface Implementation
  5799.  
  5800. -PyITask::PyITask(IUnknown *pdisp):
  5801. -   PyIScheduledWorkItem(pdisp)
  5802. +PyITask::PyITask(IUnknown *pdisp, PyTypeObject *ptype):
  5803. +   PyIScheduledWorkItem(pdisp, ptype)
  5804.  {
  5805. -   ob_type = &type;
  5806.  }
  5807.  
  5808.  PyITask::~PyITask()
  5809. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/taskscheduler/src/PyITask.h
  5810. --- a/com/win32comext/taskscheduler/src/PyITask.h   Mon Sep 10 17:23:43 2012 -0400
  5811. +++ b/com/win32comext/taskscheduler/src/PyITask.h   Mon Sep 17 20:02:58 2012 +0200
  5812. @@ -27,6 +27,6 @@
  5813.     static PyObject *GetMaxRunTime(PyObject *self, PyObject *args);
  5814.  
  5815.  protected:
  5816. -   PyITask(IUnknown *pdisp);
  5817. +   PyITask(IUnknown *pdisp, PyTypeObject *ptype);
  5818.     ~PyITask();
  5819.  };
  5820. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/taskscheduler/src/PyITaskScheduler.cpp
  5821. --- a/com/win32comext/taskscheduler/src/PyITaskScheduler.cpp    Mon Sep 10 17:23:43 2012 -0400
  5822. +++ b/com/win32comext/taskscheduler/src/PyITaskScheduler.cpp    Mon Sep 17 20:02:58 2012 +0200
  5823. @@ -19,10 +19,9 @@
  5824.     return PyWinObject_AsWCHAR(ob,ppwchar,FALSE);
  5825.  }
  5826.  
  5827. -PyITaskScheduler::PyITaskScheduler(IUnknown *pdisp):
  5828. -   PyIUnknown(pdisp)
  5829. +PyITaskScheduler::PyITaskScheduler(IUnknown *pdisp, PyTypeObject *ptype):
  5830. +   PyIUnknown(pdisp, ptype)
  5831.  {
  5832. -   ob_type = &type;
  5833.  }
  5834.  
  5835.  PyITaskScheduler::~PyITaskScheduler()
  5836. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/taskscheduler/src/PyITaskScheduler.h
  5837. --- a/com/win32comext/taskscheduler/src/PyITaskScheduler.h  Mon Sep 10 17:23:43 2012 -0400
  5838. +++ b/com/win32comext/taskscheduler/src/PyITaskScheduler.h  Mon Sep 17 20:02:58 2012 +0200
  5839. @@ -24,6 +24,6 @@
  5840.     static PyObject *IsOfType(PyObject *self, PyObject *args);
  5841.  
  5842.  protected:
  5843. -   PyITaskScheduler(IUnknown *pdisp);
  5844. +   PyITaskScheduler(IUnknown *pdisp, PyTypeObject *ptype);
  5845.     ~PyITaskScheduler();
  5846.  };
  5847. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/taskscheduler/src/PyITaskTrigger.cpp
  5848. --- a/com/win32comext/taskscheduler/src/PyITaskTrigger.cpp  Mon Sep 10 17:23:43 2012 -0400
  5849. +++ b/com/win32comext/taskscheduler/src/PyITaskTrigger.cpp  Mon Sep 17 20:02:58 2012 +0200
  5850. @@ -8,10 +8,9 @@
  5851.  //
  5852.  // Interface Implementation
  5853.  
  5854. -PyITaskTrigger::PyITaskTrigger(IUnknown *pdisp):
  5855. -   PyIUnknown(pdisp)
  5856. +PyITaskTrigger::PyITaskTrigger(IUnknown *pdisp, PyTypeObject *ptype):
  5857. +   PyIUnknown(pdisp, ptype)
  5858.  {
  5859. -   ob_type = &type;
  5860.  }
  5861.  
  5862.  PyITaskTrigger::~PyITaskTrigger()
  5863. @@ -177,19 +176,16 @@
  5864.  
  5865.  PyTASK_TRIGGER::PyTASK_TRIGGER(PTASK_TRIGGER ptt)
  5866.  {
  5867. -   ob_type = &PyTASK_TRIGGERType;
  5868.     task_trigger=*ptt;
  5869.     task_trigger.cbTriggerSize=sizeof(TASK_TRIGGER);
  5870. -   _Py_NewReference(this);
  5871. +   PyObject_Init(this, &PyTASK_TRIGGERType);
  5872.  }
  5873.  
  5874.  PyTASK_TRIGGER::PyTASK_TRIGGER(void)
  5875.  {
  5876. -   ob_type =  &PyTASK_TRIGGERType;
  5877. -   // ob_type->tp_members=PyTASK_TRIGGER::memberdef;
  5878.     ZeroMemory(&task_trigger,sizeof(TASK_TRIGGER));
  5879.     task_trigger.cbTriggerSize=sizeof(TASK_TRIGGER);
  5880. -   _Py_NewReference(this);
  5881. +   PyObject_Init(this, &PyTASK_TRIGGERType);
  5882.  }
  5883.  
  5884.  PyTASK_TRIGGER::~PyTASK_TRIGGER()
  5885. diff -r 977f4f21ae8b -r 2a1da51e8152 com/win32comext/taskscheduler/src/PyITaskTrigger.h
  5886. --- a/com/win32comext/taskscheduler/src/PyITaskTrigger.h    Mon Sep 10 17:23:43 2012 -0400
  5887. +++ b/com/win32comext/taskscheduler/src/PyITaskTrigger.h    Mon Sep 17 20:02:58 2012 +0200
  5888. @@ -23,7 +23,7 @@
  5889.     static PyObject *GetTriggerString(PyObject *self, PyObject *args);
  5890.  
  5891.  protected:
  5892. -   PyITaskTrigger(IUnknown *pdisp);
  5893. +   PyITaskTrigger(IUnknown *pdisp, PyTypeObject *ptype);
  5894.     ~PyITaskTrigger();
  5895.  
  5896.  };
  5897. diff -r 977f4f21ae8b -r 2a1da51e8152 isapi/src/PyExtensionObjects.cpp
  5898. --- a/isapi/src/PyExtensionObjects.cpp  Mon Sep 10 17:23:43 2012 -0400
  5899. +++ b/isapi/src/PyExtensionObjects.cpp  Mon Sep 17 20:02:58 2012 +0200
  5900. @@ -159,8 +159,7 @@
  5901.  
  5902.  PyVERSION_INFO::PyVERSION_INFO(HSE_VERSION_INFO  *pvi)
  5903.  {
  5904. -   ob_type = &PyVERSION_INFOType;
  5905. -   _Py_NewReference(this);
  5906. +   PyObject_Init(this, &PyVERSION_INFOType);
  5907.     m_pvi = pvi;
  5908.  }
  5909.  
  5910. @@ -322,8 +321,7 @@
  5911.     // @prop bytes|ContentType|Content type of client data
  5912.     // @prop bytes|LogData|log data string
  5913.  {
  5914. -   ob_type = &PyECBType;
  5915. -   _Py_NewReference(this);
  5916. +   PyObject_Init(this, &PyECBType);
  5917.  
  5918.     m_pcb = pcb;
  5919.  
  5920. diff -r 977f4f21ae8b -r 2a1da51e8152 isapi/src/PyFilterObjects.cpp
  5921. --- a/isapi/src/PyFilterObjects.cpp Mon Sep 10 17:23:43 2012 -0400
  5922. +++ b/isapi/src/PyFilterObjects.cpp Mon Sep 17 20:02:58 2012 +0200
  5923. @@ -58,8 +58,7 @@
  5924.  
  5925.  PyFILTER_VERSION::PyFILTER_VERSION(HTTP_FILTER_VERSION *pfv)
  5926.  {
  5927. -   ob_type = &PyFILTER_VERSIONType;
  5928. -   _Py_NewReference(this);
  5929. +   PyObject_Init(this, &PyFILTER_VERSIONType);
  5930.     m_pfv = pfv;
  5931.  }
  5932.  
  5933. @@ -420,8 +419,7 @@
  5934.  
  5935.  PyHFC::PyHFC(CFilterContext* pfc)
  5936.  {
  5937. -   ob_type = &PyHFCType;
  5938. -   _Py_NewReference(this);
  5939. +   PyObject_Init(this, &PyHFCType);
  5940.  
  5941.     m_pfc = pfc;
  5942.  
  5943. @@ -546,8 +544,7 @@
  5944.  
  5945.  PyURL_MAP::PyURL_MAP(PyHFC *pParent)
  5946.  {
  5947. -   ob_type = &PyURL_MAPType;
  5948. -   _Py_NewReference(this);
  5949. +   PyObject_Init(this, &PyURL_MAPType);
  5950.  
  5951.     m_parent = pParent;
  5952.     Py_INCREF(m_parent);
  5953. @@ -740,8 +737,7 @@
  5954.  
  5955.  PyPREPROC_HEADERS::PyPREPROC_HEADERS(PyHFC *pParent)
  5956.  {
  5957. -   ob_type = &PyPREPROC_HEADERSType;
  5958. -   _Py_NewReference(this);
  5959. +   PyObject_Init(this, &PyPREPROC_HEADERSType);
  5960.  
  5961.     m_parent = pParent;
  5962.     Py_INCREF(m_parent);
  5963. @@ -808,8 +804,7 @@
  5964.  
  5965.  PyRAW_DATA::PyRAW_DATA(PyHFC *pParent)
  5966.  {
  5967. -   ob_type = &PyRAW_DATAType;
  5968. -   _Py_NewReference(this);
  5969. +   PyObject_Init(this, &PyRAW_DATAType);
  5970.  
  5971.     m_parent = pParent;
  5972.     Py_INCREF(m_parent);
  5973. @@ -924,8 +919,7 @@
  5974.  
  5975.  PyAUTHENT::PyAUTHENT(PyHFC *pParent)
  5976.  {
  5977. -   ob_type = &PyAUTHENTType;
  5978. -   _Py_NewReference(this);
  5979. +   PyObject_Init(this, &PyAUTHENTType);
  5980.  
  5981.     m_parent = pParent;
  5982.     Py_INCREF(m_parent);
  5983. @@ -1055,8 +1049,7 @@
  5984.  
  5985.  PyFILTER_LOG::PyFILTER_LOG(PyHFC *pParent)
  5986.  {
  5987. -   ob_type = &PyFILTER_LOGType;
  5988. -   _Py_NewReference(this);
  5989. +   PyObject_Init(this, &PyFILTER_LOGType);
  5990.  
  5991.     m_parent = pParent;
  5992.     Py_INCREF(m_parent);
  5993. diff -r 977f4f21ae8b -r 2a1da51e8152 setup.py
  5994. --- a/setup.py  Mon Sep 10 17:23:43 2012 -0400
  5995. +++ b/setup.py  Mon Sep 17 20:02:58 2012 +0200
  5996. @@ -1418,6 +1418,7 @@
  5997.              # build for any platform sees these as dirty.
  5998.              # This could probably go once we generate .cpp into the temp dir.
  5999.              fqsource = os.path.abspath(source)
  6000. +            fqheader = os.path.splitext(fqsource)[0] + ".h"
  6001.              fqtarget = os.path.abspath(target)
  6002.              rebuild = self.force or (ext and newer_group(ext.swig_deps + [fqsource], fqtarget))
  6003.              log.debug("should swig %s->%s=%s", source, target, rebuild)
  6004. @@ -1431,11 +1432,36 @@
  6005.                      self.spawn(swig_cmd)
  6006.                  finally:
  6007.                      os.chdir(cwd)
  6008. +
  6009. +                self.hack_swig_header(fqheader)
  6010.              else:
  6011.                  log.info("skipping swig of %s", source)
  6012.  
  6013.          return new_sources
  6014.  
  6015. +    def hack_swig_header(self, filename):
  6016. +        # XXX modify the generated header, until I know how to modify the
  6017. +        # compiled swig.exe shipped with pywin32 source files.
  6018. +
  6019. +        # Match lines like:      "    PyIMessage(IUnknown *);"
  6020. +        # and replace them with: "    PyIMessage(IUnknown *, PyTypeObject *);"
  6021. +        lines = open(filename).readlines()
  6022. +
  6023. +        constructor = re.compile("\t(PyI\\S+)\\(IUnknown \\*(\\S*)\\);\n")
  6024. +        f = open(filename, "w")
  6025. +        for line in lines:
  6026. +            match = constructor.match(line)
  6027. +            if match:
  6028. +                classname = match.group(1)
  6029. +                varname = match.group(2)
  6030. +                if varname:
  6031. +                    line = "\t%s(IUnknown *%s, PyTypeObject *ptype);\n" % (
  6032. +                        classname, varname)
  6033. +                else:
  6034. +                    line = "\t%s(IUnknown *, PyTypeObject *);\n" % (classname,)
  6035. +            f.write(line)
  6036. +        f.close()
  6037. +
  6038.  class my_install(install):
  6039.      def run(self):
  6040.          install.run(self)
  6041. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/PerfMon/MappingManager.cpp
  6042. --- a/win32/src/PerfMon/MappingManager.cpp  Mon Sep 10 17:23:43 2012 -0400
  6043. +++ b/win32/src/PerfMon/MappingManager.cpp  Mon Sep 17 20:02:58 2012 +0200
  6044. @@ -231,8 +231,7 @@
  6045.  
  6046.  PyPerfMonManager::PyPerfMonManager(void)
  6047.  {
  6048. -   ob_type = &type;
  6049. -   _Py_NewReference(this);
  6050. +   PyObject_Init(this, &type);
  6051.     m_pmm = NULL;
  6052.     m_obPerfObTypes = NULL;
  6053.  }
  6054. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/PerfMon/PerfCounterDefn.cpp
  6055. --- a/win32/src/PerfMon/PerfCounterDefn.cpp Mon Sep 10 17:23:43 2012 -0400
  6056. +++ b/win32/src/PerfMon/PerfCounterDefn.cpp Mon Sep 17 20:02:58 2012 +0200
  6057. @@ -158,8 +158,7 @@
  6058.  
  6059.  PyPERF_COUNTER_DEFINITION::PyPERF_COUNTER_DEFINITION(DWORD counterNameTitleIndex)
  6060.  {
  6061. -   ob_type = &type;
  6062. -   _Py_NewReference(this);
  6063. +   PyObject_Init(this, &type);
  6064.     m_pPCD = NULL;
  6065.     m_DefaultScale = 0;
  6066.     m_DetailLevel = PERF_DETAIL_NOVICE;
  6067. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/PerfMon/PerfObjectType.cpp
  6068. --- a/win32/src/PerfMon/PerfObjectType.cpp  Mon Sep 10 17:23:43 2012 -0400
  6069. +++ b/win32/src/PerfMon/PerfObjectType.cpp  Mon Sep 17 20:02:58 2012 +0200
  6070. @@ -113,8 +113,7 @@
  6071.  
  6072.  PyPERF_OBJECT_TYPE::PyPERF_OBJECT_TYPE(void)
  6073.  {
  6074. -   ob_type = &type;
  6075. -   _Py_NewReference(this);
  6076. +   PyObject_Init(this, &type);
  6077.     m_pPOT = NULL;
  6078.     m_obCounters = NULL;
  6079.     m_obPerfMonManager = NULL;
  6080. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/PyACL.cpp
  6081. --- a/win32/src/PyACL.cpp   Mon Sep 10 17:23:43 2012 -0400
  6082. +++ b/win32/src/PyACL.cpp   Mon Sep 17 20:02:58 2012 +0200
  6083. @@ -1176,8 +1176,7 @@
  6084.  
  6085.  PyACL::PyACL(int createBufSize, int aclrev)
  6086.  {
  6087. -   ob_type = &PyACLType;
  6088. -   _Py_NewReference(this);
  6089. +   PyObject_Init(this, &PyACLType);
  6090.     buf = malloc(createBufSize);
  6091.     memset(buf, 0, createBufSize);
  6092.     ::InitializeAcl((ACL *)buf, createBufSize, aclrev);
  6093. @@ -1185,8 +1184,7 @@
  6094.  
  6095.  PyACL::PyACL(PACL pacl)
  6096.  {
  6097. -   ob_type = &PyACLType;
  6098. -   _Py_NewReference(this);
  6099. +   PyObject_Init(this, &PyACLType);
  6100.     buf = malloc(pacl->AclSize);
  6101.     memcpy(buf, (void *)pacl, pacl->AclSize);  
  6102.  }
  6103. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/PyDEVMODE.cpp
  6104. --- a/win32/src/PyDEVMODE.cpp   Mon Sep 10 17:23:43 2012 -0400
  6105. +++ b/win32/src/PyDEVMODE.cpp   Mon Sep 17 20:02:58 2012 +0200
  6106. @@ -257,7 +257,6 @@
  6107.  
  6108.  PyDEVMODEA::PyDEVMODEA(PDEVMODEA pdm)
  6109.  {
  6110. -   ob_type = &PyDEVMODEAType;
  6111.     memcpy(&devmode, pdm, pdm->dmSize);
  6112.     pdevmode=(PDEVMODEA)malloc(pdm->dmSize + pdm->dmDriverExtra);
  6113.     if (pdevmode==NULL)
  6114. @@ -265,12 +264,11 @@
  6115.         pdm->dmSize + pdm->dmDriverExtra);
  6116.     else
  6117.         memcpy(pdevmode, pdm, pdm->dmSize + pdm->dmDriverExtra);
  6118. -   _Py_NewReference(this);
  6119. +   PyObject_Init(this, &PyDEVMODEAType);
  6120.  }
  6121.  
  6122.  PyDEVMODEA::PyDEVMODEA(void)
  6123.  {
  6124. -   ob_type = &PyDEVMODEAType;
  6125.     static WORD dmSize=sizeof(DEVMODEA);
  6126.     pdevmode=(PDEVMODEA)malloc(dmSize);
  6127.     ZeroMemory(pdevmode,dmSize);
  6128. @@ -279,12 +277,11 @@
  6129.     ZeroMemory(&devmode,dmSize);
  6130.     devmode.dmSize=dmSize;
  6131.     devmode.dmSpecVersion=DM_SPECVERSION;
  6132. -   _Py_NewReference(this);
  6133. +   PyObject_Init(this, &PyDEVMODEAType);
  6134.  }
  6135.  
  6136.  PyDEVMODEA::PyDEVMODEA(USHORT dmDriverExtra)
  6137.  {
  6138. -   ob_type = &PyDEVMODEAType;
  6139.     static WORD dmSize=sizeof(DEVMODEA);
  6140.     pdevmode=(PDEVMODEA)malloc(dmSize+dmDriverExtra);
  6141.     ZeroMemory(pdevmode,dmSize+dmDriverExtra);
  6142. @@ -295,7 +292,7 @@
  6143.     devmode.dmSize=dmSize;
  6144.     devmode.dmSpecVersion=DM_SPECVERSION;
  6145.     devmode.dmDriverExtra=dmDriverExtra;
  6146. -   _Py_NewReference(this);
  6147. +   PyObject_Init(this, &PyDEVMODEAType);
  6148.  }
  6149.  
  6150.  PyDEVMODEA::~PyDEVMODEA()
  6151. @@ -654,7 +651,6 @@
  6152.  
  6153.  PyDEVMODEW::PyDEVMODEW(PDEVMODEW pdm)
  6154.  {
  6155. -   ob_type = &PyDEVMODEWType;
  6156.     memcpy(&devmode, pdm, pdm->dmSize);
  6157.     pdevmode=(PDEVMODEW)malloc(pdm->dmSize + pdm->dmDriverExtra);
  6158.     if (pdevmode==NULL)
  6159. @@ -662,12 +658,11 @@
  6160.             pdm->dmSize + pdm->dmDriverExtra);
  6161.     else
  6162.         memcpy(pdevmode, pdm, pdm->dmSize + pdm->dmDriverExtra);
  6163. -   _Py_NewReference(this);
  6164. +   PyObject_Init(this, &PyDEVMODEWType);
  6165.  }
  6166.  
  6167.  PyDEVMODEW::PyDEVMODEW(void)
  6168.  {
  6169. -   ob_type = &PyDEVMODEWType;
  6170.     static WORD dmSize=sizeof(DEVMODEW);
  6171.     pdevmode=(PDEVMODEW)malloc(dmSize);
  6172.     ZeroMemory(pdevmode,dmSize);
  6173. @@ -676,12 +671,11 @@
  6174.     ZeroMemory(&devmode,dmSize);
  6175.     devmode.dmSize=dmSize;
  6176.     devmode.dmSpecVersion=DM_SPECVERSION;
  6177. -   _Py_NewReference(this);
  6178. +   PyObject_Init(this, &PyDEVMODEWType);
  6179.  }
  6180.  
  6181.  PyDEVMODEW::PyDEVMODEW(USHORT dmDriverExtra)
  6182.  {
  6183. -   ob_type = &PyDEVMODEWType;
  6184.     static WORD dmSize=sizeof(DEVMODEW);
  6185.     pdevmode=(PDEVMODEW)malloc(dmSize+dmDriverExtra);
  6186.     ZeroMemory(pdevmode,dmSize+dmDriverExtra);
  6187. @@ -692,7 +686,7 @@
  6188.     devmode.dmSize=dmSize;
  6189.     devmode.dmSpecVersion=DM_SPECVERSION;
  6190.     devmode.dmDriverExtra=dmDriverExtra;
  6191. -   _Py_NewReference(this);
  6192. +   PyObject_Init(this, &PyDEVMODEWType);
  6193.  }
  6194.  
  6195.  PyDEVMODEW::~PyDEVMODEW()
  6196. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/PyHANDLE.cpp
  6197. --- a/win32/src/PyHANDLE.cpp    Mon Sep 10 17:23:43 2012 -0400
  6198. +++ b/win32/src/PyHANDLE.cpp    Mon Sep 17 20:02:58 2012 +0200
  6199. @@ -202,8 +202,7 @@
  6200.  
  6201.  PyHANDLE::PyHANDLE(HANDLE hInit)
  6202.  {
  6203. -   ob_type = &PyHANDLEType;
  6204. -   _Py_NewReference(this);
  6205. +   PyObject_Init(this, &PyHANDLEType);
  6206.     m_handle = hInit;
  6207.  }
  6208.  
  6209. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/PyIID.cpp
  6210. --- a/win32/src/PyIID.cpp   Mon Sep 10 17:23:43 2012 -0400
  6211. +++ b/win32/src/PyIID.cpp   Mon Sep 17 20:02:58 2012 +0200
  6212. @@ -207,8 +207,7 @@
  6213.  
  6214.  PyIID::PyIID(REFIID riid)
  6215.  {
  6216. -   ob_type = &PyIIDType;
  6217. -   _Py_NewReference(this);
  6218. +   PyObject_Init(this, &PyIIDType);
  6219.     m_iid = riid;
  6220.  }
  6221.  
  6222. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/PyOVERLAPPED.cpp
  6223. --- a/win32/src/PyOVERLAPPED.cpp    Mon Sep 10 17:23:43 2012 -0400
  6224. +++ b/win32/src/PyOVERLAPPED.cpp    Mon Sep 17 20:02:58 2012 +0200
  6225. @@ -120,8 +120,7 @@
  6226.  
  6227.  PyOVERLAPPED::PyOVERLAPPED(void)
  6228.  {
  6229. -   ob_type = &PyOVERLAPPEDType;
  6230. -   _Py_NewReference(this);
  6231. +   PyObject_Init(this, &PyOVERLAPPEDType);
  6232.     memset(&m_overlapped, 0, sizeof(m_overlapped));
  6233.     obDummy = NULL;
  6234.     m_obhEvent = NULL;
  6235. @@ -129,8 +128,7 @@
  6236.  
  6237.  PyOVERLAPPED::PyOVERLAPPED(const sMyOverlapped *pO)
  6238.  {
  6239. -   ob_type = &PyOVERLAPPEDType;
  6240. -   _Py_NewReference(this);
  6241. +   PyObject_Init(this, &PyOVERLAPPEDType);
  6242.     m_overlapped = *pO;
  6243.     Py_XINCREF(m_overlapped.obState);
  6244.     m_obhEvent = NULL;
  6245. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/PySECURITY_ATTRIBUTES.cpp
  6246. --- a/win32/src/PySECURITY_ATTRIBUTES.cpp   Mon Sep 10 17:23:43 2012 -0400
  6247. +++ b/win32/src/PySECURITY_ATTRIBUTES.cpp   Mon Sep 17 20:02:58 2012 +0200
  6248. @@ -125,8 +125,7 @@
  6249.  
  6250.  PySECURITY_ATTRIBUTES::PySECURITY_ATTRIBUTES(void)
  6251.  {
  6252. -   ob_type = &PySECURITY_ATTRIBUTESType;
  6253. -   _Py_NewReference(this);
  6254. +   PyObject_Init(this, &PySECURITY_ATTRIBUTESType);
  6255.     m_sa.nLength = sizeof(SECURITY_ATTRIBUTES);
  6256.     m_obSD = new PySECURITY_DESCRIPTOR(SECURITY_DESCRIPTOR_MIN_LENGTH);
  6257.     m_sa.lpSecurityDescriptor=((PySECURITY_DESCRIPTOR *)m_obSD)->GetSD();
  6258. @@ -142,8 +141,7 @@
  6259.  }
  6260.  PySECURITY_ATTRIBUTES::PySECURITY_ATTRIBUTES(const SECURITY_ATTRIBUTES &sa)
  6261.  {
  6262. -   ob_type = &PySECURITY_ATTRIBUTESType;
  6263. -   _Py_NewReference(this);
  6264. +   PyObject_Init(this, &PySECURITY_ATTRIBUTESType);
  6265.     m_sa = sa;
  6266.     if (sa.lpSecurityDescriptor==NULL){
  6267.         // ???? could change existing behaviour - what happened with a NULL previously ????
  6268. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/PySECURITY_DESCRIPTOR.cpp
  6269. --- a/win32/src/PySECURITY_DESCRIPTOR.cpp   Mon Sep 10 17:23:43 2012 -0400
  6270. +++ b/win32/src/PySECURITY_DESCRIPTOR.cpp   Mon Sep 17 20:02:58 2012 +0200
  6271. @@ -784,8 +784,7 @@
  6272.  
  6273.  PySECURITY_DESCRIPTOR::PySECURITY_DESCRIPTOR(Py_ssize_t cb /*= 0*/)
  6274.  {
  6275. -   ob_type = &PySECURITY_DESCRIPTORType;
  6276. -   _Py_NewReference(this);
  6277. +   PyObject_Init(this, &PySECURITY_DESCRIPTORType);
  6278.     cb = max(cb, SECURITY_DESCRIPTOR_MIN_LENGTH);
  6279.     PSECURITY_DESCRIPTOR psd = malloc(cb);
  6280.     this->m_psd=NULL;
  6281. @@ -796,8 +795,7 @@
  6282.  
  6283.  PySECURITY_DESCRIPTOR::PySECURITY_DESCRIPTOR(PSECURITY_DESCRIPTOR psd)
  6284.  {
  6285. -   ob_type = &PySECURITY_DESCRIPTORType;
  6286. -   _Py_NewReference(this);
  6287. +   PyObject_Init(this, &PySECURITY_DESCRIPTORType);
  6288.     this->m_psd=NULL;
  6289.     this->SetSD(psd);
  6290.  }
  6291. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/PySID.cpp
  6292. --- a/win32/src/PySID.cpp   Mon Sep 10 17:23:43 2012 -0400
  6293. +++ b/win32/src/PySID.cpp   Mon Sep 17 20:02:58 2012 +0200
  6294. @@ -279,8 +279,7 @@
  6295.  
  6296.  PySID::PySID(int bufSize, void *buf /* = NULL */)
  6297.  {
  6298. -   ob_type = &PySIDType;
  6299. -   _Py_NewReference(this);
  6300. +   PyObject_Init(this, &PySIDType);
  6301.     m_psid = (PSID)malloc(bufSize);
  6302.     if (buf==NULL)
  6303.         memset(m_psid, 0, bufSize);
  6304. @@ -290,8 +289,7 @@
  6305.  
  6306.  PySID::PySID(PSID pOther)
  6307.  {
  6308. -   ob_type = &PySIDType;
  6309. -   _Py_NewReference(this);
  6310. +   PyObject_Init(this, &PySIDType);
  6311.     /* always Take my own copy */
  6312.     DWORD size = GetLengthSid(pOther);
  6313.     m_psid = (PSID)malloc(size);
  6314. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/PyTime.cpp
  6315. --- a/win32/src/PyTime.cpp  Mon Sep 10 17:23:43 2012 -0400
  6316. +++ b/win32/src/PyTime.cpp  Mon Sep 17 20:02:58 2012 +0200
  6317. @@ -337,15 +337,13 @@
  6318.  
  6319.  PyTime::PyTime(DATE t)
  6320.  {
  6321. -   ob_type = &PyTimeType;
  6322. -   _Py_NewReference(this);
  6323. +   PyObject_Init(this, &PyTimeType);
  6324.     m_time = t;
  6325.  }
  6326.  
  6327.  PyTime::PyTime(time_t t)
  6328.  {
  6329. -   ob_type = &PyTimeType;
  6330. -   _Py_NewReference(this);
  6331. +   PyObject_Init(this, &PyTimeType);
  6332.     m_time = 0;
  6333.     struct tm *ptm = localtime(&t);
  6334.     if (ptm != NULL) { // otherwise an invalid integer
  6335. @@ -366,8 +364,7 @@
  6336.  
  6337.  PyTime::PyTime(const SYSTEMTIME &t)
  6338.  {
  6339. -   ob_type = &PyTimeType;
  6340. -   _Py_NewReference(this);
  6341. +   PyObject_Init(this, &PyTimeType);
  6342.     m_time = 0;
  6343.     // Not declared as const systemtime -
  6344.     // better not take the chance!
  6345. @@ -377,8 +374,7 @@
  6346.  
  6347.  PyTime::PyTime(const FILETIME &t)
  6348.  {
  6349. -   ob_type = &PyTimeType;
  6350. -   _Py_NewReference(this);
  6351. +   PyObject_Init(this, &PyTimeType);
  6352.     SYSTEMTIME st;
  6353.     m_time = 0;
  6354.     FileTimeToSystemTime(&t, &st);
  6355. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/PyWAVEFORMATEX.cpp
  6356. --- a/win32/src/PyWAVEFORMATEX.cpp  Mon Sep 10 17:23:43 2012 -0400
  6357. +++ b/win32/src/PyWAVEFORMATEX.cpp  Mon Sep 17 20:02:58 2012 +0200
  6358. @@ -96,15 +96,13 @@
  6359.  
  6360.  PyWAVEFORMATEX::PyWAVEFORMATEX(void)
  6361.  {
  6362. -   ob_type = &PyWAVEFORMATEXType;
  6363. -   _Py_NewReference(this);
  6364. +   PyObject_Init(this, &PyWAVEFORMATEXType);
  6365.     memset(&m_wfx, 0, sizeof(m_wfx));
  6366.  }
  6367.  
  6368.  PyWAVEFORMATEX::PyWAVEFORMATEX(const WAVEFORMATEX &wfx)
  6369.  {
  6370. -   ob_type = &PyWAVEFORMATEXType;
  6371. -   _Py_NewReference(this);
  6372. +   PyObject_Init(this, &PyWAVEFORMATEXType);
  6373.     m_wfx = wfx;
  6374.     m_wfx.cbSize = 0;
  6375.  }
  6376. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/odbc.cpp
  6377. --- a/win32/src/odbc.cpp    Mon Sep 10 17:23:43 2012 -0400
  6378. +++ b/win32/src/odbc.cpp    Mon Sep 17 20:02:58 2012 +0200
  6379. @@ -1170,7 +1170,7 @@
  6380.                 rv = 0;
  6381.             else if (PyString_Check(sitem))
  6382.                 rv = ibindString(cur, iCol, sitem);
  6383. -           else if PyUnicode_Check(sitem)
  6384. +           else if (PyUnicode_Check(sitem))
  6385.                 rv = ibindUnicode(cur, iCol, sitem);
  6386.             else{   // Just in case some object doesn't follow the rules
  6387.                 PyErr_Format(PyExc_SystemError, "??? Repr for type '%s' returned type '%s' ???", item->ob_type, sitem->ob_type);
  6388. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/win2krasmodule.cpp
  6389. --- a/win32/src/win2krasmodule.cpp  Mon Sep 10 17:23:43 2012 -0400
  6390. +++ b/win32/src/win2krasmodule.cpp  Mon Sep 17 20:02:58 2012 +0200
  6391. @@ -112,8 +112,7 @@
  6392.  
  6393.  PyRASEAPUSERIDENTITY::PyRASEAPUSERIDENTITY(RASEAPUSERIDENTITY *identity)
  6394.  {
  6395. -   ob_type = &type;
  6396. -   _Py_NewReference(this);
  6397. +   PyObject_Init(this, &type);
  6398.     m_identity = identity;
  6399.  }
  6400.  
  6401. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/win32api_display.cpp
  6402. --- a/win32/src/win32api_display.cpp    Mon Sep 10 17:23:43 2012 -0400
  6403. +++ b/win32/src/win32api_display.cpp    Mon Sep 17 20:02:58 2012 +0200
  6404. @@ -87,20 +87,18 @@
  6405.  
  6406.  PyDISPLAY_DEVICE::PyDISPLAY_DEVICE(PDISPLAY_DEVICE pdd)
  6407.  {
  6408. -   ob_type = &PyDISPLAY_DEVICEType;
  6409.     memcpy(&display_device, pdd, pdd->cb);
  6410.     obdummy=NULL;
  6411. -   _Py_NewReference(this);
  6412. +   PyObject_Init(this, &PyDISPLAY_DEVICEType);
  6413.  }
  6414.  
  6415.  PyDISPLAY_DEVICE::PyDISPLAY_DEVICE(void)
  6416.  {
  6417. -   ob_type = &PyDISPLAY_DEVICEType;
  6418.     static DWORD cb=sizeof(DISPLAY_DEVICE);
  6419.     ZeroMemory(&display_device,cb);
  6420.     display_device.cb=cb;
  6421.     obdummy=NULL;
  6422. -   _Py_NewReference(this);
  6423. +   PyObject_Init(this, &PyDISPLAY_DEVICEType);
  6424.  }
  6425.  
  6426.  PyDISPLAY_DEVICE::~PyDISPLAY_DEVICE()
  6427. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/win32consolemodule.cpp
  6428. --- a/win32/src/win32consolemodule.cpp  Mon Sep 10 17:23:43 2012 -0400
  6429. +++ b/win32/src/win32consolemodule.cpp  Mon Sep 17 20:02:58 2012 +0200
  6430. @@ -220,16 +220,14 @@
  6431.  
  6432.  PySMALL_RECT::PySMALL_RECT(SMALL_RECT *psr)
  6433.  {
  6434. -   ob_type = &PySMALL_RECTType;
  6435.     rect=*psr;
  6436. -   _Py_NewReference(this);
  6437. +   PyObject_Init(this, &PySMALL_RECTType);
  6438.  }
  6439.  
  6440.  PySMALL_RECT::PySMALL_RECT(void)
  6441.  {
  6442. -   ob_type =  &PySMALL_RECTType;
  6443.     ZeroMemory(&rect,sizeof(SMALL_RECT));
  6444. -   _Py_NewReference(this);
  6445. +   PyObject_Init(this, &PySMALL_RECTType);
  6446.  }
  6447.  
  6448.  void PySMALL_RECT::tp_dealloc(PyObject *ob)
  6449. @@ -368,16 +366,14 @@
  6450.  
  6451.  PyCOORD::PyCOORD(COORD *pcoord)
  6452.  {
  6453. -   ob_type = &PyCOORDType;
  6454.     coord=*pcoord;
  6455. -   _Py_NewReference(this);
  6456. +   PyObject_Init(this, &PyCOORDType);
  6457.  }
  6458.  
  6459.  PyCOORD::PyCOORD(void)
  6460.  {
  6461. -   ob_type =  &PyCOORDType;
  6462.     ZeroMemory(&coord,sizeof(COORD));
  6463. -   _Py_NewReference(this);
  6464. +   PyObject_Init(this, &PyCOORDType);
  6465.  }
  6466.  
  6467.  PyCOORD::~PyCOORD()
  6468. @@ -654,7 +650,6 @@
  6469.  PyINPUT_RECORD::PyINPUT_RECORD(WORD EventType)
  6470.  {
  6471.     // EventType can't be changed after object is created
  6472. -   ob_type = &PyINPUT_RECORDType;
  6473.     ZeroMemory(&input_record, sizeof(INPUT_RECORD));
  6474.     input_record.EventType=EventType;
  6475.     // keep a reference to a PyCOORD, used by 2 different types of events
  6476. @@ -662,12 +657,11 @@
  6477.         obcoord=new PyCOORD();
  6478.     else
  6479.         obcoord=NULL;
  6480. -   _Py_NewReference(this);
  6481. +   PyObject_Init(this, &PyINPUT_RECORDType);
  6482.  }
  6483.  
  6484.  PyINPUT_RECORD::PyINPUT_RECORD(INPUT_RECORD *pinput_record)
  6485.  {
  6486. -   ob_type = &PyINPUT_RECORDType;
  6487.     input_record=*pinput_record;
  6488.     if (input_record.EventType==MOUSE_EVENT)
  6489.         obcoord=new PyCOORD(&input_record.Event.MouseEvent.dwMousePosition);
  6490. @@ -675,7 +669,7 @@
  6491.         obcoord=new PyCOORD(&input_record.Event.WindowBufferSizeEvent.dwSize);
  6492.     else
  6493.         obcoord=NULL;
  6494. -   _Py_NewReference(this);
  6495. +   PyObject_Init(this, &PyINPUT_RECORDType);
  6496.  }
  6497.  
  6498.  void PyINPUT_RECORD::tp_dealloc(PyObject *self)
  6499. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/win32evtlog.i
  6500. --- a/win32/src/win32evtlog.i   Mon Sep 10 17:23:43 2012 -0400
  6501. +++ b/win32/src/win32evtlog.i   Mon Sep 17 20:02:58 2012 +0200
  6502. @@ -202,8 +202,7 @@
  6503.  
  6504.  PyEventLogRecord::PyEventLogRecord(EVENTLOGRECORD *pEvt)
  6505.  {
  6506. -   ob_type = &PyEventLogRecordType;
  6507. -   _Py_NewReference(this);
  6508. +   PyObject_Init(this, &PyEventLogRecordType);
  6509.     Reserved = RecordNumber = EventID = ClosingRecordNumber = 0;
  6510.     TimeWritten = TimeGenerated = SourceName = ComputerName = StringInserts = Sids = Data = NULL;
  6511.     EventType = EventCategory = ReservedFlags = 0;
  6512. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/win32file_comm.cpp
  6513. --- a/win32/src/win32file_comm.cpp  Mon Sep 10 17:23:43 2012 -0400
  6514. +++ b/win32/src/win32file_comm.cpp  Mon Sep 17 20:02:58 2012 +0200
  6515. @@ -156,16 +156,14 @@
  6516.  
  6517.  PyDCB::PyDCB(void)
  6518.  {
  6519. -   ob_type = &type;
  6520. -   _Py_NewReference(this);
  6521. +   PyObject_Init(this, &type);
  6522.     memset(&m_DCB, 0, sizeof(m_DCB));
  6523.     m_DCB.DCBlength = sizeof(m_DCB);
  6524.  }
  6525.  
  6526.  PyDCB::PyDCB(const DCB &other)
  6527.  {
  6528. -   ob_type = &type;
  6529. -   _Py_NewReference(this);
  6530. +   PyObject_Init(this, &type);
  6531.     m_DCB = other;
  6532.  }
  6533.  
  6534. @@ -350,15 +348,13 @@
  6535.  
  6536.  PyCOMSTAT::PyCOMSTAT(void)
  6537.  {
  6538. -   ob_type = &type;
  6539. -   _Py_NewReference(this);
  6540. +   PyObject_Init(this, &type);
  6541.     memset(&m_COMSTAT, 0, sizeof(m_COMSTAT));
  6542.  }
  6543.  
  6544.  PyCOMSTAT::PyCOMSTAT(const COMSTAT &other)
  6545.  {
  6546. -   ob_type = &type;
  6547. -   _Py_NewReference(this);
  6548. +   PyObject_Init(this, &type);
  6549.     m_COMSTAT = other;
  6550.  }
  6551.  
  6552. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/win32gui.i
  6553. --- a/win32/src/win32gui.i  Mon Sep 10 17:23:43 2012 -0400
  6554. +++ b/win32/src/win32gui.i  Mon Sep 17 20:02:58 2012 +0200
  6555. @@ -958,8 +958,7 @@
  6556.  
  6557.  PyWNDCLASS::PyWNDCLASS()
  6558.  {
  6559. -   ob_type = &PyWNDCLASSType;
  6560. -   _Py_NewReference(this);
  6561. +   PyObject_Init(this, &PyWNDCLASSType);
  6562.     memset(&m_WNDCLASS, 0, sizeof(m_WNDCLASS));
  6563.     m_WNDCLASS.cbClsExtra = sizeof(PyObject *);
  6564.     m_WNDCLASS.lpfnWndProc = PyWndProcClass;
  6565. @@ -1174,15 +1173,13 @@
  6566.  
  6567.  PyBITMAP::PyBITMAP()
  6568.  {
  6569. -   ob_type = &PyBITMAPType;
  6570. -   _Py_NewReference(this);
  6571. +   PyObject_Init(this, &PyBITMAPType);
  6572.     memset(&m_BITMAP, 0, sizeof(m_BITMAP));
  6573.  }
  6574.  
  6575.  PyBITMAP::PyBITMAP(const BITMAP *pBM)
  6576.  {
  6577. -   ob_type = &PyBITMAPType;
  6578. -   _Py_NewReference(this);
  6579. +   PyObject_Init(this, &PyBITMAPType);
  6580.     memcpy(&m_BITMAP, pBM, sizeof(m_BITMAP));
  6581.  }
  6582.  
  6583. @@ -1314,15 +1311,13 @@
  6584.  
  6585.  PyLOGFONT::PyLOGFONT()
  6586.  {
  6587. -   ob_type = &PyLOGFONTType;
  6588. -   _Py_NewReference(this);
  6589. +   PyObject_Init(this, &PyLOGFONTType);
  6590.     memset(&m_LOGFONT, 0, sizeof(m_LOGFONT));
  6591.  }
  6592.  
  6593.  PyLOGFONT::PyLOGFONT(const LOGFONT *pLF)
  6594.  {
  6595. -   ob_type = &PyLOGFONTType;
  6596. -   _Py_NewReference(this);
  6597. +   PyObject_Init(this, &PyLOGFONTType);
  6598.     memcpy(&m_LOGFONT, pLF, sizeof(m_LOGFONT));
  6599.  }
  6600.  
  6601. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/win32helpmodule.cpp
  6602. --- a/win32/src/win32helpmodule.cpp Mon Sep 10 17:23:43 2012 -0400
  6603. +++ b/win32/src/win32helpmodule.cpp Mon Sep 17 20:02:58 2012 +0200
  6604. @@ -234,8 +234,7 @@
  6605.  
  6606.  PyHH_AKLINK::PyHH_AKLINK()
  6607.  {
  6608. -  ob_type = &PyHH_AKLINKType;
  6609. -  _Py_NewReference(this);
  6610. +  PyObject_Init(this, &PyHH_AKLINKType);
  6611.    memset(&m_HH_AKLINK, 0, sizeof(m_HH_AKLINK));
  6612.  
  6613.    m_HH_AKLINK.cbStruct = sizeof(m_HH_AKLINK);
  6614. @@ -248,8 +247,7 @@
  6615.     strings into the Python object
  6616.  PyHH_AKLINK::PyHH_AKLINK(const HH_AKLINK *pAKLINK)
  6617.  {
  6618. -  ob_type = &PyHH_AKLINKType;
  6619. -  _Py_NewReference(this);
  6620. +  PyObject_Init(this, &PyHH_AKLINKType);
  6621.    memcpy(&m_HH_AKLINK, pAKLINK, sizeof(m_HH_AKLINK));
  6622.  
  6623.    m_pszKeywords = pAKLINK->pszKeywords
  6624. @@ -501,8 +499,7 @@
  6625.  
  6626.  PyHH_FTS_QUERY::PyHH_FTS_QUERY()
  6627.  {
  6628. -  ob_type = &PyHH_FTS_QUERYType;
  6629. -  _Py_NewReference(this);
  6630. +  PyObject_Init(this, &PyHH_FTS_QUERYType);
  6631.    memset(&m_HH_FTS_QUERY, 0, sizeof(m_HH_FTS_QUERY));
  6632.  
  6633.    m_HH_FTS_QUERY.cbStruct = sizeof(m_HH_FTS_QUERY);
  6634. @@ -511,8 +508,7 @@
  6635.  
  6636.  PyHH_FTS_QUERY::PyHH_FTS_QUERY(const HH_FTS_QUERY *pFTS_QUERY)
  6637.  {
  6638. -  ob_type = &PyHH_FTS_QUERYType;
  6639. -  _Py_NewReference(this);
  6640. +  PyObject_Init(this, &PyHH_FTS_QUERYType);
  6641.    memcpy(&m_HH_FTS_QUERY, pFTS_QUERY, sizeof(m_HH_FTS_QUERY));
  6642.  
  6643.    m_pszSearchQuery = pFTS_QUERY->pszSearchQuery
  6644. @@ -764,8 +760,7 @@
  6645.  
  6646.  PyHH_POPUP::PyHH_POPUP()
  6647.  {
  6648. -  ob_type = &PyHH_POPUPType;
  6649. -  _Py_NewReference(this);
  6650. +  PyObject_Init(this, &PyHH_POPUPType);
  6651.    memset(&m_HH_POPUP, 0, sizeof(m_HH_POPUP));
  6652.  
  6653.    m_HH_POPUP.cbStruct = sizeof(m_HH_POPUP);
  6654. @@ -774,8 +769,7 @@
  6655.  
  6656.  PyHH_POPUP::PyHH_POPUP(const HH_POPUP *pPOPUP)
  6657.  {
  6658. -  ob_type = &PyHH_POPUPType;
  6659. -  _Py_NewReference(this);
  6660. +  PyObject_Init(this, &PyHH_POPUPType);
  6661.    memcpy(&m_HH_POPUP, pPOPUP, sizeof(m_HH_POPUP));
  6662.  
  6663.    m_pszText = pPOPUP->pszText
  6664. @@ -1184,16 +1178,14 @@
  6665.  
  6666.  PyHH_WINTYPE::PyHH_WINTYPE()
  6667.  {
  6668. -  ob_type = &PyHH_WINTYPEType;
  6669. -  _Py_NewReference(this);
  6670. +  PyObject_Init(this, &PyHH_WINTYPEType);
  6671.    memset(&m_HH_WINTYPE, 0, sizeof(m_HH_WINTYPE));
  6672.    m_HH_WINTYPE.cbStruct = sizeof(m_HH_WINTYPE);
  6673.  }
  6674.  
  6675.  PyHH_WINTYPE::PyHH_WINTYPE(const HH_WINTYPE *pWINTYPE)
  6676.  {
  6677. -   ob_type = &PyHH_WINTYPEType;
  6678. -   _Py_NewReference(this);
  6679. +   PyObject_Init(this, &PyHH_WINTYPEType);
  6680.     memcpy(&m_HH_WINTYPE, pWINTYPE, sizeof(m_HH_WINTYPE));
  6681.  
  6682.     // as the API doc says: Deep copy the structure to which dwData points
  6683. @@ -1555,15 +1547,13 @@
  6684.  
  6685.  PyNMHDR::PyNMHDR()
  6686.  {
  6687. -  ob_type = &PyNMHDRType;
  6688. -  _Py_NewReference(this);
  6689. +  PyObject_Init(this, &PyNMHDRType);
  6690.    memset(&m_NMHDR, 0, sizeof(m_NMHDR));
  6691.  }
  6692.  
  6693.  PyNMHDR::PyNMHDR(const NMHDR *pNMHDR)
  6694.  {
  6695. -  ob_type = &PyNMHDRType;
  6696. -  _Py_NewReference(this);
  6697. +  PyObject_Init(this, &PyNMHDRType);
  6698.    memcpy(&m_NMHDR, pNMHDR, sizeof(m_NMHDR));
  6699.  }
  6700.  
  6701. @@ -1725,8 +1715,7 @@
  6702.  
  6703.  PyHHN_NOTIFY::PyHHN_NOTIFY()
  6704.  {
  6705. -  ob_type = &PyHHN_NOTIFYType;
  6706. -  _Py_NewReference(this);
  6707. +  PyObject_Init(this, &PyHHN_NOTIFYType);
  6708.    memset(&m_HHN_NOTIFY, 0, sizeof(m_HHN_NOTIFY));
  6709.  
  6710.    m_hdr = m_pszUrl = NULL;
  6711. @@ -1734,8 +1723,7 @@
  6712.  
  6713.  PyHHN_NOTIFY::PyHHN_NOTIFY(const HHN_NOTIFY *pN_NOTIFY)
  6714.  {
  6715. -  ob_type = &PyHHN_NOTIFYType;
  6716. -  _Py_NewReference(this);
  6717. +  PyObject_Init(this, &PyHHN_NOTIFYType);
  6718.    memcpy(&m_HHN_NOTIFY, pN_NOTIFY, sizeof(m_HHN_NOTIFY));
  6719.  
  6720.    m_hdr = new PyNMHDR(&pN_NOTIFY->hdr);
  6721. @@ -1973,8 +1961,7 @@
  6722.  
  6723.  PyHHNTRACK::PyHHNTRACK()
  6724.  {
  6725. -  ob_type = &PyHHNTRACKType;
  6726. -  _Py_NewReference(this);
  6727. +  PyObject_Init(this, &PyHHNTRACKType);
  6728.    memset(&m_HHNTRACK, 0, sizeof(m_HHNTRACK));
  6729.  
  6730.    m_hdr = m_pszCurUrl = m_phhWinType = NULL;
  6731. @@ -1982,8 +1969,7 @@
  6732.  
  6733.  PyHHNTRACK::PyHHNTRACK(const HHNTRACK *pTRACK)
  6734.  {
  6735. -  ob_type = &PyHHNTRACKType;
  6736. -  _Py_NewReference(this);
  6737. +  PyObject_Init(this, &PyHHNTRACKType);
  6738.    memcpy(&m_HHNTRACK, pTRACK, sizeof(m_HHNTRACK));
  6739.  
  6740.    m_hdr = new PyNMHDR(&pTRACK->hdr);
  6741. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/win32net/win32netmisc.cpp
  6742. --- a/win32/src/win32net/win32netmisc.cpp   Mon Sep 10 17:23:43 2012 -0400
  6743. +++ b/win32/src/win32net/win32netmisc.cpp   Mon Sep 17 20:02:58 2012 +0200
  6744. @@ -1400,7 +1400,7 @@
  6745.         kw = ob;
  6746.         args = PyTuple_New(0);
  6747.         BOOL decref_args = (args != 0);
  6748. -   } else if PyTuple_Check(ob) {
  6749. +   } else if (PyTuple_Check(ob)) {
  6750.         kw = NULL;
  6751.         args = ob;
  6752.     } else {
  6753. @@ -1449,7 +1449,7 @@
  6754.         kw = ob;
  6755.         args = PyTuple_New(0);
  6756.         BOOL decref_args = (args != 0);
  6757. -   } else if PyTuple_Check(ob) {
  6758. +   } else if (PyTuple_Check(ob)) {
  6759.         kw = NULL;
  6760.         args = ob;
  6761.     } else {
  6762. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/win32process.i
  6763. --- a/win32/src/win32process.i  Mon Sep 10 17:23:43 2012 -0400
  6764. +++ b/win32/src/win32process.i  Mon Sep 17 20:02:58 2012 +0200
  6765. @@ -158,8 +158,7 @@
  6766.  
  6767.  PySTARTUPINFO::PySTARTUPINFO()
  6768.  {
  6769. -   ob_type = &PySTARTUPINFOType;
  6770. -   _Py_NewReference(this);
  6771. +   PyObject_Init(this, &PySTARTUPINFOType);
  6772.     memset(&m_startupinfo, 0, sizeof(m_startupinfo));
  6773.     m_startupinfo.cb = sizeof(m_startupinfo);
  6774.     m_obStdIn = m_obStdOut = m_obStdErr = NULL;
  6775. @@ -168,8 +167,7 @@
  6776.  
  6777.  PySTARTUPINFO::PySTARTUPINFO(const STARTUPINFO *pSI)
  6778.  {
  6779. -   ob_type = &PySTARTUPINFOType;
  6780. -   _Py_NewReference(this);
  6781. +   PyObject_Init(this, &PySTARTUPINFOType);
  6782.     memcpy(&m_startupinfo, pSI, sizeof(m_startupinfo));
  6783.     m_obStdIn = m_obStdOut = m_obStdErr = NULL;
  6784.     if (pSI->lpDesktop)
  6785. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/win32rasmodule.cpp
  6786. --- a/win32/src/win32rasmodule.cpp  Mon Sep 10 17:23:43 2012 -0400
  6787. +++ b/win32/src/win32rasmodule.cpp  Mon Sep 17 20:02:58 2012 +0200
  6788. @@ -189,8 +189,7 @@
  6789.  
  6790.  PyRASDIALEXTENSIONS::PyRASDIALEXTENSIONS()
  6791.  {
  6792. -   ob_type = &type;
  6793. -   _Py_NewReference(this);
  6794. +   PyObject_Init(this, &type);
  6795.     m_pyeap = Py_None;
  6796.     Py_INCREF(Py_None);
  6797.     memset(&m_ext, 0, sizeof(m_ext));
  6798. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/win32security_sspi.cpp
  6799. --- a/win32/src/win32security_sspi.cpp  Mon Sep 10 17:23:43 2012 -0400
  6800. +++ b/win32/src/win32security_sspi.cpp  Mon Sep 17 20:02:58 2012 +0200
  6801. @@ -131,20 +131,18 @@
  6802.  // Untested !!!!!!
  6803.  PySecBufferDesc::PySecBufferDesc(PSecBufferDesc psecbufferdesc)
  6804.  {
  6805. -   ob_type = &PySecBufferDescType;
  6806.     secbufferdesc=*psecbufferdesc;
  6807.     secbufferdesc.pBuffers=(PSecBuffer)malloc(psecbufferdesc->cBuffers*sizeof(SecBuffer));
  6808.     obBuffers=(PyObject **)malloc(psecbufferdesc->cBuffers*sizeof(PyObject *));
  6809.     if (obBuffers!=NULL)
  6810.         for (ULONG i=0; i<psecbufferdesc->cBuffers; i++)
  6811.             obBuffers[i]=PyWinObject_FromSecBuffer(&psecbufferdesc->pBuffers[i]);
  6812. -   _Py_NewReference(this);
  6813. +   PyObject_Init(this, &PySecBufferDescType);
  6814.  }
  6815.  
  6816.  PySecBufferDesc::PySecBufferDesc(ULONG ulVersion)
  6817.  {
  6818.     DWORD bufsize;
  6819. -   ob_type = &PySecBufferDescType;
  6820.     secbufferdesc.ulVersion=ulVersion;
  6821.     secbufferdesc.cBuffers=0;
  6822.     max_buffers=5;
  6823. @@ -165,7 +163,7 @@
  6824.     else
  6825.         ZeroMemory(secbufferdesc.pBuffers, bufsize);
  6826.  
  6827. -   _Py_NewReference(this);
  6828. +   PyObject_Init(this, &PySecBufferDescType);
  6829.  }
  6830.  
  6831.  PySecBufferDesc::~PySecBufferDesc()
  6832. @@ -355,21 +353,19 @@
  6833.  PySecBuffer::PySecBuffer(PSecBuffer psecbuffer)
  6834.  {
  6835.     maxbufsize=secbuffer.cbBuffer;
  6836. -   ob_type = &PySecBufferType;
  6837.     secbuffer=*psecbuffer;
  6838.     secbuffer.pvBuffer=malloc(psecbuffer->cbBuffer);
  6839.     if (secbuffer.pvBuffer==NULL)
  6840.         PyErr_Format(PyExc_MemoryError, "PySecBuffer::PySecBuffer - cannot allocate buffer of %d bytes", psecbuffer->cbBuffer);
  6841.     else
  6842.         memcpy(secbuffer.pvBuffer, psecbuffer->pvBuffer, psecbuffer->cbBuffer);
  6843. -   _Py_NewReference(this);
  6844. +   PyObject_Init(this, &PySecBufferType);
  6845.  }
  6846.  
  6847.  PySecBuffer::PySecBuffer(ULONG cbBuffer, ULONG BufferType)
  6848.  {
  6849.     obdummy=NULL;
  6850.     maxbufsize=cbBuffer;
  6851. -   ob_type = &PySecBufferType;
  6852.     secbuffer.cbBuffer=cbBuffer;
  6853.     secbuffer.BufferType=BufferType;
  6854.     secbuffer.pvBuffer=malloc(cbBuffer);
  6855. @@ -378,7 +374,7 @@
  6856.         PyErr_Format(PyExc_MemoryError, "PySecBuffer::PySecBuffer - cannot allocate buffer of %d bytes", cbBuffer);
  6857.     else
  6858.         ZeroMemory(secbuffer.pvBuffer, cbBuffer);
  6859. -   _Py_NewReference(this);
  6860. +   PyObject_Init(this, &PySecBufferType);
  6861.  }
  6862.  
  6863.  PySecBuffer::~PySecBuffer()
  6864. @@ -547,17 +543,15 @@
  6865.  
  6866.  PyCtxtHandle::PyCtxtHandle(PCtxtHandle pctxthandle)
  6867.  {
  6868. -   ob_type = &PyCtxtHandleType;
  6869.     ctxthandle=*pctxthandle;
  6870. -   _Py_NewReference(this);
  6871. +   PyObject_Init(this, &PyCtxtHandleType);
  6872.  }
  6873.  
  6874.  
  6875.  PyCtxtHandle::PyCtxtHandle(void)
  6876.  {
  6877. -   ob_type = &PyCtxtHandleType;
  6878.     SecInvalidateHandle(&ctxthandle);
  6879. -   _Py_NewReference(this);
  6880. +   PyObject_Init(this, &PyCtxtHandleType);
  6881.  }
  6882.  
  6883.  PyCtxtHandle::~PyCtxtHandle()
  6884. @@ -1102,17 +1096,15 @@
  6885.  
  6886.  PyCredHandle::PyCredHandle(PCredHandle pcredhandle)
  6887.  {
  6888. -   ob_type = &PyCredHandleType;
  6889.     credhandle=*pcredhandle;
  6890. -   _Py_NewReference(this);
  6891. +   PyObject_Init(this, &PyCredHandleType);
  6892.  }
  6893.  
  6894.  
  6895.  PyCredHandle::PyCredHandle(void)
  6896.  {
  6897. -   ob_type = &PyCredHandleType;
  6898.     SecInvalidateHandle(&credhandle);
  6899. -   _Py_NewReference(this);
  6900. +   PyObject_Init(this, &PyCredHandleType);
  6901.  }
  6902.  
  6903.  PyCredHandle::~PyCredHandle()
  6904. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/win32wnet/PyNCB.cpp
  6905. --- a/win32/src/win32wnet/PyNCB.cpp Mon Sep 10 17:23:43 2012 -0400
  6906. +++ b/win32/src/win32wnet/PyNCB.cpp Mon Sep 17 20:02:58 2012 +0200
  6907. @@ -132,8 +132,7 @@
  6908.  
  6909.  PyNCB::PyNCB()
  6910.  {
  6911. -   ob_type = &PyNCBType;
  6912. -   _Py_NewReference(this);
  6913. +   PyObject_Init(this, &PyNCBType);
  6914.     memset(&m_ncb, 0, sizeof(m_ncb));
  6915.     dwStatus = 0;
  6916.     m_obbuffer = NULL;
  6917. @@ -149,8 +148,7 @@
  6918.  PyNCB::PyNCB(const NCB *pNCB)  // place holder
  6919.  
  6920.  {
  6921. -   ob_type = &PyNCBType;
  6922. -   _Py_NewReference(this);
  6923. +   PyObject_Init(this, &PyNCBType);
  6924.     memset(&m_ncb, 0, sizeof(m_ncb));
  6925.     dwStatus = 0;
  6926.  
  6927. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/win32wnet/PyNetresource.cpp
  6928. --- a/win32/src/win32wnet/PyNetresource.cpp Mon Sep 10 17:23:43 2012 -0400
  6929. +++ b/win32/src/win32wnet/PyNetresource.cpp Mon Sep 17 20:02:58 2012 +0200
  6930. @@ -144,15 +144,13 @@
  6931.  
  6932.  PyNETRESOURCE::PyNETRESOURCE(void)
  6933.  {
  6934. -   ob_type = &PyNETRESOURCEType;
  6935. -   _Py_NewReference(this);
  6936. +   PyObject_Init(this, &PyNETRESOURCEType);
  6937.     memset(&m_nr, 0, sizeof(m_nr));
  6938.  }
  6939.  
  6940.  PyNETRESOURCE::PyNETRESOURCE(const NETRESOURCE *p_nr)
  6941.  {
  6942. -   ob_type = &PyNETRESOURCEType;
  6943. -   _Py_NewReference(this);
  6944. +   PyObject_Init(this, &PyNETRESOURCEType);
  6945.     m_nr=*p_nr;
  6946.  
  6947.     // Copy strings so they can be freed in same way as when set via setattro
  6948. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/wincerapi.i
  6949. --- a/win32/src/wincerapi.i Mon Sep 10 17:23:43 2012 -0400
  6950. +++ b/win32/src/wincerapi.i Mon Sep 17 20:02:58 2012 +0200
  6951. @@ -845,7 +845,7 @@
  6952.     BOOL ok;
  6953.     if (PyHANDLE_Check(obHandle))
  6954.         ok = ((PyCEHANDLE *)obHandle)->Close();
  6955. -   else if PyInt_Check(obHandle) {
  6956. +   else if (PyInt_Check(obHandle)) {
  6957.         PyW32_BEGIN_ALLOW_THREADS
  6958.         long rc = ::CeCloseHandle((HANDLE)PyInt_AsLong(obHandle));
  6959.         PyW32_END_ALLOW_THREADS
  6960. diff -r 977f4f21ae8b -r 2a1da51e8152 win32/src/wincerapi_reg.cpp
  6961. --- a/win32/src/wincerapi_reg.cpp   Mon Sep 10 17:23:43 2012 -0400
  6962. +++ b/win32/src/wincerapi_reg.cpp   Mon Sep 17 20:02:58 2012 +0200
  6963. @@ -43,7 +43,7 @@
  6964.     if (PyHANDLE_Check(obHandle))
  6965.         // Python error already set.
  6966.         ok = ((PyCEHKEY *)obHandle)->Close();
  6967. -   else if PyInt_Check(obHandle) {
  6968. +   else if (PyInt_Check(obHandle)) {
  6969.         PyW32_BEGIN_ALLOW_THREADS
  6970.         long rc = ::CeRegCloseKey((HKEY)PyInt_AsLong(obHandle));
  6971.         PyW32_END_ALLOW_THREADS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement