VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Graphics/Wine/include/objidl.idl@ 33282

Last change on this file since 33282 was 25949, checked in by vboxsync, 15 years ago

crOpenGL: update to wine 1.1.36 and disable unnecessary fbo state poll

  • Property svn:eol-style set to native
File size: 51.1 KB
Line 
1/*
2 * Copyright 2002 Ove Kaaven
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19/*
20 * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
21 * other than GPL or LGPL is available it will apply instead, Sun elects to use only
22 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
23 * a choice of LGPL license versions is made available with the language indicating
24 * that LGPLv2 or any later version may be used, or where a choice of which version
25 * of the LGPL is applied is otherwise unspecified.
26 */
27
28#ifndef DO_NO_IMPORTS
29import "unknwn.idl";
30#endif
31
32interface IStream;
33interface IEnumString;
34interface IRunningObjectTable;
35interface IMoniker;
36interface IAdviseSink;
37interface IAsyncManager;
38interface ISynchronize;
39
40typedef struct _COSERVERINFO {
41 DWORD dwReserved1;
42 LPWSTR pwszName;
43 COAUTHINFO *pAuthInfo;
44 DWORD dwReserved2;
45} COSERVERINFO;
46
47/******************** Fundamentals ********************/
48
49[
50 local,
51 object,
52 uuid(00000003-0000-0000-C000-000000000046)
53]
54interface IMarshal : IUnknown
55{
56 typedef [unique] IMarshal *LPMARSHAL;
57
58 HRESULT GetUnmarshalClass(
59 [in] REFIID riid,
60 [in, unique] void *pv,
61 [in] DWORD dwDestContext,
62 [in, unique] void *pvDestContext,
63 [in] DWORD mshlflags,
64 [out] CLSID *pCid);
65
66 HRESULT GetMarshalSizeMax(
67 [in] REFIID riid,
68 [in, unique] void *pv,
69 [in] DWORD dwDestContext,
70 [in, unique] void *pvDestContext,
71 [in] DWORD mshlflags,
72 [out] DWORD *pSize);
73
74 HRESULT MarshalInterface(
75 [in, unique] IStream *pStm,
76 [in] REFIID riid,
77 [in, unique] void *pv,
78 [in] DWORD dwDestContext,
79 [in, unique] void *pvDestContext,
80 [in] DWORD mshlflags);
81
82 HRESULT UnmarshalInterface(
83 [in, unique] IStream *pStm,
84 [in] REFIID riid,
85 [out] void **ppv);
86
87 HRESULT ReleaseMarshalData(
88 [in, unique] IStream *pStm);
89
90 HRESULT DisconnectObject(
91 [in] DWORD dwReserved);
92}
93
94[
95 local,
96 object,
97 uuid(000001cf-0000-0000-C000-000000000046)
98]
99interface IMarshal2 : IMarshal
100{
101 typedef [unique] IMarshal2 *LPMARSHAL2;
102}
103
104[
105 local,
106 object,
107 uuid(00000018-0000-0000-C000-000000000046)
108]
109interface IStdMarshalInfo : IUnknown
110{
111 typedef [unique] IStdMarshalInfo *LPSTDMARSHALINFO;
112
113 HRESULT GetClassForHandler(
114 [in] DWORD dwDestContext,
115 [in, unique] void *pvDestContext,
116 [out] CLSID *pClsid);
117}
118
119[
120 local,
121 object,
122 uuid(00000019-0000-0000-C000-000000000046)
123]
124interface IExternalConnection : IUnknown
125{
126 typedef [unique] IExternalConnection *LPEXTERNALCONNECTION;
127
128 typedef enum tagEXTCONN {
129 EXTCONN_STRONG = 0x0001,
130 EXTCONN_WEAK = 0x0002,
131 EXTCONN_CALLABLE = 0x0004
132 } EXTCONN;
133
134 DWORD AddConnection(
135 [in] DWORD extconn,
136 [in] DWORD reserved);
137
138 DWORD ReleaseConnection(
139 [in] DWORD extconn,
140 [in] DWORD reserved,
141 [in] BOOL fLastReleaseCloses);
142}
143
144[
145 local,
146 object,
147 uuid(00000020-0000-0000-C000-000000000046)
148]
149interface IMultiQI : IUnknown
150{
151 typedef [unique] IMultiQI *LPMULTIQI;
152
153 typedef struct tagMULTI_QI {
154 const IID *pIID;
155 IUnknown *pItf;
156 HRESULT hr;
157 } MULTI_QI;
158
159 HRESULT QueryMultipleInterfaces(
160 [in] ULONG cMQIs,
161 [in, out] MULTI_QI *pMQIs);
162}
163
164[
165 local,
166 object,
167 uuid(00000002-0000-0000-C000-000000000046)
168]
169interface IMalloc : IUnknown
170{
171 typedef [unique] IMalloc *LPMALLOC;
172
173 LPVOID Alloc(
174 [in] ULONG cb);
175
176 LPVOID Realloc(
177 [in] LPVOID pv,
178 [in] ULONG cb);
179
180 void Free(
181 [in] LPVOID pv);
182
183 ULONG GetSize(
184 [in] LPVOID pv);
185
186 int DidAlloc(LPVOID pv);
187
188 void HeapMinimize();
189}
190
191[
192 local,
193 object,
194 uuid(0000001d-0000-0000-C000-000000000046)
195]
196interface IMallocSpy : IUnknown
197{
198 typedef [unique] IMallocSpy *LPMALLOCSPY;
199
200 ULONG PreAlloc(
201 [in] ULONG cbRequest);
202
203 LPVOID PostAlloc(
204 [in] LPVOID pActual);
205
206 LPVOID PreFree(
207 [in] LPVOID pRequest,
208 [in] BOOL fSpyed);
209
210 void PostFree(
211 [in] BOOL fSpyed);
212
213 ULONG PreRealloc(
214 [in] LPVOID pRequest,
215 [in] ULONG cbRequest,
216 [out] LPVOID *ppNewRequest,
217 [in] BOOL fSpyed);
218
219 LPVOID PostRealloc(
220 [in] LPVOID pActual,
221 [in] BOOL fSpyed);
222
223 LPVOID PreGetSize(
224 [in] LPVOID pRequest,
225 [in] BOOL fSpyed);
226
227 ULONG PostGetSize(
228 [in] ULONG cbActual,
229 [in] BOOL fSpyed);
230
231 LPVOID PreDidAlloc(
232 [in] LPVOID pRequest,
233 [in] BOOL fSpyed);
234
235 int PostDidAlloc(
236 [in] LPVOID pRequest,
237 [in] BOOL fSpyed,
238 [in] int fActual);
239
240 void PreHeapMinimize();
241
242 void PostHeapMinimize();
243}
244
245[
246 local,
247 object,
248 uuid(00000021-0000-0000-C000-000000000046)
249]
250interface IInternalUnknown : IUnknown
251{
252 HRESULT QueryInternalInterface(
253 [in] REFIID riid,
254 [out] void **ppv);
255}
256
257[
258 object,
259 uuid(00000100-0000-0000-C000-000000000046),
260 pointer_default(unique)
261]
262interface IEnumUnknown : IUnknown
263{
264 typedef [unique] IEnumUnknown *LPENUMUNKNOWN;
265
266 [local]
267 HRESULT Next(
268 [in] ULONG celt,
269 [out] IUnknown **rgelt,
270 [out] ULONG *pceltFetched);
271
272 [call_as(Next)]
273 HRESULT RemoteNext(
274 [in] ULONG celt,
275 [out, size_is(celt), length_is(*pceltFetched)]
276 IUnknown **rgelt,
277 [out] ULONG *pceltFetched);
278
279 HRESULT Skip(
280 [in] ULONG celt);
281
282 HRESULT Reset();
283
284 HRESULT Clone(
285 [out] IEnumUnknown **ppenum);
286}
287
288[
289 object,
290 uuid(00000022-0000-0000-C000-000000000046),
291 version(1.0),
292 pointer_default(unique)
293]
294interface ISurrogate : IUnknown
295{
296 typedef [unique] ISurrogate *LPSURROGATE;
297
298 HRESULT LoadDllServer(
299 [in] REFCLSID Clsid);
300 HRESULT FreeSurrogate();
301}
302
303[
304 local,
305 object,
306 uuid(00000146-0000-0000-C000-000000000046)
307]
308interface IGlobalInterfaceTable : IUnknown
309{
310 typedef [unique] IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
311
312 HRESULT RegisterInterfaceInGlobal(
313 [in] IUnknown *pUnk,
314 [in] REFIID riid,
315 [out] DWORD *pdwCookie);
316
317 HRESULT RevokeInterfaceFromGlobal(
318 [in] DWORD dwCookie);
319
320 HRESULT GetInterfaceFromGlobal(
321 [in] DWORD dwCookie,
322 [in] REFIID riid,
323 [out, iid_is(riid)] void **ppv);
324}
325
326/******************** Monikers ********************/
327
328[
329 object,
330 uuid(0000000e-0000-0000-C000-000000000046),
331 pointer_default(unique)
332]
333interface IBindCtx : IUnknown
334{
335 typedef [unique] IBindCtx *LPBINDCTX;
336 typedef [unique] IBindCtx *LPBC;
337
338 typedef struct tagBIND_OPTS {
339 DWORD cbStruct;
340 DWORD grfFlags;
341 DWORD grfMode;
342 DWORD dwTickCountDeadline;
343 } BIND_OPTS, *LPBIND_OPTS;
344
345 /* FIXME: C++ crap */
346 typedef struct tagBIND_OPTS2 {
347 DWORD cbStruct;
348 DWORD grfFlags;
349 DWORD grfMode;
350 DWORD dwTickCountDeadline;
351 DWORD dwTrackFlags;
352 DWORD dwClassContext;
353 LCID locale;
354 COSERVERINFO *pServerInfo;
355 } BIND_OPTS2, *LPBIND_OPTS2;
356
357 typedef enum tagBIND_FLAGS {
358 BIND_MAYBOTHERUSER = 1,
359 BIND_JUSTTESTEXISTENCE = 2
360 } BIND_FLAGS;
361
362 HRESULT RegisterObjectBound(
363 [in, unique] IUnknown *punk);
364
365 HRESULT RevokeObjectBound(
366 [in, unique] IUnknown *punk);
367
368 HRESULT ReleaseBoundObjects();
369
370 [local]
371 HRESULT SetBindOptions(
372 [in] BIND_OPTS *pbindopts);
373
374 [call_as(SetBindOptions)]
375 HRESULT RemoteSetBindOptions(
376 [in] BIND_OPTS2 *pbindopts);
377
378 [local]
379 HRESULT GetBindOptions(
380 [in, out] BIND_OPTS *pbindopts);
381
382 [call_as(GetBindOptions)]
383 HRESULT RemoteGetBindOptions(
384 [in, out] BIND_OPTS2 *pbindopts);
385
386 HRESULT GetRunningObjectTable(
387 [out] IRunningObjectTable **pprot);
388
389 HRESULT RegisterObjectParam(
390 [in] LPOLESTR pszKey,
391 [in, unique] IUnknown *punk);
392
393 HRESULT GetObjectParam(
394 [in] LPOLESTR pszKey,
395 [out] IUnknown **ppunk);
396
397 HRESULT EnumObjectParam(
398 [out] IEnumString **ppenum);
399
400 HRESULT RevokeObjectParam(
401 [in] LPOLESTR pszKey);
402}
403
404[
405 object,
406 uuid(00000102-0000-0000-C000-000000000046),
407 pointer_default(unique)
408]
409interface IEnumMoniker : IUnknown
410{
411 typedef [unique] IEnumMoniker *LPENUMMONIKER;
412
413 [local]
414 HRESULT Next(
415 [in] ULONG celt,
416 [out, size_is(celt), length_is(*pceltFetched)]
417 IMoniker **rgelt,
418 [out] ULONG *pceltFetched);
419
420 [call_as(Next)]
421 HRESULT RemoteNext(
422 [in] ULONG celt,
423 [out, size_is(celt), length_is(*pceltFetched)]
424 IMoniker **rgelt,
425 [out] ULONG *pceltFetched);
426
427 HRESULT Skip(
428 [in] ULONG celt);
429
430 HRESULT Reset();
431
432 HRESULT Clone(
433 [out] IEnumMoniker **ppenum);
434}
435
436[
437 object,
438 uuid(00000126-0000-0000-C000-000000000046)
439]
440interface IRunnableObject : IUnknown
441{
442 typedef [unique] IRunnableObject *LPRUNNABLEOBJECT;
443
444 HRESULT GetRunningClass(
445 [out] LPCLSID lpClsid);
446
447 HRESULT Run(
448 [in] LPBINDCTX pbc);
449
450 [local]
451 BOOL IsRunning();
452
453 [call_as(IsRunning)]
454 HRESULT RemoteIsRunning();
455
456 HRESULT LockRunning(
457 [in] BOOL fLock,
458 [in] BOOL fLastUnlockCloses);
459
460 HRESULT SetContainedObject(
461 [in] BOOL fContained);
462}
463
464/* GetObject is defined in wingdi.h as WINELIB_NAME_AW(GetObject),
465 * which resolves to a compilation failure if WINE_NO_UNICODE_MACROS is defined,
466 * but GetObject is used as a valid method name below, so we have
467 * to undefine it in that case */
468cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
469cpp_quote("#undef GetObject")
470cpp_quote("#endif")
471
472[
473 object,
474 uuid(00000010-0000-0000-C000-000000000046)
475]
476interface IRunningObjectTable : IUnknown
477{
478 typedef [unique] IRunningObjectTable *LPRUNNINGOBJECTTABLE;
479
480 HRESULT Register(
481 [in] DWORD grfFlags,
482 [in, unique] IUnknown *punkObject,
483 [in, unique] IMoniker *pmkObjectName,
484 [out] DWORD *pdwRegister);
485
486 HRESULT Revoke(
487 [in] DWORD dwRegister);
488
489 HRESULT IsRunning(
490 [in, unique] IMoniker *pmkObjectName);
491
492 HRESULT GetObject(
493 [in, unique] IMoniker *pmkObjectName,
494 [out] IUnknown **ppunkObject);
495
496 HRESULT NoteChangeTime(
497 [in] DWORD dwRegister,
498 [in] FILETIME *pfiletime);
499
500 HRESULT GetTimeOfLastChange(
501 [in, unique] IMoniker *pmkObjectName,
502 [out] FILETIME *pfiletime);
503
504 HRESULT EnumRunning(
505 [out] IEnumMoniker **ppenumMoniker);
506}
507
508[
509 object,
510 uuid(0000010c-0000-0000-C000-000000000046)
511]
512interface IPersist : IUnknown
513{
514 typedef [unique] IPersist *LPPERSIST;
515
516 HRESULT GetClassID(
517 [out] CLSID *pClassID);
518}
519
520[
521 object,
522 uuid(00000109-0000-0000-C000-000000000046),
523 pointer_default(unique)
524]
525interface IPersistStream : IPersist
526{
527 typedef [unique] IPersistStream *LPPERSISTSTREAM;
528
529 HRESULT IsDirty();
530
531 HRESULT Load(
532 [in, unique] IStream *pStm);
533
534 HRESULT Save(
535 [in, unique] IStream *pStm,
536 [in] BOOL fClearDirty);
537
538 HRESULT GetSizeMax(
539 [out] ULARGE_INTEGER *pcbSize);
540}
541
542[
543 object,
544 uuid(0000000f-0000-0000-C000-000000000046),
545 pointer_default(unique)
546]
547interface IMoniker : IPersistStream
548{
549 typedef [unique] IMoniker *LPMONIKER;
550
551 typedef enum tagMKSYS {
552 MKSYS_NONE = 0,
553 MKSYS_GENERICCOMPOSITE = 1,
554 MKSYS_FILEMONIKER = 2,
555 MKSYS_ANTIMONIKER = 3,
556 MKSYS_ITEMMONIKER = 4,
557 MKSYS_POINTERMONIKER = 5,
558 /* MKSYS_URLMONIKER = 6, */ /* defined in urlmon.idl */
559 MKSYS_CLASSMONIKER = 7
560 } MKSYS;
561
562 typedef [v1_enum] enum tagMKREDUCE {
563 MKRREDUCE_ONE = 3 << 16,
564 MKRREDUCE_TOUSER = 2 << 16,
565 MKRREDUCE_THROUGHUSER = 1 << 16,
566 MKRREDUCE_ALL = 0
567 } MKRREDUCE;
568
569 [local]
570 HRESULT BindToObject(
571 [in, unique] IBindCtx *pbc,
572 [in, unique] IMoniker *pmkToLeft,
573 [in] REFIID riidResult,
574 [out, iid_is(riidResult)] void **ppvResult);
575
576 [call_as(BindToObject)]
577 HRESULT RemoteBindToObject(
578 [in, unique] IBindCtx *pbc,
579 [in, unique] IMoniker *pmkToLeft,
580 [in] REFIID riidResult,
581 [out, iid_is(riidResult)] IUnknown **ppvResult);
582
583 [local]
584 HRESULT BindToStorage(
585 [in, unique] IBindCtx *pbc,
586 [in, unique] IMoniker *pmkToLeft,
587 [in] REFIID riid,
588 [out, iid_is(riid)] void **ppvObj);
589
590 [call_as(BindToStorage)]
591 HRESULT RemoteBindToStorage(
592 [in, unique] IBindCtx *pbc,
593 [in, unique] IMoniker *pmkToLeft,
594 [in] REFIID riid,
595 [out, iid_is(riid)] IUnknown **ppvObj);
596
597 HRESULT Reduce(
598 [in, unique] IBindCtx *pbc,
599 [in] DWORD dwReduceHowFar,
600 [in, out, unique] IMoniker **ppmkToLeft,
601 [out] IMoniker **ppmkReduced);
602
603 HRESULT ComposeWith(
604 [in, unique] IMoniker *pmkRight,
605 [in] BOOL fOnlyIfNotGeneric,
606 [out] IMoniker **ppmkComposite);
607
608 HRESULT Enum(
609 [in] BOOL fForward,
610 [out] IEnumMoniker **ppenumMoniker);
611
612 HRESULT IsEqual(
613 [in, unique] IMoniker *pmkOtherMoniker);
614
615 HRESULT Hash(
616 [out] DWORD *pdwHash);
617
618 HRESULT IsRunning(
619 [in, unique] IBindCtx *pbc,
620 [in, unique] IMoniker *pmkToLeft,
621 [in, unique] IMoniker *pmkNewlyRunning);
622
623 HRESULT GetTimeOfLastChange(
624 [in, unique] IBindCtx *pbc,
625 [in, unique] IMoniker *pmkToLeft,
626 [out] FILETIME *pFileTime);
627
628 HRESULT Inverse(
629 [out] IMoniker **ppmk);
630
631 HRESULT CommonPrefixWith(
632 [in, unique] IMoniker *pmkOther,
633 [out] IMoniker **ppmkPrefix);
634
635 HRESULT RelativePathTo(
636 [in, unique] IMoniker *pmkOther,
637 [out] IMoniker **ppmkRelPath);
638
639 HRESULT GetDisplayName(
640 [in, unique] IBindCtx *pbc,
641 [in, unique] IMoniker *pmkToLeft,
642 [out] LPOLESTR *ppszDisplayName);
643
644 HRESULT ParseDisplayName(
645 [in, unique] IBindCtx *pbc,
646 [in, unique] IMoniker *pmkToLeft,
647 [in] LPOLESTR pszDisplayName,
648 [out] ULONG *pchEaten,
649 [out] IMoniker **ppmkOut);
650
651 HRESULT IsSystemMoniker(
652 [out] DWORD *pdwMksys);
653}
654
655[
656 object,
657 uuid(f29f6bc0-5021-11ce-aa15-00006901293f),
658 pointer_default(unique)
659]
660interface IROTData : IUnknown
661{
662 HRESULT GetComparisonData(
663 [out, size_is(cbMax)] byte *pbData,
664 [in] ULONG cbMax,
665 [out] ULONG *pcbData);
666}
667
668[
669 object,
670 uuid(00000101-0000-0000-C000-000000000046),
671 pointer_default(unique)
672]
673interface IEnumString : IUnknown
674{
675 typedef [unique] IEnumString *LPENUMSTRING;
676
677 [local]
678 HRESULT Next(
679 [in] ULONG celt,
680 [out, size_is(celt), length_is(*pceltFetched)]
681 LPOLESTR *rgelt,
682 [out] ULONG *pceltFetched);
683
684 [call_as(Next)]
685 HRESULT RemoteNext(
686 [in] ULONG celt,
687 [out, size_is(celt), length_is(*pceltFetched)]
688 LPOLESTR *rgelt,
689 [out] ULONG *pceltFetched);
690
691 HRESULT Skip(
692 [in] ULONG celt);
693
694 HRESULT Reset();
695
696 HRESULT Clone(
697 [out] IEnumString **ppenum);
698}
699
700[
701 object,
702 uuid(00000140-0000-0000-C000-000000000046)
703]
704interface IClassActivator : IUnknown
705{
706 HRESULT GetClassObject(
707 [in] REFCLSID rclsid,
708 [in] DWORD dwClassContext,
709 [in] LCID locale,
710 [in] REFIID riid,
711 [out, iid_is(riid)] void **ppv);
712}
713
714/******************** Storage ********************/
715
716[
717 object,
718 uuid(0c733a30-2a1c-11ce-ade5-00aa0044773d),
719 pointer_default(unique)
720]
721interface ISequentialStream : IUnknown
722{
723 [local]
724 HRESULT Read(
725 [out, size_is(cb), length_is(*pcbRead)]
726 void *pv,
727 [in] ULONG cb,
728 [out] ULONG *pcbRead);
729
730 [call_as(Read)]
731 HRESULT RemoteRead(
732 [out, size_is(cb), length_is(*pcbRead)]
733 byte *pv,
734 [in] ULONG cb,
735 [out] ULONG *pcbRead);
736
737 [local]
738 HRESULT Write(
739 [in, size_is(cb)] const void *pv,
740 [in] ULONG cb,
741 [out] ULONG *pcbWritten);
742
743 [call_as(Write)]
744 HRESULT RemoteWrite(
745 [in, size_is(cb)] const byte *pv,
746 [in] ULONG cb,
747 [out] ULONG *pcbWritten);
748}
749
750[
751 object,
752 uuid(0000000c-0000-0000-C000-000000000046),
753 pointer_default(unique)
754]
755interface IStream : ISequentialStream
756{
757 typedef [unique] IStream *LPSTREAM;
758
759 typedef struct tagSTATSTG {
760 LPOLESTR pwcsName;
761 DWORD type;
762 ULARGE_INTEGER cbSize;
763 FILETIME mtime;
764 FILETIME ctime;
765 FILETIME atime;
766 DWORD grfMode;
767 DWORD grfLocksSupported;
768 CLSID clsid;
769 DWORD grfStateBits;
770 DWORD reserved;
771 } STATSTG;
772
773 typedef enum tagSTGTY {
774 STGTY_STORAGE = 1,
775 STGTY_STREAM = 2,
776 STGTY_LOCKBYTES = 3,
777 STGTY_PROPERTY = 4
778 } STGTY;
779
780 typedef enum tagSTREAM_SEEK {
781 STREAM_SEEK_SET = 0,
782 STREAM_SEEK_CUR = 1,
783 STREAM_SEEK_END = 2
784 } STREAM_SEEK;
785
786 /* these are defined in Linux's fcntl.h,
787 * undefine them to avoid conflicts */
788 cpp_quote("#undef LOCK_MAND")
789 cpp_quote("#undef LOCK_READ")
790 cpp_quote("#undef LOCK_WRITE")
791 cpp_quote("#undef LOCK_RW")
792
793 typedef enum tagLOCKTYPE {
794 LOCK_WRITE = 1,
795 LOCK_EXCLUSIVE = 2,
796 LOCK_ONLYONCE = 4
797 } LOCKTYPE;
798
799 [local]
800 HRESULT Seek(
801 [in] LARGE_INTEGER dlibMove,
802 [in] DWORD dwOrigin,
803 [out] ULARGE_INTEGER *plibNewPosition);
804
805 [call_as(Seek)]
806 HRESULT RemoteSeek(
807 [in] LARGE_INTEGER dlibMove,
808 [in] DWORD dwOrigin,
809 [out] ULARGE_INTEGER *plibNewPosition);
810
811 HRESULT SetSize(
812 [in] ULARGE_INTEGER libNewSize);
813
814 [local]
815 HRESULT CopyTo(
816 [in, unique] IStream *pstm,
817 [in] ULARGE_INTEGER cb,
818 [out] ULARGE_INTEGER *pcbRead,
819 [out] ULARGE_INTEGER *pcbWritten);
820
821 [call_as(CopyTo)]
822 HRESULT RemoteCopyTo(
823 [in, unique] IStream *pstm,
824 [in] ULARGE_INTEGER cb,
825 [out] ULARGE_INTEGER *pcbRead,
826 [out] ULARGE_INTEGER *pcbWritten);
827
828 HRESULT Commit(
829 [in] DWORD grfCommitFlags);
830
831 HRESULT Revert();
832
833 HRESULT LockRegion(
834 [in] ULARGE_INTEGER libOffset,
835 [in] ULARGE_INTEGER cb,
836 [in] DWORD dwLockType);
837
838 HRESULT UnlockRegion(
839 [in] ULARGE_INTEGER libOffset,
840 [in] ULARGE_INTEGER cb,
841 [in] DWORD dwLockType);
842
843 HRESULT Stat(
844 [out] STATSTG *pstatstg,
845 [in] DWORD grfStatFlag);
846
847 HRESULT Clone(
848 [out] IStream **ppstm);
849}
850
851[
852 object,
853 uuid(0000000d-0000-0000-C000-000000000046),
854 pointer_default(unique)
855]
856interface IEnumSTATSTG : IUnknown
857{
858 typedef [unique] IEnumSTATSTG *LPENUMSTATSTG;
859
860 [local]
861 HRESULT Next(
862 [in] ULONG celt,
863 [out, size_is(celt), length_is(*pceltFetched)]
864 STATSTG *rgelt,
865 [out] ULONG *pceltFetched);
866
867 [call_as(Next)]
868 HRESULT RemoteNext(
869 [in] ULONG celt,
870 [out, size_is(celt), length_is(*pceltFetched)]
871 STATSTG *rgelt,
872 [out] ULONG *pceltFetched);
873
874 HRESULT Skip(
875 [in] ULONG celt);
876
877 HRESULT Reset();
878
879 HRESULT Clone(
880 [out] IEnumSTATSTG **ppenum);
881}
882
883[
884 object,
885 uuid(0000000b-0000-0000-C000-000000000046),
886 pointer_default(unique)
887]
888interface IStorage : IUnknown
889{
890 typedef [unique] IStorage *LPSTORAGE;
891
892 typedef struct tagRemSNB {
893 unsigned long ulCntStr;
894 unsigned long ulCntChar;
895 [size_is(ulCntChar)] OLECHAR rgString[];
896 } RemSNB;
897
898 typedef [unique] RemSNB *wireSNB;
899 typedef [wire_marshal(wireSNB)] OLECHAR **SNB;
900
901 HRESULT CreateStream(
902 [in] LPCOLESTR pwcsName,
903 [in] DWORD grfMode,
904 [in] DWORD reserved1,
905 [in] DWORD reserved2,
906 [out] IStream **ppstm);
907
908 [local]
909 HRESULT OpenStream(
910 [in] LPCOLESTR pwcsName,
911 [in, unique] void *reserved1,
912 [in] DWORD grfMode,
913 [in] DWORD reserved2,
914 [out] IStream **ppstm);
915
916 [call_as(OpenStream)]
917 HRESULT RemoteOpenStream(
918 [in] LPCOLESTR pwcsName,
919 [in] unsigned long cbReserved1,
920 [in, unique, size_is(cbReserved1)] byte *reserved1,
921 [in] DWORD grfMode,
922 [in] DWORD reserved2,
923 [out] IStream **ppstm);
924
925 HRESULT CreateStorage(
926 [in] LPCOLESTR pwcsName,
927 [in] DWORD grfMode,
928 [in] DWORD dwStgFmt,
929 [in] DWORD reserved2,
930 [out] IStorage **ppstg);
931
932 HRESULT OpenStorage(
933 [in, unique] LPCOLESTR pwcsName,
934 [in, unique] IStorage *pstgPriority,
935 [in] DWORD grfMode,
936 [in, unique] SNB snbExclude,
937 [in] DWORD reserved,
938 [out] IStorage **ppstg);
939
940 HRESULT CopyTo(
941 [in] DWORD ciidExclude,
942 [in, unique, size_is(ciidExclude)] const IID *rgiidExclude,
943 [in, unique] SNB snbExclude,
944 [in, unique] IStorage *pstgDest);
945
946 HRESULT MoveElementTo(
947 [in] LPCOLESTR pwcsName,
948 [in, unique] IStorage *pstgDest,
949 [in] LPCOLESTR pwcsNewName,
950 [in] DWORD grfFlags);
951
952 HRESULT Commit(
953 [in] DWORD grfCommitFlags);
954
955 HRESULT Revert();
956
957 [local]
958 HRESULT EnumElements(
959 [in] DWORD reserved1,
960 [in, unique, size_is(1)] void *reserved2,
961 [in] DWORD reserved3,
962 [out] IEnumSTATSTG **ppenum);
963
964 [call_as(EnumElements)]
965 HRESULT RemoteEnumElements(
966 [in] DWORD reserved1,
967 [in] unsigned long cbReserved2,
968 [in, unique, size_is(cbReserved2)] byte *reserved2,
969 [in] DWORD reserved3,
970 [out] IEnumSTATSTG **ppenum);
971
972 HRESULT DestroyElement(
973 [in] LPCOLESTR pwcsName);
974
975 HRESULT RenameElement(
976 [in] LPCOLESTR pwcsOldName,
977 [in] LPCOLESTR pwcsNewName);
978
979 HRESULT SetElementTimes(
980 [in, unique] LPCOLESTR pwcsName,
981 [in, unique] const FILETIME *pctime,
982 [in, unique] const FILETIME *patime,
983 [in, unique] const FILETIME *pmtime);
984
985 HRESULT SetClass(
986 [in] REFCLSID clsid);
987
988 HRESULT SetStateBits(
989 [in] DWORD grfStateBits,
990 [in] DWORD grfMask);
991
992 HRESULT Stat(
993 [out] STATSTG *pstatstg,
994 [in] DWORD grfStatFlag);
995}
996
997[
998 object,
999 uuid(0000010b-0000-0000-C000-000000000046),
1000 pointer_default(unique)
1001]
1002interface IPersistFile : IPersist
1003{
1004 typedef [unique] IPersistFile *LPPERSISTFILE;
1005
1006 HRESULT IsDirty();
1007
1008 HRESULT Load(
1009 [in] LPCOLESTR pszFileName,
1010 [in] DWORD dwMode);
1011
1012 HRESULT Save(
1013 [in, unique] LPCOLESTR pszFileName,
1014 [in] BOOL fRemember);
1015
1016 HRESULT SaveCompleted(
1017 [in, unique] LPCOLESTR pszFileName);
1018
1019 HRESULT GetCurFile(
1020 [out] LPOLESTR *ppszFileName);
1021}
1022
1023[
1024 object,
1025 uuid(0000010a-0000-0000-C000-000000000046),
1026 pointer_default(unique)
1027]
1028interface IPersistStorage : IPersist
1029{
1030 typedef [unique] IPersistStorage *LPPERSISTSTORAGE;
1031
1032 HRESULT IsDirty();
1033
1034 HRESULT InitNew(
1035 [in, unique] IStorage *pStg);
1036
1037 HRESULT Load(
1038 [in, unique] IStorage *pStg);
1039
1040 HRESULT Save(
1041 [in, unique] IStorage *pStgSave,
1042 [in] BOOL fSameAsLoad);
1043
1044 HRESULT SaveCompleted(
1045 [in, unique] IStorage *pStgNew);
1046
1047 HRESULT HandsOffStorage();
1048}
1049
1050[
1051 object,
1052 uuid(00000012-0000-0000-C000-000000000046),
1053 pointer_default(unique)
1054]
1055interface IRootStorage : IUnknown
1056{
1057 typedef [unique] IRootStorage *LPROOTSTORAGE;
1058
1059 HRESULT SwitchToFile(
1060 [in] LPOLESTR pszFile);
1061}
1062
1063[
1064 object,
1065 uuid(0000000a-0000-0000-C000-000000000046),
1066 pointer_default(unique)
1067]
1068interface ILockBytes : IUnknown
1069{
1070 typedef [unique] ILockBytes *LPLOCKBYTES;
1071
1072 [local]
1073 HRESULT ReadAt(
1074 [in] ULARGE_INTEGER ulOffset,
1075 [out, size_is(cb), length_is(*pcbRead)]
1076 void *pv,
1077 [in] ULONG cb,
1078 [out] ULONG *pcbRead);
1079
1080 [call_as(ReadAt)]
1081 HRESULT RemoteReadAt(
1082 [in] ULARGE_INTEGER ulOffset,
1083 [out, size_is(cb), length_is(*pcbRead)]
1084 byte *pv,
1085 [in] ULONG cb,
1086 [out] ULONG *pcbRead);
1087
1088 [local]
1089 HRESULT WriteAt(
1090 [in] ULARGE_INTEGER ulOffset,
1091 [in, size_is(cb)] const void *pv,
1092 [in] ULONG cb,
1093 [out] ULONG *pcbWritten);
1094
1095 [call_as(WriteAt)]
1096 HRESULT RemoteWriteAt(
1097 [in] ULARGE_INTEGER ulOffset,
1098 [in, size_is(cb)] const byte *pv,
1099 [in] ULONG cb,
1100 [out] ULONG *pcbWritten);
1101
1102 HRESULT Flush();
1103
1104 HRESULT SetSize(
1105 [in] ULARGE_INTEGER cb);
1106
1107 HRESULT LockRegion(
1108 [in] ULARGE_INTEGER libOffset,
1109 [in] ULARGE_INTEGER cb,
1110 [in] DWORD dwLockType);
1111
1112 HRESULT UnlockRegion(
1113 [in] ULARGE_INTEGER libOffset,
1114 [in] ULARGE_INTEGER cb,
1115 [in] DWORD dwLockType);
1116
1117 HRESULT Stat(
1118 [out] STATSTG *pstatstg,
1119 [in] DWORD grfStatFlag);
1120}
1121
1122[
1123 object,
1124 uuid(99caf010-415e-11cf-8814-00aa00b569f5),
1125 pointer_default(unique)
1126]
1127interface IFillLockBytes : IUnknown
1128{
1129 [local]
1130 HRESULT FillAppend(
1131 [in, size_is(cb)] const void *pv,
1132 [in] ULONG cb,
1133 [out] ULONG *pcbWritten);
1134
1135 [call_as(FillAppend)]
1136 HRESULT RemoteFillAppend(
1137 [in, size_is(cb)] const byte *pv,
1138 [in] ULONG cb,
1139 [out] ULONG *pcbWritten);
1140
1141 [local]
1142 HRESULT FillAt(
1143 [in] ULARGE_INTEGER ulOffset,
1144 [in, size_is(cb)] const void *pv,
1145 [in] ULONG cb,
1146 [out] ULONG *pcbWritten);
1147
1148 [call_as(FillAt)]
1149 HRESULT RemoteFillAt(
1150 [in] ULARGE_INTEGER ulOffset,
1151 [in, size_is(cb)] const byte *pv,
1152 [in] ULONG cb,
1153 [out] ULONG *pcbWritten);
1154
1155 HRESULT SetFillSize(
1156 [in] ULARGE_INTEGER ulSize);
1157
1158 HRESULT Terminate(
1159 [in] BOOL bCanceled);
1160}
1161
1162[
1163 object,
1164 uuid(a9d758a0-4617-11cf-95fc-00aa00680db4),
1165 pointer_default(unique)
1166]
1167interface IProgressNotify : IUnknown
1168{
1169 HRESULT OnProgress(
1170 [in] DWORD dwProgressCurrent,
1171 [in] DWORD dwProgressMaximum,
1172 [in] BOOL fAccurate,
1173 [in] BOOL fOwner);
1174}
1175
1176[
1177 local,
1178 object,
1179 uuid(0e6d4d90-6738-11cf-9608-00aa00680db4),
1180 pointer_default(unique)
1181]
1182interface ILayoutStorage : IUnknown
1183{
1184 typedef struct tagStorageLayout {
1185 DWORD LayoutType;
1186 OLECHAR *pwcsElementName;
1187 LARGE_INTEGER cOffset;
1188 LARGE_INTEGER cBytes;
1189 } StorageLayout;
1190
1191 HRESULT LayoutScript(
1192 [in] StorageLayout *pStorageLayout,
1193 [in] DWORD nEntries,
1194 [in] DWORD glfInterleavedFlag);
1195
1196 HRESULT BeginMonitor();
1197
1198 HRESULT EndMonitor();
1199
1200 HRESULT ReLayoutDocfile(
1201 [in] OLECHAR *pwcsNewDfName);
1202
1203 HRESULT ReLayoutDocfileOnILockBytes(
1204 [in] ILockBytes *pILockBytes);
1205}
1206
1207[
1208 object,
1209 uuid(30f3d47a-6447-11d1-8e3c-00c04fb9386d)
1210]
1211interface IBlockingLock : IUnknown
1212{
1213 HRESULT Lock(
1214 [in] DWORD dwTimeout);
1215
1216 HRESULT Unlock();
1217}
1218
1219
1220[
1221 object,
1222 uuid(bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4)
1223]
1224interface ITimeAndNoticeControl : IUnknown
1225{
1226 HRESULT SuppressChanges(
1227 [in] DWORD res1,
1228 [in] DWORD res2);
1229
1230}
1231
1232
1233
1234[
1235 object,
1236 uuid(8d19c834-8879-11d1-83e9-00c04fc2c6d4)
1237]
1238interface IOplockStorage: IUnknown
1239{
1240 HRESULT CreateStorageEx(
1241 [in] LPCWSTR pwcsName,
1242 [in] DWORD grfMode,
1243 [in] DWORD stgfmt,
1244 [in] DWORD grfAttrs,
1245 [in] REFIID riid,
1246 [out, iid_is(riid)] void **ppstgOpen);
1247
1248 HRESULT OpenStorageEx(
1249 [in] LPCWSTR pwcsName,
1250 [in] DWORD grfMode,
1251 [in] DWORD stgfmt,
1252 [in] DWORD grfAttrs,
1253 [in] REFIID riid,
1254 [out, iid_is(riid)] void **ppstgOpen);
1255}
1256
1257/******************** Data Object ********************/
1258
1259[
1260 object,
1261 uuid(00000103-0000-0000-C000-000000000046),
1262 pointer_default(unique)
1263]
1264interface IEnumFORMATETC : IUnknown
1265{
1266 typedef [unique] IEnumFORMATETC *LPENUMFORMATETC;
1267
1268 typedef struct tagDVTARGETDEVICE {
1269 DWORD tdSize;
1270 WORD tdDriverNameOffset;
1271 WORD tdDeviceNameOffset;
1272 WORD tdPortNameOffset;
1273 WORD tdExtDevmodeOffset;
1274 [size_is(tdSize - sizeof(DWORD) - 4*sizeof(WORD))]
1275 BYTE tdData[];
1276 } DVTARGETDEVICE;
1277
1278 typedef CLIPFORMAT *LPCLIPFORMAT;
1279
1280 typedef struct tagFORMATETC {
1281 CLIPFORMAT cfFormat;
1282 [unique] DVTARGETDEVICE *ptd;
1283 DWORD dwAspect;
1284 LONG lindex;
1285 DWORD tymed;
1286 } FORMATETC, *LPFORMATETC;
1287
1288 [local]
1289 HRESULT Next(
1290 [in] ULONG celt,
1291 [out, size_is(celt), length_is(*pceltFetched)]
1292 FORMATETC *rgelt,
1293 [out] ULONG *pceltFetched);
1294
1295 [call_as(Next)]
1296 HRESULT RemoteNext(
1297 [in] ULONG celt,
1298 [out, size_is(celt), length_is(*pceltFetched)]
1299 FORMATETC *rgelt,
1300 [out] ULONG *pceltFetched);
1301
1302 HRESULT Skip(
1303 [in] ULONG celt);
1304
1305 HRESULT Reset();
1306
1307 HRESULT Clone(
1308 [out] IEnumFORMATETC **ppenum);
1309}
1310
1311[
1312 object,
1313 uuid(00000105-0000-0000-C000-000000000046),
1314 pointer_default(unique)
1315]
1316interface IEnumSTATDATA : IUnknown
1317{
1318 typedef [unique] IEnumSTATDATA *LPENUMSTATDATA;
1319
1320 typedef enum tagADVF {
1321 ADVF_NODATA = 1,
1322 ADVF_PRIMEFIRST = 2,
1323 ADVF_ONLYONCE = 4,
1324 ADVF_DATAONSTOP = 64,
1325 ADVFCACHE_NOHANDLER = 8,
1326 ADVFCACHE_FORCEBUILTIN = 16,
1327 ADVFCACHE_ONSAVE = 32
1328 } ADVF;
1329
1330 typedef struct tagSTATDATA
1331 {
1332 FORMATETC formatetc;
1333 DWORD advf;
1334 [unique] IAdviseSink *pAdvSink;
1335 DWORD dwConnection;
1336 } STATDATA, *LPSTATDATA;
1337
1338 [local]
1339 HRESULT Next(
1340 [in] ULONG celt,
1341 [out, size_is(celt), length_is(*pceltFetched)]
1342 STATDATA *rgelt,
1343 [out] ULONG *pceltFetched);
1344
1345 [call_as(Next)]
1346 HRESULT RemoteNext(
1347 [in] ULONG celt,
1348 [out, size_is(celt), length_is(*pceltFetched)]
1349 STATDATA *rgelt,
1350 [out] ULONG *pceltFetched);
1351
1352 HRESULT Skip(
1353 [in] ULONG celt);
1354
1355 HRESULT Reset();
1356
1357 HRESULT Clone(
1358 [out] IEnumSTATDATA **ppenum);
1359}
1360
1361[
1362 object,
1363 uuid(0000010f-0000-0000-C000-000000000046),
1364 pointer_default(unique)
1365]
1366interface IAdviseSink : IUnknown
1367{
1368 typedef IAdviseSink *LPADVISESINK;
1369
1370 typedef [v1_enum] enum tagTYMED {
1371 TYMED_HGLOBAL = 1,
1372 TYMED_FILE = 2,
1373 TYMED_ISTREAM = 4,
1374 TYMED_ISTORAGE = 8,
1375 TYMED_GDI = 16,
1376 TYMED_MFPICT = 32,
1377 TYMED_ENHMF = 64,
1378 TYMED_NULL = 0
1379 } TYMED;
1380
1381 typedef struct tagRemSTGMEDIUM {
1382 DWORD tymed;
1383 DWORD dwHandleType;
1384 unsigned long pData;
1385 unsigned long pUnkForRelease;
1386 unsigned long cbData;
1387 [size_is(cbData)] byte data[];
1388 } RemSTGMEDIUM;
1389
1390 typedef struct tagSTGMEDIUM {
1391 DWORD tymed;
1392 [switch_is(tymed)] union {
1393 [case(TYMED_GDI)] HBITMAP hBitmap;
1394 [case(TYMED_MFPICT)] HMETAFILEPICT hMetaFilePict;
1395 [case(TYMED_ENHMF)] HENHMETAFILE hEnhMetaFile;
1396 [case(TYMED_HGLOBAL)] HGLOBAL hGlobal;
1397 [case(TYMED_FILE)] LPOLESTR lpszFileName;
1398 [case(TYMED_ISTREAM)] IStream *pstm;
1399 [case(TYMED_ISTORAGE)] IStorage *pstg;
1400 [default] ;
1401 } DUMMYUNIONNAME;
1402 [unique] IUnknown *pUnkForRelease;
1403 } uSTGMEDIUM;
1404
1405/* copied from wingdi.h */
1406#define OBJ_PEN 1
1407#define OBJ_BRUSH 2
1408#define OBJ_DC 3
1409#define OBJ_METADC 4
1410#define OBJ_PAL 5
1411#define OBJ_FONT 6
1412#define OBJ_BITMAP 7
1413#define OBJ_REGION 8
1414#define OBJ_METAFILE 9
1415#define OBJ_MEMDC 10
1416#define OBJ_EXTPEN 11
1417#define OBJ_ENHMETADC 12
1418#define OBJ_ENHMETAFILE 13
1419
1420 typedef union _GDI_OBJECT switch(DWORD ObjectType) u {
1421 case OBJ_BITMAP: wireHBITMAP hBitmap;
1422 case OBJ_PAL: wireHPALETTE hPalette;
1423 default: wireHGLOBAL hGeneric;
1424 } GDI_OBJECT;
1425
1426 typedef struct _userSTGMEDIUM {
1427 union switch(DWORD tymed) u {
1428 case TYMED_NULL: ;
1429 case TYMED_MFPICT: wireHMETAFILEPICT hMetaFilePict;
1430 case TYMED_ENHMF: wireHENHMETAFILE hHEnhMetaFile;
1431 case TYMED_GDI: GDI_OBJECT *hGdiHandle;
1432 case TYMED_HGLOBAL: wireHGLOBAL hGlobal;
1433 case TYMED_FILE: LPOLESTR lpszFileName;
1434 case TYMED_ISTREAM: BYTE_BLOB *pstm;
1435 case TYMED_ISTORAGE: BYTE_BLOB *pstg;
1436 } DUMMYUNIONNAME;
1437 IUnknown *pUnkForRelease;
1438 } userSTGMEDIUM;
1439
1440 typedef [unique] userSTGMEDIUM *wireSTGMEDIUM;
1441 typedef [wire_marshal(wireSTGMEDIUM)] uSTGMEDIUM STGMEDIUM;
1442
1443 typedef [unique] userSTGMEDIUM *wireASYNC_STGMEDIUM;
1444 typedef [wire_marshal(wireASYNC_STGMEDIUM)] STGMEDIUM ASYNC_STGMEDIUM;
1445
1446 typedef STGMEDIUM *LPSTGMEDIUM;
1447
1448 typedef struct _userFLAG_STGMEDIUM {
1449 long ContextFlags;
1450 long fPassOwnership;
1451 userSTGMEDIUM Stgmed;
1452 } userFLAG_STGMEDIUM;
1453
1454 typedef [unique] userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
1455
1456 typedef [wire_marshal(wireFLAG_STGMEDIUM)] struct _FLAG_STGMEDIUM {
1457 long ContextFlags;
1458 long fPassOwnership;
1459 STGMEDIUM Stgmed;
1460 } FLAG_STGMEDIUM;
1461
1462 [local]
1463 void OnDataChange(
1464 [in, unique] FORMATETC *pFormatetc,
1465 [in, unique] STGMEDIUM *pStgmed);
1466
1467 [call_as(OnDataChange)]
1468 HRESULT RemoteOnDataChange(
1469 [in, unique] FORMATETC *pFormatetc,
1470 [in, unique] ASYNC_STGMEDIUM *pStgmed);
1471
1472 [local]
1473 void OnViewChange(
1474 [in] DWORD dwAspect,
1475 [in] LONG lindex);
1476
1477 [call_as(OnViewChange)]
1478 HRESULT RemoteOnViewChange(
1479 [in] DWORD dwAspect,
1480 [in] LONG lindex);
1481
1482 [local]
1483 void OnRename(
1484 [in] IMoniker *pmk);
1485
1486 [call_as(OnRename)]
1487 HRESULT RemoteOnRename(
1488 [in] IMoniker *pmk);
1489
1490 [local]
1491 void OnSave();
1492
1493 [call_as(OnSave)]
1494 HRESULT RemoteOnSave();
1495
1496 [local]
1497 void OnClose();
1498
1499 [call_as(OnClose)]
1500 HRESULT RemoteOnClose();
1501}
1502
1503[
1504 object,
1505 uuid(00000125-0000-0000-C000-000000000046),
1506 pointer_default(unique)
1507]
1508interface IAdviseSink2 : IAdviseSink
1509{
1510 typedef [unique] IAdviseSink2 *LPADVISESINK2;
1511
1512 [local]
1513 void OnLinkSrcChange(
1514 [in, unique] IMoniker *pmk);
1515
1516 [call_as(OnLinkSrcChange)]
1517 HRESULT RemoteOnLinkSrcChange(
1518 [in, unique] IMoniker *pmk);
1519}
1520
1521[
1522 object,
1523 uuid(0000010e-0000-0000-C000-000000000046),
1524 pointer_default(unique)
1525]
1526interface IDataObject : IUnknown
1527{
1528 typedef [unique] IDataObject *LPDATAOBJECT;
1529
1530 typedef enum tagDATADIR {
1531 DATADIR_GET = 1,
1532 DATADIR_SET = 2
1533 } DATADIR;
1534
1535 [local]
1536 HRESULT GetData(
1537 [in, unique] FORMATETC *pformatetcIn,
1538 [out] STGMEDIUM *pmedium);
1539
1540 [call_as(GetData)]
1541 HRESULT RemoteGetData(
1542 [in, unique] FORMATETC *pformatetcIn,
1543 [out] STGMEDIUM *pRemoteMedium);
1544
1545 [local]
1546 HRESULT GetDataHere(
1547 [in, unique] FORMATETC *pformatetc,
1548 [in, out] STGMEDIUM *pmedium);
1549
1550 [call_as(GetDataHere)]
1551 HRESULT RemoteGetDataHere(
1552 [in, unique] FORMATETC *pformatetc,
1553 [in, out] STGMEDIUM *pRemoteMedium);
1554
1555 HRESULT QueryGetData(
1556 [in, unique] FORMATETC *pformatetc);
1557
1558 HRESULT GetCanonicalFormatEtc(
1559 [in, unique] FORMATETC *pformatectIn,
1560 [out] FORMATETC *pformatetcOut);
1561
1562 [local]
1563 HRESULT SetData(
1564 [in, unique] FORMATETC *pformatetc,
1565 [in, unique] STGMEDIUM *pmedium,
1566 [in] BOOL fRelease);
1567
1568 [call_as(SetData)]
1569 HRESULT RemoteSetData(
1570 [in, unique] FORMATETC *pformatetc,
1571 [in, unique] FLAG_STGMEDIUM *pmedium,
1572 [in] BOOL fRelease);
1573
1574 HRESULT EnumFormatEtc(
1575 [in] DWORD dwDirection,
1576 [out] IEnumFORMATETC **ppenumFormatEtc);
1577
1578 HRESULT DAdvise(
1579 [in] FORMATETC *pformatetc,
1580 [in] DWORD advf,
1581 [in, unique] IAdviseSink *pAdvSink,
1582 [out] DWORD *pdwConnection);
1583
1584 HRESULT DUnadvise(
1585 [in] DWORD dwConnection);
1586
1587 HRESULT EnumDAdvise(
1588 [out] IEnumSTATDATA **ppenumAdvise);
1589}
1590
1591[
1592 local,
1593 object,
1594 uuid(00000110-0000-0000-C000-000000000046)
1595]
1596interface IDataAdviseHolder : IUnknown
1597{
1598 typedef [unique] IDataAdviseHolder *LPDATAADVISEHOLDER;
1599
1600 HRESULT Advise(
1601 [in, unique] IDataObject *pDataObject,
1602 [in, unique] FORMATETC *pFetc,
1603 [in] DWORD advf,
1604 [in, unique] IAdviseSink *pAdvise,
1605 [out] DWORD *pdwConnection);
1606
1607 HRESULT Unadvise(
1608 [in] DWORD dwConnection);
1609
1610 HRESULT EnumAdvise(
1611 [out] IEnumSTATDATA **ppenumAdvise);
1612
1613 HRESULT SendOnDataChange(
1614 [in, unique] IDataObject *pDataObject,
1615 [in] DWORD dwReserved,
1616 [in] DWORD advf);
1617}
1618
1619/******************** Remoting ********************/
1620
1621[
1622 local,
1623 object,
1624 uuid(00000016-0000-0000-C000-000000000046)
1625]
1626interface IMessageFilter : IUnknown
1627{
1628 typedef [unique] IMessageFilter *LPMESSAGEFILTER;
1629
1630 typedef enum tagCALLTYPE {
1631 CALLTYPE_TOPLEVEL = 1,
1632 CALLTYPE_NESTED = 2,
1633 CALLTYPE_ASYNC = 3,
1634 CALLTYPE_TOPLEVEL_CALLPENDING = 4,
1635 CALLTYPE_ASYNC_CALLPENDING = 5
1636 } CALLTYPE;
1637
1638 typedef enum tagSERVERCALL {
1639 SERVERCALL_ISHANDLED = 0,
1640 SERVERCALL_REJECTED = 1,
1641 SERVERCALL_RETRYLATER = 2
1642 } SERVERCALL;
1643
1644 typedef enum tagPENDINGTYPE {
1645 PENDINGTYPE_TOPLEVEL = 1,
1646 PENDINGTYPE_NESTED = 2
1647 } PENDINGTYPE;
1648
1649 typedef enum tagPENDINGMSG {
1650 PENDINGMSG_CANCELCALL = 0,
1651 PENDINGMSG_WAITNOPROCESS = 1,
1652 PENDINGMSG_WAITDEFPROCESS = 2
1653 } PENDINGMSG;
1654
1655 typedef struct tagINTERFACEINFO {
1656 IUnknown *pUnk;
1657 IID iid;
1658 WORD wMethod;
1659 } INTERFACEINFO, *LPINTERFACEINFO;
1660
1661 DWORD HandleInComingCall(
1662 [in] DWORD dwCallType,
1663 [in] HTASK htaskCaller,
1664 [in] DWORD dwTickCount,
1665 [in] LPINTERFACEINFO lpInterfaceInfo);
1666
1667 DWORD RetryRejectedCall(
1668 [in] HTASK htaskCallee,
1669 [in] DWORD dwTickCount,
1670 [in] DWORD dwRejectType);
1671
1672 DWORD MessagePending(
1673 [in] HTASK htaskCallee,
1674 [in] DWORD dwTickCount,
1675 [in] DWORD dwPendingType);
1676}
1677
1678[
1679 local,
1680 object,
1681 uuid(D5F56B60-593B-101A-B569-08002B2DBF7A)
1682]
1683interface IRpcChannelBuffer : IUnknown
1684{
1685 typedef [unique] IRpcChannelBuffer *LPRPCCHANNELBUFFER;
1686
1687 typedef unsigned long RPCOLEDATAREP;
1688
1689 typedef struct tagRPCOLEMESSAGE {
1690 void *reserved1;
1691 RPCOLEDATAREP dataRepresentation;
1692 void *Buffer;
1693 ULONG cbBuffer;
1694 ULONG iMethod;
1695 void *reserved2[5];
1696 ULONG rpcFlags;
1697 } RPCOLEMESSAGE;
1698
1699 typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
1700
1701 HRESULT GetBuffer(
1702 [in] RPCOLEMESSAGE *pMessage,
1703 [in] REFIID riid);
1704
1705 HRESULT SendReceive(
1706 [in,out] RPCOLEMESSAGE *pMessage,
1707 [out] ULONG *pStatus);
1708
1709 HRESULT FreeBuffer(
1710 [in] RPCOLEMESSAGE *pMessage);
1711
1712 HRESULT GetDestCtx(
1713 [out] DWORD *pdwDestContext,
1714 [out] void **ppvDestContext);
1715
1716 HRESULT IsConnected();
1717}
1718
1719[
1720 local,
1721 object,
1722 uuid(594f31d0-7f19-11d0-b194-00a0c90dc8bf)
1723]
1724interface IRpcChannelBuffer2 : IRpcChannelBuffer
1725{
1726 typedef [unique] IRpcChannelBuffer2 *LPRPCCHANNELBUFFER2;
1727
1728 HRESULT GetProtocolVersion(
1729 [in,out] DWORD *pdwVersion);
1730}
1731
1732[
1733 local,
1734 object,
1735 uuid(25B15600-0115-11d0-BF0D-00AA00B8DFD2)
1736]
1737interface IRpcChannelBuffer3 : IRpcChannelBuffer2
1738{
1739 typedef [unique] IRpcChannelBuffer3 *LPRPCCHANNELBUFFER3;
1740
1741 HRESULT Send(
1742 [in,out] RPCOLEMESSAGE *pMsg,
1743 [out] ULONG *pulStatus);
1744
1745 HRESULT Receive(
1746 [in,out] RPCOLEMESSAGE *pMsg,
1747 [in] ULONG ulSize,
1748 [out] ULONG *pulStatus);
1749
1750 HRESULT Cancel(
1751 [in] RPCOLEMESSAGE *pMsg);
1752
1753 HRESULT GetCallContext(
1754 [in] RPCOLEMESSAGE *pMsg,
1755 [in] REFIID riid,
1756 [out] void **pInterface);
1757
1758 HRESULT GetDestCtxEx(
1759 [in] RPCOLEMESSAGE *pMsg,
1760 [out] DWORD *pdwDestContext,
1761 [out] void **ppvDestContext);
1762
1763 HRESULT GetState(
1764 [in] RPCOLEMESSAGE *pMsg,
1765 [out] DWORD *pState);
1766
1767 HRESULT RegisterAsync(
1768 [in] RPCOLEMESSAGE *pMsg,
1769 [in] IAsyncManager *pAsyncMgr);
1770}
1771
1772[
1773 local,
1774 object,
1775 uuid(a5029fb6-3c34-11d1-9c99-00c04fb998aa),
1776 pointer_default(unique)
1777]
1778interface IAsyncRpcChannelBuffer : IRpcChannelBuffer2
1779{
1780 HRESULT Send(
1781 [in, out] RPCOLEMESSAGE *pMsg,
1782 [in] ISynchronize *pSync,
1783 [out] ULONG *pulStatus);
1784
1785 HRESULT Receive(
1786 [in, out] RPCOLEMESSAGE *pMsg,
1787 [out] ULONG *pulStatus);
1788
1789 HRESULT GetDestCtxEx(
1790 [in] RPCOLEMESSAGE *pMsg,
1791 [out] DWORD *pdwDestContext,
1792 [out] void **ppvDestContext);
1793}
1794
1795[
1796 local,
1797 object,
1798 uuid(58a08519-24c8-4935-b482-3fd823333a4f)
1799]
1800interface IRpcSyntaxNegotiate : IUnknown
1801{
1802 HRESULT NegotiateSyntax(
1803 [in, out] RPCOLEMESSAGE *pMsg);
1804}
1805
1806[
1807 local,
1808 object,
1809 uuid(D5F56A34-593B-101A-B569-08002B2DBF7A)
1810]
1811interface IRpcProxyBuffer : IUnknown
1812{
1813 typedef [unique] IRpcProxyBuffer *LPRPCPROXYBUFFER;
1814
1815 HRESULT Connect(
1816 [in, unique] IRpcChannelBuffer *pRpcChannelBuffer);
1817
1818 void Disconnect();
1819}
1820
1821[
1822 local,
1823 object,
1824 uuid(D5F56AFC-593B-101A-B569-08002B2DBF7A)
1825]
1826interface IRpcStubBuffer : IUnknown
1827{
1828 typedef [unique] IRpcStubBuffer *LPRPCSTUBBUFFER;
1829
1830 HRESULT Connect(
1831 [in] IUnknown *pUnkServer);
1832
1833 void Disconnect();
1834
1835 HRESULT Invoke(
1836 [in] RPCOLEMESSAGE *_prpcmsg,
1837 [in] IRpcChannelBuffer *_pRpcChannelBuffer);
1838
1839 IRpcStubBuffer *IsIIDSupported(
1840 [in] REFIID riid);
1841
1842 ULONG CountRefs();
1843
1844 HRESULT DebugServerQueryInterface(
1845 void **ppv);
1846
1847 void DebugServerRelease(
1848 void *pv);
1849}
1850
1851[
1852 local,
1853 object,
1854 uuid(D5F569D0-593B-101A-B569-08002B2DBF7A)
1855]
1856interface IPSFactoryBuffer : IUnknown
1857{
1858 typedef [unique] IPSFactoryBuffer *LPPSFACTORYBUFFER;
1859
1860 HRESULT CreateProxy(
1861 [in] IUnknown *pUnkOuter,
1862 [in] REFIID riid,
1863 [out] IRpcProxyBuffer **ppProxy,
1864 [out] void **ppv);
1865
1866 HRESULT CreateStub(
1867 [in] REFIID riid,
1868 [in, unique] IUnknown *pUnkServer,
1869 [out] IRpcStubBuffer **ppStub);
1870}
1871
1872[
1873 local,
1874 object,
1875 uuid(1008c4a0-7613-11cf-9af1-0020af6e72f4)
1876]
1877interface IChannelHook : IUnknown
1878{
1879 typedef [unique] IChannelHook *LPCHANNELHOOK;
1880
1881 typedef struct SChannelHookCallInfo {
1882 IID iid;
1883 DWORD cbSize;
1884 GUID uCausality;
1885 DWORD dwServerPid;
1886 DWORD iMethod;
1887 void *pObject;
1888 } SChannelHookCallInfo;
1889
1890 void ClientGetSize(
1891 [in] REFGUID uExtent,
1892 [in] REFIID riid,
1893 [out] ULONG *pDataSize);
1894
1895 void ClientFillBuffer(
1896 [in] REFGUID uExtent,
1897 [in] REFIID riid,
1898 [in, out] ULONG *pDataSize,
1899 [in] void *pDataBuffer);
1900
1901 void ClientNotify(
1902 [in] REFGUID uExtent,
1903 [in] REFIID riid,
1904 [in] ULONG cbDataSize,
1905 [in] void *pDataBuffer,
1906 [in] DWORD lDataRep,
1907 [in] HRESULT hrFault);
1908
1909 void ServerNotify(
1910 [in] REFGUID uExtent,
1911 [in] REFIID riid,
1912 [in] ULONG cbDataSize,
1913 [in] void *pDataBuffer,
1914 [in] DWORD lDataRep);
1915
1916 void ServerGetSize(
1917 [in] REFGUID uExtent,
1918 [in] REFIID riid,
1919 [in] HRESULT hrFault,
1920 [out] ULONG *pDataSize);
1921
1922 void ServerFillBuffer(
1923 [in] REFGUID uExtent,
1924 [in] REFIID riid,
1925 [in, out] ULONG *pDataSize,
1926 [in] void *pDataBuffer,
1927 [in] HRESULT hrFault );
1928}
1929
1930extern const FMTID FMTID_SummaryInformation;
1931extern const FMTID FMTID_DocSummaryInformation;
1932extern const FMTID FMTID_UserDefinedProperties;
1933
1934
1935/******************** Connection Points ********************/
1936/* FIXME */
1937
1938/******************** DCOM ********************/
1939
1940[
1941 local,
1942 object,
1943 uuid(0000013D-0000-0000-C000-000000000046)
1944]
1945interface IClientSecurity : IUnknown
1946{
1947 typedef struct tagSOLE_AUTHENTICATION_SERVICE {
1948 DWORD dwAuthnSvc;
1949 DWORD dwAuthzSvc;
1950 OLECHAR *pPrincipalName;
1951 HRESULT hr;
1952 } SOLE_AUTHENTICATION_SERVICE;
1953
1954 typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
1955
1956 typedef struct tagSOLE_AUTHENTICATION_INFO {
1957 DWORD dwAuthnSvc;
1958 DWORD dwAuthzSvc;
1959 void *pAuthInfo;
1960 } SOLE_AUTHENTICATION_INFO;
1961
1962 const OLECHAR *COLE_DEFAULT_PRINCIPAL = (OLECHAR*) -1;
1963 const void *COLE_DEFAULT_AUTHINFO = (void*) -1;
1964
1965 typedef struct tagSOLE_AUTHENTICATION_LIST {
1966 DWORD cAuthInfo;
1967 SOLE_AUTHENTICATION_INFO *aAuthInfo;
1968 } SOLE_AUTHENTICATION_LIST;
1969
1970 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
1971 EOAC_NONE = 0x0,
1972 EOAC_MUTUAL_AUTH = 0x1,
1973 EOAC_SECURE_REFS = 0x2, /* CoInitializeSecurity only */
1974 EOAC_ACCESS_CONTROL = 0x4, /* CoInitializeSecurity only */
1975 EOAC_APPID = 0x8, /* CoInitializeSecurity only */
1976 EOAC_DYNAMIC = 0x10, /* CoInitializeSecurity only */
1977 EOAC_STATIC_CLOAKING = 0x20,
1978 EOAC_DYNAMIC_CLOAKING = 0x40,
1979 EOAC_ANY_AUTHORITY = 0x80,
1980 EOAC_MAKE_FULLSIC = 0x100,
1981 EOAC_REQUIRE_FULLSIC = 0x200, /* CoInitializeSecurity only */
1982 EOAC_AUTO_IMPERSONATE = 0x400, /* CoInitializeSecurity only */
1983 EOAC_DEFAULT = 0x800,
1984 EOAC_DISABLE_AAA = 0x1000, /* CoInitializeSecurity only */
1985 EOAC_NO_CUSTOM_MARSHAL = 0x2000, /* CoInitializeSecurity only */
1986 } EOLE_AUTHENTICATION_CAPABILITIES;
1987
1988 HRESULT QueryBlanket(
1989 [in] IUnknown *pProxy,
1990 [out] DWORD *pAuthnSvc,
1991 [out] DWORD *pAuthzSvc,
1992 [out] OLECHAR **pServerPrincName,
1993 [out] DWORD *pAuthnLevel,
1994 [out] DWORD *pImpLevel,
1995 [out] void **pAuthInfo,
1996 [out] DWORD *pCapabilities);
1997
1998 HRESULT SetBlanket(
1999 [in] IUnknown *pProxy,
2000 [in] DWORD AuthnSvc,
2001 [in] DWORD AuthzSvc,
2002 [in] OLECHAR *pServerPrincName,
2003 [in] DWORD AuthnLevel,
2004 [in] DWORD ImpLevel,
2005 [in] void *pAuthInfo,
2006 [in] DWORD Capabilities);
2007
2008 HRESULT CopyProxy(
2009 [in] IUnknown *pProxy,
2010 [out] IUnknown **ppCopy);
2011}
2012
2013[
2014 local,
2015 object,
2016 uuid(0000013E-0000-0000-C000-000000000046)
2017]
2018interface IServerSecurity : IUnknown
2019{
2020 HRESULT QueryBlanket(
2021 [out] DWORD *pAuthnSvc,
2022 [out] DWORD *pAuthzSvc,
2023 [out] OLECHAR **pServerPrincName,
2024 [out] DWORD *pAuthnLevel,
2025 [out] DWORD *pImpLevel,
2026 [out] void **pPrivs,
2027 [out] DWORD *pCapabilities);
2028
2029 HRESULT ImpersonateClient();
2030
2031 HRESULT RevertToSelf();
2032
2033 BOOL IsImpersonating();
2034}
2035
2036[
2037 local,
2038 object,
2039 uuid(00000024-0000-0000-C000-000000000046)
2040]
2041interface IAsyncSetup : IUnknown
2042{
2043 HRESULT GetAsyncManager(
2044 [in] REFIID riid,
2045 [in] IUnknown *pOuter,
2046 [in] DWORD dwFlags,
2047 [out] IUnknown **ppInner,
2048 [out] IAsyncManager **ppAsyncMgr);
2049}
2050
2051[
2052 object,
2053 uuid(0e6d4d92-6738-11cf-9608-00aa00680db4)
2054]
2055interface IDirectWriterLock : IUnknown
2056{
2057 HRESULT WaitForWriteAccess(
2058 [in] DWORD dwTimeout);
2059
2060 HRESULT ReleaseWriteAccess();
2061
2062 HRESULT HaveWriteAccess();
2063}
2064
2065[
2066 object,
2067 uuid(00000030-0000-0000-C000-000000000046)
2068]
2069
2070interface ISynchronize : IUnknown
2071{
2072 HRESULT Wait(
2073 [in] DWORD dwFlags,
2074 [in] DWORD dwMilliseconds);
2075
2076 HRESULT Signal();
2077
2078 HRESULT Reset();
2079}
2080
2081
2082[
2083 local,
2084 object,
2085 uuid(00000031-0000-0000-C000-000000000046)
2086]
2087interface ISynchronizeHandle : IUnknown
2088{
2089 HRESULT GetHandle(
2090 [out] HANDLE *ph);
2091}
2092
2093
2094[
2095 local,
2096 object,
2097 uuid(00000032-0000-0000-C000-000000000046)
2098]
2099interface ISynchronizeEvent : ISynchronizeHandle
2100{
2101 HRESULT SetEventHandle(
2102 [in] HANDLE *ph);
2103}
2104
2105
2106[
2107 local,
2108 object,
2109 uuid(00000033-0000-0000-C000-000000000046)
2110]
2111interface ISynchronizeContainer : IUnknown
2112{
2113 HRESULT AddSynchronize(
2114 [in] ISynchronize *pSync);
2115
2116 HRESULT WaitMultiple(
2117 [in] DWORD dwFlags,
2118 [in] DWORD dwTimeOut,
2119 [out] ISynchronize **ppSync);
2120}
2121
2122[
2123 local,
2124 object,
2125 uuid(00000025-0000-0000-C000-000000000046)
2126]
2127interface ISynchronizeMutex : ISynchronize
2128{
2129 HRESULT ReleaseMutex();
2130}
2131
2132[
2133 local,
2134 object,
2135 uuid(00000029-0000-0000-C000-000000000046)
2136]
2137
2138interface ICancelMethodCalls : IUnknown
2139{
2140 typedef [unique] ICancelMethodCalls *LPCANCELMETHODCALLS;
2141
2142 HRESULT Cancel(
2143 [in] ULONG ulSeconds);
2144
2145 HRESULT TestCancel();
2146}
2147
2148[
2149 local,
2150 object,
2151 uuid(0000002A-0000-0000-C000-000000000046)
2152]
2153interface IAsyncManager : IUnknown
2154{
2155 typedef enum tagDCOM_CALL_STATE {
2156 DCOM_NONE = 0,
2157 DCOM_CALL_COMPLETE = 1,
2158 DCOM_CALL_CANCELED = 2
2159 } DCOM_CALL_STATE;
2160
2161 HRESULT CompleteCall(
2162 [in] HRESULT Result);
2163
2164 HRESULT GetCallContext(
2165 [in] REFIID riid,
2166 [out] void **pInterface);
2167
2168 HRESULT GetState(
2169 [out] ULONG *pulStateFlags);
2170}
2171
2172[
2173 local,
2174 object,
2175 uuid(1c733a30-2a1c-11ce-ade5-00aa0044773d),
2176 pointer_default(unique)
2177]
2178interface ICallFactory : IUnknown
2179{
2180 HRESULT CreateCall(
2181 [in] REFIID riid,
2182 [in] IUnknown *pCtrlUnk,
2183 [in] REFIID riid2,
2184 [out, iid_is(riid2)] IUnknown **ppv);
2185}
2186
2187[
2188 local,
2189 object,
2190 uuid(00000144-0000-0000-C000-000000000046)
2191]
2192interface IRpcOptions : IUnknown
2193{
2194 HRESULT Set(
2195 [in] IUnknown *pPrx,
2196 [in] DWORD dwProperty,
2197 [in] ULONG_PTR dwValue);
2198
2199 HRESULT Query(
2200 [in] IUnknown *pPrx,
2201 [in] DWORD dwProperty,
2202 [out] ULONG_PTR *pdwValue);
2203}
2204
2205enum {
2206 COMBND_RPCTIMEOUT = 1,
2207 COMBND_SERVER_LOCALITY = 2
2208};
2209
2210enum {
2211 SERVER_LOCALITY_PROCESS_LOCAL = 0,
2212 SERVER_LOCALITY_MACHINE_LOCAL = 1,
2213 SERVER_LOCALITY_REMOTE = 2
2214};
2215
2216[
2217 local,
2218 object,
2219 uuid(00000149-0000-0000-C000-000000000046),
2220 pointer_default(unique)
2221]
2222interface IRpcHelper : IUnknown
2223{
2224 HRESULT GetDCOMProtocolVersion(
2225 [out] DWORD *pComVersion);
2226
2227 HRESULT GetIIDFromOBJREF(
2228 [in] void *pObjRef,
2229 [out] IID **piid);
2230}
2231
2232[
2233 local,
2234 object,
2235 uuid(eb0cb9e8-7996-11d2-872e-0000f8080859)
2236]
2237interface IReleaseMarshalBuffers : IUnknown
2238{
2239 HRESULT ReleaseMarshalBuffer(
2240 [in] RPCOLEMESSAGE *pMsg,
2241 [in] DWORD dwFlags,
2242 [in, unique] IUnknown *pChnl);
2243}
2244
2245[
2246 local,
2247 object,
2248 uuid(0000002B-0000-0000-C000-000000000046)
2249]
2250interface IWaitMultiple : IUnknown
2251{
2252 HRESULT WaitMultiple(
2253 [in] DWORD timeout,
2254 [out] ISynchronize **pSync);
2255 HRESULT AddSynchronize(
2256 [in] ISynchronize *pSync);
2257}
2258
2259
2260[
2261 object,
2262 uuid(00000026-0000-0000-C000-000000000046)
2263]
2264interface IUrlMon : IUnknown
2265{
2266 HRESULT AsyncGetClassBits(
2267 [in] REFCLSID rclsid,
2268 [in, unique] LPCWSTR pszTYPE,
2269 [in, unique] LPCWSTR pszExt,
2270 [in] DWORD dwFileVersionMS,
2271 [in] DWORD dwFileVersionLS,
2272 [in, unique] LPCWSTR pszCodeBase,
2273 [in] IBindCtx *pbc,
2274 [in] DWORD dwClassContext,
2275 [in] REFIID riid,
2276 [in] DWORD flags);
2277}
2278
2279[
2280 local,
2281 object,
2282 uuid(00000145-0000-0000-C000-000000000046)
2283]
2284interface IForegroundTransfer : IUnknown
2285{
2286 HRESULT AllowForegroundTransfer(
2287 [in] void *lpvReserved);
2288}
2289
2290[
2291 local,
2292 object,
2293 uuid(00000147-0000-0000-C000-000000000046)
2294]
2295interface IAddrTrackingControl : IUnknown
2296{
2297 typedef [unique] IAddrTrackingControl *LPADDRTRACKINGCONTROL;
2298
2299 HRESULT EnableCOMDynamicAddrTracking();
2300 HRESULT DisableCOMDynamicAddrTracking();
2301}
2302
2303[
2304 local,
2305 object,
2306 uuid(00000148-0000-0000-C000-000000000046)
2307]
2308interface IAddrExclusionControl : IUnknown
2309{
2310 typedef [unique] IAddrExclusionControl *LPADDREXCLUSIONCONTROL;
2311
2312 HRESULT GetCurrentAddrExclusionList(
2313 [in] REFIID riid,
2314 [out, iid_is(riid)] void **ppEnumerator);
2315 HRESULT UpdateAddrExclusionList(
2316 [in] IUnknown *pEnumerator);
2317}
2318
2319typedef enum _APTTYPE {
2320 APTTYPE_CURRENT = -1,
2321 APTTYPE_STA = 0,
2322 APTTYPE_MTA = 1,
2323 APTTYPE_NA = 2,
2324 APTTYPE_MAINSTA = 3
2325} APTTYPE;
2326
2327typedef enum _THDTYPE {
2328 THDTYPE_BLOCKMESSAGES = 0,
2329 THDTYPE_PROCESSMESSAGES = 1
2330} THDTYPE;
2331
2332[
2333 local,
2334 object,
2335 uuid(000001ce-0000-0000-C000-000000000046),
2336 pointer_default(unique)
2337]
2338interface IComThreadingInfo : IUnknown
2339{
2340 HRESULT GetCurrentApartmentType(
2341 [out] APTTYPE *pAptType);
2342 HRESULT GetCurrentThreadType(
2343 [out] THDTYPE *pThreadType);
2344 HRESULT GetCurrentLogicalThreadId(
2345 [out] GUID *pguidLogicalThreadId);
2346 HRESULT SetCurrentLogicalThreadId(
2347 [in] REFGUID rguid);
2348}
2349
2350
2351[
2352 object,
2353 pointer_default(unique),
2354 uuid(72380d55-8d2b-43a3-8513-2b6ef31434e9)
2355]
2356interface IProcessInitControl : IUnknown
2357{
2358 HRESULT ResetInitializerTimeout(
2359 [in] DWORD dwSecondsRemaining);
2360}
2361
2362[
2363 local,
2364 object,
2365 uuid(00000034-0000-0000-C000-000000000046),
2366 pointer_default(unique)
2367]
2368interface IInitializeSpy : IUnknown
2369{
2370 typedef [unique] IInitializeSpy *LPINITIALIZESPY;
2371
2372 HRESULT PreInitialize(
2373 [in] DWORD dwCoInit,
2374 [in] DWORD dwCurThreadAptRefs);
2375
2376 HRESULT PostInitialize(
2377 [in] HRESULT hrCoInit,
2378 [in] DWORD dwCoInit,
2379 [in] DWORD dwNewThreadAptRefs);
2380
2381 HRESULT PreUninitialize(
2382 [in] DWORD dwCurThreadAptRefs);
2383
2384 HRESULT PostUninitialize(
2385 [in] DWORD dwNewThreadAptRefs);
2386}
2387
2388[
2389 object,
2390 uuid(969dc708-5c76-11d1-8d86-0000f804b057)
2391]
2392interface IThumbnailExtractor : IUnknown
2393{
2394 HRESULT ExtractThumbnail(
2395 [in] IStorage *pStg,
2396 [in] ULONG ulLength,
2397 [in] ULONG ulHeight,
2398 [out] ULONG *pulOutputLength,
2399 [out] ULONG *pulOutputHeight,
2400 [out] HBITMAP *phOutputBitmap);
2401
2402
2403 HRESULT OnFileUpdated(
2404 [in] IStorage *pStg);
2405}
2406
2407
2408cpp_quote("#ifdef USE_COM_CONTEXT_DEF")
2409
2410typedef DWORD CPFLAGS;
2411
2412typedef struct tagContextProperty
2413{
2414 GUID policyId;
2415 CPFLAGS flags;
2416 [unique] IUnknown *pUnk;
2417} ContextProperty;
2418
2419[
2420 local,
2421 object,
2422 uuid(000001c1-0000-0000-C000-000000000046)
2423]
2424interface IEnumContextProps : IUnknown
2425{
2426 typedef [unique] IEnumContextProps *LPENUMCONTEXTPROPS;
2427
2428 HRESULT Next(
2429 [in] ULONG celt,
2430 [out, size_is(celt), length_is(*pceltFetched)] ContextProperty *pContextProperties,
2431 [out] ULONG *pceltFetched);
2432
2433 HRESULT Skip(
2434 [in] ULONG celt);
2435
2436 HRESULT Reset();
2437
2438 HRESULT Clone(
2439 [out] IEnumContextProps **ppEnumContextProps);
2440
2441 HRESULT Count(
2442 [out] ULONG *pcelt);
2443}
2444
2445[
2446 local,
2447 object,
2448 uuid(000001c0-0000-0000-C000-000000000046)
2449]
2450interface IContext : IUnknown
2451{
2452 HRESULT SetProperty(
2453 [in] REFGUID policyId,
2454 [in] CPFLAGS flags,
2455 [in] IUnknown *pUnk);
2456
2457 HRESULT RemoveProperty(
2458 [in] REFGUID policyId);
2459
2460 HRESULT GetProperty(
2461 [in] REFGUID guid,
2462 [out] CPFLAGS *pFlags,
2463 [out] IUnknown **ppUnk);
2464
2465 HRESULT EnumContextProps(
2466 [out] IEnumContextProps **ppEnumContextProps);
2467}
2468
2469[
2470 local,
2471 object,
2472 uuid(000001c6-0000-0000-c000-000000000046),
2473 pointer_default(unique)
2474]
2475interface IObjContext : IContext
2476{
2477 void Reserved1();
2478 void Reserved2();
2479 void Reserved3();
2480 void Reserved4();
2481 void Reserved5();
2482 void Reserved6();
2483 void Reserved7();
2484}
2485
2486cpp_quote("#endif /* defined USE_COM_CONTEXT_DEF */")
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette