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
24 interface IEnumString
;
25 interface IRunningObjectTable
;
27 interface IAdviseSink
;
28 interface IAsyncManager
;
29 interface ISynchronize
;
31 typedef struct _COSERVERINFO
{
34 COAUTHINFO
*pAuthInfo
;
38 /******************** Fundamentals ********************/
43 uuid(00000003-0000-0000-C000
-000000000046)
45 interface IMarshal
: IUnknown
47 typedef [unique] IMarshal
*LPMARSHAL
;
49 HRESULT GetUnmarshalClass
(
51 [in, unique] void *pv
,
52 [in] DWORD dwDestContext
,
53 [in, unique] void *pvDestContext
,
57 HRESULT GetMarshalSizeMax
(
59 [in, unique] void *pv
,
60 [in] DWORD dwDestContext
,
61 [in, unique] void *pvDestContext
,
65 HRESULT MarshalInterface
(
66 [in, unique] IStream
*pStm
,
68 [in, unique] void *pv
,
69 [in] DWORD dwDestContext
,
70 [in, unique] void *pvDestContext
,
71 [in] DWORD mshlflags
);
73 HRESULT UnmarshalInterface
(
74 [in, unique] IStream
*pStm
,
78 HRESULT ReleaseMarshalData
(
79 [in, unique] IStream
*pStm
);
81 HRESULT DisconnectObject
(
82 [in] DWORD dwReserved
);
88 uuid(000001cf
-0000-0000-C000
-000000000046)
90 interface IMarshal2
: IMarshal
92 typedef [unique] IMarshal2
*LPMARSHAL2
;
98 uuid(00000018-0000-0000-C000
-000000000046)
100 interface IStdMarshalInfo
: IUnknown
102 typedef [unique] IStdMarshalInfo
*LPSTDMARSHALINFO
;
104 HRESULT GetClassForHandler
(
105 [in] DWORD dwDestContext
,
106 [in, unique] void *pvDestContext
,
107 [out] CLSID
*pClsid
);
113 uuid(00000019-0000-0000-C000
-000000000046)
115 interface IExternalConnection
: IUnknown
117 typedef [unique] IExternalConnection
*LPEXTERNALCONNECTION
;
119 typedef enum tagEXTCONN
{
120 EXTCONN_STRONG
= 0x0001,
121 EXTCONN_WEAK
= 0x0002,
122 EXTCONN_CALLABLE
= 0x0004
127 [in] DWORD reserved
);
129 DWORD ReleaseConnection
(
132 [in] BOOL fLastReleaseCloses
);
138 uuid(00000020-0000-0000-C000
-000000000046)
140 interface IMultiQI
: IUnknown
142 typedef [unique] IMultiQI
*LPMULTIQI
;
144 typedef struct tagMULTI_QI
{
150 HRESULT QueryMultipleInterfaces
(
152 [in, out] MULTI_QI
*pMQIs
);
158 uuid(00000002-0000-0000-C000
-000000000046)
160 interface IMalloc
: IUnknown
162 typedef [unique] IMalloc
*LPMALLOC
;
177 int DidAlloc
(LPVOID pv
);
185 uuid(0000001d
-0000-0000-C000
-000000000046)
187 interface IMallocSpy
: IUnknown
189 typedef [unique] IMallocSpy
*LPMALLOCSPY
;
192 [in] ULONG cbRequest
);
195 [in] LPVOID pActual
);
198 [in] LPVOID pRequest
,
205 [in] LPVOID pRequest
,
206 [in] ULONG cbRequest
,
207 [out] LPVOID
*ppNewRequest
,
215 [in] LPVOID pRequest
,
223 [in] LPVOID pRequest
,
227 [in] LPVOID pRequest
,
231 void PreHeapMinimize
();
233 void PostHeapMinimize
();
239 uuid(00000021-0000-0000-C000
-000000000046)
241 interface IInternalUnknown
: IUnknown
243 HRESULT QueryInternalInterface
(
250 uuid(00000100-0000-0000-C000
-000000000046),
251 pointer_default(unique)
253 interface IEnumUnknown
: IUnknown
255 typedef [unique] IEnumUnknown
*LPENUMUNKNOWN
;
260 [out] IUnknown
**rgelt
,
261 [out] ULONG
*pceltFetched
);
266 [out, size_is(celt
), length_is(*pceltFetched
)]
268 [out] ULONG
*pceltFetched
);
276 [out] IEnumUnknown
**ppenum
);
281 uuid(00000022-0000-0000-C000
-000000000046),
283 pointer_default(unique)
285 interface ISurrogate
: IUnknown
287 typedef [unique] ISurrogate
*LPSURROGATE
;
289 HRESULT LoadDllServer
(
290 [in] REFCLSID Clsid
);
291 HRESULT FreeSurrogate
();
297 uuid(00000146-0000-0000-C000
-000000000046)
299 interface IGlobalInterfaceTable
: IUnknown
301 typedef [unique] IGlobalInterfaceTable
*LPGLOBALINTERFACETABLE
;
303 HRESULT RegisterInterfaceInGlobal
(
306 [out] DWORD
*pdwCookie
);
308 HRESULT RevokeInterfaceFromGlobal
(
309 [in] DWORD dwCookie
);
311 HRESULT GetInterfaceFromGlobal
(
314 [out, iid_is(riid
)] void **ppv
);
317 /******************** Monikers ********************/
321 uuid(0000000e-0000-0000-C000
-000000000046),
322 pointer_default(unique)
324 interface IBindCtx
: IUnknown
326 typedef [unique] IBindCtx
*LPBINDCTX
;
327 typedef [unique] IBindCtx
*LPBC
;
329 typedef struct tagBIND_OPTS
{
333 DWORD dwTickCountDeadline
;
334 } BIND_OPTS
, *LPBIND_OPTS
;
336 /* FIXME: C++ crap */
337 typedef struct tagBIND_OPTS2
{
341 DWORD dwTickCountDeadline
;
343 DWORD dwClassContext
;
345 COSERVERINFO
*pServerInfo
;
346 } BIND_OPTS2
, *LPBIND_OPTS2
;
348 typedef enum tagBIND_FLAGS
{
349 BIND_MAYBOTHERUSER
= 1,
350 BIND_JUSTTESTEXISTENCE
= 2
353 HRESULT RegisterObjectBound
(
354 [in, unique] IUnknown
*punk
);
356 HRESULT RevokeObjectBound
(
357 [in, unique] IUnknown
*punk
);
359 HRESULT ReleaseBoundObjects
();
362 HRESULT SetBindOptions
(
363 [in] BIND_OPTS
*pbindopts
);
365 [call_as
(SetBindOptions
)]
366 HRESULT RemoteSetBindOptions
(
367 [in] BIND_OPTS2
*pbindopts
);
370 HRESULT GetBindOptions
(
371 [in, out] BIND_OPTS
*pbindopts
);
373 [call_as
(GetBindOptions
)]
374 HRESULT RemoteGetBindOptions
(
375 [in, out] BIND_OPTS2
*pbindopts
);
377 HRESULT GetRunningObjectTable
(
378 [out] IRunningObjectTable
**pprot
);
380 HRESULT RegisterObjectParam
(
381 [in] LPOLESTR pszKey
,
382 [in, unique] IUnknown
*punk
);
384 HRESULT GetObjectParam
(
385 [in] LPOLESTR pszKey
,
386 [out] IUnknown
**ppunk
);
388 HRESULT EnumObjectParam
(
389 [out] IEnumString
**ppenum
);
391 HRESULT RevokeObjectParam
(
392 [in] LPOLESTR pszKey
);
397 uuid(00000102-0000-0000-C000
-000000000046),
398 pointer_default(unique)
400 interface IEnumMoniker
: IUnknown
402 typedef [unique] IEnumMoniker
*LPENUMMONIKER
;
407 [out, size_is(celt
), length_is(*pceltFetched
)]
409 [out] ULONG
*pceltFetched
);
414 [out, size_is(celt
), length_is(*pceltFetched
)]
416 [out] ULONG
*pceltFetched
);
424 [out] IEnumMoniker
**ppenum
);
429 uuid(00000126-0000-0000-C000
-000000000046)
431 interface IRunnableObject
: IUnknown
433 typedef [unique] IRunnableObject
*LPRUNNABLEOBJECT
;
435 HRESULT GetRunningClass
(
436 [out] LPCLSID lpClsid
);
445 HRESULT RemoteIsRunning
();
449 [in] BOOL fLastUnlockCloses
);
451 HRESULT SetContainedObject
(
452 [in] BOOL fContained
);
455 /* GetObject is defined in wingdi.h as WINELIB_NAME_AW(GetObject),
456 * which resolves to a compilation failure if WINE_NO_UNICODE_MACROS is defined,
457 * but GetObject is used as a valid method name below, so we have
458 * to undefine it in that case */
459 cpp_quote
("#ifdef WINE_NO_UNICODE_MACROS")
460 cpp_quote
("#undef GetObject")
465 uuid(00000010-0000-0000-C000
-000000000046)
467 interface IRunningObjectTable
: IUnknown
469 typedef [unique] IRunningObjectTable
*LPRUNNINGOBJECTTABLE
;
473 [in, unique] IUnknown
*punkObject
,
474 [in, unique] IMoniker
*pmkObjectName
,
475 [out] DWORD
*pdwRegister
);
478 [in] DWORD dwRegister
);
481 [in, unique] IMoniker
*pmkObjectName
);
484 [in, unique] IMoniker
*pmkObjectName
,
485 [out] IUnknown
**ppunkObject
);
487 HRESULT NoteChangeTime
(
488 [in] DWORD dwRegister
,
489 [in] FILETIME
*pfiletime
);
491 HRESULT GetTimeOfLastChange
(
492 [in, unique] IMoniker
*pmkObjectName
,
493 [out] FILETIME
*pfiletime
);
496 [out] IEnumMoniker
**ppenumMoniker
);
501 uuid(0000010c
-0000-0000-C000
-000000000046)
503 interface IPersist
: IUnknown
505 typedef [unique] IPersist
*LPPERSIST
;
508 [out] CLSID
*pClassID
);
513 uuid(00000109-0000-0000-C000
-000000000046),
514 pointer_default(unique)
516 interface IPersistStream
: IPersist
518 typedef [unique] IPersistStream
*LPPERSISTSTREAM
;
523 [in, unique] IStream
*pStm
);
526 [in, unique] IStream
*pStm
,
527 [in] BOOL fClearDirty
);
530 [out] ULARGE_INTEGER
*pcbSize
);
535 uuid(0000000f
-0000-0000-C000
-000000000046),
536 pointer_default(unique)
538 interface IMoniker
: IPersistStream
540 typedef [unique] IMoniker
*LPMONIKER
;
542 typedef enum tagMKSYS
{
544 MKSYS_GENERICCOMPOSITE
= 1,
545 MKSYS_FILEMONIKER
= 2,
546 MKSYS_ANTIMONIKER
= 3,
547 MKSYS_ITEMMONIKER
= 4,
548 MKSYS_POINTERMONIKER
= 5,
549 /* MKSYS_URLMONIKER = 6, */ /* defined in urlmon.idl */
550 MKSYS_CLASSMONIKER
= 7
553 typedef [v1_enum] enum tagMKREDUCE
{
554 MKRREDUCE_ONE
= 3 << 16,
555 MKRREDUCE_TOUSER
= 2 << 16,
556 MKRREDUCE_THROUGHUSER
= 1 << 16,
561 HRESULT BindToObject
(
562 [in, unique] IBindCtx
*pbc
,
563 [in, unique] IMoniker
*pmkToLeft
,
564 [in] REFIID riidResult
,
565 [out, iid_is(riidResult
)] void **ppvResult
);
567 [call_as
(BindToObject
)]
568 HRESULT RemoteBindToObject
(
569 [in, unique] IBindCtx
*pbc
,
570 [in, unique] IMoniker
*pmkToLeft
,
571 [in] REFIID riidResult
,
572 [out, iid_is(riidResult
)] IUnknown
**ppvResult
);
575 HRESULT BindToStorage
(
576 [in, unique] IBindCtx
*pbc
,
577 [in, unique] IMoniker
*pmkToLeft
,
579 [out, iid_is(riid
)] void **ppvObj
);
581 [call_as
(BindToStorage
)]
582 HRESULT RemoteBindToStorage
(
583 [in, unique] IBindCtx
*pbc
,
584 [in, unique] IMoniker
*pmkToLeft
,
586 [out, iid_is(riid
)] IUnknown
**ppvObj
);
589 [in, unique] IBindCtx
*pbc
,
590 [in] DWORD dwReduceHowFar
,
591 [in, out, unique] IMoniker
**ppmkToLeft
,
592 [out] IMoniker
**ppmkReduced
);
595 [in, unique] IMoniker
*pmkRight
,
596 [in] BOOL fOnlyIfNotGeneric
,
597 [out] IMoniker
**ppmkComposite
);
601 [out] IEnumMoniker
**ppenumMoniker
);
604 [in, unique] IMoniker
*pmkOtherMoniker
);
607 [out] DWORD
*pdwHash
);
610 [in, unique] IBindCtx
*pbc
,
611 [in, unique] IMoniker
*pmkToLeft
,
612 [in, unique] IMoniker
*pmkNewlyRunning
);
614 HRESULT GetTimeOfLastChange
(
615 [in, unique] IBindCtx
*pbc
,
616 [in, unique] IMoniker
*pmkToLeft
,
617 [out] FILETIME
*pFileTime
);
620 [out] IMoniker
**ppmk
);
622 HRESULT CommonPrefixWith
(
623 [in, unique] IMoniker
*pmkOther
,
624 [out] IMoniker
**ppmkPrefix
);
626 HRESULT RelativePathTo
(
627 [in, unique] IMoniker
*pmkOther
,
628 [out] IMoniker
**ppmkRelPath
);
630 HRESULT GetDisplayName
(
631 [in, unique] IBindCtx
*pbc
,
632 [in, unique] IMoniker
*pmkToLeft
,
633 [out] LPOLESTR
*ppszDisplayName
);
635 HRESULT ParseDisplayName
(
636 [in, unique] IBindCtx
*pbc
,
637 [in, unique] IMoniker
*pmkToLeft
,
638 [in] LPOLESTR pszDisplayName
,
639 [out] ULONG
*pchEaten
,
640 [out] IMoniker
**ppmkOut
);
642 HRESULT IsSystemMoniker
(
643 [out] DWORD
*pdwMksys
);
648 uuid(f29f6bc0
-5021-11ce
-aa15
-00006901293f
),
649 pointer_default(unique)
651 interface IROTData
: IUnknown
653 HRESULT GetComparisonData
(
654 [out, size_is(cbMax
)] byte *pbData
,
656 [out] ULONG
*pcbData
);
661 uuid(00000101-0000-0000-C000
-000000000046),
662 pointer_default(unique)
664 interface IEnumString
: IUnknown
666 typedef [unique] IEnumString
*LPENUMSTRING
;
671 [out, size_is(celt
), length_is(*pceltFetched
)]
673 [out] ULONG
*pceltFetched
);
678 [out, size_is(celt
), length_is(*pceltFetched
)]
680 [out] ULONG
*pceltFetched
);
688 [out] IEnumString
**ppenum
);
693 uuid(00000140-0000-0000-C000
-000000000046)
695 interface IClassActivator
: IUnknown
697 HRESULT GetClassObject
(
698 [in] REFCLSID rclsid
,
699 [in] DWORD dwClassContext
,
702 [out, iid_is(riid
)] void **ppv
);
705 /******************** Storage ********************/
709 uuid(0c733a30
-2a1c
-11ce
-ade5
-00aa0044773d
),
710 pointer_default(unique)
712 interface ISequentialStream
: IUnknown
716 [out, size_is(cb
), length_is(*pcbRead
)]
719 [out] ULONG
*pcbRead
);
723 [out, size_is(cb
), length_is(*pcbRead
)]
726 [out] ULONG
*pcbRead
);
730 [in, size_is(cb
)] const void *pv
,
732 [out] ULONG
*pcbWritten
);
736 [in, size_is(cb
)] const byte *pv
,
738 [out] ULONG
*pcbWritten
);
743 uuid(0000000c
-0000-0000-C000
-000000000046),
744 pointer_default(unique)
746 interface IStream
: ISequentialStream
748 typedef [unique] IStream
*LPSTREAM
;
750 typedef struct tagSTATSTG
{
753 ULARGE_INTEGER cbSize
;
758 DWORD grfLocksSupported
;
764 typedef enum tagSTGTY
{
771 typedef enum tagSTREAM_SEEK
{
777 /* these are defined in Linux's fcntl.h,
778 * undefine them to avoid conflicts */
779 cpp_quote
("#undef LOCK_MAND")
780 cpp_quote
("#undef LOCK_READ")
781 cpp_quote
("#undef LOCK_WRITE")
782 cpp_quote
("#undef LOCK_RW")
784 typedef enum tagLOCKTYPE
{
792 [in] LARGE_INTEGER dlibMove
,
794 [out] ULARGE_INTEGER
*plibNewPosition
);
798 [in] LARGE_INTEGER dlibMove
,
800 [out] ULARGE_INTEGER
*plibNewPosition
);
803 [in] ULARGE_INTEGER libNewSize
);
807 [in, unique] IStream
*pstm
,
808 [in] ULARGE_INTEGER cb
,
809 [out] ULARGE_INTEGER
*pcbRead
,
810 [out] ULARGE_INTEGER
*pcbWritten
);
813 HRESULT RemoteCopyTo
(
814 [in, unique] IStream
*pstm
,
815 [in] ULARGE_INTEGER cb
,
816 [out] ULARGE_INTEGER
*pcbRead
,
817 [out] ULARGE_INTEGER
*pcbWritten
);
820 [in] DWORD grfCommitFlags
);
825 [in] ULARGE_INTEGER libOffset
,
826 [in] ULARGE_INTEGER cb
,
827 [in] DWORD dwLockType
);
829 HRESULT UnlockRegion
(
830 [in] ULARGE_INTEGER libOffset
,
831 [in] ULARGE_INTEGER cb
,
832 [in] DWORD dwLockType
);
835 [out] STATSTG
*pstatstg
,
836 [in] DWORD grfStatFlag
);
839 [out] IStream
**ppstm
);
844 uuid(0000000d
-0000-0000-C000
-000000000046),
845 pointer_default(unique)
847 interface IEnumSTATSTG
: IUnknown
849 typedef [unique] IEnumSTATSTG
*LPENUMSTATSTG
;
854 [out, size_is(celt
), length_is(*pceltFetched
)]
856 [out] ULONG
*pceltFetched
);
861 [out, size_is(celt
), length_is(*pceltFetched
)]
863 [out] ULONG
*pceltFetched
);
871 [out] IEnumSTATSTG
**ppenum
);
876 uuid(0000000b
-0000-0000-C000
-000000000046),
877 pointer_default(unique)
879 interface IStorage
: IUnknown
881 typedef [unique] IStorage
*LPSTORAGE
;
883 typedef struct tagRemSNB
{
884 unsigned long ulCntStr
;
885 unsigned long ulCntChar
;
886 [size_is(ulCntChar
)] OLECHAR rgString
[];
889 typedef [unique] RemSNB
*wireSNB
;
890 typedef [wire_marshal(wireSNB
)] OLECHAR
**SNB
;
892 HRESULT CreateStream
(
893 [in] LPCOLESTR pwcsName
,
895 [in] DWORD reserved1
,
896 [in] DWORD reserved2
,
897 [out] IStream
**ppstm
);
901 [in] LPCOLESTR pwcsName
,
902 [in, unique] void *reserved1
,
904 [in] DWORD reserved2
,
905 [out] IStream
**ppstm
);
907 [call_as
(OpenStream
)]
908 HRESULT RemoteOpenStream
(
909 [in] LPCOLESTR pwcsName
,
910 [in] unsigned long cbReserved1
,
911 [in, unique, size_is(cbReserved1
)] byte *reserved1
,
913 [in] DWORD reserved2
,
914 [out] IStream
**ppstm
);
916 HRESULT CreateStorage
(
917 [in] LPCOLESTR pwcsName
,
920 [in] DWORD reserved2
,
921 [out] IStorage
**ppstg
);
924 [in, unique] LPCOLESTR pwcsName
,
925 [in, unique] IStorage
*pstgPriority
,
927 [in, unique] SNB snbExclude
,
929 [out] IStorage
**ppstg
);
932 [in] DWORD ciidExclude
,
933 [in, unique, size_is(ciidExclude
)] const IID
*rgiidExclude
,
934 [in, unique] SNB snbExclude
,
935 [in, unique] IStorage
*pstgDest
);
937 HRESULT MoveElementTo
(
938 [in] LPCOLESTR pwcsName
,
939 [in, unique] IStorage
*pstgDest
,
940 [in] LPCOLESTR pwcsNewName
,
941 [in] DWORD grfFlags
);
944 [in] DWORD grfCommitFlags
);
949 HRESULT EnumElements
(
950 [in] DWORD reserved1
,
951 [in, unique, size_is(1)] void *reserved2
,
952 [in] DWORD reserved3
,
953 [out] IEnumSTATSTG
**ppenum
);
955 [call_as
(EnumElements
)]
956 HRESULT RemoteEnumElements
(
957 [in] DWORD reserved1
,
958 [in] unsigned long cbReserved2
,
959 [in, unique, size_is(cbReserved2
)] byte *reserved2
,
960 [in] DWORD reserved3
,
961 [out] IEnumSTATSTG
**ppenum
);
963 HRESULT DestroyElement
(
964 [in] LPCOLESTR pwcsName
);
966 HRESULT RenameElement
(
967 [in] LPCOLESTR pwcsOldName
,
968 [in] LPCOLESTR pwcsNewName
);
970 HRESULT SetElementTimes
(
971 [in, unique] LPCOLESTR pwcsName
,
972 [in, unique] const FILETIME
*pctime
,
973 [in, unique] const FILETIME
*patime
,
974 [in, unique] const FILETIME
*pmtime
);
977 [in] REFCLSID clsid
);
979 HRESULT SetStateBits
(
980 [in] DWORD grfStateBits
,
984 [out] STATSTG
*pstatstg
,
985 [in] DWORD grfStatFlag
);
990 uuid(0000010b
-0000-0000-C000
-000000000046),
991 pointer_default(unique)
993 interface IPersistFile
: IPersist
995 typedef [unique] IPersistFile
*LPPERSISTFILE
;
1000 [in] LPCOLESTR pszFileName
,
1004 [in, unique] LPCOLESTR pszFileName
,
1005 [in] BOOL fRemember
);
1007 HRESULT SaveCompleted
(
1008 [in, unique] LPCOLESTR pszFileName
);
1011 [out] LPOLESTR
*ppszFileName
);
1016 uuid(0000010a
-0000-0000-C000
-000000000046),
1017 pointer_default(unique)
1019 interface IPersistStorage
: IPersist
1021 typedef [unique] IPersistStorage
*LPPERSISTSTORAGE
;
1026 [in, unique] IStorage
*pStg
);
1029 [in, unique] IStorage
*pStg
);
1032 [in, unique] IStorage
*pStgSave
,
1033 [in] BOOL fSameAsLoad
);
1035 HRESULT SaveCompleted
(
1036 [in, unique] IStorage
*pStgNew
);
1038 HRESULT HandsOffStorage
();
1043 uuid(00000012-0000-0000-C000
-000000000046),
1044 pointer_default(unique)
1046 interface IRootStorage
: IUnknown
1048 typedef [unique] IRootStorage
*LPROOTSTORAGE
;
1050 HRESULT SwitchToFile
(
1051 [in] LPOLESTR pszFile
);
1056 uuid(0000000a
-0000-0000-C000
-000000000046),
1057 pointer_default(unique)
1059 interface ILockBytes
: IUnknown
1061 typedef [unique] ILockBytes
*LPLOCKBYTES
;
1065 [in] ULARGE_INTEGER ulOffset
,
1066 [out, size_is(cb
), length_is(*pcbRead
)]
1069 [out] ULONG
*pcbRead
);
1072 HRESULT RemoteReadAt
(
1073 [in] ULARGE_INTEGER ulOffset
,
1074 [out, size_is(cb
), length_is(*pcbRead
)]
1077 [out] ULONG
*pcbRead
);
1081 [in] ULARGE_INTEGER ulOffset
,
1082 [in, size_is(cb
)] const void *pv
,
1084 [out] ULONG
*pcbWritten
);
1087 HRESULT RemoteWriteAt
(
1088 [in] ULARGE_INTEGER ulOffset
,
1089 [in, size_is(cb
)] const byte *pv
,
1091 [out] ULONG
*pcbWritten
);
1096 [in] ULARGE_INTEGER cb
);
1099 [in] ULARGE_INTEGER libOffset
,
1100 [in] ULARGE_INTEGER cb
,
1101 [in] DWORD dwLockType
);
1103 HRESULT UnlockRegion
(
1104 [in] ULARGE_INTEGER libOffset
,
1105 [in] ULARGE_INTEGER cb
,
1106 [in] DWORD dwLockType
);
1109 [out] STATSTG
*pstatstg
,
1110 [in] DWORD grfStatFlag
);
1115 uuid(99caf010
-415e-11cf
-8814-00aa00b569f5
),
1116 pointer_default(unique)
1118 interface IFillLockBytes
: IUnknown
1122 [in, size_is(cb
)] const void *pv
,
1124 [out] ULONG
*pcbWritten
);
1126 [call_as
(FillAppend
)]
1127 HRESULT RemoteFillAppend
(
1128 [in, size_is(cb
)] const byte *pv
,
1130 [out] ULONG
*pcbWritten
);
1134 [in] ULARGE_INTEGER ulOffset
,
1135 [in, size_is(cb
)] const void *pv
,
1137 [out] ULONG
*pcbWritten
);
1140 HRESULT RemoteFillAt
(
1141 [in] ULARGE_INTEGER ulOffset
,
1142 [in, size_is(cb
)] const byte *pv
,
1144 [out] ULONG
*pcbWritten
);
1146 HRESULT SetFillSize
(
1147 [in] ULARGE_INTEGER ulSize
);
1150 [in] BOOL bCanceled
);
1155 uuid(a9d758a0
-4617-11cf
-95fc
-00aa00680db4
),
1156 pointer_default(unique)
1158 interface IProgressNotify
: IUnknown
1161 [in] DWORD dwProgressCurrent
,
1162 [in] DWORD dwProgressMaximum
,
1163 [in] BOOL fAccurate
,
1170 uuid(0e6d4d90
-6738-11cf
-9608-00aa00680db4
),
1171 pointer_default(unique)
1173 interface ILayoutStorage
: IUnknown
1175 typedef struct tagStorageLayout
{
1177 OLECHAR
*pwcsElementName
;
1178 LARGE_INTEGER cOffset
;
1179 LARGE_INTEGER cBytes
;
1182 HRESULT LayoutScript
(
1183 [in] StorageLayout
*pStorageLayout
,
1184 [in] DWORD nEntries
,
1185 [in] DWORD glfInterleavedFlag
);
1187 HRESULT BeginMonitor
();
1189 HRESULT EndMonitor
();
1191 HRESULT ReLayoutDocfile
(
1192 [in] OLECHAR
*pwcsNewDfName
);
1194 HRESULT ReLayoutDocfileOnILockBytes
(
1195 [in] ILockBytes
*pILockBytes
);
1200 uuid(30f3d47a
-6447-11d1
-8e3c
-00c04fb9386d
)
1202 interface IBlockingLock
: IUnknown
1205 [in] DWORD dwTimeout
);
1213 uuid(bc0bf6ae
-8878-11d1
-83e9
-00c04fc2c6d4
)
1215 interface ITimeAndNoticeControl
: IUnknown
1217 HRESULT SuppressChanges
(
1227 uuid(8d19c834
-8879-11d1
-83e9
-00c04fc2c6d4
)
1229 interface IOplockStorage
: IUnknown
1231 HRESULT CreateStorageEx
(
1232 [in] LPCWSTR pwcsName
,
1235 [in] DWORD grfAttrs
,
1237 [out, iid_is(riid
)] void **ppstgOpen
);
1239 HRESULT OpenStorageEx
(
1240 [in] LPCWSTR pwcsName
,
1243 [in] DWORD grfAttrs
,
1245 [out, iid_is(riid
)] void **ppstgOpen
);
1248 /******************** Data Object ********************/
1252 uuid(00000103-0000-0000-C000
-000000000046),
1253 pointer_default(unique)
1255 interface IEnumFORMATETC
: IUnknown
1257 typedef [unique] IEnumFORMATETC
*LPENUMFORMATETC
;
1259 typedef struct tagDVTARGETDEVICE
{
1261 WORD tdDriverNameOffset
;
1262 WORD tdDeviceNameOffset
;
1263 WORD tdPortNameOffset
;
1264 WORD tdExtDevmodeOffset
;
1265 [size_is(tdSize
- sizeof
(DWORD
) - 4*sizeof
(WORD
))]
1269 typedef CLIPFORMAT
*LPCLIPFORMAT
;
1271 typedef struct tagFORMATETC
{
1272 CLIPFORMAT cfFormat
;
1273 [unique] DVTARGETDEVICE
*ptd
;
1277 } FORMATETC
, *LPFORMATETC
;
1282 [out, size_is(celt
), length_is(*pceltFetched
)]
1284 [out] ULONG
*pceltFetched
);
1289 [out, size_is(celt
), length_is(*pceltFetched
)]
1291 [out] ULONG
*pceltFetched
);
1299 [out] IEnumFORMATETC
**ppenum
);
1304 uuid(00000105-0000-0000-C000
-000000000046),
1305 pointer_default(unique)
1307 interface IEnumSTATDATA
: IUnknown
1309 typedef [unique] IEnumSTATDATA
*LPENUMSTATDATA
;
1311 typedef enum tagADVF
{
1313 ADVF_PRIMEFIRST
= 2,
1315 ADVF_DATAONSTOP
= 64,
1316 ADVFCACHE_NOHANDLER
= 8,
1317 ADVFCACHE_FORCEBUILTIN
= 16,
1318 ADVFCACHE_ONSAVE
= 32
1321 typedef struct tagSTATDATA
1323 FORMATETC formatetc
;
1325 [unique] IAdviseSink
*pAdvSink
;
1327 } STATDATA
, *LPSTATDATA
;
1332 [out, size_is(celt
), length_is(*pceltFetched
)]
1334 [out] ULONG
*pceltFetched
);
1339 [out, size_is(celt
), length_is(*pceltFetched
)]
1341 [out] ULONG
*pceltFetched
);
1349 [out] IEnumSTATDATA
**ppenum
);
1354 uuid(0000010f
-0000-0000-C000
-000000000046),
1355 pointer_default(unique)
1357 interface IAdviseSink
: IUnknown
1359 typedef IAdviseSink
*LPADVISESINK
;
1361 typedef [v1_enum] enum tagTYMED
{
1372 typedef struct tagRemSTGMEDIUM
{
1375 unsigned long pData
;
1376 unsigned long pUnkForRelease
;
1377 unsigned long cbData
;
1378 [size_is(cbData
)] byte data
[];
1381 /* FIXME: C/C++ nameless union version */
1382 typedef struct tagSTGMEDIUM
{
1384 [switch_is(tymed
)] union {
1385 [case(TYMED_GDI
)] HBITMAP hBitmap;
1386 [case(TYMED_MFPICT
)] HMETAFILEPICT hMetaFilePict
;
1387 [case(TYMED_ENHMF
)] HENHMETAFILE hEnhMetaFile;
1388 [case(TYMED_HGLOBAL
)] HGLOBAL hGlobal;
1389 [case(TYMED_FILE
)] LPOLESTR lpszFileName
;
1390 [case(TYMED_ISTREAM
)] IStream
*pstm
;
1391 [case(TYMED_ISTORAGE
)] IStorage
*pstg
;
1394 [unique] IUnknown
*pUnkForRelease
;
1397 /* copied from wingdi.h */
1401 #define OBJ_METADC
4
1404 #define OBJ_BITMAP
7
1405 #define OBJ_REGION
8
1406 #define OBJ_METAFILE
9
1407 #define OBJ_MEMDC
10
1408 #define OBJ_EXTPEN
11
1409 #define OBJ_ENHMETADC
12
1410 #define OBJ_ENHMETAFILE
13
1412 typedef union _GDI_OBJECT
switch(DWORD ObjectType
) u
{
1413 case OBJ_BITMAP
: wireHBITMAP
hBitmap;
1414 case OBJ_PAL
: wireHPALETTE
hPalette;
1415 default: wireHGLOBAL hGeneric
;
1418 typedef struct _userSTGMEDIUM
{
1419 union switch(DWORD tymed
) u
{
1421 case TYMED_MFPICT
: wireHMETAFILEPICT hMetaFilePict
;
1422 case TYMED_ENHMF
: wireHENHMETAFILE hHEnhMetaFile
;
1423 case TYMED_GDI
: GDI_OBJECT
*hGdiHandle
;
1424 case TYMED_HGLOBAL
: wireHGLOBAL
hGlobal;
1425 case TYMED_FILE
: LPOLESTR lpszFileName
;
1426 case TYMED_ISTREAM
: BYTE_BLOB
*pstm
;
1427 case TYMED_ISTORAGE
: BYTE_BLOB
*pstg
;
1429 IUnknown
*pUnkForRelease
;
1432 typedef [unique] userSTGMEDIUM
*wireSTGMEDIUM
;
1433 typedef [wire_marshal(wireSTGMEDIUM
)] uSTGMEDIUM STGMEDIUM
;
1435 typedef [unique] userSTGMEDIUM
*wireASYNC_STGMEDIUM
;
1436 typedef [wire_marshal(wireASYNC_STGMEDIUM
)] STGMEDIUM ASYNC_STGMEDIUM
;
1438 typedef STGMEDIUM
*LPSTGMEDIUM
;
1440 typedef struct _userFLAG_STGMEDIUM
{
1442 long fPassOwnership
;
1443 userSTGMEDIUM Stgmed
;
1444 } userFLAG_STGMEDIUM
;
1446 typedef [unique] userFLAG_STGMEDIUM
*wireFLAG_STGMEDIUM
;
1448 typedef [wire_marshal(wireFLAG_STGMEDIUM
)] struct _FLAG_STGMEDIUM
{
1450 long fPassOwnership
;
1456 [in, unique] FORMATETC
*pFormatetc
,
1457 [in, unique] STGMEDIUM
*pStgmed
);
1459 [call_as
(OnDataChange
)]
1460 HRESULT RemoteOnDataChange
(
1461 [in, unique] FORMATETC
*pFormatetc
,
1462 [in, unique] ASYNC_STGMEDIUM
*pStgmed
);
1466 [in] DWORD dwAspect
,
1469 [call_as
(OnViewChange
)]
1470 HRESULT RemoteOnViewChange
(
1471 [in] DWORD dwAspect
,
1476 [in] IMoniker
*pmk
);
1479 HRESULT RemoteOnRename
(
1480 [in] IMoniker
*pmk
);
1486 HRESULT RemoteOnSave
();
1492 HRESULT RemoteOnClose
();
1497 uuid(00000125-0000-0000-C000
-000000000046),
1498 pointer_default(unique)
1500 interface IAdviseSink2
: IAdviseSink
1502 typedef [unique] IAdviseSink2
*LPADVISESINK2
;
1505 void OnLinkSrcChange
(
1506 [in, unique] IMoniker
*pmk
);
1508 [call_as
(OnLinkSrcChange
)]
1509 HRESULT RemoteOnLinkSrcChange
(
1510 [in, unique] IMoniker
*pmk
);
1515 uuid(0000010e-0000-0000-C000
-000000000046),
1516 pointer_default(unique)
1518 interface IDataObject
: IUnknown
1520 typedef [unique] IDataObject
*LPDATAOBJECT
;
1522 typedef enum tagDATADIR
{
1529 [in, unique] FORMATETC
*pformatetcIn
,
1530 [out] STGMEDIUM
*pmedium
);
1533 HRESULT RemoteGetData
(
1534 [in, unique] FORMATETC
*pformatetcIn
,
1535 [out] STGMEDIUM
*pRemoteMedium
);
1538 HRESULT GetDataHere
(
1539 [in, unique] FORMATETC
*pformatetc
,
1540 [in, out] STGMEDIUM
*pmedium
);
1542 [call_as
(GetDataHere
)]
1543 HRESULT RemoteGetDataHere
(
1544 [in, unique] FORMATETC
*pformatetc
,
1545 [in, out] STGMEDIUM
*pRemoteMedium
);
1547 HRESULT QueryGetData
(
1548 [in, unique] FORMATETC
*pformatetc
);
1550 HRESULT GetCanonicalFormatEtc
(
1551 [in, unique] FORMATETC
*pformatectIn
,
1552 [out] FORMATETC
*pformatetcOut
);
1556 [in, unique] FORMATETC
*pformatetc
,
1557 [in, unique] STGMEDIUM
*pmedium
,
1558 [in] BOOL fRelease
);
1561 HRESULT RemoteSetData
(
1562 [in, unique] FORMATETC
*pformatetc
,
1563 [in, unique] FLAG_STGMEDIUM
*pmedium
,
1564 [in] BOOL fRelease
);
1566 HRESULT EnumFormatEtc
(
1567 [in] DWORD dwDirection
,
1568 [out] IEnumFORMATETC
**ppenumFormatEtc
);
1571 [in] FORMATETC
*pformatetc
,
1573 [in, unique] IAdviseSink
*pAdvSink
,
1574 [out] DWORD
*pdwConnection
);
1577 [in] DWORD dwConnection
);
1579 HRESULT EnumDAdvise
(
1580 [out] IEnumSTATDATA
**ppenumAdvise
);
1586 uuid(00000110-0000-0000-C000
-000000000046)
1588 interface IDataAdviseHolder
: IUnknown
1590 typedef [unique] IDataAdviseHolder
*LPDATAADVISEHOLDER
;
1593 [in, unique] IDataObject
*pDataObject
,
1594 [in, unique] FORMATETC
*pFetc
,
1596 [in, unique] IAdviseSink
*pAdvise
,
1597 [out] DWORD
*pdwConnection
);
1600 [in] DWORD dwConnection
);
1603 [out] IEnumSTATDATA
**ppenumAdvise
);
1605 HRESULT SendOnDataChange
(
1606 [in, unique] IDataObject
*pDataObject
,
1607 [in] DWORD dwReserved
,
1611 /******************** Remoting ********************/
1616 uuid(00000016-0000-0000-C000
-000000000046)
1618 interface IMessageFilter
: IUnknown
1620 typedef [unique] IMessageFilter
*LPMESSAGEFILTER
;
1622 typedef enum tagCALLTYPE
{
1623 CALLTYPE_TOPLEVEL
= 1,
1624 CALLTYPE_NESTED
= 2,
1626 CALLTYPE_TOPLEVEL_CALLPENDING
= 4,
1627 CALLTYPE_ASYNC_CALLPENDING
= 5
1630 typedef enum tagSERVERCALL
{
1631 SERVERCALL_ISHANDLED
= 0,
1632 SERVERCALL_REJECTED
= 1,
1633 SERVERCALL_RETRYLATER
= 2
1636 typedef enum tagPENDINGTYPE
{
1637 PENDINGTYPE_TOPLEVEL
= 1,
1638 PENDINGTYPE_NESTED
= 2
1641 typedef enum tagPENDINGMSG
{
1642 PENDINGMSG_CANCELCALL
= 0,
1643 PENDINGMSG_WAITNOPROCESS
= 1,
1644 PENDINGMSG_WAITDEFPROCESS
= 2
1647 typedef struct tagINTERFACEINFO
{
1651 } INTERFACEINFO
, *LPINTERFACEINFO
;
1653 DWORD HandleInComingCall
(
1654 [in] DWORD dwCallType
,
1655 [in] HTASK htaskCaller
,
1656 [in] DWORD dwTickCount
,
1657 [in] LPINTERFACEINFO lpInterfaceInfo
);
1659 DWORD RetryRejectedCall
(
1660 [in] HTASK htaskCallee
,
1661 [in] DWORD dwTickCount
,
1662 [in] DWORD dwRejectType
);
1664 DWORD MessagePending
(
1665 [in] HTASK htaskCallee
,
1666 [in] DWORD dwTickCount
,
1667 [in] DWORD dwPendingType
);
1673 uuid(D5F56B60
-593B
-101A
-B569
-08002B2DBF7A
)
1675 interface IRpcChannelBuffer
: IUnknown
1677 typedef [unique] IRpcChannelBuffer
*LPRPCCHANNELBUFFER
;
1679 typedef unsigned long RPCOLEDATAREP
;
1681 typedef struct tagRPCOLEMESSAGE
{
1683 RPCOLEDATAREP dataRepresentation
;
1691 typedef RPCOLEMESSAGE
*PRPCOLEMESSAGE
;
1694 [in] RPCOLEMESSAGE
*pMessage
,
1697 HRESULT SendReceive
(
1698 [in,out] RPCOLEMESSAGE
*pMessage
,
1699 [out] ULONG
*pStatus
);
1702 [in] RPCOLEMESSAGE
*pMessage
);
1705 [out] DWORD
*pdwDestContext
,
1706 [out] void **ppvDestContext
);
1708 HRESULT IsConnected
();
1714 uuid(594f31d0
-7f19
-11d0
-b194
-00a0c90dc8bf
)
1716 interface IRpcChannelBuffer2
: IRpcChannelBuffer
1718 typedef [unique] IRpcChannelBuffer2
*LPRPCCHANNELBUFFER2
;
1720 HRESULT GetProtocolVersion
(
1721 [in,out] DWORD
*pdwVersion
);
1727 uuid(25B15600
-0115-11d0
-BF0D
-00AA00B8DFD2
)
1729 interface IRpcChannelBuffer3
: IRpcChannelBuffer2
1731 typedef [unique] IRpcChannelBuffer3
*LPRPCCHANNELBUFFER3
;
1734 [in,out] RPCOLEMESSAGE
*pMsg
,
1735 [out] ULONG
*pulStatus
);
1738 [in,out] RPCOLEMESSAGE
*pMsg
,
1740 [out] ULONG
*pulStatus
);
1743 [in] RPCOLEMESSAGE
*pMsg
);
1745 HRESULT GetCallContext
(
1746 [in] RPCOLEMESSAGE
*pMsg
,
1748 [out] void **pInterface
);
1750 HRESULT GetDestCtxEx
(
1751 [in] RPCOLEMESSAGE
*pMsg
,
1752 [out] DWORD
*pdwDestContext
,
1753 [out] void **ppvDestContext
);
1756 [in] RPCOLEMESSAGE
*pMsg
,
1757 [out] DWORD
*pState
);
1759 HRESULT RegisterAsync
(
1760 [in] RPCOLEMESSAGE
*pMsg
,
1761 [in] IAsyncManager
*pAsyncMgr
);
1767 uuid(a5029fb6
-3c34
-11d1
-9c99
-00c04fb998aa
),
1768 pointer_default(unique)
1770 interface IAsyncRpcChannelBuffer
: IRpcChannelBuffer2
1773 [in, out] RPCOLEMESSAGE
*pMsg
,
1774 [in] ISynchronize
*pSync
,
1775 [out] ULONG
*pulStatus
);
1778 [in, out] RPCOLEMESSAGE
*pMsg
,
1779 [out] ULONG
*pulStatus
);
1781 HRESULT GetDestCtxEx
(
1782 [in] RPCOLEMESSAGE
*pMsg
,
1783 [out] DWORD
*pdwDestContext
,
1784 [out] void **ppvDestContext
);
1790 uuid(58a08519
-24c8
-4935-b482
-3fd823333a4f
)
1792 interface IRpcSyntaxNegotiate
: IUnknown
1794 HRESULT NegotiateSyntax
(
1795 [in, out] RPCOLEMESSAGE
*pMsg
);
1801 uuid(D5F56A34
-593B
-101A
-B569
-08002B2DBF7A
)
1803 interface IRpcProxyBuffer
: IUnknown
1805 typedef [unique] IRpcProxyBuffer
*LPRPCPROXYBUFFER
;
1808 [in, unique] IRpcChannelBuffer
*pRpcChannelBuffer
);
1816 uuid(D5F56AFC
-593B
-101A
-B569
-08002B2DBF7A
)
1818 interface IRpcStubBuffer
: IUnknown
1820 typedef [unique] IRpcStubBuffer
*LPRPCSTUBBUFFER
;
1823 [in] IUnknown
*pUnkServer
);
1828 [in] RPCOLEMESSAGE
*_prpcmsg
,
1829 [in] IRpcChannelBuffer
*_pRpcChannelBuffer
);
1831 IRpcStubBuffer
*IsIIDSupported
(
1836 HRESULT DebugServerQueryInterface
(
1839 void DebugServerRelease
(
1846 uuid(D5F569D0
-593B
-101A
-B569
-08002B2DBF7A
)
1848 interface IPSFactoryBuffer
: IUnknown
1850 typedef [unique] IPSFactoryBuffer
*LPPSFACTORYBUFFER
;
1852 HRESULT CreateProxy
(
1853 [in] IUnknown
*pUnkOuter
,
1855 [out] IRpcProxyBuffer
**ppProxy
,
1860 [in, unique] IUnknown
*pUnkServer
,
1861 [out] IRpcStubBuffer
**ppStub
);
1867 uuid(1008c4a0
-7613-11cf
-9af1
-0020af6e72f4
)
1869 interface IChannelHook
: IUnknown
1871 typedef [unique] IChannelHook
*LPCHANNELHOOK
;
1873 typedef struct SChannelHookCallInfo
{
1880 } SChannelHookCallInfo
;
1883 [in] REFGUID uExtent
,
1885 [out] ULONG
*pDataSize
);
1887 void ClientFillBuffer
(
1888 [in] REFGUID uExtent
,
1890 [in, out] ULONG
*pDataSize
,
1891 [in] void *pDataBuffer
);
1894 [in] REFGUID uExtent
,
1896 [in] ULONG cbDataSize
,
1897 [in] void *pDataBuffer
,
1898 [in] DWORD lDataRep
,
1899 [in] HRESULT hrFault
);
1902 [in] REFGUID uExtent
,
1904 [in] ULONG cbDataSize
,
1905 [in] void *pDataBuffer
,
1906 [in] DWORD lDataRep
);
1909 [in] REFGUID uExtent
,
1911 [in] HRESULT hrFault
,
1912 [out] ULONG
*pDataSize
);
1914 void ServerFillBuffer
(
1915 [in] REFGUID uExtent
,
1917 [in, out] ULONG
*pDataSize
,
1918 [in] void *pDataBuffer
,
1919 [in] HRESULT hrFault
);
1922 extern
const FMTID FMTID_SummaryInformation
;
1923 extern
const FMTID FMTID_DocSummaryInformation
;
1924 extern
const FMTID FMTID_UserDefinedProperties
;
1927 /******************** Connection Points ********************/
1930 /******************** DCOM ********************/
1935 uuid(0000013D
-0000-0000-C000
-000000000046)
1937 interface IClientSecurity
: IUnknown
1939 typedef struct tagSOLE_AUTHENTICATION_SERVICE
{
1942 OLECHAR
*pPrincipalName
;
1944 } SOLE_AUTHENTICATION_SERVICE
;
1946 typedef SOLE_AUTHENTICATION_SERVICE
*PSOLE_AUTHENTICATION_SERVICE
;
1948 typedef struct tagSOLE_AUTHENTICATION_INFO
{
1952 } SOLE_AUTHENTICATION_INFO
;
1954 typedef struct tagSOLE_AUTHENTICATION_LIST
{
1956 SOLE_AUTHENTICATION_INFO
*aAuthInfo
;
1957 } SOLE_AUTHENTICATION_LIST
;
1959 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES
{
1961 EOAC_MUTUAL_AUTH
= 0x1,
1962 EOAC_SECURE_REFS
= 0x2, /* CoInitializeSecurity only */
1963 EOAC_ACCESS_CONTROL
= 0x4, /* CoInitializeSecurity only */
1964 EOAC_APPID
= 0x8, /* CoInitializeSecurity only */
1965 EOAC_DYNAMIC
= 0x10, /* CoInitializeSecurity only */
1966 EOAC_STATIC_CLOAKING
= 0x20,
1967 EOAC_DYNAMIC_CLOAKING
= 0x40,
1968 EOAC_ANY_AUTHORITY
= 0x80,
1969 EOAC_MAKE_FULLSIC
= 0x100,
1970 EOAC_REQUIRE_FULLSIC
= 0x200, /* CoInitializeSecurity only */
1971 EOAC_AUTO_IMPERSONATE
= 0x400, /* CoInitializeSecurity only */
1972 EOAC_DEFAULT
= 0x800,
1973 EOAC_DISABLE_AAA
= 0x1000, /* CoInitializeSecurity only */
1974 EOAC_NO_CUSTOM_MARSHAL
= 0x2000, /* CoInitializeSecurity only */
1975 } EOLE_AUTHENTICATION_CAPABILITIES
;
1977 HRESULT QueryBlanket
(
1978 [in] IUnknown
*pProxy
,
1979 [out] DWORD
*pAuthnSvc
,
1980 [out] DWORD
*pAuthzSvc
,
1981 [out] OLECHAR
**pServerPrincName
,
1982 [out] DWORD
*pAuthnLevel
,
1983 [out] DWORD
*pImpLevel
,
1984 [out] void **pAuthInfo
,
1985 [out] DWORD
*pCapabilities
);
1988 [in] IUnknown
*pProxy
,
1989 [in] DWORD AuthnSvc
,
1990 [in] DWORD AuthzSvc
,
1991 [in] OLECHAR
*pServerPrincName
,
1992 [in] DWORD AuthnLevel
,
1993 [in] DWORD ImpLevel
,
1994 [in] void *pAuthInfo
,
1995 [in] DWORD Capabilities
);
1998 [in] IUnknown
*pProxy
,
1999 [out] IUnknown
**ppCopy
);
2005 uuid(0000013E-0000-0000-C000
-000000000046)
2007 interface IServerSecurity
: IUnknown
2009 HRESULT QueryBlanket
(
2010 [out] DWORD
*pAuthnSvc
,
2011 [out] DWORD
*pAuthzSvc
,
2012 [out] OLECHAR
**pServerPrincName
,
2013 [out] DWORD
*pAuthnLevel
,
2014 [out] DWORD
*pImpLevel
,
2015 [out] void **pPrivs
,
2016 [out] DWORD
*pCapabilities
);
2018 HRESULT ImpersonateClient
();
2020 HRESULT RevertToSelf
();
2022 BOOL IsImpersonating
();
2028 uuid(00000024-0000-0000-C000
-000000000046)
2030 interface IAsyncSetup
: IUnknown
2032 HRESULT GetAsyncManager
(
2034 [in] IUnknown
*pOuter
,
2036 [out] IUnknown
**ppInner
,
2037 [out] IAsyncManager
**ppAsyncMgr
);
2042 uuid(0e6d4d92
-6738-11cf
-9608-00aa00680db4
)
2044 interface IDirectWriterLock
: IUnknown
2046 HRESULT WaitForWriteAccess
(
2047 [in] DWORD dwTimeout
);
2049 HRESULT ReleaseWriteAccess
();
2051 HRESULT HaveWriteAccess
();
2056 uuid(00000030-0000-0000-C000
-000000000046)
2059 interface ISynchronize
: IUnknown
2063 [in] DWORD dwMilliseconds
);
2074 uuid(00000031-0000-0000-C000
-000000000046)
2076 interface ISynchronizeHandle
: IUnknown
2086 uuid(00000032-0000-0000-C000
-000000000046)
2088 interface ISynchronizeEvent
: ISynchronizeHandle
2090 HRESULT SetEventHandle
(
2098 uuid(00000033-0000-0000-C000
-000000000046)
2100 interface ISynchronizeContainer
: IUnknown
2102 HRESULT AddSynchronize
(
2103 [in] ISynchronize
*pSync
);
2105 HRESULT WaitMultiple
(
2107 [in] DWORD dwTimeOut
,
2108 [out] ISynchronize
**ppSync
);
2114 uuid(00000025-0000-0000-C000
-000000000046)
2116 interface ISynchronizeMutex
: ISynchronize
2118 HRESULT ReleaseMutex
();
2124 uuid(00000029-0000-0000-C000
-000000000046)
2127 interface ICancelMethodCalls
: IUnknown
2129 typedef [unique] ICancelMethodCalls
*LPCANCELMETHODCALLS
;
2132 [in] ULONG ulSeconds
);
2134 HRESULT TestCancel
();
2140 uuid(0000002A
-0000-0000-C000
-000000000046)
2142 interface IAsyncManager
: IUnknown
2144 typedef enum tagDCOM_CALL_STATE
{
2146 DCOM_CALL_COMPLETE
= 1,
2147 DCOM_CALL_CANCELED
= 2
2150 HRESULT CompleteCall
(
2151 [in] HRESULT Result
);
2153 HRESULT GetCallContext
(
2155 [out] void **pInterface
);
2158 [out] ULONG
*pulStateFlags
);
2164 uuid(1c733a30
-2a1c
-11ce
-ade5
-00aa0044773d
),
2165 pointer_default(unique)
2167 interface ICallFactory
: IUnknown
2171 [in] IUnknown
*pCtrlUnk
,
2173 [out, iid_is(riid2
)] IUnknown
**ppv
);
2179 uuid(00000144-0000-0000-C000
-000000000046)
2181 interface IRpcOptions
: IUnknown
2184 [in] IUnknown
*pPrx
,
2185 [in] DWORD dwProperty
,
2186 [in] ULONG_PTR dwValue
);
2189 [in] IUnknown
*pPrx
,
2190 [in] DWORD dwProperty
,
2191 [out] ULONG_PTR
*pdwValue
);
2195 COMBND_RPCTIMEOUT
= 1,
2196 COMBND_SERVER_LOCALITY
= 2
2200 SERVER_LOCALITY_PROCESS_LOCAL
= 0,
2201 SERVER_LOCALITY_MACHINE_LOCAL
= 1,
2202 SERVER_LOCALITY_REMOTE
= 2
2208 uuid(00000149-0000-0000-C000
-000000000046),
2209 pointer_default(unique)
2211 interface IRpcHelper
: IUnknown
2213 HRESULT GetDCOMProtocolVersion
(
2214 [out] DWORD
*pComVersion
);
2216 HRESULT GetIIDFromOBJREF
(
2224 uuid(eb0cb9e8
-7996-11d2
-872e-0000f8080859
)
2226 interface IReleaseMarshalBuffers
: IUnknown
2228 HRESULT ReleaseMarshalBuffer
(
2229 [in] RPCOLEMESSAGE
*pMsg
,
2231 [in, unique] IUnknown
*pChnl
);
2237 uuid(0000002B
-0000-0000-C000
-000000000046)
2239 interface IWaitMultiple
: IUnknown
2241 HRESULT WaitMultiple
(
2243 [out] ISynchronize
**pSync
);
2244 HRESULT AddSynchronize
(
2245 [in] ISynchronize
*pSync
);
2251 uuid(00000026-0000-0000-C000
-000000000046)
2253 interface IUrlMon
: IUnknown
2255 HRESULT AsyncGetClassBits
(
2256 [in] REFCLSID rclsid
,
2257 [in, unique] LPCWSTR pszTYPE
,
2258 [in, unique] LPCWSTR pszExt
,
2259 [in] DWORD dwFileVersionMS
,
2260 [in] DWORD dwFileVersionLS
,
2261 [in, unique] LPCWSTR pszCodeBase
,
2263 [in] DWORD dwClassContext
,
2271 uuid(00000145-0000-0000-C000
-000000000046)
2273 interface IForegroundTransfer
: IUnknown
2275 HRESULT AllowForegroundTransfer
(
2276 [in] void *lpvReserved
);
2282 uuid(00000147-0000-0000-C000
-000000000046)
2284 interface IAddrTrackingControl
: IUnknown
2286 typedef [unique] IAddrTrackingControl
*LPADDRTRACKINGCONTROL
;
2288 HRESULT EnableCOMDynamicAddrTracking
();
2289 HRESULT DisableCOMDynamicAddrTracking
();
2295 uuid(00000148-0000-0000-C000
-000000000046)
2297 interface IAddrExclusionControl
: IUnknown
2299 typedef [unique] IAddrExclusionControl
*LPADDREXCLUSIONCONTROL
;
2301 HRESULT GetCurrentAddrExclusionList
(
2303 [out, iid_is(riid
)] void **ppEnumerator
);
2304 HRESULT UpdateAddrExclusionList
(
2305 [in] IUnknown
*pEnumerator
);
2308 typedef enum _APTTYPE
{
2309 APTTYPE_CURRENT
= -1,
2316 typedef enum _THDTYPE
{
2317 THDTYPE_BLOCKMESSAGES
= 0,
2318 THDTYPE_PROCESSMESSAGES
= 1
2324 uuid(000001ce
-0000-0000-C000
-000000000046),
2325 pointer_default(unique)
2327 interface IComThreadingInfo
: IUnknown
2329 HRESULT GetCurrentApartmentType
(
2330 [out] APTTYPE
*pAptType
);
2331 HRESULT GetCurrentThreadType
(
2332 [out] THDTYPE
*pThreadType
);
2333 HRESULT GetCurrentLogicalThreadId
(
2334 [out] GUID
*pguidLogicalThreadId
);
2335 HRESULT SetCurrentLogicalThreadId
(
2336 [in] REFGUID rguid
);
2342 pointer_default(unique),
2343 uuid(72380d55
-8d2b
-43a3
-8513-2b6ef31434e9
)
2345 interface IProcessInitControl
: IUnknown
2347 HRESULT ResetInitializerTimeout
(
2348 [in] DWORD dwSecondsRemaining
);
2354 uuid(00000034-0000-0000-C000
-000000000046),
2355 pointer_default(unique)
2357 interface IInitializeSpy
: IUnknown
2359 typedef [unique] IInitializeSpy
*LPINITIALIZESPY
;
2361 HRESULT PreInitialize
(
2362 [in] DWORD dwCoInit
,
2363 [in] DWORD dwCurThreadAptRefs
);
2365 HRESULT PostInitialize
(
2366 [in] HRESULT hrCoInit
,
2367 [in] DWORD dwCoInit
,
2368 [in] DWORD dwNewThreadAptRefs
);
2370 HRESULT PreUninitialize
(
2371 [in] DWORD dwCurThreadAptRefs
);
2373 HRESULT PostUninitialize
(
2374 [in] DWORD dwNewThreadAptRefs
);
2379 uuid(969dc708
-5c76
-11d1
-8d86
-0000f804b057
)
2381 interface IThumbnailExtractor
: IUnknown
2383 HRESULT ExtractThumbnail
(
2384 [in] IStorage
*pStg
,
2385 [in] ULONG ulLength
,
2386 [in] ULONG ulHeight
,
2387 [out] ULONG
*pulOutputLength
,
2388 [out] ULONG
*pulOutputHeight
,
2389 [out] HBITMAP *phOutputBitmap
);
2392 HRESULT OnFileUpdated
(
2393 [in] IStorage
*pStg
);
2397 cpp_quote
("#ifdef USE_COM_CONTEXT_DEF")
2399 typedef DWORD CPFLAGS
;
2401 typedef struct tagContextProperty
2405 [unique] IUnknown
*pUnk
;
2411 uuid(000001c1
-0000-0000-C000
-000000000046)
2413 interface IEnumContextProps
: IUnknown
2415 typedef [unique] IEnumContextProps
*LPENUMCONTEXTPROPS
;
2419 [out, size_is(celt
), length_is(*pceltFetched
)] ContextProperty
*pContextProperties
,
2420 [out] ULONG
*pceltFetched
);
2428 [out] IEnumContextProps
**ppEnumContextProps
);
2431 [out] ULONG
*pcelt
);
2437 uuid(000001c0
-0000-0000-C000
-000000000046)
2439 interface IContext
: IUnknown
2441 HRESULT SetProperty
(
2442 [in] REFGUID policyId
,
2444 [in] IUnknown
*pUnk
);
2446 HRESULT RemovePropert
(
2447 [in] REFGUID policyId
);
2449 HRESULT GetProperty
(
2451 [out] CPFLAGS
*pFlags
,
2452 [out] IUnknown
**ppUnk
);
2454 HRESULT EnumContextProps
(
2455 [out] IEnumContextProps
**ppEnumContextProps
);
2458 cpp_quote
("#endif /* defined USE_COM_CONTEXT_DEF */")