2 * Copyright 2002 Ove Kaaven
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.
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.
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
23 cpp_quote
("#ifndef _OBJIDLBASE_")
24 cpp_quote
("#define _OBJIDLBASE_")
27 interface IEnumString
;
29 interface IAsyncManager
;
30 interface ISynchronize
;
32 typedef struct _COSERVERINFO
{
35 COAUTHINFO
*pAuthInfo
;
39 /******************** Fundamentals ********************/
44 uuid(00000003-0000-0000-C000
-000000000046)
46 interface IMarshal
: IUnknown
48 typedef [unique] IMarshal
*LPMARSHAL
;
50 HRESULT GetUnmarshalClass
(
52 [in, unique] void *pv
,
53 [in] DWORD dwDestContext
,
54 [in, unique] void *pvDestContext
,
58 HRESULT GetMarshalSizeMax
(
60 [in, unique] void *pv
,
61 [in] DWORD dwDestContext
,
62 [in, unique] void *pvDestContext
,
66 HRESULT MarshalInterface
(
67 [in, unique] IStream
*pStm
,
69 [in, unique] void *pv
,
70 [in] DWORD dwDestContext
,
71 [in, unique] void *pvDestContext
,
72 [in] DWORD mshlflags
);
74 HRESULT UnmarshalInterface
(
75 [in, unique] IStream
*pStm
,
79 HRESULT ReleaseMarshalData
(
80 [in, unique] IStream
*pStm
);
82 HRESULT DisconnectObject
(
83 [in] DWORD dwReserved
);
89 uuid(94ea2b94
-e9cc
-49e0
-c0ff
-ee64ca8f5b90
)
91 interface IAgileObject
: IUnknown
98 uuid(000001cf
-0000-0000-C000
-000000000046)
100 interface IMarshal2
: IMarshal
102 typedef [unique] IMarshal2
*LPMARSHAL2
;
108 uuid(00000018-0000-0000-C000
-000000000046)
110 interface IStdMarshalInfo
: IUnknown
112 typedef [unique] IStdMarshalInfo
*LPSTDMARSHALINFO
;
114 HRESULT GetClassForHandler
(
115 [in] DWORD dwDestContext
,
116 [in, unique] void *pvDestContext
,
117 [out] CLSID
*pClsid
);
123 uuid(00000019-0000-0000-C000
-000000000046)
125 interface IExternalConnection
: IUnknown
127 typedef [unique] IExternalConnection
*LPEXTERNALCONNECTION
;
129 typedef enum tagEXTCONN
{
130 EXTCONN_STRONG
= 0x0001,
131 EXTCONN_WEAK
= 0x0002,
132 EXTCONN_CALLABLE
= 0x0004
137 [in] DWORD reserved
);
139 DWORD ReleaseConnection
(
142 [in] BOOL fLastReleaseCloses
);
148 uuid(00000020-0000-0000-C000
-000000000046)
150 interface IMultiQI
: IUnknown
152 typedef [unique] IMultiQI
*LPMULTIQI
;
154 typedef struct tagMULTI_QI
{
160 HRESULT QueryMultipleInterfaces
(
162 [in, out] MULTI_QI
*pMQIs
);
168 uuid(00000002-0000-0000-C000
-000000000046)
170 interface IMalloc
: IUnknown
172 typedef [unique] IMalloc
*LPMALLOC
;
187 int DidAlloc
(LPVOID pv
);
195 uuid(00000021-0000-0000-C000
-000000000046)
197 interface IInternalUnknown
: IUnknown
199 HRESULT QueryInternalInterface
(
206 uuid(00000100-0000-0000-C000
-000000000046),
207 pointer_default(unique)
209 interface IEnumUnknown
: IUnknown
211 typedef [unique] IEnumUnknown
*LPENUMUNKNOWN
;
216 [out] IUnknown
**rgelt
,
217 [out] ULONG
*pceltFetched
);
222 [out, size_is(celt
), length_is(*pceltFetched
)]
224 [out] ULONG
*pceltFetched
);
232 [out] IEnumUnknown
**ppenum
);
237 uuid(00000022-0000-0000-C000
-000000000046),
239 pointer_default(unique)
241 interface ISurrogate
: IUnknown
243 typedef [unique] ISurrogate
*LPSURROGATE
;
245 HRESULT LoadDllServer
(
246 [in] REFCLSID Clsid
);
247 HRESULT FreeSurrogate
();
253 uuid(00000146-0000-0000-C000
-000000000046)
255 interface IGlobalInterfaceTable
: IUnknown
257 typedef [unique] IGlobalInterfaceTable
*LPGLOBALINTERFACETABLE
;
259 HRESULT RegisterInterfaceInGlobal
(
262 [out] DWORD
*pdwCookie
);
264 HRESULT RevokeInterfaceFromGlobal
(
265 [in] DWORD dwCookie
);
267 HRESULT GetInterfaceFromGlobal
(
270 [out, iid_is(riid
)] void **ppv
);
275 uuid(00000101-0000-0000-C000
-000000000046),
276 pointer_default(unique)
278 interface IEnumString
: IUnknown
280 typedef [unique] IEnumString
*LPENUMSTRING
;
285 [out, size_is(celt
), length_is(*pceltFetched
)]
287 [out] ULONG
*pceltFetched
);
292 [out, size_is(celt
), length_is(*pceltFetched
)]
294 [out] ULONG
*pceltFetched
);
302 [out] IEnumString
**ppenum
);
305 /******************** Storage ********************/
309 uuid(0c733a30
-2a1c
-11ce
-ade5
-00aa0044773d
),
310 pointer_default(unique)
312 interface ISequentialStream
: IUnknown
316 [out, size_is(cb
), length_is(*pcbRead
)]
319 [out] ULONG
*pcbRead
);
323 [out, size_is(cb
), length_is(*pcbRead
)]
326 [out] ULONG
*pcbRead
);
330 [in, size_is(cb
)] const void *pv
,
332 [out] ULONG
*pcbWritten
);
336 [in, size_is(cb
)] const byte *pv
,
338 [out] ULONG
*pcbWritten
);
343 uuid(0000000c
-0000-0000-C000
-000000000046),
344 pointer_default(unique)
346 interface IStream
: ISequentialStream
348 typedef [unique] IStream
*LPSTREAM
;
350 typedef struct tagSTATSTG
{
353 ULARGE_INTEGER cbSize
;
358 DWORD grfLocksSupported
;
364 typedef enum tagSTGTY
{
371 typedef enum tagSTREAM_SEEK
{
377 /* these are defined in Linux's fcntl.h,
378 * undefine them to avoid conflicts */
379 cpp_quote
("#undef LOCK_MAND")
380 cpp_quote
("#undef LOCK_READ")
381 cpp_quote
("#undef LOCK_WRITE")
382 cpp_quote
("#undef LOCK_RW")
384 typedef enum tagLOCKTYPE
{
392 [in] LARGE_INTEGER dlibMove
,
394 [out] ULARGE_INTEGER
*plibNewPosition
);
398 [in] LARGE_INTEGER dlibMove
,
400 [out] ULARGE_INTEGER
*plibNewPosition
);
403 [in] ULARGE_INTEGER libNewSize
);
407 [in, unique] IStream
*pstm
,
408 [in] ULARGE_INTEGER cb
,
409 [out] ULARGE_INTEGER
*pcbRead
,
410 [out] ULARGE_INTEGER
*pcbWritten
);
413 HRESULT RemoteCopyTo
(
414 [in, unique] IStream
*pstm
,
415 [in] ULARGE_INTEGER cb
,
416 [out] ULARGE_INTEGER
*pcbRead
,
417 [out] ULARGE_INTEGER
*pcbWritten
);
420 [in] DWORD grfCommitFlags
);
425 [in] ULARGE_INTEGER libOffset
,
426 [in] ULARGE_INTEGER cb
,
427 [in] DWORD dwLockType
);
429 HRESULT UnlockRegion
(
430 [in] ULARGE_INTEGER libOffset
,
431 [in] ULARGE_INTEGER cb
,
432 [in] DWORD dwLockType
);
435 [out] STATSTG
*pstatstg
,
436 [in] DWORD grfStatFlag
);
439 [out] IStream
**ppstm
);
448 uuid(D5F56B60
-593B
-101A
-B569
-08002B2DBF7A
)
450 interface IRpcChannelBuffer
: IUnknown
452 typedef [unique] IRpcChannelBuffer
*LPRPCCHANNELBUFFER
;
454 typedef unsigned long RPCOLEDATAREP
;
456 typedef struct tagRPCOLEMESSAGE
{
458 RPCOLEDATAREP dataRepresentation
;
466 typedef RPCOLEMESSAGE
*PRPCOLEMESSAGE
;
469 [in] RPCOLEMESSAGE
*pMessage
,
473 [in,out] RPCOLEMESSAGE
*pMessage
,
474 [out] ULONG
*pStatus
);
477 [in] RPCOLEMESSAGE
*pMessage
);
480 [out] DWORD
*pdwDestContext
,
481 [out] void **ppvDestContext
);
483 HRESULT IsConnected
();
489 uuid(594f31d0
-7f19
-11d0
-b194
-00a0c90dc8bf
)
491 interface IRpcChannelBuffer2
: IRpcChannelBuffer
493 typedef [unique] IRpcChannelBuffer2
*LPRPCCHANNELBUFFER2
;
495 HRESULT GetProtocolVersion
(
496 [in,out] DWORD
*pdwVersion
);
502 uuid(25B15600
-0115-11d0
-BF0D
-00AA00B8DFD2
)
504 interface IRpcChannelBuffer3
: IRpcChannelBuffer2
506 typedef [unique] IRpcChannelBuffer3
*LPRPCCHANNELBUFFER3
;
509 [in,out] RPCOLEMESSAGE
*pMsg
,
510 [out] ULONG
*pulStatus
);
513 [in,out] RPCOLEMESSAGE
*pMsg
,
515 [out] ULONG
*pulStatus
);
518 [in] RPCOLEMESSAGE
*pMsg
);
520 HRESULT GetCallContext
(
521 [in] RPCOLEMESSAGE
*pMsg
,
523 [out] void **pInterface
);
525 HRESULT GetDestCtxEx
(
526 [in] RPCOLEMESSAGE
*pMsg
,
527 [out] DWORD
*pdwDestContext
,
528 [out] void **ppvDestContext
);
531 [in] RPCOLEMESSAGE
*pMsg
,
532 [out] DWORD
*pState
);
534 HRESULT RegisterAsync
(
535 [in] RPCOLEMESSAGE
*pMsg
,
536 [in] IAsyncManager
*pAsyncMgr
);
542 uuid(a5029fb6
-3c34
-11d1
-9c99
-00c04fb998aa
),
543 pointer_default(unique)
545 interface IAsyncRpcChannelBuffer
: IRpcChannelBuffer2
548 [in, out] RPCOLEMESSAGE
*pMsg
,
549 [in] ISynchronize
*pSync
,
550 [out] ULONG
*pulStatus
);
553 [in, out] RPCOLEMESSAGE
*pMsg
,
554 [out] ULONG
*pulStatus
);
556 HRESULT GetDestCtxEx
(
557 [in] RPCOLEMESSAGE
*pMsg
,
558 [out] DWORD
*pdwDestContext
,
559 [out] void **ppvDestContext
);
565 uuid(58a08519
-24c8
-4935-b482
-3fd823333a4f
)
567 interface IRpcSyntaxNegotiate
: IUnknown
569 HRESULT NegotiateSyntax
(
570 [in, out] RPCOLEMESSAGE
*pMsg
);
576 uuid(D5F56A34
-593B
-101A
-B569
-08002B2DBF7A
)
578 interface IRpcProxyBuffer
: IUnknown
580 typedef [unique] IRpcProxyBuffer
*LPRPCPROXYBUFFER
;
583 [in, unique] IRpcChannelBuffer
*pRpcChannelBuffer
);
591 uuid(D5F56AFC
-593B
-101A
-B569
-08002B2DBF7A
)
593 interface IRpcStubBuffer
: IUnknown
595 typedef [unique] IRpcStubBuffer
*LPRPCSTUBBUFFER
;
598 [in] IUnknown
*pUnkServer
);
603 [in] RPCOLEMESSAGE
*_prpcmsg
,
604 [in] IRpcChannelBuffer
*_pRpcChannelBuffer
);
606 IRpcStubBuffer
*IsIIDSupported
(
611 HRESULT DebugServerQueryInterface
(
614 void DebugServerRelease
(
621 uuid(D5F569D0
-593B
-101A
-B569
-08002B2DBF7A
)
623 interface IPSFactoryBuffer
: IUnknown
625 typedef [unique] IPSFactoryBuffer
*LPPSFACTORYBUFFER
;
628 [in] IUnknown
*pUnkOuter
,
630 [out] IRpcProxyBuffer
**ppProxy
,
635 [in, unique] IUnknown
*pUnkServer
,
636 [out] IRpcStubBuffer
**ppStub
);
642 uuid(1008c4a0
-7613-11cf
-9af1
-0020af6e72f4
)
644 interface IChannelHook
: IUnknown
646 typedef [unique] IChannelHook
*LPCHANNELHOOK
;
648 typedef struct SChannelHookCallInfo
{
655 } SChannelHookCallInfo
;
658 [in] REFGUID uExtent
,
660 [out] ULONG
*pDataSize
);
662 void ClientFillBuffer
(
663 [in] REFGUID uExtent
,
665 [in, out] ULONG
*pDataSize
,
666 [in] void *pDataBuffer
);
669 [in] REFGUID uExtent
,
671 [in] ULONG cbDataSize
,
672 [in] void *pDataBuffer
,
674 [in] HRESULT hrFault
);
677 [in] REFGUID uExtent
,
679 [in] ULONG cbDataSize
,
680 [in] void *pDataBuffer
,
681 [in] DWORD lDataRep
);
684 [in] REFGUID uExtent
,
686 [in] HRESULT hrFault
,
687 [out] ULONG
*pDataSize
);
689 void ServerFillBuffer
(
690 [in] REFGUID uExtent
,
692 [in, out] ULONG
*pDataSize
,
693 [in] void *pDataBuffer
,
694 [in] HRESULT hrFault
);
697 extern
const FMTID FMTID_SummaryInformation
;
698 extern
const FMTID FMTID_DocSummaryInformation
;
699 extern
const FMTID FMTID_UserDefinedProperties
;
702 /******************** Connection Points ********************/
705 /******************** DCOM ********************/
710 uuid(0000013D
-0000-0000-C000
-000000000046)
712 interface IClientSecurity
: IUnknown
714 typedef struct tagSOLE_AUTHENTICATION_SERVICE
{
717 OLECHAR
*pPrincipalName
;
719 } SOLE_AUTHENTICATION_SERVICE
;
721 typedef SOLE_AUTHENTICATION_SERVICE
*PSOLE_AUTHENTICATION_SERVICE
;
723 typedef struct tagSOLE_AUTHENTICATION_INFO
{
727 } SOLE_AUTHENTICATION_INFO
;
729 const OLECHAR
*COLE_DEFAULT_PRINCIPAL
= (OLECHAR
*) -1;
730 const void *COLE_DEFAULT_AUTHINFO
= (void*) -1;
732 typedef struct tagSOLE_AUTHENTICATION_LIST
{
734 SOLE_AUTHENTICATION_INFO
*aAuthInfo
;
735 } SOLE_AUTHENTICATION_LIST
;
737 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES
{
739 EOAC_MUTUAL_AUTH
= 0x1,
740 EOAC_SECURE_REFS
= 0x2, /* CoInitializeSecurity only */
741 EOAC_ACCESS_CONTROL
= 0x4, /* CoInitializeSecurity only */
742 EOAC_APPID
= 0x8, /* CoInitializeSecurity only */
743 EOAC_DYNAMIC
= 0x10, /* CoInitializeSecurity only */
744 EOAC_STATIC_CLOAKING
= 0x20,
745 EOAC_DYNAMIC_CLOAKING
= 0x40,
746 EOAC_ANY_AUTHORITY
= 0x80,
747 EOAC_MAKE_FULLSIC
= 0x100,
748 EOAC_REQUIRE_FULLSIC
= 0x200, /* CoInitializeSecurity only */
749 EOAC_AUTO_IMPERSONATE
= 0x400, /* CoInitializeSecurity only */
750 EOAC_DEFAULT
= 0x800,
751 EOAC_DISABLE_AAA
= 0x1000, /* CoInitializeSecurity only */
752 EOAC_NO_CUSTOM_MARSHAL
= 0x2000, /* CoInitializeSecurity only */
753 } EOLE_AUTHENTICATION_CAPABILITIES
;
755 HRESULT QueryBlanket
(
756 [in] IUnknown
*pProxy
,
757 [out] DWORD
*pAuthnSvc
,
758 [out] DWORD
*pAuthzSvc
,
759 [out] OLECHAR
**pServerPrincName
,
760 [out] DWORD
*pAuthnLevel
,
761 [out] DWORD
*pImpLevel
,
762 [out] void **pAuthInfo
,
763 [out] DWORD
*pCapabilities
);
766 [in] IUnknown
*pProxy
,
769 [in] OLECHAR
*pServerPrincName
,
770 [in] DWORD AuthnLevel
,
772 [in] void *pAuthInfo
,
773 [in] DWORD Capabilities
);
776 [in] IUnknown
*pProxy
,
777 [out] IUnknown
**ppCopy
);
783 uuid(0000013E-0000-0000-C000
-000000000046)
785 interface IServerSecurity
: IUnknown
787 HRESULT QueryBlanket
(
788 [out] DWORD
*pAuthnSvc
,
789 [out] DWORD
*pAuthzSvc
,
790 [out] OLECHAR
**pServerPrincName
,
791 [out] DWORD
*pAuthnLevel
,
792 [out] DWORD
*pImpLevel
,
794 [out] DWORD
*pCapabilities
);
796 HRESULT ImpersonateClient
();
798 HRESULT RevertToSelf
();
800 BOOL IsImpersonating
();
806 uuid(00000024-0000-0000-C000
-000000000046)
808 interface IAsyncSetup
: IUnknown
810 HRESULT GetAsyncManager
(
812 [in] IUnknown
*pOuter
,
814 [out] IUnknown
**ppInner
,
815 [out] IAsyncManager
**ppAsyncMgr
);
820 uuid(00000030-0000-0000-C000
-000000000046)
823 interface ISynchronize
: IUnknown
827 [in] DWORD dwMilliseconds
);
838 uuid(00000031-0000-0000-C000
-000000000046)
840 interface ISynchronizeHandle
: IUnknown
850 uuid(00000032-0000-0000-C000
-000000000046)
852 interface ISynchronizeEvent
: ISynchronizeHandle
854 HRESULT SetEventHandle
(
862 uuid(00000033-0000-0000-C000
-000000000046)
864 interface ISynchronizeContainer
: IUnknown
866 HRESULT AddSynchronize
(
867 [in] ISynchronize
*pSync
);
869 HRESULT WaitMultiple
(
871 [in] DWORD dwTimeOut
,
872 [out] ISynchronize
**ppSync
);
878 uuid(00000025-0000-0000-C000
-000000000046)
880 interface ISynchronizeMutex
: ISynchronize
882 HRESULT ReleaseMutex
();
888 uuid(00000029-0000-0000-C000
-000000000046)
891 interface ICancelMethodCalls
: IUnknown
893 typedef [unique] ICancelMethodCalls
*LPCANCELMETHODCALLS
;
896 [in] ULONG ulSeconds
);
898 HRESULT TestCancel
();
904 uuid(0000002A
-0000-0000-C000
-000000000046)
906 interface IAsyncManager
: IUnknown
908 typedef enum tagDCOM_CALL_STATE
{
910 DCOM_CALL_COMPLETE
= 1,
911 DCOM_CALL_CANCELED
= 2
914 HRESULT CompleteCall
(
915 [in] HRESULT Result
);
917 HRESULT GetCallContext
(
919 [out] void **pInterface
);
922 [out] ULONG
*pulStateFlags
);
928 uuid(1c733a30
-2a1c
-11ce
-ade5
-00aa0044773d
),
929 pointer_default(unique)
931 interface ICallFactory
: IUnknown
935 [in] IUnknown
*pCtrlUnk
,
937 [out, iid_is(riid2
)] IUnknown
**ppv
);
943 uuid(00000144-0000-0000-C000
-000000000046)
945 interface IRpcOptions
: IUnknown
949 [in] DWORD dwProperty
,
950 [in] ULONG_PTR dwValue
);
954 [in] DWORD dwProperty
,
955 [out] ULONG_PTR
*pdwValue
);
959 COMBND_RPCTIMEOUT
= 1,
960 COMBND_SERVER_LOCALITY
= 2
964 SERVER_LOCALITY_PROCESS_LOCAL
= 0,
965 SERVER_LOCALITY_MACHINE_LOCAL
= 1,
966 SERVER_LOCALITY_REMOTE
= 2
972 uuid(00000149-0000-0000-C000
-000000000046),
973 pointer_default(unique)
975 interface IRpcHelper
: IUnknown
977 HRESULT GetDCOMProtocolVersion
(
978 [out] DWORD
*pComVersion
);
980 HRESULT GetIIDFromOBJREF
(
988 uuid(eb0cb9e8
-7996-11d2
-872e-0000f8080859
)
990 interface IReleaseMarshalBuffers
: IUnknown
992 HRESULT ReleaseMarshalBuffer
(
993 [in] RPCOLEMESSAGE
*pMsg
,
995 [in, unique] IUnknown
*pChnl
);
1001 uuid(0000002B
-0000-0000-C000
-000000000046)
1003 interface IWaitMultiple
: IUnknown
1005 HRESULT WaitMultiple
(
1007 [out] ISynchronize
**pSync
);
1008 HRESULT AddSynchronize
(
1009 [in] ISynchronize
*pSync
);
1016 uuid(00000147-0000-0000-C000
-000000000046)
1018 interface IAddrTrackingControl
: IUnknown
1020 typedef [unique] IAddrTrackingControl
*LPADDRTRACKINGCONTROL
;
1022 HRESULT EnableCOMDynamicAddrTracking
();
1023 HRESULT DisableCOMDynamicAddrTracking
();
1029 uuid(00000148-0000-0000-C000
-000000000046)
1031 interface IAddrExclusionControl
: IUnknown
1033 typedef [unique] IAddrExclusionControl
*LPADDREXCLUSIONCONTROL
;
1035 HRESULT GetCurrentAddrExclusionList
(
1037 [out, iid_is(riid
)] void **ppEnumerator
);
1038 HRESULT UpdateAddrExclusionList
(
1039 [in] IUnknown
*pEnumerator
);
1042 typedef enum _APTTYPE
{
1043 APTTYPE_CURRENT
= -1,
1050 typedef enum _APTTYPEQUALIFIER
{
1051 APTTYPEQUALIFIER_NONE
,
1052 APTTYPEQUALIFIER_IMPLICIT_MTA
,
1053 APTTYPEQUALIFIER_NA_ON_MTA
,
1054 APTTYPEQUALIFIER_NA_ON_STA
,
1055 APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA
,
1056 APTTYPEQUALIFIER_NA_ON_MAINSTA
1059 typedef enum _THDTYPE
{
1060 THDTYPE_BLOCKMESSAGES
= 0,
1061 THDTYPE_PROCESSMESSAGES
= 1
1067 uuid(000001ce
-0000-0000-C000
-000000000046),
1068 pointer_default(unique)
1070 interface IComThreadingInfo
: IUnknown
1072 HRESULT GetCurrentApartmentType
(
1073 [out] APTTYPE
*pAptType
);
1074 HRESULT GetCurrentThreadType
(
1075 [out] THDTYPE
*pThreadType
);
1076 HRESULT GetCurrentLogicalThreadId
(
1077 [out] GUID
*pguidLogicalThreadId
);
1078 HRESULT SetCurrentLogicalThreadId
(
1079 [in] REFGUID rguid
);
1085 pointer_default(unique),
1086 uuid(72380d55
-8d2b
-43a3
-8513-2b6ef31434e9
)
1088 interface IProcessInitControl
: IUnknown
1090 HRESULT ResetInitializerTimeout
(
1091 [in] DWORD dwSecondsRemaining
);
1094 typedef enum tagGLOBALOPT_PROPERTIES
1096 COMGLB_EXCEPTION_HANDLING
= 1,
1098 COMGLB_RPC_THREADPOOL_SETTING
= 3,
1099 COMGLB_RO_SETTINGS
= 4,
1100 COMGLB_UNMARSHALING_POLICY
= 5,
1101 COMGLB_PROPERTIES_RESERVED1
= 6,
1102 COMGLB_PROPERTIES_RESERVED2
= 7,
1103 COMGLB_PROPERTIES_RESERVED3
= 8,
1104 } GLOBALOPT_PROPERTIES
;
1106 typedef enum tagGLOBALOPT_EH_VALUES
1108 COMGLB_EXCEPTION_HANDLE
= 0,
1109 COMGLB_EXCEPTION_DONOT_HANDLE_FATAL
= 1,
1110 COMGLB_EXCEPTION_DONOT_HANDLE
= COMGLB_EXCEPTION_DONOT_HANDLE_FATAL
,
1111 COMGLB_EXCEPTION_DONOT_HANDLE_ANY
= 2
1112 } GLOBALOPT_EH_VALUES
;
1114 typedef enum tagGLOBALOPT_RPCTP_VALUES
1116 COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL
= 0,
1117 COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL
= 1
1118 } GLOBALOPT_RPCTP_VALUES
;
1120 typedef enum tagGLOBALOPT_RO_FLAGS
1122 COMGLB_STA_MODALLOOP_REMOVE_TOUCH_MESSAGES
= 0x1,
1123 COMGLB_STA_MODALLOOP_SHARED_QUEUE_REMOVE_INPUT_MESSAGES
= 0x2,
1124 COMGLB_STA_MODALLOOP_SHARED_QUEUE_DONOT_REMOVE_INPUT_MESSAGES
= 0x4,
1125 COMGLB_FAST_RUNDOWN
= 0x8,
1126 COMGLB_RESERVED1
= 0x10,
1127 COMGLB_RESERVED2
= 0x20,
1128 COMGLB_RESERVED3
= 0x40,
1129 COMGLB_STA_MODALLOOP_SHARED_QUEUE_REORDER_POINTER_MESSAGES
= 0x80,
1130 COMGLB_RESERVED4
= 0x100,
1131 COMGLB_RESERVED5
= 0x200,
1132 COMGLB_RESERVED6
= 0x400,
1133 } GLOBALOPT_RO_FLAGS
;
1135 typedef enum tagGLOBALOPT_UNMARSHALING_POLICY_VALUES
1137 COMGLB_UNMARSHALING_POLICY_NORMAL
= 0,
1138 COMGLB_UNMARSHALING_POLICY_STRONG
= 1,
1139 COMGLB_UNMARSHALING_POLICY_HYBRID
= 2,
1140 } GLOBALOPT_UNMARSHALING_POLICY_VALUES
;
1145 pointer_default(unique),
1146 uuid(0000015B
-0000-0000-C000
-000000000046)
1148 interface IGlobalOptions
: IUnknown
1150 HRESULT Set
([in] GLOBALOPT_PROPERTIES property
, [in] ULONG_PTR value
);
1151 HRESULT Query
([in] GLOBALOPT_PROPERTIES property
, [out ] ULONG_PTR
*value
);
1154 cpp_quote
("#ifdef USE_COM_CONTEXT_DEF")
1156 typedef DWORD CPFLAGS
;
1158 typedef struct tagContextProperty
1162 [unique] IUnknown
*pUnk
;
1168 uuid(000001c1
-0000-0000-C000
-000000000046)
1170 interface IEnumContextProps
: IUnknown
1172 typedef [unique] IEnumContextProps
*LPENUMCONTEXTPROPS
;
1176 [out, size_is(celt
), length_is(*pceltFetched
)] ContextProperty
*pContextProperties
,
1177 [out] ULONG
*pceltFetched
);
1185 [out] IEnumContextProps
**ppEnumContextProps
);
1188 [out] ULONG
*pcelt
);
1194 uuid(000001c0
-0000-0000-C000
-000000000046)
1196 interface IContext
: IUnknown
1198 HRESULT SetProperty
(
1199 [in] REFGUID policyId
,
1201 [in] IUnknown
*pUnk
);
1203 HRESULT RemoveProperty
(
1204 [in] REFGUID policyId
);
1206 HRESULT GetProperty
(
1208 [out] CPFLAGS
*pFlags
,
1209 [out] IUnknown
**ppUnk
);
1211 HRESULT EnumContextProps
(
1212 [out] IEnumContextProps
**ppEnumContextProps
);
1218 uuid(000001c6
-0000-0000-c000
-000000000046),
1219 pointer_default(unique)
1221 interface IObjContext
: IContext
1232 cpp_quote
("#endif /* defined USE_COM_CONTEXT_DEF */")
1233 cpp_quote
("#endif /* defined _OBJIDLBASE_ */")