summaryrefslogtreecommitdiffstats
path: root/private/types2/oleext
diff options
context:
space:
mode:
Diffstat (limited to 'private/types2/oleext')
-rw-r--r--private/types2/oleext/iaccess.idl123
-rw-r--r--private/types2/oleext/idiff.idl58
-rw-r--r--private/types2/oleext/idir.idl169
-rw-r--r--private/types2/oleext/makefile6
-rw-r--r--private/types2/oleext/multpr.idl50
-rw-r--r--private/types2/oleext/oleext.acf5
-rw-r--r--private/types2/oleext/oleext.idl57
-rw-r--r--private/types2/oleext/propctr.idl25
-rw-r--r--private/types2/oleext/recinit.idl42
-rw-r--r--private/types2/oleext/recnotfy.idl34
-rw-r--r--private/types2/oleext/recobj.idl95
-rw-r--r--private/types2/oleext/sources18
-rw-r--r--private/types2/oleext/version.idl51
13 files changed, 733 insertions, 0 deletions
diff --git a/private/types2/oleext/iaccess.idl b/private/types2/oleext/iaccess.idl
new file mode 100644
index 000000000..40076f664
--- /dev/null
+++ b/private/types2/oleext/iaccess.idl
@@ -0,0 +1,123 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1994 - 1995.
+//
+// File: iaccess.idl
+//
+// Contents: definitions of access and audit control interfaces
+//
+// History: 2-9-95 DaveMont Created
+//
+//----------------------------------------------------------------------------
+
+import "unknwn.idl";
+import "accctrl.h";
+
+/****************************************************************************
+ * Storage access control interface
+ ****************************************************************************/
+
+// All nested structures are allocated in the same block of memory.
+// Thus these types are freed with a single call to CoTaskMemFree.
+typedef PACTRL_ACCESSW PACTRL_ACCESSW_ALLOCATE_ALL_NODES;
+typedef PACTRL_AUDITW PACTRL_AUDITW_ALLOCATE_ALL_NODES;
+
+interface IAccessControl;
+[
+ object,
+ uuid(EEDD23E0-8410-11CE-A1C3-08002B2B8D8F),
+ pointer_default(unique)
+]
+interface IAccessControl : IUnknown
+{
+
+ HRESULT GrantAccessRights
+ (
+ [in] PACTRL_ACCESSW pAccessList
+ );
+
+ HRESULT SetAccessRights
+ (
+ [in] PACTRL_ACCESSW pAccessList
+ );
+
+ HRESULT SetOwner
+ (
+ [in] PTRUSTEEW pOwner,
+ [in] PTRUSTEEW pGroup
+ );
+
+ HRESULT RevokeAccessRights
+ (
+ [in] LPWSTR lpProperty,
+ [in] ULONG cTrustees,
+ [in, size_is(cTrustees)] TRUSTEEW prgTrustees[]
+ );
+
+ HRESULT GetAllAccessRights
+ (
+ [in] LPWSTR lpProperty,
+ [out] PACTRL_ACCESSW_ALLOCATE_ALL_NODES *ppAccessList,
+ [out] PTRUSTEEW *ppOwner,
+ [out] PTRUSTEEW *ppGroup
+ );
+
+
+ HRESULT IsAccessAllowed
+ (
+ [in] PTRUSTEEW pTrustee,
+ [in] LPWSTR lpProperty,
+ [in] ACCESS_RIGHTS AccessRights,
+ [out] BOOL *pfAccessAllowed
+ );
+
+}
+
+/****************************************************************************
+ * Storage audit control interface
+ ****************************************************************************/
+
+interface IAuditControl;
+[
+ object,
+ uuid(1da6292f-bc66-11ce-aae3-00aa004c2737),
+ pointer_default(unique)
+]
+
+interface IAuditControl : IUnknown
+{
+ HRESULT GrantAuditRights
+ (
+ [in] PACTRL_AUDITW pAuditList
+ );
+
+ HRESULT SetAuditRights
+ (
+ [in] PACTRL_AUDITW pAuditList
+ );
+
+ HRESULT RevokeAuditRights
+ (
+ [in] LPWSTR lpProperty,
+ [in] ULONG cTrustees,
+ [in, size_is(cTrustees)] TRUSTEEW prgTrustees []
+ );
+
+ HRESULT GetAllAuditRights
+ (
+ [in] LPWSTR lpProperty,
+ [out] PACTRL_AUDITW *ppAuditList
+ );
+
+ //
+ // Determines if the given trustee with the state audit rights will generate an audit event if the object is accessed.
+ //
+ HRESULT IsAccessAudited
+ (
+ [in] PTRUSTEEW pTrustee,
+ [in] ACCESS_RIGHTS AuditRights,
+ [out] BOOL *pfAccessAudited
+ );
+}
+
diff --git a/private/types2/oleext/idiff.idl b/private/types2/oleext/idiff.idl
new file mode 100644
index 000000000..e0462ac4e
--- /dev/null
+++ b/private/types2/oleext/idiff.idl
@@ -0,0 +1,58 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: idiff.idl
+//
+// Contents: IDifferencing interface
+//
+// History: 11-Nov-94 SethuR Created
+//
+// Notes: There are three different way of extracting the differences
+// between a given storage and another point of reference
+// (another storage, a version id. or a time stamp). In the
+// first case there is no temporal significance to the differences
+// extracted, i.e., it is the difference in the snapshots at
+// that instant of time. For the second and third cases there
+// is a temporal significance attached to the differences. These
+// also require some form of history to be associated with the
+// storage.
+//
+//----------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+REMOTED_INTERFACE(994f0af0-2977-11ce-bb80-08002b36b2b0)
+interface IDifferencing : IUnknown
+{
+ typedef enum {
+ DIFF_TYPE_Ordinary,
+ DIFF_TYPE_Urgent
+ } DifferenceType;
+
+ HRESULT SubtractMoniker(
+ [in] IReconcileInitiator *pInitiator,
+ [in] IMoniker *pOtherStg,
+ [in] DifferenceType diffType,
+ [in,out] STGMEDIUM *pStgMedium,
+ [in] DWORD reserved);
+
+ HRESULT SubtractVerid(
+ [in] IReconcileInitiator *pInitiator,
+ [in] VERID *pVerid,
+ [in] DifferenceType diffType,
+ [in,out] STGMEDIUM *pStgMedium,
+ [in] DWORD reserved);
+
+ HRESULT SubtractTimeStamp(
+ [in] IReconcileInitiator *pInitiator,
+ [in] FILETIME *pTimeStamp, // UTC
+ [in] DifferenceType diffType,
+ [in,out] STGMEDIUM *pStgMedium,
+ [in] DWORD reserved);
+
+ HRESULT Add(
+ [in] IReconcileInitiator *pInitiator,
+ [in] STGMEDIUM *pStgMedium);
+}
diff --git a/private/types2/oleext/idir.idl b/private/types2/oleext/idir.idl
new file mode 100644
index 000000000..8d7a084c6
--- /dev/null
+++ b/private/types2/oleext/idir.idl
@@ -0,0 +1,169 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: IDirectory.idl
+//
+// Contents: IDirectory interface definition
+//
+// History: 14-Jun-1995 HenryLee initial version
+//
+//--------------------------------------------------------------------------
+
+import "unknwn.idl";
+import "transact.idl";
+interface IEnumSTATDIR;
+
+typedef enum tagSTGFMT
+{
+ STGFMT_DOCUMENT = 0,
+ STGFMT_DIRECTORY = 1,
+ STGFMT_CATALOG = 2,
+ STGFMT_FILE = 3,
+ STGFMT_ANY = 4,
+ STGFMT_DOCFILE = 5,
+ STGFMT_STORAGE = 6,
+ STGFMT_JUNCTION = 7
+} STGFMT;
+
+cpp_quote("#define STGFMT_FLATFILE STGFMT_FILE")
+
+typedef struct tagSTGTEMPLATE
+{
+ IUnknown * pUnkTemplate;
+ DWORD ciidTemplate;
+ IID * riidTemplate;
+} STGTEMPLATE;
+
+typedef struct tagOBJECT_SECURITY_INIT
+{
+ TRUSTEE_W * pTrusteeOwner;
+ TRUSTEE_W * pTrusteeGroup;
+ DWORD cAccessRightsLength;
+ EXPLICIT_ACCESS_W *pAccessRightsList;
+ DWORD cAuditEntriesLength;
+ EXPLICIT_ACCESS_W *pAuditEntriesList;
+} OBJECT_SECURITY_INIT;
+
+typedef struct tagSTGCREATE
+{
+ DWORD grfAttrs;
+ STGTEMPLATE *pTemplate;
+ OBJECT_SECURITY_INIT *pSecurity;
+} STGCREATE;
+
+typedef struct tagSTGOPEN
+{
+ STGFMT stgfmt;
+ DWORD grfMode;
+ DWORD grfFlags;
+ ITransaction * pTransaction;
+} STGOPEN;
+
+typedef struct tagSTATDIR
+{
+ WCHAR * pwcsName;
+ STGFMT stgfmt;
+ DWORD grfAttrs;
+ ULARGE_INTEGER cbSize;
+ FILETIME mtime;
+ FILETIME atime;
+ FILETIME ctime;
+ DWORD grfMode;
+ CLSID clsid;
+ DWORD grfStateBits;
+} STATDIR;
+
+
+[
+ object,
+ uuid(5c036ea0-b556-11ce-b33a-00aa00680937),
+ pointer_default(unique)
+]
+interface IDirectory : IUnknown
+{
+ [local]
+ HRESULT __stdcall CreateElement ([in] const WCHAR * pwcsName,
+ [in] STGCREATE * pStgCreate,
+ [in] STGOPEN * pStgOpen,
+ [in] REFIID riid,
+ [out] void ** ppObjectOpen);
+
+
+ [call_as(CreateElement)]
+ HRESULT __stdcall RemoteCreateElement ([in] const WCHAR * pwcsName,
+ [in] STGCREATE * pStgCreate,
+ [in] STGOPEN * pStgOpen,
+ [in] REFIID riid,
+ [out, iid_is(riid)] IUnknown ** ppObjectOpen);
+
+ [local]
+ HRESULT __stdcall OpenElement ([in] const WCHAR *pwcsName,
+ [in] STGOPEN * pStgOpen,
+ [in] REFIID riid,
+ [out] STGFMT * pStgfmt,
+ [out] void ** ppObjectOpen);
+
+ [call_as(OpenElement)]
+ HRESULT __stdcall RemoteOpenElement ([in] const WCHAR *pwcsName,
+ [in] STGOPEN * pStgOpen,
+ [in] REFIID riid,
+ [out] STGFMT * pStgfmt,
+ [out, iid_is(riid)] IUnknown ** ppObjectOpen);
+
+
+ HRESULT MoveElement ([in] const WCHAR *pwcsName,
+ [in, unique] IDirectory * pdirDest,
+ [in, unique] const WCHAR * pwcsNewName,
+ [in] DWORD grfFlags);
+
+ HRESULT CommitDirectory ([in] DWORD grfCommitFlags);
+ HRESULT RevertDirectory ();
+
+ HRESULT DeleteElement ([in] const WCHAR *pwcsName);
+
+ HRESULT SetTimes ([in, unique] const WCHAR *pwcsName,
+ [in, unique] const FILETIME * pctime,
+ [in, unique] const FILETIME * patime,
+ [in, unique] const FILETIME * pmtime);
+
+ HRESULT SetDirectoryClass ([in] REFCLSID clsid); // redudant ?
+
+ HRESULT SetAttributes ([in, unique] const WCHAR * pwcsName,
+ [in] DWORD grfAttrs);
+
+ HRESULT StatElement ([in, unique] const WCHAR *pwcsName,
+ [out] STATDIR *pstatdir,
+ [in] DWORD grfStatFlag);
+
+ HRESULT EnumDirectoryElements ([out] IEnumSTATDIR ** ppenum);
+
+}
+
+[
+ object,
+ uuid(74c76b90-b556-11ce-b33a-00aa00680937),
+ pointer_default(unique)
+]
+interface IEnumSTATDIR : IUnknown
+{
+ [local]
+ HRESULT __stdcall Next(
+ [in] ULONG celt,
+ [in] STATDIR * rgelt,
+ [out] ULONG * pceltFetched );
+
+ [call_as(Next)]
+ HRESULT __stdcall RemoteNext(
+ [in] ULONG celt,
+ [out, size_is(celt), length_is(*pceltFetched)] STATDIR * rgelt,
+ [out] ULONG * pceltFetched );
+
+
+ HRESULT Skip([in] ULONG celt);
+
+ HRESULT Reset();
+
+ HRESULT Clone([out] IEnumSTATDIR ** ppenum);
+}
diff --git a/private/types2/oleext/makefile b/private/types2/oleext/makefile
new file mode 100644
index 000000000..6ee4f43fa
--- /dev/null
+++ b/private/types2/oleext/makefile
@@ -0,0 +1,6 @@
+#
+# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source
+# file to this component. This file merely indirects to the real make file
+# that is shared by all the components of NT OS/2
+#
+!INCLUDE $(NTMAKEENV)\makefile.def
diff --git a/private/types2/oleext/multpr.idl b/private/types2/oleext/multpr.idl
new file mode 100644
index 000000000..add744aca
--- /dev/null
+++ b/private/types2/oleext/multpr.idl
@@ -0,0 +1,50 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: multpr.idl
+//
+// Contents: IMultiplePropertyAccess
+//
+// History: 07-Mar-94 CarlH Created
+// 02-Feb-95 MikeSe Reinstated. Sync'd with vba95 spec.
+//
+//----------------------------------------------------------------------------
+
+[
+ object,
+ uuid(ec81fede-d432-11ce-9244-0020af6e72db),
+ pointer_default(unique)
+]
+interface IMultiplePropertyAccess : IUnknown
+{
+
+ HRESULT GetIDsOfProperties(
+ [in] REFIID riid,
+ [in, size_is(cNames)] LPOLESTR *rgszNames,
+ [in] ULONG cNames,
+ [in] LCID lcid,
+ [out, size_is(cNames)] HRESULT *rghresult,
+ [out, size_is(cNames)] DISPID *rgdispid);
+
+ HRESULT GetMultiple(
+ [in, size_is(cMembers)] DISPID *rgdispidMembers,
+ [in] ULONG cMembers,
+ [in] REFIID riid,
+ [in] LCID lcid,
+ [in] BOOL fAtomic,
+ [out, size_is(cMembers)] VARIANT *rgvarValues,
+ [out, size_is(cMembers)] HRESULT *rghresult);
+
+ HRESULT PutMultiple(
+ [in, size_is(cMembers)] DISPID *rgdispidMembers,
+ [in, size_is(cMembers)] USHORT *rgusFlags,
+ [in] ULONG cMembers,
+ [in] REFIID riid,
+ [in] LCID lcid,
+ [in] BOOL fAtomic,
+ [in, size_is(cMembers)] VARIANT *rgvarValues,
+ [out, size_is(cMembers)] HRESULT *rghresult);
+}
+
diff --git a/private/types2/oleext/oleext.acf b/private/types2/oleext/oleext.acf
new file mode 100644
index 000000000..029f9de5d
--- /dev/null
+++ b/private/types2/oleext/oleext.acf
@@ -0,0 +1,5 @@
+interface IAccessControl
+{
+ typedef [allocate(all_nodes)] PACTRL_ACCESSW_ALLOCATE_ALL_NODES;
+ typedef [allocate(all_nodes)] PACTRL_AUDITW_ALLOCATE_ALL_NODES;
+}
diff --git a/private/types2/oleext/oleext.idl b/private/types2/oleext/oleext.idl
new file mode 100644
index 000000000..6ff134368
--- /dev/null
+++ b/private/types2/oleext/oleext.idl
@@ -0,0 +1,57 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1993 - 1993.
+//
+// File: oleext.idl
+//
+// Contents: master idl file for public interfaces
+//
+// Note: This subdirectory contains extensions to OLE
+// that we expect to become part of OLE imminently.
+//
+// Warning: Keep random shit OUT of this subdirectory, or die.
+//
+// History: 7-18-94 ErikGav Created
+// 3-21-95 BillMo Added 'new' storage property i/f.
+// 11-14-95 MikeHill Added BIND_OPTS2 structure.
+//
+//----------------------------------------------------------------------------
+
+#ifdef IMPORT_IDL_DEPENDENTS
+import "oaidl.idl";
+#endif
+
+// Object level property interfaces
+#include "propctr.idl"
+
+// OLE replication interfaces
+#include "recnotfy.idl"
+#include "recobj.idl"
+#include "version.idl"
+#include "recinit.idl"
+#include "idiff.idl"
+
+// access control interfaces
+#include "iaccess.idl"
+
+// OLE directory interface
+#include "idir.idl"
+
+// multiple property access
+#include "multpr.idl"
+
+cpp_quote("#if defined(_DCOM_) || defined(_CAIROSTG_)")
+cpp_quote("#include <olecairo.h>")
+cpp_quote("#endif // if defined(_DCOM_) || defined(_CAIROSTG_)")
+
+cpp_quote("#if !defined(_TAGFULLPROPSPEC_DEFINED_)")
+cpp_quote("#define _TAGFULLPROPSPEC_DEFINED_")
+typedef struct tagFULLPROPSPEC
+{
+ GUID guidPropSet;
+ PROPSPEC psProperty;
+} FULLPROPSPEC;
+cpp_quote("#endif // #if !defined(_TAGFULLPROPSPEC_DEFINED_)")
+
+
diff --git a/private/types2/oleext/propctr.idl b/private/types2/oleext/propctr.idl
new file mode 100644
index 000000000..3324d7c86
--- /dev/null
+++ b/private/types2/oleext/propctr.idl
@@ -0,0 +1,25 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1995.
+//
+// File: propctr.idl
+//
+// Contents: IPropsetContainer
+//
+// History: 09-Aug-94 IraS Created
+//
+//----------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+REMOTED_INTERFACE(b4ffae60-a7ca-11cd-b58b-00006b829156)
+interface IPropertySetContainer : IUnknown
+{
+ HRESULT GetPropset([in] REFGUID rguidName,
+ [in] REFIID riid,
+ [out, iid_is(riid)] IUnknown ** ppvObj);
+
+ HRESULT AddPropset([in] IPersist * pPropset);
+ HRESULT DeletePropset([in] REFGUID rguidName);
+}
diff --git a/private/types2/oleext/recinit.idl b/private/types2/oleext/recinit.idl
new file mode 100644
index 000000000..76af857d2
--- /dev/null
+++ b/private/types2/oleext/recinit.idl
@@ -0,0 +1,42 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: recinit.idl
+//
+// Contents: IDL definition for IReconcileInitiator interface
+//
+// Classes:
+//
+// Functions:
+//
+// History: 12-12-94 SethuR Created from DavidDi's specs.
+//
+// Notes:
+//
+// This interface needs to be moved to a more global location.
+//
+//----------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+REMOTED_INTERFACE(99180161-DA16-101A-935C-444553540000)
+interface IReconcileInitiator : IUnknown
+{
+ HRESULT SetAbortCallback(
+ [in,unique] IUnknown *pUnkForAbort);
+
+ HRESULT SetProgressFeedback(
+ [in] ULONG ulProgress,
+ [in] ULONG ulProgressMax);
+
+ HRESULT FindVersion(
+ [in] VERID *pverid,
+ [out] IMoniker **ppmk);
+
+ HRESULT FindVersionFromGraph(
+ [in] VERGRAPH *pvergraph,
+ [out] VERID *pverid,
+ [out] IMoniker **ppmk);
+}
diff --git a/private/types2/oleext/recnotfy.idl b/private/types2/oleext/recnotfy.idl
new file mode 100644
index 000000000..a5a6a1354
--- /dev/null
+++ b/private/types2/oleext/recnotfy.idl
@@ -0,0 +1,34 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: recnotfy.idl
+//
+// Contents: IDL definition for INotifyReplica interface
+//
+// Classes:
+//
+// Functions:
+//
+// History: 12-12-94 SethuR Created from DavidDi's specs.
+//
+// Notes: There are some issues regarding this interface that
+// needs to be ironed out.
+//
+// 1) How do we prevent having to know about the global topology
+// in the case of INotifyReplica interface ?
+//
+// This interface needs to be moved to a more global location.
+//
+//----------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+REMOTED_INTERFACE(99180163-DA16-101A-935C-444553540000)
+interface INotifyReplica : IUnknown
+{
+ HRESULT YouAreAReplica (
+ [in] ULONG cOtherReplicas,
+ [size_is(cOtherReplicas,), in,unique] IMoniker **rgpOtherReplicas);
+}
diff --git a/private/types2/oleext/recobj.idl b/private/types2/oleext/recobj.idl
new file mode 100644
index 000000000..cea0d425e
--- /dev/null
+++ b/private/types2/oleext/recobj.idl
@@ -0,0 +1,95 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: recobj.idl
+//
+// Contents: IDL definition for IReconcilableObject interface
+//
+// Classes:
+//
+// Functions:
+//
+// History: 12-12-94 SethuR Created from DavidDi's specs.
+//
+// Notes: There are a couple of issues regarding this interface that
+// needs to be ironed out.
+//
+// 1) How do we deal with Remote Invocation/execution if we have
+// HWND's as part of the arguments ?
+//
+// 2) How do we prevent having to know about the global topology
+// in the case of IReplicaNotify interface ?
+//
+//----------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+interface IReconcileInitiator;
+
+REMOTED_INTERFACE(99180162-DA16-101A-935C-444553540000)
+interface IReconcilableObject : IUnknown
+{
+ typedef enum _reconcilef
+ {
+ // interaction with the user is allowed
+
+ RECONCILEF_MAYBOTHERUSER = 0x0001,
+
+ //
+ // hwndProgressFeedback may be used to provide reconciliation progress
+ // feedback to the user.
+ //
+
+ RECONCILEF_FEEDBACKWINDOWVALID = 0x0002, // BUGBUG
+
+ // residue support not required
+
+ RECONCILEF_NORESIDUESOK = 0x0004,
+
+ // caller not interested in callee's residues
+
+ RECONCILEF_OMITSELFRESIDUE = 0x0008,
+
+ //
+ // Reconcile() call resuming after a previous Reconcile() call returned
+ // REC_E_NOTCOMPLETE
+ //
+
+ RECONCILEF_RESUMERECONCILIATION = 0x0010,
+
+ // Object may perform all updates.
+
+ RECONCILEF_YOUMAYDOTHEUPDATES = 0x0020,
+
+ // Only this object has been changed.
+
+ RECONCILEF_ONLYYOUWERECHANGED = 0x0040,
+
+ // flag combinations
+
+ ALL_RECONCILE_FLAGS = (RECONCILEF_MAYBOTHERUSER |
+ RECONCILEF_FEEDBACKWINDOWVALID |
+ RECONCILEF_NORESIDUESOK |
+ RECONCILEF_OMITSELFRESIDUE |
+ RECONCILEF_RESUMERECONCILIATION |
+ RECONCILEF_YOUMAYDOTHEUPDATES |
+ RECONCILEF_ONLYYOUWERECHANGED)
+ } RECONCILEF;
+
+ HRESULT Reconcile(
+ [in] IReconcileInitiator *pInitiator,
+ [in] DWORD dwFlags,
+ [in] HWND hwndOwner,
+ [in] HWND hwndProgressFeedback,
+ [in] ULONG cInput,
+ [in,unique,size_is(cInput,)] LPMONIKER *rgpmkOtherInput,
+ [out] LONG *plOutIndex,
+ [in,unique] IStorage *pstgNewResidues,
+ [in,unique] ULONG *pvReserved);
+
+ HRESULT GetProgressFeedbackMaxEstimate(
+ [out] ULONG *pulProgressMax);
+}
+
diff --git a/private/types2/oleext/sources b/private/types2/oleext/sources
new file mode 100644
index 000000000..d1abb3f20
--- /dev/null
+++ b/private/types2/oleext/sources
@@ -0,0 +1,18 @@
+#+---------------------------------------------------------------------------
+#
+# Microsoft Windows
+# Copyright (C) Microsoft Corporation, 1993 - 1993.
+#
+# File: sources
+#
+# History: 7-20-94 ErikGav First attempt at rationalizing all this
+#
+#----------------------------------------------------------------------------
+
+!include ..\types2.inc
+
+SOURCES = oleext.idl
+
+# Can't have multiple guys partying on ..\proxy\proxy\dlldata.c at once
+SYNCHRONIZE_BLOCK=1
+
diff --git a/private/types2/oleext/version.idl b/private/types2/oleext/version.idl
new file mode 100644
index 000000000..04c20dd88
--- /dev/null
+++ b/private/types2/oleext/version.idl
@@ -0,0 +1,51 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: version.idl
+//
+// Contents: OLE versioning definintions.
+//
+// History: 09-Jan-95 DaveStr Created
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+[
+ uuid(6291f800-2bfb-11ce-bb80-08002b36b2b0),
+ pointer_default(unique)
+]
+
+interface Versioning
+{
+
+#pragma pack(4) // for midl & C interop
+
+ typedef GUID VERID;
+
+ typedef struct tagVERIDARRAY {
+ DWORD cVerid;
+ [size_is(cVerid)] GUID verid[];
+ } VERIDARRAY;
+
+ typedef struct tagVERBLOCK {
+ ULONG iveridFirst;
+ ULONG iveridMax;
+ ULONG cblockPrev;
+ [size_is(cblockPrev)] ULONG *rgiblockPrev;
+ } VERBLOCK;
+
+ typedef struct tagVERCONNECTIONINFO {
+ DWORD cBlock;
+ [size_is(cBlock)] VERBLOCK *rgblock;
+ } VERCONNECTIONINFO;
+
+ typedef struct tagVERGRAPH{
+ VERCONNECTIONINFO blocks;
+ VERIDARRAY nodes;
+ } VERGRAPH;
+
+#pragma pack()
+}