1
2
3
4
5
6 from ctypes import *
7 from ctypes.wintypes import HWND, HRESULT, BOOL
8 from comtypes import GUID, COMMETHOD, IUnknown, tagBIND_OPTS2
9 from comtypes.persist import IPersist
10 WSTRING = c_wchar_p
11
13 _iid_ = GUID("{00000114-0000-0000-C000-000000000046}")
14 _methods_ = [
15 COMMETHOD([], HRESULT, "GetWindow",
16 (["out"], POINTER(HWND), "phwnd")
17 ),
18 COMMETHOD([], HRESULT, "ContextSensitiveHelp",
19 (["in"], BOOL, "fEnterMode")
20 ),
21 ]
22
24 _fields_ = [
25 ('QuadPart', c_longlong),
26 ]
27
29 _fields_ = [
30 ('QuadPart', c_ulonglong),
31 ]
32
38
53
55 _iid_ = GUID('{0C733A30-2A1C-11CE-ADE5-00AA0044773D}')
56 _idlflags_ = []
57 _methods_ = [
58 COMMETHOD([], HRESULT, 'RemoteRead',
59 ( ['out'], POINTER(c_ubyte), 'pv' ),
60 ( ['in'], c_ulong, 'cb' ),
61 ( ['out'], POINTER(c_ulong), 'pcbRead' )),
62 COMMETHOD([], HRESULT, 'RemoteWrite',
63 ( ['in'], POINTER(c_ubyte), 'pv' ),
64 ( ['in'], c_ulong, 'cb' ),
65 ( ['out'], POINTER(c_ulong), 'pcbWritten' )),
66 ]
67
71 IStream._methods_ = [
72 COMMETHOD([], HRESULT, 'RemoteSeek',
73 ( ['in'], _LARGE_INTEGER, 'dlibMove' ),
74 ( ['in'], c_ulong, 'dwOrigin' ),
75 ( ['out'], POINTER(_ULARGE_INTEGER), 'plibNewPosition' )),
76 COMMETHOD([], HRESULT, 'SetSize',
77 ( ['in'], _ULARGE_INTEGER, 'libNewSize' )),
78 COMMETHOD([], HRESULT, 'RemoteCopyTo',
79 ( ['in'], POINTER(IStream), 'pstm' ),
80 ( ['in'], _ULARGE_INTEGER, 'cb' ),
81 ( ['out'], POINTER(_ULARGE_INTEGER), 'pcbRead' ),
82 ( ['out'], POINTER(_ULARGE_INTEGER), 'pcbWritten' )),
83 COMMETHOD([], HRESULT, 'Commit',
84 ( ['in'], c_ulong, 'grfCommitFlags' )),
85 COMMETHOD([], HRESULT, 'Revert'),
86 COMMETHOD([], HRESULT, 'LockRegion',
87 ( ['in'], _ULARGE_INTEGER, 'libOffset' ),
88 ( ['in'], _ULARGE_INTEGER, 'cb' ),
89 ( ['in'], c_ulong, 'dwLockType' )),
90 COMMETHOD([], HRESULT, 'UnlockRegion',
91 ( ['in'], _ULARGE_INTEGER, 'libOffset' ),
92 ( ['in'], _ULARGE_INTEGER, 'cb' ),
93 ( ['in'], c_ulong, 'dwLockType' )),
94 COMMETHOD([], HRESULT, 'Stat',
95 ( ['out'], POINTER(tagSTATSTG), 'pstatstg' ),
96 ( ['in'], c_ulong, 'grfStatFlag' )),
97 COMMETHOD([], HRESULT, 'Clone',
98 ( ['out'], POINTER(POINTER(IStream)), 'ppstm' )),
99 ]
100
102 _iid_ = GUID('{00000109-0000-0000-C000-000000000046}')
103 _idlflags_ = []
104 _methods_ = [
105 COMMETHOD([], HRESULT, 'IsDirty'),
106 COMMETHOD([], HRESULT, 'Load',
107 ( ['in'], POINTER(IStream), 'pstm' )),
108 COMMETHOD([], HRESULT, 'Save',
109 ( ['in'], POINTER(IStream), 'pstm' ),
110 ( ['in'], c_int, 'fClearDirty' )),
111 COMMETHOD([], HRESULT, 'GetSizeMax',
112 ( ['out'], POINTER(_ULARGE_INTEGER), 'pcbSize' )),
113 ]
114
116 _iid_ = GUID('{00000010-0000-0000-C000-000000000046}')
117 _idlflags_ = []
118
120 return self.EnumRunning()
121
125 IEnumString._methods_ = [
126 COMMETHOD([], HRESULT, 'RemoteNext',
127 ( ['in'], c_ulong, 'celt' ),
128 ( ['out'], POINTER(WSTRING), 'rgelt' ),
129 ( ['out'], POINTER(c_ulong), 'pceltFetched' )),
130 COMMETHOD([], HRESULT, 'Skip',
131 ( ['in'], c_ulong, 'celt' )),
132 COMMETHOD([], HRESULT, 'Reset'),
133 COMMETHOD([], HRESULT, 'Clone',
134 ( ['out'], POINTER(POINTER(IEnumString)), 'ppenum' )),
135 ]
136
138 _iid_ = GUID('{0000000E-0000-0000-C000-000000000046}')
139 _idlflags_ = []
140 _methods_ = [
141 COMMETHOD([], HRESULT, 'RegisterObjectBound',
142 ( ['in'], POINTER(IUnknown), 'punk' )),
143 COMMETHOD([], HRESULT, 'RevokeObjectBound',
144 ( ['in'], POINTER(IUnknown), 'punk' )),
145 COMMETHOD([], HRESULT, 'ReleaseBoundObjects'),
146 COMMETHOD([], HRESULT, 'RemoteSetBindOptions',
147 ( ['in'], POINTER(tagBIND_OPTS2), 'pbindopts' )),
148 COMMETHOD([], HRESULT, 'RemoteGetBindOptions',
149 ( ['in', 'out'], POINTER(tagBIND_OPTS2), 'pbindopts' )),
150 COMMETHOD([], HRESULT, 'GetRunningObjectTable',
151 ( ['out'], POINTER(POINTER(IRunningObjectTable)), 'pprot' )),
152 COMMETHOD([], HRESULT, 'RegisterObjectParam',
153 ( ['in'], WSTRING, 'pszKey' ),
154 ( ['in'], POINTER(IUnknown), 'punk' )),
155 COMMETHOD([], HRESULT, 'GetObjectParam',
156 ( ['in'], WSTRING, 'pszKey' ),
157 ( ['out'], POINTER(POINTER(IUnknown)), 'ppunk' )),
158 COMMETHOD([], HRESULT, 'EnumObjectParam',
159 ( ['out'], POINTER(POINTER(IEnumString)), 'ppenum' )),
160 COMMETHOD([], HRESULT, 'RevokeObjectParam',
161 ( ['in'], WSTRING, 'pszKey' )),
162 ]
163
165 _iid_ = GUID('{0000000F-0000-0000-C000-000000000046}')
166 _idlflags_ = []
167
169 displayName = WSTRING()
170 self.__com_GetDisplayName(pbc, pmkToLeft, displayName)
171 ret = displayName.value
172 windll.ole32.CoTaskMemFree(displayName)
173 return ret
174
176 _iid_ = GUID('{00000102-0000-0000-C000-000000000046}')
177 _idlflags_ = []
178
179 - def Next(self, celt):
180 fetched = c_ulong()
181 if celt == 1:
182 mon = POINTER(IMoniker)()
183 self.__com_Next(celt, mon, fetched)
184 return mon, fetched.value
185 array = (POINTER(IMoniker) * celt)()
186 self.__com_Next(celt, array, fetched)
187 return array[:fetched.value]
188
191
193 item, fetched = self.Next(1)
194 if fetched:
195 return item
196 raise StopIteration
197
198 IEnumMoniker._methods_ = [
199 COMMETHOD([], HRESULT, 'Next',
200 ( ['in'], c_ulong, 'celt' ),
201 ( ['out'], POINTER(POINTER(IMoniker)), 'rgelt' ),
202 ( ['out'], POINTER(c_ulong), 'pceltFetched' )),
203 COMMETHOD([], HRESULT, 'Skip',
204 ( ['in'], c_ulong, 'celt' )),
205 COMMETHOD([], HRESULT, 'Reset'),
206 COMMETHOD([], HRESULT, 'Clone',
207 ( ['out'], POINTER(POINTER(IEnumMoniker)), 'ppenum' )),
208 ]
209
210 IMoniker._methods_ = [
211 COMMETHOD([], HRESULT, 'RemoteBindToObject',
212 ( ['in'], POINTER(IBindCtx), 'pbc' ),
213 ( ['in'], POINTER(IMoniker), 'pmkToLeft' ),
214 ( ['in'], POINTER(GUID), 'riidResult' ),
215 ( ['out'], POINTER(POINTER(IUnknown)), 'ppvResult' )),
216 COMMETHOD([], HRESULT, 'RemoteBindToStorage',
217 ( ['in'], POINTER(IBindCtx), 'pbc' ),
218 ( ['in'], POINTER(IMoniker), 'pmkToLeft' ),
219 ( ['in'], POINTER(GUID), 'riid' ),
220 ( ['out'], POINTER(POINTER(IUnknown)), 'ppvObj' )),
221 COMMETHOD([], HRESULT, 'Reduce',
222 ( ['in'], POINTER(IBindCtx), 'pbc' ),
223 ( ['in'], c_ulong, 'dwReduceHowFar' ),
224 ( ['in', 'out'], POINTER(POINTER(IMoniker)), 'ppmkToLeft' ),
225 ( ['out'], POINTER(POINTER(IMoniker)), 'ppmkReduced' )),
226 COMMETHOD([], HRESULT, 'ComposeWith',
227 ( ['in'], POINTER(IMoniker), 'pmkRight' ),
228 ( ['in'], c_int, 'fOnlyIfNotGeneric' ),
229 ( ['out'], POINTER(POINTER(IMoniker)), 'ppmkComposite' )),
230 COMMETHOD([], HRESULT, 'Enum',
231 ( ['in'], c_int, 'fForward' ),
232 ( ['out'], POINTER(POINTER(IEnumMoniker)), 'ppenumMoniker' )),
233 COMMETHOD([], HRESULT, 'IsEqual',
234 ( ['in'], POINTER(IMoniker), 'pmkOtherMoniker' )),
235 COMMETHOD([], HRESULT, 'Hash',
236 ( ['out'], POINTER(c_ulong), 'pdwHash' )),
237 COMMETHOD([], HRESULT, 'IsRunning',
238 ( ['in'], POINTER(IBindCtx), 'pbc' ),
239 ( ['in'], POINTER(IMoniker), 'pmkToLeft' ),
240 ( ['in'], POINTER(IMoniker), 'pmkNewlyRunning' )),
241 COMMETHOD([], HRESULT, 'GetTimeOfLastChange',
242 ( ['in'], POINTER(IBindCtx), 'pbc' ),
243 ( ['in'], POINTER(IMoniker), 'pmkToLeft' ),
244 ( ['out'], POINTER(_FILETIME), 'pfiletime' )),
245 COMMETHOD([], HRESULT, 'Inverse',
246 ( ['out'], POINTER(POINTER(IMoniker)), 'ppmk' )),
247 COMMETHOD([], HRESULT, 'CommonPrefixWith',
248 ( ['in'], POINTER(IMoniker), 'pmkOther' ),
249 ( ['out'], POINTER(POINTER(IMoniker)), 'ppmkPrefix' )),
250 COMMETHOD([], HRESULT, 'RelativePathTo',
251 ( ['in'], POINTER(IMoniker), 'pmkOther' ),
252 ( ['out'], POINTER(POINTER(IMoniker)), 'ppmkRelPath' )),
253 COMMETHOD([], HRESULT, 'GetDisplayName',
254 ( ['in'], POINTER(IBindCtx), 'pbc' ),
255 ( ['in'], POINTER(IMoniker), 'pmkToLeft' ),
256 ( ['out'], POINTER(WSTRING), 'ppszDisplayName' )),
257 COMMETHOD([], HRESULT, 'ParseDisplayName',
258 ( ['in'], POINTER(IBindCtx), 'pbc' ),
259 ( ['in'], POINTER(IMoniker), 'pmkToLeft' ),
260 ( ['in'], WSTRING, 'pszDisplayName' ),
261 ( ['out'], POINTER(c_ulong), 'pchEaten' ),
262 ( ['out'], POINTER(POINTER(IMoniker)), 'ppmkOut' )),
263 COMMETHOD([], HRESULT, 'IsSystemMoniker',
264 ( ['out'], POINTER(c_ulong), 'pdwMksys' )),
265 ]
266
267 IRunningObjectTable._methods_ = [
268 COMMETHOD([], HRESULT, 'Register',
269 ( ['in'], c_ulong, 'grfFlags' ),
270 ( ['in'], POINTER(IUnknown), 'punkObject' ),
271 ( ['in'], POINTER(IMoniker), 'pmkObjectName' ),
272 ( ['out'], POINTER(c_ulong), 'pdwRegister' )),
273 COMMETHOD([], HRESULT, 'Revoke',
274 ( ['in'], c_ulong, 'dwRegister' )),
275 COMMETHOD([], HRESULT, 'IsRunning',
276 ( ['in'], POINTER(IMoniker), 'pmkObjectName' )),
277 COMMETHOD([], HRESULT, 'GetObject',
278 ( ['in'], POINTER(IMoniker), 'pmkObjectName' ),
279 ( ['out'], POINTER(POINTER(IUnknown)), 'ppunkObject' )),
280 COMMETHOD([], HRESULT, 'NoteChangeTime',
281 ( ['in'], c_ulong, 'dwRegister' ),
282 ( ['in'], POINTER(_FILETIME), 'pfiletime' )),
283 COMMETHOD([], HRESULT, 'GetTimeOfLastChange',
284 ( ['in'], POINTER(IMoniker), 'pmkObjectName' ),
285 ( ['out'], POINTER(_FILETIME), 'pfiletime' )),
286 COMMETHOD([], HRESULT, 'EnumRunning',
287 ( ['out'], POINTER(POINTER(IEnumMoniker)), 'ppenumMoniker' )),
288 ]
289