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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 interface IEnumString
;
23 interface IRunningObjectTable
;
25 interface IAdviseSink
;
26 interface IAsyncManager
;
27 interface ISynchronize
;
29 typedef struct _COSERVERINFO
{
32 COAUTHINFO
*pAuthInfo
;
36 /******************** Fundamentals ********************/
41 uuid(00000003-0000-0000-C000
-000000000046)
43 interface IMarshal
: IUnknown
45 typedef [unique] IMarshal
*LPMARSHAL
;
47 HRESULT GetUnmarshalClass
(
49 [in, unique] void *pv
,
50 [in] DWORD dwDestContext
,
51 [in, unique] void *pvDestContext
,
55 HRESULT GetMarshalSizeMax
(
57 [in, unique] void *pv
,
58 [in] DWORD dwDestContext
,
59 [in, unique] void *pvDestContext
,
63 HRESULT MarshalInterface
(
64 [in, unique] IStream
*pStm
,
66 [in, unique] void *pv
,
67 [in] DWORD dwDestContext
,
68 [in, unique] void *pvDestContext
,
69 [in] DWORD mshlflags
);
71 HRESULT UnmarshalInterface
(
72 [in, unique] IStream
*pStm
,
76 HRESULT ReleaseMarshalData
(
77 [in, unique] IStream
*pStm
);
79 HRESULT DisconnectObject
(
80 [in] DWORD dwReserved
);
86 uuid(000001cf
-0000-0000-C000
-000000000046)
88 interface IMarshal2
: IMarshal
90 typedef [unique] IMarshal2
*LPMARSHAL2
;
96 uuid(00000018-0000-0000-C000
-000000000046)
98 interface IStdMarshalInfo
: IUnknown
100 typedef [unique] IStdMarshalInfo
*LPSTDMARSHALINFO
;
102 HRESULT GetClassForHandler
(
103 [in] DWORD dwDestContext
,
104 [in, unique] void *pvDestContext
,
105 [out] CLSID
*pClsid
);
111 uuid(00000019-0000-0000-C000
-000000000046)
113 interface IExternalConnection
: IUnknown
115 typedef [unique] IExternalConnection
*LPEXTERNALCONNECTION
;
117 typedef enum tagEXTCONN
{
118 EXTCONN_STRONG
= 0x0001,
119 EXTCONN_WEAK
= 0x0002,
120 EXTCONN_CALLABLE
= 0x0004
125 [in] DWORD reserved
);
127 DWORD ReleaseConnection
(
130 [in] BOOL fLastReleaseCloses
);
136 uuid(00000020-0000-0000-C000
-000000000046)
138 interface IMultiQI
: IUnknown
140 typedef [unique] IMultiQI
*LPMULTIQI
;
142 typedef struct tagMULTI_QI
{
148 HRESULT QueryMultipleInterfaces
(
150 [in, out] MULTI_QI
*pMQIs
);
156 uuid(00000002-0000-0000-C000
-000000000046)
158 interface IMalloc
: IUnknown
160 typedef [unique] IMalloc
*LPMALLOC
;
175 int DidAlloc
(LPVOID pv
);
183 uuid(0000001d
-0000-0000-C000
-000000000046)
185 interface IMallocSpy
: IUnknown
187 typedef [unique] IMallocSpy
*LPMALLOCSPY
;
190 [in] ULONG cbRequest
);
193 [in] LPVOID pActual
);
196 [in] LPVOID pRequest
,
203 [in] LPVOID pRequest
,
204 [in] ULONG cbRequest
,
205 [out] LPVOID
*ppNewRequest
,
213 [in] LPVOID pRequest
,
221 [in] LPVOID pRequest
,
225 [in] LPVOID pRequest
,
229 void PreHeapMinimize
();
231 void PostHeapMinimize
();
237 uuid(00000021-0000-0000-C000
-000000000046)
239 interface IInternalUnknown
: IUnknown
241 HRESULT QueryInternalInterface
(
248 uuid(00000100-0000-0000-C000
-000000000046),
249 pointer_default(unique)
251 interface IEnumUnknown
: IUnknown
253 typedef [unique] IEnumUnknown
*LPENUMUNKNOWN
;
258 [out] IUnknown
**rgelt
,
259 [out] ULONG
*pceltFetched
);
264 [out, size_is(celt
), length_is(*pceltFetched
)]
266 [out] ULONG
*pceltFetched
);
274 [out] IEnumUnknown
**ppenum
);
279 uuid(00000022-0000-0000-C000
-000000000046),
281 pointer_default(unique)
283 interface ISurrogate
: IUnknown
285 typedef [unique] ISurrogate
*LPSURROGATE
;
287 HRESULT LoadDllServer
(
288 [in] REFCLSID Clsid
);
289 HRESULT FreeSurrogate
();
295 uuid(00000146-0000-0000-C000
-000000000046)
297 interface IGlobalInterfaceTable
: IUnknown
299 typedef [unique] IGlobalInterfaceTable
*LPGLOBALINTERFACETABLE
;
301 HRESULT RegisterInterfaceInGlobal
(
304 [out] DWORD
*pdwCookie
);
306 HRESULT RevokeInterfaceFromGlobal
(
307 [in] DWORD dwCookie
);
309 HRESULT GetInterfaceFromGlobal
(
312 [out, iid_is(riid
)] void **ppv
);
315 /******************** Monikers ********************/
319 uuid(0000000e-0000-0000-C000
-000000000046),
320 pointer_default(unique)
322 interface IBindCtx
: IUnknown
324 typedef [unique] IBindCtx
*LPBINDCTX
;
325 typedef [unique] IBindCtx
*LPBC
;
327 typedef struct tagBIND_OPTS
{
331 DWORD dwTickCountDeadline
;
332 } BIND_OPTS
, *LPBIND_OPTS
;
334 /* FIXME: C++ crap */
335 typedef struct tagBIND_OPTS2
{
339 DWORD dwTickCountDeadline
;
341 DWORD dwClassContext
;
343 COSERVERINFO
*pServerInfo
;
344 } BIND_OPTS2
, *LPBIND_OPTS2
;
346 typedef enum tagBIND_FLAGS
{
347 BIND_MAYBOTHERUSER
= 1,
348 BIND_JUSTTESTEXISTENCE
= 2
351 HRESULT RegisterObjectBound
(
352 [in, unique] IUnknown
*punk
);
354 HRESULT RevokeObjectBound
(
355 [in, unique] IUnknown
*punk
);
357 HRESULT ReleaseBoundObjects
();
360 HRESULT SetBindOptions
(
361 [in] BIND_OPTS
*pbindopts
);
363 [call_as
(SetBindOptions
)]
364 HRESULT RemoteSetBindOptions
(
365 [in] BIND_OPTS2
*pbindopts
);
368 HRESULT GetBindOptions
(
369 [in, out] BIND_OPTS
*pbindopts
);
371 [call_as
(GetBindOptions
)]
372 HRESULT RemoteGetBindOptions
(
373 [in, out] BIND_OPTS2
*pbindopts
);
375 HRESULT GetRunningObjectTable
(
376 [out] IRunningObjectTable
**pprot
);
378 HRESULT RegisterObjectParam
(
379 [in] LPOLESTR pszKey
,
380 [in, unique] IUnknown
*punk
);
382 HRESULT GetObjectParam
(
383 [in] LPOLESTR pszKey
,
384 [out] IUnknown
**ppunk
);
386 HRESULT EnumObjectParam
(
387 [out] IEnumString
**ppenum
);
389 HRESULT RevokeObjectParam
(
390 [in] LPOLESTR pszKey
);
395 uuid(00000102-0000-0000-C000
-000000000046),
396 pointer_default(unique)
398 interface IEnumMoniker
: IUnknown
400 typedef [unique] IEnumMoniker
*LPENUMMONIKER
;
405 [out, size_is(celt
), length_is(*pceltFetched
)]
407 [out] ULONG
*pceltFetched
);
412 [out, size_is(celt
), length_is(*pceltFetched
)]
414 [out] ULONG
*pceltFetched
);
422 [out] IEnumMoniker
**ppenum
);
427 uuid(00000126-0000-0000-C000
-000000000046)
429 interface IRunnableObject
: IUnknown
431 typedef [unique] IRunnableObject
*LPRUNNABLEOBJECT
;
433 HRESULT GetRunningClass
(
434 [out] LPCLSID lpClsid
);
443 HRESULT RemoteIsRunning
();
447 [in] BOOL fLastUnlockCloses
);
449 HRESULT SetContainedObject
(
450 [in] BOOL fContained
);
453 /* GetObject is defined in wingdi.h as WINELIB_NAME_AW(GetObject),
454 * which resolves to a compilation failure if WINE_NO_UNICODE_MACROS is defined,
455 * but GetObject is used as a valid method name below, so we have
456 * to undefine it in that case */
457 cpp_quote
("#ifdef WINE_NO_UNICODE_MACROS")
458 cpp_quote
("#undef GetObject")
463 uuid(00000010-0000-0000-C000
-000000000046)
465 interface IRunningObjectTable
: IUnknown
467 typedef [unique] IRunningObjectTable
*LPRUNNINGOBJECTTABLE
;
471 [in, unique] IUnknown
*punkObject
,
472 [in, unique] IMoniker
*pmkObjectName
,
473 [out] DWORD
*pdwRegister
);
476 [in] DWORD dwRegister
);
479 [in, unique] IMoniker
*pmkObjectName
);
482 [in, unique] IMoniker
*pmkObjectName
,
483 [out] IUnknown
**ppunkObject
);
485 HRESULT NoteChangeTime
(
486 [in] DWORD dwRegister
,
487 [in] FILETIME
*pfiletime
);
489 HRESULT GetTimeOfLastChange
(
490 [in, unique] IMoniker
*pmkObjectName
,
491 [out] FILETIME
*pfiletime
);
494 [out] IEnumMoniker
**ppenumMoniker
);
499 uuid(0000010c
-0000-0000-C000
-000000000046)
501 interface IPersist
: IUnknown
503 typedef [unique] IPersist
*LPPERSIST
;
506 [out] CLSID
*pClassID
);
511 uuid(00000109-0000-0000-C000
-000000000046),
512 pointer_default(unique)
514 interface IPersistStream
: IPersist
516 typedef [unique] IPersistStream
*LPPERSISTSTREAM
;
521 [in, unique] IStream
*pStm
);
524 [in, unique] IStream
*pStm
,
525 [in] BOOL fClearDirty
);
528 [out] ULARGE_INTEGER
*pcbSize
);
533 uuid(0000000f
-0000-0000-C000
-000000000046),
534 pointer_default(unique)
536 interface IMoniker
: IPersistStream
538 typedef [unique] IMoniker
*LPMONIKER
;
540 typedef enum tagMKSYS
{
542 MKSYS_GENERICCOMPOSITE
= 1,
543 MKSYS_FILEMONIKER
= 2,
544 MKSYS_ANTIMONIKER
= 3,
545 MKSYS_ITEMMONIKER
= 4,
546 MKSYS_POINTERMONIKER
= 5,
547 /* MKSYS_URLMONIKER = 6, */ /* defined in urlmon.idl */
548 MKSYS_CLASSMONIKER
= 7
551 typedef [v1_enum] enum tagMKREDUCE
{
552 MKRREDUCE_ONE
= 3 << 16,
553 MKRREDUCE_TOUSER
= 2 << 16,
554 MKRREDUCE_THROUGHUSER
= 1 << 16,
559 HRESULT BindToObject
(
560 [in, unique] IBindCtx
*pbc
,
561 [in, unique] IMoniker
*pmkToLeft
,
562 [in] REFIID riidResult
,
563 [out, iid_is(riidResult
)] void **ppvResult
);
565 [call_as
(BindToObject
)]
566 HRESULT RemoteBindToObject
(
567 [in, unique] IBindCtx
*pbc
,
568 [in, unique] IMoniker
*pmkToLeft
,
569 [in] REFIID riidResult
,
570 [out, iid_is(riidResult
)] IUnknown
**ppvResult
);
573 HRESULT BindToStorage
(
574 [in, unique] IBindCtx
*pbc
,
575 [in, unique] IMoniker
*pmkToLeft
,
577 [out, iid_is(riid
)] void **ppvObj
);
579 [call_as
(BindToStorage
)]
580 HRESULT RemoteBindToStorage
(
581 [in, unique] IBindCtx
*pbc
,
582 [in, unique] IMoniker
*pmkToLeft
,
584 [out, iid_is(riid
)] IUnknown
**ppvObj
);
587 [in, unique] IBindCtx
*pbc
,
588 [in] DWORD dwReduceHowFar
,
589 [in, out, unique] IMoniker
**ppmkToLeft
,
590 [out] IMoniker
**ppmkReduced
);
593 [in, unique] IMoniker
*pmkRight
,
594 [in] BOOL fOnlyIfNotGeneric
,
595 [out] IMoniker
**ppmkComposite
);
599 [out] IEnumMoniker
**ppenumMoniker
);
602 [in, unique] IMoniker
*pmkOtherMoniker
);
605 [out] DWORD
*pdwHash
);
608 [in, unique] IBindCtx
*pbc
,
609 [in, unique] IMoniker
*pmkToLeft
,
610 [in, unique] IMoniker
*pmkNewlyRunning
);
612 HRESULT GetTimeOfLastChange
(
613 [in, unique] IBindCtx
*pbc
,
614 [in, unique] IMoniker
*pmkToLeft
,
615 [out] FILETIME
*pFileTime
);
618 [out] IMoniker
**ppmk
);
620 HRESULT CommonPrefixWith
(
621 [in, unique] IMoniker
*pmkOther
,
622 [out] IMoniker
**ppmkPrefix
);
624 HRESULT RelativePathTo
(
625 [in, unique] IMoniker
*pmkOther
,
626 [out] IMoniker
**ppmkRelPath
);
628 HRESULT GetDisplayName
(
629 [in, unique] IBindCtx
*pbc
,
630 [in, unique] IMoniker
*pmkToLeft
,
631 [out] LPOLESTR
*ppszDisplayName
);
633 HRESULT ParseDisplayName
(
634 [in, unique] IBindCtx
*pbc
,
635 [in, unique] IMoniker
*pmkToLeft
,
636 [in] LPOLESTR pszDisplayName
,
637 [out] ULONG
*pchEaten
,
638 [out] IMoniker
**ppmkOut
);
640 HRESULT IsSystemMoniker
(
641 [out] DWORD
*pdwMksys
);
646 uuid(f29f6bc0
-5021-11ce
-aa15
-00006901293f
),
647 pointer_default(unique)
649 interface IROTData
: IUnknown
651 HRESULT GetComparisonData
(
652 [out, size_is(cbMax
)] byte *pbData
,
654 [out] ULONG
*pcbData
);
659 uuid(00000101-0000-0000-C000
-000000000046),
660 pointer_default(unique)
662 interface IEnumString
: IUnknown
664 typedef [unique] IEnumString
*LPENUMSTRING
;
669 [out, size_is(celt
), length_is(*pceltFetched
)]
671 [out] ULONG
*pceltFetched
);
676 [out, size_is(celt
), length_is(*pceltFetched
)]
678 [out] ULONG
*pceltFetched
);
686 [out] IEnumString
**ppenum
);
691 uuid(00000140-0000-0000-C000
-000000000046)
693 interface IClassActivator
: IUnknown
695 HRESULT GetClassObject
(
696 [in] REFCLSID rclsid
,
697 [in] DWORD dwClassContext
,
700 [out, iid_is(riid
)] void **ppv
);
703 /******************** Storage ********************/
707 uuid(0c733a30
-2a1c
-11ce
-ade5
-00aa0044773d
),
708 pointer_default(unique)
710 interface ISequentialStream
: IUnknown
714 [out, size_is(cb
), length_is(*pcbRead
)]
717 [out] ULONG
*pcbRead
);
721 [out, size_is(cb
), length_is(*pcbRead
)]
724 [out] ULONG
*pcbRead
);
728 [in, size_is(cb
)] const void *pv
,
730 [out] ULONG
*pcbWritten
);
734 [in, size_is(cb
)] const byte *pv
,
736 [out] ULONG
*pcbWritten
);
741 uuid(0000000c
-0000-0000-C000
-000000000046),
742 pointer_default(unique)
744 interface IStream
: ISequentialStream
746 typedef [unique] IStream
*LPSTREAM
;
748 typedef struct tagSTATSTG
{
751 ULARGE_INTEGER cbSize
;
756 DWORD grfLocksSupported
;
762 typedef enum tagSTGTY
{
769 typedef enum tagSTREAM_SEEK
{
775 /* these are defined in Linux's fcntl.h,
776 * undefine them to avoid conflicts */
777 cpp_quote
("#undef LOCK_MAND")
778 cpp_quote
("#undef LOCK_READ")
779 cpp_quote
("#undef LOCK_WRITE")
780 cpp_quote
("#undef LOCK_RW")
782 typedef enum tagLOCKTYPE
{
790 [in] LARGE_INTEGER dlibMove
,
792 [out] ULARGE_INTEGER
*plibNewPosition
);
796 [in] LARGE_INTEGER dlibMove
,
798 [out] ULARGE_INTEGER
*plibNewPosition
);
801 [in] ULARGE_INTEGER libNewSize
);
805 [in, unique] IStream
*pstm
,
806 [in] ULARGE_INTEGER cb
,
807 [out] ULARGE_INTEGER
*pcbRead
,
808 [out] ULARGE_INTEGER
*pcbWritten
);
811 HRESULT RemoteCopyTo
(
812 [in, unique] IStream
*pstm
,
813 [in] ULARGE_INTEGER cb
,
814 [out] ULARGE_INTEGER
*pcbRead
,
815 [out] ULARGE_INTEGER
*pcbWritten
);
818 [in] DWORD grfCommitFlags
);
823 [in] ULARGE_INTEGER libOffset
,
824 [in] ULARGE_INTEGER cb
,
825 [in] DWORD dwLockType
);
827 HRESULT UnlockRegion
(
828 [in] ULARGE_INTEGER libOffset
,
829 [in] ULARGE_INTEGER cb
,
830 [in] DWORD dwLockType
);
833 [out] STATSTG
*pstatstg
,
834 [in] DWORD grfStatFlag
);
837 [out] IStream
**ppstm
);
842 uuid(0000000d
-0000-0000-C000
-000000000046),
843 pointer_default(unique)
845 interface IEnumSTATSTG
: IUnknown
847 typedef [unique] IEnumSTATSTG
*LPENUMSTATSTG
;
852 [out, size_is(celt
), length_is(*pceltFetched
)]
854 [out] ULONG
*pceltFetched
);
859 [out, size_is(celt
), length_is(*pceltFetched
)]
861 [out] ULONG
*pceltFetched
);
869 [out] IEnumSTATSTG
**ppenum
);
874 uuid(0000000b
-0000-0000-C000
-000000000046),
875 pointer_default(unique)
877 interface IStorage
: IUnknown
879 typedef [unique] IStorage
*LPSTORAGE
;
881 typedef struct tagRemSNB
{
882 unsigned long ulCntStr
;
883 unsigned long ulCntChar
;
884 [size_is(ulCntChar
)] OLECHAR rgString
[];
887 typedef [unique] RemSNB
*wireSNB
;
888 typedef [wire_marshal(wireSNB
)] OLECHAR
**SNB
;
890 HRESULT CreateStream
(
891 [in] LPCOLESTR pwcsName
,
893 [in] DWORD reserved1
,
894 [in] DWORD reserved2
,
895 [out] IStream
**ppstm
);
899 [in] LPCOLESTR pwcsName
,
900 [in, unique] void *reserved1
,
902 [in] DWORD reserved2
,
903 [out] IStream
**ppstm
);
905 [call_as
(OpenStream
)]
906 HRESULT RemoteOpenStream
(
907 [in] LPCOLESTR pwcsName
,
908 [in] unsigned long cbReserved1
,
909 [in, unique, size_is(cbReserved1
)] byte *reserved1
,
911 [in] DWORD reserved2
,
912 [out] IStream
**ppstm
);
914 HRESULT CreateStorage
(
915 [in] LPCOLESTR pwcsName
,
918 [in] DWORD reserved2
,
919 [out] IStorage
**ppstg
);
922 [in, unique] LPCOLESTR pwcsName
,
923 [in, unique] IStorage
*pstgPriority
,
925 [in, unique] SNB snbExclude
,
927 [out] IStorage
**ppstg
);
930 [in] DWORD ciidExclude
,
931 [in, unique, size_is(ciidExclude
)] const IID
*rgiidExclude
,
932 [in, unique] SNB snbExclude
,
933 [in, unique] IStorage
*pstgDest
);
935 HRESULT MoveElementTo
(
936 [in] LPCOLESTR pwcsName
,
937 [in, unique] IStorage
*pstgDest
,
938 [in] LPCOLESTR pwcsNewName
,
939 [in] DWORD grfFlags
);
942 [in] DWORD grfCommitFlags
);
947 HRESULT EnumElements
(
948 [in] DWORD reserved1
,
949 [in, unique, size_is(1)] void *reserved2
,
950 [in] DWORD reserved3
,
951 [out] IEnumSTATSTG
**ppenum
);
953 [call_as
(EnumElements
)]
954 HRESULT RemoteEnumElements
(
955 [in] DWORD reserved1
,
956 [in] unsigned long cbReserved2
,
957 [in, unique, size_is(cbReserved2
)] byte *reserved2
,
958 [in] DWORD reserved3
,
959 [out] IEnumSTATSTG
**ppenum
);
961 HRESULT DestroyElement
(
962 [in] LPCOLESTR pwcsName
);
964 HRESULT RenameElement
(
965 [in] LPCOLESTR pwcsOldName
,
966 [in] LPCOLESTR pwcsNewName
);
968 HRESULT SetElementTimes
(
969 [in, unique] LPCOLESTR pwcsName
,
970 [in, unique] const FILETIME
*pctime
,
971 [in, unique] const FILETIME
*patime
,
972 [in, unique] const FILETIME
*pmtime
);
975 [in] REFCLSID clsid
);
977 HRESULT SetStateBits
(
978 [in] DWORD grfStateBits
,
982 [out] STATSTG
*pstatstg
,
983 [in] DWORD grfStatFlag
);
988 uuid(0000010b
-0000-0000-C000
-000000000046),
989 pointer_default(unique)
991 interface IPersistFile
: IPersist
993 typedef [unique] IPersistFile
*LPPERSISTFILE
;
998 [in] LPCOLESTR pszFileName
,
1002 [in, unique] LPCOLESTR pszFileName
,
1003 [in] BOOL fRemember
);
1005 HRESULT SaveCompleted
(
1006 [in, unique] LPCOLESTR pszFileName
);
1009 [out] LPOLESTR
*ppszFileName
);
1014 uuid(0000010a
-0000-0000-C000
-000000000046),
1015 pointer_default(unique)
1017 interface IPersistStorage
: IPersist
1019 typedef [unique] IPersistStorage
*LPPERSISTSTORAGE
;
1024 [in, unique] IStorage
*pStg
);
1027 [in, unique] IStorage
*pStg
);
1030 [in, unique] IStorage
*pStgSave
,
1031 [in] BOOL fSameAsLoad
);
1033 HRESULT SaveCompleted
(
1034 [in, unique] IStorage
*pStgNew
);
1036 HRESULT HandsOffStorage
();
1041 uuid(00000012-0000-0000-C000
-000000000046),
1042 pointer_default(unique)
1044 interface IRootStorage
: IUnknown
1046 typedef [unique] IRootStorage
*LPROOTSTORAGE
;
1048 HRESULT SwitchToFile
(
1049 [in] LPOLESTR pszFile
);
1054 uuid(0000000a
-0000-0000-C000
-000000000046),
1055 pointer_default(unique)
1057 interface ILockBytes
: IUnknown
1059 typedef [unique] ILockBytes
*LPLOCKBYTES
;
1063 [in] ULARGE_INTEGER ulOffset
,
1064 [out, size_is(cb
), length_is(*pcbRead
)]
1067 [out] ULONG
*pcbRead
);
1070 HRESULT RemoteReadAt
(
1071 [in] ULARGE_INTEGER ulOffset
,
1072 [out, size_is(cb
), length_is(*pcbRead
)]
1075 [out] ULONG
*pcbRead
);
1079 [in] ULARGE_INTEGER ulOffset
,
1080 [in, size_is(cb
)] const void *pv
,
1082 [out] ULONG
*pcbWritten
);
1085 HRESULT RemoteWriteAt
(
1086 [in] ULARGE_INTEGER ulOffset
,
1087 [in, size_is(cb
)] const byte *pv
,
1089 [out] ULONG
*pcbWritten
);
1094 [in] ULARGE_INTEGER cb
);
1097 [in] ULARGE_INTEGER libOffset
,
1098 [in] ULARGE_INTEGER cb
,
1099 [in] DWORD dwLockType
);
1101 HRESULT UnlockRegion
(
1102 [in] ULARGE_INTEGER libOffset
,
1103 [in] ULARGE_INTEGER cb
,
1104 [in] DWORD dwLockType
);
1107 [out] STATSTG
*pstatstg
,
1108 [in] DWORD grfStatFlag
);
1113 uuid(99caf010
-415e-11cf
-8814-00aa00b569f5
),
1114 pointer_default(unique)
1116 interface IFillLockBytes
: IUnknown
1120 [in, size_is(cb
)] const void *pv
,
1122 [out] ULONG
*pcbWritten
);
1124 [call_as
(FillAppend
)]
1125 HRESULT RemoteFillAppend
(
1126 [in, size_is(cb
)] const byte *pv
,
1128 [out] ULONG
*pcbWritten
);
1132 [in] ULARGE_INTEGER ulOffset
,
1133 [in, size_is(cb
)] const void *pv
,
1135 [out] ULONG
*pcbWritten
);
1138 HRESULT RemoteFillAt
(
1139 [in] ULARGE_INTEGER ulOffset
,
1140 [in, size_is(cb
)] const byte *pv
,
1142 [out] ULONG
*pcbWritten
);
1144 HRESULT SetFillSize
(
1145 [in] ULARGE_INTEGER ulSize
);
1148 [in] BOOL bCanceled
);
1153 uuid(a9d758a0
-4617-11cf
-95fc
-00aa00680db4
),
1154 pointer_default(unique)
1156 interface IProgressNotify
: IUnknown
1159 [in] DWORD dwProgressCurrent
,
1160 [in] DWORD dwProgressMaximum
,
1161 [in] BOOL fAccurate
,
1168 uuid(0e6d4d90
-6738-11cf
-9608-00aa00680db4
),
1169 pointer_default(unique)
1171 interface ILayoutStorage
: IUnknown
1173 typedef struct tagStorageLayout
{
1175 OLECHAR
*pwcsElementName
;
1176 LARGE_INTEGER cOffset
;
1177 LARGE_INTEGER cBytes
;
1180 HRESULT LayoutScript
(
1181 [in] StorageLayout
*pStorageLayout
,
1182 [in] DWORD nEntries
,
1183 [in] DWORD glfInterleavedFlag
);
1185 HRESULT BeginMonitor
();
1187 HRESULT EndMonitor
();
1189 HRESULT ReLayoutDocfile
(
1190 [in] OLECHAR
*pwcsNewDfName
);
1192 HRESULT ReLayoutDocfileOnILockBytes
(
1193 [in] ILockBytes
*pILockBytes
);
1198 uuid(30f3d47a
-6447-11d1
-8e3c
-00c04fb9386d
)
1200 interface IBlockingLock
: IUnknown
1203 [in] DWORD dwTimeout
);
1211 uuid(bc0bf6ae
-8878-11d1
-83e9
-00c04fc2c6d4
)
1213 interface ITimeAndNoticeControl
: IUnknown
1215 HRESULT SuppressChanges
(
1225 uuid(8d19c834
-8879-11d1
-83e9
-00c04fc2c6d4
)
1227 interface IOplockStorage
: IUnknown
1229 HRESULT CreateStorageEx
(
1230 [in] LPCWSTR pwcsName
,
1233 [in] DWORD grfAttrs
,
1235 [out, iid_is(riid
)] void **ppstgOpen
);
1237 HRESULT OpenStorageEx
(
1238 [in] LPCWSTR pwcsName
,
1241 [in] DWORD grfAttrs
,
1243 [out, iid_is(riid
)] void **ppstgOpen
);
1246 /******************** Data Object ********************/
1250 uuid(00000103-0000-0000-C000
-000000000046),
1251 pointer_default(unique)
1253 interface IEnumFORMATETC
: IUnknown
1255 typedef [unique] IEnumFORMATETC
*LPENUMFORMATETC
;
1257 typedef struct tagDVTARGETDEVICE
{
1259 WORD tdDriverNameOffset
;
1260 WORD tdDeviceNameOffset
;
1261 WORD tdPortNameOffset
;
1262 WORD tdExtDevmodeOffset
;
1263 [size_is(tdSize
- sizeof
(DWORD
) - 4*sizeof
(WORD
))]
1267 typedef CLIPFORMAT
*LPCLIPFORMAT
;
1269 typedef struct tagFORMATETC
{
1270 CLIPFORMAT cfFormat
;
1271 [unique] DVTARGETDEVICE
*ptd
;
1275 } FORMATETC
, *LPFORMATETC
;
1280 [out, size_is(celt
), length_is(*pceltFetched
)]
1282 [out] ULONG
*pceltFetched
);
1287 [out, size_is(celt
), length_is(*pceltFetched
)]
1289 [out] ULONG
*pceltFetched
);
1297 [out] IEnumFORMATETC
**ppenum
);
1302 uuid(00000105-0000-0000-C000
-000000000046),
1303 pointer_default(unique)
1305 interface IEnumSTATDATA
: IUnknown
1307 typedef [unique] IEnumSTATDATA
*LPENUMSTATDATA
;
1309 typedef enum tagADVF
{
1311 ADVF_PRIMEFIRST
= 2,
1313 ADVF_DATAONSTOP
= 64,
1314 ADVFCACHE_NOHANDLER
= 8,
1315 ADVFCACHE_FORCEBUILTIN
= 16,
1316 ADVFCACHE_ONSAVE
= 32
1319 typedef struct tagSTATDATA
1321 FORMATETC formatetc
;
1323 [unique] IAdviseSink
*pAdvSink
;
1325 } STATDATA
, *LPSTATDATA
;
1330 [out, size_is(celt
), length_is(*pceltFetched
)]
1332 [out] ULONG
*pceltFetched
);
1337 [out, size_is(celt
), length_is(*pceltFetched
)]
1339 [out] ULONG
*pceltFetched
);
1347 [out] IEnumSTATDATA
**ppenum
);
1352 uuid(0000010f
-0000-0000-C000
-000000000046),
1353 pointer_default(unique)
1355 interface IAdviseSink
: IUnknown
1357 typedef IAdviseSink
*LPADVISESINK
;
1359 typedef [v1_enum] enum tagTYMED
{
1370 typedef struct tagRemSTGMEDIUM
{
1373 unsigned long pData
;
1374 unsigned long pUnkForRelease
;
1375 unsigned long cbData
;
1376 [size_is(cbData
)] byte data
[];
1379 /* FIXME: C/C++ nameless union version */
1380 typedef struct tagSTGMEDIUM
{
1382 [switch_is(tymed
)] union {
1383 [case(TYMED_GDI
)] HBITMAP hBitmap;
1384 [case(TYMED_MFPICT
)] HMETAFILEPICT hMetaFilePict
;
1385 [case(TYMED_ENHMF
)] HENHMETAFILE hEnhMetaFile;
1386 [case(TYMED_HGLOBAL
)] HGLOBAL hGlobal;
1387 [case(TYMED_FILE
)] LPOLESTR lpszFileName
;
1388 [case(TYMED_ISTREAM
)] IStream
*pstm
;
1389 [case(TYMED_ISTORAGE
)] IStorage
*pstg
;
1392 [unique] IUnknown
*pUnkForRelease
;
1395 /* copied from wingdi.h */
1399 #define OBJ_METADC
4
1402 #define OBJ_BITMAP
7
1403 #define OBJ_REGION
8
1404 #define OBJ_METAFILE
9
1405 #define OBJ_MEMDC
10
1406 #define OBJ_EXTPEN
11
1407 #define OBJ_ENHMETADC
12
1408 #define OBJ_ENHMETAFILE
13
1410 typedef union _GDI_OBJECT
switch(DWORD ObjectType
) u
{
1411 case OBJ_BITMAP
: wireHBITMAP
hBitmap;
1412 case OBJ_PAL
: wireHPALETTE
hPalette;
1413 default: wireHGLOBAL hGeneric
;
1416 typedef struct _userSTGMEDIUM
{
1417 union switch(DWORD tymed
) u
{
1419 case TYMED_MFPICT
: wireHMETAFILEPICT hMetaFilePict
;
1420 case TYMED_ENHMF
: wireHENHMETAFILE hHEnhMetaFile
;
1421 case TYMED_GDI
: GDI_OBJECT
*hGdiHandle
;
1422 case TYMED_HGLOBAL
: wireHGLOBAL
hGlobal;
1423 case TYMED_FILE
: LPOLESTR lpszFileName
;
1424 case TYMED_ISTREAM
: BYTE_BLOB
*pstm
;
1425 case TYMED_ISTORAGE
: BYTE_BLOB
*pstg
;
1427 IUnknown
*pUnkForRelease
;
1430 typedef [unique] userSTGMEDIUM
*wireSTGMEDIUM
;
1431 typedef [wire_marshal(wireSTGMEDIUM
)] uSTGMEDIUM STGMEDIUM
;
1433 typedef [unique] userSTGMEDIUM
*wireASYNC_STGMEDIUM
;
1434 typedef [wire_marshal(wireASYNC_STGMEDIUM
)] STGMEDIUM ASYNC_STGMEDIUM
;
1436 typedef STGMEDIUM
*LPSTGMEDIUM
;
1438 typedef struct _userFLAG_STGMEDIUM
{
1440 long fPassOwnership
;
1441 userSTGMEDIUM Stgmed
;
1442 } userFLAG_STGMEDIUM
;
1444 typedef [unique] userFLAG_STGMEDIUM
*wireFLAG_STGMEDIUM
;
1446 typedef [wire_marshal(wireFLAG_STGMEDIUM
)] struct _FLAG_STGMEDIUM
{
1448 long fPassOwnership
;
1454 [in, unique] FORMATETC
*pFormatetc
,
1455 [in, unique] STGMEDIUM
*pStgmed
);
1457 [call_as
(OnDataChange
), async
]
1458 HRESULT RemoteOnDataChange
(
1459 [in] IAsyncManager
**ppIAM
,
1460 [in, unique] FORMATETC
*pFormatetc
,
1461 [in, unique] ASYNC_STGMEDIUM
*pStgmed
);
1465 [in] DWORD dwAspect
,
1468 [call_as
(OnViewChange
), async
]
1469 HRESULT RemoteOnViewChange
(
1470 [in] IAsyncManager
**ppIAM
,
1471 [in] DWORD dwAspect
,
1476 [in] IMoniker
*pmk
);
1478 [call_as
(OnRename
), async
]
1479 HRESULT RemoteOnRename
(
1480 [in] IAsyncManager
**ppIAM
,
1481 [in] IMoniker
*pmk
);
1486 [call_as
(OnSave
), async
]
1487 HRESULT RemoteOnSave
(
1488 [in] IAsyncManager
**ppIAM
);
1494 HRESULT RemoteOnClose
();
1499 uuid(00000125-0000-0000-C000
-000000000046),
1500 pointer_default(unique)
1502 interface IAdviseSink2
: IAdviseSink
1504 typedef [unique] IAdviseSink2
*LPADVISESINK2
;
1507 void OnLinkSrcChange
(
1508 [in, unique] IMoniker
*pmk
);
1510 [call_as
(OnLinkSrcChange
), async
]
1511 HRESULT RemoteOnLinkSrcChange
(
1512 [in] IAsyncManager
**ppIAM
,
1513 [in, unique] IMoniker
*pmk
);
1518 uuid(0000010e-0000-0000-C000
-000000000046),
1519 pointer_default(unique)
1521 interface IDataObject
: IUnknown
1523 typedef [unique] IDataObject
*LPDATAOBJECT
;
1525 typedef enum tagDATADIR
{
1532 [in, unique] FORMATETC
*pformatetcIn
,
1533 [out] STGMEDIUM
*pmedium
);
1536 HRESULT RemoteGetData
(
1537 [in, unique] FORMATETC
*pformatetcIn
,
1538 [out] STGMEDIUM
*pRemoteMedium
);
1541 HRESULT GetDataHere
(
1542 [in, unique] FORMATETC
*pformatetc
,
1543 [in, out] STGMEDIUM
*pmedium
);
1545 [call_as
(GetDataHere
)]
1546 HRESULT RemoteGetDataHere
(
1547 [in, unique] FORMATETC
*pformatetc
,
1548 [in, out] STGMEDIUM
*pRemoteMedium
);
1550 HRESULT QueryGetData
(
1551 [in, unique] FORMATETC
*pformatetc
);
1553 HRESULT GetCanonicalFormatEtc
(
1554 [in, unique] FORMATETC
*pformatectIn
,
1555 [out] FORMATETC
*pformatetcOut
);
1559 [in, unique] FORMATETC
*pformatetc
,
1560 [in, unique] STGMEDIUM
*pmedium
,
1561 [in] BOOL fRelease
);
1564 HRESULT RemoteSetData
(
1565 [in, unique] FORMATETC
*pformatetc
,
1566 [in, unique] FLAG_STGMEDIUM
*pmedium
,
1567 [in] BOOL fRelease
);
1569 HRESULT EnumFormatEtc
(
1570 [in] DWORD dwDirection
,
1571 [out] IEnumFORMATETC
**ppenumFormatEtc
);
1574 [in] FORMATETC
*pformatetc
,
1576 [in, unique] IAdviseSink
*pAdvSink
,
1577 [out] DWORD
*pdwConnection
);
1580 [in] DWORD dwConnection
);
1582 HRESULT EnumDAdvise
(
1583 [out] IEnumSTATDATA
**ppenumAdvise
);
1589 uuid(00000110-0000-0000-C000
-000000000046)
1591 interface IDataAdviseHolder
: IUnknown
1593 typedef [unique] IDataAdviseHolder
*LPDATAADVISEHOLDER
;
1596 [in, unique] IDataObject
*pDataObject
,
1597 [in, unique] FORMATETC
*pFetc
,
1599 [in, unique] IAdviseSink
*pAdvise
,
1600 [out] DWORD
*pdwConnection
);
1603 [in] DWORD dwConnection
);
1606 [out] IEnumSTATDATA
**ppenumAdvise
);
1608 HRESULT SendOnDataChange
(
1609 [in, unique] IDataObject
*pDataObject
,
1610 [in] DWORD dwReserved
,
1614 /******************** Remoting ********************/
1619 uuid(00000016-0000-0000-C000
-000000000046)
1621 interface IMessageFilter
: IUnknown
1623 typedef [unique] IMessageFilter
*LPMESSAGEFILTER
;
1625 typedef enum tagCALLTYPE
{
1626 CALLTYPE_TOPLEVEL
= 1,
1627 CALLTYPE_NESTED
= 2,
1629 CALLTYPE_TOPLEVEL_CALLPENDING
= 4,
1630 CALLTYPE_ASYNC_CALLPENDING
= 5
1633 typedef enum tagSERVERCALL
{
1634 SERVERCALL_ISHANDLED
= 0,
1635 SERVERCALL_REJECTED
= 1,
1636 SERVERCALL_RETRYLATER
= 2
1639 typedef enum tagPENDINGTYPE
{
1640 PENDINGTYPE_TOPLEVEL
= 1,
1641 PENDINGTYPE_NESTED
= 2
1644 typedef enum tagPENDINGMSG
{
1645 PENDINGMSG_CANCELCALL
= 0,
1646 PENDINGMSG_WAITNOPROCESS
= 1,
1647 PENDINGMSG_WAITDEFPROCESS
= 2
1650 typedef struct tagINTERFACEINFO
{
1654 } INTERFACEINFO
, *LPINTERFACEINFO
;
1656 DWORD HandleInComingCall
(
1657 [in] DWORD dwCallType
,
1658 [in] HTASK htaskCaller
,
1659 [in] DWORD dwTickCount
,
1660 [in] LPINTERFACEINFO lpInterfaceInfo
);
1662 DWORD RetryRejectedCall
(
1663 [in] HTASK htaskCallee
,
1664 [in] DWORD dwTickCount
,
1665 [in] DWORD dwRejectType
);
1667 DWORD MessagePending
(
1668 [in] HTASK htaskCallee
,
1669 [in] DWORD dwTickCount
,
1670 [in] DWORD dwPendingType
);
1676 uuid(D5F56B60
-593B
-101A
-B569
-08002B2DBF7A
)
1678 interface IRpcChannelBuffer
: IUnknown
1680 typedef [unique] IRpcChannelBuffer
*LPRPCCHANNELBUFFER
;
1682 typedef unsigned long RPCOLEDATAREP
;
1684 typedef struct tagRPCOLEMESSAGE
{
1686 RPCOLEDATAREP dataRepresentation
;
1694 typedef RPCOLEMESSAGE
*PRPCOLEMESSAGE
;
1697 [in] RPCOLEMESSAGE
*pMessage
,
1700 HRESULT SendReceive
(
1701 [in,out] RPCOLEMESSAGE
*pMessage
,
1702 [out] ULONG
*pStatus
);
1705 [in] RPCOLEMESSAGE
*pMessage
);
1708 [out] DWORD
*pdwDestContext
,
1709 [out] void **ppvDestContext
);
1711 HRESULT IsConnected
();
1717 uuid(594f31d0
-7f19
-11d0
-b194
-00a0c90dc8bf
)
1719 interface IRpcChannelBuffer2
: IRpcChannelBuffer
1721 typedef [unique] IRpcChannelBuffer2
*LPRPCCHANNELBUFFER2
;
1723 HRESULT GetProtocolVersion
(
1724 [in,out] DWORD
*pdwVersion
);
1730 uuid(25B15600
-0115-11d0
-BF0D
-00AA00B8DFD2
)
1732 interface IRpcChannelBuffer3
: IRpcChannelBuffer2
1734 typedef [unique] IRpcChannelBuffer3
*LPRPCCHANNELBUFFER3
;
1737 [in,out] RPCOLEMESSAGE
*pMsg
,
1738 [out] ULONG
*pulStatus
);
1741 [in,out] RPCOLEMESSAGE
*pMsg
,
1743 [out] ULONG
*pulStatus
);
1746 [in] RPCOLEMESSAGE
*pMsg
);
1748 HRESULT GetCallContext
(
1749 [in] RPCOLEMESSAGE
*pMsg
,
1751 [out] void **pInterface
);
1753 HRESULT GetDestCtxEx
(
1754 [in] RPCOLEMESSAGE
*pMsg
,
1755 [out] DWORD
*pdwDestContext
,
1756 [out] void **ppvDestContext
);
1759 [in] RPCOLEMESSAGE
*pMsg
,
1760 [out] DWORD
*pState
);
1762 HRESULT RegisterAsync
(
1763 [in] RPCOLEMESSAGE
*pMsg
,
1764 [in] IAsyncManager
*pAsyncMgr
);
1770 uuid(a5029fb6
-3c34
-11d1
-9c99
-00c04fb998aa
),
1771 pointer_default(unique)
1773 interface IAsyncRpcChannelBuffer
: IRpcChannelBuffer2
1776 [in, out] RPCOLEMESSAGE
*pMsg
,
1777 [in] ISynchronize
*pSync
,
1778 [out] ULONG
*pulStatus
);
1781 [in, out] RPCOLEMESSAGE
*pMsg
,
1782 [out] ULONG
*pulStatus
);
1784 HRESULT GetDestCtxEx
(
1785 [in] RPCOLEMESSAGE
*pMsg
,
1786 [out] DWORD
*pdwDestContext
,
1787 [out] void **ppvDestContext
);
1793 uuid(58a08519
-24c8
-4935-b482
-3fd823333a4f
)
1795 interface IRpcSyntaxNegotiate
: IUnknown
1797 HRESULT NegotiateSyntax
(
1798 [in, out] RPCOLEMESSAGE
*pMsg
);
1804 uuid(D5F56A34
-593B
-101A
-B569
-08002B2DBF7A
)
1806 interface IRpcProxyBuffer
: IUnknown
1808 typedef [unique] IRpcProxyBuffer
*LPRPCPROXYBUFFER
;
1811 [in, unique] IRpcChannelBuffer
*pRpcChannelBuffer
);
1819 uuid(D5F56AFC
-593B
-101A
-B569
-08002B2DBF7A
)
1821 interface IRpcStubBuffer
: IUnknown
1823 typedef [unique] IRpcStubBuffer
*LPRPCSTUBBUFFER
;
1826 [in] IUnknown
*pUnkServer
);
1831 [in] RPCOLEMESSAGE
*_prpcmsg
,
1832 [in] IRpcChannelBuffer
*_pRpcChannelBuffer
);
1834 IRpcStubBuffer
*IsIIDSupported
(
1839 HRESULT DebugServerQueryInterface
(
1842 void DebugServerRelease
(
1849 uuid(D5F569D0
-593B
-101A
-B569
-08002B2DBF7A
)
1851 interface IPSFactoryBuffer
: IUnknown
1853 typedef [unique] IPSFactoryBuffer
*LPPSFACTORYBUFFER
;
1855 HRESULT CreateProxy
(
1856 [in] IUnknown
*pUnkOuter
,
1858 [out] IRpcProxyBuffer
**ppProxy
,
1863 [in, unique] IUnknown
*pUnkServer
,
1864 [out] IRpcStubBuffer
**ppStub
);
1870 uuid(1008c4a0
-7613-11cf
-9af1
-0020af6e72f4
)
1872 interface IChannelHook
: IUnknown
1874 typedef [unique] IChannelHook
*LPCHANNELHOOK
;
1876 typedef struct SChannelHookCallInfo
{
1883 } SChannelHookCallInfo
;
1886 [in] REFGUID uExtent
,
1888 [out] ULONG
*pDataSize
);
1890 void ClientFillBuffer
(
1891 [in] REFGUID uExtent
,
1893 [in, out] ULONG
*pDataSize
,
1894 [in] void *pDataBuffer
);
1897 [in] REFGUID uExtent
,
1899 [in] ULONG cbDataSize
,
1900 [in] void *pDataBuffer
,
1901 [in] DWORD lDataRep
,
1902 [in] HRESULT hrFault
);
1905 [in] REFGUID uExtent
,
1907 [in] ULONG cbDataSize
,
1908 [in] void *pDataBuffer
,
1909 [in] DWORD lDataRep
);
1912 [in] REFGUID uExtent
,
1914 [in] HRESULT hrFault
,
1915 [out] ULONG
*pDataSize
);
1917 void ServerFillBuffer
(
1918 [in] REFGUID uExtent
,
1920 [in, out] ULONG
*pDataSize
,
1921 [in] void *pDataBuffer
,
1922 [in] HRESULT hrFault
);
1925 extern
const FMTID FMTID_SummaryInformation
;
1926 extern
const FMTID FMTID_DocSummaryInformation
;
1927 extern
const FMTID FMTID_UserDefinedProperties
;
1930 /******************** Connection Points ********************/
1933 /******************** DCOM ********************/
1938 uuid(0000013D
-0000-0000-C000
-000000000046)
1940 interface IClientSecurity
: IUnknown
1942 typedef struct tagSOLE_AUTHENTICATION_SERVICE
{
1945 OLECHAR
*pPrincipalName
;
1947 } SOLE_AUTHENTICATION_SERVICE
;
1949 typedef SOLE_AUTHENTICATION_SERVICE
*PSOLE_AUTHENTICATION_SERVICE
;
1951 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES
{
1953 EOAC_MUTUAL_AUTH
= 0x1,
1954 EOAC_CLOAKING
= 0x10,
1955 EOAC_SECURE_REFS
= 0x2,
1956 EOAC_ACCESS_CONTROL
= 0x4,
1958 } EOLE_AUTHENTICATION_CAPABILITIES
;
1960 HRESULT QueryBlanket
(
1961 [in] IUnknown
*pProxy
,
1962 [out] DWORD
*pAuthnSvc
,
1963 [out] DWORD
*pAuthzSvc
,
1964 [out] OLECHAR
**pServerPrincName
,
1965 [out] DWORD
*pAuthnLevel
,
1966 [out] DWORD
*pImpLevel
,
1967 [out] void **pAuthInfo
,
1968 [out] DWORD
*pCapabilites
);
1971 [in] IUnknown
*pProxy
,
1972 [in] DWORD AuthnSvc
,
1973 [in] DWORD AuthzSvc
,
1974 [in] OLECHAR
*pServerPrincName
,
1975 [in] DWORD AuthnLevel
,
1976 [in] DWORD ImpLevel
,
1977 [in] void *pAuthInfo
,
1978 [in] DWORD Capabilities
);
1981 [in] IUnknown
*pProxy
,
1982 [out] IUnknown
**ppCopy
);
1988 uuid(0000013E-0000-0000-C000
-000000000046)
1990 interface IServerSecurity
: IUnknown
1992 HRESULT QueryBlanket
(
1993 [out] DWORD
*pAuthnSvc
,
1994 [out] DWORD
*pAuthzSvc
,
1995 [out] OLECHAR
**pServerPrincName
,
1996 [out] DWORD
*pAuthnLevel
,
1997 [out] DWORD
*pImpLevel
,
1998 [out] void **pPrivs
,
1999 [out] DWORD
*pCapabilities
);
2001 HRESULT ImpersonateClient
();
2003 HRESULT RevertToSelf
();
2005 BOOL IsImpersonating
();
2011 uuid(00000024-0000-0000-C000
-000000000046)
2013 interface IAsyncSetup
: IUnknown
2015 HRESULT GetAsyncManager
(
2017 [in] IUnknown
*pOuter
,
2019 [out] IUnknown
**ppInner
,
2020 [out] IAsyncManager
**ppAsyncMgr
);
2025 uuid(0e6d4d92
-6738-11cf
-9608-00aa00680db4
)
2027 interface IDirectWriterLock
: IUnknown
2029 HRESULT WaitForWriteAccess
(
2030 [in] DWORD dwTimeout
);
2032 HRESULT ReleaseWriteAccess
();
2034 HRESULT HaveWriteAccess
();
2039 uuid(00000030-0000-0000-C000
-000000000046)
2042 interface ISynchronize
: IUnknown
2046 [in] DWORD dwMilliseconds
);
2057 uuid(00000031-0000-0000-C000
-000000000046)
2059 interface ISynchronizeHandle
: IUnknown
2069 uuid(00000032-0000-0000-C000
-000000000046)
2071 interface ISynchronizeEvent
: ISynchronizeHandle
2073 HRESULT SetEventHandle
(
2081 uuid(00000033-0000-0000-C000
-000000000046)
2083 interface ISynchronizeContainer
: IUnknown
2085 HRESULT AddSynchronize
(
2086 [in] ISynchronize
*pSync
);
2088 HRESULT WaitMultiple
(
2090 [in] DWORD dwTimeOut
,
2091 [out] ISynchronize
**ppSync
);
2097 uuid(00000025-0000-0000-C000
-000000000046)
2099 interface ISynchronizeMutex
: ISynchronize
2101 HRESULT ReleaseMutex
();
2107 uuid(00000029-0000-0000-C000
-000000000046)
2110 interface ICancelMethodCalls
: IUnknown
2112 typedef [unique] ICancelMethodCalls
*LPCANCELMETHODCALLS
;
2115 [in] ULONG ulSeconds
);
2117 HRESULT TestCancel
();
2123 uuid(0000002A
-0000-0000-C000
-000000000046)
2125 interface IAsyncManager
: IUnknown
2127 typedef enum tagDCOM_CALL_STATE
{
2129 DCOM_CALL_COMPLETE
= 1,
2130 DCOM_CALL_CANCELED
= 2
2133 HRESULT CompleteCall
(
2134 [in] HRESULT Result
);
2136 HRESULT GetCallContext
(
2138 [out] void **pInterface
);
2141 [out] ULONG
*pulStateFlags
);
2147 uuid(1c733a30
-2a1c
-11ce
-ade5
-00aa0044773d
),
2148 pointer_default(unique)
2150 interface ICallFactory
: IUnknown
2154 [in] IUnknown
*pCtrlUnk
,
2156 [out, iid_is(riid2
)] IUnknown
**ppv
);
2162 uuid(00000144-0000-0000-C000
-000000000046)
2164 interface IRpcOptions
: IUnknown
2167 [in] IUnknown
*pPrx
,
2168 [in] DWORD dwProperty
,
2169 [in] ULONG_PTR dwValue
);
2172 [in] IUnknown
*pPrx
,
2173 [in] DWORD dwProperty
,
2174 [out] ULONG_PTR
*pdwValue
);
2178 COMBND_RPCTIMEOUT
= 1,
2179 COMBND_SERVER_LOCALITY
= 2
2183 SERVER_LOCALITY_PROCESS_LOCAL
= 0,
2184 SERVER_LOCALITY_MACHINE_LOCAL
= 1,
2185 SERVER_LOCALITY_REMOTE
= 2
2191 uuid(00000149-0000-0000-C000
-000000000046),
2192 pointer_default(unique)
2194 interface IRpcHelper
: IUnknown
2196 HRESULT GetDCOMProtocolVersion
(
2197 [out] DWORD
*pComVersion
);
2199 HRESULT GetIIDFromOBJREF
(
2207 uuid(eb0cb9e8
-7996-11d2
-872e-0000f8080859
)
2209 interface IReleaseMarshalBuffers
: IUnknown
2211 HRESULT ReleaseMarshalBuffer
(
2212 [in] RPCOLEMESSAGE
*pMsg
,
2214 [in, unique] IUnknown
*pChnl
);
2220 uuid(0000002B
-0000-0000-C000
-000000000046)
2222 interface IWaitMultiple
: IUnknown
2224 HRESULT WaitMultiple
(
2226 [out] ISynchronize
**pSync
);
2227 HRESULT AddSynchronize
(
2228 [in] ISynchronize
*pSync
);
2234 uuid(00000026-0000-0000-C000
-000000000046)
2236 interface IUrlMon
: IUnknown
2238 HRESULT AsyncGetClassBits
(
2239 [in] REFCLSID rclsid
,
2240 [in, unique] LPCWSTR pszTYPE
,
2241 [in, unique] LPCWSTR pszExt
,
2242 [in] DWORD dwFileVersionMS
,
2243 [in] DWORD dwFileVersionLS
,
2244 [in, unique] LPCWSTR pszCodeBase
,
2246 [in] DWORD dwClassContext
,
2254 uuid(00000145-0000-0000-C000
-000000000046)
2256 interface IForegroundTransfer
: IUnknown
2258 HRESULT AllowForegroundTransfer
(
2259 [in] void *lpvReserved
);
2265 uuid(00000147-0000-0000-C000
-000000000046)
2267 interface IAddrTrackingControl
: IUnknown
2269 typedef [unique] IAddrTrackingControl
*LPADDRTRACKINGCONTROL
;
2271 HRESULT EnableCOMDynamicAddrTracking
();
2272 HRESULT DisableCOMDynamicAddrTracking
();
2278 uuid(00000148-0000-0000-C000
-000000000046)
2280 interface IAddrExclusionControl
: IUnknown
2282 typedef [unique] IAddrExclusionControl
*LPADDREXCLUSIONCONTROL
;
2284 HRESULT GetCurrentAddrExclusionList
(
2286 [out, iid_is(riid
)] void **ppEnumerator
);
2287 HRESULT UpdateAddrExclusionList
(
2288 [in] IUnknown
*pEnumerator
);
2291 typedef enum _APTTYPE
{
2292 APTTYPE_CURRENT
= -1,
2299 typedef enum _THDTYPE
{
2300 THDTYPE_BLOCKMESSAGES
= 0,
2301 THDTYPE_PROCESSMESSAGES
= 1
2307 uuid(000001ce
-0000-0000-C000
-000000000046),
2308 pointer_default(unique)
2310 interface IComThreadingInfo
: IUnknown
2312 HRESULT GetCurrentApartmentType
(
2313 [out] APTTYPE
*pAptType
);
2314 HRESULT GetCurrentThreadType
(
2315 [out] THDTYPE
*pThreadType
);
2316 HRESULT GetCurrentLogicalThreadId
(
2317 [out] GUID
*pguidLogicalThreadId
);
2318 HRESULT SetCurrentLogicalThreadId
(
2319 [in] REFGUID rguid
);
2325 pointer_default(unique),
2326 uuid(72380d55
-8d2b
-43a3
-8513-2b6ef31434e9
)
2328 interface IProcessInitControl
: IUnknown
2330 HRESULT ResetInitializerTimeout
(
2331 [in] DWORD dwSecondsRemaining
);
2337 uuid(00000034-0000-0000-C000
-000000000046),
2338 pointer_default(unique)
2340 interface IInitializeSpy
: IUnknown
2342 typedef [unique] IInitializeSpy
*LPINITIALIZESPY
;
2344 HRESULT PreInitialize
(
2345 [in] DWORD dwCoInit
,
2346 [in] DWORD dwCurThreadAptRefs
);
2348 HRESULT PostInitialize
(
2349 [in] HRESULT hrCoInit
,
2350 [in] DWORD dwCoInit
,
2351 [in] DWORD dwNewThreadAptRefs
);
2353 HRESULT PreUninitialize
(
2354 [in] DWORD dwCurThreadAptRefs
);
2356 HRESULT PostUninitialize
(
2357 [in] DWORD dwNewThreadAptRefs
);
2362 uuid(969dc708
-5c76
-11d1
-8d86
-0000f804b057
)
2364 interface IThumbnailExtractor
: IUnknown
2366 HRESULT ExtractThumbnail
(
2367 [in] IStorage
*pStg
,
2368 [in] ULONG ulLength
,
2369 [in] ULONG ulHeight
,
2370 [out] ULONG
*pulOutputLength
,
2371 [out] ULONG
*pulOutputHeight
,
2372 [out] HBITMAP *phOutputBitmap
);
2375 HRESULT OnFileUpdated
(
2376 [in] IStorage
*pStg
);