Mercurial > projects > dwt2
comparison org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/ole/win32/OBJIDL.d @ 0:6dd524f61e62
add dwt win and basic java stuff
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Mon, 02 Mar 2009 14:44:16 +0100 |
parents | |
children | 2e09b0e6857a |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:6dd524f61e62 |
---|---|
1 module org.eclipse.swt.internal.ole.win32.OBJIDL; | |
2 //+------------------------------------------------------------------------- | |
3 // | |
4 // Microsoft Windows | |
5 // Copyright (C) Microsoft Corporation, 1992-1997. | |
6 // | |
7 // File: objidl.idl | |
8 // | |
9 //-------------------------------------------------------------------------- | |
10 | |
11 | |
12 private import org.eclipse.swt.internal.ole.win32.extras; | |
13 private import org.eclipse.swt.internal.win32.WINTYPES; | |
14 // private import std.c.windows.windows; | |
15 // private import std.c.windows.com; | |
16 // private import org.eclipse.swt.internal.win32.os; | |
17 | |
18 | |
19 /* *NEED* to port wtypes.h */ | |
20 | |
21 extern( Windows ) { | |
22 | |
23 | |
24 | |
25 | |
26 //#ifndef DO_NO_IMPORTS | |
27 //import "unknwn.idl"; | |
28 //import "wtypes.idl"; | |
29 //#endif | |
30 | |
31 enum SRVINFO | |
32 { | |
33 SRVINFO_F_COSERVERINFO = 0, | |
34 SRVINFO_F_COSERVERINFO2 = 1 | |
35 } | |
36 | |
37 struct COSERVERINFO | |
38 { | |
39 DWORD dwReserved1; | |
40 LPWSTR pwszName; | |
41 COAUTHINFO * pAuthInfo; | |
42 DWORD dwReserved2; | |
43 } | |
44 | |
45 struct COSERVERINFO2 { | |
46 DWORD dwFlags; | |
47 LPWSTR pwszName; | |
48 COAUTHINFO* pAuthInfo; | |
49 IUnknown* ppCall; | |
50 LPWSTR pwszCodeURL; | |
51 DWORD dwFileVersionMS; | |
52 DWORD dwFileVersionLS; | |
53 LPWSTR pwszContentType; | |
54 } | |
55 | |
56 | |
57 /**************************************************************************** | |
58 * Component Object Interfaces | |
59 ****************************************************************************/ | |
60 | |
61 interface IMarshal : IUnknown | |
62 { | |
63 HRESULT GetUnmarshalClass( REFIID riid, void *pv, DWORD dwDestContext, void *pvDestContext, DWORD mshlflags, CLSID *pCid ); | |
64 HRESULT GetMarshalSizeMax( REFIID riid, void *pv, DWORD dwDestContext, void *pvDestContext, DWORD mshlflags, DWORD *pSize ); | |
65 HRESULT MarshalInterface( IStream pStm, REFIID riid, void *pv, DWORD dwDestContext, void *pvDestContext, DWORD mshlflags ); | |
66 HRESULT UnmarshalInterface( IStream pStm, REFIID riid, void **ppv ); | |
67 HRESULT ReleaseMarshalData( IStream pStm ); | |
68 HRESULT DisconnectObject( DWORD dwReserved ); | |
69 } | |
70 alias IMarshal LPMARSHAL; | |
71 | |
72 interface IMalloc : IUnknown | |
73 { | |
74 void * Alloc( ULONG cb ); | |
75 void * Realloc( void * pv, ULONG cb ); | |
76 void Free( void * pv ); | |
77 ULONG GetSize( void * pv ); | |
78 int DidAlloc( void * pv ); | |
79 void HeapMinimize(); | |
80 } | |
81 alias IMalloc LPMALLOC; | |
82 | |
83 interface IMallocSpy : IUnknown | |
84 { | |
85 ULONG PreAlloc( ULONG cbRequest ); | |
86 void * PostAlloc( void * pActual ); | |
87 void * PreFree( void *pRequest, BOOL fSpyed ); | |
88 void PostFree( BOOL fSpyed ); | |
89 ULONG PreRealloc( void *pRequest, ULONG cbRequest, void **ppNewRequest, BOOL fSpyed ); | |
90 void * PostRealloc( void *pActual, BOOL fSpyed ); | |
91 void * PreGetSize( void *pRequest, BOOL fSpyed ); | |
92 ULONG PostGetSize( ULONG cbActual, BOOL fSpyed ); | |
93 void * PreDidAlloc( void * pRequest, BOOL fSpyed ); | |
94 int PostDidAlloc( void *pRequest, BOOL fSpyed, int fActual ); | |
95 void PreHeapMinimize(); | |
96 void PostHeapMinimize(); | |
97 } | |
98 alias IMallocSpy LPMALLOCSPY; | |
99 | |
100 interface IStdMarshalInfo : IUnknown | |
101 { | |
102 HRESULT GetClassForHandler( DWORD dwDestContext, void *pvDestContext, CLSID *pClsid ); | |
103 } | |
104 alias IStdMarshalInfo LPSTDMARSHALINFO; | |
105 | |
106 // bit flags for IExternalConnection | |
107 enum EXTCONN | |
108 { | |
109 EXTCONN_STRONG = 0x0001, // strong connection | |
110 EXTCONN_WEAK = 0x0002, // weak connection (table, container) | |
111 EXTCONN_CALLABLE = 0x0004, // table .vs. callable | |
112 } | |
113 | |
114 interface IExternalConnection : IUnknown | |
115 { | |
116 // *** IExternalConnection methods *** | |
117 DWORD AddConnection( DWORD extconn, DWORD reserved ); | |
118 DWORD ReleaseConnection( DWORD extconn, DWORD reserved, BOOL fLastReleaseCloses ); | |
119 } | |
120 alias IExternalConnection LPEXTERNALCONNECTION; | |
121 | |
122 | |
123 struct MULTI_QI | |
124 { | |
125 const IID *pIID; // pass this one in | |
126 IUnknown pItf; // get these out (you must set to NULL before calling) | |
127 HRESULT hr; | |
128 } | |
129 | |
130 interface IMultiQI : IUnknown | |
131 { | |
132 HRESULT QueryMultipleInterfaces( ULONG cMQIs, MULTI_QI *pMQIs ); | |
133 } | |
134 alias IMultiQI LPMULTIQI; | |
135 | |
136 interface IEnumUnknown : IUnknown | |
137 { | |
138 HRESULT Next( ULONG celt, IUnknown * rgelt, ULONG *pceltFetched); | |
139 HRESULT Skip( ULONG celt ); | |
140 HRESULT Reset(); | |
141 HRESULT Clone( IEnumUnknown * ppenum ); | |
142 } | |
143 alias IEnumUnknown LPENUMUNKNOWN; | |
144 | |
145 | |
146 | |
147 /**************************************************************************** | |
148 * Binding Interfaces | |
149 ****************************************************************************/ | |
150 | |
151 struct BIND_OPTS { | |
152 DWORD cbStruct; // sizeof(BIND_OPTS) | |
153 DWORD grfFlags; | |
154 DWORD grfMode; | |
155 DWORD dwTickCountDeadline; | |
156 } | |
157 alias BIND_OPTS * LPBIND_OPTS; | |
158 | |
159 struct BIND_OPTS2 { | |
160 DWORD cbStruct; // sizeof(BIND_OPTS2) | |
161 DWORD grfFlags; | |
162 DWORD grfMode; | |
163 DWORD dwTickCountDeadline; | |
164 DWORD dwTrackFlags; | |
165 DWORD dwClassContext; | |
166 LCID locale; | |
167 COSERVERINFO * pServerInfo; | |
168 } | |
169 alias BIND_OPTS2 * LPBIND_OPTS2; | |
170 | |
171 enum BIND_FLAGS | |
172 { | |
173 BIND_MAYBOTHERUSER = 1, | |
174 BIND_JUSTTESTEXISTENCE = 2 | |
175 } | |
176 | |
177 interface IBindCtx : IUnknown | |
178 { | |
179 HRESULT RegisterObjectBound( IUnknown punk ); | |
180 HRESULT RevokeObjectBound( IUnknown punk ); | |
181 HRESULT ReleaseBoundObjects(); | |
182 HRESULT SetBindOptions( BIND_OPTS * pbindopts ); | |
183 HRESULT GetBindOptions( BIND_OPTS * pbindopts ); | |
184 HRESULT GetRunningObjectTable( IRunningObjectTable * pprot ); | |
185 HRESULT RegisterObjectParam( LPOLESTR pszKey, IUnknown punk ); | |
186 HRESULT GetObjectParam( LPOLESTR pszKey, IUnknown * ppunk ); | |
187 HRESULT EnumObjectParam( IEnumString * ppenum ); | |
188 HRESULT RevokeObjectParam( LPOLESTR pszKey ); | |
189 } | |
190 alias IBindCtx LPBC; | |
191 alias IBindCtx LPBINDCTX; | |
192 | |
193 interface IEnumMoniker : IUnknown | |
194 { | |
195 HRESULT Next( ULONG celt, IMoniker * rgelt, ULONG *pceltFetched ); | |
196 HRESULT Skip( ULONG celt ); | |
197 HRESULT Reset(); | |
198 HRESULT Clone( IEnumMoniker * ppenum ); | |
199 } | |
200 alias IEnumMoniker LPENUMMONIKER; | |
201 | |
202 interface IRunnableObject : IUnknown | |
203 { | |
204 HRESULT GetRunningClass( LPCLSID lpClsid ); | |
205 HRESULT Run( LPBINDCTX pbc ); | |
206 BOOL IsRunning(); | |
207 HRESULT LockRunning( BOOL fLock, BOOL fLastUnlockCloses ); | |
208 HRESULT SetContainedObject( BOOL fContained ); | |
209 } | |
210 alias IRunnableObject LPRUNNABLEOBJECT; | |
211 | |
212 interface IRunningObjectTable : IUnknown | |
213 { | |
214 HRESULT Register( DWORD grfFlags, IUnknown punkObject, IMoniker pmkObjectName, DWORD *pdwRegister ); | |
215 HRESULT Revoke ( DWORD dwRegister ); | |
216 HRESULT IsRunning( IMoniker pmkObjectName ); | |
217 HRESULT GetObject( IMoniker pmkObjectName, IUnknown * ppunkObject ); | |
218 HRESULT NoteChangeTime( DWORD dwRegister, FILETIME *pfiletime ); | |
219 HRESULT GetTimeOfLastChange( IMoniker pmkObjectName, FILETIME *pfiletime ); | |
220 HRESULT EnumRunning( IEnumMoniker * ppenumMoniker ); | |
221 } | |
222 alias IRunningObjectTable LPRUNNINGOBJECTTABLE; | |
223 | |
224 interface IPersist : IUnknown | |
225 { | |
226 HRESULT GetClassID( CLSID * pClassID ); | |
227 } | |
228 alias IPersist LPPERSIST; | |
229 | |
230 interface IPersistStream : IPersist | |
231 { | |
232 HRESULT IsDirty( ); | |
233 HRESULT Load( IStream pStm ); | |
234 HRESULT Save( IStream pStm, BOOL fClearDirty ); | |
235 HRESULT GetSizeMax( ULARGE_INTEGER *pcbSize ); | |
236 } | |
237 alias IPersistStream LPPERSISTSTREAM; | |
238 | |
239 // system moniker types; returned from IsSystemMoniker. | |
240 enum MKSYS | |
241 { | |
242 MKSYS_NONE = 0, | |
243 MKSYS_GENERICCOMPOSITE = 1, | |
244 MKSYS_FILEMONIKER = 2, | |
245 MKSYS_ANTIMONIKER = 3, | |
246 MKSYS_ITEMMONIKER = 4, | |
247 MKSYS_POINTERMONIKER = 5, | |
248 // MKSYS_URLMONIKER = 6, | |
249 MKSYS_CLASSMONIKER = 7 | |
250 } | |
251 | |
252 enum MKREDUCE | |
253 { | |
254 MKRREDUCE_ONE = 3<<16, | |
255 MKRREDUCE_TOUSER = 2<<16, | |
256 MKRREDUCE_THROUGHUSER = 1<<16, | |
257 MKRREDUCE_ALL = 0 | |
258 } | |
259 | |
260 interface IMoniker : IPersistStream | |
261 { | |
262 HRESULT BindToObject( IBindCtx pbc, IMoniker pmkToLeft, REFIID riidResult, void **ppvResult ); | |
263 HRESULT BindToStorage( IBindCtx pbc, IMoniker pmkToLeft, REFIID riid, void * ppvObj ); | |
264 HRESULT Reduce( IBindCtx pbc, DWORD dwReduceHowFar, IMoniker * ppmkToLeft, IMoniker * ppmkReduced ); | |
265 HRESULT ComposeWith( IMoniker pmkRight, BOOL fOnlyIfNotGeneric, IMoniker * ppmkComposite ); | |
266 HRESULT Enum( BOOL fForward, IEnumMoniker * ppenumMoniker ); | |
267 HRESULT IsEqual( IMoniker pmkOtherMoniker ); | |
268 HRESULT Hash( DWORD *pdwHash ); | |
269 HRESULT IsRunning( IBindCtx pbc, IMoniker pmkToLeft, IMoniker pmkNewlyRunning ); | |
270 HRESULT GetTimeOfLastChange( IBindCtx pbc, IMoniker pmkToLeft, FILETIME *pFileTime ); | |
271 HRESULT Inverse( IMoniker * ppmk ); | |
272 HRESULT CommonPrefixWith( IMoniker pmkOther, IMoniker * ppmkPrefix ); | |
273 HRESULT RelativePathTo( IMoniker pmkOther, IMoniker * ppmkRelPath ); | |
274 HRESULT GetDisplayName( IBindCtx pbc, IMoniker pmkToLeft, LPOLESTR *ppszDisplayName ); | |
275 HRESULT ParseDisplayName( IBindCtx pbc, IMoniker pmkToLeft, LPOLESTR pszDisplayName, ULONG *pchEaten, IMoniker * ppmkOut ); | |
276 HRESULT IsSystemMoniker( DWORD * pdwMksys ); | |
277 } | |
278 alias IMoniker LPMONIKER; | |
279 | |
280 interface IROTData : IUnknown | |
281 { | |
282 HRESULT GetComparisonData( byte * pbData, ULONG cbMax, ULONG *pcbData ); | |
283 } | |
284 | |
285 interface IEnumString : IUnknown | |
286 { | |
287 HRESULT Next( ULONG celt, LPOLESTR *rgelt, ULONG *pceltFetched ); | |
288 HRESULT Skip( ULONG celt ); | |
289 HRESULT Reset(); | |
290 HRESULT Clone( IEnumString * ppenum ); | |
291 } | |
292 alias IEnumString LPENUMSTRING; | |
293 | |
294 | |
295 /**************************************************************************** | |
296 * Structured Storage Interfaces | |
297 ****************************************************************************/ | |
298 | |
299 interface ISequentialStream : IUnknown | |
300 { | |
301 HRESULT Read( void *pv, ULONG cb, ULONG *pcbRead ); | |
302 HRESULT Write( void *pv, ULONG cb, ULONG *pcbWritten ); | |
303 } | |
304 | |
305 /* Storage stat buffer */ | |
306 struct STATSTG | |
307 { | |
308 LPOLESTR pwcsName; | |
309 DWORD type; | |
310 ULARGE_INTEGER cbSize; | |
311 FILETIME mtime; | |
312 FILETIME ctime; | |
313 FILETIME atime; | |
314 DWORD grfMode; | |
315 DWORD grfLocksSupported; | |
316 CLSID clsid; | |
317 DWORD grfStateBits; | |
318 DWORD reserved; | |
319 } | |
320 | |
321 /* Storage element types */ | |
322 enum STGTY | |
323 { | |
324 STGTY_STORAGE = 1, | |
325 STGTY_STREAM = 2, | |
326 STGTY_LOCKBYTES = 3, | |
327 STGTY_PROPERTY = 4 | |
328 } | |
329 | |
330 enum STREAM_SEEK | |
331 { | |
332 STREAM_SEEK_SET = 0, | |
333 STREAM_SEEK_CUR = 1, | |
334 STREAM_SEEK_END = 2 | |
335 } | |
336 | |
337 enum LOCKTYPE | |
338 { | |
339 LOCK_WRITE = 1, | |
340 LOCK_EXCLUSIVE = 2, | |
341 LOCK_ONLYONCE = 4 | |
342 } | |
343 | |
344 interface IStream : ISequentialStream | |
345 { | |
346 HRESULT Seek( LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition ); | |
347 HRESULT SetSize( ULARGE_INTEGER libNewSize ); | |
348 HRESULT CopyTo( IStream pstm, ULARGE_INTEGER cb, ULARGE_INTEGER *pcbRead, ULARGE_INTEGER *pcbWritten); | |
349 HRESULT Commit( DWORD grfCommitFlags ); | |
350 HRESULT Revert(); | |
351 HRESULT LockRegion( ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType ); | |
352 HRESULT UnlockRegion( ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType ); | |
353 HRESULT Stat( STATSTG *pstatstg, DWORD grfStatFlag); | |
354 HRESULT Clone( IStream * ppstm ); | |
355 } | |
356 alias IStream LPSTREAM; | |
357 | |
358 interface IEnumSTATSTG : IUnknown | |
359 { | |
360 HRESULT Next( ULONG celt, STATSTG *rgelt, ULONG *pceltFetched ); | |
361 HRESULT Skip( ULONG celt ); | |
362 HRESULT Reset(); | |
363 HRESULT Clone( IEnumSTATSTG * ppenum ); | |
364 } | |
365 alias IEnumSTATSTG LPENUMSTATSTG; | |
366 | |
367 struct RemSNB | |
368 { | |
369 ULONG ulCntStr; | |
370 ULONG ulCntChar; | |
371 OLECHAR rgString[]; | |
372 } | |
373 alias RemSNB * wireSNB; | |
374 alias OLECHAR ** SNB; | |
375 | |
376 interface IStorage : IUnknown | |
377 { | |
378 HRESULT CreateStream( OLECHAR *pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream * ppstm); | |
379 HRESULT OpenStream( OLECHAR *pwcsName, void *reserved1, DWORD grfMode, DWORD reserved2, IStream * ppstm); | |
380 HRESULT CreateStorage( OLECHAR *pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStorage * ppstg); | |
381 HRESULT OpenStorage( OLECHAR *pwcsName, IStorage pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage * ppstg ); | |
382 HRESULT CopyTo( DWORD ciidExclude, IID *rgiidExclude, SNB snbExclude, IStorage pstgDest ); | |
383 HRESULT MoveElementTo( OLECHAR * pwcsName, IStorage pstgDest, OLECHAR *pwcsNewName, DWORD grfFlags ); | |
384 HRESULT Commit( DWORD grfCommitFlags ); | |
385 HRESULT Revert(); | |
386 HRESULT EnumElements( DWORD reserved1, void *reserved2, DWORD reserved3, IEnumSTATSTG * ppenum); | |
387 HRESULT DestroyElement( OLECHAR * pwcsName ); | |
388 HRESULT RenameElement( OLECHAR *pwcsOldName, OLECHAR *pwcsNewName ); | |
389 HRESULT SetElementTimes( OLECHAR * pwcsName, FILETIME * pctime, FILETIME *patime, FILETIME *pmtime ); | |
390 HRESULT SetClass( REFCLSID clsid ); | |
391 HRESULT SetStateBits( DWORD grfStateBits, DWORD grfMask ); | |
392 HRESULT Stat( STATSTG *pstatstg, DWORD grfStatFlag ); | |
393 } | |
394 alias IStorage LPSTORAGE; | |
395 | |
396 interface IPersistFile : IPersist | |
397 { | |
398 HRESULT IsDirty(); | |
399 HRESULT Load(LPCOLESTR pszFileName,DWORD dwMode); | |
400 HRESULT Save(LPCOLESTR pszFileName,BOOL fRemember); | |
401 HRESULT SaveCompleted(LPCOLESTR pszFileName); | |
402 HRESULT GetCurFile(LPOLESTR *ppszFileName ); | |
403 } | |
404 alias IPersistFile LPPERSISTFILE; | |
405 | |
406 interface IPersistStorage : IPersist | |
407 { | |
408 HRESULT IsDirty(); | |
409 HRESULT InitNew(IStorage pStg); | |
410 HRESULT Load(IStorage pStg); | |
411 HRESULT Save(IStorage pStgSave,BOOL fSameAsLoad); | |
412 HRESULT SaveCompleted(IStorage pStgNew); | |
413 HRESULT HandsOffStorage(); | |
414 } | |
415 alias IPersistStorage LPPERSISTSTORAGE; | |
416 | |
417 interface ILockBytes : IUnknown | |
418 { | |
419 HRESULT ReadAt( | |
420 ULARGE_INTEGER ulOffset, | |
421 void *pv, | |
422 ULONG cb, | |
423 ULONG *pcbRead); | |
424 | |
425 HRESULT WriteAt( | |
426 ULARGE_INTEGER ulOffset, | |
427 void *pv, | |
428 ULONG cb, | |
429 ULONG *pcbWritten); | |
430 | |
431 HRESULT Flush(); | |
432 | |
433 HRESULT SetSize( | |
434 ULARGE_INTEGER cb); | |
435 | |
436 HRESULT LockRegion( | |
437 ULARGE_INTEGER libOffset, | |
438 ULARGE_INTEGER cb, | |
439 DWORD dwLockType); | |
440 | |
441 HRESULT UnlockRegion( | |
442 ULARGE_INTEGER libOffset, | |
443 ULARGE_INTEGER cb, | |
444 DWORD dwLockType); | |
445 | |
446 HRESULT Stat( | |
447 STATSTG *pstatstg, | |
448 DWORD grfStatFlag); | |
449 } | |
450 alias ILockBytes LPLOCKBYTES; | |
451 | |
452 struct DVTARGETDEVICE { | |
453 DWORD tdSize; | |
454 WORD tdDriverNameOffset; | |
455 WORD tdDeviceNameOffset; | |
456 WORD tdPortNameOffset; | |
457 WORD tdExtDevmodeOffset; | |
458 BYTE[1] tdData; | |
459 } | |
460 | |
461 typedef CLIPFORMAT LPCLIPFORMAT; | |
462 | |
463 struct FORMATETC { | |
464 CLIPFORMAT cfFormat; | |
465 DVTARGETDEVICE * ptd; | |
466 DWORD dwAspect; | |
467 LONG lindex; | |
468 DWORD tymed; | |
469 } | |
470 alias FORMATETC *LPFORMATETC; | |
471 | |
472 interface IEnumFORMATETC : IUnknown | |
473 { | |
474 HRESULT Next( | |
475 ULONG celt, | |
476 FORMATETC *rgelt, | |
477 ULONG *pceltFetched); | |
478 | |
479 HRESULT Skip( | |
480 ULONG celt); | |
481 | |
482 HRESULT Reset(); | |
483 | |
484 HRESULT Clone( | |
485 IEnumFORMATETC * ppenum); | |
486 } | |
487 alias IEnumFORMATETC LPENUMFORMATETC; | |
488 | |
489 //Advise Flags | |
490 enum ADVF | |
491 { | |
492 ADVF_NODATA = 1, | |
493 ADVF_PRIMEFIRST = 2, | |
494 ADVF_ONLYONCE = 4, | |
495 ADVF_DATAONSTOP = 64, | |
496 ADVFCACHE_NOHANDLER = 8, | |
497 ADVFCACHE_FORCEBUILTIN = 16, | |
498 ADVFCACHE_ONSAVE = 32 | |
499 } | |
500 | |
501 // Stats for data; used by several enumerations and by at least one | |
502 // implementation of IDataAdviseHolder; if a field is not used, it | |
503 // will be NULL. | |
504 | |
505 struct STATDATA | |
506 { // field used by: | |
507 FORMATETC formatetc; // EnumAdvise, EnumData (cache), EnumFormats | |
508 DWORD advf; // EnumAdvise, EnumData (cache) | |
509 IAdviseSink pAdvSink; // EnumAdvise | |
510 DWORD dwConnection; // EnumAdvise | |
511 } | |
512 alias STATDATA * LPSTATDATA; | |
513 | |
514 interface IEnumSTATDATA : IUnknown | |
515 { | |
516 HRESULT Next( | |
517 ULONG celt, | |
518 STATDATA *rgelt, | |
519 ULONG *pceltFetched); | |
520 | |
521 | |
522 HRESULT Skip( | |
523 ULONG celt); | |
524 | |
525 HRESULT Reset(); | |
526 | |
527 HRESULT Clone( | |
528 IEnumSTATDATA * ppenum); | |
529 } | |
530 alias IEnumSTATDATA LPENUMSTATDATA; | |
531 | |
532 interface IRootStorage : IUnknown | |
533 { | |
534 HRESULT SwitchToFile( LPOLESTR pszFile ); | |
535 } | |
536 alias IRootStorage LPROOTSTORAGE; | |
537 | |
538 | |
539 /**************************************************************************** | |
540 * Notification Interfaces | |
541 ****************************************************************************/ | |
542 | |
543 enum TYMED { | |
544 TYMED_HGLOBAL = 1, | |
545 TYMED_FILE = 2, | |
546 TYMED_ISTREAM = 4, | |
547 TYMED_ISTORAGE = 8, | |
548 TYMED_GDI = 16, | |
549 TYMED_MFPICT = 32, | |
550 TYMED_ENHMF = 64, | |
551 TYMED_NULL = 0 | |
552 } | |
553 | |
554 struct RemSTGMEDIUM { | |
555 DWORD tymed; | |
556 DWORD dwHandleType; | |
557 ULONG pData; | |
558 ULONG pUnkForRelease; | |
559 ULONG cbData; | |
560 byte[1] data; | |
561 } | |
562 | |
563 union UNION_u { | |
564 HBITMAP hBitmap; | |
565 HMETAFILEPICT hMetaFilePict; | |
566 HENHMETAFILE hEnhMetaFile; | |
567 HGLOBAL hGlobal; | |
568 LPOLESTR lpszFileName; | |
569 IStream pstm; | |
570 IStorage pstg; | |
571 } | |
572 /* | |
573 struct uSTGMEDIUM { | |
574 DWORD tymed; | |
575 UNION_u u; | |
576 IUnknown pUnkForRelease; | |
577 } | |
578 */ | |
579 // <Shawn Liu> modified | |
580 struct uSTGMEDIUM { | |
581 DWORD tymed; | |
582 void* unionField; | |
583 IUnknown pUnkForRelease; | |
584 } | |
585 | |
586 | |
587 enum { | |
588 OBJ_PEN =1, | |
589 OBJ_BRUSH =2, | |
590 OBJ_DC =3, | |
591 OBJ_METADC =4, | |
592 OBJ_PAL =5, | |
593 OBJ_FONT =6, | |
594 OBJ_BITMAP =7, | |
595 OBJ_REGION =8, | |
596 OBJ_METAFILE =9, | |
597 OBJ_MEMDC =10, | |
598 OBJ_EXTPEN =11, | |
599 OBJ_ENHMETADC =12, | |
600 OBJ_ENHMETAFILE =13 | |
601 } | |
602 union __MIDL_IAdviseSink_0002 | |
603 { | |
604 wireHBITMAP hBitmap; | |
605 wireHPALETTE hPalette; | |
606 wireHGLOBAL hGeneric; | |
607 } | |
608 | |
609 struct GDI_OBJECT | |
610 { | |
611 DWORD ObjectType; | |
612 __MIDL_IAdviseSink_0002 u; | |
613 } | |
614 | |
615 union __MIDL_IAdviseSink_0003 | |
616 { | |
617 wireHMETAFILEPICT hMetaFilePict; | |
618 wireHENHMETAFILE hHEnhMetaFile; | |
619 GDI_OBJECT *hGdiHandle; | |
620 wireHGLOBAL hGlobal; | |
621 LPOLESTR lpszFileName; | |
622 BYTE_BLOB *pstm; | |
623 BYTE_BLOB *pstg; | |
624 } | |
625 | |
626 struct userSTGMEDIUM | |
627 { | |
628 DWORD tymed; | |
629 __MIDL_IAdviseSink_0003 u; | |
630 IUnknown pUnkForRelease; | |
631 } | |
632 | |
633 alias userSTGMEDIUM *wireSTGMEDIUM; | |
634 alias uSTGMEDIUM STGMEDIUM; | |
635 alias userSTGMEDIUM *wireASYNC_STGMEDIUM; | |
636 alias STGMEDIUM ASYNC_STGMEDIUM; | |
637 alias STGMEDIUM *LPSTGMEDIUM; | |
638 | |
639 struct userFLAG_STGMEDIUM | |
640 { | |
641 LONG ContextFlags; | |
642 LONG fPassOwnership; | |
643 userSTGMEDIUM Stgmed; | |
644 } | |
645 | |
646 alias userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM; | |
647 | |
648 struct FLAG_STGMEDIUM | |
649 { | |
650 LONG ContextFlags; | |
651 LONG fPassOwnership; | |
652 STGMEDIUM Stgmed; | |
653 } | |
654 | |
655 | |
656 interface IAdviseSink : IUnknown | |
657 { | |
658 void OnDataChange(FORMATETC *pFormatetc,STGMEDIUM *pStgmed); | |
659 void OnViewChange(DWORD dwAspect,LONG lindex); | |
660 void OnRename(IMoniker pmk); | |
661 void OnSave(); | |
662 void OnClose(); | |
663 } | |
664 alias IAdviseSink LPADVISESINK; | |
665 | |
666 interface IAdviseSink2 : IAdviseSink | |
667 { | |
668 void OnLinkSrcChange( IMoniker pmk ); | |
669 } | |
670 alias IAdviseSink2 LPADVISESINK2; | |
671 | |
672 | |
673 enum DATADIR | |
674 { | |
675 DATADIR_GET = 1, | |
676 DATADIR_SET = 2 | |
677 } | |
678 | |
679 interface IDataObject : IUnknown | |
680 { | |
681 | |
682 HRESULT GetData( FORMATETC *pformatetcIn, STGMEDIUM *pmedium); | |
683 | |
684 HRESULT GetDataHere( FORMATETC *pformatetc, STGMEDIUM *pmedium); | |
685 | |
686 HRESULT QueryGetData( FORMATETC *pformatetc); | |
687 | |
688 HRESULT GetCanonicalFormatEtc( | |
689 FORMATETC *pformatectIn, | |
690 FORMATETC *pformatetcOut); | |
691 | |
692 HRESULT SetData( | |
693 FORMATETC *pformatetc, | |
694 STGMEDIUM *pmedium, | |
695 BOOL fRelease); | |
696 | |
697 HRESULT EnumFormatEtc( | |
698 DWORD dwDirection, | |
699 IEnumFORMATETC * ppenumFormatEtc); | |
700 | |
701 HRESULT DAdvise( | |
702 FORMATETC *pformatetc, | |
703 DWORD advf, | |
704 IAdviseSink pAdvSink, | |
705 DWORD *pdwConnection); | |
706 | |
707 HRESULT DUnadvise(DWORD dwConnection); | |
708 | |
709 HRESULT EnumDAdvise(IEnumSTATDATA * ppenumAdvise); | |
710 | |
711 } | |
712 alias IDataObject LPDATAOBJECT; | |
713 | |
714 interface IDataAdviseHolder : IUnknown | |
715 { | |
716 HRESULT Advise | |
717 ( | |
718 IDataObject pDataObject, | |
719 FORMATETC *pFetc, | |
720 DWORD advf, | |
721 IAdviseSink pAdvise, | |
722 DWORD *pdwConnection | |
723 ); | |
724 | |
725 HRESULT Unadvise | |
726 ( | |
727 DWORD dwConnection | |
728 ); | |
729 | |
730 HRESULT EnumAdvise | |
731 ( | |
732 IEnumSTATDATA * ppenumAdvise | |
733 ); | |
734 | |
735 HRESULT SendOnDataChange | |
736 ( | |
737 IDataObject pDataObject, | |
738 DWORD dwReserved, | |
739 DWORD advf | |
740 ); | |
741 | |
742 } | |
743 alias IDataAdviseHolder LPDATAADVISEHOLDER; | |
744 | |
745 | |
746 // call type used by IMessageFilter::HandleIncomingMessage | |
747 enum CALLTYPE | |
748 { | |
749 CALLTYPE_TOPLEVEL = 1, // toplevel call - no outgoing call | |
750 CALLTYPE_NESTED = 2, // callback on behalf of previous outgoing call - should always handle | |
751 CALLTYPE_ASYNC = 3, // aysnchronous call - can NOT be rejected | |
752 CALLTYPE_TOPLEVEL_CALLPENDING = 4, // new toplevel call with new LID | |
753 CALLTYPE_ASYNC_CALLPENDING = 5 // async call - can NOT be rejected | |
754 } | |
755 | |
756 // status of server call - returned by IMessageFilter::HandleIncomingCall | |
757 // and passed to IMessageFilter::RetryRejectedCall | |
758 enum SERVERCALL | |
759 { | |
760 SERVERCALL_ISHANDLED = 0, | |
761 SERVERCALL_REJECTED = 1, | |
762 SERVERCALL_RETRYLATER = 2 | |
763 } | |
764 | |
765 // Pending type indicates the level of nesting | |
766 enum PENDINGTYPE | |
767 { | |
768 PENDINGTYPE_TOPLEVEL = 1, // toplevel call | |
769 PENDINGTYPE_NESTED = 2 // nested call | |
770 } | |
771 | |
772 // return values of MessagePending | |
773 enum PENDINGMSG | |
774 { | |
775 PENDINGMSG_CANCELCALL = 0, // cancel the outgoing call | |
776 PENDINGMSG_WAITNOPROCESS = 1, // wait for the return and don't dispatch the message | |
777 PENDINGMSG_WAITDEFPROCESS = 2 // wait and dispatch the message | |
778 | |
779 } | |
780 | |
781 // additional interface information about the incoming call | |
782 struct INTERFACEINFO | |
783 { | |
784 IUnknown pUnk; // the pointer to the object | |
785 IID iid; // interface id | |
786 WORD wMethod; // interface method | |
787 } | |
788 alias INTERFACEINFO *LPINTERFACEINFO; | |
789 | |
790 | |
791 interface IMessageFilter : IUnknown | |
792 { | |
793 | |
794 DWORD HandleInComingCall | |
795 ( | |
796 DWORD dwCallType, | |
797 HTASK htaskCaller, | |
798 DWORD dwTickCount, | |
799 LPINTERFACEINFO lpInterfaceInfo | |
800 ); | |
801 | |
802 DWORD RetryRejectedCall | |
803 ( | |
804 HTASK htaskCallee, | |
805 DWORD dwTickCount, | |
806 DWORD dwRejectType | |
807 ); | |
808 | |
809 DWORD MessagePending | |
810 ( | |
811 HTASK htaskCallee, | |
812 DWORD dwTickCount, | |
813 DWORD dwPendingType | |
814 ); | |
815 } | |
816 alias IMessageFilter LPMESSAGEFILTER; | |
817 | |
818 | |
819 | |
820 /**************************************************************************** | |
821 * Object Remoting Interfaces | |
822 ****************************************************************************/ | |
823 /* | |
824 interface IRpcChannelBuffer : IUnknown | |
825 { | |
826 | |
827 typedef unsigned long RPCOLEDATAREP; | |
828 | |
829 typedef struct tagRPCOLEMESSAGE | |
830 { | |
831 void *reserved1; | |
832 RPCOLEDATAREP dataRepresentation; | |
833 void *Buffer; | |
834 ULONG cbBuffer; | |
835 ULONG iMethod; | |
836 void *reserved2[5]; | |
837 ULONG rpcFlags; | |
838 } RPCOLEMESSAGE; | |
839 | |
840 typedef RPCOLEMESSAGE *PRPCOLEMESSAGE; | |
841 | |
842 HRESULT GetBuffer | |
843 ( | |
844 [in] RPCOLEMESSAGE *pMessage, | |
845 [in] REFIID riid | |
846 ); | |
847 | |
848 HRESULT SendReceive | |
849 ( | |
850 [in,out] RPCOLEMESSAGE *pMessage, | |
851 [out] ULONG *pStatus | |
852 ); | |
853 | |
854 HRESULT FreeBuffer | |
855 ( | |
856 [in] RPCOLEMESSAGE *pMessage | |
857 ); | |
858 | |
859 HRESULT GetDestCtx | |
860 ( | |
861 [out] DWORD *pdwDestContext, | |
862 [out] void **ppvDestContext | |
863 ); | |
864 | |
865 HRESULT IsConnected | |
866 ( | |
867 void | |
868 ); | |
869 | |
870 } | |
871 | |
872 [ | |
873 local, | |
874 object, | |
875 uuid(594f31d0-7f19-11d0-b194-00a0c90dc8bf) | |
876 ] | |
877 interface IRpcChannelBuffer2 : IRpcChannelBuffer | |
878 { | |
879 | |
880 HRESULT GetProtocolVersion | |
881 ( | |
882 [in,out] DWORD *pdwVersion | |
883 ); | |
884 } | |
885 | |
886 [ | |
887 local, | |
888 object, | |
889 uuid(25B15600-0115-11d0-BF0D-00AA00B8DFD2) | |
890 ] | |
891 interface IRpcChannelBuffer3 : IRpcChannelBuffer2 | |
892 { | |
893 | |
894 HRESULT Send | |
895 ( | |
896 [in,out] RPCOLEMESSAGE *pMsg, | |
897 [out] ULONG *pulStatus | |
898 ); | |
899 | |
900 HRESULT Receive | |
901 ( | |
902 [in,out] RPCOLEMESSAGE *pMsg, | |
903 [in] ULONG ulSize, | |
904 [out] ULONG *pulStatus | |
905 ); | |
906 | |
907 HRESULT Cancel | |
908 ( | |
909 [in] RPCOLEMESSAGE *pMsg | |
910 ); | |
911 | |
912 HRESULT GetCallContext | |
913 ( | |
914 [in] RPCOLEMESSAGE *pMsg, | |
915 [in] REFIID riid, | |
916 [out] void **pInterface | |
917 ); | |
918 | |
919 HRESULT GetDestCtxEx | |
920 ( | |
921 [in] RPCOLEMESSAGE *pMsg, | |
922 [out] DWORD *pdwDestContext, | |
923 [out] void **ppvDestContext | |
924 ); | |
925 | |
926 HRESULT GetState | |
927 ( | |
928 [in] RPCOLEMESSAGE *pMsg, | |
929 [out] DWORD *pState | |
930 ); | |
931 | |
932 HRESULT RegisterAsync | |
933 ( | |
934 [in] RPCOLEMESSAGE *pMsg, | |
935 [in] IAsyncManager *pAsyncMgr | |
936 ); | |
937 | |
938 } | |
939 | |
940 | |
941 [ | |
942 local, | |
943 object, | |
944 uuid(D5F56A34-593B-101A-B569-08002B2DBF7A) | |
945 ] | |
946 interface IRpcProxyBuffer : IUnknown | |
947 { | |
948 | |
949 HRESULT Connect | |
950 ( | |
951 [in, unique] IRpcChannelBuffer *pRpcChannelBuffer | |
952 ); | |
953 | |
954 void Disconnect | |
955 ( | |
956 void | |
957 ); | |
958 | |
959 } | |
960 | |
961 [ | |
962 local, | |
963 object, | |
964 uuid(D5F56AFC-593B-101A-B569-08002B2DBF7A) | |
965 ] | |
966 interface IRpcStubBuffer : IUnknown | |
967 { | |
968 | |
969 HRESULT Connect | |
970 ( | |
971 [in] IUnknown *pUnkServer | |
972 ); | |
973 | |
974 void Disconnect(); | |
975 | |
976 HRESULT Invoke | |
977 ( | |
978 [in] RPCOLEMESSAGE *_prpcmsg, | |
979 [in] IRpcChannelBuffer *_pRpcChannelBuffer | |
980 ); | |
981 | |
982 IRpcStubBuffer *IsIIDSupported | |
983 ( | |
984 [in] REFIID riid | |
985 ); | |
986 | |
987 ULONG CountRefs | |
988 ( | |
989 void | |
990 ); | |
991 | |
992 HRESULT DebugServerQueryInterface | |
993 ( | |
994 void **ppv | |
995 ); | |
996 | |
997 void DebugServerRelease | |
998 ( | |
999 void *pv | |
1000 ); | |
1001 | |
1002 } | |
1003 | |
1004 | |
1005 | |
1006 [ | |
1007 local, | |
1008 object, | |
1009 uuid(D5F569D0-593B-101A-B569-08002B2DBF7A) | |
1010 ] | |
1011 interface IPSFactoryBuffer : IUnknown | |
1012 { | |
1013 | |
1014 HRESULT CreateProxy | |
1015 ( | |
1016 [in] IUnknown *pUnkOuter, | |
1017 [in] REFIID riid, | |
1018 [out] IRpcProxyBuffer **ppProxy, | |
1019 [out] void **ppv | |
1020 ); | |
1021 | |
1022 HRESULT CreateStub | |
1023 ( | |
1024 [in] REFIID riid, | |
1025 [in, unique] IUnknown *pUnkServer, | |
1026 [out] IRpcStubBuffer **ppStub | |
1027 ); | |
1028 } | |
1029 | |
1030 cpp_quote( "#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM" ) | |
1031 cpp_quote( "// This interface is only valid on Windows NT 4.0" ) | |
1032 | |
1033 // This structure contains additional data for hooks. As a backward | |
1034 // compatability hack, the entire structure is passed in place of the | |
1035 // RIID parameter on all hook methods. Thus the IID must be the first | |
1036 // parameter. As a forward compatability hack the second field is the | |
1037 // current size of the structure. | |
1038 typedef struct SChannelHookCallInfo | |
1039 { | |
1040 IID iid; | |
1041 DWORD cbSize; | |
1042 GUID uCausality; | |
1043 DWORD dwServerPid; | |
1044 DWORD iMethod; | |
1045 void *pObject; | |
1046 } SChannelHookCallInfo; | |
1047 | |
1048 [ | |
1049 local, | |
1050 object, | |
1051 uuid(1008c4a0-7613-11cf-9af1-0020af6e72f4) | |
1052 ] | |
1053 interface IChannelHook : IUnknown | |
1054 { | |
1055 void ClientGetSize( | |
1056 [in] REFGUID uExtent, | |
1057 [in] REFIID riid, | |
1058 [out] ULONG *pDataSize ); | |
1059 | |
1060 void ClientFillBuffer( | |
1061 [in] REFGUID uExtent, | |
1062 [in] REFIID riid, | |
1063 [in, out] ULONG *pDataSize, | |
1064 [in] void *pDataBuffer ); | |
1065 | |
1066 void ClientNotify( | |
1067 [in] REFGUID uExtent, | |
1068 [in] REFIID riid, | |
1069 [in] ULONG cbDataSize, | |
1070 [in] void *pDataBuffer, | |
1071 [in] DWORD lDataRep, | |
1072 [in] HRESULT hrFault ); | |
1073 | |
1074 void ServerNotify( | |
1075 [in] REFGUID uExtent, | |
1076 [in] REFIID riid, | |
1077 [in] ULONG cbDataSize, | |
1078 [in] void *pDataBuffer, | |
1079 [in] DWORD lDataRep ); | |
1080 | |
1081 void ServerGetSize( | |
1082 [in] REFGUID uExtent, | |
1083 [in] REFIID riid, | |
1084 [in] HRESULT hrFault, | |
1085 [out] ULONG *pDataSize ); | |
1086 | |
1087 void ServerFillBuffer( | |
1088 [in] REFGUID uExtent, | |
1089 [in] REFIID riid, | |
1090 [in, out] ULONG *pDataSize, | |
1091 [in] void *pDataBuffer, | |
1092 [in] HRESULT hrFault ); | |
1093 }; | |
1094 | |
1095 cpp_quote( "#endif //DCOM" ) | |
1096 */ | |
1097 | |
1098 /**************************************************************************** | |
1099 * Property Storage Interfaces | |
1100 ****************************************************************************/ | |
1101 | |
1102 /* | |
1103 interface IPropertyStorage; | |
1104 interface IEnumSTATPROPSTG; | |
1105 interface IEnumSTATPROPSETSTG; | |
1106 | |
1107 [ | |
1108 object, | |
1109 uuid(00000138-0000-0000-C000-000000000046), | |
1110 pointer_default(unique) | |
1111 ] | |
1112 | |
1113 interface IPropertyStorage : IUnknown | |
1114 { | |
1115 | |
1116 cpp_quote("") | |
1117 cpp_quote("// Well-known Property Set Format IDs") | |
1118 extern const FMTID FMTID_SummaryInformation; | |
1119 extern const FMTID FMTID_DocSummaryInformation; | |
1120 extern const FMTID FMTID_UserDefinedProperties; | |
1121 | |
1122 cpp_quote("") | |
1123 cpp_quote("// Flags for IPropertySetStorage::Create") | |
1124 const DWORD PROPSETFLAG_DEFAULT = 0; | |
1125 const DWORD PROPSETFLAG_NONSIMPLE = 1; | |
1126 const DWORD PROPSETFLAG_ANSI = 2; | |
1127 cpp_quote("// This flag is only supported on StgCreatePropStg & StgOpenPropStg") | |
1128 const DWORD PROPSETFLAG_UNBUFFERED = 4; | |
1129 | |
1130 typedef [unique] IPropertyStorage * LPPROPERTYSTORAGE; | |
1131 | |
1132 typedef struct tagPROPVARIANT PROPVARIANT; | |
1133 | |
1134 #define TYPEDEF_CA(type, name) \ | |
1135 typedef struct tag##name\ | |
1136 {\ | |
1137 ULONG cElems;\ | |
1138 [size_is( cElems )]\ | |
1139 type * pElems;\ | |
1140 } name | |
1141 | |
1142 TYPEDEF_CA(unsigned char, CAUB); | |
1143 TYPEDEF_CA(short, CAI); | |
1144 TYPEDEF_CA(USHORT, CAUI); | |
1145 TYPEDEF_CA(long, CAL); | |
1146 TYPEDEF_CA(ULONG, CAUL); | |
1147 TYPEDEF_CA(float, CAFLT); | |
1148 TYPEDEF_CA(double, CADBL); | |
1149 TYPEDEF_CA(CY, CACY); | |
1150 TYPEDEF_CA(DATE, CADATE); | |
1151 TYPEDEF_CA(BSTR, CABSTR); | |
1152 TYPEDEF_CA(BSTRBLOB, CABSTRBLOB); | |
1153 TYPEDEF_CA(VARIANT_BOOL, CABOOL); | |
1154 TYPEDEF_CA(SCODE, CASCODE); | |
1155 TYPEDEF_CA(PROPVARIANT, CAPROPVARIANT); | |
1156 TYPEDEF_CA(LARGE_INTEGER, CAH); | |
1157 TYPEDEF_CA(ULARGE_INTEGER, CAUH); | |
1158 TYPEDEF_CA(LPSTR, CALPSTR); | |
1159 TYPEDEF_CA(LPWSTR, CALPWSTR); | |
1160 TYPEDEF_CA(FILETIME, CAFILETIME); | |
1161 TYPEDEF_CA(CLIPDATA, CACLIPDATA); | |
1162 TYPEDEF_CA(CLSID, CACLSID); | |
1163 | |
1164 cpp_quote("// Disable the warning about the obsolete member named 'bool'") | |
1165 cpp_quote("// 'bool', 'true', 'false', 'mutable', 'explicit', & 'typename'") | |
1166 cpp_quote("// are reserved keywords") | |
1167 cpp_quote("#pragma warning(disable:4237)") | |
1168 | |
1169 struct tagPROPVARIANT | |
1170 { | |
1171 VARTYPE vt; | |
1172 WORD wReserved1; | |
1173 WORD wReserved2; | |
1174 WORD wReserved3; | |
1175 [switch_is((unsigned short) (vt & 0x1fff))] union | |
1176 { | |
1177 [case(VT_EMPTY, VT_NULL)] | |
1178 ; | |
1179 [case(VT_UI1)] | |
1180 UCHAR bVal; | |
1181 [case(VT_I2)] | |
1182 short iVal; | |
1183 [case(VT_UI2)] | |
1184 USHORT uiVal; | |
1185 [case(VT_BOOL)] | |
1186 VARIANT_BOOL boolVal; | |
1187 [case(VT_ILLEGAL)] // obsolete field name; use boolVal | |
1188 _VARIANT_BOOL bool; | |
1189 [case(VT_I4)] | |
1190 long lVal; | |
1191 [case(VT_UI4)] | |
1192 ULONG ulVal; | |
1193 [case(VT_R4)] | |
1194 float fltVal; | |
1195 [case(VT_ERROR)] | |
1196 SCODE scode; | |
1197 [case(VT_I8)] | |
1198 LARGE_INTEGER hVal; | |
1199 [case(VT_UI8)] | |
1200 ULARGE_INTEGER uhVal; | |
1201 [case(VT_R8)] | |
1202 double dblVal; | |
1203 [case(VT_CY)] | |
1204 CY cyVal; | |
1205 [case(VT_DATE)] | |
1206 DATE date; | |
1207 [case(VT_FILETIME)] | |
1208 FILETIME filetime; | |
1209 [case(VT_CLSID)] | |
1210 CLSID * puuid; | |
1211 [case(VT_BLOB, VT_BLOB_OBJECT)] | |
1212 BLOB blob; | |
1213 [case(VT_CF)] | |
1214 CLIPDATA *pclipdata; | |
1215 [case(VT_STREAM, VT_STREAMED_OBJECT)] | |
1216 IStream * pStream; | |
1217 [case(VT_STORAGE, VT_STORED_OBJECT)] | |
1218 IStorage * pStorage; | |
1219 [case(VT_BSTR)] | |
1220 BSTR bstrVal; | |
1221 [case(VT_BSTR_BLOB)] // System use only | |
1222 BSTRBLOB bstrblobVal; | |
1223 [case(VT_LPSTR)] | |
1224 LPSTR pszVal; | |
1225 [case(VT_LPWSTR)] | |
1226 LPWSTR pwszVal; | |
1227 [case(VT_UI1|VT_VECTOR)] | |
1228 CAUB caub; | |
1229 [case(VT_I2|VT_VECTOR)] | |
1230 CAI cai; | |
1231 [case(VT_UI2|VT_VECTOR)] | |
1232 CAUI caui; | |
1233 [case(VT_BOOL|VT_VECTOR)] | |
1234 CABOOL cabool; | |
1235 [case(VT_I4|VT_VECTOR)] | |
1236 CAL cal; | |
1237 [case(VT_UI4|VT_VECTOR)] | |
1238 CAUL caul; | |
1239 [case(VT_R4|VT_VECTOR)] | |
1240 CAFLT caflt; | |
1241 [case(VT_ERROR|VT_VECTOR)] | |
1242 CASCODE cascode; | |
1243 [case(VT_I8|VT_VECTOR)] | |
1244 CAH cah; | |
1245 [case(VT_UI8|VT_VECTOR)] | |
1246 CAUH cauh; | |
1247 [case(VT_R8|VT_VECTOR)] | |
1248 CADBL cadbl; | |
1249 [case(VT_CY|VT_VECTOR)] | |
1250 CACY cacy; | |
1251 [case(VT_DATE|VT_VECTOR)] | |
1252 CADATE cadate; | |
1253 [case(VT_FILETIME|VT_VECTOR)] | |
1254 CAFILETIME cafiletime; | |
1255 [case(VT_CLSID|VT_VECTOR)] | |
1256 CACLSID cauuid; | |
1257 [case(VT_CF|VT_VECTOR)] | |
1258 CACLIPDATA caclipdata; | |
1259 [case(VT_BSTR|VT_VECTOR)] | |
1260 CABSTR cabstr; | |
1261 [case(VT_BSTR_BLOB|VT_VECTOR)] // System use only | |
1262 CABSTRBLOB cabstrblob; | |
1263 [case(VT_LPSTR|VT_VECTOR)] | |
1264 CALPSTR calpstr; | |
1265 [case(VT_LPWSTR|VT_VECTOR)] | |
1266 CALPWSTR calpwstr; | |
1267 [case(VT_VARIANT|VT_VECTOR)] | |
1268 CAPROPVARIANT capropvar; | |
1269 }; | |
1270 }; | |
1271 | |
1272 typedef struct tagPROPVARIANT * LPPROPVARIANT; | |
1273 | |
1274 cpp_quote("// Reserved global Property IDs") | |
1275 const PROPID PID_DICTIONARY = 0x00000000; | |
1276 const PROPID PID_CODEPAGE = 0x00000001; | |
1277 const PROPID PID_FIRST_USABLE = 0x00000002; | |
1278 const PROPID PID_FIRST_NAME_DEFAULT = 0x00000fff; | |
1279 const PROPID PID_LOCALE = 0x80000000; | |
1280 const PROPID PID_MODIFY_TIME = 0x80000001; | |
1281 const PROPID PID_SECURITY = 0x80000002; | |
1282 const PROPID PID_ILLEGAL = 0xffffffff; | |
1283 | |
1284 | |
1285 cpp_quote("// Property IDs for the SummaryInformation Property Set") | |
1286 cpp_quote("") | |
1287 cpp_quote("#define PIDSI_TITLE 0x00000002L // VT_LPSTR") | |
1288 cpp_quote("#define PIDSI_SUBJECT 0x00000003L // VT_LPSTR") | |
1289 cpp_quote("#define PIDSI_AUTHOR 0x00000004L // VT_LPSTR") | |
1290 cpp_quote("#define PIDSI_KEYWORDS 0x00000005L // VT_LPSTR") | |
1291 cpp_quote("#define PIDSI_COMMENTS 0x00000006L // VT_LPSTR") | |
1292 cpp_quote("#define PIDSI_TEMPLATE 0x00000007L // VT_LPSTR") | |
1293 cpp_quote("#define PIDSI_LASTAUTHOR 0x00000008L // VT_LPSTR") | |
1294 cpp_quote("#define PIDSI_REVNUMBER 0x00000009L // VT_LPSTR") | |
1295 cpp_quote("#define PIDSI_EDITTIME 0x0000000aL // VT_FILETIME (UTC)") | |
1296 cpp_quote("#define PIDSI_LASTPRINTED 0x0000000bL // VT_FILETIME (UTC)") | |
1297 cpp_quote("#define PIDSI_CREATE_DTM 0x0000000cL // VT_FILETIME (UTC)") | |
1298 cpp_quote("#define PIDSI_LASTSAVE_DTM 0x0000000dL // VT_FILETIME (UTC)") | |
1299 cpp_quote("#define PIDSI_PAGECOUNT 0x0000000eL // VT_I4") | |
1300 cpp_quote("#define PIDSI_WORDCOUNT 0x0000000fL // VT_I4") | |
1301 cpp_quote("#define PIDSI_CHARCOUNT 0x00000010L // VT_I4") | |
1302 cpp_quote("#define PIDSI_THUMBNAIL 0x00000011L // VT_CF") | |
1303 cpp_quote("#define PIDSI_APPNAME 0x00000012L // VT_LPSTR") | |
1304 cpp_quote("#define PIDSI_DOC_SECURITY 0x00000013L // VT_I4") | |
1305 | |
1306 const ULONG PRSPEC_INVALID = 0xffffffff; | |
1307 const ULONG PRSPEC_LPWSTR = 0; | |
1308 const ULONG PRSPEC_PROPID = 1; | |
1309 | |
1310 typedef struct tagPROPSPEC | |
1311 { | |
1312 | |
1313 ULONG ulKind; | |
1314 [switch_is(ulKind)] union | |
1315 { | |
1316 [case(PRSPEC_PROPID)] | |
1317 PROPID propid; | |
1318 [case(PRSPEC_LPWSTR)] | |
1319 LPOLESTR lpwstr; | |
1320 [default] ; | |
1321 } ; | |
1322 | |
1323 } PROPSPEC; | |
1324 | |
1325 typedef struct tagSTATPROPSTG | |
1326 { | |
1327 | |
1328 LPOLESTR lpwstrName; | |
1329 PROPID propid; | |
1330 VARTYPE vt; | |
1331 | |
1332 } STATPROPSTG; | |
1333 | |
1334 cpp_quote("// Macros for parsing the OS Version of the Property Set Header") | |
1335 cpp_quote("#define PROPSETHDR_OSVER_KIND(dwOSVer) HIWORD( (dwOSVer) )") | |
1336 cpp_quote("#define PROPSETHDR_OSVER_MAJOR(dwOSVer) LOBYTE(LOWORD( (dwOSVer) ))") | |
1337 cpp_quote("#define PROPSETHDR_OSVER_MINOR(dwOSVer) HIBYTE(LOWORD( (dwOSVer) ))") | |
1338 cpp_quote("#define PROPSETHDR_OSVERSION_UNKNOWN 0xFFFFFFFF") | |
1339 | |
1340 | |
1341 typedef struct tagSTATPROPSETSTG | |
1342 { | |
1343 | |
1344 FMTID fmtid; | |
1345 CLSID clsid; | |
1346 DWORD grfFlags; | |
1347 FILETIME mtime; | |
1348 FILETIME ctime; | |
1349 FILETIME atime; | |
1350 DWORD dwOSVersion; | |
1351 | |
1352 } STATPROPSETSTG; | |
1353 | |
1354 | |
1355 // When this IDL file is used for "IProp.dll" (the | |
1356 // standalone property set DLL), we must have local | |
1357 // and remotable routines (call_as routines are used | |
1358 // to remove BSTRs, which are not remotable with some | |
1359 // RPC run-times). | |
1360 // | |
1361 // For the remotable routines, we must use pointer | |
1362 // parameters (e.g. "*rgspec" rather than "rgspec[]") | |
1363 // so that the MIDL 2.0 compiler will generate an | |
1364 // interpereted proxy/stub, rather than inline. | |
1365 | |
1366 #ifdef IPROPERTY_DLL | |
1367 [local] | |
1368 #endif | |
1369 HRESULT ReadMultiple( | |
1370 [in] ULONG cpspec, | |
1371 [in, size_is(cpspec)] | |
1372 const PROPSPEC rgpspec[], | |
1373 [out, size_is(cpspec)] | |
1374 PROPVARIANT rgpropvar[] | |
1375 ); | |
1376 | |
1377 #ifdef IPROPERTY_DLL | |
1378 [call_as(ReadMultiple)] | |
1379 HRESULT RemoteReadMultiple( | |
1380 [out] BOOL *pfBstrPresent, | |
1381 [in] ULONG cpspec, | |
1382 [in, size_is(cpspec)] | |
1383 const PROPSPEC *rgpspec, | |
1384 [out, size_is(cpspec)] | |
1385 PROPVARIANT *rgpropvar | |
1386 ); | |
1387 #endif | |
1388 | |
1389 #ifdef IPROPERTY_DLL | |
1390 [local] | |
1391 #endif | |
1392 HRESULT WriteMultiple( | |
1393 [in] ULONG cpspec, | |
1394 [in, size_is(cpspec)] | |
1395 const PROPSPEC rgpspec[], | |
1396 [in, size_is(cpspec)] | |
1397 const PROPVARIANT rgpropvar[], | |
1398 [in] PROPID propidNameFirst | |
1399 ); | |
1400 | |
1401 #ifdef IPROPERTY_DLL | |
1402 [call_as(WriteMultiple)] | |
1403 HRESULT RemoteWriteMultiple( | |
1404 [in] BOOL fBstrPresent, | |
1405 [in] ULONG cpspec, | |
1406 [in, size_is(cpspec)] | |
1407 const PROPSPEC *rgpspec, | |
1408 [in, size_is(cpspec)] | |
1409 const PROPVARIANT *rgpropvar, | |
1410 [in] PROPID propidNameFirst | |
1411 ); | |
1412 #endif | |
1413 | |
1414 #ifdef IPROPERTY_DLL | |
1415 [local] | |
1416 #endif | |
1417 HRESULT DeleteMultiple( | |
1418 [in] ULONG cpspec, | |
1419 [in, size_is(cpspec)] | |
1420 const PROPSPEC rgpspec[] | |
1421 ); | |
1422 | |
1423 #ifdef IPROPERTY_DLL | |
1424 [call_as(DeleteMultiple)] | |
1425 HRESULT RemoteDeleteMultiple( | |
1426 [in] ULONG cpspec, | |
1427 [in, size_is(cpspec)] | |
1428 const PROPSPEC *rgpspec | |
1429 ); | |
1430 #endif | |
1431 | |
1432 HRESULT ReadPropertyNames( | |
1433 [in] ULONG cpropid, | |
1434 [in, size_is(cpropid)] | |
1435 const PROPID rgpropid[], | |
1436 [out, size_is(cpropid)] | |
1437 LPOLESTR rglpwstrName[] | |
1438 ); | |
1439 | |
1440 HRESULT WritePropertyNames( | |
1441 [in] ULONG cpropid, | |
1442 [in, size_is(cpropid)] | |
1443 const PROPID rgpropid[], | |
1444 [in, size_is(cpropid)] | |
1445 const LPOLESTR rglpwstrName[] | |
1446 ); | |
1447 | |
1448 HRESULT DeletePropertyNames( | |
1449 [in] ULONG cpropid, | |
1450 [in, size_is(cpropid)] | |
1451 const PROPID rgpropid[] | |
1452 ); | |
1453 | |
1454 HRESULT Commit( | |
1455 [in] DWORD grfCommitFlags | |
1456 ); | |
1457 | |
1458 HRESULT Revert(); | |
1459 | |
1460 HRESULT Enum( | |
1461 [out] IEnumSTATPROPSTG ** ppenum | |
1462 ); | |
1463 | |
1464 HRESULT SetTimes( | |
1465 [in] FILETIME const * pctime, | |
1466 [in] FILETIME const * patime, | |
1467 [in] FILETIME const * pmtime | |
1468 ); | |
1469 | |
1470 HRESULT SetClass( | |
1471 [in] REFCLSID clsid | |
1472 ); | |
1473 | |
1474 HRESULT Stat( | |
1475 [out] STATPROPSETSTG * pstatpsstg | |
1476 ); | |
1477 } | |
1478 | |
1479 [ | |
1480 object, | |
1481 uuid(0000013A-0000-0000-C000-000000000046), | |
1482 pointer_default(unique) | |
1483 ] | |
1484 | |
1485 interface IPropertySetStorage : IUnknown | |
1486 { | |
1487 | |
1488 typedef [unique] IPropertySetStorage * LPPROPERTYSETSTORAGE; | |
1489 | |
1490 HRESULT Create( | |
1491 [in] REFFMTID rfmtid, | |
1492 [in, unique] | |
1493 const CLSID * pclsid, | |
1494 [in] DWORD grfFlags, | |
1495 [in] DWORD grfMode, | |
1496 [out] IPropertyStorage ** ppprstg | |
1497 ); | |
1498 | |
1499 HRESULT Open( | |
1500 [in] REFFMTID rfmtid, | |
1501 [in] DWORD grfMode, | |
1502 [out] IPropertyStorage ** ppprstg | |
1503 ); | |
1504 | |
1505 HRESULT Delete( | |
1506 [in] REFFMTID rfmtid | |
1507 ); | |
1508 | |
1509 HRESULT Enum( | |
1510 [out] IEnumSTATPROPSETSTG ** ppenum | |
1511 ); | |
1512 | |
1513 } | |
1514 | |
1515 | |
1516 [ | |
1517 object, | |
1518 uuid(00000139-0000-0000-C000-000000000046), | |
1519 pointer_default(unique) | |
1520 ] | |
1521 | |
1522 interface IEnumSTATPROPSTG : IUnknown | |
1523 { | |
1524 | |
1525 typedef [unique] IEnumSTATPROPSTG * LPENUMSTATPROPSTG; | |
1526 | |
1527 [local] | |
1528 HRESULT Next( | |
1529 [in] ULONG celt, | |
1530 [out, size_is(celt), length_is(*pceltFetched)] | |
1531 STATPROPSTG * rgelt, | |
1532 [out] ULONG * pceltFetched | |
1533 ); | |
1534 | |
1535 [call_as(Next)] | |
1536 HRESULT RemoteNext( | |
1537 [in] ULONG celt, | |
1538 [out, size_is(celt), length_is(*pceltFetched)] | |
1539 STATPROPSTG * rgelt, | |
1540 [out] ULONG * pceltFetched | |
1541 ); | |
1542 | |
1543 HRESULT Skip( | |
1544 [in] ULONG celt | |
1545 ); | |
1546 | |
1547 HRESULT Reset(); | |
1548 | |
1549 HRESULT Clone( | |
1550 [out] IEnumSTATPROPSTG ** ppenum | |
1551 ); | |
1552 } | |
1553 | |
1554 | |
1555 [ | |
1556 object, | |
1557 uuid(0000013B-0000-0000-C000-000000000046), | |
1558 pointer_default(unique) | |
1559 ] | |
1560 | |
1561 interface IEnumSTATPROPSETSTG : IUnknown | |
1562 { | |
1563 | |
1564 typedef [unique] IEnumSTATPROPSETSTG * LPENUMSTATPROPSETSTG; | |
1565 | |
1566 [local] | |
1567 HRESULT Next( | |
1568 [in] ULONG celt, | |
1569 [out, size_is(celt), length_is(*pceltFetched)] | |
1570 STATPROPSETSTG * rgelt, | |
1571 [out] ULONG * pceltFetched | |
1572 ); | |
1573 | |
1574 [call_as(Next)] | |
1575 HRESULT RemoteNext( | |
1576 [in] ULONG celt, | |
1577 [out, size_is(celt), length_is(*pceltFetched)] | |
1578 STATPROPSETSTG * rgelt, | |
1579 [out] ULONG * pceltFetched | |
1580 ); | |
1581 | |
1582 HRESULT Skip( | |
1583 [in] ULONG celt | |
1584 ); | |
1585 | |
1586 HRESULT Reset(); | |
1587 | |
1588 HRESULT Clone( | |
1589 [out] IEnumSTATPROPSETSTG ** ppenum | |
1590 ); | |
1591 } | |
1592 | |
1593 | |
1594 cpp_quote("WINOLEAPI PropVariantCopy ( PROPVARIANT * pvarDest, const PROPVARIANT * pvarSrc );") | |
1595 cpp_quote("WINOLEAPI PropVariantClear ( PROPVARIANT * pvar );") | |
1596 cpp_quote("WINOLEAPI FreePropVariantArray ( ULONG cVariants, PROPVARIANT * rgvars );") | |
1597 | |
1598 cpp_quote("") | |
1599 cpp_quote("#define _PROPVARIANTINIT_DEFINED_") | |
1600 cpp_quote("# ifdef __cplusplus") | |
1601 cpp_quote("inline void PropVariantInit ( PROPVARIANT * pvar )") | |
1602 cpp_quote("{") | |
1603 cpp_quote(" memset ( pvar, 0, sizeof(PROPVARIANT) );") | |
1604 cpp_quote("}") | |
1605 cpp_quote("# else") | |
1606 cpp_quote("# define PropVariantInit(pvar) memset ( pvar, 0, sizeof(PROPVARIANT) )") | |
1607 cpp_quote("# endif") | |
1608 cpp_quote("") | |
1609 | |
1610 cpp_quote("") | |
1611 cpp_quote("#ifndef _STGCREATEPROPSTG_DEFINED_") | |
1612 cpp_quote("WINOLEAPI StgCreatePropStg( IUnknown* pUnk, REFFMTID fmtid, const CLSID *pclsid, DWORD grfFlags, DWORD dwReserved, IPropertyStorage **ppPropStg );") | |
1613 cpp_quote("WINOLEAPI StgOpenPropStg( IUnknown* pUnk, REFFMTID fmtid, DWORD grfFlags, DWORD dwReserved, IPropertyStorage **ppPropStg );") | |
1614 cpp_quote("WINOLEAPI StgCreatePropSetStg( IStorage *pStorage, DWORD dwReserved, IPropertySetStorage **ppPropSetStg);") | |
1615 | |
1616 cpp_quote("") | |
1617 cpp_quote("#define CCH_MAX_PROPSTG_NAME 31") | |
1618 cpp_quote("WINOLEAPI FmtIdToPropStgName( const FMTID *pfmtid, LPOLESTR oszName );" ) | |
1619 cpp_quote("WINOLEAPI PropStgNameToFmtId( const LPOLESTR oszName, FMTID *pfmtid );" ) | |
1620 cpp_quote("#endif") | |
1621 | |
1622 */ | |
1623 | |
1624 /**************************************************************************** | |
1625 * Connection Point Interfaces | |
1626 ****************************************************************************/ | |
1627 /* | |
1628 #ifdef __INCLUDE_CPIFS | |
1629 interface IConnectionPointContainer; | |
1630 interface IConnectionPoint; | |
1631 interface IEnumConnections; | |
1632 interface IEnumConnectionPoints; | |
1633 | |
1634 [ | |
1635 object, | |
1636 uuid(B196B286-BAB4-101A-B69C-00AA00341D07), | |
1637 pointer_default(unique) | |
1638 ] | |
1639 interface IConnectionPoint : IUnknown | |
1640 { | |
1641 typedef IConnectionPoint * PCONNECTIONPOINT; | |
1642 typedef IConnectionPoint * LPCONNECTIONPOINT; | |
1643 | |
1644 HRESULT GetConnectionInterface | |
1645 ( | |
1646 [out] IID * piid | |
1647 ); | |
1648 | |
1649 HRESULT GetConnectionPointContainer | |
1650 ( | |
1651 [out] IConnectionPointContainer ** ppCPC | |
1652 ); | |
1653 | |
1654 HRESULT Advise | |
1655 ( | |
1656 [in] IUnknown * pUnkSink, | |
1657 [out] DWORD * pdwCookie | |
1658 ); | |
1659 | |
1660 HRESULT Unadvise | |
1661 ( | |
1662 [in] DWORD dwCookie | |
1663 ); | |
1664 | |
1665 HRESULT EnumConnections | |
1666 ( | |
1667 [out] IEnumConnections ** ppEnum | |
1668 ); | |
1669 } | |
1670 | |
1671 [ | |
1672 object, | |
1673 uuid(B196B284-BAB4-101A-B69C-00AA00341D07), | |
1674 pointer_default(unique) | |
1675 ] | |
1676 interface IConnectionPointContainer : IUnknown | |
1677 { | |
1678 typedef IConnectionPointContainer * PCONNECTIONPOINTCONTAINER; | |
1679 typedef IConnectionPointContainer * LPCONNECTIONPOINTCONTAINER; | |
1680 | |
1681 HRESULT EnumConnectionPoints | |
1682 ( | |
1683 [out] IEnumConnectionPoints ** ppEnum | |
1684 ); | |
1685 | |
1686 HRESULT FindConnectionPoint | |
1687 ( | |
1688 [in] REFIID riid, | |
1689 [out] IConnectionPoint ** ppCP | |
1690 ); | |
1691 } | |
1692 | |
1693 | |
1694 [ | |
1695 object, | |
1696 uuid(B196B287-BAB4-101A-B69C-00AA00341D07), | |
1697 pointer_default(unique) | |
1698 ] | |
1699 interface IEnumConnections : IUnknown | |
1700 { | |
1701 typedef IEnumConnections * PENUMCONNECTIONS; | |
1702 typedef IEnumConnections * LPENUMCONNECTIONS; | |
1703 | |
1704 typedef struct tagCONNECTDATA | |
1705 { | |
1706 IUnknown * pUnk; | |
1707 DWORD dwCookie; | |
1708 } CONNECTDATA; | |
1709 | |
1710 typedef struct tagCONNECTDATA * PCONNECTDATA; | |
1711 typedef struct tagCONNECTDATA * LPCONNECTDATA; | |
1712 | |
1713 [local] | |
1714 HRESULT Next( | |
1715 [in] ULONG cConnections, | |
1716 [out, | |
1717 size_is(cConnections), | |
1718 length_is(*lpcFetched)] CONNECTDATA * rgcd, | |
1719 [out] ULONG * lpcFetched | |
1720 ); | |
1721 | |
1722 [call_as(Next)] | |
1723 HRESULT RemoteNext( | |
1724 [in] ULONG cConnections, | |
1725 [out, | |
1726 size_is(cConnections), | |
1727 length_is(*lpcFetched)] CONNECTDATA * rgcd, | |
1728 [out] ULONG * lpcFetched | |
1729 ); | |
1730 | |
1731 HRESULT Skip | |
1732 ( | |
1733 [in] ULONG cConnections | |
1734 ); | |
1735 | |
1736 HRESULT Reset | |
1737 ( | |
1738 void | |
1739 ); | |
1740 | |
1741 HRESULT Clone | |
1742 ( | |
1743 [out] IEnumConnections ** ppEnum | |
1744 ); | |
1745 } | |
1746 | |
1747 | |
1748 [ | |
1749 object, | |
1750 uuid(B196B285-BAB4-101A-B69C-00AA00341D07), | |
1751 pointer_default(unique) | |
1752 ] | |
1753 interface IEnumConnectionPoints : IUnknown | |
1754 { | |
1755 typedef IEnumConnectionPoints * PENUMCONNECTIONPOINTS; | |
1756 typedef IEnumConnectionPoints * LPENUMCONNECTIONPOINTS; | |
1757 | |
1758 [local] | |
1759 HRESULT Next( | |
1760 [in] ULONG cConnections, | |
1761 [out, | |
1762 size_is(cConnections), | |
1763 length_is(*lpcFetched)] IConnectionPoint ** rgpcn, | |
1764 [out] ULONG * lpcFetched | |
1765 ); | |
1766 | |
1767 [call_as(Next)] | |
1768 HRESULT RemoteNext( | |
1769 [in] ULONG cConnections, | |
1770 [out, | |
1771 size_is(cConnections), | |
1772 length_is(*lpcFetched)] IConnectionPoint ** rgpcn, | |
1773 [out] ULONG * lpcFetched | |
1774 ); | |
1775 | |
1776 HRESULT Skip | |
1777 ( | |
1778 [in] ULONG cConnections | |
1779 ); | |
1780 | |
1781 HRESULT Reset | |
1782 ( | |
1783 void | |
1784 ); | |
1785 | |
1786 HRESULT Clone | |
1787 ( | |
1788 [out] IEnumConnectionPoints ** ppEnum | |
1789 ); | |
1790 } | |
1791 #endif // __INCLUDE_CPIFS | |
1792 | |
1793 | |
1794 cpp_quote( "#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM" ) | |
1795 cpp_quote( "// This interface is only valid on Windows NT 4.0" ) | |
1796 | |
1797 [ | |
1798 local, | |
1799 object, | |
1800 uuid(0000013D-0000-0000-C000-000000000046) | |
1801 ] | |
1802 interface IClientSecurity : IUnknown | |
1803 { | |
1804 | |
1805 typedef struct tagSOLE_AUTHENTICATION_SERVICE | |
1806 { | |
1807 DWORD dwAuthnSvc; | |
1808 DWORD dwAuthzSvc; | |
1809 OLECHAR *pPrincipalName; | |
1810 HRESULT hr; | |
1811 } SOLE_AUTHENTICATION_SERVICE; | |
1812 | |
1813 typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE; | |
1814 | |
1815 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES | |
1816 { | |
1817 EOAC_NONE = 0x0, | |
1818 EOAC_MUTUAL_AUTH = 0x1, | |
1819 EOAC_CLOAKING = 0x10, | |
1820 | |
1821 // These are only valid for CoInitializeSecurity | |
1822 EOAC_SECURE_REFS = 0x2, | |
1823 EOAC_ACCESS_CONTROL = 0x4, | |
1824 EOAC_APPID = 0x8 | |
1825 } EOLE_AUTHENTICATION_CAPABILITIES; | |
1826 | |
1827 HRESULT QueryBlanket | |
1828 ( | |
1829 [in] IUnknown *pProxy, | |
1830 [out] DWORD *pAuthnSvc, | |
1831 [out] DWORD *pAuthzSvc, | |
1832 [out] OLECHAR **pServerPrincName, | |
1833 [out] DWORD *pAuthnLevel, | |
1834 [out] DWORD *pImpLevel, | |
1835 [out] void **pAuthInfo, | |
1836 [out] DWORD *pCapabilites | |
1837 ); | |
1838 | |
1839 HRESULT SetBlanket | |
1840 ( | |
1841 [in] IUnknown *pProxy, | |
1842 [in] DWORD AuthnSvc, | |
1843 [in] DWORD AuthzSvc, | |
1844 [in] OLECHAR *pServerPrincName, | |
1845 [in] DWORD AuthnLevel, | |
1846 [in] DWORD ImpLevel, | |
1847 [in] void *pAuthInfo, | |
1848 [in] DWORD Capabilities | |
1849 ); | |
1850 | |
1851 HRESULT CopyProxy | |
1852 ( | |
1853 [in] IUnknown *pProxy, | |
1854 [out] IUnknown **ppCopy | |
1855 ); | |
1856 } | |
1857 | |
1858 [ | |
1859 local, | |
1860 object, | |
1861 uuid(0000013E-0000-0000-C000-000000000046) | |
1862 ] | |
1863 interface IServerSecurity : IUnknown | |
1864 { | |
1865 HRESULT QueryBlanket | |
1866 ( | |
1867 [out] DWORD *pAuthnSvc, | |
1868 [out] DWORD *pAuthzSvc, | |
1869 [out] OLECHAR **pServerPrincName, | |
1870 [out] DWORD *pAuthnLevel, | |
1871 [out] DWORD *pImpLevel, | |
1872 [out] void **pPrivs, | |
1873 [out] DWORD *pCapabilities | |
1874 ); | |
1875 | |
1876 HRESULT ImpersonateClient(); | |
1877 | |
1878 HRESULT RevertToSelf(); | |
1879 | |
1880 BOOL IsImpersonating(); | |
1881 } | |
1882 | |
1883 [ | |
1884 object, | |
1885 uuid(00000140-0000-0000-C000-000000000046) | |
1886 ] | |
1887 | |
1888 interface IClassActivator : IUnknown | |
1889 { | |
1890 HRESULT GetClassObject( | |
1891 [in] REFCLSID rclsid, | |
1892 [in] DWORD dwClassContext, | |
1893 [in] LCID locale, | |
1894 [in] REFIID riid, | |
1895 [out, iid_is(riid)] void **ppv); | |
1896 } | |
1897 | |
1898 | |
1899 [ | |
1900 object, | |
1901 local, | |
1902 uuid(00000144-0000-0000-C000-000000000046), | |
1903 oleautomation | |
1904 ] | |
1905 interface IRpcOptions : IUnknown | |
1906 { | |
1907 HRESULT Set([in] IUnknown * pPrx, | |
1908 [in] DWORD dwProperty, | |
1909 [in] DWORD dwValue); | |
1910 | |
1911 HRESULT Query([in] IUnknown * pPrx, | |
1912 [in] DWORD dwProperty, | |
1913 [out] DWORD * pdwValue); | |
1914 | |
1915 HRESULT CopyProxy([in] IUnknown * punkProxy, | |
1916 [out] IUnknown ** ppunkCopy); | |
1917 } | |
1918 | |
1919 enum {COMBND_RPCSTRINGS = 0x01}; // flag indicating arBndInfo is the | |
1920 // Rpc string bindings to be used. | |
1921 | |
1922 [ | |
1923 object, | |
1924 local, | |
1925 uuid(00000148-0000-0000-C000-000000000046) | |
1926 ] | |
1927 interface IComBinding : IUnknown | |
1928 { | |
1929 HRESULT InitBinding([in] DWORD dwEndpointFlags, | |
1930 [in] DWORD dwNICFlags, | |
1931 [in] DWORD mbzReserved1, | |
1932 [in] DWORD mbzReserved2, | |
1933 [in] LPOLESTR pszBinding | |
1934 ); | |
1935 | |
1936 HRESULT QueryBinding([out] LPDWORD pdwEndpointFlags, | |
1937 [out] LPDWORD pdwNICFlags, | |
1938 [out] LPDWORD mbzReserved1, | |
1939 [out] LPDWORD mbzReserved2, | |
1940 [out] LPOLESTR *ppszBinding | |
1941 ); | |
1942 | |
1943 | |
1944 } | |
1945 | |
1946 | |
1947 | |
1948 | |
1949 cpp_quote( "#endif //DCOM" ) | |
1950 | |
1951 | |
1952 [ | |
1953 object, | |
1954 uuid(99caf010-415e-11cf-8814-00aa00b569f5), | |
1955 pointer_default(unique) | |
1956 ] | |
1957 | |
1958 interface IFillLockBytes: IUnknown | |
1959 { | |
1960 [local] | |
1961 HRESULT FillAppend | |
1962 ( | |
1963 [in, size_is(cb)] void const *pv, | |
1964 [in] ULONG cb, | |
1965 [out] ULONG *pcbWritten | |
1966 ); | |
1967 | |
1968 [call_as(FillAppend)] | |
1969 HRESULT _stdcall RemoteFillAppend( | |
1970 [in, size_is(cb)] byte const *pv, | |
1971 [in] ULONG cb, | |
1972 [out] ULONG *pcbWritten); | |
1973 | |
1974 [local] | |
1975 HRESULT FillAt | |
1976 ( | |
1977 [in] ULARGE_INTEGER ulOffset, | |
1978 [in, size_is(cb)] void const *pv, | |
1979 [in] ULONG cb, | |
1980 [out] ULONG *pcbWritten | |
1981 ); | |
1982 | |
1983 [call_as(FillAt)] | |
1984 HRESULT _stdcall RemoteFillAt( | |
1985 [in] ULARGE_INTEGER ulOffset, | |
1986 [in, size_is(cb)] byte const *pv, | |
1987 [in] ULONG cb, | |
1988 [out] ULONG *pcbWritten); | |
1989 | |
1990 HRESULT SetFillSize | |
1991 ( | |
1992 [in] ULARGE_INTEGER ulSize | |
1993 ); | |
1994 | |
1995 HRESULT Terminate | |
1996 ( | |
1997 [in] BOOL bCanceled | |
1998 ); | |
1999 } | |
2000 | |
2001 | |
2002 [ | |
2003 object, | |
2004 uuid(a9d758a0-4617-11cf-95fc-00aa00680db4), | |
2005 pointer_default(unique) | |
2006 ] | |
2007 | |
2008 interface IProgressNotify: IUnknown | |
2009 { | |
2010 HRESULT OnProgress | |
2011 ( | |
2012 [in] DWORD dwProgressCurrent, | |
2013 [in] DWORD dwProgressMaximum, | |
2014 [in] BOOL fAccurate, | |
2015 [in] BOOL fOwner | |
2016 ); | |
2017 } | |
2018 | |
2019 | |
2020 [ | |
2021 local, | |
2022 object, | |
2023 uuid(0e6d4d90-6738-11cf-9608-00aa00680db4), | |
2024 pointer_default(unique) | |
2025 ] | |
2026 | |
2027 interface ILayoutStorage: IUnknown | |
2028 { | |
2029 typedef struct tagStorageLayout | |
2030 { | |
2031 DWORD LayoutType; | |
2032 OLECHAR *pwcsElementName; | |
2033 LARGE_INTEGER cOffset; | |
2034 LARGE_INTEGER cBytes; | |
2035 } StorageLayout; | |
2036 | |
2037 HRESULT __stdcall LayoutScript | |
2038 ( | |
2039 [in] StorageLayout *pStorageLayout, | |
2040 [in] DWORD nEntries, | |
2041 [in] DWORD glfInterleavedFlag | |
2042 ); | |
2043 HRESULT __stdcall BeginMonitor(void); | |
2044 | |
2045 HRESULT __stdcall EndMonitor(void); | |
2046 | |
2047 HRESULT __stdcall ReLayoutDocfile | |
2048 ( | |
2049 [in] OLECHAR *pwcsNewDfName | |
2050 ); | |
2051 | |
2052 HRESULT __stdcall ReLayoutDocfileOnILockBytes | |
2053 ( | |
2054 [in] ILockBytes *pILockBytes | |
2055 ); | |
2056 | |
2057 | |
2058 } | |
2059 | |
2060 [ | |
2061 uuid(00000022-0000-0000-C000-000000000046), | |
2062 version(1.0), | |
2063 pointer_default(unique) | |
2064 , object | |
2065 ] | |
2066 | |
2067 interface ISurrogate : IUnknown | |
2068 { | |
2069 typedef [unique] ISurrogate* LPSURROGATE; | |
2070 | |
2071 HRESULT LoadDllServer( | |
2072 [in] REFCLSID Clsid); | |
2073 HRESULT FreeSurrogate(); | |
2074 } | |
2075 | |
2076 | |
2077 [ | |
2078 local, | |
2079 object, | |
2080 uuid(00000146-0000-0000-C000-000000000046) | |
2081 ] | |
2082 interface IGlobalInterfaceTable : IUnknown | |
2083 { | |
2084 typedef [unique] IGlobalInterfaceTable *LPGLOBALINTERFACETABLE; | |
2085 | |
2086 HRESULT RegisterInterfaceInGlobal | |
2087 ( | |
2088 [in] IUnknown *pUnk, | |
2089 [in] REFIID riid, | |
2090 [out] DWORD *pdwCookie | |
2091 ); | |
2092 | |
2093 HRESULT RevokeInterfaceFromGlobal | |
2094 ( | |
2095 [in] DWORD dwCookie | |
2096 ); | |
2097 | |
2098 HRESULT GetInterfaceFromGlobal | |
2099 ( | |
2100 [in] DWORD dwCookie, | |
2101 [in] REFIID riid, | |
2102 [out, iid_is(riid)] void **ppv | |
2103 ); | |
2104 }; | |
2105 | |
2106 | |
2107 [ | |
2108 object, | |
2109 uuid(0e6d4d92-6738-11cf-9608-00aa00680db4), | |
2110 pointer_default(unique) | |
2111 ] | |
2112 | |
2113 interface IDirectWriterLock : IUnknown | |
2114 { | |
2115 | |
2116 HRESULT WaitForWriteAccess ([in] DWORD dwTimeout); | |
2117 | |
2118 HRESULT ReleaseWriteAccess (); | |
2119 | |
2120 HRESULT HaveWriteAccess (); | |
2121 | |
2122 } | |
2123 | |
2124 [ | |
2125 object, | |
2126 uuid(00000023-0000-0000-C000-000000000046) | |
2127 ] | |
2128 | |
2129 interface ISynchronize : IUnknown | |
2130 { | |
2131 HRESULT Wait([in] DWORD dwMilliseconds); | |
2132 HRESULT Signal(); | |
2133 HRESULT Reset(); | |
2134 } | |
2135 | |
2136 [ | |
2137 local, | |
2138 object, | |
2139 uuid(00000025-0000-0000-C000-000000000046) | |
2140 ] | |
2141 interface ISynchronizeMutex : ISynchronize | |
2142 { | |
2143 HRESULT ReleaseMutex(); | |
2144 } | |
2145 | |
2146 [ | |
2147 local, | |
2148 object, | |
2149 uuid(00000024-0000-0000-C000-000000000046) | |
2150 ] | |
2151 interface IAsyncSetup : IUnknown | |
2152 { | |
2153 HRESULT GetAsyncManager( [in] REFIID riid, | |
2154 [in] IUnknown *pOuter, | |
2155 [in] DWORD dwFlags, | |
2156 [out] IUnknown **ppInner, | |
2157 [out] IAsyncManager **ppAsyncMgr ); | |
2158 } | |
2159 | |
2160 [ | |
2161 local, | |
2162 object, | |
2163 uuid(00000029-0000-0000-C000-000000000046) | |
2164 ] | |
2165 | |
2166 interface ICancelMethodCalls : IUnknown | |
2167 { | |
2168 typedef [unique] ICancelMethodCalls *LPCANCELMETHODCALLS; | |
2169 | |
2170 HRESULT Cancel (void); | |
2171 HRESULT TestCancel (void); | |
2172 HRESULT SetCancelTimeout([in] ULONG ulSeconds); | |
2173 } | |
2174 | |
2175 [ | |
2176 local, | |
2177 object, | |
2178 uuid(0000002A-0000-0000-C000-000000000046) | |
2179 ] | |
2180 interface IAsyncManager : IUnknown | |
2181 { | |
2182 typedef enum tagDCOM_CALL_STATE | |
2183 { | |
2184 DCOM_NONE = 0x0, | |
2185 DCOM_CALL_COMPLETE = 0x1, | |
2186 DCOM_CALL_CANCELED = 0x2, | |
2187 } DCOM_CALL_STATE; | |
2188 | |
2189 HRESULT CompleteCall ( [in] HRESULT Result ); | |
2190 HRESULT GetCallContext( [in] REFIID riid, [out] void **pInterface ); | |
2191 HRESULT GetState ( [out] ULONG *pulStateFlags); | |
2192 } | |
2193 | |
2194 [ | |
2195 local, | |
2196 object, | |
2197 uuid(0000002B-0000-0000-C000-000000000046) | |
2198 ] | |
2199 interface IWaitMultiple : IUnknown | |
2200 { | |
2201 HRESULT WaitMultiple ( [in] DWORD timeout, [out] ISynchronize **pSync ); | |
2202 HRESULT AddSynchronize( [in] ISynchronize *pSync ); | |
2203 } | |
2204 | |
2205 [ | |
2206 local, | |
2207 object, | |
2208 uuid(0000002C-0000-0000-C000-000000000046) | |
2209 ] | |
2210 interface ISynchronizeEvent : IUnknown | |
2211 { | |
2212 HRESULT GetEvent( [out] HANDLE *pEvent ); | |
2213 } | |
2214 | |
2215 [ | |
2216 object, | |
2217 uuid(00000026-0000-0000-C000-000000000046) | |
2218 ] | |
2219 interface IUrlMon : IUnknown | |
2220 { | |
2221 HRESULT AsyncGetClassBits( | |
2222 [in] REFCLSID rclsid, | |
2223 [in, unique] LPCWSTR pszTYPE, | |
2224 [in, unique] LPCWSTR pszExt, | |
2225 [in] DWORD dwFileVersionMS, | |
2226 [in] DWORD dwFileVersionLS, | |
2227 [in, unique] LPCWSTR pszCodeBase, | |
2228 [in] IBindCtx * pbc, | |
2229 [in] DWORD dwClassContext, | |
2230 [in] REFIID riid, | |
2231 [in] DWORD flags); | |
2232 } | |
2233 | |
2234 //---------------------------------------------------------------------------- | |
2235 // The Class Store Access Interface. | |
2236 //---------------------------------------------------------------------------- | |
2237 [ | |
2238 object, | |
2239 uuid(00000190-0000-0000-C000-000000000046) | |
2240 ] | |
2241 interface IClassAccess : IUnknown | |
2242 { | |
2243 | |
2244 // This is the most common method to access the Class Container. | |
2245 // It queries the Class Store for implementations for a specific | |
2246 // Class Id. | |
2247 // If a matching implementation is available for the object type, | |
2248 // client architecture, locale and class context a pointer to the | |
2249 // binary is returned along with other package info in the [out] parameter | |
2250 // pPackageInfo. | |
2251 // | |
2252 // If the binary needs to be downloaded to the local machine, it is | |
2253 // done as a part of this. | |
2254 // | |
2255 HRESULT GetClassInfo( | |
2256 [in] REFCLSID clsid, // Class ID | |
2257 [in] QUERYCONTEXT QryContext, // Query Attributes | |
2258 [out] PACKAGEINFO * pPackageInfo | |
2259 ); | |
2260 | |
2261 // | |
2262 // GetClassSpecInfo is same as GetClassInfo except for it takes in | |
2263 // any Class Specifier , CLSID or File Ext, or ProgID or MIME type. | |
2264 // | |
2265 HRESULT GetClassSpecInfo( | |
2266 [in] uCLSSPEC * pClassSpec, // Class Spec (CLSID/Ext/MIME) | |
2267 [in] QUERYCONTEXT QryContext, // Query Attributes | |
2268 [out] PACKAGEINFO * pPackageInfo | |
2269 ); | |
2270 | |
2271 | |
2272 // | |
2273 // GetInstallablePackages is used by CoGetPublishedAppInfo | |
2274 // to provide list of published apps from the class store that are | |
2275 // available for installation. | |
2276 // | |
2277 | |
2278 typedef struct tagPUBLISHEDINFOLIST { | |
2279 DWORD cPublApps; | |
2280 [size_is(cPublApps), unique] PUBLISHEDAPPINFO *pPublAppInfo; | |
2281 } PUBLISHEDINFOLIST; | |
2282 | |
2283 HRESULT GetInstallablePackages ( | |
2284 [in] DWORD Count, | |
2285 [out] PUBLISHEDINFOLIST *pInfoList | |
2286 ); | |
2287 | |
2288 } | |
2289 | |
2290 [ | |
2291 object, | |
2292 uuid(00000192-0000-0000-C000-000000000046) | |
2293 ] | |
2294 interface IClassRefresh : IUnknown | |
2295 { | |
2296 // | |
2297 // GetUpgrades is called to check if the Class Store has | |
2298 // newer versions for any of a list of CLSIDs. The client calls this | |
2299 // with a list of CLSIDs that were installed from the Class Container. | |
2300 // | |
2301 | |
2302 typedef struct tagPACKAGEINFOLIST { | |
2303 DWORD cPackInfo; | |
2304 [size_is(cPackInfo), unique] PACKAGEINFO *pPackageInfo; | |
2305 } PACKAGEINFOLIST; | |
2306 | |
2307 HRESULT GetUpgrades ( | |
2308 [in] ULONG cClasses, | |
2309 [in, size_is(cClasses)] CLSID *pClassList, // CLSIDs Installed | |
2310 [in] CSPLATFORM Platform, | |
2311 [in] LCID Locale, | |
2312 [out] PACKAGEINFOLIST *pPackageInfoList); | |
2313 | |
2314 // | |
2315 // CommitUpgrades is called to notify the Class Store that | |
2316 // the newer versions were successfully installed and that the update sequence | |
2317 // can be moved forward. | |
2318 // | |
2319 | |
2320 HRESULT CommitUpgrades (); | |
2321 } | |
2322 | |
2323 | |
2324 //---------------------------------------------------------------------------- | |
2325 // The Class Store Admin Interface. | |
2326 //---------------------------------------------------------------------------- | |
2327 | |
2328 typedef struct tagCLASSDETAIL { | |
2329 CLSID Clsid; | |
2330 LPOLESTR pszDesc; | |
2331 LPOLESTR pszIconPath; | |
2332 CLSID TreatAsClsid; | |
2333 CLSID AutoConvertClsid; | |
2334 DWORD cFileExt; | |
2335 [size_is(cFileExt)] LPOLESTR *prgFileExt; | |
2336 LPOLESTR pMimeType; | |
2337 LPOLESTR pDefaultProgId; | |
2338 DWORD cOtherProgId; | |
2339 [size_is(cOtherProgId)] LPOLESTR *prgOtherProgId; | |
2340 } CLASSDETAIL; | |
2341 | |
2342 //+--------------------------------------------------------------------------- | |
2343 // Contents: Enum Interfaces for Class Store | |
2344 //---------------------------------------------------------------------------- | |
2345 cpp_quote("#ifndef _LPCSADMNENUM_DEFINED") | |
2346 cpp_quote("#define _LPCSADMNENUM_DEFINED") | |
2347 | |
2348 // | |
2349 // IEnumPackage | |
2350 // ============ | |
2351 // | |
2352 | |
2353 [ | |
2354 object, | |
2355 uuid(00000193-0000-0000-C000-000000000046) | |
2356 ] | |
2357 interface IEnumPackage : IUnknown | |
2358 { | |
2359 | |
2360 //---- Next() | |
2361 | |
2362 HRESULT Next( | |
2363 [in] ULONG celt, | |
2364 [out, size_is(celt), length_is(*pceltFetched)] PACKAGEDETAIL *rgelt, | |
2365 [out] ULONG *pceltFetched); | |
2366 | |
2367 // | |
2368 // celt number of elements to be fetched. | |
2369 // rgelt array of PackageDetail structures. | |
2370 // pceltFetched elements actually fetched. | |
2371 // | |
2372 // Returns: | |
2373 // S_OK | |
2374 // S_FALSE (Not enough elements to be fetched.) | |
2375 // E_INVALIDARG | |
2376 // E_FAIL | |
2377 // CS_E_INVALID_VERSION (Class Container is corrupted | |
2378 // OR is of a version that is no more supported) | |
2379 // E_OUTOFMEMORY | |
2380 // | |
2381 // on errors | |
2382 // *pceltFetched = 0 | |
2383 // | |
2384 | |
2385 | |
2386 //---- Skip() | |
2387 | |
2388 HRESULT Skip( | |
2389 [in] ULONG celt); | |
2390 | |
2391 // | |
2392 // celt number of elements to be skipped. | |
2393 // | |
2394 // Returns: | |
2395 // S_OK | |
2396 // S_FALSE (Not enough elements to be skipped.) | |
2397 // E_FAIL | |
2398 // E_ACCESSDENIED | |
2399 // E_OUTOFMEMORY | |
2400 | |
2401 | |
2402 //---- Reset() | |
2403 | |
2404 HRESULT Reset(); | |
2405 | |
2406 // | |
2407 // Returns: | |
2408 // S_OK | |
2409 // | |
2410 | |
2411 | |
2412 //---- Clone() | |
2413 | |
2414 HRESULT Clone( | |
2415 [out] IEnumPackage **ppenum); | |
2416 | |
2417 // | |
2418 // Returns: | |
2419 // S_OK | |
2420 // E_FAIL | |
2421 // E_INVALIDARG | |
2422 // E_ACCESSDENIED | |
2423 // E_OUTOFMEMORY | |
2424 | |
2425 | |
2426 } | |
2427 | |
2428 | |
2429 // | |
2430 // IEnumClass | |
2431 // ========== | |
2432 // | |
2433 | |
2434 [ | |
2435 object, | |
2436 uuid(00000194-0000-0000-C000-000000000046) | |
2437 ] | |
2438 | |
2439 interface IEnumClass : IUnknown | |
2440 { | |
2441 //---- Next() | |
2442 | |
2443 HRESULT Next( | |
2444 [in] ULONG celt, | |
2445 [out, size_is(celt), length_is(*pceltFetched)] CLASSDETAIL *rgelt, | |
2446 [out] ULONG *pceltFetched); | |
2447 | |
2448 // | |
2449 // celt number of elements to be fetched. | |
2450 // rgelt array of CLASSDETAIL structures. | |
2451 // pceltFetched elements actually fetched. | |
2452 // | |
2453 // Returns: | |
2454 // S_OK | |
2455 // S_FALSE (Not enough elements to be fetched.) | |
2456 // E_INVALIDARG | |
2457 // E_FAIL | |
2458 // CS_E_INVALID_VERSION (Class Container is corrupted | |
2459 // OR is of a version that is no more supported) | |
2460 // E_OUTOFMEMORY | |
2461 // | |
2462 // on errors | |
2463 // *pceltFetched = 0 | |
2464 // | |
2465 | |
2466 //---- Skip() | |
2467 | |
2468 HRESULT Skip( | |
2469 [in] ULONG celt); | |
2470 | |
2471 // | |
2472 // celt number of elements to be skipped. | |
2473 // | |
2474 // Returns: | |
2475 // S_OK | |
2476 // S_FALSE (Not enough elements to be skipped.) | |
2477 // E_FAIL | |
2478 // E_ACCESSDENIED | |
2479 // E_OUTOFMEMORY | |
2480 | |
2481 //---- Reset() | |
2482 | |
2483 HRESULT Reset(); | |
2484 | |
2485 // | |
2486 // Returns: | |
2487 // S_OK | |
2488 // | |
2489 | |
2490 | |
2491 //---- Clone() | |
2492 | |
2493 HRESULT Clone( | |
2494 [out] IEnumClass **ppenum); | |
2495 | |
2496 // | |
2497 // Returns: | |
2498 // S_OK | |
2499 // E_FAIL | |
2500 // E_INVALIDARG | |
2501 // E_ACCESSDENIED | |
2502 // E_OUTOFMEMORY | |
2503 | |
2504 | |
2505 | |
2506 } | |
2507 cpp_quote("#endif") | |
2508 | |
2509 // | |
2510 // IClassAdmin | |
2511 // =========== | |
2512 // | |
2513 | |
2514 | |
2515 [ | |
2516 object, | |
2517 uuid(00000191-0000-0000-C000-000000000046) | |
2518 ] | |
2519 interface IClassAdmin : IUnknown | |
2520 { | |
2521 | |
2522 // ::NewClass | |
2523 // ----------- | |
2524 // Stores a new Class Definition in the Class Store | |
2525 // Corresponds to HKCR/{CLSID} in registry | |
2526 // [In] - CLSID | |
2527 // Class Name | |
2528 // TreatAs CLSID (NULL GUID if no TreatAs) | |
2529 // AutoConvert CLSID (NULL GUID if no AutoConvert) | |
2530 // File Extension (NULL if no association) | |
2531 // Mime Type (NULL if no association) | |
2532 // Default ProgId (NULL if no association) | |
2533 // Other ProgIds | |
2534 // TypelibID | |
2535 // Icon Path (NULL if none). | |
2536 // | |
2537 // Returns - S_OK | |
2538 // E_ALREADY_EXISTS | |
2539 // E_INVALIDARG | |
2540 // | |
2541 HRESULT NewClass ( | |
2542 [in] CLASSDETAIL *pClassDetail | |
2543 ); | |
2544 | |
2545 // ::DeleteClass | |
2546 // ----------- | |
2547 // Removes a Class Definition from the Class Store | |
2548 // [In] - CLSID | |
2549 | |
2550 HRESULT DeleteClass ( | |
2551 [in] REFCLSID guidClsId | |
2552 ); | |
2553 | |
2554 | |
2555 // ::NewInterface | |
2556 // -------------- | |
2557 // Stores a new Interface Definition in the Class Store | |
2558 // Corresponds to HKCR/{IID} in registry | |
2559 // [In] - IID | |
2560 // Interface Name | |
2561 // Proxy-Stub CLSID (NULL GUID if no ProxyStub) | |
2562 // TypeLib GUID (NULL GUID if no TypeLib) | |
2563 // | |
2564 // Returns - S_OK | |
2565 // E_ALREADY_EXISTS | |
2566 // E_INVALID_ARG | |
2567 // | |
2568 HRESULT NewInterface ( | |
2569 [in] REFIID iid, | |
2570 [in, unique] LPOLESTR pszDesc, | |
2571 [in] REFCLSID psclsid, | |
2572 [in] REFCLSID typelibid | |
2573 ); | |
2574 | |
2575 // ::DeleteInterface | |
2576 // ----------- | |
2577 // Removes an Interface Definition from the Class Store | |
2578 // [In] - IID | |
2579 | |
2580 HRESULT DeleteInterface ( | |
2581 [in] REFIID iid | |
2582 ); | |
2583 | |
2584 | |
2585 // ::NewPackage | |
2586 // ------------ | |
2587 // Stores a new application package in the Class Store | |
2588 // May Correspond to HKCR/{CLSID}/LocalServer32 likes in registry | |
2589 // | |
2590 // Returns - S_OK | |
2591 // E_ALREADY_EXISTS | |
2592 // E_INVALIDARG | |
2593 // | |
2594 HRESULT NewPackage ( | |
2595 [in] PACKAGEDETAIL *pPackageDetail | |
2596 ); | |
2597 | |
2598 | |
2599 // ::DeletePackage | |
2600 // ----------- | |
2601 // Removes a package from the Class Store | |
2602 // [In] - PackageName | |
2603 | |
2604 HRESULT DeletePackage ( | |
2605 [in] LPOLESTR pszPackageName | |
2606 ); | |
2607 | |
2608 // ::GetClassesEnum() | |
2609 // | |
2610 // Returns the clsid enumerator | |
2611 // for browsing classes defined in the class store. | |
2612 // | |
2613 // Returns: | |
2614 // S_OK | |
2615 // E_INVALIDARG | |
2616 // E_FAIL | |
2617 // E_ACCESSDENIED | |
2618 // E_OUTOFMEMORY | |
2619 // | |
2620 // | |
2621 // The value of the enumerator is NULL for all the error conditions. | |
2622 // | |
2623 | |
2624 HRESULT GetClassesEnum( | |
2625 [out] IEnumClass **ppIEnumClass | |
2626 ); | |
2627 | |
2628 | |
2629 | |
2630 // ::GetPackagesEnum() | |
2631 // | |
2632 // Getting the Package enumerator from the classstore. | |
2633 // | |
2634 // guidClsid: All the apps that implements the clsid. | |
2635 // ignored if NULLGUID. | |
2636 // Vendor: All the apps provided by a given Vendor. | |
2637 // ignored if NULL. | |
2638 // | |
2639 // ppIEnumPackage: NULL if there is any error. | |
2640 // | |
2641 // Returns: | |
2642 // S_OK | |
2643 // E_INVALIDARG | |
2644 // E_FAIL | |
2645 // E_ACCESSDENIED | |
2646 // E_OUTOFMEMORY | |
2647 // | |
2648 // The value of the enumerator is NULL for all the error conditions. | |
2649 // | |
2650 | |
2651 HRESULT GetPackagesEnum( | |
2652 [in] REFCLSID guidClsid, | |
2653 [in, unique] LPOLESTR pszVendor, | |
2654 [in] CSPLATFORM Platform, | |
2655 [in] DWORD dwContext, | |
2656 [in] LCID Locale, | |
2657 [out] IEnumPackage **ppIEnumPackage | |
2658 ); | |
2659 | |
2660 | |
2661 // ::GetClassDetails() | |
2662 // | |
2663 // Get all the class details given the clsid. | |
2664 // | |
2665 // [in] guidClsID class ID (guid) | |
2666 // [out] CLASSDETAIL *pClassDetail | |
2667 // | |
2668 // Returns: | |
2669 // S_OK | |
2670 // E_INVALIDARG | |
2671 // E_FAIL | |
2672 // E_NOTFOUND (no such class) | |
2673 // E_ACCESSDENIED | |
2674 // E_OUTOFMEMORY | |
2675 // | |
2676 // | |
2677 | |
2678 | |
2679 | |
2680 HRESULT GetClassDetails ( | |
2681 [in] REFCLSID guidClsId, | |
2682 [out] CLASSDETAIL *pClassDetail | |
2683 ); | |
2684 | |
2685 | |
2686 // ::GetIidDetails() | |
2687 // | |
2688 // [IN] | |
2689 // iid IID (guid) | |
2690 // [OUT] | |
2691 // pszDesc Description | |
2692 // psClsid Proxy Stub Class ID | |
2693 // pTypeLibId libid | |
2694 // | |
2695 // Returns: | |
2696 // S_OK | |
2697 // E_INVALIDARG | |
2698 // E_FAIL | |
2699 // E_NOTFOUND | |
2700 // E_ACCESSDENIED | |
2701 // E_OUTOFMEMORY | |
2702 // | |
2703 // | |
2704 | |
2705 HRESULT GetIidDetails ( | |
2706 [in] REFIID iid, | |
2707 [out] LPOLESTR *ppszDesc, | |
2708 [out] CLSID *psClsid, | |
2709 [out] CLSID *pTypeLibId | |
2710 ); | |
2711 | |
2712 // ::GetPackageDetails() | |
2713 // | |
2714 // Get all the Package details given packagename. | |
2715 // | |
2716 // [IN] | |
2717 // PackageName: Name of the package | |
2718 // [OUT] | |
2719 // pPackageDetail Package Detail | |
2720 // | |
2721 // Returns: | |
2722 // S_OK | |
2723 // E_INVALIDARG | |
2724 // E_FAIL | |
2725 // E_NOTFOUND (no such class) | |
2726 // E_ACCESSDENIED | |
2727 // E_OUTOFMEMORY | |
2728 // | |
2729 // | |
2730 | |
2731 | |
2732 HRESULT GetPackageDetails ( | |
2733 [in] LPOLESTR pszPackageName, | |
2734 [out] PACKAGEDETAIL *pPackageDetail | |
2735 ); | |
2736 } | |
2737 | |
2738 cpp_quote("#if ( _MSC_VER >= 800 )") | |
2739 cpp_quote("#pragma warning(default:4201)") | |
2740 cpp_quote("#endif") | |
2741 | |
2742 */ | |
2743 | |
2744 } // extern (Windows) |