So after having to resolve issues getting a Python COM class to work, I was curious as to how Python implements and hosts COM classes. It seemed unlikely it would create a DLL so I went looking for a separate process.
Place a Stop in the client code
So we need to adjust the client code, if we place a Stop statement then we can hold the class in limbo and then investigate. Here is the adjusted client code. Run the code and it will Stop on the Stop line (obvs) and it will be highlighted with yellow background.
Option Explicit
Sub Test()
Dim obj As Object
Set obj = CreateObject("SciPyInVBA.QuadEqfactorizer")
Debug.Print obj.greeting
Stop
End Sub
Python COM Class has own pythonw.exe process
So whilst the Excel VBA code was stopped, I used Process Monitor from sysinternals.com to see if Python was launched and I found the following entry with some editing...
"%pythondir%\pythonw.exe" "%pythondir%\lib\site-packages\win32com\server\localserver.py" {CAAA6723-6A89-4BCD-A375-43BF4C06B01B} -Embedding
Where %pythondir% is one of my environment variables, (the full text is given by process monitor by the way).
Focussing on the executable first, pythonw.exe. Googling, I found that pythonw.exe is very much like python.exe with some differences like no console window. A Stack Overflow answer has a good breakdown on further differences.
Python COM Class's pythonw.exe process runs localserver.py
Moving onto the command line parameters we can see that pythonw.exe is running the python script localserver.py, the following parameter is the classid which we defined and the final parameter says -Embedding which I suppose is a reference to OLE (Object Linking and Embedding) which is a COM related technology.
Localserver.py rings a bell, localserver is one of the three hosting patterns for a COM class, they are (i) in-process server, (ii) local server - a separate process on same machine and (iii) remote server - a separate process on a remote machine.
A Python's COM Class Registration in full
This provoke me to look in the registry at thee full details and here is what I found.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{CAAA6723-6A89-4BCD-A375-43BF4C06B01B}]
@="SciPyInVBA.QuadEqFactorizer"
[HKEY_CLASSES_ROOT\CLSID\{CAAA6723-6A89-4BCD-A375-43BF4C06B01B}\Debugging]
@="0"
[HKEY_CLASSES_ROOT\CLSID\{CAAA6723-6A89-4BCD-A375-43BF4C06B01B}\Implemented Categories]
[HKEY_CLASSES_ROOT\CLSID\{CAAA6723-6A89-4BCD-A375-43BF4C06B01B}\Implemented Categories\{B3EF80D0-68E2-11D0-A689-00C04FD658FF}]
[HKEY_CLASSES_ROOT\CLSID\{CAAA6723-6A89-4BCD-A375-43BF4C06B01B}\InprocServer32]
@="pythoncom36.dll"
"ThreadingModel"="both"
[HKEY_CLASSES_ROOT\CLSID\{CAAA6723-6A89-4BCD-A375-43BF4C06B01B}\LocalServer32]
@="C:\\Progra~2\\Micros~4\\Shared\\Python~1\\pythonw.exe \"C:\\Progra~2\\Micros~4\\Shared\\Python~1\\lib\\site-packages\\win32com\\server\\localserver.py\" {CAAA6723-6A89-4BCD-A375-43BF4C06B01B}"
[HKEY_CLASSES_ROOT\CLSID\{CAAA6723-6A89-4BCD-A375-43BF4C06B01B}\ProgID]
@="SciPyInVBA.QuadEqFactorizer"
[HKEY_CLASSES_ROOT\CLSID\{CAAA6723-6A89-4BCD-A375-43BF4C06B01B}\PythonCOM]
@="QuadEqFactorizer.QuadEqFactorizer"
[HKEY_CLASSES_ROOT\CLSID\{CAAA6723-6A89-4BCD-A375-43BF4C06B01B}\PythonCOMPath]
@="C:\\Users\\Simon\\source\\repos\\QuadEqFactorizer\\QuadEqFactorizer"
So Python's COM Class DOES have an In-Process Mode
So the real revelation from the above registry details in that a Python COM Class DOES have an in-process mode as is evidenced by the InprocServer32 key. I said at the top it was unlikely that Python would compiled its own DLL and this is true but it looks like Python has an inprocess DLL that I speculate could run python scripts in-process. I must ask StackOverflow but must try a few things first to show initiative.
Fiddling with the Registry
So I change the registry key called LocalServer32 to LocalServer32_Suspended so as to thwart any attempt down that route and force the COM service control manager to create an in-process component. That didn't work.
So now focusing on the InprocServer32 key. Firstly, it is not a full path so let's see if rectifying that helps. I need to find where it lives within the Visual Studio folders, so using
C:\Program Files (x86)\Microsoft Visual Studio>DIR PYTHONcom36.dll /s
...
Directory of C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\Lib\site-packages\pywin32_system32
02/06/2018 14:26 553,472 pythoncom36.dll
1 File(s) 553,472 bytes
...
So I try changing the InprocServer32 key to C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\Lib\site-packages\pywin32_system32\pythoncom36.dll but it still fails with (429) ActiveX component can't create object.
Next we need to debug the cycle of loading the Dll and finding the entry point of DllGetClassObject. First, I use Dependency Walker to see what pythoncom36.dll is made of, a dump of its exports is given in Appendix A below. The dump shows that pythoncom36.dll exports DllGetClassObject so now we can run experiments to call into that entry point and attempt to create the COM class very low-level.
Ok, after some digging my Excel VBA must be 32-bit and pythoncom36.dll must be 64-bit and so I cannot load the dll in process.
How to tell if an executable is 64-bit
So there are two ways to tell if an executable, exe or dll, is 32-bit or 64-bit. Firstly, use DUMPBIN.exe with the /HEADERS option and the look for machine.
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.12.25827\bin\Hostx86\x86>dumpbin "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\Lib\site-packages\pywin32_system32\pythoncom36.dll" /HEADERS
Microsoft (R) COFF/PE Dumper Version 14.12.25835.0
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\Lib\site-packages\pywin32_system32\pythoncom36.dll
PE signature found
File Type: DLL
FILE HEADER VALUES
8664 machine (x64)
7 number of sections
5A924C75 time date stamp Sun Feb 25 05:41:09 2018
0 file pointer to symbol table
0 number of symbols
F0 size of optional header
2022 characteristics
Executable
Application can handle large (>2GB) addresses
DLL
The second method is to use Depends.exe and look for the 64-bit icon, below is an example ringed in green.
Final Thoughts
So I wonder if it possible to re-run the experiment after having discovered a 32-bit edition of Python. This matters because in-process dlls are faster than cross process calls.
Appendix A - pythoncom36.dll exports dump
This dump was acheived with this blog post and also running the file through undname.exe found in same folder as dumpbin.exe.
Microsoft (R) COFF/PE Dumper Version 14.12.25835.0
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\Lib\site-packages\pywin32_system32\pythoncom36.dll
File Type: DLL
Section contains the following exports for pythoncom36.dll
00000000 characteristics
5A924C75 time date stamp Sun Feb 25 05:41:09 2018
0.00 version
1 ordinal base
459 number of functions
459 number of names
ordinal hint RVA name
3 0 0000A4A0 public: __cdecl CPyFactory::CPyFactory(struct _GUID const & __ptr64) __ptr64
4 1 00002810 public: __cdecl CPyFactory::CPyFactory(class CPyFactory const & __ptr64) __ptr64
5 2 000061F0 public: __cdecl PyComEnumProviderTypeObject::PyComEnumProviderTypeObject(char const * __ptr64,class PyComTypeObject * __ptr64,int,struct PyMethodDef * __ptr64,class PyIUnknown * __ptr64 (__cdecl*)(struct IUnknown * __ptr64),char const * __ptr64) __ptr64
6 3 00006570 public: __cdecl PyComEnumTypeObject::PyComEnumTypeObject(char const * __ptr64,class PyComTypeObject * __ptr64,int,struct PyMethodDef * __ptr64,class PyIUnknown * __ptr64 (__cdecl*)(struct IUnknown * __ptr64)) __ptr64
7 4 00006100 public: __cdecl PyComTypeObject::PyComTypeObject(char const * __ptr64,class PyComTypeObject * __ptr64,int,struct PyMethodDef * __ptr64,class PyIUnknown * __ptr64 (__cdecl*)(struct IUnknown * __ptr64)) __ptr64
8 5 0001CB40 protected: __cdecl PyGOleWindow::PyGOleWindow(struct _object * __ptr64) __ptr64
9 6 0001CB90 public: __cdecl PyGOleWindow::PyGOleWindow(class PyGOleWindow && __ptr64) __ptr64
10 7 0001CC00 public: __cdecl PyGOleWindow::PyGOleWindow(class PyGOleWindow const & __ptr64) __ptr64
11 8 0001CC70 protected: __cdecl PyGPersist::PyGPersist(struct _object * __ptr64) __ptr64
12 9 0001CCC0 public: __cdecl PyGPersist::PyGPersist(class PyGPersist && __ptr64) __ptr64
13 A 0001CD30 public: __cdecl PyGPersist::PyGPersist(class PyGPersist const & __ptr64) __ptr64
14 B 0000A930 protected: __cdecl PyGatewayBase::PyGatewayBase(struct _object * __ptr64) __ptr64
15 C 00002890 public: __cdecl PyGatewayBase::PyGatewayBase(class PyGatewayBase const & __ptr64) __ptr64
16 D 0000C700 protected: __cdecl PyIBase::PyIBase(void) __ptr64
17 E 000028D0 public: __cdecl PyIBase::PyIBase(class PyIBase const & __ptr64) __ptr64
18 F 00025D40 protected: __cdecl PyIBindCtx::PyIBindCtx(struct IUnknown * __ptr64) __ptr64
19 10 0001D170 public: __cdecl PyIBindCtx::PyIBindCtx(class PyIBindCtx const & __ptr64) __ptr64
20 11 0000CBC0 protected: __cdecl PyIClassFactory::PyIClassFactory(struct IUnknown * __ptr64) __ptr64
21 12 000028F0 public: __cdecl PyIClassFactory::PyIClassFactory(class PyIClassFactory const & __ptr64) __ptr64
22 13 00027390 protected: __cdecl PyIConnectionPoint::PyIConnectionPoint(struct IUnknown * __ptr64) __ptr64
23 14 00002930 public: __cdecl PyIConnectionPoint::PyIConnectionPoint(class PyIConnectionPoint const & __ptr64) __ptr64
24 15 000275A0 protected: __cdecl PyIConnectionPointContainer::PyIConnectionPointContainer(struct IUnknown * __ptr64) __ptr64
25 16 00002970 public: __cdecl PyIConnectionPointContainer::PyIConnectionPointContainer(class PyIConnectionPointContainer const & __ptr64) __ptr64
26 17 0000DA80 protected: __cdecl PyIDispatch::PyIDispatch(struct IUnknown * __ptr64) __ptr64
27 18 000029B0 public: __cdecl PyIDispatch::PyIDispatch(class PyIDispatch const & __ptr64) __ptr64
28 19 0000E280 protected: __cdecl PyIDispatchEx::PyIDispatchEx(struct IUnknown * __ptr64) __ptr64
29 1A 000029F0 public: __cdecl PyIDispatchEx::PyIDispatchEx(class PyIDispatchEx const & __ptr64) __ptr64
30 1B 00032850 protected: __cdecl PyIEnumMoniker::PyIEnumMoniker(struct IUnknown * __ptr64) __ptr64
31 1C 0001D1B0 public: __cdecl PyIEnumMoniker::PyIEnumMoniker(class PyIEnumMoniker const & __ptr64) __ptr64
32 1D 00030C20 protected: __cdecl PyIEnumVARIANT::PyIEnumVARIANT(struct IUnknown * __ptr64) __ptr64
33 1E 0001D1F0 public: __cdecl PyIEnumVARIANT::PyIEnumVARIANT(class PyIEnumVARIANT const & __ptr64) __ptr64
34 1F 000331D0 protected: __cdecl PyIMoniker::PyIMoniker(struct IUnknown * __ptr64) __ptr64
35 20 0001D230 public: __cdecl PyIMoniker::PyIMoniker(class PyIMoniker const & __ptr64) __ptr64
36 21 000333A0 protected: __cdecl PyIOleWindow::PyIOleWindow(struct IUnknown * __ptr64) __ptr64
37 22 0001D270 public: __cdecl PyIOleWindow::PyIOleWindow(class PyIOleWindow const & __ptr64) __ptr64
38 23 000335F0 protected: __cdecl PyIPersist::PyIPersist(struct IUnknown * __ptr64) __ptr64
39 24 0001D2B0 public: __cdecl PyIPersist::PyIPersist(class PyIPersist const & __ptr64) __ptr64
40 25 00034BC0 protected: __cdecl PyIPersistStream::PyIPersistStream(struct IUnknown * __ptr64) __ptr64
41 26 0001D2F0 public: __cdecl PyIPersistStream::PyIPersistStream(class PyIPersistStream const & __ptr64) __ptr64
42 27 00034CE0 protected: __cdecl PyIPersistStreamInit::PyIPersistStreamInit(struct IUnknown * __ptr64) __ptr64
43 28 0001D330 public: __cdecl PyIPersistStreamInit::PyIPersistStreamInit(class PyIPersistStreamInit const & __ptr64) __ptr64
44 29 00038F60 protected: __cdecl PyIProvideClassInfo2::PyIProvideClassInfo2(struct IUnknown * __ptr64) __ptr64
45 2A 00002A30 public: __cdecl PyIProvideClassInfo2::PyIProvideClassInfo2(class PyIProvideClassInfo2 const & __ptr64) __ptr64
46 2B 00038E30 protected: __cdecl PyIProvideClassInfo::PyIProvideClassInfo(struct IUnknown * __ptr64) __ptr64
47 2C 00002A70 public: __cdecl PyIProvideClassInfo::PyIProvideClassInfo(class PyIProvideClassInfo const & __ptr64) __ptr64
48 2D 00039670 protected: __cdecl PyIServiceProvider::PyIServiceProvider(struct IUnknown * __ptr64) __ptr64
49 2E 0001D370 public: __cdecl PyIServiceProvider::PyIServiceProvider(class PyIServiceProvider const & __ptr64) __ptr64
50 2F 0003C3C0 protected: __cdecl PyIStream::PyIStream(struct IUnknown * __ptr64) __ptr64
51 30 0001D3B0 public: __cdecl PyIStream::PyIStream(class PyIStream const & __ptr64) __ptr64
52 31 0003CE00 protected: __cdecl PyITypeComp::PyITypeComp(struct IUnknown * __ptr64) __ptr64
53 32 00002AB0 public: __cdecl PyITypeComp::PyITypeComp(class PyITypeComp const & __ptr64) __ptr64
54 33 0003CC50 protected: __cdecl PyITypeInfo::PyITypeInfo(struct IUnknown * __ptr64) __ptr64
55 34 00002AF0 public: __cdecl PyITypeInfo::PyITypeInfo(class PyITypeInfo const & __ptr64) __ptr64
56 35 0003D3E0 protected: __cdecl PyITypeLib::PyITypeLib(struct IUnknown * __ptr64) __ptr64
57 36 00002B30 public: __cdecl PyITypeLib::PyITypeLib(class PyITypeLib const & __ptr64) __ptr64
58 37 0000EC60 protected: __cdecl PyIUnknown::PyIUnknown(struct IUnknown * __ptr64) __ptr64
59 38 00002B70 public: __cdecl PyIUnknown::PyIUnknown(class PyIUnknown const & __ptr64) __ptr64
60 39 00006740 public: __cdecl PyOleArgNotFound::PyOleArgNotFound(void) __ptr64
61 3A 00006700 public: __cdecl PyOleEmpty::PyOleEmpty(void) __ptr64
62 3B 00006720 public: __cdecl PyOleMissing::PyOleMissing(void) __ptr64
63 3C 00006760 public: __cdecl PyOleNothing::PyOleNothing(void) __ptr64
64 3D 00010560 public: __cdecl PySTGMEDIUM::PySTGMEDIUM(struct tagSTGMEDIUM * __ptr64) __ptr64
65 3E 00007500 public: __cdecl PythonOleArgHelper::PythonOleArgHelper(void) __ptr64
66 3F 0000A4D0 public: __cdecl CPyFactory::~CPyFactory(void) __ptr64
67 40 00002BF0 public: __cdecl PyComEnumProviderTypeObject::~PyComEnumProviderTypeObject(void) __ptr64
68 41 00002C00 public: __cdecl PyComEnumTypeObject::~PyComEnumTypeObject(void) __ptr64
69 42 000061C0 public: __cdecl PyComTypeObject::~PyComTypeObject(void) __ptr64
70 43 0001D520 public: virtual __cdecl PyGOleWindow::~PyGOleWindow(void) __ptr64
71 44 0001D530 public: virtual __cdecl PyGPersist::~PyGPersist(void) __ptr64
72 45 0000A990 protected: virtual __cdecl PyGatewayBase::~PyGatewayBase(void) __ptr64
73 46 0000C720 protected: virtual __cdecl PyIBase::~PyIBase(void) __ptr64
74 47 00025D80 protected: virtual __cdecl PyIBindCtx::~PyIBindCtx(void) __ptr64
75 48 0000CC10 protected: virtual __cdecl PyIClassFactory::~PyIClassFactory(void) __ptr64
76 49 000273D0 protected: virtual __cdecl PyIConnectionPoint::~PyIConnectionPoint(void) __ptr64
77 4A 000275E0 protected: virtual __cdecl PyIConnectionPointContainer::~PyIConnectionPointContainer(void) __ptr64
78 4B 0000DAC0 protected: virtual __cdecl PyIDispatch::~PyIDispatch(void) __ptr64
79 4C 0000E2C0 protected: virtual __cdecl PyIDispatchEx::~PyIDispatchEx(void) __ptr64
80 4D 00032890 protected: virtual __cdecl PyIEnumMoniker::~PyIEnumMoniker(void) __ptr64
81 4E 00030C60 protected: virtual __cdecl PyIEnumVARIANT::~PyIEnumVARIANT(void) __ptr64
82 4F 00033210 protected: virtual __cdecl PyIMoniker::~PyIMoniker(void) __ptr64
83 50 000333E0 protected: virtual __cdecl PyIOleWindow::~PyIOleWindow(void) __ptr64
84 51 00033630 protected: virtual __cdecl PyIPersist::~PyIPersist(void) __ptr64
85 52 00034C00 protected: virtual __cdecl PyIPersistStream::~PyIPersistStream(void) __ptr64
86 53 00034D20 protected: virtual __cdecl PyIPersistStreamInit::~PyIPersistStreamInit(void) __ptr64
87 54 00038FA0 protected: virtual __cdecl PyIProvideClassInfo2::~PyIProvideClassInfo2(void) __ptr64
88 55 00038E70 protected: virtual __cdecl PyIProvideClassInfo::~PyIProvideClassInfo(void) __ptr64
89 56 000396B0 protected: virtual __cdecl PyIServiceProvider::~PyIServiceProvider(void) __ptr64
90 57 0003C400 protected: virtual __cdecl PyIStream::~PyIStream(void) __ptr64
91 58 0003CE40 protected: virtual __cdecl PyITypeComp::~PyITypeComp(void) __ptr64
92 59 0003CC90 protected: virtual __cdecl PyITypeInfo::~PyITypeInfo(void) __ptr64
93 5A 0003D420 protected: virtual __cdecl PyITypeLib::~PyITypeLib(void) __ptr64
94 5B 0000ECC0 protected: virtual __cdecl PyIUnknown::~PyIUnknown(void) __ptr64
95 5C 000105B0 public: __cdecl PySTGMEDIUM::~PySTGMEDIUM(void) __ptr64
96 5D 00007530 public: __cdecl PythonOleArgHelper::~PythonOleArgHelper(void) __ptr64
97 5E 00002C10 public: class CPyFactory & __ptr64 __cdecl CPyFactory::operator=(class CPyFactory const & __ptr64) __ptr64
98 5F 00002C90 public: class PyComEnumProviderTypeObject & __ptr64 __cdecl PyComEnumProviderTypeObject::operator=(class PyComEnumProviderTypeObject && __ptr64) __ptr64
99 60 00002D20 public: class PyComEnumProviderTypeObject & __ptr64 __cdecl PyComEnumProviderTypeObject::operator=(class PyComEnumProviderTypeObject const & __ptr64) __ptr64
100 61 00002DA0 public: class PyComEnumTypeObject & __ptr64 __cdecl PyComEnumTypeObject::operator=(class PyComEnumTypeObject && __ptr64) __ptr64
101 62 00002E20 public: class PyComEnumTypeObject & __ptr64 __cdecl PyComEnumTypeObject::operator=(class PyComEnumTypeObject const & __ptr64) __ptr64
102 63 00002EA0 public: class PyComTypeObject & __ptr64 __cdecl PyComTypeObject::operator=(class PyComTypeObject const & __ptr64) __ptr64
103 64 0001D650 public: class PyGOleWindow & __ptr64 __cdecl PyGOleWindow::operator=(class PyGOleWindow && __ptr64) __ptr64
104 65 0001D670 public: class PyGOleWindow & __ptr64 __cdecl PyGOleWindow::operator=(class PyGOleWindow const & __ptr64) __ptr64
105 66 0001D690 public: class PyGPersist & __ptr64 __cdecl PyGPersist::operator=(class PyGPersist && __ptr64) __ptr64
106 67 0001D6B0 public: class PyGPersist & __ptr64 __cdecl PyGPersist::operator=(class PyGPersist const & __ptr64) __ptr64
107 68 00002F20 public: class PyGatewayBase & __ptr64 __cdecl PyGatewayBase::operator=(class PyGatewayBase const & __ptr64) __ptr64
108 69 00002F40 public: class PyIBase & __ptr64 __cdecl PyIBase::operator=(class PyIBase const & __ptr64) __ptr64
109 6A 0001D6D0 public: class PyIBindCtx & __ptr64 __cdecl PyIBindCtx::operator=(class PyIBindCtx const & __ptr64) __ptr64
110 6B 00002F70 public: class PyIClassFactory & __ptr64 __cdecl PyIClassFactory::operator=(class PyIClassFactory const & __ptr64) __ptr64
111 6C 00002FB0 public: class PyIConnectionPoint & __ptr64 __cdecl PyIConnectionPoint::operator=(class PyIConnectionPoint const & __ptr64) __ptr64
112 6D 00002FF0 public: class PyIConnectionPointContainer & __ptr64 __cdecl PyIConnectionPointContainer::operator=(class PyIConnectionPointContainer const & __ptr64) __ptr64
113 6E 00003030 public: class PyIDispatch & __ptr64 __cdecl PyIDispatch::operator=(class PyIDispatch const & __ptr64) __ptr64
114 6F 00003070 public: class PyIDispatchEx & __ptr64 __cdecl PyIDispatchEx::operator=(class PyIDispatchEx const & __ptr64) __ptr64
115 70 0001D710 public: class PyIEnumMoniker & __ptr64 __cdecl PyIEnumMoniker::operator=(class PyIEnumMoniker const & __ptr64) __ptr64
116 71 0001D750 public: class PyIEnumVARIANT & __ptr64 __cdecl PyIEnumVARIANT::operator=(class PyIEnumVARIANT const & __ptr64) __ptr64
117 72 0001D790 public: class PyIMoniker & __ptr64 __cdecl PyIMoniker::operator=(class PyIMoniker const & __ptr64) __ptr64
118 73 0001D7D0 public: class PyIOleWindow & __ptr64 __cdecl PyIOleWindow::operator=(class PyIOleWindow const & __ptr64) __ptr64
119 74 0001D810 public: class PyIPersist & __ptr64 __cdecl PyIPersist::operator=(class PyIPersist const & __ptr64) __ptr64
120 75 0001D850 public: class PyIPersistStream & __ptr64 __cdecl PyIPersistStream::operator=(class PyIPersistStream const & __ptr64) __ptr64
121 76 0001D890 public: class PyIPersistStreamInit & __ptr64 __cdecl PyIPersistStreamInit::operator=(class PyIPersistStreamInit const & __ptr64) __ptr64
122 77 000030B0 public: class PyIProvideClassInfo2 & __ptr64 __cdecl PyIProvideClassInfo2::operator=(class PyIProvideClassInfo2 const & __ptr64) __ptr64
123 78 000030F0 public: class PyIProvideClassInfo & __ptr64 __cdecl PyIProvideClassInfo::operator=(class PyIProvideClassInfo const & __ptr64) __ptr64
124 79 0001D8D0 public: class PyIServiceProvider & __ptr64 __cdecl PyIServiceProvider::operator=(class PyIServiceProvider const & __ptr64) __ptr64
125 7A 0001D910 public: class PyIStream & __ptr64 __cdecl PyIStream::operator=(class PyIStream const & __ptr64) __ptr64
126 7B 00003130 public: class PyITypeComp & __ptr64 __cdecl PyITypeComp::operator=(class PyITypeComp const & __ptr64) __ptr64
127 7C 00003170 public: class PyITypeInfo & __ptr64 __cdecl PyITypeInfo::operator=(class PyITypeInfo const & __ptr64) __ptr64
128 7D 000031B0 public: class PyITypeLib & __ptr64 __cdecl PyITypeLib::operator=(class PyITypeLib const & __ptr64) __ptr64
129 7E 000031F0 public: class PyIUnknown & __ptr64 __cdecl PyIUnknown::operator=(class PyIUnknown const & __ptr64) __ptr64
130 7F 00003230 public: class PyOleArgNotFound & __ptr64 __cdecl PyOleArgNotFound::operator=(class PyOleArgNotFound && __ptr64) __ptr64
131 80 00003240 public: class PyOleArgNotFound & __ptr64 __cdecl PyOleArgNotFound::operator=(class PyOleArgNotFound const & __ptr64) __ptr64
132 81 00003250 public: class PyOleEmpty & __ptr64 __cdecl PyOleEmpty::operator=(class PyOleEmpty && __ptr64) __ptr64
133 82 00003260 public: class PyOleEmpty & __ptr64 __cdecl PyOleEmpty::operator=(class PyOleEmpty const & __ptr64) __ptr64
134 83 00003270 public: class PyOleMissing & __ptr64 __cdecl PyOleMissing::operator=(class PyOleMissing && __ptr64) __ptr64
135 84 00003280 public: class PyOleMissing & __ptr64 __cdecl PyOleMissing::operator=(class PyOleMissing const & __ptr64) __ptr64
136 85 00003290 public: class PyOleNothing & __ptr64 __cdecl PyOleNothing::operator=(class PyOleNothing && __ptr64) __ptr64
137 86 000032A0 public: class PyOleNothing & __ptr64 __cdecl PyOleNothing::operator=(class PyOleNothing const & __ptr64) __ptr64
138 87 00010EF0 public: class PySTGMEDIUM & __ptr64 __cdecl PySTGMEDIUM::operator=(class PySTGMEDIUM const & __ptr64) __ptr64
139 88 000032B0 public: class PythonOleArgHelper & __ptr64 __cdecl PythonOleArgHelper::operator=(class PythonOleArgHelper const & __ptr64) __ptr64
140 89 00046678 const CPyFactory::`vftable'
141 8A 00054A28 const PyGOleWindow::`vftable'
142 8B 00054938 const PyGOleWindow::`vftable'{for `IDispatchEx'}
143 8C 00054A00 const PyGOleWindow::`vftable'{for `IInternalUnwrapPythonObject'}
144 8D 000549D8 const PyGOleWindow::`vftable'{for `ISupportErrorInfo'}
145 8E 00052670 const PyGPersist::`vftable'
146 8F 00052580 const PyGPersist::`vftable'{for `IDispatchEx'}
147 90 00052648 const PyGPersist::`vftable'{for `IInternalUnwrapPythonObject'}
148 91 00052620 const PyGPersist::`vftable'{for `ISupportErrorInfo'}
149 92 00046588 const PyGatewayBase::`vftable'{for `IDispatchEx'}
150 93 00046650 const PyGatewayBase::`vftable'{for `IInternalUnwrapPythonObject'}
151 94 00046628 const PyGatewayBase::`vftable'{for `ISupportErrorInfo'}
152 95 00046260 const PyIBase::`vftable'
153 96 00052F08 const PyIBindCtx::`vftable'
154 97 00046360 const PyIClassFactory::`vftable'
155 98 000464E0 const PyIConnectionPoint::`vftable'
156 99 00046520 const PyIConnectionPointContainer::`vftable'
157 9A 000462E0 const PyIDispatch::`vftable'
158 9B 00046320 const PyIDispatchEx::`vftable'
159 9C 00052E88 const PyIEnumMoniker::`vftable'
160 9D 00053078 const PyIEnumVARIANT::`vftable'
161 9E 00052EC8 const PyIMoniker::`vftable'
162 9F 000548F8 const PyIOleWindow::`vftable'
163 A0 00052540 const PyIPersist::`vftable'
164 A1 00052AF8 const PyIPersistStream::`vftable'
165 A2 00052C98 const PyIPersistStreamInit::`vftable'
166 A3 000463E0 const PyIProvideClassInfo2::`vftable'
167 A4 000463A0 const PyIProvideClassInfo::`vftable'
168 A5 00053B68 const PyIServiceProvider::`vftable'
169 A6 00052398 const PyIStream::`vftable'
170 A7 00046460 const PyITypeComp::`vftable'
171 A8 00046420 const PyITypeInfo::`vftable'
172 A9 000464A0 const PyITypeLib::`vftable'
173 AA 000462A0 const PyIUnknown::`vftable'
174 AB 00010F10 public: void __cdecl PySTGMEDIUM::`default constructor closure'(void) __ptr64
175 AC 0000A550 public: virtual unsigned long __cdecl CPyFactory::AddRef(void) __ptr64
176 AD 0001EE60 protected: virtual unsigned long __cdecl PyGOleWindow::AddRef(void) __ptr64
177 AE 0001EE90 protected: virtual unsigned long __cdecl PyGPersist::AddRef(void) __ptr64
178 AF 0000AAE0 public: virtual unsigned long __cdecl PyGatewayBase::AddRef(void) __ptr64
179 B0 00027100 public: static struct _object * __ptr64 __cdecl PyIConnectionPoint::Advise(struct _object * __ptr64,struct _object * __ptr64)
180 B1 0003CCC0 public: struct _object * __ptr64 __cdecl PyITypeComp::Bind(wchar_t * __ptr64,unsigned short) __ptr64
181 B2 000328C0 public: static struct _object * __ptr64 __cdecl PyIMoniker::BindToObject(struct _object * __ptr64,struct _object * __ptr64)
182 B3 00032A90 public: static struct _object * __ptr64 __cdecl PyIMoniker::BindToStorage(struct _object * __ptr64,struct _object * __ptr64)
183 B4 0003CD00 public: struct _object * __ptr64 __cdecl PyITypeComp::BindType(wchar_t * __ptr64) __ptr64
184 B5 00032790 public: static struct _object * __ptr64 __cdecl PyIEnumMoniker::Clone(struct _object * __ptr64,struct _object * __ptr64)
185 B6 00030B70 public: static struct _object * __ptr64 __cdecl PyIEnumVARIANT::Clone(struct _object * __ptr64,struct _object * __ptr64)
186 B7 0003C300 public: static struct _object * __ptr64 __cdecl PyIStream::Clone(struct _object * __ptr64,struct _object * __ptr64)
187 B8 00010610 public: void __cdecl PySTGMEDIUM::Close(void) __ptr64
188 B9 0003BE50 public: static struct _object * __ptr64 __cdecl PyIStream::Commit(struct _object * __ptr64,struct _object * __ptr64)
189 BA 00032C60 public: static struct _object * __ptr64 __cdecl PyIMoniker::ComposeWith(struct _object * __ptr64,struct _object * __ptr64)
190 BB 000334C0 protected: virtual long __cdecl PyGOleWindow::ContextSensitiveHelp(int) __ptr64
191 BC 000332E0 public: static struct _object * __ptr64 __cdecl PyIOleWindow::ContextSensitiveHelp(struct _object * __ptr64,struct _object * __ptr64)
192 BD 0003BD40 public: static struct _object * __ptr64 __cdecl PyIStream::CopyTo(struct _object * __ptr64,struct _object * __ptr64)
193 BE 00010650 public: int __cdecl PySTGMEDIUM::CopyTo(struct tagSTGMEDIUM * __ptr64) __ptr64
194 BF 0000A5B0 public: virtual long __cdecl CPyFactory::CreateInstance(struct IUnknown * __ptr64,struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
195 C0 0000C9F0 public: static struct _object * __ptr64 __cdecl PyIClassFactory::CreateInstance(struct _object * __ptr64,struct _object * __ptr64)
196 C1 0000A6E0 protected: long __cdecl CPyFactory::CreateNewPythonInstance(struct _GUID const & __ptr64,struct _GUID const & __ptr64,struct _object * __ptr64 * __ptr64) __ptr64
197 C2 0000B4D0 public: virtual long __cdecl PyGatewayBase::DeleteMemberByDispID(long) __ptr64
198 C3 0000DF40 public: static struct _object * __ptr64 __cdecl PyIDispatchEx::DeleteMemberByDispID(struct _object * __ptr64,struct _object * __ptr64)
199 C4 0000B410 public: virtual long __cdecl PyGatewayBase::DeleteMemberByName(wchar_t * __ptr64,unsigned long) __ptr64
200 C5 0000DE30 public: static struct _object * __ptr64 __cdecl PyIDispatchEx::DeleteMemberByName(struct _object * __ptr64,struct _object * __ptr64)
201 C6 000105F0 public: void __cdecl PySTGMEDIUM::DropOwnership(void) __ptr64
202 C7 00032D70 public: static struct _object * __ptr64 __cdecl PyIMoniker::Enum(struct _object * __ptr64,struct _object * __ptr64)
203 C8 000273F0 public: static struct _object * __ptr64 __cdecl PyIConnectionPointContainer::EnumConnectionPoints(struct _object * __ptr64,struct _object * __ptr64)
204 C9 000272C0 public: static struct _object * __ptr64 __cdecl PyIConnectionPoint::EnumConnections(struct _object * __ptr64,struct _object * __ptr64)
205 CA 00025C80 public: static struct _object * __ptr64 __cdecl PyIBindCtx::EnumObjectParam(struct _object * __ptr64,struct _object * __ptr64)
206 CB 000274C0 public: static struct _object * __ptr64 __cdecl PyIConnectionPointContainer::FindConnectionPoint(struct _object * __ptr64,struct _object * __ptr64)
207 CC 00025790 public: static struct _object * __ptr64 __cdecl PyIBindCtx::GetBindOptions(struct _object * __ptr64,struct _object * __ptr64)
208 CD 00023FD0 protected: virtual long __cdecl PyGPersist::GetClassID(struct _GUID * __ptr64) __ptr64
209 CE 00033530 public: static struct _object * __ptr64 __cdecl PyIPersist::GetClassID(struct _object * __ptr64,struct _object * __ptr64)
210 CF 00038D60 public: static struct _object * __ptr64 __cdecl PyIProvideClassInfo::GetClassInfoW(struct _object * __ptr64,struct _object * __ptr64)
211 D0 00026F70 public: static struct _object * __ptr64 __cdecl PyIConnectionPoint::GetConnectionInterface(struct _object * __ptr64,struct _object * __ptr64)
212 D1 00027030 public: static struct _object * __ptr64 __cdecl PyIConnectionPoint::GetConnectionPointContainer(struct _object * __ptr64,struct _object * __ptr64)
213 D2 0003C420 public: struct _object * __ptr64 __cdecl PyITypeInfo::GetContainingTypeLib(void) __ptr64
214 D3 0000B160 public: virtual long __cdecl PyGatewayBase::GetDispID(wchar_t * __ptr64,unsigned long,long * __ptr64) __ptr64
215 D4 0000DAF0 public: static struct _object * __ptr64 __cdecl PyIDispatchEx::GetDispID(struct _object * __ptr64,struct _object * __ptr64)
216 D5 00032FB0 public: static struct _object * __ptr64 __cdecl PyIMoniker::GetDisplayName(struct _object * __ptr64,struct _object * __ptr64)
217 D6 0003C500 public: struct _object * __ptr64 __cdecl PyITypeInfo::GetDocumentation(long) __ptr64
218 D7 0003CF90 public: struct _object * __ptr64 __cdecl PyITypeLib::GetDocumentation(int) __ptr64
219 D8 0003C7D0 public: struct _object * __ptr64 __cdecl PyITypeInfo::GetFuncDesc(int) __ptr64
220 D9 00038EA0 public: static struct _object * __ptr64 __cdecl PyIProvideClassInfo2::GetGUID(struct _object * __ptr64,struct _object * __ptr64)
221 DA 000256C0 public: static struct IBindCtx * __ptr64 __cdecl PyIBindCtx::GetI(struct _object * __ptr64)
222 DB 0000C9E0 public: static struct IClassFactory * __ptr64 __cdecl PyIClassFactory::GetI(struct _object * __ptr64)
223 DC 00026F60 public: static struct IConnectionPoint * __ptr64 __cdecl PyIConnectionPoint::GetI(struct _object * __ptr64)
224 DD 000273E0 public: static struct IConnectionPointContainer * __ptr64 __cdecl PyIConnectionPointContainer::GetI(struct _object * __ptr64)
225 DE 0000CC40 public: static struct IDispatch * __ptr64 __cdecl PyIDispatch::GetI(struct _object * __ptr64)
226 DF 0000DAE0 public: static struct IDispatchEx * __ptr64 __cdecl PyIDispatchEx::GetI(struct _object * __ptr64)
227 E0 00032420 public: static struct IEnumMoniker * __ptr64 __cdecl PyIEnumMoniker::GetI(struct _object * __ptr64)
228 E1 00030830 public: static struct IEnumVARIANT * __ptr64 __cdecl PyIEnumVARIANT::GetI(struct _object * __ptr64)
229 E2 000328B0 public: static struct IMoniker * __ptr64 __cdecl PyIMoniker::GetI(struct _object * __ptr64)
230 E3 00033220 public: static struct IOleWindow * __ptr64 __cdecl PyIOleWindow::GetI(struct _object * __ptr64)
231 E4 00033520 public: static struct IPersist * __ptr64 __cdecl PyIPersist::GetI(struct _object * __ptr64)
232 E5 00034860 public: static struct IPersistStream * __ptr64 __cdecl PyIPersistStream::GetI(struct _object * __ptr64)
233 E6 00034C10 public: static struct IPersistStreamInit * __ptr64 __cdecl PyIPersistStreamInit::GetI(struct _object * __ptr64)
234 E7 00038E90 public: static struct IProvideClassInfo2 * __ptr64 __cdecl PyIProvideClassInfo2::GetI(struct _object * __ptr64)
235 E8 00038D50 public: static struct IProvideClassInfo * __ptr64 __cdecl PyIProvideClassInfo::GetI(struct _object * __ptr64)
236 E9 00039560 public: static struct IServiceProvider * __ptr64 __cdecl PyIServiceProvider::GetI(struct _object * __ptr64)
237 EA 0003B980 public: static struct IStream * __ptr64 __cdecl PyIStream::GetI(struct _object * __ptr64)
238 EB 0003CCB0 public: static struct ITypeComp * __ptr64 __cdecl PyITypeComp::GetI(struct _object * __ptr64)
239 EC 0003C410 public: static struct ITypeInfo * __ptr64 __cdecl PyITypeInfo::GetI(struct _object * __ptr64)
240 ED 0003CE60 public: static struct ITypeLib * __ptr64 __cdecl PyITypeLib::GetI(struct _object * __ptr64)
241 EE 0000EA00 public: static struct IUnknown * __ptr64 __cdecl PyIUnknown::GetI(struct _object * __ptr64)
242 EF 0000AEC0 public: virtual long __cdecl PyGatewayBase::GetIDsOfNames(struct _GUID const & __ptr64,wchar_t * __ptr64 * __ptr64,unsigned int,unsigned long,long * __ptr64) __ptr64
243 F0 0000D630 public: static struct _object * __ptr64 __cdecl PyIDispatch::GetIDsOfNames(struct _object * __ptr64,struct _object * __ptr64)
244 F1 0001F330 protected: virtual struct _GUID __cdecl PyGOleWindow::GetIID(void) __ptr64
245 F2 0001F340 protected: virtual struct _GUID __cdecl PyGPersist::GetIID(void) __ptr64
246 F3 00003D70 public: virtual struct _GUID __cdecl PyGatewayBase::GetIID(void) __ptr64
247 F4 0003CB10 public: struct _object * __ptr64 __cdecl PyITypeInfo::GetImplTypeFlags(int) __ptr64
248 F5 0003CE70 public: struct _object * __ptr64 __cdecl PyITypeLib::GetLibAttr(void) __ptr64
249 F6 0000B630 public: virtual long __cdecl PyGatewayBase::GetMemberName(long,wchar_t * __ptr64 * __ptr64) __ptr64
250 F7 0000E0E0 public: static struct _object * __ptr64 __cdecl PyIDispatchEx::GetMemberName(struct _object * __ptr64,struct _object * __ptr64)
251 F8 0000B550 public: virtual long __cdecl PyGatewayBase::GetMemberProperties(long,unsigned long,unsigned long * __ptr64) __ptr64
252 F9 0000E010 public: static struct _object * __ptr64 __cdecl PyIDispatchEx::GetMemberProperties(struct _object * __ptr64,struct _object * __ptr64)
253 FA 0000B7B0 public: virtual long __cdecl PyGatewayBase::GetNameSpaceParent(struct IUnknown * __ptr64 * __ptr64) __ptr64
254 FB 0003C870 public: struct _object * __ptr64 __cdecl PyITypeInfo::GetNames(long) __ptr64
255 FC 0000B6D0 public: virtual long __cdecl PyGatewayBase::GetNextDispID(unsigned long,long,long * __ptr64) __ptr64
256 FD 0000E1B0 public: static struct _object * __ptr64 __cdecl PyIDispatchEx::GetNextDispID(struct _object * __ptr64,struct _object * __ptr64)
257 FE 00025B90 public: static struct _object * __ptr64 __cdecl PyIBindCtx::GetObjectParam(struct _object * __ptr64,struct _object * __ptr64)
258 FF 0003C650 public: struct _object * __ptr64 __cdecl PyITypeInfo::GetRefTypeInfo(unsigned long) __ptr64
259 100 0003C730 public: struct _object * __ptr64 __cdecl PyITypeInfo::GetRefTypeOfImplType(int) __ptr64
260 101 000256D0 public: static struct _object * __ptr64 __cdecl PyIBindCtx::GetRunningObjectTable(struct _object * __ptr64,struct _object * __ptr64)
261 102 00034B00 public: static struct _object * __ptr64 __cdecl PyIPersistStream::GetSizeMax(struct _object * __ptr64,struct _object * __ptr64)
262 103 0003C980 public: struct _object * __ptr64 __cdecl PyITypeInfo::GetTypeAttr(void) __ptr64
263 104 0003CBB0 public: struct _object * __ptr64 __cdecl PyITypeInfo::GetTypeComp(void) __ptr64
264 105 0003D340 public: struct _object * __ptr64 __cdecl PyITypeLib::GetTypeComp(void) __ptr64
265 106 0000ADA0 public: virtual long __cdecl PyGatewayBase::GetTypeInfo(unsigned int,unsigned long,struct ITypeInfo * __ptr64 * __ptr64) __ptr64
266 107 0000D8D0 public: static struct _object * __ptr64 __cdecl PyIDispatch::GetTypeInfo(struct _object * __ptr64,struct _object * __ptr64)
267 108 0003D0E0 public: struct _object * __ptr64 __cdecl PyITypeLib::GetTypeInfo(int) __ptr64
268 109 0000ACF0 public: virtual long __cdecl PyGatewayBase::GetTypeInfoCount(unsigned int * __ptr64) __ptr64
269 10A 0000D9C0 public: static struct _object * __ptr64 __cdecl PyIDispatch::GetTypeInfoCount(struct _object * __ptr64,struct _object * __ptr64)
270 10B 0003D190 public: struct _object * __ptr64 __cdecl PyITypeLib::GetTypeInfoCount(void) __ptr64
271 10C 0003D1F0 public: struct _object * __ptr64 __cdecl PyITypeLib::GetTypeInfoOfGuid(struct _GUID const & __ptr64) __ptr64
272 10D 0003D2A0 public: struct _object * __ptr64 __cdecl PyITypeLib::GetTypeInfoType(int) __ptr64
273 10E 0003CA40 public: struct _object * __ptr64 __cdecl PyITypeInfo::GetVarDesc(int) __ptr64
274 10F 00033400 protected: virtual long __cdecl PyGOleWindow::GetWindow(struct HWND__ * __ptr64 * __ptr64) __ptr64
275 110 00033230 public: static struct _object * __ptr64 __cdecl PyIOleWindow::GetWindow(struct _object * __ptr64,struct _object * __ptr64)
276 111 00032EF0 public: static struct _object * __ptr64 __cdecl PyIMoniker::Hash(struct _object * __ptr64,struct _object * __ptr64)
277 112 00034C20 public: static struct _object * __ptr64 __cdecl PyIPersistStreamInit::InitNew(struct _object * __ptr64,struct _object * __ptr64)
278 113 0000B840 public: virtual long __cdecl PyGatewayBase::InterfaceSupportsErrorInfo(struct _GUID const & __ptr64) __ptr64
279 114 0000B010 public: virtual long __cdecl PyGatewayBase::Invoke(long,struct _GUID const & __ptr64,unsigned long,unsigned short,struct tagDISPPARAMS * __ptr64,struct tagVARIANT * __ptr64,struct tagEXCEPINFO * __ptr64,unsigned int * __ptr64) __ptr64
280 115 0000CC50 public: static struct _object * __ptr64 __cdecl PyIDispatch::Invoke(struct _object * __ptr64,struct _object * __ptr64)
281 116 0000B260 public: virtual long __cdecl PyGatewayBase::InvokeEx(long,unsigned long,unsigned short,struct tagDISPPARAMS * __ptr64,struct tagVARIANT * __ptr64,struct tagEXCEPINFO * __ptr64,struct IServiceProvider * __ptr64) __ptr64
282 117 0000DC00 public: static struct _object * __ptr64 __cdecl PyIDispatchEx::InvokeEx(struct _object * __ptr64,struct _object * __ptr64)
283 118 0000CEC0 public: static struct _object * __ptr64 __cdecl PyIDispatch::InvokeTypes(struct _object * __ptr64,struct _object * __ptr64)
284 119 0000AA20 protected: virtual long __cdecl PyGatewayBase::InvokeViaPolicy(char const * __ptr64,struct _object * __ptr64 * __ptr64,char const * __ptr64,...) __ptr64
285 11A 00034870 public: static struct _object * __ptr64 __cdecl PyIPersistStream::IsDirty(struct _object * __ptr64,struct _object * __ptr64)
286 11B 00032E10 public: static struct _object * __ptr64 __cdecl PyIMoniker::IsEqual(struct _object * __ptr64,struct _object * __ptr64)
287 11C 00033110 public: static struct _object * __ptr64 __cdecl PyIMoniker::IsSystemMoniker(struct _object * __ptr64,struct _object * __ptr64)
288 11D 00034930 public: static struct _object * __ptr64 __cdecl PyIPersistStream::Load(struct _object * __ptr64,struct _object * __ptr64)
289 11E 0003BFE0 public: static struct _object * __ptr64 __cdecl PyIStream::LockRegion(struct _object * __ptr64,struct _object * __ptr64)
290 11F 0000A6B0 public: virtual long __cdecl CPyFactory::LockServer(int) __ptr64
291 120 0000CB00 public: static struct _object * __ptr64 __cdecl PyIClassFactory::LockServer(struct _object * __ptr64,struct _object * __ptr64)
292 121 0000A250 struct _object * __ptr64 __cdecl MakeBstrToObj(wchar_t * __ptr64 const)
293 122 0000A270 struct _object * __ptr64 __cdecl MakeOLECHARToObj(wchar_t const * __ptr64)
294 123 0000A260 struct _object * __ptr64 __cdecl MakeOLECHARToObj(wchar_t const * __ptr64,int)
295 124 000076E0 public: int __cdecl PythonOleArgHelper::MakeObjToVariant(struct _object * __ptr64,struct tagVARIANT * __ptr64,struct _object * __ptr64) __ptr64
296 125 00008300 int __cdecl MakePythonArgumentTuples(struct _object * __ptr64 * __ptr64,class PythonOleArgHelper * __ptr64 * __ptr64,struct _object * __ptr64 * __ptr64,class PythonOleArgHelper * __ptr64 * __ptr64,struct tagDISPPARAMS * __ptr64)
297 126 00008270 public: struct _object * __ptr64 __cdecl PythonOleArgHelper::MakeVariantToObj(struct tagVARIANT * __ptr64) __ptr64
298 127 00032430 public: static struct _object * __ptr64 __cdecl PyIEnumMoniker::Next(struct _object * __ptr64,struct _object * __ptr64)
299 128 00030840 public: static struct _object * __ptr64 __cdecl PyIEnumVARIANT::Next(struct _object * __ptr64,struct _object * __ptr64)
300 129 00007620 public: int __cdecl PythonOleArgHelper::ParseTypeInformation(struct _object * __ptr64) __ptr64
301 12A 0000A240 int __cdecl PyCom_BstrFromPyObject(struct _object * __ptr64,wchar_t * __ptr64 * __ptr64,int)
302 12B 00004560 struct _object * __ptr64 __cdecl PyCom_BuildInternalPyException(char * __ptr64)
303 12C 00004250 struct _object * __ptr64 __cdecl PyCom_BuildPyException(long,struct IUnknown * __ptr64,struct _GUID const & __ptr64)
304 12D 000043D0 struct _object * __ptr64 __cdecl PyCom_BuildPyExceptionFromEXCEPINFO(long,struct tagEXCEPINFO * __ptr64,unsigned int)
308 12E 00002500 void __cdecl PyCom_DLLAddRef(void)
309 12F 00002620 void __cdecl PyCom_DLLReleaseRef(void)
310 130 00002660 void __cdecl PyCom_EnableQuitMessage(unsigned long)
311 131 00004870 void __cdecl PyCom_ExcepInfoFromPyException(struct tagEXCEPINFO * __ptr64)
312 132 00004A10 int __cdecl PyCom_ExcepInfoFromPyObject(struct _object * __ptr64,struct tagEXCEPINFO * __ptr64,long * __ptr64)
313 133 000097B0 int __cdecl PyCom_InterfaceFromPyInstanceOrObject(struct _object * __ptr64,struct _GUID const & __ptr64,void * __ptr64 * __ptr64,int)
315 134 0001BE60 int __cdecl PyCom_IsGatewayRegistered(struct _GUID const & __ptr64)
316 135 00004D70 void __cdecl PyCom_LogF(char const * __ptr64,...)
317 136 000045E0 void __cdecl PyCom_LoggerException(struct _object * __ptr64,char const * __ptr64,...)
318 137 00004590 void __cdecl PyCom_LoggerNonServerException(struct _object * __ptr64,char const * __ptr64,...)
319 138 00004620 void __cdecl PyCom_LoggerWarning(struct _object * __ptr64,char const * __ptr64,...)
321 139 0000A000 int __cdecl PyCom_PyObjectAsSTATPROPSETSTG(struct _object * __ptr64,struct tagSTATPROPSETSTG * __ptr64)
322 13A 00009BA0 int __cdecl PyCom_PyObjectAsSTATSTG(struct _object * __ptr64,struct tagSTATSTG * __ptr64,unsigned long)
323 13B 00009D30 int __cdecl PyCom_PyObjectAsSTGOPTIONS(struct _object * __ptr64,struct tagSTGOPTIONS * __ptr64 * __ptr64)
324 13C 00004C60 struct _object * __ptr64 __cdecl PyCom_PyObjectFromExcepInfo(struct tagEXCEPINFO const * __ptr64)
326 13D 000071C0 struct _object * __ptr64 __cdecl PyCom_PyObjectFromSAFEARRAY(struct tagSAFEARRAY * __ptr64,enum VARENUM)
327 13E 00009EC0 struct _object * __ptr64 __cdecl PyCom_PyObjectFromSTATPROPSETSTG(struct tagSTATPROPSETSTG * __ptr64)
328 13F 000099F0 struct _object * __ptr64 __cdecl PyCom_PyObjectFromSTATSTG(struct tagSTATSTG * __ptr64)
330 140 0001BC10 int __cdecl PyCom_RegisterClientType(struct _typeobject * __ptr64,struct _GUID const * __ptr64)
331 141 0001BBB0 int __cdecl PyCom_RegisterExtensionSupport(struct _object * __ptr64,struct PyCom_InterfaceSupportInfo const * __ptr64,int)
332 142 0001BC90 long __cdecl PyCom_RegisterGatewayObject(struct _GUID const & __ptr64,long (__cdecl*)(struct _object * __ptr64,class PyGatewayBase * __ptr64,void * __ptr64 * __ptr64,struct _GUID const & __ptr64),char const * __ptr64)
333 143 000071A0 int __cdecl PyCom_SAFEARRAYFromPyObject(struct _object * __ptr64,struct tagSAFEARRAY * __ptr64 * __ptr64,enum VARENUM)
334 144 00004660 long __cdecl PyCom_SetAndLogCOMErrorFromPyException(char const * __ptr64,struct _GUID const & __ptr64)
335 145 000046B0 long __cdecl PyCom_SetAndLogCOMErrorFromPyExceptionEx(struct _object * __ptr64,char const * __ptr64,struct _GUID const & __ptr64)
336 146 000047D0 long __cdecl PyCom_SetCOMErrorFromPyException(struct _GUID const & __ptr64)
337 147 00004720 long __cdecl PyCom_SetCOMErrorFromSimple(long,struct _GUID const & __ptr64,char const * __ptr64)
338 148 000051D0 void __cdecl PyCom_StreamMessage(char const * __ptr64)
340 149 0001A350 public: static long __cdecl PyGOleWindow::PyGatewayConstruct(struct _object * __ptr64,class PyGatewayBase * __ptr64,void * __ptr64 * __ptr64,struct _GUID const & __ptr64)
341 14A 00019F90 public: static long __cdecl PyGPersist::PyGatewayConstruct(struct _object * __ptr64,class PyGatewayBase * __ptr64,void * __ptr64 * __ptr64,struct _GUID const & __ptr64)
342 14B 00003D80 public: static long __cdecl PyGatewayBase::PyGatewayConstruct(struct _object * __ptr64,class PyGatewayBase * __ptr64,void * __ptr64 * __ptr64,struct _GUID const & __ptr64)
343 14C 0001F470 public: static class PyIUnknown * __ptr64 __cdecl PyIBindCtx::PyObConstruct(struct IUnknown * __ptr64)
344 14D 00003E00 public: static class PyIUnknown * __ptr64 __cdecl PyIClassFactory::PyObConstruct(struct IUnknown * __ptr64)
345 14E 00003E40 public: static class PyIUnknown * __ptr64 __cdecl PyIConnectionPoint::PyObConstruct(struct IUnknown * __ptr64)
346 14F 00003E80 public: static class PyIUnknown * __ptr64 __cdecl PyIConnectionPointContainer::PyObConstruct(struct IUnknown * __ptr64)
347 150 00003EC0 public: static class PyIUnknown * __ptr64 __cdecl PyIDispatch::PyObConstruct(struct IUnknown * __ptr64)
348 151 00003F00 public: static class PyIUnknown * __ptr64 __cdecl PyIDispatchEx::PyObConstruct(struct IUnknown * __ptr64)
349 152 0001F4B0 public: static class PyIUnknown * __ptr64 __cdecl PyIEnumMoniker::PyObConstruct(struct IUnknown * __ptr64)
350 153 0001F4F0 public: static class PyIUnknown * __ptr64 __cdecl PyIEnumVARIANT::PyObConstruct(struct IUnknown * __ptr64)
351 154 0001F530 public: static class PyIUnknown * __ptr64 __cdecl PyIMoniker::PyObConstruct(struct IUnknown * __ptr64)
352 155 0001F570 public: static class PyIUnknown * __ptr64 __cdecl PyIOleWindow::PyObConstruct(struct IUnknown * __ptr64)
353 156 0001F5B0 public: static class PyIUnknown * __ptr64 __cdecl PyIPersist::PyObConstruct(struct IUnknown * __ptr64)
354 157 0001F5F0 public: static class PyIUnknown * __ptr64 __cdecl PyIPersistStream::PyObConstruct(struct IUnknown * __ptr64)
355 158 0001F630 public: static class PyIUnknown * __ptr64 __cdecl PyIPersistStreamInit::PyObConstruct(struct IUnknown * __ptr64)
356 159 00003F40 public: static class PyIUnknown * __ptr64 __cdecl PyIProvideClassInfo2::PyObConstruct(struct IUnknown * __ptr64)
357 15A 00003F80 public: static class PyIUnknown * __ptr64 __cdecl PyIProvideClassInfo::PyObConstruct(struct IUnknown * __ptr64)
358 15B 0001F670 public: static class PyIUnknown * __ptr64 __cdecl PyIServiceProvider::PyObConstruct(struct IUnknown * __ptr64)
359 15C 0001F6B0 public: static class PyIUnknown * __ptr64 __cdecl PyIStream::PyObConstruct(struct IUnknown * __ptr64)
360 15D 00003FC0 public: static class PyIUnknown * __ptr64 __cdecl PyITypeComp::PyObConstruct(struct IUnknown * __ptr64)
361 15E 00004000 public: static class PyIUnknown * __ptr64 __cdecl PyITypeInfo::PyObConstruct(struct IUnknown * __ptr64)
362 15F 00004040 public: static class PyIUnknown * __ptr64 __cdecl PyITypeLib::PyObConstruct(struct IUnknown * __ptr64)
363 160 00004080 public: static class PyIUnknown * __ptr64 __cdecl PyIUnknown::PyObConstruct(struct IUnknown * __ptr64)
364 161 0000A120 int __cdecl PyObject_AsCurrency(struct _object * __ptr64,union tagCY * __ptr64)
365 162 00006650 int __cdecl PyObject_AsOLEMENUGROUPWIDTHS(struct _object * __ptr64,struct tagOleMenuGroupWidths * __ptr64)
366 163 000360A0 int __cdecl PyObject_AsPROPVARIANT(struct _object * __ptr64,struct tagPROPVARIANT * __ptr64)
367 164 0000A080 struct _object * __ptr64 __cdecl PyObject_FromCurrency(union tagCY & __ptr64)
368 165 000066A0 struct _object * __ptr64 __cdecl PyObject_FromOLEMENUGROUPWIDTHS(struct tagOleMenuGroupWidths const * __ptr64)
369 166 00035A30 struct _object * __ptr64 __cdecl PyObject_FromPROPVARIANT(struct tagPROPVARIANT * __ptr64)
370 167 00035FF0 struct _object * __ptr64 __cdecl PyObject_FromPROPVARIANTs(struct tagPROPVARIANT * __ptr64,unsigned long)
371 168 00010B50 class PySTGMEDIUM * __ptr64 __cdecl PyObject_FromSTGMEDIUM(struct tagSTGMEDIUM * __ptr64)
372 169 000793C0 struct _typeobject PyOleArgNotFoundType
373 16A 000790A0 struct _typeobject PyOleEmptyType
374 16B 00079230 struct _typeobject PyOleMissingType
375 16C 00079550 struct _typeobject PyOleNothingType
376 16D 0000A4F0 public: virtual long __cdecl CPyFactory::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
377 16E 0001FA80 protected: virtual long __cdecl PyGOleWindow::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
378 16F 0001FAB0 protected: virtual long __cdecl PyGPersist::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
379 170 0000AB30 public: virtual long __cdecl PyGatewayBase::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
380 171 0000EAD0 public: static struct _object * __ptr64 __cdecl PyIUnknown::QueryInterface(struct _object * __ptr64,struct _object * __ptr64)
381 172 00039570 public: static struct _object * __ptr64 __cdecl PyIServiceProvider::QueryService(struct _object * __ptr64,struct _object * __ptr64)
382 173 0003B990 public: static struct _object * __ptr64 __cdecl PyIStream::Read(struct _object * __ptr64,struct _object * __ptr64)
383 174 00025980 public: static struct _object * __ptr64 __cdecl PyIBindCtx::RegisterObjectParam(struct _object * __ptr64,struct _object * __ptr64)
384 175 0000A570 public: virtual unsigned long __cdecl CPyFactory::Release(void) __ptr64
385 176 00020110 protected: virtual unsigned long __cdecl PyGOleWindow::Release(void) __ptr64
386 177 00020140 protected: virtual unsigned long __cdecl PyGPersist::Release(void) __ptr64
387 178 0000AB00 public: virtual unsigned long __cdecl PyGatewayBase::Release(void) __ptr64
388 179 000326E0 public: static struct _object * __ptr64 __cdecl PyIEnumMoniker::Reset(struct _object * __ptr64,struct _object * __ptr64)
389 17A 00030AC0 public: static struct _object * __ptr64 __cdecl PyIEnumVARIANT::Reset(struct _object * __ptr64,struct _object * __ptr64)
390 17B 0003BF20 public: static struct _object * __ptr64 __cdecl PyIStream::Revert(struct _object * __ptr64,struct _object * __ptr64)
391 17C 00025AA0 public: static struct _object * __ptr64 __cdecl PyIBindCtx::RevokeObjectParam(struct _object * __ptr64,struct _object * __ptr64)
392 17D 0000EA40 public: static void __cdecl PyIUnknown::SafeRelease(class PyIUnknown * __ptr64)
393 17E 00034A10 public: static struct _object * __ptr64 __cdecl PyIPersistStream::Save(struct _object * __ptr64,struct _object * __ptr64)
394 17F 0003BB80 public: static struct _object * __ptr64 __cdecl PyIStream::Seek(struct _object * __ptr64,struct _object * __ptr64)
395 180 000258A0 public: static struct _object * __ptr64 __cdecl PyIBindCtx::SetBindOptions(struct _object * __ptr64,struct _object * __ptr64)
396 181 000040F0 public: static struct _object * __ptr64 __cdecl PyIConnectionPoint::SetPythonCOMError(struct _object * __ptr64,long)
397 182 00004120 public: static struct _object * __ptr64 __cdecl PyIConnectionPointContainer::SetPythonCOMError(struct _object * __ptr64,long)
398 183 00004150 public: static struct _object * __ptr64 __cdecl PyIDispatchEx::SetPythonCOMError(struct _object * __ptr64,long)
399 184 0003BC60 public: static struct _object * __ptr64 __cdecl PyIStream::SetSize(struct _object * __ptr64,struct _object * __ptr64)
400 185 00032630 public: static struct _object * __ptr64 __cdecl PyIEnumMoniker::Skip(struct _object * __ptr64,struct _object * __ptr64)
401 186 00030A10 public: static struct _object * __ptr64 __cdecl PyIEnumVARIANT::Skip(struct _object * __ptr64,struct _object * __ptr64)
402 187 0003C200 public: static struct _object * __ptr64 __cdecl PyIStream::Stat(struct _object * __ptr64,struct _object * __ptr64)
403 188 00020A20 protected: virtual void * __ptr64 __cdecl PyGOleWindow::ThisAsIID(struct _GUID) __ptr64
404 189 00020A70 protected: virtual void * __ptr64 __cdecl PyGPersist::ThisAsIID(struct _GUID) __ptr64
405 18A 0000B8B0 public: virtual void * __ptr64 __cdecl PyGatewayBase::ThisAsIID(struct _GUID) __ptr64
406 18B 00079D20 public: static struct _typeobject PySTGMEDIUM::Type
407 18C 000271F0 public: static struct _object * __ptr64 __cdecl PyIConnectionPoint::Unadvise(struct _object * __ptr64,struct _object * __ptr64)
408 18D 0003C0F0 public: static struct _object * __ptr64 __cdecl PyIStream::UnlockRegion(struct _object * __ptr64,struct _object * __ptr64)
409 18E 0000B880 public: virtual long __cdecl PyGatewayBase::Unwrap(struct _object * __ptr64 * __ptr64) __ptr64
410 18F 0003BAA0 public: static struct _object * __ptr64 __cdecl PyIStream::Write(struct _object * __ptr64,struct _object * __ptr64)
411 190 0000C820 public: static int __cdecl PyIBase::cmp(struct _object * __ptr64,struct _object * __ptr64)
412 191 000041A0 public: virtual int __cdecl PyIBase::compare(struct _object * __ptr64) __ptr64
413 192 0000E950 public: virtual int __cdecl PyIUnknown::compare(struct _object * __ptr64) __ptr64
414 193 0000C770 public: static void __cdecl PyIBase::dealloc(struct _object * __ptr64)
415 194 00010830 public: static void __cdecl PySTGMEDIUM::deallocFunc(struct _object * __ptr64)
416 195 0000C640 public: virtual struct _object * __ptr64 __cdecl PyIBase::getattr(char * __ptr64) __ptr64
417 196 0000C7B0 public: static struct _object * __ptr64 __cdecl PyIBase::getattro(struct _object * __ptr64,struct _object * __ptr64)
418 197 00010880 public: static struct _object * __ptr64 __cdecl PySTGMEDIUM::getattro(struct _object * __ptr64,struct _object * __ptr64)
419 198 000061D0 public: static int __cdecl PyComTypeObject::is_interface_type(struct _object * __ptr64)
420 199 0000C750 public: int __cdecl PyIBase::is_object(class PyComTypeObject * __ptr64) __ptr64
421 19A 0000C740 public: static int __cdecl PyIBase::is_object(struct _object * __ptr64,class PyComTypeObject * __ptr64)
422 19B 000062D0 public: static struct _object * __ptr64 __cdecl PyComEnumProviderTypeObject::iter(struct _object * __ptr64)
423 19C 000063F0 public: static struct _object * __ptr64 __cdecl PyComEnumTypeObject::iter(struct _object * __ptr64)
424 19D 000041D0 public: virtual struct _object * __ptr64 __cdecl PyIBase::iter(void) __ptr64
425 19E 00006450 public: static struct _object * __ptr64 __cdecl PyComEnumTypeObject::iternext(struct _object * __ptr64)
426 19F 000041E0 public: virtual struct _object * __ptr64 __cdecl PyIBase::iternext(void) __ptr64
427 1A0 00079CE0 public: static struct PyMethodDef * PySTGMEDIUM::methods
428 1A1 0000C790 public: static struct _object * __ptr64 __cdecl PyIBase::repr(struct _object * __ptr64)
429 1A2 0000C6B0 public: virtual struct _object * __ptr64 __cdecl PyIBase::repr(void) __ptr64
430 1A3 0000E900 public: virtual struct _object * __ptr64 __cdecl PyIUnknown::repr(void) __ptr64
431 1A4 0000C840 public: static struct _object * __ptr64 __cdecl PyIBase::richcmp(struct _object * __ptr64,struct _object * __ptr64,int)
432 1A5 0000C660 public: virtual int __cdecl PyIBase::setattr(char * __ptr64,struct _object * __ptr64) __ptr64
433 1A6 0000C7C0 public: static int __cdecl PyIBase::setattro(struct _object * __ptr64,struct _object * __ptr64,struct _object * __ptr64)
434 1A7 00079B00 public: static char * __ptr64 __ptr64 PyIUnknown::szErrMsgObjectReleased
435 1A8 00083F00 public: static class PyComTypeObject PyIBindCtx::type
436 1A9 00083790 public: static class PyComTypeObject PyIClassFactory::type
437 1AA 000843E0 public: static class PyComTypeObject PyIConnectionPoint::type
438 1AB 00084580 public: static class PyComTypeObject PyIConnectionPointContainer::type
439 1AC 00083AD0 public: static class PyComTypeObject PyIDispatch::type
440 1AD 00083930 public: static class PyComTypeObject PyIDispatchEx::type
441 1AE 000867A0 public: static class PyComEnumTypeObject PyIEnumMoniker::type
442 1AF 00085F80 public: static class PyComEnumTypeObject PyIEnumVARIANT::type
443 1B0 00086940 public: static class PyComEnumProviderTypeObject PyIMoniker::type
444 1B1 00086AE0 public: static class PyComTypeObject PyIOleWindow::type
445 1B2 00086C80 public: static class PyComTypeObject PyIPersist::type
446 1B3 00087300 public: static class PyComTypeObject PyIPersistStream::type
447 1B4 000874A0 public: static class PyComTypeObject PyIPersistStreamInit::type
448 1B5 00087B20 public: static class PyComTypeObject PyIProvideClassInfo2::type
449 1B6 00087CC0 public: static class PyComTypeObject PyIProvideClassInfo::type
450 1B7 00088000 public: static class PyComTypeObject PyIServiceProvider::type
451 1B8 00088340 public: static class PyComTypeObject PyIStream::type
452 1B9 00088820 public: static class PyComTypeObject PyITypeComp::type
453 1BA 00088680 public: static class PyComTypeObject PyITypeInfo::type
454 1BB 000884E0 public: static class PyComTypeObject PyITypeLib::type
455 1BC 00083C80 public: static class PyComTypeObject PyIUnknown::type
1 1BD 00002310 DllCanUnloadNow
2 1BE 00002260 DllGetClassObject
456 1BF 00002670 DllMain
457 1C0 00002780 DllRegisterServerEx
458 1C1 000027A0 DllUnregisterServerEx
305 1C2 00002400 PyCom_CoInitialize
306 1C3 00002320 PyCom_CoInitializeEx
307 1C4 000024A0 PyCom_CoUninitialize
314 1C5 00009670 PyCom_InterfaceFromPyObject
320 1C6 000072A0 PyCom_MakeOlePythonCall
325 1C7 000098A0 PyCom_PyObjectFromIUnknown
329 1C8 00006CE0 PyCom_PyObjectFromVariant
339 1C9 000067C0 PyCom_VariantFromPyObject
459 1CA 00016100 PyInit_pythoncom
Summary
11000 .data
1000 .gfids
8000 .pdata
34000 .rdata
2000 .reloc
1000 .rsrc
44000 .text