ReactOS 0.4.16-dev-1946-g52006dd
objidlbase.idl
Go to the documentation of this file.
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#ifndef DO_NO_IMPORTS
20import "unknwn.idl";
21#endif
22
23cpp_quote("#ifndef _OBJIDLBASE_")
24cpp_quote("#define _OBJIDLBASE_")
25
26interface IStream;
27interface IEnumString;
28
29interface IAsyncManager;
30interface ISynchronize;
31
32typedef struct _COSERVERINFO {
33 DWORD dwReserved1;
34 LPWSTR pwszName;
35 COAUTHINFO *pAuthInfo;
36 DWORD dwReserved2;
37} COSERVERINFO;
38
39/******************** Fundamentals ********************/
40
41[
42 local,
43 object,
44 uuid(00000003-0000-0000-C000-000000000046)
45]
46interface IMarshal : IUnknown
47{
48 typedef [unique] IMarshal *LPMARSHAL;
49
50 HRESULT GetUnmarshalClass(
51 [in] REFIID riid,
52 [in, unique] void *pv,
53 [in] DWORD dwDestContext,
54 [in, unique] void *pvDestContext,
55 [in] DWORD mshlflags,
56 [out] CLSID *pCid);
57
58 HRESULT GetMarshalSizeMax(
59 [in] REFIID riid,
60 [in, unique] void *pv,
61 [in] DWORD dwDestContext,
62 [in, unique] void *pvDestContext,
63 [in] DWORD mshlflags,
64 [out] DWORD *pSize);
65
66 HRESULT MarshalInterface(
67 [in, unique] IStream *pStm,
68 [in] REFIID riid,
69 [in, unique] void *pv,
70 [in] DWORD dwDestContext,
71 [in, unique] void *pvDestContext,
72 [in] DWORD mshlflags);
73
74 HRESULT UnmarshalInterface(
75 [in, unique] IStream *pStm,
76 [in] REFIID riid,
77 [out] void **ppv);
78
79 HRESULT ReleaseMarshalData(
80 [in, unique] IStream *pStm);
81
82 HRESULT DisconnectObject(
83 [in] DWORD dwReserved);
84}
85
86[
87 local,
88 object,
89 uuid(94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90)
90]
91interface IAgileObject : IUnknown
92{
93}
94
95[
96 local,
97 object,
98 uuid(c03f6a43-65a4-9818-987e-e0b810d2a6f2),
99 pointer_default(unique)
100]
101interface IAgileReference : IUnknown
102{
103 HRESULT Resolve([in] REFIID riid, [out, retval, iid_is(riid)] void **object);
104}
105
106[
107 local,
108 object,
109 uuid(ecc8691b-c1db-4dc0-855e-65f6c551af49)
110]
111interface INoMarshal : IUnknown
112{
113}
114
115[
116 local,
117 object,
118 uuid(000001cf-0000-0000-C000-000000000046)
119]
120interface IMarshal2 : IMarshal
121{
122 typedef [unique] IMarshal2 *LPMARSHAL2;
123}
124
125[
126 local,
127 object,
128 uuid(00000018-0000-0000-C000-000000000046)
129]
130interface IStdMarshalInfo : IUnknown
131{
132 typedef [unique] IStdMarshalInfo *LPSTDMARSHALINFO;
133
134 HRESULT GetClassForHandler(
135 [in] DWORD dwDestContext,
136 [in, unique] void *pvDestContext,
137 [out] CLSID *pClsid);
138}
139
140[
141 local,
142 object,
143 uuid(00000019-0000-0000-C000-000000000046)
144]
145interface IExternalConnection : IUnknown
146{
147 typedef [unique] IExternalConnection *LPEXTERNALCONNECTION;
148
149 typedef enum tagEXTCONN {
150 EXTCONN_STRONG = 0x0001,
151 EXTCONN_WEAK = 0x0002,
152 EXTCONN_CALLABLE = 0x0004
153 } EXTCONN;
154
155 DWORD AddConnection(
156 [in] DWORD extconn,
157 [in] DWORD reserved);
158
159 DWORD ReleaseConnection(
160 [in] DWORD extconn,
161 [in] DWORD reserved,
162 [in] BOOL fLastReleaseCloses);
163}
164
165[
166 local,
167 object,
168 uuid(00000020-0000-0000-C000-000000000046)
169]
170interface IMultiQI : IUnknown
171{
172 typedef [unique] IMultiQI *LPMULTIQI;
173
174 typedef struct tagMULTI_QI {
175 const IID *pIID;
176 IUnknown *pItf;
177 HRESULT hr;
178 } MULTI_QI;
179
180 HRESULT QueryMultipleInterfaces(
181 [in] ULONG cMQIs,
182 [in, out] MULTI_QI *pMQIs);
183}
184
185[
186 local,
187 object,
188 uuid(00000002-0000-0000-C000-000000000046)
189]
190interface IMalloc : IUnknown
191{
192 typedef [unique] IMalloc *LPMALLOC;
193
194 LPVOID Alloc(
195 [in] SIZE_T cb);
196
197 LPVOID Realloc(
198 [in] LPVOID pv,
199 [in] SIZE_T cb);
200
201 void Free(
202 [in] LPVOID pv);
203
204 SIZE_T GetSize(
205 [in] LPVOID pv);
206
207 int DidAlloc(LPVOID pv);
208
209 void HeapMinimize();
210}
211
212[
213 local,
214 object,
215 uuid(00000021-0000-0000-C000-000000000046)
216]
217interface IInternalUnknown : IUnknown
218{
219 HRESULT QueryInternalInterface(
220 [in] REFIID riid,
221 [out] void **ppv);
222}
223
224[
225 object,
226 uuid(00000100-0000-0000-C000-000000000046),
227 pointer_default(unique)
228]
229interface IEnumUnknown : IUnknown
230{
231 typedef [unique] IEnumUnknown *LPENUMUNKNOWN;
232
233 [local]
234 HRESULT Next(
235 [in] ULONG celt,
236 [out] IUnknown **rgelt,
237 [out] ULONG *pceltFetched);
238
239 [call_as(Next)]
240 HRESULT RemoteNext(
241 [in] ULONG celt,
242 [out, size_is(celt), length_is(*pceltFetched)]
243 IUnknown **rgelt,
244 [out] ULONG *pceltFetched);
245
246 HRESULT Skip(
247 [in] ULONG celt);
248
249 HRESULT Reset();
250
251 HRESULT Clone(
252 [out] IEnumUnknown **ppenum);
253}
254
255[
256 object,
257 uuid(00000022-0000-0000-C000-000000000046),
258 version(1.0),
259 pointer_default(unique)
260]
261interface ISurrogate : IUnknown
262{
263 typedef [unique] ISurrogate *LPSURROGATE;
264
265 HRESULT LoadDllServer(
266 [in] REFCLSID Clsid);
267 HRESULT FreeSurrogate();
268}
269
270[
271 local,
272 object,
273 uuid(00000146-0000-0000-C000-000000000046)
274]
275interface IGlobalInterfaceTable : IUnknown
276{
277 typedef [unique] IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
278
279 HRESULT RegisterInterfaceInGlobal(
280 [in] IUnknown *pUnk,
281 [in] REFIID riid,
282 [out] DWORD *pdwCookie);
283
284 HRESULT RevokeInterfaceFromGlobal(
285 [in] DWORD dwCookie);
286
287 HRESULT GetInterfaceFromGlobal(
288 [in] DWORD dwCookie,
289 [in] REFIID riid,
290 [out, iid_is(riid)] void **ppv);
291}
292
293[
294 object,
295 uuid(00000101-0000-0000-C000-000000000046),
296 pointer_default(unique)
297]
298interface IEnumString : IUnknown
299{
300 typedef [unique] IEnumString *LPENUMSTRING;
301
302 [local]
303 HRESULT Next(
304 [in] ULONG celt,
305 [out, size_is(celt), length_is(*pceltFetched)]
306 LPOLESTR *rgelt,
307 [out] ULONG *pceltFetched);
308
309 [call_as(Next)]
310 HRESULT RemoteNext(
311 [in] ULONG celt,
312 [out, size_is(celt), length_is(*pceltFetched)]
313 LPOLESTR *rgelt,
314 [out] ULONG *pceltFetched);
315
316 HRESULT Skip(
317 [in] ULONG celt);
318
319 HRESULT Reset();
320
321 HRESULT Clone(
322 [out] IEnumString **ppenum);
323}
324
325/******************** Storage ********************/
326
327[
328 object,
329 uuid(0c733a30-2a1c-11ce-ade5-00aa0044773d),
330 pointer_default(unique)
331]
332interface ISequentialStream : IUnknown
333{
334 [local]
335 HRESULT Read(
336 [out, size_is(cb), length_is(*pcbRead)]
337 void *pv,
338 [in] ULONG cb,
339 [out] ULONG *pcbRead);
340
341 [call_as(Read)]
342 HRESULT RemoteRead(
343 [out, size_is(cb), length_is(*pcbRead)]
344 byte *pv,
345 [in] ULONG cb,
346 [out] ULONG *pcbRead);
347
348 [local]
349 HRESULT Write(
350 [in, size_is(cb)] const void *pv,
351 [in] ULONG cb,
352 [out] ULONG *pcbWritten);
353
354 [call_as(Write)]
355 HRESULT RemoteWrite(
356 [in, size_is(cb)] const byte *pv,
357 [in] ULONG cb,
358 [out] ULONG *pcbWritten);
359}
360
361[
362 object,
363 uuid(0000000c-0000-0000-C000-000000000046),
364 pointer_default(unique)
365]
366interface IStream : ISequentialStream
367{
368 typedef [unique] IStream *LPSTREAM;
369
370 typedef struct tagSTATSTG {
371 LPOLESTR pwcsName;
372 DWORD type;
373 ULARGE_INTEGER cbSize;
374 FILETIME mtime;
375 FILETIME ctime;
376 FILETIME atime;
377 DWORD grfMode;
378 DWORD grfLocksSupported;
379 CLSID clsid;
380 DWORD grfStateBits;
381 DWORD reserved;
382 } STATSTG;
383
384 typedef enum tagSTGTY {
385 STGTY_STORAGE = 1,
386 STGTY_STREAM = 2,
387 STGTY_LOCKBYTES = 3,
388 STGTY_PROPERTY = 4
389 } STGTY;
390
391 typedef enum tagSTREAM_SEEK {
392 STREAM_SEEK_SET = 0,
393 STREAM_SEEK_CUR = 1,
394 STREAM_SEEK_END = 2
395 } STREAM_SEEK;
396
397 /* these are defined in Linux's fcntl.h,
398 * undefine them to avoid conflicts */
399 cpp_quote("#undef LOCK_MAND")
400 cpp_quote("#undef LOCK_READ")
401 cpp_quote("#undef LOCK_WRITE")
402 cpp_quote("#undef LOCK_RW")
403
404 typedef enum tagLOCKTYPE {
405 LOCK_WRITE = 1,
406 LOCK_EXCLUSIVE = 2,
407 LOCK_ONLYONCE = 4
408 } LOCKTYPE;
409
410 [local]
411 HRESULT Seek(
412 [in] LARGE_INTEGER dlibMove,
413 [in] DWORD dwOrigin,
414 [out] ULARGE_INTEGER *plibNewPosition);
415
416 [call_as(Seek)]
417 HRESULT RemoteSeek(
418 [in] LARGE_INTEGER dlibMove,
419 [in] DWORD dwOrigin,
420 [out] ULARGE_INTEGER *plibNewPosition);
421
422 HRESULT SetSize(
423 [in] ULARGE_INTEGER libNewSize);
424
425 [local]
426 HRESULT CopyTo(
427 [in, unique] IStream *pstm,
428 [in] ULARGE_INTEGER cb,
429 [out] ULARGE_INTEGER *pcbRead,
430 [out] ULARGE_INTEGER *pcbWritten);
431
432 [call_as(CopyTo)]
433 HRESULT RemoteCopyTo(
434 [in, unique] IStream *pstm,
435 [in] ULARGE_INTEGER cb,
436 [out] ULARGE_INTEGER *pcbRead,
437 [out] ULARGE_INTEGER *pcbWritten);
438
439 HRESULT Commit(
440 [in] DWORD grfCommitFlags);
441
442 HRESULT Revert();
443
444 HRESULT LockRegion(
445 [in] ULARGE_INTEGER libOffset,
446 [in] ULARGE_INTEGER cb,
447 [in] DWORD dwLockType);
448
449 HRESULT UnlockRegion(
450 [in] ULARGE_INTEGER libOffset,
451 [in] ULARGE_INTEGER cb,
452 [in] DWORD dwLockType);
453
454 HRESULT Stat(
455 [out] STATSTG *pstatstg,
456 [in] DWORD grfStatFlag);
457
458 HRESULT Clone(
459 [out] IStream **ppstm);
460}
461
462
463
464
465[
466 local,
467 object,
468 uuid(D5F56B60-593B-101A-B569-08002B2DBF7A)
469]
470interface IRpcChannelBuffer : IUnknown
471{
472 typedef [unique] IRpcChannelBuffer *LPRPCCHANNELBUFFER;
473
474 typedef unsigned long RPCOLEDATAREP;
475
476 typedef struct tagRPCOLEMESSAGE {
477 void *reserved1;
478 RPCOLEDATAREP dataRepresentation;
479 void *Buffer;
480 ULONG cbBuffer;
481 ULONG iMethod;
482 void *reserved2[5];
483 ULONG rpcFlags;
484 } RPCOLEMESSAGE;
485
486 typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
487
488 HRESULT GetBuffer(
489 [in] RPCOLEMESSAGE *pMessage,
490 [in] REFIID riid);
491
492 HRESULT SendReceive(
493 [in,out] RPCOLEMESSAGE *pMessage,
494 [out] ULONG *pStatus);
495
496 HRESULT FreeBuffer(
497 [in] RPCOLEMESSAGE *pMessage);
498
499 HRESULT GetDestCtx(
500 [out] DWORD *pdwDestContext,
501 [out] void **ppvDestContext);
502
503 HRESULT IsConnected();
504}
505
506[
507 local,
508 object,
509 uuid(594f31d0-7f19-11d0-b194-00a0c90dc8bf)
510]
511interface IRpcChannelBuffer2 : IRpcChannelBuffer
512{
513 typedef [unique] IRpcChannelBuffer2 *LPRPCCHANNELBUFFER2;
514
515 HRESULT GetProtocolVersion(
516 [in,out] DWORD *pdwVersion);
517}
518
519[
520 local,
521 object,
522 uuid(25B15600-0115-11d0-BF0D-00AA00B8DFD2)
523]
524interface IRpcChannelBuffer3 : IRpcChannelBuffer2
525{
526 typedef [unique] IRpcChannelBuffer3 *LPRPCCHANNELBUFFER3;
527
528 HRESULT Send(
529 [in,out] RPCOLEMESSAGE *pMsg,
530 [out] ULONG *pulStatus);
531
532 HRESULT Receive(
533 [in,out] RPCOLEMESSAGE *pMsg,
534 [in] ULONG ulSize,
535 [out] ULONG *pulStatus);
536
537 HRESULT Cancel(
538 [in] RPCOLEMESSAGE *pMsg);
539
540 HRESULT GetCallContext(
541 [in] RPCOLEMESSAGE *pMsg,
542 [in] REFIID riid,
543 [out] void **pInterface);
544
545 HRESULT GetDestCtxEx(
546 [in] RPCOLEMESSAGE *pMsg,
547 [out] DWORD *pdwDestContext,
548 [out] void **ppvDestContext);
549
550 HRESULT GetState(
551 [in] RPCOLEMESSAGE *pMsg,
552 [out] DWORD *pState);
553
554 HRESULT RegisterAsync(
555 [in] RPCOLEMESSAGE *pMsg,
556 [in] IAsyncManager *pAsyncMgr);
557}
558
559[
560 local,
561 object,
562 uuid(a5029fb6-3c34-11d1-9c99-00c04fb998aa),
563 pointer_default(unique)
564]
565interface IAsyncRpcChannelBuffer : IRpcChannelBuffer2
566{
567 HRESULT Send(
568 [in, out] RPCOLEMESSAGE *pMsg,
569 [in] ISynchronize *pSync,
570 [out] ULONG *pulStatus);
571
572 HRESULT Receive(
573 [in, out] RPCOLEMESSAGE *pMsg,
574 [out] ULONG *pulStatus);
575
576 HRESULT GetDestCtxEx(
577 [in] RPCOLEMESSAGE *pMsg,
578 [out] DWORD *pdwDestContext,
579 [out] void **ppvDestContext);
580}
581
582[
583 local,
584 object,
585 uuid(58a08519-24c8-4935-b482-3fd823333a4f)
586]
587interface IRpcSyntaxNegotiate : IUnknown
588{
589 HRESULT NegotiateSyntax(
590 [in, out] RPCOLEMESSAGE *pMsg);
591}
592
593[
594 local,
595 object,
596 uuid(D5F56A34-593B-101A-B569-08002B2DBF7A)
597]
598interface IRpcProxyBuffer : IUnknown
599{
600 typedef [unique] IRpcProxyBuffer *LPRPCPROXYBUFFER;
601
602 HRESULT Connect(
603 [in, unique] IRpcChannelBuffer *pRpcChannelBuffer);
604
605 void Disconnect();
606}
607
608[
609 local,
610 object,
611 uuid(D5F56AFC-593B-101A-B569-08002B2DBF7A)
612]
613interface IRpcStubBuffer : IUnknown
614{
615 typedef [unique] IRpcStubBuffer *LPRPCSTUBBUFFER;
616
617 HRESULT Connect(
618 [in] IUnknown *pUnkServer);
619
620 void Disconnect();
621
622 HRESULT Invoke(
623 [in] RPCOLEMESSAGE *_prpcmsg,
624 [in] IRpcChannelBuffer *_pRpcChannelBuffer);
625
626 IRpcStubBuffer *IsIIDSupported(
627 [in] REFIID riid);
628
629 ULONG CountRefs();
630
631 HRESULT DebugServerQueryInterface(
632 void **ppv);
633
634 void DebugServerRelease(
635 void *pv);
636}
637
638[
639 local,
640 object,
641 uuid(D5F569D0-593B-101A-B569-08002B2DBF7A)
642]
643interface IPSFactoryBuffer : IUnknown
644{
645 typedef [unique] IPSFactoryBuffer *LPPSFACTORYBUFFER;
646
647 HRESULT CreateProxy(
648 [in] IUnknown *pUnkOuter,
649 [in] REFIID riid,
650 [out] IRpcProxyBuffer **ppProxy,
651 [out] void **ppv);
652
653 HRESULT CreateStub(
654 [in] REFIID riid,
655 [in, unique] IUnknown *pUnkServer,
656 [out] IRpcStubBuffer **ppStub);
657}
658
659[
660 local,
661 object,
662 uuid(1008c4a0-7613-11cf-9af1-0020af6e72f4)
663]
664interface IChannelHook : IUnknown
665{
666 typedef [unique] IChannelHook *LPCHANNELHOOK;
667
668 typedef struct SChannelHookCallInfo {
669 IID iid;
670 DWORD cbSize;
671 GUID uCausality;
672 DWORD dwServerPid;
673 DWORD iMethod;
674 void *pObject;
675 } SChannelHookCallInfo;
676
677 void ClientGetSize(
678 [in] REFGUID uExtent,
679 [in] REFIID riid,
680 [out] ULONG *pDataSize);
681
682 void ClientFillBuffer(
683 [in] REFGUID uExtent,
684 [in] REFIID riid,
685 [in, out] ULONG *pDataSize,
686 [in] void *pDataBuffer);
687
688 void ClientNotify(
689 [in] REFGUID uExtent,
690 [in] REFIID riid,
691 [in] ULONG cbDataSize,
692 [in] void *pDataBuffer,
693 [in] DWORD lDataRep,
694 [in] HRESULT hrFault);
695
696 void ServerNotify(
697 [in] REFGUID uExtent,
698 [in] REFIID riid,
699 [in] ULONG cbDataSize,
700 [in] void *pDataBuffer,
701 [in] DWORD lDataRep);
702
703 void ServerGetSize(
704 [in] REFGUID uExtent,
705 [in] REFIID riid,
706 [in] HRESULT hrFault,
707 [out] ULONG *pDataSize);
708
709 void ServerFillBuffer(
710 [in] REFGUID uExtent,
711 [in] REFIID riid,
712 [in, out] ULONG *pDataSize,
713 [in] void *pDataBuffer,
714 [in] HRESULT hrFault );
715}
716
717extern const FMTID FMTID_SummaryInformation;
718extern const FMTID FMTID_DocSummaryInformation;
719extern const FMTID FMTID_UserDefinedProperties;
720
721
722/******************** Connection Points ********************/
723/* FIXME */
724
725/******************** DCOM ********************/
726
727[
728 local,
729 object,
730 uuid(0000013D-0000-0000-C000-000000000046)
731]
732interface IClientSecurity : IUnknown
733{
734 typedef struct tagSOLE_AUTHENTICATION_SERVICE {
735 DWORD dwAuthnSvc;
736 DWORD dwAuthzSvc;
737 OLECHAR *pPrincipalName;
738 HRESULT hr;
739 } SOLE_AUTHENTICATION_SERVICE;
740
741 typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
742
743 typedef struct tagSOLE_AUTHENTICATION_INFO {
744 DWORD dwAuthnSvc;
745 DWORD dwAuthzSvc;
746 void *pAuthInfo;
747 } SOLE_AUTHENTICATION_INFO;
748
749 const OLECHAR *COLE_DEFAULT_PRINCIPAL = (OLECHAR*) -1;
750 const void *COLE_DEFAULT_AUTHINFO = (void*) -1;
751
752 typedef struct tagSOLE_AUTHENTICATION_LIST {
753 DWORD cAuthInfo;
754 SOLE_AUTHENTICATION_INFO *aAuthInfo;
755 } SOLE_AUTHENTICATION_LIST;
756
757 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
758 EOAC_NONE = 0x0,
759 EOAC_MUTUAL_AUTH = 0x1,
760 EOAC_SECURE_REFS = 0x2, /* CoInitializeSecurity only */
761 EOAC_ACCESS_CONTROL = 0x4, /* CoInitializeSecurity only */
762 EOAC_APPID = 0x8, /* CoInitializeSecurity only */
763 EOAC_DYNAMIC = 0x10, /* CoInitializeSecurity only */
764 EOAC_STATIC_CLOAKING = 0x20,
765 EOAC_DYNAMIC_CLOAKING = 0x40,
766 EOAC_ANY_AUTHORITY = 0x80,
767 EOAC_MAKE_FULLSIC = 0x100,
768 EOAC_REQUIRE_FULLSIC = 0x200, /* CoInitializeSecurity only */
769 EOAC_AUTO_IMPERSONATE = 0x400, /* CoInitializeSecurity only */
770 EOAC_DEFAULT = 0x800,
771 EOAC_DISABLE_AAA = 0x1000, /* CoInitializeSecurity only */
772 EOAC_NO_CUSTOM_MARSHAL = 0x2000, /* CoInitializeSecurity only */
773 } EOLE_AUTHENTICATION_CAPABILITIES;
774
775 HRESULT QueryBlanket(
776 [in] IUnknown *pProxy,
777 [out] DWORD *pAuthnSvc,
778 [out] DWORD *pAuthzSvc,
779 [out] OLECHAR **pServerPrincName,
780 [out] DWORD *pAuthnLevel,
781 [out] DWORD *pImpLevel,
782 [out] void **pAuthInfo,
783 [out] DWORD *pCapabilities);
784
785 HRESULT SetBlanket(
786 [in] IUnknown *pProxy,
787 [in] DWORD AuthnSvc,
788 [in] DWORD AuthzSvc,
789 [in] OLECHAR *pServerPrincName,
790 [in] DWORD AuthnLevel,
791 [in] DWORD ImpLevel,
792 [in] void *pAuthInfo,
793 [in] DWORD Capabilities);
794
795 HRESULT CopyProxy(
796 [in] IUnknown *pProxy,
797 [out] IUnknown **ppCopy);
798}
799
800[
801 local,
802 object,
803 uuid(0000013E-0000-0000-C000-000000000046)
804]
805interface IServerSecurity : IUnknown
806{
807 HRESULT QueryBlanket(
808 [out] DWORD *pAuthnSvc,
809 [out] DWORD *pAuthzSvc,
810 [out] OLECHAR **pServerPrincName,
811 [out] DWORD *pAuthnLevel,
812 [out] DWORD *pImpLevel,
813 [out] void **pPrivs,
814 [out] DWORD *pCapabilities);
815
816 HRESULT ImpersonateClient();
817
818 HRESULT RevertToSelf();
819
820 BOOL IsImpersonating();
821}
822
823[
824 local,
825 object,
826 uuid(00000024-0000-0000-C000-000000000046)
827]
828interface IAsyncSetup : IUnknown
829{
830 HRESULT GetAsyncManager(
831 [in] REFIID riid,
832 [in] IUnknown *pOuter,
833 [in] DWORD dwFlags,
834 [out] IUnknown **ppInner,
835 [out] IAsyncManager **ppAsyncMgr);
836}
837
838[
839 object,
840 uuid(00000030-0000-0000-C000-000000000046)
841]
842
843interface ISynchronize : IUnknown
844{
845 HRESULT Wait(
846 [in] DWORD dwFlags,
847 [in] DWORD dwMilliseconds);
848
849 HRESULT Signal();
850
851 HRESULT Reset();
852}
853
854
855[
856 local,
857 object,
858 uuid(00000031-0000-0000-C000-000000000046)
859]
860interface ISynchronizeHandle : IUnknown
861{
862 HRESULT GetHandle(
863 [out] HANDLE *ph);
864}
865
866
867[
868 local,
869 object,
870 uuid(00000032-0000-0000-C000-000000000046)
871]
872interface ISynchronizeEvent : ISynchronizeHandle
873{
874 HRESULT SetEventHandle(
875 [in] HANDLE *ph);
876}
877
878
879[
880 local,
881 object,
882 uuid(00000033-0000-0000-C000-000000000046)
883]
884interface ISynchronizeContainer : IUnknown
885{
886 HRESULT AddSynchronize(
887 [in] ISynchronize *pSync);
888
889 HRESULT WaitMultiple(
890 [in] DWORD dwFlags,
891 [in] DWORD dwTimeOut,
892 [out] ISynchronize **ppSync);
893}
894
895[
896 local,
897 object,
898 uuid(00000025-0000-0000-C000-000000000046)
899]
900interface ISynchronizeMutex : ISynchronize
901{
902 HRESULT ReleaseMutex();
903}
904
905[
906 local,
907 object,
908 uuid(00000029-0000-0000-C000-000000000046)
909]
910
911interface ICancelMethodCalls : IUnknown
912{
913 typedef [unique] ICancelMethodCalls *LPCANCELMETHODCALLS;
914
915 HRESULT Cancel(
916 [in] ULONG ulSeconds);
917
918 HRESULT TestCancel();
919}
920
921[
922 local,
923 object,
924 uuid(0000002A-0000-0000-C000-000000000046)
925]
926interface IAsyncManager : IUnknown
927{
928 typedef enum tagDCOM_CALL_STATE {
929 DCOM_NONE = 0,
930 DCOM_CALL_COMPLETE = 1,
931 DCOM_CALL_CANCELED = 2
932 } DCOM_CALL_STATE;
933
934 HRESULT CompleteCall(
935 [in] HRESULT Result);
936
937 HRESULT GetCallContext(
938 [in] REFIID riid,
939 [out] void **pInterface);
940
941 HRESULT GetState(
942 [out] ULONG *pulStateFlags);
943}
944
945[
946 local,
947 object,
948 uuid(1c733a30-2a1c-11ce-ade5-00aa0044773d),
949 pointer_default(unique)
950]
951interface ICallFactory : IUnknown
952{
953 HRESULT CreateCall(
954 [in] REFIID riid,
955 [in] IUnknown *pCtrlUnk,
956 [in] REFIID riid2,
957 [out, iid_is(riid2)] IUnknown **ppv);
958}
959
960[
961 local,
962 object,
963 uuid(00000144-0000-0000-C000-000000000046)
964]
965interface IRpcOptions : IUnknown
966{
967 HRESULT Set(
968 [in] IUnknown *pPrx,
969 [in] DWORD dwProperty,
970 [in] ULONG_PTR dwValue);
971
972 HRESULT Query(
973 [in] IUnknown *pPrx,
974 [in] DWORD dwProperty,
975 [out] ULONG_PTR *pdwValue);
976}
977
978enum {
979 COMBND_RPCTIMEOUT = 1,
980 COMBND_SERVER_LOCALITY = 2
982
983enum {
984 SERVER_LOCALITY_PROCESS_LOCAL = 0,
985 SERVER_LOCALITY_MACHINE_LOCAL = 1,
986 SERVER_LOCALITY_REMOTE = 2
988
989[
990 local,
991 object,
992 uuid(00000149-0000-0000-C000-000000000046),
993 pointer_default(unique)
994]
995interface IRpcHelper : IUnknown
996{
997 HRESULT GetDCOMProtocolVersion(
998 [out] DWORD *pComVersion);
999
1000 HRESULT GetIIDFromOBJREF(
1001 [in] void *pObjRef,
1002 [out] IID **piid);
1003}
1004
1005[
1006 local,
1007 object,
1008 uuid(eb0cb9e8-7996-11d2-872e-0000f8080859)
1009]
1010interface IReleaseMarshalBuffers : IUnknown
1011{
1012 HRESULT ReleaseMarshalBuffer(
1013 [in] RPCOLEMESSAGE *pMsg,
1014 [in] DWORD dwFlags,
1015 [in, unique] IUnknown *pChnl);
1016}
1017
1018[
1019 local,
1020 object,
1021 uuid(0000002B-0000-0000-C000-000000000046)
1022]
1023interface IWaitMultiple : IUnknown
1024{
1025 HRESULT WaitMultiple(
1026 [in] DWORD timeout,
1027 [out] ISynchronize **pSync);
1028 HRESULT AddSynchronize(
1029 [in] ISynchronize *pSync);
1030}
1031
1032
1033[
1034 local,
1035 object,
1036 uuid(00000147-0000-0000-C000-000000000046)
1037]
1038interface IAddrTrackingControl : IUnknown
1039{
1040 typedef [unique] IAddrTrackingControl *LPADDRTRACKINGCONTROL;
1041
1042 HRESULT EnableCOMDynamicAddrTracking();
1043 HRESULT DisableCOMDynamicAddrTracking();
1044}
1045
1046[
1047 local,
1048 object,
1049 uuid(00000148-0000-0000-C000-000000000046)
1050]
1051interface IAddrExclusionControl : IUnknown
1052{
1053 typedef [unique] IAddrExclusionControl *LPADDREXCLUSIONCONTROL;
1054
1055 HRESULT GetCurrentAddrExclusionList(
1056 [in] REFIID riid,
1057 [out, iid_is(riid)] void **ppEnumerator);
1058 HRESULT UpdateAddrExclusionList(
1059 [in] IUnknown *pEnumerator);
1060}
1061
1062typedef enum _APTTYPE {
1063 APTTYPE_CURRENT = -1,
1064 APTTYPE_STA = 0,
1065 APTTYPE_MTA = 1,
1066 APTTYPE_NA = 2,
1067 APTTYPE_MAINSTA = 3
1068} APTTYPE;
1069
1070typedef enum _APTTYPEQUALIFIER {
1071 APTTYPEQUALIFIER_NONE,
1072 APTTYPEQUALIFIER_IMPLICIT_MTA,
1073 APTTYPEQUALIFIER_NA_ON_MTA,
1074 APTTYPEQUALIFIER_NA_ON_STA,
1075 APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA,
1076 APTTYPEQUALIFIER_NA_ON_MAINSTA
1077} APTTYPEQUALIFIER;
1078
1079typedef enum _THDTYPE {
1080 THDTYPE_BLOCKMESSAGES = 0,
1081 THDTYPE_PROCESSMESSAGES = 1
1082} THDTYPE;
1083
1084[
1085 local,
1086 object,
1087 uuid(000001ce-0000-0000-C000-000000000046),
1088 pointer_default(unique)
1089]
1090interface IComThreadingInfo : IUnknown
1091{
1092 HRESULT GetCurrentApartmentType(
1093 [out] APTTYPE *pAptType);
1094 HRESULT GetCurrentThreadType(
1095 [out] THDTYPE *pThreadType);
1096 HRESULT GetCurrentLogicalThreadId(
1097 [out] GUID *pguidLogicalThreadId);
1098 HRESULT SetCurrentLogicalThreadId(
1099 [in] REFGUID rguid);
1100}
1101
1102
1103[
1104 object,
1105 pointer_default(unique),
1106 uuid(72380d55-8d2b-43a3-8513-2b6ef31434e9)
1107]
1108interface IProcessInitControl : IUnknown
1109{
1110 HRESULT ResetInitializerTimeout(
1111 [in] DWORD dwSecondsRemaining);
1112}
1113
1114typedef enum tagGLOBALOPT_PROPERTIES
1115{
1116 COMGLB_EXCEPTION_HANDLING = 1,
1117 COMGLB_APPID = 2,
1118 COMGLB_RPC_THREADPOOL_SETTING = 3,
1119 COMGLB_RO_SETTINGS = 4,
1120 COMGLB_UNMARSHALING_POLICY = 5,
1121 COMGLB_PROPERTIES_RESERVED1 = 6,
1122 COMGLB_PROPERTIES_RESERVED2 = 7,
1123 COMGLB_PROPERTIES_RESERVED3 = 8,
1124} GLOBALOPT_PROPERTIES;
1125
1126typedef enum tagGLOBALOPT_EH_VALUES
1127{
1128 COMGLB_EXCEPTION_HANDLE = 0,
1129 COMGLB_EXCEPTION_DONOT_HANDLE_FATAL = 1,
1130 COMGLB_EXCEPTION_DONOT_HANDLE = COMGLB_EXCEPTION_DONOT_HANDLE_FATAL,
1131 COMGLB_EXCEPTION_DONOT_HANDLE_ANY = 2
1132} GLOBALOPT_EH_VALUES;
1133
1134typedef enum tagGLOBALOPT_RPCTP_VALUES
1135{
1136 COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL = 0,
1137 COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL = 1
1138} GLOBALOPT_RPCTP_VALUES;
1139
1140typedef enum tagGLOBALOPT_RO_FLAGS
1141{
1142 COMGLB_STA_MODALLOOP_REMOVE_TOUCH_MESSAGES = 0x1,
1143 COMGLB_STA_MODALLOOP_SHARED_QUEUE_REMOVE_INPUT_MESSAGES = 0x2,
1144 COMGLB_STA_MODALLOOP_SHARED_QUEUE_DONOT_REMOVE_INPUT_MESSAGES = 0x4,
1145 COMGLB_FAST_RUNDOWN = 0x8,
1146 COMGLB_RESERVED1 = 0x10,
1147 COMGLB_RESERVED2 = 0x20,
1148 COMGLB_RESERVED3 = 0x40,
1149 COMGLB_STA_MODALLOOP_SHARED_QUEUE_REORDER_POINTER_MESSAGES = 0x80,
1150 COMGLB_RESERVED4 = 0x100,
1151 COMGLB_RESERVED5 = 0x200,
1152 COMGLB_RESERVED6 = 0x400,
1153} GLOBALOPT_RO_FLAGS;
1154
1155typedef enum tagGLOBALOPT_UNMARSHALING_POLICY_VALUES
1156{
1157 COMGLB_UNMARSHALING_POLICY_NORMAL = 0,
1158 COMGLB_UNMARSHALING_POLICY_STRONG = 1,
1159 COMGLB_UNMARSHALING_POLICY_HYBRID = 2,
1160} GLOBALOPT_UNMARSHALING_POLICY_VALUES;
1161
1162[
1163 object,
1164 local,
1165 pointer_default(unique),
1166 uuid(0000015B-0000-0000-C000-000000000046)
1167]
1168interface IGlobalOptions : IUnknown
1169{
1170 HRESULT Set([in] GLOBALOPT_PROPERTIES property, [in] ULONG_PTR value);
1171 HRESULT Query([in] GLOBALOPT_PROPERTIES property, [out ] ULONG_PTR *value);
1172}
1173
1174cpp_quote("#ifdef USE_COM_CONTEXT_DEF")
1175
1176typedef DWORD CPFLAGS;
1177
1178typedef struct tagContextProperty
1179{
1180 GUID policyId;
1181 CPFLAGS flags;
1182 [unique] IUnknown *pUnk;
1183} ContextProperty;
1184
1185[
1186 local,
1187 object,
1188 uuid(000001c1-0000-0000-C000-000000000046)
1189]
1190interface IEnumContextProps : IUnknown
1191{
1192 typedef [unique] IEnumContextProps *LPENUMCONTEXTPROPS;
1193
1194 HRESULT Next(
1195 [in] ULONG celt,
1196 [out, size_is(celt), length_is(*pceltFetched)] ContextProperty *pContextProperties,
1197 [out] ULONG *pceltFetched);
1198
1199 HRESULT Skip(
1200 [in] ULONG celt);
1201
1202 HRESULT Reset();
1203
1204 HRESULT Clone(
1205 [out] IEnumContextProps **ppEnumContextProps);
1206
1207 HRESULT Count(
1208 [out] ULONG *pcelt);
1209}
1210
1211[
1212 local,
1213 object,
1214 uuid(000001c0-0000-0000-C000-000000000046)
1215]
1216interface IContext : IUnknown
1217{
1218 HRESULT SetProperty(
1219 [in] REFGUID policyId,
1220 [in] CPFLAGS flags,
1221 [in] IUnknown *pUnk);
1222
1223 HRESULT RemoveProperty(
1224 [in] REFGUID policyId);
1225
1226 HRESULT GetProperty(
1227 [in] REFGUID guid,
1228 [out] CPFLAGS *pFlags,
1229 [out] IUnknown **ppUnk);
1230
1231 HRESULT EnumContextProps(
1232 [out] IEnumContextProps **ppEnumContextProps);
1233}
1234
1235[
1236 local,
1237 object,
1238 uuid(000001c6-0000-0000-c000-000000000046),
1239 pointer_default(unique)
1240]
1241interface IObjContext : IContext
1242{
1243 void Reserved1();
1244 void Reserved2();
1245 void Reserved3();
1246 void Reserved4();
1247 void Reserved5();
1248 void Reserved6();
1249 void Reserved7();
1250}
1251
1252cpp_quote("#endif /* defined USE_COM_CONTEXT_DEF */")
1253cpp_quote("#endif /* defined _OBJIDLBASE_ */")
CD3D10_BUFFER_DESC D3D10_BUFFER_DESC cpp_quote(" ~CD3D10_BUFFER_DESC() {}") operator const D3D10_BUFFER_DESC &() const
Definition: d3d10.idl:491