VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/shaderlib/wine/include/objidl.idl@ 69505

Last change on this file since 69505 was 53206, checked in by vboxsync, 10 years ago

Devices/vmsvga: header fixes

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