summaryrefslogtreecommitdiffstats
path: root/private/types2
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/types2
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'private/types2')
-rw-r--r--private/types2/catstg/catstg.idl141
-rw-r--r--private/types2/catstg/makefile6
-rw-r--r--private/types2/catstg/sources37
-rw-r--r--private/types2/dirs5
-rw-r--r--private/types2/h/idlmulti.h99
-rw-r--r--private/types2/mc/a_first.x25
-rw-r--r--private/types2/mc/allerror.mc833
-rw-r--r--private/types2/mc/makefile6
-rw-r--r--private/types2/mc/makefile.inc8
-rw-r--r--private/types2/mc/oledberr.mc446
-rw-r--r--private/types2/mc/queryerr.mc239
-rw-r--r--private/types2/mc/readme.txt15
-rw-r--r--private/types2/mc/reconcil.mc56
-rw-r--r--private/types2/mc/smctlerr.mc10
-rw-r--r--private/types2/mc/smgmterr.mc54
-rw-r--r--private/types2/mc/sources16
-rw-r--r--private/types2/mc/z_last.x2
-rw-r--r--private/types2/oledb/access.idl61
-rw-r--r--private/types2/oledb/cmdbas.idl45
-rw-r--r--private/types2/oledb/cmdcst.idl112
-rw-r--r--private/types2/oledb/cmdpre.idl30
-rw-r--r--private/types2/oledb/cmdprp.idl50
-rw-r--r--private/types2/oledb/cmdtre.idl213
-rw-r--r--private/types2/oledb/cmdtxt.idl33
-rw-r--r--private/types2/oledb/cmdval.idl29
-rw-r--r--private/types2/oledb/cmdwpr.idl45
-rw-r--r--private/types2/oledb/colinf.idl47
-rw-r--r--private/types2/oledb/colrst.idl35
-rw-r--r--private/types2/oledb/dbccmd.idl29
-rw-r--r--private/types2/oledb/dbcses.idl28
-rw-r--r--private/types2/oledb/dbesrc.idl36
-rw-r--r--private/types2/oledb/dbinfo.idl259
-rw-r--r--private/types2/oledb/dbinit.idl30
-rw-r--r--private/types2/oledb/dbs.idl1215
-rw-r--r--private/types2/oledb/dbscmd.idl35
-rw-r--r--private/types2/oledb/dbsrst.idl70
-rw-r--r--private/types2/oledb/errlup.idl39
-rw-r--r--private/types2/oledb/errrec.idl62
-rw-r--r--private/types2/oledb/inddef.idl48
-rw-r--r--private/types2/oledb/makefile6
-rw-r--r--private/types2/oledb/oledb.idl91
-rw-r--r--private/types2/oledb/oledbtyp.idl38
-rw-r--r--private/types2/oledb/opnrst.idl32
-rw-r--r--private/types2/oledb/prvmon.idl28
-rw-r--r--private/types2/oledb/qrybas.idl33
-rw-r--r--private/types2/oledb/readdt.idl41
-rw-r--r--private/types2/oledb/rstasn.idl34
-rw-r--r--private/types2/oledb/rstbas.idl61
-rw-r--r--private/types2/oledb/rstchg.idl30
-rw-r--r--private/types2/oledb/rstcpr.idl53
-rw-r--r--private/types2/oledb/rstdbk.idl33
-rw-r--r--private/types2/oledb/rstdel.idl30
-rw-r--r--private/types2/oledb/rstfnd.idl52
-rw-r--r--private/types2/oledb/rstidn.idl28
-rw-r--r--private/types2/oledb/rstind.idl66
-rw-r--r--private/types2/oledb/rstinf.idl42
-rw-r--r--private/types2/oledb/rstkys.idl28
-rw-r--r--private/types2/oledb/rstlkr.idl43
-rw-r--r--private/types2/oledb/rstloc.idl89
-rw-r--r--private/types2/oledb/rstnot.idl86
-rw-r--r--private/types2/oledb/rstnra.idl33
-rw-r--r--private/types2/oledb/rstnwr.idl31
-rw-r--r--private/types2/oledb/rstnxr.idl28
-rw-r--r--private/types2/oledb/rstres.idl37
-rw-r--r--private/types2/oledb/rstscr.idl42
-rw-r--r--private/types2/oledb/rstupd.idl59
-rw-r--r--private/types2/oledb/rstwpr.idl37
-rw-r--r--private/types2/oledb/rstwta.idl25
-rw-r--r--private/types2/oledb/rstwtn.idl39
-rw-r--r--private/types2/oledb/rstwtr.idl93
-rw-r--r--private/types2/oledb/rstxsc.idl32
-rw-r--r--private/types2/oledb/sources19
-rw-r--r--private/types2/oledb/tabdef.idl54
-rw-r--r--private/types2/oledb/transact.idl494
-rw-r--r--private/types2/oledb/trnjoi.idl33
-rw-r--r--private/types2/oledb/trnlcl.idl33
-rw-r--r--private/types2/oledb/trnobj.idl27
-rw-r--r--private/types2/oledb/txcoord.idl420
-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
-rw-r--r--private/types2/proxy/dirs4
-rw-r--r--private/types2/proxy/proxy/call_as.c293
-rw-r--r--private/types2/proxy/proxy/makefile6
-rw-r--r--private/types2/proxy/proxy/persist.old194
-rw-r--r--private/types2/proxy/proxy/proxy.def7
-rw-r--r--private/types2/proxy/proxy/sources50
-rw-r--r--private/types2/proxy/proxy/stdrpc.hxx70
-rw-r--r--private/types2/proxy/proxy/transmit.c23
-rw-r--r--private/types2/proxy/proxy/xmit.h49
-rw-r--r--private/types2/proxy/uuid/makefile6
-rw-r--r--private/types2/proxy/uuid/oledbdat.c8
-rw-r--r--private/types2/proxy/uuid/sources30
-rw-r--r--private/types2/query/csstg.idl38
-rw-r--r--private/types2/query/iajack.idl28
-rw-r--r--private/types2/query/iquery.idl56
-rw-r--r--private/types2/query/isearch.idl29
-rw-r--r--private/types2/query/istem.idl29
-rw-r--r--private/types2/query/itable.idl56
-rw-r--r--private/types2/query/itabls.idl65
-rw-r--r--private/types2/query/makefile6
-rw-r--r--private/types2/query/makefile.inc2
-rw-r--r--private/types2/query/psink.idl30
-rw-r--r--private/types2/query/query.idl29
-rw-r--r--private/types2/query/querys.idl424
-rw-r--r--private/types2/query/rststa.idl102
-rw-r--r--private/types2/query/sources20
-rw-r--r--private/types2/query/stemsink.idl25
-rw-r--r--private/types2/query/wbreak.idl54
-rw-r--r--private/types2/query/wsink.idl49
-rw-r--r--private/types2/sysmgmt/aldefs.idl460
-rw-r--r--private/types2/sysmgmt/alrep.idl34
-rw-r--r--private/types2/sysmgmt/altrgt.idl30
-rw-r--r--private/types2/sysmgmt/makefile6
-rw-r--r--private/types2/sysmgmt/sources18
-rw-r--r--private/types2/sysmgmt/sysmgmt.idl29
-rw-r--r--private/types2/types2.inc30
127 files changed, 10151 insertions, 0 deletions
diff --git a/private/types2/catstg/catstg.idl b/private/types2/catstg/catstg.idl
new file mode 100644
index 000000000..0bc44c1c4
--- /dev/null
+++ b/private/types2/catstg/catstg.idl
@@ -0,0 +1,141 @@
+/*++
+
+Copyright (c) 1995 Microsoft Corporation
+
+Module Name:
+
+ catstg.idl
+
+Abstract:
+
+ Interface definition file for the Summary Catalog storage interface.
+
+Author:
+
+ Chris L. Mayhall (chrismay) 10-Apr-1995
+
+Environment:
+
+ These routines are implemented by the ole32.dll library and are
+ callable in user mode code.
+
+Notes:
+
+ none
+
+Revision History:
+
+ 01-Oct-93 DaveMont
+ Created.
+ 01-Aug-94 SethuR
+ Revised for OLEDB integration.
+ 24-May-95 ChrisMay
+ Replaced temporary IID with real IID generated via uuidgen.
+ 10-Jul-95 DaveStr
+ Mods for catstg DRT and added ISummaryCatalogStorageView.
+
+--*/
+
+#include "idlmulti.h"
+
+#ifdef IMPORT_IDL_DEPENDENTS
+import "..\oledb\oledbtyp.idl";
+#include "..\oledb\dbs.idl"
+#endif // IMPORT_IDL_DEPENDENTS
+
+cpp_quote("#ifndef CATALOGSTG_ROWID_INVALID")
+typedef ULONG CATALOGSTG_ROWID;
+
+cpp_quote("#define CATALOGSTG_ROWID_INVALID ((CATALOGSTG_ROWID) 0xffffffff)")
+cpp_quote("#endif // CATALOGSTG_ROWID_INVALID")
+
+typedef enum _CATALOGSTG_ACTION {
+ CATALOGSTG_NOACTION = 0,
+ CATALOGSTG_ADD = 1,
+ CATALOGSTG_UPDATE = 2,
+ CATALOGSTG_REPLACE = 3,
+ CATALOGSTG_DELETE = 4
+} CATALOGSTG_ACTION;
+
+typedef struct _CATALOG_UPDATE_ROWINFO
+{
+ USHORT wAction; // action desired - a CATALOGSTG_ACTION value
+ USHORT wReserved; // Must be zero.
+ CATALOGSTG_ROWID RowId;
+ PVOID pData; // Row Data.
+ HRESULT hr; // update status
+} CATALOG_UPDATE_ROWINFO, *PCATALOG_UPDATE_ROWINFO;
+
+LOCAL_INTERFACE(a3cf4d70-702d-11ce-8b2c-00aa003c9b74)
+interface ISummaryCatalogStorage : IUnknown
+{
+ // Following method is for adding, updating, replacing and deleting
+ // rows. rColumns defines the total set of columns which will be
+ // operated upon. cBindings may be greater than cColumns but there
+ // must exist a value binding in rBindings for each column in rColumns.
+ // In other words:
+ //
+ // for ( 0 <= i < cColumns )
+ // exists ( 0 <= j < cBindings ) where
+ // (i == rBindings[j].iColumn)
+ // &&
+ // (DBCOLUMNPART_VALUE == rBindings[j].dwPart)
+
+ HRESULT UpdateRows
+ (
+ [in] ULONG cColumns,
+ [in] [size_is(cColumns)] DBID *rColumns,
+ [in] ULONG cBindings,
+ [in] [size_is(cBindings)] DBBINDING *rBindings,
+ [in] ULONG cRows,
+ [in, out] [size_is(cRows)] CATALOG_UPDATE_ROWINFO *rRowInfo
+ );
+}
+
+// Following is a primitive view interface intended as a stop-gap
+// measure until OLE has a standard interface. View restriction is
+// implicitly NULL. Key columns should have fSortKey set to TRUE.
+// Ordering of key columns in CATALOG_VIEW_COLUMN.rCols[] defines
+// key priority.
+
+typedef struct _CATALOG_VIEW_COLUMN_
+{
+ DBID colid; // column identifer
+ BOOL fSortKey; // TRUE iff column is a sort key
+ ULONG sortOrder; // QUERY_SORT*
+ LCID locale;
+} CATALOG_VIEW_COLUMN;
+
+typedef struct _CATALOG_VIEW_
+{
+ ULONG id;
+ ULONG cCols;
+ [size_is(cCols)] CATALOG_VIEW_COLUMN *rCols;
+} CATALOG_VIEW;
+
+LOCAL_INTERFACE(8d2bea60-bb95-11ce-a328-00aa004ba935)
+interface ISummaryCatalogStorageView : IUnknown
+{
+ HRESULT CreateView
+ (
+ [in] CATALOG_VIEW *pView,
+ [in] BOOL fWait // wait for view to be constructed
+ );
+
+ HRESULT GetViews
+ (
+ [in, out] ULONG *pcViews,
+ [out] [size_is(*pcViews)] CATALOG_VIEW **prViews
+ );
+
+ HRESULT DeleteView(
+ [in] ULONG id
+ );
+
+ // Use to release memory returned by GetViews.
+
+ HRESULT ReleaseViews(
+ [in] ULONG cViews,
+ [in] [size_is(cViews)] CATALOG_VIEW *rViews
+ );
+}
diff --git a/private/types2/catstg/makefile b/private/types2/catstg/makefile
new file mode 100644
index 000000000..6ee4f43fa
--- /dev/null
+++ b/private/types2/catstg/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/catstg/sources b/private/types2/catstg/sources
new file mode 100644
index 000000000..cd54fae9a
--- /dev/null
+++ b/private/types2/catstg/sources
@@ -0,0 +1,37 @@
+!IF 0
+
+Copyright (c) 1995 Microsoft Corporation
+
+Module Name:
+
+ sources.
+
+Abstract:
+
+ This file specifies the target component being built and the list of
+ sources files needed to build that component. Also specifies optional
+ compiler switches and libraries that are unique for the component being
+ built.
+
+Author:
+
+ Chris Mayhall (ChrisMay)
+
+History:
+
+ 07-Apr-95 ChrisMay
+ Created.
+
+Notes:
+
+ Description of this file is in \nt\public\oak\bin\sources.tpl.
+
+!ENDIF
+
+!include ..\types2.inc
+
+SOURCES = catstg.idl
+
+# Can't have multiple guys partying on ..\proxy\proxy\dlldata.c at once
+SYNCHRONIZE_BLOCK=1
+
diff --git a/private/types2/dirs b/private/types2/dirs
new file mode 100644
index 000000000..a08e50f7c
--- /dev/null
+++ b/private/types2/dirs
@@ -0,0 +1,5 @@
+
+# proxy should always be last
+
+DIRS=oleext query oledb sysmgmt mc catstg proxy
+
diff --git a/private/types2/h/idlmulti.h b/private/types2/h/idlmulti.h
new file mode 100644
index 000000000..648529263
--- /dev/null
+++ b/private/types2/h/idlmulti.h
@@ -0,0 +1,99 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: idlmulti.h
+//
+// Contents: preprocessor trickery to make our .idl/.tdl files compile
+// with MIDL or APBU Mktyplib.
+//
+// History: 27-May-94 DonCl Created
+// 20-Jul-94 ErikGav Remove SDKTOOLS support
+//
+//----------------------------------------------------------------------------
+
+#ifndef __IDLMULTI_H__
+#define __IDLMULTI_H__
+
+#define ENDCOCLASS };
+
+
+#ifndef __MKTYPLIB__
+#define TYPEDEF(guid) \
+typedef
+
+#define LOCAL_INTERFACE(guid) \
+[ \
+ local, \
+ object, \
+ uuid(guid), \
+ pointer_default(unique) \
+]
+
+
+#define REMOTED_INTERFACE(guid) \
+[ \
+ object, \
+ uuid(guid), \
+ pointer_default(unique) \
+]
+
+
+#define BEGINEVENTSET(es) \
+eventset es \
+{ \
+
+#define ENDEVENTSET };
+
+
+#define COCLASS(name, dispint, events) \
+cotype name \
+{ \
+ dispinterface dispint; \
+ eventset events;
+
+
+
+#else // __MKTYPLIB__
+
+#define TYPEDEF(guid) typedef [uuid(guid)]
+
+#define cpp_quote(string)
+
+#define const
+
+#define LOCAL_INTERFACE(guid) \
+[ \
+ uuid(guid), \
+ odl \
+]
+
+#define REMOTED_INTERFACE(guid) \
+[ \
+ uuid(guid), \
+ odl \
+]
+
+#define BEGINEVENTSET(es) \
+dispinterface es \
+{ \
+properties: \
+ \
+methods: \
+
+#define ENDEVENTSET };
+
+
+#define COCLASS(name, dispint, events) \
+coclass name \
+{ \
+ [default] dispinterface dispint; \
+ [source, default] dispinterface events; \
+
+
+
+#endif /// MKTYPLIB
+
+#endif // __IDLMULTI_H__
+
diff --git a/private/types2/mc/a_first.x b/private/types2/mc/a_first.x
new file mode 100644
index 000000000..d6edc27f8
--- /dev/null
+++ b/private/types2/mc/a_first.x
@@ -0,0 +1,25 @@
+;#ifndef _ALLERROR_H_
+;#define _ALLERROR_H_
+
+;#ifndef FACILITY_WINDOWS
+
+MessageIdTypedef=HRESULT
+
+SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
+ CoError=0x2:STATUS_SEVERITY_COERROR
+ CoFail=0x3:STATUS_SEVERITY_COFAIL
+ )
+
+FacilityNames=(Interface=0x4:FACILITY_ITF
+ Windows=0x8:FACILITY_WINDOWS
+ )
+
+MessageId=0 Facility=Windows Severity=Success SymbolicName=NOT_AN_ERROR
+Language=English
+NOTE: This dummy error message is necessary to force MC to output
+ the above defines inside the FACILITY_WINDOWS guard instead
+ of leaving it empty.
+.
+
+;#endif // FACILITY_WINDOWS
+
diff --git a/private/types2/mc/allerror.mc b/private/types2/mc/allerror.mc
new file mode 100644
index 000000000..1b80008d7
--- /dev/null
+++ b/private/types2/mc/allerror.mc
@@ -0,0 +1,833 @@
+;#ifndef _ALLERROR_H_
+;#define _ALLERROR_H_
+
+;#ifndef FACILITY_WINDOWS
+
+MessageIdTypedef=HRESULT
+
+SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
+ CoError=0x2:STATUS_SEVERITY_COERROR
+ CoFail=0x3:STATUS_SEVERITY_COFAIL
+ )
+
+FacilityNames=(Interface=0x4:FACILITY_ITF
+ Windows=0x8:FACILITY_WINDOWS
+ )
+
+MessageId=0 Facility=Windows Severity=Success SymbolicName=NOT_AN_ERROR
+Language=English
+NOTE: This dummy error message is necessary to force MC to output
+ the above defines inside the FACILITY_WINDOWS guard instead
+ of leaving it empty.
+.
+
+;#endif // FACILITY_WINDOWS
+
+;#ifndef _OLEDBERR_H_
+;#define _OLEDBERR_H_
+
+;#ifndef FACILITY_WINDOWS
+
+MessageIdTypedef=HRESULT
+
+SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
+ CoError=0x2:STATUS_SEVERITY_COERROR
+ CoFail=0x3:STATUS_SEVERITY_COFAIL
+ )
+
+FacilityNames=(Interface=0x4:FACILITY_ITF
+ Windows=0x8:FACILITY_WINDOWS
+ )
+
+MessageId=0x0eff Facility=Interface Severity=CoError SymbolicName=DB_E_BADACCESSORHANDLE
+Language=English
+Dummy error - need this error so that mc puts the above defines
+inside the FACILITY_WINDOWS guard, instead of leaving it empty
+.
+;#endif // FACILITY_WINDOWS
+
+;//
+;// Codes 0x0e00-0x0eff are reserved for the OLE DB group of
+;// interfaces.
+;//
+;// 0x0e31 is free...
+;//
+
+MessageId=0x0e00 Facility=Interface Severity=CoError SymbolicName=DB_E_BADACCESSORHANDLE
+Language=English
+Invalid accessor
+.
+MessageId=0x0e01 Facility=Interface Severity=CoError SymbolicName=DB_E_ROWLIMITEXCEEDED
+Language=English
+Creating another row would have exceeded the total number of active
+rows supported by the rowset
+.
+MessageId=0x0e02 Facility=Interface Severity=CoError SymbolicName=DB_E_READONLYACCESSOR
+Language=English
+Unable to write with a read-only accessor
+.
+MessageId=0x0e03 Facility=Interface Severity=CoError SymbolicName=DB_E_SCHEMAVIOLATION
+Language=English
+Given values violate the database schema
+.
+MessageId=0x0e04 Facility=Interface Severity=CoError SymbolicName=DB_E_BADROWHANDLE
+Language=English
+Invalid row handle
+.
+MessageId=0x0e05 Facility=Interface Severity=CoError SymbolicName=DB_E_OBJECTOPEN
+Language=English
+Accessor specified a column loaded with LoadObject that has not been
+unloaded
+.
+MessageId=0x0e06 Facility=Interface Severity=CoError SymbolicName=DB_E_BADCHAPTER
+Language=English
+Invalid chapter
+.
+MessageId=0x0e07 Facility=Interface Severity=CoError SymbolicName=DB_E_INTERFACECONFLICT
+Language=English
+The specified interface conflicts with an existing interface goal
+.
+MessageId=0x0e08 Facility=Interface Severity=CoError SymbolicName=DB_E_BADBINDINFO
+Language=English
+Invalid binding info
+.
+MessageId=0x0e09 Facility=Interface Severity=CoError SymbolicName=DB_E_ACCESSVIOLATION
+Language=English
+Access violation
+.
+MessageId=0x0e0a Facility=Interface Severity=CoError SymbolicName=DB_E_NOTAREFERENCECOLUMN
+Language=English
+Specified column does not contain bookmarks or chapters
+.
+MessageId=0x0e0c Facility=Interface Severity=CoError SymbolicName=DB_E_ROWSETOPEN
+Language=English
+A rowset was open on the query
+.
+MessageId=0x0e0d Facility=Interface Severity=CoError SymbolicName=DB_E_COSTLIMIT
+Language=English
+Unable to find a query plan within the given cost limit
+.
+MessageId=0x0e0e Facility=Interface Severity=CoError SymbolicName=DB_E_BADBOOKMARK
+Language=English
+Invalid bookmark
+.
+MessageId=0x0e0f Facility=Interface Severity=CoError SymbolicName=DB_E_BADLOCKMODE
+Language=English
+Invalid lock mode
+.
+MessageId=0x0e10 Facility=Interface Severity=CoError SymbolicName=DB_E_PARAMNOTOPTIONAL
+Language=English
+No value given for one or more required parameters
+.
+MessageId=0x0e11 Facility=Interface Severity=CoError SymbolicName=DB_E_COLUMNUNAVAILABLE
+Language=English
+Invalid column ID
+.
+MessageId=0x0e12 Facility=Interface Severity=CoError SymbolicName=DB_E_BADRATIO
+Language=English
+Invalid ratio
+.
+MessageId=0x0e13 Facility=Interface Severity=CoError SymbolicName=DB_E_BADVALUES
+Language=English
+Invalid value
+.
+MessageId=0x0e14 Facility=Interface Severity=CoError SymbolicName=DB_E_ERRORSINTREE
+Language=English
+Query tree contained one or more errors
+.
+MessageId=0x0e15 Facility=Interface Severity=CoError SymbolicName=DB_E_BADPARAMETER
+Language=English
+Invalid parameter
+.
+MessageId=0x0e16 Facility=Interface Severity=CoError SymbolicName=DB_E_BADPARAMETERCOUNT
+Language=English
+More values than parameters
+.
+MessageId=0x0e17 Facility=Interface Severity=CoError SymbolicName=DB_E_BADVARTYPE
+Language=English
+Value is not a VARIANT
+.
+MessageId=0x0e18 Facility=Interface Severity=CoError SymbolicName=DB_E_DUPLICATEPARAM
+Language=English
+More than one value was supplied for a given parameter
+.
+MessageId=0x0e19 Facility=Interface Severity=CoError SymbolicName=DB_E_OVERFLOW
+Language=English
+Parameter value outside valid domain for that parameter
+.
+MessageId=0x0e1a Facility=Interface Severity=CoError SymbolicName=DB_E_PARAMNOTFOUND
+Language=English
+Parameter ID was not matched
+.
+MessageId=0x0e1b Facility=Interface Severity=CoError SymbolicName=DB_E_TYPEMISMATCH
+Language=English
+Value was not of a type that could be coerced to the parameter
+.
+MessageId=0x0e1c Facility=Interface Severity=CoError SymbolicName=DB_E_GOALREJECTED
+Language=English
+No nonzero weights specified for any goals supported, so goal was
+rejected; current goal was not changed
+.
+MessageId=0x0e1d Facility=Interface Severity=CoError SymbolicName=DB_E_CANTCOERCE
+Language=English
+Requested coercion is not legal
+.
+MessageId=0x0e1e Facility=Interface Severity=CoError SymbolicName=DB_E_NOTUPDATED
+Language=English
+Chapter contained changed rows which are not yet updated
+.
+MessageId=0x0e1f Facility=Interface Severity=CoError SymbolicName=DB_E_NOQUERY
+Language=English
+Information was requested for a query, and the query was not set
+.
+MessageId=0x0e20 Facility=Interface Severity=CoError SymbolicName=DB_E_NOTREENTRANT
+Language=English
+Provider called a method from IRowsetNotify in the consumer and the
+method has not yet returned
+.
+MessageId=0x0e21 Facility=Interface Severity=CoError SymbolicName=DB_E_BADROWSET
+Language=English
+A non-existant rowset was specified
+.
+MessageId=0x0e22 Facility=Interface Severity=CoError SymbolicName=DB_E_NOAGGREGATION
+Language=English
+A non-NULL controlling IUnknown was specified and the object being
+created does not support aggregation
+.
+MessageId=0x0e23 Facility=Interface Severity=CoError SymbolicName=DB_E_DELETEDROW
+Language=English
+A given HROW referred to a hard- or soft-deleted row
+.
+MessageId=0x0e24 Facility=Interface Severity=CoError SymbolicName=DB_E_CANTFETCHBACKWARDS
+Language=English
+The rowset does not support fetching backwards
+.
+MessageId=0x0e25 Facility=Interface Severity=CoError SymbolicName=DB_E_ROWSNOTRELEASED
+Language=English
+All HROWs must be released before new ones can be obtained
+.
+MessageId=0x0e26 Facility=Interface Severity=CoError SymbolicName=DB_E_INVALID
+Language=English
+The rowset was not chaptered
+.
+MessageId=0x0e27 Facility=Interface Severity=CoError SymbolicName=DB_E_CANTCREATEACCESSOR
+Language=English
+An accessor has already been created and the
+DBROWSETFLAGS_MULTIPLEACCESSOR flag was not set
+.
+MessageId=0x0e28 Facility=Interface Severity=CoError SymbolicName=DB_E_NEEDDATA
+Language=English
+DBINIT_NOPROMPT was specified and the provider cannot be initialized
+without prompting for information
+.
+MessageId=0x0e29 Facility=Interface Severity=CoError SymbolicName=DB_E_CANTSCROLLBACKWARDS
+Language=English
+The rowset cannot scroll backwards
+.
+MessageId=0x0e2a Facility=Interface Severity=CoError SymbolicName=DB_E_BADREGIONHANDLE
+Language=English
+Invalid region handle
+.
+MessageId=0x0e2b Facility=Interface Severity=CoError SymbolicName=DB_E_NONCONTIGUOUSRANGE
+Language=English
+The specified set of rows was not contiguous to or overlapping the
+rows in the specified watch region
+.
+MessageId=0x0e2c Facility=Interface Severity=CoError SymbolicName=DB_E_INVALIDTRANSITION
+Language=English
+A transition from ALL* to MOVE* or EXTEND* was specified
+.
+MessageId=0x0e2d Facility=Interface Severity=CoError SymbolicName=DB_E_NOTASUBREGION
+Language=English
+The specified region is not a proper subregion of the region
+identified by the given watch region handle
+.
+MessageId=0x0e2e Facility=Interface Severity=CoError SymbolicName=DB_E_NOCOMMAND
+Language=English
+No command has been specified for the command object
+.
+MessageId=0x0e2f Facility=Interface Severity=CoError SymbolicName=DB_E_INTEGRITYVIOLATION
+Language=English
+A specified value violated the integrity constraints for a column or
+table
+.
+MessageId=0x0e30 Facility=Interface Severity=CoError SymbolicName=DB_E_PROPERTIESNOTAVAILABLE
+Language=English
+Some of the requiried properties could not be met
+.
+MessageId=0x0e31 Facility=Interface Severity=CoError SymbolicName=DB_E_ABORTLIMITREACHED
+Language=English
+Execution aborted because a resource limit has been reached; no
+results have been returned
+.
+MessageId=0x0e32 Facility=Interface Severity=CoError SymbolicName=DB_E_ROWSETINCOMMAND
+Language=English
+Cannot clone a command object whose command tree contains a rowset
+or rowsets
+.
+MessageId=0x0e33 Facility=Interface Severity=CoError SymbolicName=DB_E_CANTTRANSLATE
+Language=English
+Cannot represent the current tree as text
+.
+MessageId=0x0e34 Facility=Interface Severity=CoError SymbolicName=DB_E_DUPLICATEINDEXID
+Language=English
+The specified index already exists
+.
+MessageId=0x0e35 Facility=Interface Severity=CoError SymbolicName=DB_E_NOINDEX
+Language=English
+The specified index does not exist
+.
+MessageId=0x0e36 Facility=Interface Severity=CoError SymbolicName=DB_E_INDEXINUSE
+Language=English
+The specified index was in use
+.
+MessageId=0x0e37 Facility=Interface Severity=CoError SymbolicName=DB_E_NOTABLE
+Language=English
+The specified table does not exist
+.
+MessageId=0x0e38 Facility=Interface Severity=CoError SymbolicName=DB_E_CONCURRENCYVIOLATION
+Language=English
+The rowset was using optimistic concurrency and the value of a
+column has been changed since it was last read
+.
+MessageId=0x0e39 Facility=Interface Severity=CoError SymbolicName=DB_E_BADCOPY
+Language=English
+Errors were detected during the copy
+.
+MessageId=0x0e3a Facility=Interface Severity=CoError SymbolicName=DB_E_BADPRECISION
+Language=English
+A specified precision was invalid
+.
+MessageId=0x0e3b Facility=Interface Severity=CoError SymbolicName=DB_E_BADSCALE
+Language=English
+A specified scale was invalid
+.
+MessageId=0x0e3c Facility=Interface Severity=CoError SymbolicName=DB_E_BADID
+Language=English
+Invalid table ID
+.
+MessageId=0x0e3d Facility=Interface Severity=CoError SymbolicName=DB_E_BADTYPE
+Language=English
+A specified type was invalid
+.
+MessageId=0x0e3e Facility=Interface Severity=CoError SymbolicName=DB_E_DUPLICATECOLUMNID
+Language=English
+A column ID was occurred more than once in the specification
+.
+MessageId=0x0e3f Facility=Interface Severity=CoError SymbolicName=DB_E_DUPLICATETABLEID
+Language=English
+The specified table already exists
+.
+MessageId=0x0e40 Facility=Interface Severity=CoError SymbolicName=DB_E_TABLEINUSE
+Language=English
+The specified table was in use
+.
+MessageId=0x0e41 Facility=Interface Severity=CoError SymbolicName=DB_E_NOLOCALE
+Language=English
+The specified locale ID was not supported
+.
+MessageId=0x0e42 Facility=Interface Severity=CoError SymbolicName=DB_E_BADRECORDNUM
+Language=English
+The specified record number is invalid
+.
+MessageId=0x0ec3 Facility=Interface Severity=CoError SymbolicName=DB_E_BOOKMARKSKIPPED
+Language=English
+Skipped bookmark for deleted or non-member row
+.
+
+MessageId=0x0ec0 Facility=Interface Severity=Success SymbolicName=DB_S_ROWLIMITEXCEEDED
+Language=English
+Fetching requested number of rows would have exceeded total number of
+active rows supported by the rowset
+.
+MessageId=0x0ec1 Facility=Interface Severity=Success SymbolicName=DB_S_ROWNOTFOUND
+Language=English
+Unable to find row for given bookmark
+.
+MessageId=0x0ec2 Facility=Interface Severity=Success SymbolicName=DB_S_ENDOFRESULTSET
+Language=English
+Reached start or end of result set
+.
+MessageId=0x0ec3 Facility=Interface Severity=Success SymbolicName=DB_S_BOOKMARKSKIPPED
+Language=English
+Skipped bookmark for deleted or non-member row
+.
+MessageId=0x0ec4 Facility=Interface Severity=Success SymbolicName=DB_S_ERRORSINTREE
+Language=English
+Errors found in validating tree
+.
+MessageId=0x0ec5 Facility=Interface Severity=Success SymbolicName=DB_S_NONEXTROWSET
+Language=English
+There are no more rowsets
+.
+MessageId=0x0ec6 Facility=Interface Severity=Success SymbolicName=DB_S_ENDOFROWSET
+Language=English
+Reached start or end of rowset or chapter
+.
+;//BUGBUG - DB_S_BLOCKLIMITEDROWS is not officially sanctioned.
+MessageId=0x0ec7 Facility=Interface Severity=Success SymbolicName=DB_S_BLOCKLIMITEDROWS
+Language=English
+Execution aborted because a resource limit has been reached; no
+results have been returned
+.
+MessageId=0x0ec8 Facility=Interface Severity=Success SymbolicName=DB_S_BUFFERFULL
+Language=English
+Variable data buffer full
+.
+MessageId=0x0ec9 Facility=Interface Severity=Success SymbolicName=DB_S_CANTCOERCE
+Language=English
+Couldn't perform specified type coercion
+.
+MessageId=0x0eca Facility=Interface Severity=Success SymbolicName=DB_S_CANTRELEASE
+Language=English
+Server cannot release or downgrade a lock until the end of the
+transaction
+.
+MessageId=0x0ecb Facility=Interface Severity=Success SymbolicName=DB_S_GOALCHANGED
+Language=English
+Specified weight was not supported or exceeded the supported limit
+and was set to 0 or the supported limit
+.
+MessageId=0x0ecd Facility=Interface Severity=Success SymbolicName=DB_S_DIALECTIGNORED
+Language=English
+Input dialect was ignored and text was returned in different
+dialect
+.
+MessageId=0x0ece Facility=Interface Severity=Success SymbolicName=DB_S_UNWANTEDPHASE
+Language=English
+Consumer is uninterested in receiving further notification calls for
+this phase
+.
+MessageId=0x0ecf Facility=Interface Severity=Success SymbolicName=DB_S_UNWANTEDEVENT
+Language=English
+Consumer is uninterested in receiving further notification calls to
+this method
+.
+MessageId=0x0ed0 Facility=Interface Severity=Success SymbolicName=DB_S_COLUMNUNAVAILABLE
+Language=English
+Invalid column ID
+.
+MessageId=0x0ed1 Facility=Interface Severity=Success SymbolicName=DB_S_COLUMNSCHANGED
+Language=English
+In order to reposition to the start of the rowset, the provider had
+to reexecute the query; either the order of the columns changed or
+columns were added to or removed from the rowset
+.
+MessageId=0x0ed2 Facility=Interface Severity=Success SymbolicName=DB_S_ERRORSRETURNED
+Language=English
+The method had some errors; errors have been returned in the error
+array
+.
+MessageId=0x0ed3 Facility=Interface Severity=Success SymbolicName=DB_S_BADROWHANDLE
+Language=English
+Invalid row handle
+.
+MessageId=0x0ed4 Facility=Interface Severity=Success SymbolicName=DB_S_DELETEDROW
+Language=English
+A given HROW referred to a hard-deleted row
+.
+MessageId=0x0ed5 Facility=Interface Severity=Success SymbolicName=DB_S_TOOMANYCHANGES
+Language=English
+The provider was unable to keep track of all the changes; the client
+must refetch the data associated with the watch region using another
+method
+.
+MessageId=0x0ed6 Facility=Interface Severity=Success SymbolicName=DB_S_STOPLIMITREACHED
+Language=English
+Execution stopped because a resource limit has been reached; results
+obtained so far have been returned but execution cannot be resumed
+.
+MessageId=0x0ed7 Facility=Interface Severity=Success SymbolicName=DB_S_SUSPENDLIMITREACHED
+Language=English
+Execution suspended because a resource limit has been reached;
+results obtained so far have been returned and execution can be
+resumed later
+.
+MessageId=0x0ed8 Facility=Interface Severity=Success SymbolicName=DB_S_LOCKUPGRADED
+Language=English
+A lock was upgraded from the value specified
+.
+MessageId=0x0ed9 Facility=Interface Severity=Success SymbolicName=DB_S_PROPERTIESCHANGED
+Language=English
+One or more properties were changed as allowed by provider
+.
+MessageId=0x0eda Facility=Interface Severity=Success SymbolicName=DB_S_ERRORSOCCURRED
+Language=English
+Some errors occurred
+.
+MessageId=0x0edb Facility=Interface Severity=Success SymbolicName=DB_S_PARAMUNAVAILABLE
+Language=English
+A specified parameter was invalid
+.
+MessageId=0x0edc Facility=Interface Severity=Success SymbolicName=DB_S_CANCELED
+Language=English
+The change was canceled during notification; no columns are changed
+.
+MessageId=0x0edd Facility=Interface Severity=Success SymbolicName=DB_S_COLUMNTYPEMISMATCH
+Language=English
+One or more column types are incompatible; conversion errors will
+occur during copying
+.
+;#endif // _OLEDBERR_H_
+;//
+;// Codes 0x1600-0x16ff are reserved for QUERY / TABLE
+;//
+
+MessageId=0x1600 Facility=Interface Severity=CoError SymbolicName=QUERY_E_FAILED
+Language=English
+Call failed for unknown reason.
+.
+MessageId=0x1601 Facility=Interface Severity=CoError SymbolicName=QUERY_E_INVALIDQUERY
+Language=English
+Invalid parameter.
+.
+MessageId=0x1602 Facility=Interface Severity=CoError SymbolicName=QUERY_E_INVALIDRESTRICTION
+Language=English
+The query restriction could not be parsed.
+.
+MessageId=0x1603 Facility=Interface Severity=CoError SymbolicName=QUERY_E_INVALIDSORT
+Language=English
+An invalid sort order was requested.
+.
+MessageId=0x1604 Facility=Interface Severity=CoError SymbolicName=QUERY_E_INVALIDCATEGORIZE
+Language=English
+An invalid categorization order was requested.
+.
+MessageId=0x1605 Facility=Interface Severity=CoError SymbolicName=QUERY_E_ALLNOISE
+Language=English
+The query contained only ignored words.
+.
+MessageId=0x1606 Facility=Interface Severity=CoError SymbolicName=QUERY_E_TOOCOMPLEX
+Language=English
+The query was too complex to be executed.
+.
+
+;//
+;// ITable error codes
+;//
+
+MessageId=0x1620 Facility=Interface Severity=CoError SymbolicName=TBL_E_CALLFAILED
+Language=English
+Call failed for unknown reason.
+.
+MessageId=0x1621 Facility=Interface Severity=CoError SymbolicName=TBL_E_UNKNOWNCOLS
+Language=English
+Cannot find column(s) specified.
+.
+MessageId=0x1622 Facility=Interface Severity=CoError SymbolicName=TBL_E_UNABLETOCOMPLETE
+Language=English
+Unable to complete request.
+.
+MessageId=0x1623 Facility=Interface Severity=CoError SymbolicName=TBL_E_INVALIDBOOKMARK
+Language=English
+Specified bookmark does not reference any row in table.
+.
+MessageId=0x1624 Facility=Interface Severity=Success SymbolicName=TBL_W_ENDOFTABLE
+Language=English
+End of table reached.
+.
+MessageId=0x1625 Facility=Interface Severity=Success SymbolicName=TBL_W_POSITIONCHANGED
+Language=English
+Position changed.
+.
+
+;//
+;// Filter daemon error codes
+;//
+
+MessageId=0x1680 Facility=Interface Severity=Success SymbolicName=FDAEMON_W_WORDLISTFULL
+Language=English
+Wordlist has reached maximum size. Additional documents should not be filtered.
+.
+MessageId=0x1681 Facility=Interface Severity=CoError SymbolicName=FDAEMON_E_LOWRESOURCE
+Language=English
+The system is running out of one of more resources needed for filtering, usually memory.
+.
+MessageId=0x1682 Facility=Interface Severity=CoError SymbolicName=FDAEMON_E_FATALERROR
+Language=English
+A critical error occurred during document filtering. Consult system administrator.
+.
+MessageId=0x1683 Facility=Interface Severity=CoError SymbolicName=FDAEMON_E_PARTITIONDELETED
+Language=English
+Documents not stored in content index because partition has been deleted.
+.
+MessageId=0x1684 Facility=Interface Severity=CoError SymbolicName=FDAEMON_E_CHANGEUPDATEFAILED
+Language=English
+Documents not stored in content index because update of changelist failed.
+.
+MessageId=0x1685 Facility=Interface Severity=Success SymbolicName=FDAEMON_W_EMPTYWORDLIST
+Language=English
+Final wordlist was empty.
+.
+MessageId=0x1686 Facility=Interface Severity=CoError SymbolicName=FDAEMON_E_WORDLISTCOMMITFAILED
+Language=English
+Commit of wordlist failed. Data not available for query.
+.
+MessageId=0x1687 Facility=Interface Severity=CoError SymbolicName=FDAEMON_E_NOWORDLIST
+Language=English
+No wordlist is being constructed. May happen after fatal filter error.
+.
+MessageId=0x1688 Facility=Interface Severity=CoError SymbolicName=FDAEMON_E_TOOMANYFILTEREDBLOCKS
+Language=English
+During document filtering the limit on buffers has been exceeded.
+.
+
+
+;//
+;// ISearch error codes
+;//
+
+MessageId=0x16a0 Facility=Interface Severity=Success SymbolicName=SEARCH_S_NOMOREHITS
+Language=English
+End of hits has been reached.
+.
+MessageId=0x16a1 Facility=Interface Severity=CoError SymbolicName=SEARCH_E_NOMONIKER
+Language=English
+Retrival of hits as monikers is not supported (by filter passed into Init).
+.
+MessageId=0x16a2 Facility=Interface Severity=CoError SymbolicName=SEARCH_E_NOREGION
+Language=English
+Retrival of hits as filter regions is not supported (by filter passed into Init).
+.
+
+
+;//
+;// CI error codes
+;//
+
+MessageId=0x1730 Facility=Interface Severity=CoError SymbolicName=FILTER_E_TOO_BIG
+Language=English
+File is too large to filter.
+.
+MessageId=0x1731 Facility=Interface Severity=Success SymbolicName=FILTER_S_PARTIAL_CONTENTSCAN_IMMEDIATE
+Language=English
+A partial content scan of the disk needs to be scheduled for immediate execution.
+.
+MessageId=0x1732 Facility=Interface Severity=Success SymbolicName=FILTER_S_FULL_CONTENTSCAN_IMMEDIATE
+Language=English
+A full content scan of the disk needs to be scheduled for immediate execution.
+.
+MessageId=0x1733 Facility=Interface Severity=Success SymbolicName=FILTER_S_CONTENTSCAN_DELAYED
+Language=English
+A content scan of the disk needs to be scheduled for execution later.
+.
+MessageId=0x1734 Facility=Interface Severity=CoFail SymbolicName=FILTER_E_CONTENTINDEXCORRUPT
+Language=English
+The content index is corrupt. A content scan will to be scheduled after chkdsk or autochk is run.
+.
+MessageId=0x1735 Facility=Interface Severity=CoFail SymbolicName=CI_CORRUPT_DATABASE
+Language=English
+The content index is corrupt.
+.
+MessageId=0x1736 Facility=Interface Severity=CoFail SymbolicName=CI_CORRUPT_CATALOG
+Language=English
+The content index meta data is corrupt.
+.
+MessageId=0x1737 Facility=Interface Severity=CoFail SymbolicName=CI_INVALID_PARTITION
+Language=English
+The content index partition is invalid.
+.
+MessageId=0x1738 Facility=Interface Severity=CoFail SymbolicName=CI_INVALID_PRIORITY
+Language=English
+The priority is invalid.
+.
+MessageId=0x1739 Facility=Interface Severity=CoFail SymbolicName=CI_NO_STARTING_KEY
+Language=English
+There is no starting key.
+.
+MessageId=0x173a Facility=Interface Severity=CoFail SymbolicName=CI_OUT_OF_INDEX_IDS
+Language=English
+The content index is out of index ids.
+.
+MessageId=0x173b Facility=Interface Severity=CoFail SymbolicName=CI_NO_CATALOG
+Language=English
+There is no catalog.
+.
+MessageId=0x173c Facility=Interface Severity=CoFail SymbolicName=CI_CORRUPT_FILTER_BUFFER
+Language=English
+The filter buffer is corrupt.
+.
+MessageId=0x173d Facility=Interface Severity=CoFail SymbolicName=CI_INVALID_INDEX
+Language=English
+The index is invalid.
+.
+MessageId=0x173e Facility=Interface Severity=CoFail SymbolicName=CI_PROPSTORE_INCONSISTENCY
+Language=English
+Inconsistency in property store detected.
+.
+MessageId=0x173f Facility=Interface Severity=Success SymbolicName=FILTER_S_DISK_FULL
+Language=English
+The disk is getting full.
+.
+
+
+
+;//
+;// Word breaker error codes
+;//
+
+
+MessageId=0x1780 Facility=Interface Severity=CoError SymbolicName=WBREAK_E_END_OF_TEXT
+Language=English
+End of text reached in text source.
+.
+MessageId=0x1781 Facility=Interface Severity=Success SymbolicName=LANGUAGE_S_LARGE_WORD
+Language=English
+Word larger than maximum length. May be truncated by word sink.
+.
+MessageId=0x1782 Facility=Interface Severity=CoError SymbolicName=WBREAK_E_QUERY_ONLY
+Language=English
+Feature only available in query mode.
+.
+MessageId=0x1783 Facility=Interface Severity=CoError SymbolicName=WBREAK_E_BUFFER_TOO_SMALL
+Language=English
+Buffer too small to hold composed phrase.
+.
+MessageId=0x1784 Facility=Interface Severity=CoError SymbolicName=LANGUAGE_E_DATABASE_NOT_FOUND
+Language=English
+Langauge database/cache file could not be found.
+.
+MessageId=0x1785 Facility=Interface Severity=CoError SymbolicName=WBREAK_E_INIT_FAILED
+Language=English
+Initialization of word breaker failed.
+.
+MessageId=0x1790 Facility=Interface Severity=CoError SymbolicName=PSINK_E_QUERY_ONLY
+Language=English
+Feature only available in query mode.
+.
+MessageId=0x1791 Facility=Interface Severity=CoError SymbolicName=PSINK_E_INDEX_ONLY
+Language=English
+Feature only available in index mode.
+.
+MessageId=0x1792 Facility=Interface Severity=CoError SymbolicName=PSINK_E_LARGE_ATTACHMENT
+Language=English
+Attachment type beyond valid range.
+.
+MessageId=0x1793 Facility=Interface Severity=Success SymbolicName=PSINK_S_LARGE_WORD
+Language=English
+Word larger than maximum length. May be truncated by phrase sink.
+.
+
+
+;// Error codes for IReconcileInitiator, IReconcilableObject, IDifferencing.
+;// Definitions taken from \\ole\slm\src\concord\spec\revcons2.doc.
+
+MessageId=0x1000 Facility=Interface Severity=CoError SymbolicName=REC_E_NOVERSION
+Language=English
+The requested version is unavailable.
+.
+MessageId=0x1001 Facility=Interface Severity=Success SymbolicName=REC_E_NOTCOMPLETE
+Language=English
+The reconciliation is only partially complete.
+.
+MessageId=0x1002 Facility=Interface Severity=CoError SymbolicName=REC_E_ABORTED
+Language=English
+Reconciliation aborted via abort callback.
+.
+MessageId=0x1003 Facility=Interface Severity=CoError SymbolicName=REC_E_NOCALLBACK
+Language=English
+No callback from the recocniler.
+.
+MessageId=0x1004 Facility=Interface Severity=CoError SymbolicName=REC_E_NORESIDUES
+Language=English
+The implementation does not support generation of residues.
+.
+MessageId=0x1005 Facility=Interface Severity=CoError SymbolicName=REC_E_WRONGOBJECT
+Language=English
+Callee is not the same version as that which created the difference.
+.
+MessageId=0x1006 Facility=Interface Severity=CoError SymbolicName=REC_E_TOODIFFERENT
+Language=English
+The document versions are too dissimilar to reconcile.
+.
+
+;// Following so reconcile initiators can implement propagation dampening.
+
+MessageId=0x1007 Facility=Interface Severity=CoError SymbolicName=REC_S_OBJECTSIDENTICAL
+Language=English
+The objects are identical - i.e. further reconciliation would not result in any changes to either object.
+.
+
+;// Following not defined in revcons2.doc, but defined by Chicago briefcase.
+;// BUGBUG - MessageId/Facility are most likely incorrect.
+
+MessageId= Facility=Interface Severity=CoError SymbolicName=REC_E_INEEDTODOTHEUPDATES
+Language=English
+The destination needs to be changed
+.
+MessageId= Facility=Interface Severity=Success SymbolicName=REC_S_IDIDTHEUPDATES
+Language=English
+The destination needs to be changed
+.
+MessageId= Facility=Interface Severity=Success SymbolicName=REC_S_NOTCOMPLETEBUTPROPAGATE
+Language=English
+The destination needs to be changed
+.
+
+;//
+;// Codes 0x1000-0x10ff are reserved for the SYSMGMT component controls
+;// interfaces.
+;//
+
+MessageId=0x1000 Facility=Windows Severity=CoError SymbolicName=CTRL_E_NO_RESOURCE
+Language=English
+A control failure has occured because a system resource could not be obtained
+.
+
+;//
+;// Codes 0x0e00-0x0f9f are reserved for the SYSMGMT control panel
+;// interfaces.
+;//
+;// The following ranges are to prevent slm merge collisions during the initial
+;// error code checkins. These ranges will be revised when we have a better
+;// idea of the actual number of error codes for each component.
+
+MessageId=0x0e00 Facility=Windows Severity=CoError SymbolicName=CPANEL_E_NOTTARGETED
+Language=English
+This control panel does not target the required type of profile.
+.
+MessageId=0x0e01 Facility=Windows Severity=CoError SymbolicName=CPANEL_E_DROPDATAREAD
+Language=English
+The profile data dropped on a control panel cannot be read. The data
+is either corrupt or was not read back properly by a controller that wrote
+part of the data.
+.
+MessageId=0x0e02 Facility=Windows Severity=CoError SymbolicName=CPANEL_E_LOCALONLY
+Language=English
+A controller that can only operate on the local machine was asked to operate
+on a remote machine.
+.
+
+;//
+;// Codes 0x1200-0x14ff are reserved for the SYSMGMT project in general
+;// interfaces.
+;//
+
+;// INSTRUM error codes below here (Starts at 0x1200)
+;// INSTRUM error codes above here
+
+;// SWM error codes below here (Starts at 0x1300)
+
+MessageId=0x1300 Facility=Windows Severity=CoError SymbolicName=SWM_E_INVALIDPDF
+Language=English
+The file is not a valid PDF.
+.
+MessageId=0x1301 Facility=Windows Severity=CoError SymbolicName=SWM_E_INVALIDPDFVERSION
+Language=English
+Software Management does not support this version of the PDF.
+.
+MessageId=0x1302 Facility=Windows Severity=CoError SymbolicName=SWM_E_INTERNALERROR
+Language=English
+An internal error has occurred in Software Management.
+.
+
+;// SWM error codes above here
+
+;// USER error codes below here (Starts at 0x1400)
+;// USER error codes above here
+
+
+
+;#endif // _ALLERROR_H_
+
+ \ No newline at end of file
diff --git a/private/types2/mc/makefile b/private/types2/mc/makefile
new file mode 100644
index 000000000..6ee4f43fa
--- /dev/null
+++ b/private/types2/mc/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/mc/makefile.inc b/private/types2/mc/makefile.inc
new file mode 100644
index 000000000..f1ea7253b
--- /dev/null
+++ b/private/types2/mc/makefile.inc
@@ -0,0 +1,8 @@
+
+allerror.mc: queryerr.mc smctlerr.mc \
+ smgmterr.mc oledberr.mc reconcil.mc
+ -attrib -r allerror.mc 2>nul
+ -del allerror.mc 2>nul
+ copy a_first.x + *.mc + z_last.x allerror.x
+ ren allerror.x allerror.mc
+ echo Build_Status allerror.mc was rebuilt...
diff --git a/private/types2/mc/oledberr.mc b/private/types2/mc/oledberr.mc
new file mode 100644
index 000000000..d2aa45764
--- /dev/null
+++ b/private/types2/mc/oledberr.mc
@@ -0,0 +1,446 @@
+;#ifndef _OLEDBERR_H_
+;#define _OLEDBERR_H_
+
+;#ifndef FACILITY_WINDOWS
+
+MessageIdTypedef=HRESULT
+
+SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
+ CoError=0x2:STATUS_SEVERITY_COERROR
+ CoFail=0x3:STATUS_SEVERITY_COFAIL
+ )
+
+FacilityNames=(Interface=0x4:FACILITY_ITF
+ Windows=0x8:FACILITY_WINDOWS
+ )
+
+MessageId=0x0eff Facility=Interface Severity=CoError SymbolicName=DB_E_BADACCESSORHANDLE
+Language=English
+Dummy error - need this error so that mc puts the above defines
+inside the FACILITY_WINDOWS guard, instead of leaving it empty
+.
+;#endif // FACILITY_WINDOWS
+
+;//
+;// Codes 0x0e00-0x0eff are reserved for the OLE DB group of
+;// interfaces.
+;//
+;// 0x0e31 is free...
+;//
+
+MessageId=0x0e00 Facility=Interface Severity=CoError SymbolicName=DB_E_BADACCESSORHANDLE
+Language=English
+Invalid accessor
+.
+MessageId=0x0e01 Facility=Interface Severity=CoError SymbolicName=DB_E_ROWLIMITEXCEEDED
+Language=English
+Creating another row would have exceeded the total number of active
+rows supported by the rowset
+.
+MessageId=0x0e02 Facility=Interface Severity=CoError SymbolicName=DB_E_READONLYACCESSOR
+Language=English
+Unable to write with a read-only accessor
+.
+MessageId=0x0e03 Facility=Interface Severity=CoError SymbolicName=DB_E_SCHEMAVIOLATION
+Language=English
+Given values violate the database schema
+.
+MessageId=0x0e04 Facility=Interface Severity=CoError SymbolicName=DB_E_BADROWHANDLE
+Language=English
+Invalid row handle
+.
+MessageId=0x0e05 Facility=Interface Severity=CoError SymbolicName=DB_E_OBJECTOPEN
+Language=English
+Accessor specified a column loaded with LoadObject that has not been
+unloaded
+.
+MessageId=0x0e06 Facility=Interface Severity=CoError SymbolicName=DB_E_BADCHAPTER
+Language=English
+Invalid chapter
+.
+MessageId=0x0e07 Facility=Interface Severity=CoError SymbolicName=DB_E_INTERFACECONFLICT
+Language=English
+The specified interface conflicts with an existing interface goal
+.
+MessageId=0x0e08 Facility=Interface Severity=CoError SymbolicName=DB_E_BADBINDINFO
+Language=English
+Invalid binding info
+.
+MessageId=0x0e09 Facility=Interface Severity=CoError SymbolicName=DB_E_ACCESSVIOLATION
+Language=English
+Access violation
+.
+MessageId=0x0e0a Facility=Interface Severity=CoError SymbolicName=DB_E_NOTAREFERENCECOLUMN
+Language=English
+Specified column does not contain bookmarks or chapters
+.
+MessageId=0x0e0c Facility=Interface Severity=CoError SymbolicName=DB_E_ROWSETOPEN
+Language=English
+A rowset was open on the query
+.
+MessageId=0x0e0d Facility=Interface Severity=CoError SymbolicName=DB_E_COSTLIMIT
+Language=English
+Unable to find a query plan within the given cost limit
+.
+MessageId=0x0e0e Facility=Interface Severity=CoError SymbolicName=DB_E_BADBOOKMARK
+Language=English
+Invalid bookmark
+.
+MessageId=0x0e0f Facility=Interface Severity=CoError SymbolicName=DB_E_BADLOCKMODE
+Language=English
+Invalid lock mode
+.
+MessageId=0x0e10 Facility=Interface Severity=CoError SymbolicName=DB_E_PARAMNOTOPTIONAL
+Language=English
+No value given for one or more required parameters
+.
+MessageId=0x0e11 Facility=Interface Severity=CoError SymbolicName=DB_E_COLUMNUNAVAILABLE
+Language=English
+Invalid column ID
+.
+MessageId=0x0e12 Facility=Interface Severity=CoError SymbolicName=DB_E_BADRATIO
+Language=English
+Invalid ratio
+.
+MessageId=0x0e13 Facility=Interface Severity=CoError SymbolicName=DB_E_BADVALUES
+Language=English
+Invalid value
+.
+MessageId=0x0e14 Facility=Interface Severity=CoError SymbolicName=DB_E_ERRORSINTREE
+Language=English
+Query tree contained one or more errors
+.
+MessageId=0x0e15 Facility=Interface Severity=CoError SymbolicName=DB_E_BADPARAMETER
+Language=English
+Invalid parameter
+.
+MessageId=0x0e16 Facility=Interface Severity=CoError SymbolicName=DB_E_BADPARAMETERCOUNT
+Language=English
+More values than parameters
+.
+MessageId=0x0e17 Facility=Interface Severity=CoError SymbolicName=DB_E_BADVARTYPE
+Language=English
+Value is not a VARIANT
+.
+MessageId=0x0e18 Facility=Interface Severity=CoError SymbolicName=DB_E_DUPLICATEPARAM
+Language=English
+More than one value was supplied for a given parameter
+.
+MessageId=0x0e19 Facility=Interface Severity=CoError SymbolicName=DB_E_OVERFLOW
+Language=English
+Parameter value outside valid domain for that parameter
+.
+MessageId=0x0e1a Facility=Interface Severity=CoError SymbolicName=DB_E_PARAMNOTFOUND
+Language=English
+Parameter ID was not matched
+.
+MessageId=0x0e1b Facility=Interface Severity=CoError SymbolicName=DB_E_TYPEMISMATCH
+Language=English
+Value was not of a type that could be coerced to the parameter
+.
+MessageId=0x0e1c Facility=Interface Severity=CoError SymbolicName=DB_E_GOALREJECTED
+Language=English
+No nonzero weights specified for any goals supported, so goal was
+rejected; current goal was not changed
+.
+MessageId=0x0e1d Facility=Interface Severity=CoError SymbolicName=DB_E_CANTCOERCE
+Language=English
+Requested coercion is not legal
+.
+MessageId=0x0e1e Facility=Interface Severity=CoError SymbolicName=DB_E_NOTUPDATED
+Language=English
+Chapter contained changed rows which are not yet updated
+.
+MessageId=0x0e1f Facility=Interface Severity=CoError SymbolicName=DB_E_NOQUERY
+Language=English
+Information was requested for a query, and the query was not set
+.
+MessageId=0x0e20 Facility=Interface Severity=CoError SymbolicName=DB_E_NOTREENTRANT
+Language=English
+Provider called a method from IRowsetNotify in the consumer and the
+method has not yet returned
+.
+MessageId=0x0e21 Facility=Interface Severity=CoError SymbolicName=DB_E_BADROWSET
+Language=English
+A non-existant rowset was specified
+.
+MessageId=0x0e22 Facility=Interface Severity=CoError SymbolicName=DB_E_NOAGGREGATION
+Language=English
+A non-NULL controlling IUnknown was specified and the object being
+created does not support aggregation
+.
+MessageId=0x0e23 Facility=Interface Severity=CoError SymbolicName=DB_E_DELETEDROW
+Language=English
+A given HROW referred to a hard- or soft-deleted row
+.
+MessageId=0x0e24 Facility=Interface Severity=CoError SymbolicName=DB_E_CANTFETCHBACKWARDS
+Language=English
+The rowset does not support fetching backwards
+.
+MessageId=0x0e25 Facility=Interface Severity=CoError SymbolicName=DB_E_ROWSNOTRELEASED
+Language=English
+All HROWs must be released before new ones can be obtained
+.
+MessageId=0x0e26 Facility=Interface Severity=CoError SymbolicName=DB_E_INVALID
+Language=English
+The rowset was not chaptered
+.
+MessageId=0x0e27 Facility=Interface Severity=CoError SymbolicName=DB_E_CANTCREATEACCESSOR
+Language=English
+An accessor has already been created and the
+DBROWSETFLAGS_MULTIPLEACCESSOR flag was not set
+.
+MessageId=0x0e28 Facility=Interface Severity=CoError SymbolicName=DB_E_NEEDDATA
+Language=English
+DBINIT_NOPROMPT was specified and the provider cannot be initialized
+without prompting for information
+.
+MessageId=0x0e29 Facility=Interface Severity=CoError SymbolicName=DB_E_CANTSCROLLBACKWARDS
+Language=English
+The rowset cannot scroll backwards
+.
+MessageId=0x0e2a Facility=Interface Severity=CoError SymbolicName=DB_E_BADREGIONHANDLE
+Language=English
+Invalid region handle
+.
+MessageId=0x0e2b Facility=Interface Severity=CoError SymbolicName=DB_E_NONCONTIGUOUSRANGE
+Language=English
+The specified set of rows was not contiguous to or overlapping the
+rows in the specified watch region
+.
+MessageId=0x0e2c Facility=Interface Severity=CoError SymbolicName=DB_E_INVALIDTRANSITION
+Language=English
+A transition from ALL* to MOVE* or EXTEND* was specified
+.
+MessageId=0x0e2d Facility=Interface Severity=CoError SymbolicName=DB_E_NOTASUBREGION
+Language=English
+The specified region is not a proper subregion of the region
+identified by the given watch region handle
+.
+MessageId=0x0e2e Facility=Interface Severity=CoError SymbolicName=DB_E_NOCOMMAND
+Language=English
+No command has been specified for the command object
+.
+MessageId=0x0e2f Facility=Interface Severity=CoError SymbolicName=DB_E_INTEGRITYVIOLATION
+Language=English
+A specified value violated the integrity constraints for a column or
+table
+.
+MessageId=0x0e30 Facility=Interface Severity=CoError SymbolicName=DB_E_PROPERTIESNOTAVAILABLE
+Language=English
+Some of the requiried properties could not be met
+.
+MessageId=0x0e31 Facility=Interface Severity=CoError SymbolicName=DB_E_ABORTLIMITREACHED
+Language=English
+Execution aborted because a resource limit has been reached; no
+results have been returned
+.
+MessageId=0x0e32 Facility=Interface Severity=CoError SymbolicName=DB_E_ROWSETINCOMMAND
+Language=English
+Cannot clone a command object whose command tree contains a rowset
+or rowsets
+.
+MessageId=0x0e33 Facility=Interface Severity=CoError SymbolicName=DB_E_CANTTRANSLATE
+Language=English
+Cannot represent the current tree as text
+.
+MessageId=0x0e34 Facility=Interface Severity=CoError SymbolicName=DB_E_DUPLICATEINDEXID
+Language=English
+The specified index already exists
+.
+MessageId=0x0e35 Facility=Interface Severity=CoError SymbolicName=DB_E_NOINDEX
+Language=English
+The specified index does not exist
+.
+MessageId=0x0e36 Facility=Interface Severity=CoError SymbolicName=DB_E_INDEXINUSE
+Language=English
+The specified index was in use
+.
+MessageId=0x0e37 Facility=Interface Severity=CoError SymbolicName=DB_E_NOTABLE
+Language=English
+The specified table does not exist
+.
+MessageId=0x0e38 Facility=Interface Severity=CoError SymbolicName=DB_E_CONCURRENCYVIOLATION
+Language=English
+The rowset was using optimistic concurrency and the value of a
+column has been changed since it was last read
+.
+MessageId=0x0e39 Facility=Interface Severity=CoError SymbolicName=DB_E_BADCOPY
+Language=English
+Errors were detected during the copy
+.
+MessageId=0x0e3a Facility=Interface Severity=CoError SymbolicName=DB_E_BADPRECISION
+Language=English
+A specified precision was invalid
+.
+MessageId=0x0e3b Facility=Interface Severity=CoError SymbolicName=DB_E_BADSCALE
+Language=English
+A specified scale was invalid
+.
+MessageId=0x0e3c Facility=Interface Severity=CoError SymbolicName=DB_E_BADID
+Language=English
+Invalid table ID
+.
+MessageId=0x0e3d Facility=Interface Severity=CoError SymbolicName=DB_E_BADTYPE
+Language=English
+A specified type was invalid
+.
+MessageId=0x0e3e Facility=Interface Severity=CoError SymbolicName=DB_E_DUPLICATECOLUMNID
+Language=English
+A column ID was occurred more than once in the specification
+.
+MessageId=0x0e3f Facility=Interface Severity=CoError SymbolicName=DB_E_DUPLICATETABLEID
+Language=English
+The specified table already exists
+.
+MessageId=0x0e40 Facility=Interface Severity=CoError SymbolicName=DB_E_TABLEINUSE
+Language=English
+The specified table was in use
+.
+MessageId=0x0e41 Facility=Interface Severity=CoError SymbolicName=DB_E_NOLOCALE
+Language=English
+The specified locale ID was not supported
+.
+MessageId=0x0e42 Facility=Interface Severity=CoError SymbolicName=DB_E_BADRECORDNUM
+Language=English
+The specified record number is invalid
+.
+MessageId=0x0ec3 Facility=Interface Severity=CoError SymbolicName=DB_E_BOOKMARKSKIPPED
+Language=English
+Skipped bookmark for deleted or non-member row
+.
+
+MessageId=0x0ec0 Facility=Interface Severity=Success SymbolicName=DB_S_ROWLIMITEXCEEDED
+Language=English
+Fetching requested number of rows would have exceeded total number of
+active rows supported by the rowset
+.
+MessageId=0x0ec1 Facility=Interface Severity=Success SymbolicName=DB_S_ROWNOTFOUND
+Language=English
+Unable to find row for given bookmark
+.
+MessageId=0x0ec2 Facility=Interface Severity=Success SymbolicName=DB_S_ENDOFRESULTSET
+Language=English
+Reached start or end of result set
+.
+MessageId=0x0ec3 Facility=Interface Severity=Success SymbolicName=DB_S_BOOKMARKSKIPPED
+Language=English
+Skipped bookmark for deleted or non-member row
+.
+MessageId=0x0ec4 Facility=Interface Severity=Success SymbolicName=DB_S_ERRORSINTREE
+Language=English
+Errors found in validating tree
+.
+MessageId=0x0ec5 Facility=Interface Severity=Success SymbolicName=DB_S_NONEXTROWSET
+Language=English
+There are no more rowsets
+.
+MessageId=0x0ec6 Facility=Interface Severity=Success SymbolicName=DB_S_ENDOFROWSET
+Language=English
+Reached start or end of rowset or chapter
+.
+;//BUGBUG - DB_S_BLOCKLIMITEDROWS is not officially sanctioned.
+MessageId=0x0ec7 Facility=Interface Severity=Success SymbolicName=DB_S_BLOCKLIMITEDROWS
+Language=English
+Execution aborted because a resource limit has been reached; no
+results have been returned
+.
+MessageId=0x0ec8 Facility=Interface Severity=Success SymbolicName=DB_S_BUFFERFULL
+Language=English
+Variable data buffer full
+.
+MessageId=0x0ec9 Facility=Interface Severity=Success SymbolicName=DB_S_CANTCOERCE
+Language=English
+Couldn't perform specified type coercion
+.
+MessageId=0x0eca Facility=Interface Severity=Success SymbolicName=DB_S_CANTRELEASE
+Language=English
+Server cannot release or downgrade a lock until the end of the
+transaction
+.
+MessageId=0x0ecb Facility=Interface Severity=Success SymbolicName=DB_S_GOALCHANGED
+Language=English
+Specified weight was not supported or exceeded the supported limit
+and was set to 0 or the supported limit
+.
+MessageId=0x0ecd Facility=Interface Severity=Success SymbolicName=DB_S_DIALECTIGNORED
+Language=English
+Input dialect was ignored and text was returned in different
+dialect
+.
+MessageId=0x0ece Facility=Interface Severity=Success SymbolicName=DB_S_UNWANTEDPHASE
+Language=English
+Consumer is uninterested in receiving further notification calls for
+this phase
+.
+MessageId=0x0ecf Facility=Interface Severity=Success SymbolicName=DB_S_UNWANTEDEVENT
+Language=English
+Consumer is uninterested in receiving further notification calls to
+this method
+.
+MessageId=0x0ed0 Facility=Interface Severity=Success SymbolicName=DB_S_COLUMNUNAVAILABLE
+Language=English
+Invalid column ID
+.
+MessageId=0x0ed1 Facility=Interface Severity=Success SymbolicName=DB_S_COLUMNSCHANGED
+Language=English
+In order to reposition to the start of the rowset, the provider had
+to reexecute the query; either the order of the columns changed or
+columns were added to or removed from the rowset
+.
+MessageId=0x0ed2 Facility=Interface Severity=Success SymbolicName=DB_S_ERRORSRETURNED
+Language=English
+The method had some errors; errors have been returned in the error
+array
+.
+MessageId=0x0ed3 Facility=Interface Severity=Success SymbolicName=DB_S_BADROWHANDLE
+Language=English
+Invalid row handle
+.
+MessageId=0x0ed4 Facility=Interface Severity=Success SymbolicName=DB_S_DELETEDROW
+Language=English
+A given HROW referred to a hard-deleted row
+.
+MessageId=0x0ed5 Facility=Interface Severity=Success SymbolicName=DB_S_TOOMANYCHANGES
+Language=English
+The provider was unable to keep track of all the changes; the client
+must refetch the data associated with the watch region using another
+method
+.
+MessageId=0x0ed6 Facility=Interface Severity=Success SymbolicName=DB_S_STOPLIMITREACHED
+Language=English
+Execution stopped because a resource limit has been reached; results
+obtained so far have been returned but execution cannot be resumed
+.
+MessageId=0x0ed7 Facility=Interface Severity=Success SymbolicName=DB_S_SUSPENDLIMITREACHED
+Language=English
+Execution suspended because a resource limit has been reached;
+results obtained so far have been returned and execution can be
+resumed later
+.
+MessageId=0x0ed8 Facility=Interface Severity=Success SymbolicName=DB_S_LOCKUPGRADED
+Language=English
+A lock was upgraded from the value specified
+.
+MessageId=0x0ed9 Facility=Interface Severity=Success SymbolicName=DB_S_PROPERTIESCHANGED
+Language=English
+One or more properties were changed as allowed by provider
+.
+MessageId=0x0eda Facility=Interface Severity=Success SymbolicName=DB_S_ERRORSOCCURRED
+Language=English
+Some errors occurred
+.
+MessageId=0x0edb Facility=Interface Severity=Success SymbolicName=DB_S_PARAMUNAVAILABLE
+Language=English
+A specified parameter was invalid
+.
+MessageId=0x0edc Facility=Interface Severity=Success SymbolicName=DB_S_CANCELED
+Language=English
+The change was canceled during notification; no columns are changed
+.
+MessageId=0x0edd Facility=Interface Severity=Success SymbolicName=DB_S_COLUMNTYPEMISMATCH
+Language=English
+One or more column types are incompatible; conversion errors will
+occur during copying
+.
+;#endif // _OLEDBERR_H_
diff --git a/private/types2/mc/queryerr.mc b/private/types2/mc/queryerr.mc
new file mode 100644
index 000000000..278fe9576
--- /dev/null
+++ b/private/types2/mc/queryerr.mc
@@ -0,0 +1,239 @@
+;//
+;// Codes 0x1600-0x16ff are reserved for QUERY / TABLE
+;//
+
+MessageId=0x1600 Facility=Interface Severity=CoError SymbolicName=QUERY_E_FAILED
+Language=English
+Call failed for unknown reason.
+.
+MessageId=0x1601 Facility=Interface Severity=CoError SymbolicName=QUERY_E_INVALIDQUERY
+Language=English
+Invalid parameter.
+.
+MessageId=0x1602 Facility=Interface Severity=CoError SymbolicName=QUERY_E_INVALIDRESTRICTION
+Language=English
+The query restriction could not be parsed.
+.
+MessageId=0x1603 Facility=Interface Severity=CoError SymbolicName=QUERY_E_INVALIDSORT
+Language=English
+An invalid sort order was requested.
+.
+MessageId=0x1604 Facility=Interface Severity=CoError SymbolicName=QUERY_E_INVALIDCATEGORIZE
+Language=English
+An invalid categorization order was requested.
+.
+MessageId=0x1605 Facility=Interface Severity=CoError SymbolicName=QUERY_E_ALLNOISE
+Language=English
+The query contained only ignored words.
+.
+MessageId=0x1606 Facility=Interface Severity=CoError SymbolicName=QUERY_E_TOOCOMPLEX
+Language=English
+The query was too complex to be executed.
+.
+
+;//
+;// ITable error codes
+;//
+
+MessageId=0x1620 Facility=Interface Severity=CoError SymbolicName=TBL_E_CALLFAILED
+Language=English
+Call failed for unknown reason.
+.
+MessageId=0x1621 Facility=Interface Severity=CoError SymbolicName=TBL_E_UNKNOWNCOLS
+Language=English
+Cannot find column(s) specified.
+.
+MessageId=0x1622 Facility=Interface Severity=CoError SymbolicName=TBL_E_UNABLETOCOMPLETE
+Language=English
+Unable to complete request.
+.
+MessageId=0x1623 Facility=Interface Severity=CoError SymbolicName=TBL_E_INVALIDBOOKMARK
+Language=English
+Specified bookmark does not reference any row in table.
+.
+MessageId=0x1624 Facility=Interface Severity=Success SymbolicName=TBL_W_ENDOFTABLE
+Language=English
+End of table reached.
+.
+MessageId=0x1625 Facility=Interface Severity=Success SymbolicName=TBL_W_POSITIONCHANGED
+Language=English
+Position changed.
+.
+
+;//
+;// Filter daemon error codes
+;//
+
+MessageId=0x1680 Facility=Interface Severity=Success SymbolicName=FDAEMON_W_WORDLISTFULL
+Language=English
+Wordlist has reached maximum size. Additional documents should not be filtered.
+.
+MessageId=0x1681 Facility=Interface Severity=CoError SymbolicName=FDAEMON_E_LOWRESOURCE
+Language=English
+The system is running out of one of more resources needed for filtering, usually memory.
+.
+MessageId=0x1682 Facility=Interface Severity=CoError SymbolicName=FDAEMON_E_FATALERROR
+Language=English
+A critical error occurred during document filtering. Consult system administrator.
+.
+MessageId=0x1683 Facility=Interface Severity=CoError SymbolicName=FDAEMON_E_PARTITIONDELETED
+Language=English
+Documents not stored in content index because partition has been deleted.
+.
+MessageId=0x1684 Facility=Interface Severity=CoError SymbolicName=FDAEMON_E_CHANGEUPDATEFAILED
+Language=English
+Documents not stored in content index because update of changelist failed.
+.
+MessageId=0x1685 Facility=Interface Severity=Success SymbolicName=FDAEMON_W_EMPTYWORDLIST
+Language=English
+Final wordlist was empty.
+.
+MessageId=0x1686 Facility=Interface Severity=CoError SymbolicName=FDAEMON_E_WORDLISTCOMMITFAILED
+Language=English
+Commit of wordlist failed. Data not available for query.
+.
+MessageId=0x1687 Facility=Interface Severity=CoError SymbolicName=FDAEMON_E_NOWORDLIST
+Language=English
+No wordlist is being constructed. May happen after fatal filter error.
+.
+MessageId=0x1688 Facility=Interface Severity=CoError SymbolicName=FDAEMON_E_TOOMANYFILTEREDBLOCKS
+Language=English
+During document filtering the limit on buffers has been exceeded.
+.
+
+
+;//
+;// ISearch error codes
+;//
+
+MessageId=0x16a0 Facility=Interface Severity=Success SymbolicName=SEARCH_S_NOMOREHITS
+Language=English
+End of hits has been reached.
+.
+MessageId=0x16a1 Facility=Interface Severity=CoError SymbolicName=SEARCH_E_NOMONIKER
+Language=English
+Retrival of hits as monikers is not supported (by filter passed into Init).
+.
+MessageId=0x16a2 Facility=Interface Severity=CoError SymbolicName=SEARCH_E_NOREGION
+Language=English
+Retrival of hits as filter regions is not supported (by filter passed into Init).
+.
+
+
+;//
+;// CI error codes
+;//
+
+MessageId=0x1730 Facility=Interface Severity=CoError SymbolicName=FILTER_E_TOO_BIG
+Language=English
+File is too large to filter.
+.
+MessageId=0x1731 Facility=Interface Severity=Success SymbolicName=FILTER_S_PARTIAL_CONTENTSCAN_IMMEDIATE
+Language=English
+A partial content scan of the disk needs to be scheduled for immediate execution.
+.
+MessageId=0x1732 Facility=Interface Severity=Success SymbolicName=FILTER_S_FULL_CONTENTSCAN_IMMEDIATE
+Language=English
+A full content scan of the disk needs to be scheduled for immediate execution.
+.
+MessageId=0x1733 Facility=Interface Severity=Success SymbolicName=FILTER_S_CONTENTSCAN_DELAYED
+Language=English
+A content scan of the disk needs to be scheduled for execution later.
+.
+MessageId=0x1734 Facility=Interface Severity=CoFail SymbolicName=FILTER_E_CONTENTINDEXCORRUPT
+Language=English
+The content index is corrupt. A content scan will to be scheduled after chkdsk or autochk is run.
+.
+MessageId=0x1735 Facility=Interface Severity=CoFail SymbolicName=CI_CORRUPT_DATABASE
+Language=English
+The content index is corrupt.
+.
+MessageId=0x1736 Facility=Interface Severity=CoFail SymbolicName=CI_CORRUPT_CATALOG
+Language=English
+The content index meta data is corrupt.
+.
+MessageId=0x1737 Facility=Interface Severity=CoFail SymbolicName=CI_INVALID_PARTITION
+Language=English
+The content index partition is invalid.
+.
+MessageId=0x1738 Facility=Interface Severity=CoFail SymbolicName=CI_INVALID_PRIORITY
+Language=English
+The priority is invalid.
+.
+MessageId=0x1739 Facility=Interface Severity=CoFail SymbolicName=CI_NO_STARTING_KEY
+Language=English
+There is no starting key.
+.
+MessageId=0x173a Facility=Interface Severity=CoFail SymbolicName=CI_OUT_OF_INDEX_IDS
+Language=English
+The content index is out of index ids.
+.
+MessageId=0x173b Facility=Interface Severity=CoFail SymbolicName=CI_NO_CATALOG
+Language=English
+There is no catalog.
+.
+MessageId=0x173c Facility=Interface Severity=CoFail SymbolicName=CI_CORRUPT_FILTER_BUFFER
+Language=English
+The filter buffer is corrupt.
+.
+MessageId=0x173d Facility=Interface Severity=CoFail SymbolicName=CI_INVALID_INDEX
+Language=English
+The index is invalid.
+.
+MessageId=0x173e Facility=Interface Severity=CoFail SymbolicName=CI_PROPSTORE_INCONSISTENCY
+Language=English
+Inconsistency in property store detected.
+.
+MessageId=0x173f Facility=Interface Severity=Success SymbolicName=FILTER_S_DISK_FULL
+Language=English
+The disk is getting full.
+.
+
+
+
+;//
+;// Word breaker error codes
+;//
+
+
+MessageId=0x1780 Facility=Interface Severity=CoError SymbolicName=WBREAK_E_END_OF_TEXT
+Language=English
+End of text reached in text source.
+.
+MessageId=0x1781 Facility=Interface Severity=Success SymbolicName=LANGUAGE_S_LARGE_WORD
+Language=English
+Word larger than maximum length. May be truncated by word sink.
+.
+MessageId=0x1782 Facility=Interface Severity=CoError SymbolicName=WBREAK_E_QUERY_ONLY
+Language=English
+Feature only available in query mode.
+.
+MessageId=0x1783 Facility=Interface Severity=CoError SymbolicName=WBREAK_E_BUFFER_TOO_SMALL
+Language=English
+Buffer too small to hold composed phrase.
+.
+MessageId=0x1784 Facility=Interface Severity=CoError SymbolicName=LANGUAGE_E_DATABASE_NOT_FOUND
+Language=English
+Langauge database/cache file could not be found.
+.
+MessageId=0x1785 Facility=Interface Severity=CoError SymbolicName=WBREAK_E_INIT_FAILED
+Language=English
+Initialization of word breaker failed.
+.
+MessageId=0x1790 Facility=Interface Severity=CoError SymbolicName=PSINK_E_QUERY_ONLY
+Language=English
+Feature only available in query mode.
+.
+MessageId=0x1791 Facility=Interface Severity=CoError SymbolicName=PSINK_E_INDEX_ONLY
+Language=English
+Feature only available in index mode.
+.
+MessageId=0x1792 Facility=Interface Severity=CoError SymbolicName=PSINK_E_LARGE_ATTACHMENT
+Language=English
+Attachment type beyond valid range.
+.
+MessageId=0x1793 Facility=Interface Severity=Success SymbolicName=PSINK_S_LARGE_WORD
+Language=English
+Word larger than maximum length. May be truncated by phrase sink.
+.
+
diff --git a/private/types2/mc/readme.txt b/private/types2/mc/readme.txt
new file mode 100644
index 000000000..73e504def
--- /dev/null
+++ b/private/types2/mc/readme.txt
@@ -0,0 +1,15 @@
+
+ If you make a change to any of the MC files in this directory, then you
+ need to rebuild allerror.mc. This normally will be done automatically,
+ but can also be done by invoking "nmake allerror.mc". When you checkin
+ your changes to the private .mc files, then you should also check in the
+ updated allerror.mc.
+
+ When allerror.mc is updated automatically, it will not be checked out.
+ It will just be attrib -r'd.
+
+
+ The whole reason for this messy requirement is that if _objects.mac does
+ not exist, it will be generated incorrectly when allerror.mc is not
+ present during the pass zero scan. This causes allerror.rc to not be built
+ and breaks the types2\proxy\proxy build.
diff --git a/private/types2/mc/reconcil.mc b/private/types2/mc/reconcil.mc
new file mode 100644
index 000000000..1f4ae808d
--- /dev/null
+++ b/private/types2/mc/reconcil.mc
@@ -0,0 +1,56 @@
+
+;// Error codes for IReconcileInitiator, IReconcilableObject, IDifferencing.
+;// Definitions taken from \\ole\slm\src\concord\spec\revcons2.doc.
+
+MessageId=0x1000 Facility=Interface Severity=CoError SymbolicName=REC_E_NOVERSION
+Language=English
+The requested version is unavailable.
+.
+MessageId=0x1001 Facility=Interface Severity=Success SymbolicName=REC_E_NOTCOMPLETE
+Language=English
+The reconciliation is only partially complete.
+.
+MessageId=0x1002 Facility=Interface Severity=CoError SymbolicName=REC_E_ABORTED
+Language=English
+Reconciliation aborted via abort callback.
+.
+MessageId=0x1003 Facility=Interface Severity=CoError SymbolicName=REC_E_NOCALLBACK
+Language=English
+No callback from the recocniler.
+.
+MessageId=0x1004 Facility=Interface Severity=CoError SymbolicName=REC_E_NORESIDUES
+Language=English
+The implementation does not support generation of residues.
+.
+MessageId=0x1005 Facility=Interface Severity=CoError SymbolicName=REC_E_WRONGOBJECT
+Language=English
+Callee is not the same version as that which created the difference.
+.
+MessageId=0x1006 Facility=Interface Severity=CoError SymbolicName=REC_E_TOODIFFERENT
+Language=English
+The document versions are too dissimilar to reconcile.
+.
+
+;// Following so reconcile initiators can implement propagation dampening.
+
+MessageId=0x1007 Facility=Interface Severity=CoError SymbolicName=REC_S_OBJECTSIDENTICAL
+Language=English
+The objects are identical - i.e. further reconciliation would not result in any changes to either object.
+.
+
+;// Following not defined in revcons2.doc, but defined by Chicago briefcase.
+;// BUGBUG - MessageId/Facility are most likely incorrect.
+
+MessageId= Facility=Interface Severity=CoError SymbolicName=REC_E_INEEDTODOTHEUPDATES
+Language=English
+The destination needs to be changed
+.
+MessageId= Facility=Interface Severity=Success SymbolicName=REC_S_IDIDTHEUPDATES
+Language=English
+The destination needs to be changed
+.
+MessageId= Facility=Interface Severity=Success SymbolicName=REC_S_NOTCOMPLETEBUTPROPAGATE
+Language=English
+The destination needs to be changed
+.
+
diff --git a/private/types2/mc/smctlerr.mc b/private/types2/mc/smctlerr.mc
new file mode 100644
index 000000000..3d5e6b624
--- /dev/null
+++ b/private/types2/mc/smctlerr.mc
@@ -0,0 +1,10 @@
+;//
+;// Codes 0x1000-0x10ff are reserved for the SYSMGMT component controls
+;// interfaces.
+;//
+
+MessageId=0x1000 Facility=Windows Severity=CoError SymbolicName=CTRL_E_NO_RESOURCE
+Language=English
+A control failure has occured because a system resource could not be obtained
+.
+
diff --git a/private/types2/mc/smgmterr.mc b/private/types2/mc/smgmterr.mc
new file mode 100644
index 000000000..10c1567a7
--- /dev/null
+++ b/private/types2/mc/smgmterr.mc
@@ -0,0 +1,54 @@
+;//
+;// Codes 0x0e00-0x0f9f are reserved for the SYSMGMT control panel
+;// interfaces.
+;//
+;// The following ranges are to prevent slm merge collisions during the initial
+;// error code checkins. These ranges will be revised when we have a better
+;// idea of the actual number of error codes for each component.
+
+MessageId=0x0e00 Facility=Windows Severity=CoError SymbolicName=CPANEL_E_NOTTARGETED
+Language=English
+This control panel does not target the required type of profile.
+.
+MessageId=0x0e01 Facility=Windows Severity=CoError SymbolicName=CPANEL_E_DROPDATAREAD
+Language=English
+The profile data dropped on a control panel cannot be read. The data
+is either corrupt or was not read back properly by a controller that wrote
+part of the data.
+.
+MessageId=0x0e02 Facility=Windows Severity=CoError SymbolicName=CPANEL_E_LOCALONLY
+Language=English
+A controller that can only operate on the local machine was asked to operate
+on a remote machine.
+.
+
+;//
+;// Codes 0x1200-0x14ff are reserved for the SYSMGMT project in general
+;// interfaces.
+;//
+
+;// INSTRUM error codes below here (Starts at 0x1200)
+;// INSTRUM error codes above here
+
+;// SWM error codes below here (Starts at 0x1300)
+
+MessageId=0x1300 Facility=Windows Severity=CoError SymbolicName=SWM_E_INVALIDPDF
+Language=English
+The file is not a valid PDF.
+.
+MessageId=0x1301 Facility=Windows Severity=CoError SymbolicName=SWM_E_INVALIDPDFVERSION
+Language=English
+Software Management does not support this version of the PDF.
+.
+MessageId=0x1302 Facility=Windows Severity=CoError SymbolicName=SWM_E_INTERNALERROR
+Language=English
+An internal error has occurred in Software Management.
+.
+
+;// SWM error codes above here
+
+;// USER error codes below here (Starts at 0x1400)
+;// USER error codes above here
+
+
+
diff --git a/private/types2/mc/sources b/private/types2/mc/sources
new file mode 100644
index 000000000..9aa86559d
--- /dev/null
+++ b/private/types2/mc/sources
@@ -0,0 +1,16 @@
+#+---------------------------------------------------------------------------
+#
+# 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 = allerror.mc
+
+NTTARGETFILE0 = allerror.mc
diff --git a/private/types2/mc/z_last.x b/private/types2/mc/z_last.x
new file mode 100644
index 000000000..ae00e4518
--- /dev/null
+++ b/private/types2/mc/z_last.x
@@ -0,0 +1,2 @@
+;#endif // _ALLERROR_H_
+
diff --git a/private/types2/oledb/access.idl b/private/types2/oledb/access.idl
new file mode 100644
index 000000000..b6934a165
--- /dev/null
+++ b/private/types2/oledb/access.idl
@@ -0,0 +1,61 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: access.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 28 Mar 1994 AlanW Created from spec
+// 21 Apr 1994 PeterBu Updated to latest spec
+// 20 Dec 1994 PeterBu Updated to phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a41-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IAccessor : IUnknown {
+
+ //
+ // DBBINDIO -- specifies how the bindings in an accessor are used
+ //
+
+typedef DWORD DBACCESSORFLAGS;
+
+enum DBACCESSORFLAGSENUM {
+ DBACCESSOR_READ = 0x000,
+ DBACCESSOR_READWRITE = 0x001,
+ DBACCESSOR_PASSBYREF = 0x002,
+ DBACCESSOR_PASSCOLUMNSBYREF = 0x004,
+ DBACCESSOR_ROWDATA = 0x008,
+ DBACCESSOR_PARAMETERDATA = 0x010,
+ DBACCESSOR_OPTIMIZED = 0x020
+};
+
+ HRESULT CreateAccessor(
+ [in] DBACCESSORFLAGS dwAccessorFlags,
+ [in] ULONG cBindings,
+ [in, size_is(cBindings)] const DBBINDING rgBindings[],
+ [in] ULONG cbRowSize,
+ [out] ULONG * pulErrorBinding,
+ [out] HACCESSOR * phAccessor
+ );
+
+ HRESULT GetBindings(
+ [in] HACCESSOR hAccessor,
+ [out] DBACCESSORFLAGS * pdwAccessorFlags,
+ [out] ULONG * pcBindings,
+ [out] DBBINDING ** prgBindings
+ );
+
+ HRESULT ReleaseAccessor(
+ [in] HACCESSOR hAccessor
+ );
+
+}
diff --git a/private/types2/oledb/cmdbas.idl b/private/types2/oledb/cmdbas.idl
new file mode 100644
index 000000000..767c6bf2d
--- /dev/null
+++ b/private/types2/oledb/cmdbas.idl
@@ -0,0 +1,45 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: cmdbas.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a4f-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface ICommand : IUnknown {
+
+ HRESULT Clone(
+ [in] IUnknown * pUnkOuter,
+ [out] ICommand ** ppClone
+ );
+
+ HRESULT Execute(
+ [in] IUnknown * rgpUnkOuters[],
+ [in] REFIID riid,
+ [in, out] DBPARAMS * pParams,
+ [out] HCHAPTER * phChapter,
+ [in] BOOL fResume,
+ [in, out] ULONG * pcRowsets,
+ [in, out] IUnknown *** prgpRowsets,
+ [out] WCHAR ** ppRowsetNames
+ );
+
+ HRESULT GetDBSession(
+ [in] REFIID riid,
+ [out] IUnknown ** ppSession
+ );
+
+}
diff --git a/private/types2/oledb/cmdcst.idl b/private/types2/oledb/cmdcst.idl
new file mode 100644
index 000000000..4ea1fdc11
--- /dev/null
+++ b/private/types2/oledb/cmdcst.idl
@@ -0,0 +1,112 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: cmdcst.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a4e-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface ICommandCost : IUnknown {
+
+typedef DWORD DBRESOURCEKIND;
+
+enum DBRESOURCEKINDENUM {
+ DBRESOURCE_INVALID = 0,
+ DBRESOURCE_TOTAL = 1,
+ DBRESOURCE_CPU = 2,
+ DBRESOURCE_MEMORY = 3,
+ DBRESOURCE_DISK = 4,
+ DBRESOURCE_NETWORK = 5,
+ DBRESOURCE_RESPONSE = 6,
+ DBRESOURCE_ROWS = 7,
+ DBRESOURCE_OTHER = 8,
+};
+
+typedef DWORD DBCOSTUNIT;
+
+enum DBCOSTUNITENUM {
+ DBUNIT_INVALID = 0x00000,
+ DBUNIT_WEIGHT = 0x00001,
+ DBUNIT_PERCENT = 0x00002,
+ DBUNIT_MAXIMUM = 0x00004,
+ DBUNIT_MINIMUM = 0x00008,
+ DBUNIT_MICRO_SECOND = 0x00010,
+ DBUNIT_MILLI_SECOND = 0x00020,
+ DBUNIT_SECOND = 0x00040,
+ DBUNIT_MINUTE = 0x00080,
+ DBUNIT_HOUR = 0x00100,
+ DBUNIT_BYTE = 0x00200,
+ DBUNIT_KILO_BYTE = 0x00400,
+ DBUNIT_MEGA_BYTE = 0x00800,
+ DBUNIT_GIGA_BYTE = 0x01000,
+ DBUNIT_NUM_MSGS = 0x02000,
+ DBUNIT_NUM_LOCKS = 0x04000,
+ DBUNIT_NUM_ROWS = 0x08000,
+ DBUNIT_OTHER = 0x10000,
+};
+
+typedef struct tagDBCOST {
+ DBRESOURCEKIND eKind;
+ DBCOSTUNIT dwUnits;
+ LONG lValue;
+} DBCOST;
+
+typedef DWORD DBEXECLIMITS;
+
+enum DBEXECLIMITSENUM {
+ DBEXECLIMITS_ABORT = 1,
+ DBEXECLIMITS_STOP = 2,
+ DBEXECLIMITS_SUSPEND = 3
+};
+
+ HRESULT GetAccumulatedCost(
+ [in] LPCWSTR pwszRowsetName,
+ [out] ULONG * pcCostLimits,
+ [out] DBCOST ** prgCostLimits
+ );
+
+ HRESULT GetCostEstimate(
+ [in] LPCWSTR pwszRowsetName,
+ [out] ULONG * pcCostEstimates,
+ [out] DBCOST * prgCostEstimates
+ );
+
+ HRESULT GetCostGoals(
+ [in] LPCWSTR pwszRowsetName,
+ [out] ULONG * pcCostGoals,
+ [out] DBCOST * prgCostGoals
+ );
+
+ HRESULT GetCostLimits(
+ [in] LPCWSTR pwszRowsetName,
+ [out] ULONG * pcCostLimits,
+ [out] DBCOST * prgCostLimits
+ );
+
+ HRESULT SetCostGoals(
+ [in] LPCWSTR pwszRowsetName,
+ [in] ULONG cCostGoals,
+ [in, size_is(cCostGoals)] DBCOST rgCostGoals[]
+ );
+
+ HRESULT SetCostLimits(
+ [in] LPCWSTR pwszRowsetName,
+ [in] ULONG cCostLimits,
+ [in] DBCOST * prgCostLimits,
+ [in] DBEXECLIMITS dwExecutionFlags
+ );
+
+}
diff --git a/private/types2/oledb/cmdpre.idl b/private/types2/oledb/cmdpre.idl
new file mode 100644
index 000000000..93f747cd9
--- /dev/null
+++ b/private/types2/oledb/cmdpre.idl
@@ -0,0 +1,30 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: cmdpre.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a26-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface ICommandPrepare : IUnknown {
+
+ HRESULT Prepare(
+ [in] ULONG cExpectedRuns
+ );
+
+ HRESULT Unprepare(
+ );
+
+}
diff --git a/private/types2/oledb/cmdprp.idl b/private/types2/oledb/cmdprp.idl
new file mode 100644
index 000000000..457e26de6
--- /dev/null
+++ b/private/types2/oledb/cmdprp.idl
@@ -0,0 +1,50 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: cmdprp.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a54-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface ICommandProperties : IUnknown {
+
+typedef DWORD DBPROPERTYERROR;
+
+enum DBPROPERTYERRORENUM {
+ DBPROPERTYERROR_NOERROR = 0,
+ DBPROPERTYERROR_CONFLICTING = 1,
+ DBPROPERTYERROR_NOTSUPPORTED = 2,
+ DBPROPERTYERROR_NOTSET = 3,
+ DBPROPERTYERROR_BADPROPERTYOPTION = 4,
+ DBPROPERTYERROR_BADPROPERTYVALUE = 5,
+ DBPROPERTYERROR_NOTSETTABLE = 6,
+};
+
+ HRESULT GetProperties(
+ [in] LPCWSTR pwszRowsetName,
+ [in] const ULONG cProperties,
+ [in, size_is(cProperties)] const GUID rgProperties[],
+ [out] ULONG * pcProperties,
+ [out, size_is(cProperties)] DBPROPERTYSUPPORT ** prgProperties
+ );
+
+ HRESULT SetProperties(
+ [in] LPCWSTR pwszRowsetName,
+ [in] ULONG cProperties,
+ [in, size_is(cProperties)] const DBPROPERTYSUPPORT rgProperties[],
+ [out, size_is(cProperties)] DBPROPERTYERROR rgPropertyErrors[]
+ );
+
+}
diff --git a/private/types2/oledb/cmdtre.idl b/private/types2/oledb/cmdtre.idl
new file mode 100644
index 000000000..2523f9621
--- /dev/null
+++ b/private/types2/oledb/cmdtre.idl
@@ -0,0 +1,213 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: cmdtre.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a17-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface ICommandTree : ICommand {
+
+typedef DWORD DBVALUEKIND;
+
+enum DBVALUEKINDENUM {
+ DBVALUEKIND_BYGUID = 256,
+ DBVALUEKIND_COLDEF = DBVALUEKIND_BYGUID + 1,
+ DBVALUEKIND_ID = DBVALUEKIND_COLDEF + 1,
+ DBVALUEKIND_CONTENT = DBVALUEKIND_ID + 1,
+ DBVALUEKIND_CONTENTVECTOR = DBVALUEKIND_CONTENT + 1,
+ DBVALUEKIND_GROUPINFO = DBVALUEKIND_CONTENTVECTOR + 1,
+ DBVALUEKIND_PARAMETER = DBVALUEKIND_GROUPINFO + 1,
+ DBVALUEKIND_PROPERTY = DBVALUEKIND_PARAMETER + 1,
+ DBVALUEKIND_SETFUNC = DBVALUEKIND_PROPERTY + 1,
+ DBVALUEKIND_SORTINFO = DBVALUEKIND_SETFUNC + 1,
+ DBVALUEKIND_TEXT = DBVALUEKIND_SORTINFO + 1,
+
+ DBVALUEKIND_COMMAND = DBVALUEKIND_TEXT + 1,
+ DBVALUEKIND_MONIKER = DBVALUEKIND_COMMAND + 1,
+ DBVALUEKIND_ROWSET = DBVALUEKIND_MONIKER + 1,
+ DBVALUEKIND_DISPATCH = 9,
+ DBVALUEKIND_UNKNOWN = 13,
+
+ DBVALUEKIND_EMPTY = 0,
+ DBVALUEKIND_NULL = 1,
+ DBVALUEKIND_I2 = 2,
+ DBVALUEKIND_I4 = 3,
+ DBVALUEKIND_R4 = 4,
+ DBVALUEKIND_R8 = 5,
+ DBVALUEKIND_CY = 6,
+ DBVALUEKIND_DATE = 7,
+ DBVALUEKIND_BSTR = 8,
+
+ DBVALUEKIND_ERROR = 10,
+ DBVALUEKIND_BOOL = 11,
+ DBVALUEKIND_VARIANT = 12,
+
+ DBVALUEKIND_VECTOR = 0x1000,
+ DBVALUEKIND_ARRAY = 0x2000,
+ DBVALUEKIND_BYREF = 0x4000,
+
+ DBVALUEKIND_I1 = 16,
+ DBVALUEKIND_UI1 = 17,
+ DBVALUEKIND_UI2 = 18,
+ DBVALUEKIND_UI4 = DBVALUEKIND_UI2 + 1,
+ DBVALUEKIND_I8 = DBVALUEKIND_UI4 + 1,
+ DBVALUEKIND_UI8 = DBVALUEKIND_I8 + 1,
+ DBVALUEKIND_GUID = 72,
+
+ DBVALUEKIND_BYTES = 128,
+ DBVALUEKIND_STR = 129,
+ DBVALUEKIND_WSTR = DBVALUEKIND_STR + 1,
+ DBVALUEKIND_NUMERIC = DBVALUEKIND_WSTR + 1,
+};
+
+typedef struct tagDBBYGUID {
+ GUID guid;
+ ULONG cbInfo;
+ [size_is(cbInfo)] BYTE * pbInfo;
+} DBBYGUID;
+
+typedef struct tagDBCOLDEF {
+ DBID dbcid;
+ DBDATATYPE dbdt;
+} DBCOLDEF;
+
+cpp_quote("#define FUZZY_EXACT ( 0 )")
+cpp_quote("#define FUZZY_PREFIXMATCH ( 1 )")
+cpp_quote("#define FUZZY_STEMMED ( 2 )")
+
+typedef struct tagDBCONTENT {
+ DWORD dwFuzzyLevel;
+ ULONG ulWeight;
+ LCID lcid;
+ LPWSTR pwszPhrase;
+} DBCONTENT;
+
+cpp_quote("#define VECTOR_RANK_MIN ( 0 )")
+cpp_quote("#define VECTOR_RANK_MAX ( 1 )")
+cpp_quote("#define VECTOR_RANK_INNER ( 2 )")
+cpp_quote("#define VECTOR_RANK_DICE ( 3 )")
+cpp_quote("#define VECTOR_RANK_JACCARD ( 4 )")
+
+typedef struct tagDBCONTENTVECTOR {
+ DWORD dwRankingMethod;
+ ULONG cWeights;
+ [size_is(cWeights)] ULONG * prgulWeights;
+} DBCONTENTVECTOR;
+
+typedef struct tagDBGROUPINFO {
+ LCID lcid;
+} DBGROUPINFO;
+
+typedef struct tagDBPARAMETER {
+ LPWSTR pwszName;
+ DBTYPE dwType;
+ ITypeInfo * pTypeInfo;
+ ULONG cbMaxLength;
+ DBNUMERIC * pNum;
+ DBPARAMFLAGS dwFlags;
+} DBPARAMETER;
+
+cpp_quote("#define DBSETFUNC_NONE = 0x0")
+cpp_quote("#define DBSETFUNC_ALL = 0x1")
+cpp_quote("#define DBSETFUNC_DISTINCT = 0x2")
+
+typedef struct tagDBSETFUNC {
+ DWORD dwSetQuantifier;
+} DBSETFUNC;
+
+typedef struct tagDBSORTINFO {
+ LCID lcid;
+ BOOL fDesc;
+} DBSORTINFO;
+
+typedef struct tagDBTEXT {
+ GUID guidDialect;
+ LPWSTR pwszText;
+ ULONG ulErrorLocator;
+ ULONG ulTokenLength;
+} DBTEXT;
+
+typedef struct tagDBCOMMANDTREE {
+ DBCOMMANDOP op;
+ WORD wKind;
+ HRESULT hrError;
+ struct tagDBCOMMANDTREE * pctFirstChild;
+ struct tagDBCOMMANDTREE * pctNextSibling;
+ [switch_type(WORD),switch_is(wKind)] union {
+ [case(DBVALUEKIND_BOOL)] BOOL fValue;
+ [case(DBVALUEKIND_UI1)] unsigned char uchValue;
+ [case(DBVALUEKIND_I1)] signed char schValue;
+ [case(DBVALUEKIND_UI2)] unsigned short usValue;
+ [case(DBVALUEKIND_I2)] short sValue;
+ [case(DBVALUEKIND_WSTR)] LPWSTR pwszValue;
+ [case(DBVALUEKIND_I4)] LONG lValue;
+ [case(DBVALUEKIND_UI4)] ULONG ulValue;
+ [case(DBVALUEKIND_R4)] float flValue;
+ [case(DBVALUEKIND_R8)] double dblValue;
+ [case(DBVALUEKIND_CY)] CY cyValue;
+ [case(DBVALUEKIND_DATE)] DATE dateValue;
+ [case(DBVALUEKIND_ERROR)] SCODE scodeValue;
+ [case(DBVALUEKIND_I8)] __int64 llValue;
+ [case(DBVALUEKIND_UI8)] unsigned __int64 ullValue;
+ [case(DBVALUEKIND_BSTR)] BSTR * pbstrValue;
+ [case(DBVALUEKIND_COMMAND)] ICommand * pCommand;
+ [case(DBVALUEKIND_DISPATCH)] IDispatch * pDispatch;
+ [case(DBVALUEKIND_MONIKER)] IMoniker * pMoniker;
+ [case(DBVALUEKIND_ROWSET)] IRowset * pRowset;
+ [case(DBVALUEKIND_UNKNOWN)] IUnknown * pUnknown;
+ [case(DBVALUEKIND_BYGUID)] DBBYGUID * pdbbygdValue;
+ [case(DBVALUEKIND_COLDEF)] DBCOLDEF * pcoldfValue;
+ [case(DBVALUEKIND_ID)] DBID * pdbidValue;
+ [case(DBVALUEKIND_CONTENT)] DBCONTENT * pdbcntntValue;
+ [case(DBVALUEKIND_CONTENTVECTOR)] DBCONTENTVECTOR * pdbcntntvcValue;
+ [case(DBVALUEKIND_GROUPINFO)] DBGROUPINFO * pdbgrpinfValue;
+ [case(DBVALUEKIND_PARAMETER)] DBPARAMETER * pdbparamValue;
+ [case(DBVALUEKIND_PROPERTY)] DBPROPERTY * pdbpropValue;
+ [case(DBVALUEKIND_SETFUNC)] DBSETFUNC * pdbstfncValue;
+ [case(DBVALUEKIND_SORTINFO)] DBSORTINFO * pdbsrtinfValue;
+ [case(DBVALUEKIND_TEXT)] DBTEXT * pdbtxtValue;
+ [case(DBVALUEKIND_VECTOR)] DBVECTOR * pdbvectorValue;
+ [case(DBVALUEKIND_ARRAY)] SAFEARRAY * parrayValue;
+ [case(DBVALUEKIND_VARIANT)] VARIANT * pvarValue;
+ [case(DBVALUEKIND_GUID)] GUID * pGuid;
+ [case(DBVALUEKIND_BYTES)] BYTE * pbValue;
+ [case(DBVALUEKIND_STR)] char * pzValue;
+ [case(DBVALUEKIND_NUMERIC)] DBNUMERIC * pdbnValue;
+ [case(DBVALUEKIND_BYREF)] void * pvValue;
+ } value ;
+} DBCOMMANDTREE;
+
+ HRESULT FindErrorNodes(
+ [in] const DBCOMMANDTREE * pRoot,
+ [out] ULONG * pcErrorNodes,
+ [out] DBCOMMANDTREE *** prgErrorNodes
+ );
+
+ HRESULT FreeCommandTree(
+ [in] DBCOMMANDTREE ** ppRoot
+ );
+
+ HRESULT GetCommandTree(
+ [out] DBCOMMANDTREE ** ppRoot
+ );
+
+ HRESULT SetCommandTree(
+ [in] DBCOMMANDTREE ** ppRoot,
+ [in] BOOL fCopy
+ );
+
+}
diff --git a/private/types2/oledb/cmdtxt.idl b/private/types2/oledb/cmdtxt.idl
new file mode 100644
index 000000000..11d5808f5
--- /dev/null
+++ b/private/types2/oledb/cmdtxt.idl
@@ -0,0 +1,33 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: cmdtxt.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a27-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface ICommandText : IUnknown {
+
+ HRESULT GetCommandText(
+ [in, out] GUID * pguidDialect,
+ [out] LPWSTR * ppwszCommand
+ );
+
+ HRESULT SetCommandText(
+ [in] REFGUID rguidDialect,
+ [in] const LPWSTR pwszCommand
+ );
+
+}
diff --git a/private/types2/oledb/cmdval.idl b/private/types2/oledb/cmdval.idl
new file mode 100644
index 000000000..eb53f1f8e
--- /dev/null
+++ b/private/types2/oledb/cmdval.idl
@@ -0,0 +1,29 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: cmdval.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a18-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface ICommandValidate : IUnknown {
+
+ HRESULT ValidateCompletely(
+ );
+
+ HRESULT ValidateSyntax(
+ );
+
+}
diff --git a/private/types2/oledb/cmdwpr.idl b/private/types2/oledb/cmdwpr.idl
new file mode 100644
index 000000000..f4217e727
--- /dev/null
+++ b/private/types2/oledb/cmdwpr.idl
@@ -0,0 +1,45 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: cmdwpr.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a28-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface ICommandWithParameters : IUnknown {
+
+ HRESULT DescribeParameters(
+ [out] ULONG * pcParams,
+ [out] DBPARAMINFO ** prgParamInfo,
+ [out] WCHAR ** ppNamesBuffer
+ );
+
+ HRESULT GetDefaultValues(
+ [in] HACCESSOR hAccessor,
+ [out] BYTE * pData
+ );
+
+ HRESULT MapParameterNames(
+ [in] ULONG cParamNames,
+ [in, size_is(cParamNames)] const WCHAR * rgParamNames[],
+ [in, out, size_is(cParamNames)] LONG rgColOrdinals[]
+ );
+
+ HRESULT SetDefaultValues(
+ [in] HACCESSOR hAccessor,
+ [in] BYTE * pData
+ );
+
+}
diff --git a/private/types2/oledb/colinf.idl b/private/types2/oledb/colinf.idl
new file mode 100644
index 000000000..1d994f4ac
--- /dev/null
+++ b/private/types2/oledb/colinf.idl
@@ -0,0 +1,47 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: colinf.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a11-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IColumnsInfo : IUnknown {
+
+typedef struct tagDBCOLUMNINFO {
+ DBID columnid;
+ WCHAR * pwszName;
+ ULONG iNumber;
+ DBTYPE dwType;
+ ITypeInfo * pTypeInfo;
+ ULONG cbMaxLength;
+ ULONG cPrecision;
+ ULONG cScale;
+ DBCOLUMNFLAGS dwFlags;
+} DBCOLUMNINFO;
+
+ HRESULT GetColumnInfo(
+ [out] ULONG * pcColumns,
+ [out] DBCOLUMNINFO ** prgInfo,
+ [out] WCHAR ** ppStringsBuffer
+ );
+
+ HRESULT MapColumnIDs(
+ [in] ULONG cColumnIDs,
+ [in] const DBID rgColumnIDs[],
+ [in, out] LONG rgColumns[]
+ );
+
+}
diff --git a/private/types2/oledb/colrst.idl b/private/types2/oledb/colrst.idl
new file mode 100644
index 000000000..e7702a9ba
--- /dev/null
+++ b/private/types2/oledb/colrst.idl
@@ -0,0 +1,35 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: colrst.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a10-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IColumnsRowset : IUnknown {
+
+ HRESULT GetAvailableColumns(
+ [out] ULONG * pcOptColumns,
+ [out] DBID ** prgOptColumns
+ );
+
+ HRESULT GetColumnsRowset(
+ [in] IUnknown * pUnkOuter,
+ [in] ULONG cOptColumns,
+ [in, size_is(cOptColumns)] DBID rgOptColumns[],
+ [out] IRowset ** ppColRowset
+ );
+
+}
diff --git a/private/types2/oledb/dbccmd.idl b/private/types2/oledb/dbccmd.idl
new file mode 100644
index 000000000..4e5711732
--- /dev/null
+++ b/private/types2/oledb/dbccmd.idl
@@ -0,0 +1,29 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: dbccmd.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a1d-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IDBCreateCommand : IUnknown {
+
+ HRESULT CreateCommand(
+ [in] IUnknown * pUnkOuter,
+ [in] REFIID riid,
+ [out] IUnknown ** ppvCommand
+ );
+
+}
diff --git a/private/types2/oledb/dbcses.idl b/private/types2/oledb/dbcses.idl
new file mode 100644
index 000000000..4e7b20a94
--- /dev/null
+++ b/private/types2/oledb/dbcses.idl
@@ -0,0 +1,28 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: dbcses.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 13 Dec 1995 PeterBu Created from M6.1 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a5d-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IDBCreateSession : IUnknown {
+
+ HRESULT CreateSession(
+ [in] IUnknown * pUnkOuter,
+ [in] REFIID riid,
+ [out, iid_is(riid)] IUnknown ** ppDBSession
+ );
+
+}
diff --git a/private/types2/oledb/dbesrc.idl b/private/types2/oledb/dbesrc.idl
new file mode 100644
index 000000000..4b542be38
--- /dev/null
+++ b/private/types2/oledb/dbesrc.idl
@@ -0,0 +1,36 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: dbesrc.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a1e-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IDBEnumerateSources : IUnknown {
+
+typedef DWORD DBSOURCEFLAGS;
+
+enum DBSOURCEFLAGSENUM {
+ DBSOURCE_ISENUMERATOR = 0x001,
+ DBSOURCE_ISPARENT = 0x002,
+};
+
+ HRESULT Sources(
+ [in] IUnknown * pUnkOuter,
+ [in] REFIID riid,
+ [out, iid_is(riid)] IUnknown ** ppvSourcesRowset
+ );
+
+}
diff --git a/private/types2/oledb/dbinfo.idl b/private/types2/oledb/dbinfo.idl
new file mode 100644
index 000000000..78d71500a
--- /dev/null
+++ b/private/types2/oledb/dbinfo.idl
@@ -0,0 +1,259 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: dbinfo.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a56-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IDBInfo : IUnknown {
+
+cpp_quote("#define DBPROP_BA_PASSBYREF 0x00000001L")
+cpp_quote("#define DBPROP_BA_PASSCOLUMNSBYREF 0x00000002L")
+
+cpp_quote("#define DBPROP_CL_START 0x00000001L")
+cpp_quote("#define DBPROP_CL_END 0x00000002L")
+
+cpp_quote("#define DBPROP_CU_DML_STATEMENTS 0x00000001L")
+cpp_quote("#define DBPROP_CU_TABLE_DEFINITION 0x00000002L")
+cpp_quote("#define DBPROP_CU_INDEX_DEFINITION 0x00000004L")
+cpp_quote("#define DBPROP_CU_PRIVILEGE_DEFINITION 0x00000008L")
+
+cpp_quote("#define DBPROP_CB_NULL 0x00000001L")
+cpp_quote("#define DBPROP_CB_NON_NULL 0x00000002L")
+
+cpp_quote("#define DBPROP_FU_NOT_SUPPORTED 0x00000001L")
+cpp_quote("#define DBPROP_FU_COLUMN 0x00000002L")
+cpp_quote("#define DBPROP_FU_TABLE 0x00000004L")
+cpp_quote("#define DBPROP_FU_CATALOG 0x00000008L")
+
+cpp_quote("#define DBPROP_GB_NOT_SUPPORTED 0x00000001L")
+cpp_quote("#define DBPROP_GB_EQUALS_SELECT 0x00000002L")
+cpp_quote("#define DBPROP_GB_CONTAINS_SELECT 0x00000004L")
+cpp_quote("#define DBPROP_GB_NO_RELATION 0x00000008L")
+
+cpp_quote("#define DBPROP_HT_DIFFERENT_CATALOGS 0x00000001L")
+cpp_quote("#define DBPROP_HT_DIFFERENT_PROVIDERS 0x00000002L")
+
+cpp_quote("#define DBPROP_IC_UPPER 0x00000001L")
+cpp_quote("#define DBPROP_IC_LOWER 0x00000002L")
+cpp_quote("#define DBPROP_IC_SENSITIVE 0x00000004L")
+cpp_quote("#define DBPROP_IC_MIXED 0x00000008L")
+
+cpp_quote("#define DBPROP_LM_NONE 0x00000001L")
+cpp_quote("#define DBPROP_LM_READ 0x00000002L")
+cpp_quote("#define DBPROP_LM_INTENT 0x00000004L")
+cpp_quote("#define DBPROP_LM_WRITE 0x00000008L")
+
+cpp_quote("#define DBPROP_NP_OKTODO 0x00000001L")
+cpp_quote("#define DBPROP_NP_ABOUTTODO 0x00000002L")
+cpp_quote("#define DBPROP_NP_SYNCHAFTER 0x00000004L")
+cpp_quote("#define DBPROP_NP_FAILEDTODO 0x00000008L")
+cpp_quote("#define DBPROP_NP_DIDEVENT 0x00000010L")
+
+cpp_quote("#define DBPROP_CB_DELETE 0x00000001L")
+cpp_quote("#define DBPROP_CB_PRESERVE 0x00000002L")
+
+cpp_quote("#define DBPROP_SU_DML_STATEMENTS 0x00000001L")
+cpp_quote("#define DBPROP_SU_TABLE_DEFINITION 0x00000002L")
+cpp_quote("#define DBPROP_SU_INDEX_DEFINITION 0x00000004L")
+cpp_quote("#define DBPROP_SU_PRIVILEGE_DEFINITION 0x00000008L")
+
+cpp_quote("#define DBPROP_SO_CORRELATEDSUBQUERIES 0x00000001L")
+cpp_quote("#define DBPROP_SO_COMPARISON 0x00000002L")
+cpp_quote("#define DBPROP_SO_EXISTS 0x00000004L")
+cpp_quote("#define DBPROP_SO_IN 0x00000008L")
+cpp_quote("#define DBPROP_SO_QUANTIFIED 0x00000010L")
+
+cpp_quote("#define DBPROP_TI_CHAOS 0x00000001L")
+cpp_quote("#define DBPROP_TI_READUNCOMMITTED 0x00000002L")
+cpp_quote("#define DBPROP_TI_BROWSE 0x00000004L")
+cpp_quote("#define DBPROP_TI_CURSORSTABILITY 0x00000008L")
+cpp_quote("#define DBPROP_TI_READCOMMITTED 0x00000010L")
+cpp_quote("#define DBPROP_TI_REPEATABLEREAD 0x00000020L")
+cpp_quote("#define DBPROP_TI_SERIALIZABLE 0x00000040L")
+cpp_quote("#define DBPROP_TI_ISOLATED 0x00000080L")
+
+cpp_quote("#define DBPROP_TR_COMMIT_DC 0x00000001L")
+cpp_quote("#define DBPROP_TR_COMMIT 0x00000002L")
+cpp_quote("#define DBPROP_TR_COMMIT_NO 0x00000004L")
+cpp_quote("#define DBPROP_TR_ABORT_DC 0x00000008L")
+cpp_quote("#define DBPROP_TR_ABORT 0x00000010L")
+cpp_quote("#define DBPROP_TR_ABORT_NO 0x00000020L")
+cpp_quote("#define DBPROP_TR_DONTCARE 0x00000040L")
+cpp_quote("#define DBPROP_TR_BOTH 0x00000080L")
+cpp_quote("#define DBPROP_TR_NONE 0x00000100L")
+cpp_quote("#define DBPROP_TR_OPTIMISTIC 0x00000200L")
+
+typedef DWORD DBPROPFLAGS;
+
+enum DBPROPFLAGSENUM {
+ DBPROPFLAGS_DATASOURCE = 0x01,
+ DBPROPFLAGS_ROWSET = 0x02,
+ DBPROPFLAGS_COLUMNOK = 0x04,
+ DBPROPFLAGS_READ = 0x08,
+ DBPROPFLAGS_WRITE = 0x10,
+ DBPROPFLAGS_PROVIDER = 0x20,
+};
+
+typedef struct tagDBPROPINFO {
+ GUID guidProperty;
+ DBPROPFLAGS dwPropFlags;
+ VARTYPE vtPropType;
+ VARIANT vDefault;
+} DBPROPINFO;
+
+typedef DWORD DBLITERAL;
+
+enum DBLITERALENUM {
+ DBLITERAL_BINARY_LITERAL,
+ DBLITERAL_CATALOG_NAME,
+ DBLITERAL_CATALOG_SEPARATOR,
+ DBLITERAL_CHAR_LITERAL,
+ DBLITERAL_COLUMN_ALIAS,
+ DBLITERAL_COLUMN_NAME,
+ DBLITERAL_CORRELATION_NAME,
+ DBLITERAL_CURSOR_NAME,
+ DBLITERAL_ESCAPE_PERCENT,
+ DBLITERAL_ESCAPE_UNDERSCORE,
+ DBLITERAL_INDEX_NAME,
+ DBLITERAL_LIKE_PERCENT,
+ DBLITERAL_LIKE_UNDERSCORE,
+ DBLITERAL_PROCEDURE_NAME,
+ DBLITERAL_SCHEMA_NAME,
+ DBLITERAL_TABLE_NAME,
+ DBLITERAL_TEXT_COMMAND,
+ DBLITERAL_USER_NAME,
+ DBLITERAL_VIEW_NAME,
+ DBLITERAL_QUOTE,
+};
+
+typedef struct tagDBLITERALINFO {
+ DBLITERAL lt;
+ BOOL fSupported;
+ ULONG cbMaxLen;
+ LPWSTR pwszValidChars;
+ LPWSTR pwszStartingChars;
+} DBLITERALINFO;
+
+typedef DWORD DBOPTYPE;
+
+enum DBOPTYPEENUM {
+ DBOPTYPE_TABLE,
+ DBOPTYPE_ROW,
+ DBOPTYPE_SCALAR,
+ DBOPTYPE_BOOLEAN,
+ DBOPTYPE_LA_COLDEF,
+ DBOPTYPE_LA_COLUMN,
+ DBOPTYPE_LA_COMMAND,
+ DBOPTYPE_LA_FROM,
+ DBOPTYPE_LA_INDEX,
+ DBOPTYPE_LA_PROJECT,
+ DBOPTYPE_LA_PROPERTY,
+ DBOPTYPE_LA_ROW,
+ DBOPTYPE_LA_SCALAR,
+ DBOPTYPE_LA_SET,
+ DBOPTYPE_LA_SORT,
+ DBOPTYPE_LE_COLDEF,
+ DBOPTYPE_LE_COLUMN,
+ DBOPTYPE_LE_COMMAND,
+ DBOPTYPE_LE_FROM,
+ DBOPTYPE_LE_INDEX,
+ DBOPTYPE_LE_PROJECT,
+ DBOPTYPE_LE_PROPERTY,
+ DBOPTYPE_LE_ROW,
+ DBOPTYPE_LE_SCALAR,
+ DBOPTYPE_LE_SET,
+ DBOPTYPE_LE_SORT,
+ DBOPTYPE_CATALOG_NAME,
+ DBOPTYPE_SCHEMA_NAME,
+ DBOPTYPE_OUTALL_NAME,
+ DBOPTYPE_DDL,
+ DBOPTYPE_UPDATE,
+};
+
+typedef DWORD DBMINORTYPE;
+
+enum DBMINORTYPEENUM {
+ DBMINORTYPE_UNORDERED = 0x001,
+ DBMINORTYPE_ORDERED = 0x002,
+ DBMINORTYPE_UNIQUE = 0x004,
+ DBMINORTYPE_ORDEREDUNIQUE = 0x008,
+ DBMINORTYPE_HIERARCHICAL = 0x010,
+ DBMINORTYPE_AGGREGATE_FUNCTION = 0x001,
+ DBMINORTYPE_BOOKMARK = 0x002,
+ DBMINORTYPE_COLUMN = 0x004,
+ DBMINORTYPE_CONSTANT = 0x008,
+ DBMINORTYPE_DEFAULT = 0x010,
+ DBMINORTYPE_EXPRESSION = 0x020,
+ DBMINORTYPE_NULL = 0x040,
+ DBMINORTYPE_PARAMETER = 0x080,
+ DBMINORTYPE_SCALAR_FUNCTION = 0x100,
+ DBMINORTYPE_UPDATE = 0x200,
+ DBMINORTYPE_DELETE = 0x400,
+ DBMINORTYPE_INSERT = 0x800,
+};
+
+typedef struct tagDBINPUTINFO {
+ DBOPTYPE dwOpType;
+ DBMINORTYPE dwMinorType;
+ ULONG cMaxInputs;
+ ULONG cMaxListElements;
+} DBINPUTINFO;
+
+typedef struct tagDBOPINFO {
+ DBCOMMANDOP op;
+ GUID * pguid;
+ BOOL fSupported;
+ DBOPTYPE dwOpType;
+ DBMINORTYPE dwMinorType;
+ ULONG cReqInputs;
+ DBINPUTINFO * rgReqInputs;
+ ULONG cOptInputTypes;
+ DBINPUTINFO * rgOptInputTypes;
+} DBOPINFO;
+
+
+ HRESULT GetPropertyInfo(
+ [in] ULONG cProperties,
+ [in, size_is(cProperties)] GUID rgProperties[],
+ [out] ULONG * pcPropertyInfo,
+ [out] DBPROPINFO ** prgPropertyInfo,
+ [out] WCHAR ** ppDataBuffer
+ );
+
+ HRESULT GetKeywords(
+ [out] LPWSTR * ppwszKeywords
+ );
+
+ HRESULT GetLiteralInfo(
+ [in] ULONG cLiterals,
+ [in, size_is(cLiterals)] DBLITERAL rgLiterals[],
+ [out] ULONG * pcLiteralInfo,
+ [out, size_is(cLiterals)] DBLITERALINFO ** prgLiteralInfo,
+ [out] WCHAR ** ppCharBuffer
+ );
+
+ HRESULT GetOperatorInfo(
+ [in] ULONG cOperators,
+ [in, size_is(cOperators)] DBCOMMANDOP rgOperators[],
+ [in, size_is(cOperators)] GUID rgOpGuids[],
+ [out] ULONG * pcOpInfo,
+ [out] DBOPINFO ** prgOpInfo,
+ [out] WCHAR ** ppInputInfoBuffer
+ );
+
+}
diff --git a/private/types2/oledb/dbinit.idl b/private/types2/oledb/dbinit.idl
new file mode 100644
index 000000000..d76931340
--- /dev/null
+++ b/private/types2/oledb/dbinit.idl
@@ -0,0 +1,30 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: dbinit.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a1f-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IDBInitialize : IUnknown {
+
+ HRESULT Initialize(
+ [in] ULONG cOptions,
+ [in, size_is(cOptions)] GUID * rgOptionsIDs,
+ [in, size_is(cOptions)] VARIANT * rgOptionVals
+ );
+
+}
diff --git a/private/types2/oledb/dbs.idl b/private/types2/oledb/dbs.idl
new file mode 100644
index 000000000..5243d9359
--- /dev/null
+++ b/private/types2/oledb/dbs.idl
@@ -0,0 +1,1215 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: dbs.idl
+//
+// Contents: OLE/DB structure definititions
+//
+// History:
+// 28 Mar 1994 AlanW Created from spec
+// 20 Apr 1994 PeterBu Updated to latest spec
+// 29 Jul 1994 AlanW Removed DBVARIANT in favor of STGVARIANT
+// 20 Dec 1994 PeterBu Updated to phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+[
+ uuid(0c733a80-2a1c-11ce-ade5-00aa0044773d),
+ pointer_default(unique)
+]
+
+interface DBStructureDefinitions {
+
+// BUGBUG - they took away DB_S_BLOCKLIMITEDROWS; what should we use in its place?
+
+//cpp_quote("#if !defined( DB_S_BLOCKLIMITEDROWS)")
+//cpp_quote("#define DB_S_BLOCKLIMITEDROWS DB_S_ABORT_LIMITREACHED")
+//cpp_quote("#endif // DB_S_BLOCKLIMITEDROWS")
+
+ //
+ // A DBID is the way a particular column is identified.
+ // It consists of a GUID followed by either a LONG or a Unicode
+ // string.
+ //
+
+typedef DWORD DBKIND;
+
+enum DBKINDENUM {
+ DBKIND_GUID_NAME,
+ DBKIND_GUID_PROPID,
+ DBKIND_NAME,
+ DBKIND_PGUID_NAME,
+ DBKIND_PGUID_PROPID,
+ DBKIND_PROPID,
+ DBKIND_GUID,
+};
+
+typedef struct tagDBID {
+ [switch_type(DBKIND),switch_is(eKind)] union {
+ [case(DBKIND_GUID_NAME, DBKIND_GUID_PROPID, DBKIND_GUID)] GUID guid;
+ [case(DBKIND_PGUID_NAME, DBKIND_PGUID_PROPID)] GUID *pguid;
+ }
+#if(defined(NONAMELESSUNION))
+ u
+#endif
+ ;
+ DBKIND eKind;
+ [switch_type(DBKIND),switch_is(eKind)] union {
+ [case(DBKIND_GUID_NAME, DBKIND_NAME, DBKIND_PGUID_NAME)] LPWSTR pwszName;
+ [case(DBKIND_GUID_PROPID, DBKIND_PGUID_PROPID, DBKIND_PROPID)] ULONG ulPropid;
+ }
+#if(defined(NONAMELESSUNION))
+ u2
+#endif
+ ;
+} DBID;
+
+ //
+ // DBNUMERIC type
+ //
+
+#define MAXNUMERICLEN 16
+
+#define DBNUM_PREC_TYPE BYTE
+#define DBNUM_SCALE_TYPE BYTE
+#define DBNUM_VAL_TYPE BYTE
+
+typedef struct tagDBNUMERIC {
+ DBNUM_PREC_TYPE precision; // not to exceed 28
+ DBNUM_SCALE_TYPE scale;
+ BYTE sign;
+ DBNUM_VAL_TYPE val[MAXNUMERICLEN];
+} DBNUMERIC;
+
+ //
+ // DBTYPE -- data type indicators
+ //
+
+typedef WORD DBTYPE;
+
+enum DBTYPEENUM {
+ // The following values exactly match VARENUM in OLE Automation and may
+ // be used in VARIANT
+ DBTYPE_EMPTY,
+ DBTYPE_NULL,
+ DBTYPE_I2,
+ DBTYPE_I4,
+ DBTYPE_R4,
+ DBTYPE_R8,
+ DBTYPE_CY,
+ DBTYPE_DATE,
+ DBTYPE_BSTR,
+ DBTYPE_DISPATCH,
+ DBTYPE_ERROR,
+ DBTYPE_BOOL,
+ DBTYPE_VARIANT,
+ DBTYPE_UNKNOWN,
+ DBTYPE_UI1 = 17,
+ DBTYPE_ARRAY = 0x2000,
+ DBTYPE_BYREF = 0x4000,
+
+ // The following values exactly match VARENUM in OLE Automation but cannot
+ // be used in VARIANT
+ DBTYPE_I1 = 16,
+ DBTYPE_UI2 = 18,
+ DBTYPE_UI4,
+ DBTYPE_I8,
+ DBTYPE_UI8,
+ DBTYPE_GUID = 72,
+ DBTYPE_VECTOR = 0x1000,
+
+ DBTYPE_RESERVED = 0x8000,
+
+ // The following values are not in VARENUM in OLE
+ DBTYPE_BYTES = 128,
+ DBTYPE_STR = 129,
+ DBTYPE_WSTR,
+ DBTYPE_NUMERIC,
+ DBTYPE_HCHAPTER,
+};
+
+typedef struct tagDBVECTOR {
+ ULONG size;
+ void * ptr;
+} DBVECTOR;
+
+ //
+ // DBBINDING -- describes the relationship between a field and its value
+ //
+
+typedef DWORD DBCOLUMNPART;
+
+enum DBCOLUMNPARTENUM {
+ DBCOLUMNPART_VALUE = 1,
+ DBCOLUMNPART_LENGTH = 2,
+ DBCOLUMNPART_STATUS = 4
+};
+
+typedef DWORD DBCOLUMNSTATUS;
+
+enum DBCOLUMNSTATUSENUM {
+ DBCOLUMNSTATUS_OK = 0,
+ DBCOLUMNSTATUS_ISNULL,
+ DBCOLUMNSTATUS_TRUNCATED,
+ DBCOLUMNSTATUS_SIGNMISMATCH,
+ DBCOLUMNSTATUS_DATAOVERFLOW,
+ DBCOLUMNSTATUS_CANTCOERCE,
+ DBCOLUMNSTATUS_CANTCREATE,
+ DBCOLUMNSTATUS_UNAVAILABLE,
+ DBCOLUMNSTATUS_ACCESSVIOLATION,
+ DBCOLUMNSTATUS_INTEGRITYVIOLATION,
+ DBCOLUMNSTATUS_SCHEMAVIOLATION,
+};
+
+typedef struct tagDBOBJECT {
+ IUnknown * pUnkOuter;
+ IID iid;
+ LPBC pbc;
+} DBOBJECT;
+
+typedef DWORD DBPARAMIO;
+
+enum DBPARAMIOENUM {
+ DBPARAMIO_INPUT = 0x01,
+ DBPARAMIO_OUTPUT = 0x02,
+};
+
+typedef struct tagDBBINDING {
+ DBCOLUMNPART dwPart;
+ DBPARAMIO eParamIO;
+ ULONG iColumn;
+ DBTYPE dwType;
+ ITypeInfo * pTypeInfo;
+ DBNUMERIC * pNum;
+ ULONG obValue;
+ ULONG cbMaxLen;
+ DBOBJECT pObject;
+ ULONG obLength;
+ ULONG obStatus;
+} DBBINDING;
+
+ //
+ // HACCESSOR and related definitions
+ //
+
+cpp_quote("DECLARE_HANDLE(HACCESSOR);")
+
+cpp_quote("#if 0")
+cpp_quote("// Used by MIDL only")
+typedef void * HACCESSOR;
+cpp_quote("#endif // 0")
+
+cpp_quote("#define DB_INVALID_HACCESSOR 0x00")
+
+ //
+ // HROW and related definitions
+ //
+
+cpp_quote("DECLARE_HANDLE(HROW);")
+
+cpp_quote("#if 0")
+cpp_quote("// Used by MIDL only")
+typedef void * HROW;
+cpp_quote("#endif // 0")
+
+cpp_quote("#define DB_INVALID_HROW 0x00")
+
+ //
+ // HWATCHREGION and related definitions
+ //
+
+cpp_quote("DECLARE_HANDLE(HWATCHREGION);")
+
+cpp_quote("#if 0")
+cpp_quote("// Used by MIDL only")
+typedef void * HWATCHREGION;
+cpp_quote("#endif // 0")
+
+cpp_quote("#define DBWATCHREGION_NULL NULL")
+
+ //
+ // HCHAPTER and related definitions
+ //
+
+cpp_quote("DECLARE_HANDLE(HCHAPTER);")
+
+cpp_quote("#if 0")
+cpp_quote("// Used by MIDL only")
+typedef void * HCHAPTER;
+cpp_quote("#endif // 0")
+
+// BUGBUG - it should be HCHAPTER, not CHAPTER.
+cpp_quote("#define DB_INVALID_CHAPTER 0x00")
+cpp_quote("#define DB_INVALID_HCHAPTER 0x00")
+
+ //
+ // DBERRORINFO -- errors returned by operations that modify more than 1 row
+ //
+
+typedef struct tagDBERRORINFO {
+ HROW hRow;
+ HRESULT hResult;
+ ULONG iColumn;
+} DBERRORINFO;
+
+ //
+ // DBFAILUREINFO -- info on error rows
+ //
+
+typedef struct tagDBFAILUREINFO {
+ HROW hRow;
+ HRESULT failure;
+ ULONG iColumn;
+} DBFAILUREINFO;
+
+ //
+ // DBCOLUMNFLAGS -- describe column characteristics
+ // BUGBUG - ole-db spec bug #1659 - DBCOLUMNFLAGS_SELF
+ //
+
+typedef DWORD DBCOLUMNFLAGS;
+
+enum DBCOLUMNFLAGSENUM {
+ DBCOLUMNFLAGS_ISBOOKMARK = 0x0001,
+ DBCOLUMNFLAGS_MAYDEFER = 0x0002,
+ DBCOLUMNFLAGS_MAYREFERENCE = 0x0004,
+ DBCOLUMNFLAGS_MAYWRITE = 0x0008,
+ DBCOLUMNFLAGS_ISSIGNED = 0x0010,
+ DBCOLUMNFLAGS_ISFIXEDLENGTH = 0x0020,
+ DBCOLUMNFLAGS_ISNULLABLE = 0x0040,
+ DBCOLUMNFLAGS_MAYBENULL = 0x0080,
+ DBCOLUMNFLAGS_ISCHAPTER = 0x0100,
+ DBCOLUMNFLAGS_ISOLEBLOB = 0x0200,
+ DBCOLUMNFLAGS_ISROWID = 0x0400,
+ DBCOLUMNFLAGS_ISROWVER = 0x0800,
+ DBCOLUMNFLAGS_CACHEDEFERRED = 0x1000,
+ DBCOLUMNFLAGS_ISSELF = 0x2000,
+};
+
+ //
+ // Predefined bookmark and chapter values
+ //
+
+typedef enum tagDBBOOKMARK {
+ DBBMK_INVALID = 0,
+ DBBMK_FIRST,
+ DBBMK_LAST
+} DBBOOKMARK;
+
+typedef enum tagDBCHAPTER {
+ DBCHP_INVALID = 0,
+ DBCHP_FIRST
+} DBCHAPTER;
+
+ //
+ // DB_INVALIDCOLUMN define
+ //
+
+cpp_quote("#define DB_INVALIDCOLUMN -100")
+
+ //
+ // Predefined DBID's
+ //
+
+cpp_quote("#define DBCIDGUID {0x0C733A81L,0x2A1C,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}}")
+cpp_quote("#define DB_NULLGUID {0x00000000L,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}")
+
+cpp_quote("#ifdef DBINITCONSTANTS")
+
+cpp_quote("extern const DBID DB_NULLCOLID = {DB_NULLGUID, DBKIND_GUID_PROPID, (LPWSTR)0};")
+
+cpp_quote("extern const DBID DBCOLUMN_COLUMNID = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)2};")
+cpp_quote("extern const DBID DBCOLUMN_NAME = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)3};")
+cpp_quote("extern const DBID DBCOLUMN_NUMBER = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)4};")
+cpp_quote("extern const DBID DBCOLUMN_TYPE = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)5};")
+cpp_quote("extern const DBID DBCOLUMN_MAXLENGTH = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)6};")
+cpp_quote("extern const DBID DBCOLUMN_PRECISION = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)7};")
+cpp_quote("extern const DBID DBCOLUMN_SCALE = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)8};")
+cpp_quote("extern const DBID DBCOLUMN_FLAGS = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)9};")
+cpp_quote("extern const DBID DBCOLUMN_BASECOLUMNNAME = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)10};")
+cpp_quote("extern const DBID DBCOLUMN_BASETABLENAME = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)11};")
+cpp_quote("extern const DBID DBCOLUMN_COLLATINGSEQUENCE = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)12};")
+cpp_quote("extern const DBID DBCOLUMN_COMPUTEMODE = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)13};")
+cpp_quote("extern const DBID DBCOLUMN_DEFAULTVALUE = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)14};")
+cpp_quote("extern const DBID DBCOLUMN_DOMAIN = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)15};")
+cpp_quote("extern const DBID DBCOLUMN_HASDEFAULT = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)16};")
+cpp_quote("extern const DBID DBCOLUMN_ISAUTOINCREMENT = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)17};")
+cpp_quote("extern const DBID DBCOLUMN_ISCASESENSITIVE = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)18};")
+cpp_quote("extern const DBID DBCOLUMN_ISMULTIVALUED = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)19};")
+cpp_quote("extern const DBID DBCOLUMN_ISSEARCHABLE = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)20};")
+cpp_quote("extern const DBID DBCOLUMN_ISUNIQUE = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)21};")
+cpp_quote("extern const DBID DBCOLUMN_ISVERSION = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)22};")
+cpp_quote("extern const DBID DBCOLUMN_BASECATALOGNAME = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)23};")
+cpp_quote("extern const DBID DBCOLUMN_BASESCHEMANAME = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)24};")
+
+cpp_quote("extern const DBID SOURCES_NAME = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)25};")
+cpp_quote("extern const DBID SOURCES_PARSENAME = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)26};")
+cpp_quote("extern const DBID SOURCES_DESCRIPTION = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)27};")
+cpp_quote("extern const DBID SOURCES_FLAGS = {DBCIDGUID, DBKIND_GUID_PROPID, (LPWSTR)28};")
+
+cpp_quote("#else // !DBINITCONSTANTS")
+
+cpp_quote("extern const DBID DB_NULLCOLID;")
+
+cpp_quote("extern const DBID DBCOLUMN_COLUMNID;")
+cpp_quote("extern const DBID DBCOLUMN_NAME;")
+cpp_quote("extern const DBID DBCOLUMN_NUMBER;")
+cpp_quote("extern const DBID DBCOLUMN_TYPE;")
+cpp_quote("extern const DBID DBCOLUMN_MAXLENGTH;")
+cpp_quote("extern const DBID DBCOLUMN_PRECISION;")
+cpp_quote("extern const DBID DBCOLUMN_SCALE;")
+cpp_quote("extern const DBID DBCOLUMN_FLAGS;")
+cpp_quote("extern const DBID DBCOLUMN_BASECOLUMNNAME;")
+cpp_quote("extern const DBID DBCOLUMN_BASETABLENAME;")
+cpp_quote("extern const DBID DBCOLUMN_COLLATINGSEQUENCE;")
+cpp_quote("extern const DBID DBCOLUMN_COMPUTEMODE;")
+cpp_quote("extern const DBID DBCOLUMN_DEFAULTVALUE;")
+cpp_quote("extern const DBID DBCOLUMN_DOMAIN;")
+cpp_quote("extern const DBID DBCOLUMN_HASDEFAULT;")
+cpp_quote("extern const DBID DBCOLUMN_ISAUTOINCREMENT;")
+cpp_quote("extern const DBID DBCOLUMN_ISCASESENSITIVE;")
+cpp_quote("extern const DBID DBCOLUMN_ISMULTIVALUED;")
+cpp_quote("extern const DBID DBCOLUMN_ISSEARCHABLE;")
+cpp_quote("extern const DBID DBCOLUMN_ISUNIQUE;")
+cpp_quote("extern const DBID DBCOLUMN_ISVERSION;")
+cpp_quote("extern const DBID DBCOLUMN_BASECATALOGNAME;")
+cpp_quote("extern const DBID DBCOLUMN_BASESCHEMANAME;")
+
+cpp_quote("extern const DBID SOURCES_NAME;")
+cpp_quote("extern const DBID SOURCES_PARSENAME;")
+cpp_quote("extern const DBID SOURCES_DESCRIPTION;")
+cpp_quote("extern const DBID SOURCES_FLAGS;")
+
+cpp_quote("#endif // DBINITCONSTANTS")
+
+ //
+ // Well-known property GUIDs, 'like' GUIDs, and text node GUIDs
+ //
+
+cpp_quote("#ifdef DBINITCONSTANTS")
+
+cpp_quote("extern const GUID DB_PROPERTY_CHECK_OPTION = {0xc8b5220b,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_CONSTRAINT_CHECK_DEFERRED = {0xc8b521f0,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_DESCRIPTION = {0xc8b521f1,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_DEFAULT_VALUE = {0xc8b521f2,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_DROP_CASCADE = {0xc8b521f3,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_ON_COMMIT_PRESERVE_ROWS = {0xc8b52230,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_NULLABLE = {0xc8b521f4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_UNIQUE = {0xc8b521f5,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_PRIMARY = {0xc8b521fc,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_CLUSTERED = {0xc8b521ff,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_NONCLUSTERED = {0xc8b52200,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_BTREE = {0xc8b52201,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_HASH = {0xc8b52202,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_FILLFACTOR = {0xc8b52203,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_INITIALSIZE = {0xc8b52204,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_DISALLOWNULL = {0xc8b52205,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_IGNORENULL = {0xc8b52206,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_IGNOREANYNULL = {0xc8b52207,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_SORTBOOKMARKS = {0xc8b52208,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_AUTOMATICUPDATE = {0xc8b52209,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_EXPLICITUPDATE = {0xc8b5220a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_WITH_LOCAL_CHECK_OPTION = {0xc8b52256,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DB_PROPERTY_WITH_CASCADED_CHECK_OPTION = {0xc8b52257,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+
+cpp_quote("extern const GUID DBGUID_LIKE_SQL = {0xc8b521f6,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBGUID_LIKE_DOS = {0xc8b521f7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBGUID_LIKE_OFS = {0xc8b521f8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBGUID_LIKE_MAPI = {0xc8b521f9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBGUID_SQL92 = {0xc8b521fa,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBGUID_DBSQL = {0xc8b521fb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBGUID_TSQL = {0xc8b521fd,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBGUID_ACCESSSQL = {0xc8b521fe,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+
+cpp_quote("extern const GUID DBINIT_OPT_HWND = {0xc8b5227b,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBINIT_OPT_LOCATION = {0xc8b5220d,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBINIT_OPT_NAME = {0xc8b5220c,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBINIT_OPT_PASSWORD = {0xc8b5220f,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBINIT_OPT_TIMEOUT = {0xc8b5227c,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBINIT_OPT_USERID = {0xc8b5220e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+
+cpp_quote("extern const GUID DBSCHEMA_ASSERTIONS = {0xc8b52210,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_CATALOGS = {0xc8b52211,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_CHARACTER_SETS = {0xc8b52212,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_COLLATIONS = {0xc8b52213,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_COLUMNS = {0xc8b52214,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_CHECK_CONSTRAINTS = {0xc8b52215,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_CONSTRAINT_COLUMN_USAGE = {0xc8b52216,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_CONSTRAINT_TABLE_USAGE = {0xc8b52217,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_KEY_COLUMN_USAGE_CONSTRAINTS = {0xc8b52218,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_REFERENTIAL_CONSTRAINTS = {0xc8b52219,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_TABLE_CONSTRAINTS = {0xc8b5221a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_DOMAIN_COLUMN_USAGE = {0xc8b5221b,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_DOMAINS = {0xc8b5221c,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_DOMAIN_CONSTRAINTS = {0xc8b5221d,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_INDEXES = {0xc8b5221e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_OBJECT_ACTIONS = {0xc8b5221f,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_OBJECTS = {0xc8b52220,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_COLUMN_PRIVILEGES = {0xc8b52221,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_TABLE_PRIVILEGES = {0xc8b52222,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_USAGE_PRIVILEGES = {0xc8b52223,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_PROCEDURES = {0xc8b52224,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_SCHEMATA = {0xc8b52225,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_SQL_LANGUAGES = {0xc8b52226,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_STATISTICS = {0xc8b52227,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_SYNONYMS = {0xc8b52228,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_TABLES = {0xc8b52229,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_TRANSLATIONS = {0xc8b5222a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_TRIGGERS = {0xc8b5222b,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_TYPES = {0xc8b5222c,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_VIEWS = {0xc8b5222d,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_VIEW_COLUMN_USAGE = {0xc8b5222e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBSCHEMA_VIEW_TABLE_USAGE = {0xc8b5222f,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+
+cpp_quote("extern const GUID DBCOL_SELFCOLUMNS = {0xc8b52231,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBCOL_SPECIALCOL = {0xc8b52232,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+
+cpp_quote("extern const GUID DBPROP_ABORTRETAINING = {0xc8b5224b,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_BOOKMARKS = {0xc8b5223e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_CACHEDEFERRED = {0xc8b52287,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_CANFETCHBACKWARDS = {0xc8b5223c,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_CANHOLDROWS = {0xc8b52241,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_CANRELEASELOCKS = {0xc8b52245,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_CANSCROLLBACKWARDS = {0xc8b5223d,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_CHAPTERED = {0xc8b52246,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_COMMITRETAINING = {0xc8b5224a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_COUNTOFCOLUMNS = {0xc8b52236,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_DEFERRED = {0xc8b52233,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_DISCONTIGUOUS = {0xc8b52244,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_LITERALBOOKMARKS = {0xc8b5223f,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_MAXOPENROWS = {0xc8b52237,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_MAXOPENROWSPERCHAPTER = {0xc8b52239,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_MAXPENDINGCHANGEROWS = {0xc8b52238,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_MAXPENDINGCHANGESPERCHAPTER = {0xc8b5223a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_MAYWRITECOLUMN = {0xc8b52288,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_MEMORYUSAGE = {0xc8b52235,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_MULTICHAPTERED = {0xc8b52247,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_MULTIPLEACCESSORS = {0xc8b52289,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_MULTIPLERESULTSETS = {0xc8b52255,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_NOCOLUMNRESTRICT = {0xc8b52242,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_NOROWRESTRICT = {0xc8b52243,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_ORDEREDBOOKMARKS = {0xc8b52240,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_OTHERINSERT = {0xc8b5224f,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_OTHERUPDATEDELETE = {0xc8b5224e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_OWNINSERT = {0xc8b5224d,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_OWNUPDATEDELETE = {0xc8b5224c,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_PROPERTIESINERROR = {0xc8b5228a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_QUICKRESTART = {0xc8b52253,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_REENTRANTEVENTS = {0xc8b52249,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_REMOVEDELETED = {0xc8b52250,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_SERVERCURSOR = {0xc8b52251,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_TRUEIDENTITY = {0xc8b52248,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+
+cpp_quote("extern const GUID DBPROP_ACTIVESESSIONS = {0xc8b52256,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_ASYNCTXNCOMMIT = {0xc8b52257,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_BYREFACCESSORS = {0xc8b52258,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_CATALOGLOCATION = {0xc8b52259,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_CATALOGTERM = {0xc8b5225a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_CATALOGUSAGE = {0xc8b5225b,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_CONCATNULLBEHAVIOR = {0xc8b5225c,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_DATASOURCENAME = {0xc8b5225d,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_DBMSNAME = {0xc8b5225e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_DBMSVER = {0xc8b5225f,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_FILEUSAGE = {0xc8b52260,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_GROUPBY = {0xc8b52261,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_HETEROGENEOUSTABLES = {0xc8b52262,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_IDENTIFIERCASE = {0xc8b52263,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_LOCKMODES = {0xc8b52264,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_MAXINDEXSIZE = {0xc8b52265,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_MAXROWSIZE = {0xc8b52266,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_MAXROWSIZEINCLUDESBLOB = {0xc8b52267,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_MAXTABLESINSELECT = {0xc8b52268,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_MULTITABLEUPDATE = {0xc8b52269,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_NOTIFICATIONPHASES = {0xc8b5226a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_OLEOBJECTS = {0xc8b5226b,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_ORDERBYCOLUMNSINSELECT = {0xc8b5226c,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_PREPARECOMMITBEHAVIOR = {0xc8b5226d,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_PREPAREABORTBEHAVIOR = {0xc8b5226e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_PROVIDEREXTENSIONS = {0xc8b5226f,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_PROVIDEROLEDBVER = {0xc8b52270,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_PROVIDERNAME = {0xc8b52271,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_PROVIDERVER = {0xc8b52272,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_QUOTEDIDENTIFIERCASE = {0xc8b52273,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_SCHEMATERM = {0xc8b52274,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_SCHEMAUSAGE = {0xc8b52275,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_SQLDIALECTS = {0xc8b52276,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_SUBQUERIES = {0xc8b52277,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_SUPPORTEDTXNISOLEVELS = {0xc8b52278,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_SUPPORTEDTXNISORETAIN = {0xc8b52279,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_TABLETERM = {0xc8b5227a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+
+cpp_quote("extern const GUID DBPROP_INDEX_AUTOUPDATE = {0xc8b5227d,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_INDEX_CLUSTERED = {0xc8b5227e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_INDEX_FILLFACTOR = {0xc8b5227f,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_INDEX_INITIALSIZE = {0xc8b52280,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_INDEX_NULLCOLLATION = {0xc8b52281,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_INDEX_NULLS = {0xc8b52282,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_INDEX_PRIMARYKEY = {0xc8b52283,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_INDEX_SORTBOOKMARKS = {0xc8b52284,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_INDEX_TYPE = {0xc8b52285,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+cpp_quote("extern const GUID DBPROP_INDEX_UNIQUE = {0xc8b52286,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};")
+
+cpp_quote("#else // !DBINITCONSTANTS")
+
+cpp_quote("extern const GUID DB_PROPERTY_CHECK_OPTION;")
+cpp_quote("extern const GUID DB_PROPERTY_CONSTRAINT_CHECK_DEFERRED;")
+cpp_quote("extern const GUID DB_PROPERTY_DESCRIPTION;")
+cpp_quote("extern const GUID DB_PROPERTY_DEFAULT_VALUE;")
+cpp_quote("extern const GUID DB_PROPERTY_DROP_CASCADE;")
+cpp_quote("extern const GUID DB_PROPERTY_ON_COMMIT_PRESERVE_ROWS;")
+cpp_quote("extern const GUID DB_PROPERTY_NULLABLE;")
+cpp_quote("extern const GUID DB_PROPERTY_UNIQUE;")
+cpp_quote("extern const GUID DB_PROPERTY_PRIMARY;")
+cpp_quote("extern const GUID DB_PROPERTY_CLUSTERED;")
+cpp_quote("extern const GUID DB_PROPERTY_NONCLUSTERED;")
+cpp_quote("extern const GUID DB_PROPERTY_BTREE;")
+cpp_quote("extern const GUID DB_PROPERTY_HASH;")
+cpp_quote("extern const GUID DB_PROPERTY_FILLFACTOR;")
+cpp_quote("extern const GUID DB_PROPERTY_INITIALSIZE;")
+cpp_quote("extern const GUID DB_PROPERTY_DISALLOWNULL;")
+cpp_quote("extern const GUID DB_PROPERTY_IGNORENULL;")
+cpp_quote("extern const GUID DB_PROPERTY_IGNOREANYNULL;")
+cpp_quote("extern const GUID DB_PROPERTY_SORTBOOKMARKS;")
+cpp_quote("extern const GUID DB_PROPERTY_AUTOMATICUPDATE;")
+cpp_quote("extern const GUID DB_PROPERTY_EXPLICITUPDATE;")
+cpp_quote("extern const GUID DB_PROPERTY_WITH_LOCAL_CHECK_OPTION;")
+cpp_quote("extern const GUID DB_PROPERTY_WITH_CASCADED_CHECK_OPTION;")
+
+cpp_quote("extern const GUID DBGUID_LIKE_SQL;")
+cpp_quote("extern const GUID DBGUID_LIKE_DOS;")
+cpp_quote("extern const GUID DBGUID_LIKE_OFS;")
+cpp_quote("extern const GUID DBGUID_LIKE_MAPI;")
+cpp_quote("extern const GUID DBGUID_SQL92;")
+cpp_quote("extern const GUID DBGUID_DBSQL;")
+cpp_quote("extern const GUID DBGUID_TSQL;")
+cpp_quote("extern const GUID DBGUID_ACCESSSQL;")
+
+cpp_quote("extern const GUID DBINIT_OPT_HWND;")
+cpp_quote("extern const GUID DBINIT_OPT_LOCATION;")
+cpp_quote("extern const GUID DBINIT_OPT_NAME;")
+cpp_quote("extern const GUID DBINIT_OPT_PASSWORD;")
+cpp_quote("extern const GUID DBINIT_OPT_TIMEOUT;")
+cpp_quote("extern const GUID DBINIT_OPT_USERID;")
+
+cpp_quote("extern const GUID DBSCHEMA_ASSERTIONS;")
+cpp_quote("extern const GUID DBSCHEMA_CATALOGS;")
+cpp_quote("extern const GUID DBSCHEMA_CHARACTER_SETS;")
+cpp_quote("extern const GUID DBSCHEMA_COLLATIONS;")
+cpp_quote("extern const GUID DBSCHEMA_COLUMNS;")
+cpp_quote("extern const GUID DBSCHEMA_CHECK_CONSTRAINTS;")
+cpp_quote("extern const GUID DBSCHEMA_CONSTRAINT_COLUMN_USAGE;")
+cpp_quote("extern const GUID DBSCHEMA_CONSTRAINT_TABLE_USAGE;")
+cpp_quote("extern const GUID DBSCHEMA_KEY_COLUMN_USAGE_CONSTRAINTS;")
+cpp_quote("extern const GUID DBSCHEMA_REFERENTIAL_CONSTRAINTS;")
+cpp_quote("extern const GUID DBSCHEMA_TABLE_CONSTRAINTS;")
+cpp_quote("extern const GUID DBSCHEMA_DOMAIN_COLUMN_USAGE;")
+cpp_quote("extern const GUID DBSCHEMA_DOMAINS;")
+cpp_quote("extern const GUID DBSCHEMA_DOMAIN_CONSTRAINTS;")
+cpp_quote("extern const GUID DBSCHEMA_INDEXES;")
+cpp_quote("extern const GUID DBSCHEMA_OBJECT_ACTIONS;")
+cpp_quote("extern const GUID DBSCHEMA_OBJECTS;")
+cpp_quote("extern const GUID DBSCHEMA_COLUMN_PRIVILEGES;")
+cpp_quote("extern const GUID DBSCHEMA_TABLE_PRIVILEGES;")
+cpp_quote("extern const GUID DBSCHEMA_USAGE_PRIVILEGES;")
+cpp_quote("extern const GUID DBSCHEMA_PROCEDURES;")
+cpp_quote("extern const GUID DBSCHEMA_SCHEMATA;")
+cpp_quote("extern const GUID DBSCHEMA_SQL_LANGUAGES;")
+cpp_quote("extern const GUID DBSCHEMA_STATISTICS;")
+cpp_quote("extern const GUID DBSCHEMA_SYNONYMS;")
+cpp_quote("extern const GUID DBSCHEMA_TABLES;")
+cpp_quote("extern const GUID DBSCHEMA_TRANSLATIONS;")
+cpp_quote("extern const GUID DBSCHEMA_TRIGGERS;")
+cpp_quote("extern const GUID DBSCHEMA_TYPES;")
+cpp_quote("extern const GUID DBSCHEMA_VIEWS;")
+cpp_quote("extern const GUID DBSCHEMA_VIEW_COLUMN_USAGE;")
+cpp_quote("extern const GUID DBSCHEMA_VIEW_TABLE_USAGE;")
+
+cpp_quote("extern const GUID DBCOL_SELFCOLUMNS;")
+cpp_quote("extern const GUID DBCOL_SPECIALCOL;")
+
+cpp_quote("extern const GUID DBPROP_ABORTRETAINING;")
+cpp_quote("extern const GUID DBPROP_BOOKMARKS;")
+cpp_quote("extern const GUID DBPROP_CACHEDEFERRED;")
+cpp_quote("extern const GUID DBPROP_CANFETCHBACKWARDS;")
+cpp_quote("extern const GUID DBPROP_CANHOLDROWS;")
+cpp_quote("extern const GUID DBPROP_CANRELEASELOCKS;")
+cpp_quote("extern const GUID DBPROP_CANSCROLLBACKWARDS;")
+cpp_quote("extern const GUID DBPROP_CHAPTERED;")
+cpp_quote("extern const GUID DBPROP_COMMITRETAINING;")
+cpp_quote("extern const GUID DBPROP_COUNTOFCOLUMNS;")
+cpp_quote("extern const GUID DBPROP_DEFERRED;")
+cpp_quote("extern const GUID DBPROP_DISCONTIGUOUS;")
+cpp_quote("extern const GUID DBPROP_LITERALBOOKMARKS;")
+cpp_quote("extern const GUID DBPROP_MAXOPENROWS;")
+cpp_quote("extern const GUID DBPROP_MAXOPENROWSPERCHAPTER;")
+cpp_quote("extern const GUID DBPROP_MAXPENDINGCHANGEROWS;")
+cpp_quote("extern const GUID DBPROP_MAXPENDINGCHANGESPERCHAPTER;")
+cpp_quote("extern const GUID DBPROP_MAYWRITECOLUMN;")
+cpp_quote("extern const GUID DBPROP_MEMORYUSAGE;")
+cpp_quote("extern const GUID DBPROP_MULTICHAPTERED;")
+cpp_quote("extern const GUID DBPROP_MULTIPLEACCESSORS;")
+cpp_quote("extern const GUID DBPROP_MULTIPLERESULTSETS;")
+cpp_quote("extern const GUID DBPROP_NOCOLUMNRESTRICT;")
+cpp_quote("extern const GUID DBPROP_NOROWRESTRICT;")
+cpp_quote("extern const GUID DBPROP_ORDEREDBOOKMARKS;")
+cpp_quote("extern const GUID DBPROP_OTHERINSERT;")
+cpp_quote("extern const GUID DBPROP_OTHERUPDATEDELETE;")
+cpp_quote("extern const GUID DBPROP_OWNINSERT;")
+cpp_quote("extern const GUID DBPROP_OWNUPDATEDELETE;")
+cpp_quote("extern const GUID DBPROP_PROPERTIESINERROR;")
+cpp_quote("extern const GUID DBPROP_QUICKRESTART;")
+cpp_quote("extern const GUID DBPROP_REENTRANTEVENTS;")
+cpp_quote("extern const GUID DBPROP_REMOVEDELETED;")
+cpp_quote("extern const GUID DBPROP_SERVERCURSOR;")
+cpp_quote("extern const GUID DBPROP_TRUEIDENTITY;")
+
+cpp_quote("extern const GUID DBPROP_ACTIVESESSIONS;")
+cpp_quote("extern const GUID DBPROP_ASYNCTXNCOMMIT;")
+cpp_quote("extern const GUID DBPROP_BYREFACCESSORS;")
+cpp_quote("extern const GUID DBPROP_CATALOGLOCATION;")
+cpp_quote("extern const GUID DBPROP_CATALOGTERM;")
+cpp_quote("extern const GUID DBPROP_CATALOGUSAGE;")
+cpp_quote("extern const GUID DBPROP_CONCATNULLBEHAVIOR;")
+cpp_quote("extern const GUID DBPROP_DATASOURCENAME;")
+cpp_quote("extern const GUID DBPROP_DBMSNAME;")
+cpp_quote("extern const GUID DBPROP_DBMSVER;")
+cpp_quote("extern const GUID DBPROP_FILEUSAGE;")
+cpp_quote("extern const GUID DBPROP_GROUPBY;")
+cpp_quote("extern const GUID DBPROP_HETEROGENEOUSTABLES;")
+cpp_quote("extern const GUID DBPROP_IDENTIFIERCASE;")
+cpp_quote("extern const GUID DBPROP_LOCKMODES;")
+cpp_quote("extern const GUID DBPROP_MAXINDEXSIZE;")
+cpp_quote("extern const GUID DBPROP_MAXROWSIZE;")
+cpp_quote("extern const GUID DBPROP_MAXROWSIZEINCLUDESBLOB;")
+cpp_quote("extern const GUID DBPROP_MAXTABLESINSELECT;")
+cpp_quote("extern const GUID DBPROP_MULTITABLEUPDATE;")
+cpp_quote("extern const GUID DBPROP_NOTIFICATIONPHASES;")
+cpp_quote("extern const GUID DBPROP_OLEOBJECTS;")
+cpp_quote("extern const GUID DBPROP_ORDERBYCOLUMNSINSELECT;")
+cpp_quote("extern const GUID DBPROP_PREPARECOMMITBEHAVIOR;")
+cpp_quote("extern const GUID DBPROP_PREPAREABORTBEHAVIOR;")
+cpp_quote("extern const GUID DBPROP_PROVIDEREXTENSIONS;")
+cpp_quote("extern const GUID DBPROP_PROVIDEROLEDBVER;")
+cpp_quote("extern const GUID DBPROP_PROVIDERNAME;")
+cpp_quote("extern const GUID DBPROP_PROVIDERVER;")
+cpp_quote("extern const GUID DBPROP_QUOTEDIDENTIFIERCASE;")
+cpp_quote("extern const GUID DBPROP_SCHEMATERM;")
+cpp_quote("extern const GUID DBPROP_SCHEMAUSAGE;")
+cpp_quote("extern const GUID DBPROP_SQLDIALECTS;")
+cpp_quote("extern const GUID DBPROP_SUBQUERIES;")
+cpp_quote("extern const GUID DBPROP_SUPPORTEDTXNISOLEVELS;")
+cpp_quote("extern const GUID DBPROP_SUPPORTEDTXNISORETAIN;")
+cpp_quote("extern const GUID DBPROP_TABLETERM;")
+
+cpp_quote("extern const GUID DBPROP_INDEX_AUTOUPDATE;")
+cpp_quote("extern const GUID DBPROP_INDEX_CLUSTERED;")
+cpp_quote("extern const GUID DBPROP_INDEX_FILLFACTOR;")
+cpp_quote("extern const GUID DBPROP_INDEX_INITIALSIZE;")
+cpp_quote("extern const GUID DBPROP_INDEX_NULLCOLLATION;")
+cpp_quote("extern const GUID DBPROP_INDEX_NULLS;")
+cpp_quote("extern const GUID DBPROP_INDEX_PRIMARYKEY;")
+cpp_quote("extern const GUID DBPROP_INDEX_SORTBOOKMARKS;")
+cpp_quote("extern const GUID DBPROP_INDEX_TYPE;")
+cpp_quote("extern const GUID DBPROP_INDEX_UNIQUE;")
+
+cpp_quote("#endif // DBINITCONSTANTS")
+
+ //
+ // DBCOMMANDTREE related definitions
+ //
+
+typedef DWORD DBCOMMANDOP;
+
+enum DBCOMMANDOPENUM {
+ DBOP_scalar_constant,
+
+ DBOP_DEFAULT,
+ DBOP_NULL,
+
+ DBOP_bookmark_name,
+
+ DBOP_catalog_name,
+ DBOP_column_name,
+
+ DBOP_schema_name,
+
+ DBOP_outall_name,
+
+ DBOP_qualifier_name,
+
+ DBOP_qualified_column_name,
+
+ DBOP_table_name,
+
+ DBOP_nested_table_name,
+
+ DBOP_nested_column_name,
+
+ DBOP_row,
+
+ DBOP_table,
+
+ DBOP_sort,
+
+ DBOP_distinct,
+ DBOP_distinct_order_preserving,
+
+ DBOP_alias,
+
+ DBOP_cross_join,
+
+ DBOP_union_join,
+
+ DBOP_inner_join,
+ DBOP_left_semi_join,
+ DBOP_right_semi_join,
+ DBOP_left_anti_semi_join,
+ DBOP_right_anti_semi_join,
+ DBOP_left_outer_join,
+ DBOP_right_outer_join,
+ DBOP_full_outer_join,
+
+ DBOP_natural_join,
+ DBOP_natural_left_outer_join,
+ DBOP_natural_right_outer_join,
+ DBOP_natural_full_outer_join,
+
+ DBOP_set_intersection,
+ DBOP_set_union,
+ DBOP_set_left_difference,
+ DBOP_set_right_difference,
+ DBOP_set_anti_difference,
+
+ DBOP_bag_intersection,
+ DBOP_bag_union,
+ DBOP_bag_left_difference,
+ DBOP_bag_right_difference,
+ DBOP_bag_anti_difference,
+
+ DBOP_division,
+
+ DBOP_relative_sampling,
+
+ DBOP_absolute_sampling,
+
+ DBOP_transitive_closure,
+
+ DBOP_recursive_union,
+
+ DBOP_aggregate,
+
+ DBOP_select,
+ DBOP_order_preserving_select,
+
+ DBOP_project,
+ DBOP_project_order_preserving,
+
+ DBOP_top,
+ DBOP_top_percent,
+ DBOP_top_plus_ties,
+ DBOP_top_percent_plus_ties,
+
+ DBOP_rank,
+ DBOP_rank_ties_equally,
+ DBOP_rank_ties_equally_and_skip,
+
+ DBOP_navigate,
+
+ DBOP_nesting,
+
+ DBOP_unnesting,
+
+ DBOP_nested_apply,
+
+ DBOP_cross_tab,
+
+ DBOP_is_NULL,
+ DBOP_is_NOT_NULL,
+
+ DBOP_equal,
+ DBOP_not_equal,
+ DBOP_less,
+ DBOP_less_equal,
+ DBOP_greater,
+ DBOP_greater_equal,
+ DBOP_equal_all,
+ DBOP_not_equal_all,
+ DBOP_less_all,
+ DBOP_less_equal_all,
+ DBOP_greater_all,
+ DBOP_greater_equal_all,
+ DBOP_equal_any,
+ DBOP_not_equal_any,
+ DBOP_less_any,
+ DBOP_less_equal_any,
+ DBOP_greater_any,
+ DBOP_greater_equal_any,
+
+ DBOP_anybits,
+ DBOP_allbits,
+ DBOP_anybits_any,
+ DBOP_allbits_any,
+ DBOP_anybits_all,
+ DBOP_allbits_all,
+
+ DBOP_between,
+ DBOP_between_unordered,
+
+ DBOP_match,
+ DBOP_match_unique,
+ DBOP_match_partial,
+ DBOP_match_partial_unique,
+ DBOP_match_full,
+ DBOP_match_full_unique,
+
+ DBOP_scalar_parameter,
+
+ DBOP_scalar_function,
+
+ DBOP_plus,
+ DBOP_minus,
+ DBOP_times,
+ DBOP_over,
+ DBOP_div,
+ DBOP_modulo,
+ DBOP_power,
+
+ DBOP_like,
+ DBOP_sounds_like,
+
+ DBOP_is_INVALID,
+ DBOP_is_TRUE,
+ DBOP_is_FALSE,
+
+ DBOP_and,
+ DBOP_or,
+ DBOP_xor,
+ DBOP_equivalent,
+
+ DBOP_not,
+
+ DBOP_overlaps,
+ DBOP_case_condition,
+ DBOP_case_value,
+ DBOP_nullif,
+ DBOP_cast,
+ DBOP_coalesce,
+ DBOP_position,
+ DBOP_extract,
+ DBOP_char_length,
+ DBOP_octet_length,
+ DBOP_bit_length,
+ DBOP_substring,
+ DBOP_upper,
+ DBOP_lower,
+ DBOP_trim,
+ DBOP_translate,
+ DBOP_convert,
+ DBOP_string_concat,
+ DBOP_current_date,
+ DBOP_current_time,
+ DBOP_current_timestamp,
+
+ DBOP_content_select,
+
+ DBOP_content,
+ DBOP_content_freetext,
+
+ DBOP_content_proximity,
+
+ DBOP_content_vector_or,
+
+ DBOP_delete,
+ DBOP_update,
+ DBOP_insert,
+
+ DBOP_min,
+ DBOP_max,
+ DBOP_count,
+ DBOP_sum,
+ DBOP_avg,
+ DBOP_any_sample,
+ DBOP_stddev,
+ DBOP_stddev_pop,
+ DBOP_var,
+ DBOP_var_pop,
+ DBOP_first,
+ DBOP_last,
+
+ DBOP_in,
+
+ DBOP_exists,
+ DBOP_unique,
+
+ DBOP_subset,
+ DBOP_proper_subset,
+ DBOP_superset,
+ DBOP_proper_superset,
+ DBOP_disjoint,
+
+ DBOP_pass_through,
+
+ DBOP_defined_by_GUID,
+
+ DBOP_text_command,
+
+ DBOP_SQL_select,
+
+ DBOP_prior_command_tree,
+
+ DBOP_add_columns,
+
+ DBOP_column_list_anchor,
+ DBOP_column_list_element,
+
+ DBOP_command_list_anchor,
+ DBOP_command_list_element,
+
+ DBOP_from_list_anchor,
+ DBOP_from_list_element,
+
+ DBOP_project_list_anchor,
+ DBOP_project_list_element,
+
+ DBOP_row_list_anchor,
+ DBOP_row_list_element,
+
+ DBOP_scalar_list_anchor,
+ DBOP_scalar_list_element,
+
+ DBOP_set_list_anchor,
+ DBOP_set_list_element,
+
+ DBOP_sort_list_anchor,
+ DBOP_sort_list_element,
+
+ DBOP_alter_character_set,
+
+ DBOP_alter_collation,
+
+ DBOP_alter_domain,
+
+ DBOP_alter_index,
+
+ DBOP_alter_procedure,
+
+ DBOP_alter_schema,
+
+ DBOP_alter_table,
+
+ DBOP_alter_trigger,
+
+ DBOP_alter_view,
+
+ DBOP_coldef_list_anchor,
+
+ DBOP_coldef_list_element,
+
+ DBOP_create_assertion,
+
+ DBOP_create_character_set,
+
+ DBOP_create_collation,
+
+ DBOP_create_domain,
+
+ DBOP_create_index,
+
+ DBOP_create_procedure,
+
+ DBOP_create_schema,
+
+ DBOP_create_table,
+
+ DBOP_create_temporary_table,
+
+ DBOP_create_translation,
+
+ DBOP_create_trigger,
+
+ DBOP_create_view,
+
+ DBOP_drop_assertion,
+
+ DBOP_drop_character_set,
+
+ DBOP_drop_collation,
+
+ DBOP_drop_domain,
+
+ DBOP_drop_index,
+
+ DBOP_drop_procedure,
+
+ DBOP_drop_schema,
+
+ DBOP_drop_table,
+
+ DBOP_drop_translation,
+
+ DBOP_drop_trigger,
+
+ DBOP_drop_view,
+
+ DBOP_foreign_key,
+
+ DBOP_grant_privileges,
+
+ DBOP_index_list_anchor,
+
+ DBOP_index_list_element,
+
+ DBOP_primary_key,
+
+ DBOP_property_list_anchor,
+
+ DBOP_property_list_element,
+
+ DBOP_referenced_table,
+
+ DBOP_rename_object,
+
+ DBOP_revoke_privileges,
+
+ DBOP_schema_authorization,
+
+// PPP -- nice duplicate here
+// DBOP_schema_name,
+
+ DBOP_unique_key,
+};
+
+typedef LONG DBDATATYPELIST;
+
+enum DBDATATYPELISTENUM {
+ DBDATATYPE_CHARACTER = 1,
+ DBDATATYPE_NUMERIC = 2,
+ DBDATATYPE_DECIMAL = 3,
+ DBDATATYPE_INTEGER = 4,
+ DBDATATYPE_SMALLINT = 5,
+ DBDATATYPE_FLOAT = 6,
+ DBDATATYPE_REAL = 7,
+ DBDATATYPE_DOUBLE = 8,
+ DBDATATYPE_DATE = 9,
+ DBDATATYPE_TIME = 10,
+ DBDATATYPE_TIMESTAMP = 11,
+ DBDATATYPE_VARCHAR = 12,
+ DBDATATYPE_BOOLEAN = 34,
+ DBDATATYPE_ENUMERATED = 35,
+ DBDATATYPE_LONGVARCHAR = -1,
+ DBDATATYPE_BINARY = -2,
+ DBDATATYPE_VARBINARY = -3,
+ DBDATATYPE_LONGVARBINARY = -4,
+ DBDATATYPE_BIGINT = -5,
+ DBDATATYPE_TINYINT = -6,
+ DBDATATYPE_BIT = -7,
+ DBDATATYPE_INTERVAL_YEAR = -80,
+ DBDATATYPE_INTERVAL_MONTH = -81,
+ DBDATATYPE_INTERVAL_YEAR_TO_MONTH = -82,
+ DBDATATYPE_INTERVAL_DAY = -83,
+ DBDATATYPE_INTERVAL_HOUR = -84,
+ DBDATATYPE_INTERVAL_MINUTE = -85,
+ DBDATATYPE_INTERVAL_SECOND = -86,
+ DBDATATYPE_INTERVAL_DAY_TO_HOUR = -87,
+ DBDATATYPE_INTERVAL_DAY_TO_MINUTE = -88,
+ DBDATATYPE_INTERVAL_DAY_TO_SECOND = -89,
+ DBDATATYPE_INTERVAL_HOUR_TO_MINUTE = -90,
+ DBDATATYPE_INTERVAL_HOUR_TO_SECOND = -91,
+ DBDATATYPE_INTERVAL_MINUTE_TO_SECOND = -92,
+ DBDATATYPE_UNICODE = -95,
+};
+
+typedef DWORD DBDATATYPEKIND;
+
+enum DBDATATYPEKINDENUM {
+ DBDATATYPEKIND_BASETYPE,
+ DBDATATYPEKIND_DOMAIN
+};
+
+typedef struct tagDBDATATYPE {
+ DBDATATYPEKIND eKind;
+ [switch_type(DBDATATYPEKIND),switch_is(eKind)] union {
+ [case(DBDATATYPEKIND_BASETYPE)] struct {
+ DBDATATYPELIST edbdt;
+ ULONG cbMaxLength;
+ ULONG cbPrecision;
+ ULONG cbScale;
+ } DBBASETYPE;
+ [case(DBDATATYPEKIND_DOMAIN)] LPWSTR pwszDomainName;
+ }
+#if(defined(NONAMELESSUNION))
+ u
+#endif
+ ;
+} DBDATATYPE;
+
+ //
+ // DBPARAMS structure and related defintions
+ //
+
+typedef struct tagDBPARAMS {
+ ULONG cParamSets;
+ HACCESSOR hAccessor;
+ void * pData;
+ ULONG cbParamSetSize;
+} DBPARAMS;
+
+typedef DWORD DBPARAMFLAGS;
+
+enum DBPARAMFLAGSENUM {
+ DBPARAMFLAGS_ISINPUT = 0x001,
+ DBPARAMFLAGS_ISOUTPUT = 0x002,
+ DBPARAMFLAGS_ISSIGNED = 0x010,
+ DBPARAMFLAGS_ISNULLABLE = 0x040,
+ DBPARAMFLAGS_ISOLEBLOB = 0x080
+};
+
+typedef struct tagDBPARAMINFO {
+ ULONG iNumber;
+ LPWSTR pwszName;
+ DBTYPE dwType;
+ ITypeInfo * pTypeInfo;
+ ULONG cbMaxLength;
+ ULONG cPrecision;
+ LONG cScale;
+ DBPARAMFLAGS dwFlags;
+} DBPARAMINFO;
+
+ //
+ // DBCOLUMN_ISSEARCHABLE flags
+ //
+
+cpp_quote("#define DB_UNSEARCHABLE 0x01")
+cpp_quote("#define DB_LIKE_ONLY 0x02")
+cpp_quote("#define DB_ALL_EXCEPT_LIKE 0x03")
+cpp_quote("#define DB_SEARCHABLE 0x04")
+
+ //
+ // DBPROPERTY struct and related definitions
+ //
+
+typedef DWORD DBPROPERTYOPTIONS;
+
+enum DBPROPERTYOPTIONSENUM {
+ DBPROPERTYOPTIONS_SETIFCHEAP = 0x0001,
+ DBPROPERTYOPTIONS_NOTSUPPORTED = 0x0200,
+ DBPROPERTYOPTIONS_DEFAULT = 0x0400,
+};
+
+typedef struct tagDBPROPERTYSUPPORT {
+ GUID guidProperty;
+ VARIANT vValue;
+ DBID colid;
+ DBPROPERTYOPTIONS dwOptions;
+} DBPROPERTYSUPPORT;
+
+typedef struct tagDBPROPERTY {
+ GUID guid;
+ VARIANT vValue;
+} DBPROPERTY;
+
+}
diff --git a/private/types2/oledb/dbscmd.idl b/private/types2/oledb/dbscmd.idl
new file mode 100644
index 000000000..7f34381b8
--- /dev/null
+++ b/private/types2/oledb/dbscmd.idl
@@ -0,0 +1,35 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: dbscmd.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a50-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IDBSchemaCommand : IUnknown {
+
+ HRESULT GetCommand(
+ [in] IUnknown * pUnkOuter,
+ [in] REFGUID rguidSchema,
+ [out] ICommand ** ppCommand
+ );
+
+ HRESULT GetSchemas(
+ [out] ULONG * pcSchemas,
+ [out] GUID ** prgSchemas
+ );
+
+}
diff --git a/private/types2/oledb/dbsrst.idl b/private/types2/oledb/dbsrst.idl
new file mode 100644
index 000000000..7e103a8b8
--- /dev/null
+++ b/private/types2/oledb/dbsrst.idl
@@ -0,0 +1,70 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: dbsrst.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 03 Aug 1995 PeterBu Created from M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a4c-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IDBSchemaRowset : IUnknown {
+
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_ASSERTIONS 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CATALOGS 1")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CHARACTER_SETS 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_COLLATIONS 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_COLUMNS 4")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CHECK_CONSTRAINTS 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CONSTRAINT_COLUMN_USAGE 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CONSTRAINT_TABLE_USAGE 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_KEY_COLUMN_USAGE_CONSTRAINTS 7")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_REFERENTIAL_CONSTRAINTS 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TABLE_CONSTRAINTS 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_DOMAIN_COLUMN_USAGE 4")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_DOMAINS 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_DOMAIN_CONSTRAINTS 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_INDEXES 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_OBJECT_ACTIONS 1")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_OBJECTS 1")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_COLUMN_PRIVILEGES 6")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TABLE_PRIVILEGES 5")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_USAGE_PRIVILEGES 6")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_PROCEDURES 4")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_SCHEMATA 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_SQL_LANGUAGES 0")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_STATISTICS 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_SYNONYMS 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TABLES 4")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TRANSLATIONS 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TRIGGERS 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TYPES 1")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_VIEWS 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_VIEW_COLUMN_USAGE 3")
+cpp_quote("#define CRESTRICTIONS_DBSCHEMA_VIEW_TABLE_USAGE 3")
+
+
+ HRESULT GetRowset(
+ [in] IUnknown * pUnkOuter,
+ [in] REFGUID rguidSchema,
+ [in] ULONG cRestrictions,
+ [in, size_is(cRestrictions)] LPWSTR rgpwszRestrictions[],
+ [in] REFIID riid,
+ [out] IUnknown ** ppRowset
+ );
+
+ HRESULT GetSchemas(
+ [out] ULONG * pcSchemas,
+ [out] GUID ** prgSchemas
+ );
+
+}
diff --git a/private/types2/oledb/errlup.idl b/private/types2/oledb/errlup.idl
new file mode 100644
index 000000000..636259fc6
--- /dev/null
+++ b/private/types2/oledb/errlup.idl
@@ -0,0 +1,39 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: errlup.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 29 Oct 1995 PeterBu Created from M6 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a5b-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IErrorLookup : IUnknown {
+
+ HRESULT GetErrorDescription(
+ [in] HRESULT hrError,
+ [in] DWORD dwMinor,
+ [in] DISPPARAMS * pdispparams,
+ [in] LCID lcid,
+ [out] LPWSTR * ppwszSource,
+ [out] LPWSTR * ppwszDescription
+ );
+
+ HRESULT GetHelpInfo(
+ [in] HRESULT hrError,
+ [in] DWORD dwMinor,
+ [in] LCID lcid,
+ [out] LPWSTR * ppwszHelpFile,
+ [out] DWORD * pdwHelpContext
+ );
+
+}
diff --git a/private/types2/oledb/errrec.idl b/private/types2/oledb/errrec.idl
new file mode 100644
index 000000000..3ebf223b3
--- /dev/null
+++ b/private/types2/oledb/errrec.idl
@@ -0,0 +1,62 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: errrec.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 29 Oct 1995 PeterBu Created from M6 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a5c-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IErrorRecords : IUnknown {
+
+typedef struct tagERRORINFO {
+ HRESULT hrError;
+ DWORD dwMinor;
+ CLSID clsid;
+ IID iid;
+ DISPID dispid;
+} ERRORINFO;
+
+ HRESULT AddErrorRecord(
+ [in] ERRORINFO * pErrorInfo,
+ [in] DISPPARAMS * pdispparams,
+ [in] IUnknown * punkCustomError
+ );
+
+ HRESULT GetBasicErrorInfo(
+ [in] ULONG ulRecordNum,
+ [out] ERRORINFO * pErrorInfo
+ );
+
+ HRESULT GetCustomErrorObject(
+ [in] ULONG ulRecordNum,
+ [in] REFIID riid,
+ [out, iid_is(riid)] IUnknown ** ppObject
+ );
+
+ HRESULT GetErrorInfo(
+ [in] ULONG ulRecordNum,
+ [in] LCID lcid,
+ [out] IErrorInfo ** ppErrorInfo
+ );
+
+ HRESULT GetErrorParameters(
+ [in] ULONG ulRecordNum,
+ [out] DISPPARAMS * pdispparams
+ );
+
+ HRESULT GetRecordCount(
+ [out] ULONG * pcRecords
+ );
+
+}
diff --git a/private/types2/oledb/inddef.idl b/private/types2/oledb/inddef.idl
new file mode 100644
index 000000000..9a78509e4
--- /dev/null
+++ b/private/types2/oledb/inddef.idl
@@ -0,0 +1,48 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: inddef.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 29 Oct 1995 PeterBu Created from M6 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a57-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IIndexDefinition : IUnknown {
+
+typedef DWORD DBINDEX_COL_ORDER;
+
+enum DBINDEX_COL_ORDERENUM {
+ DBINDEX_COL_ORDER_ASC,
+ DBINDEX_COL_ORDER_DESC,
+};
+
+typedef struct tagDBINDEXCOLUMNDESC {
+ DBID * pColumnID;
+ DBINDEX_COL_ORDER eIndexColOrder;
+} DBINDEXCOLUMNDESC;
+
+ HRESULT CreateIndex(
+ [in] DBID * pTableID,
+ [in] DBID * pIndexID,
+ [in] ULONG cIndexColumnDescs,
+ [in, size_is(cIndexColumnDescs)] DBINDEXCOLUMNDESC rgIndexColumnDescs[],
+ [in] ULONG cProperties,
+ [in, size_is(cProperties)] DBPROPERTY rgProperties[],
+ [out] DBID ** ppIndexID
+ );
+
+ HRESULT DropIndex(
+ [in] DBID * pIndexID
+ );
+
+}
diff --git a/private/types2/oledb/makefile b/private/types2/oledb/makefile
new file mode 100644
index 000000000..6ee4f43fa
--- /dev/null
+++ b/private/types2/oledb/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/oledb/oledb.idl b/private/types2/oledb/oledb.idl
new file mode 100644
index 000000000..11ab5fa62
--- /dev/null
+++ b/private/types2/oledb/oledb.idl
@@ -0,0 +1,91 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1994 - 1995.
+//
+// File: oledb.idl
+//
+// Contents: Top level "container" for all OLE-DB related interfaces.
+//
+// History: 26 Jul 94 Alanw Created
+// 05 Jan 95 PeterBu Updated to phase III spec
+// 12 Jun 95 PeterBu Updated to M4 spec
+// 03 Aug 95 PeterBu Updated to M5 spec
+//
+//----------------------------------------------------------------------------
+
+#ifdef IMPORT_IDL_DEPENDENTS
+// Oleaut.h is the appropriate file to include for VARIANT and base types
+// declarations. Unfortunately, not everyone yet has access to it, so we
+// will indirect the reference to it to so we can control the emitted include.
+//import "oleaut.idl"; // BUGBUG - reenable someday
+import "oledbtyp.idl";
+#endif // IMPORT_IDL_DEPENDENTS
+
+#include "dbs.idl"
+
+#include "access.idl" // IAccessor : IUnknown
+
+#include "rstbas.idl" // IRowset : IUnknown
+#include "rstinf.idl" // IRowsetInfo : IUnknown
+#include "rstloc.idl" // IRowsetLocate : IRowset
+#include "rstres.idl" // IRowsetResynch : IRowset
+#include "rstscr.idl" // IRowsetScroll : IRowsetLocate
+#include "rstxsc.idl" // IRowsetExactScroll : IRowsetScroll
+#include "rstchg.idl" // IRowsetChange : IUnknown
+#include "rstupd.idl" // IRowsetUpdate : IRowsetChange
+#include "rstnxr.idl" // IRowsetNextRowset : IUnknown
+#include "rstdel.idl" // IRowsetDelete : IUnknown
+#include "rstdbk.idl" // IRowsetDeleteBookmarks : IRowsetDelete
+#include "rstidn.idl" // IRowsetIdentity : IUnknown
+#include "rstlkr.idl" // IRowsetLockRows : IUnknown
+#include "rstnwr.idl" // IRowsetNewRow : IUnknown
+#include "rstnra.idl" // IRowsetNewRowAfter : IRowsetNewRow
+#include "rstwpr.idl" // IRowsetWithParamters : IUnknown
+#include "rstfnd.idl" // IRowsetFind : IUnknown
+#include "rstasn.idl" // IRowsetAsynch : IUnknown
+#include "rstkys.idl" // IRowsetKeys : IUnknown
+#include "rstnot.idl" // IRowsetNotify : IUnknown
+#include "rstind.idl" // IRowsetIndex : IUnknown
+#include "rstwta.idl" // IRowsetWatchAll : IUnknown
+#include "rstwtn.idl" // IRowsetWatchNotify : IUnknown
+#include "rstwtr.idl" // IRowsetWatchRegion : IUnknown
+#include "rstcpr.idl" // IRowsetCopyRows : IUnknown
+
+#include "readdt.idl" // IReadData : IUnknown
+
+// BUGBUG: temporary, until transactions are in place
+#define ITransaction IUnknown
+
+#include "cmdbas.idl" // ICommand : IUnknown
+#include "cmdcst.idl" // ICommandCost : IUnknown
+#include "cmdpre.idl" // ICommandPrepare : IUnknown
+#include "cmdprp.idl" // ICommandProperties : IUnknown
+#include "cmdtxt.idl" // ICommandText : IUnknown
+#include "cmdtre.idl" // ICommandTree : ICommand
+#include "cmdval.idl" // ICommandValidate : IUnknown
+#include "cmdwpr.idl" // ICommandWithParameters : IUnknown
+
+#include "qrybas.idl" // IQuery : ICommandTree
+
+#include "colrst.idl" // IColumnsRowset : IUnknown
+#include "colinf.idl" // IColumnsInfo : IUnknown
+
+#include "dbccmd.idl" // IDBCreateCommand : IUnknown
+#include "dbesrc.idl" // IDBEnumerateSources : IUnknown
+#include "dbinfo.idl" // IDBInfo : IUnknown
+#include "dbinit.idl" // IDBInitialize : IUnknown
+
+#include "inddef.idl" // IIndexDefinition : IUnknown
+#include "tabdef.idl" // ITableDefinition : IUnknown
+
+#include "opnrst.idl" // IOpenRowset : IUnknown
+
+#include "dbscmd.idl" // IDBSchemaCommand : IUnknown
+#include "dbsrst.idl" // IDBSchemaRowset : IUnknown
+
+#include "prvmon.idl" // IProvideMoniker : IUnknown
+
+#include "errrec.idl" // IErrorRecords : IUnknown
+#include "errlup.idl" // IErrorLookup : IUnknown
+
diff --git a/private/types2/oledb/oledbtyp.idl b/private/types2/oledb/oledbtyp.idl
new file mode 100644
index 000000000..48daa127e
--- /dev/null
+++ b/private/types2/oledb/oledbtyp.idl
@@ -0,0 +1,38 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1994 - 1994.
+//
+// File: oledbtyp.idl
+//
+// Contents: Necessary type definitions for OLD-DB interfaces
+//
+//
+// Notes: This file works around the fact that not everyone yet
+// has oaidl.h.
+//
+// This file is 'import'ed in oledb.idl, which turns into a
+// #include of oledbtype.h. By the import in the MIDL pass,
+// and the include here, we get all the types we need defined
+// to satisfy MIDL, and oledbtyp.h (which is a checked in
+// file in \nt\public\sdk\inc[\cairo] ) can have whatever
+// we need to conditionally include the right type definitions
+// for whatever platform we're running on.
+//
+// History: 25 Aug 94 Alanw Created
+//
+//+---------------------------------------------------------------------------
+
+#ifdef IMPORT_IDL_DEPENDENTS
+
+#include "oaidl.idl"
+
+#endif IMPORT_IDL_DEPENDENTS
+
+// oaidl.idl seems to be missing definitions for some things:
+
+typedef struct tagPARAMDATA {
+ OLECHAR * szName;
+ VARTYPE vt;
+} PARAMDATA, * LPPARAMDATA;
+
diff --git a/private/types2/oledb/opnrst.idl b/private/types2/oledb/opnrst.idl
new file mode 100644
index 000000000..52832e0d7
--- /dev/null
+++ b/private/types2/oledb/opnrst.idl
@@ -0,0 +1,32 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: opnrst.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 29 Oct 1995 PeterBu Created from M6 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a58-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IOpenRowset : IUnknown {
+
+ HRESULT OpenRowset(
+ [in] IUnknown * pUnkOuter,
+ [in] DBID * pTableID,
+ [in] ULONG cProperties,
+ [in, out, size_is(cProperties)] const DBPROPERTYSUPPORT * prgProperties[],
+ [in] REFIID riid,
+ [in, size_is(cProperties)] DBPROPERTYERROR rgPropertyErrors[],
+ [out, iid_is(riid)] IUnknown ** ppRowset
+ );
+
+}
diff --git a/private/types2/oledb/prvmon.idl b/private/types2/oledb/prvmon.idl
new file mode 100644
index 000000000..e8e05f813
--- /dev/null
+++ b/private/types2/oledb/prvmon.idl
@@ -0,0 +1,28 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: prvmon.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a4d-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IProvideMoniker : IUnknown {
+
+ HRESULT GetMoniker(
+ [out] IMoniker ** ppvIMoniker
+ );
+
+}
diff --git a/private/types2/oledb/qrybas.idl b/private/types2/oledb/qrybas.idl
new file mode 100644
index 000000000..8346bc6de
--- /dev/null
+++ b/private/types2/oledb/qrybas.idl
@@ -0,0 +1,33 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: qrybas.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a51-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IQuery : ICommandTree {
+
+ HRESULT AddPostProcessing(
+ [in] DBCOMMANDTREE ** ppRoot,
+ [in] BOOL fCopy
+ );
+
+ HRESULT GetCardinalityEstimate(
+ [out] ULONG * pulCardinality
+ );
+
+}
diff --git a/private/types2/oledb/readdt.idl b/private/types2/oledb/readdt.idl
new file mode 100644
index 000000000..088eecadd
--- /dev/null
+++ b/private/types2/oledb/readdt.idl
@@ -0,0 +1,41 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: readdt.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a47-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IReadData : IUnknown {
+
+ HRESULT ReadData(
+ [in] HCHAPTER hChapter,
+ [in] ULONG cbBookmark,
+ [in, size_is(cbBookmark)] const BYTE * pBookmark,
+ [in] LONG lRowsOffset,
+ [in] HACCESSOR hAccessor,
+ [in] ULONG cRows,
+ [out] ULONG * pcRowsObtained,
+ [in, out] BYTE ** ppFixedData,
+ [in, out] ULONG * pcbVariableTotal,
+ [in, out] BYTE ** ppVariableData
+ );
+
+ HRESULT ReleaseChapter(
+ [in] HCHAPTER hChapter
+ );
+
+}
diff --git a/private/types2/oledb/rstasn.idl b/private/types2/oledb/rstasn.idl
new file mode 100644
index 000000000..e5597f718
--- /dev/null
+++ b/private/types2/oledb/rstasn.idl
@@ -0,0 +1,34 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: rstast.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 12 Mar 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a0f-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetAsynch : IUnknown {
+
+ HRESULT RatioFinished(
+ [out] ULONG * pulDenominator,
+ [out] ULONG * pulNumerator,
+ [out] ULONG * pcRows,
+ [out] BOOL * pfNewRows
+ );
+
+ HRESULT Stop(
+ );
+
+}
diff --git a/private/types2/oledb/rstbas.idl b/private/types2/oledb/rstbas.idl
new file mode 100644
index 000000000..7a60be1ba
--- /dev/null
+++ b/private/types2/oledb/rstbas.idl
@@ -0,0 +1,61 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: rstbas.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 28 Mar 1994 AlanW Created from spec
+// 21 Apr 1994 PeterBu Updated to latest spec
+// 20 Dec 1994 PeterBu Updated to phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a52-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowset : IUnknown {
+
+ HRESULT AddRefRows(
+ [in] ULONG cRows,
+ [in, size_is(cRows)] const HROW rghRows[],
+ [out] ULONG * pcRefCounted,
+ [in, out, size_is(cRows)] ULONG rgRefCounts[]
+ );
+
+ HRESULT GetData(
+ [in] HROW hRow,
+ [in] HACCESSOR hAccessor,
+ [out] void * pData
+ );
+
+ HRESULT GetNextRows(
+ [in] HCHAPTER hChapter,
+ [in] LONG cRowsToSkip,
+ [in] LONG cRows,
+ [out] ULONG * pcRowsObtained,
+ [in, out, size_is(cRows)] HROW ** prghRows
+ );
+
+ HRESULT ReleaseChapter(
+ [in] HCHAPTER hChapter
+ );
+
+ HRESULT ReleaseRows(
+ [in] ULONG cRows,
+ [in, size_is(cRows)] const HROW rghRows[],
+ [out] ULONG * pcReleased,
+ [in, out] ULONG rgRefCounts[]
+ );
+
+ HRESULT RestartPosition(
+ [in] HCHAPTER hChapter
+ );
+
+}
diff --git a/private/types2/oledb/rstchg.idl b/private/types2/oledb/rstchg.idl
new file mode 100644
index 000000000..e437d68bd
--- /dev/null
+++ b/private/types2/oledb/rstchg.idl
@@ -0,0 +1,30 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstchg.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a05-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetChange : IUnknown {
+
+ HRESULT SetData(
+ [in] HROW hRow,
+ [in] HACCESSOR hAccessor,
+ [in] const void * pData
+ );
+
+}
diff --git a/private/types2/oledb/rstcpr.idl b/private/types2/oledb/rstcpr.idl
new file mode 100644
index 000000000..23f055034
--- /dev/null
+++ b/private/types2/oledb/rstcpr.idl
@@ -0,0 +1,53 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: rstcpr.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 29 Oct 1995 PeterBu Created from M6 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a59-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetCopyRows : IUnknown {
+
+typedef ULONG HSOURCE;
+
+
+ HRESULT CloseSource(
+ [in] HSOURCE hSourceID
+ );
+
+ HRESULT CopyByHROWS(
+ [in] HSOURCE hSourceID,
+ [in] HCHAPTER hChapter,
+ [in] LONG cRows,
+ [in, size_is(cRows)] HROW rghRows[],
+ [in] ULONG bFlags
+ );
+
+ HRESULT CopyRows(
+ [in] HSOURCE hSourceID,
+ [in] HCHAPTER hChapter,
+ [in] LONG cRows,
+ [in] ULONG bFlags,
+ [out] ULONG * pcRowsCopied
+ );
+
+ HRESULT DefineSource(
+ [in] const IRowset * pRowsetSource,
+ [in] const ULONG cColIds,
+ [in, size_is(cColIds)] const LONG rgSourceColumns[],
+ [in, size_is(cColIds)] const LONG rgTargetColumns[],
+ [out] HSOURCE * phSourceID
+ );
+
+}
diff --git a/private/types2/oledb/rstdbk.idl b/private/types2/oledb/rstdbk.idl
new file mode 100644
index 000000000..cdf7e1e60
--- /dev/null
+++ b/private/types2/oledb/rstdbk.idl
@@ -0,0 +1,33 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstdbk.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a3e-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetDeleteBookmarks : IRowsetDelete {
+
+ HRESULT DeleteRowsByBookmark(
+ [in] HCHAPTER hChapter,
+ [in] ULONG cRows,
+ [in, size_is(cRows)] ULONG rgcbBookmarks[],
+ [in, size_is(cRows)] const BYTE * rgpBookmarks[],
+ [out] ULONG * pcErrors,
+ [out] DBINDEXEDERROR ** prgErrors
+ );
+
+}
diff --git a/private/types2/oledb/rstdel.idl b/private/types2/oledb/rstdel.idl
new file mode 100644
index 000000000..b0a0e5039
--- /dev/null
+++ b/private/types2/oledb/rstdel.idl
@@ -0,0 +1,30 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstdel.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a08-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetDelete : IUnknown {
+
+ HRESULT DeleteRows(
+ [in] ULONG cRows,
+ [in, size_is(cRows)] const HROW rghRows[],
+ [out] ULONG * pcErrors,
+ [out] DBERRORINFO ** prgErrors
+ );
+
+}
diff --git a/private/types2/oledb/rstfnd.idl b/private/types2/oledb/rstfnd.idl
new file mode 100644
index 000000000..5a94098b9
--- /dev/null
+++ b/private/types2/oledb/rstfnd.idl
@@ -0,0 +1,52 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstfnd.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a0d-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetFind : IUnknown {
+
+typedef DWORD DBCOMPAREOPS;
+
+enum DBCOMPAREOPSENUM {
+ DBCOMPAREOPS_LT,
+ DBCOMPAREOPS_LE,
+ DBCOMPAREOPS_EQ,
+ DBCOMPAREOPS_GE,
+ DBCOMPAREOPS_GT,
+ DBCOMPAREOPS_PARTIALEQ,
+ DBCOMPAREOPS_NE,
+ DBCOMPAREOPS_INCLUDENULLS = 0x1000
+};
+
+ HRESULT GetRowsByValues(
+ [in] HCHAPTER hChapter,
+ [in] ULONG cbBookmark,
+ [in, size_is(cbBookmark)] const BYTE * pBookmark,
+ [in] LONG lRowsOffset,
+ [in] ULONG cValues,
+ [in, size_is(cValues)] ULONG rgColumns[],
+ [in, size_is(cValues)] DBTYPE rgValueTypes[],
+ [in, size_is(cValues)] const BYTE * rgValues[],
+ [in, size_is(cValues)] DBCOMPAREOPS rgCompareOps[],
+ [in] LONG cRows,
+ [out] ULONG * pcRowsObtained,
+ [in, out, size_is(cRows)] HROW ** prghRows
+ );
+
+}
diff --git a/private/types2/oledb/rstidn.idl b/private/types2/oledb/rstidn.idl
new file mode 100644
index 000000000..0041e69cc
--- /dev/null
+++ b/private/types2/oledb/rstidn.idl
@@ -0,0 +1,28 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstidn.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a09-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetIdentity : IUnknown {
+
+ HRESULT IsSameRow(
+ [in] HROW hThisRow,
+ [in] HROW hThatRow
+ );
+
+}
diff --git a/private/types2/oledb/rstind.idl b/private/types2/oledb/rstind.idl
new file mode 100644
index 000000000..cbe9f7b8f
--- /dev/null
+++ b/private/types2/oledb/rstind.idl
@@ -0,0 +1,66 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstind.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a3f-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetIndex : IUnknown {
+
+typedef DWORD DBSEEK;
+
+enum DBSEEKENUM {
+ DBSEEK_FIRSTEQ = 0x01,
+ DBSEEK_LASTEQ = 0x02,
+ DBSEEK_GE = 0x04,
+ DBSEEK_GT = 0x08,
+ DBSEEK_LE = 0x10,
+ DBSEEK_LT = 0x20
+};
+
+typedef DWORD DBRANGE;
+
+enum DBRANGEENUM {
+ DBRANGE_INCLUSIVESTART = 0x01,
+ DBRANGE_INCLUSIVEEND = 0x02,
+ DBRANGE_EXCLUSIVESTART = 0x04,
+ DBRANGE_EXCLUSIVEEND = 0x08,
+ DBRANGE_EXCLUDENULLS = 0x10,
+ DBRANGE_PREFIX = 0x20,
+ DBRANGE_MATCH = 0x40
+};
+
+ HRESULT GetIndexInfo(
+ [out] ULONG * pcKeyColumns,
+ [out] ULONG * pcIndexProperties,
+ [out] DBPROPERTY ** prgIndexProperties
+ );
+
+ HRESULT Seek(
+ [in] ULONG cvar,
+ [in, size_is(cvar)] VARIANT rgvar[],
+ [in] DWORD dwSeekOptions
+ );
+
+ HRESULT SetRange(
+ [in] ULONG cvarStart,
+ [in, size_is(cvarStart)] VARIANT rgvarStart[],
+ [in] ULONG cvarEnd,
+ [in, size_is(cvarEnd)] VARIANT rgvarEnd[],
+ [in] DWORD dwRangeOptions
+ );
+
+}
diff --git a/private/types2/oledb/rstinf.idl b/private/types2/oledb/rstinf.idl
new file mode 100644
index 000000000..b3469f644
--- /dev/null
+++ b/private/types2/oledb/rstinf.idl
@@ -0,0 +1,42 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: rstinf.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 28 Mar 1994 AlanW Created from spec
+// 21 Apr 1994 PeterBu Updated to latest spec
+// 20 Dec 1994 PeterBu Updated to phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a55-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetInfo : IUnknown {
+
+ HRESULT GetProperties(
+ [in] const ULONG cProperties,
+ [in, size_is(cProperties)] const GUID rgProperties[],
+ [out] ULONG * pcProperties,
+ [out] DBPROPERTYSUPPORT ** prgProperties
+ );
+
+ HRESULT GetReferencedRowset(
+ [in] ULONG iColumn,
+ [out] IUnknown ** ppReferencedRowset
+ );
+
+ HRESULT GetSpecification(
+ [in] REFIID riid,
+ [out] IUnknown ** ppSpecification
+ );
+
+}
diff --git a/private/types2/oledb/rstkys.idl b/private/types2/oledb/rstkys.idl
new file mode 100644
index 000000000..e9778d046
--- /dev/null
+++ b/private/types2/oledb/rstkys.idl
@@ -0,0 +1,28 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: rstkys.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 12 Mar 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a12-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetKeys : IUnknown {
+
+ HRESULT ListKeys(
+ [out] ULONG * pcColumns,
+ [out] ULONG ** prgColumns
+ );
+
+}
diff --git a/private/types2/oledb/rstlkr.idl b/private/types2/oledb/rstlkr.idl
new file mode 100644
index 000000000..71f209525
--- /dev/null
+++ b/private/types2/oledb/rstlkr.idl
@@ -0,0 +1,43 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstlkr.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a0a-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetLockRows : IUnknown {
+
+typedef DWORD DBLOCKMODE;
+
+enum DBLOCKMODEENUM {
+ DBLOCKMODE_NONE,
+ DBLOCKMODE_READ,
+ DBLOCKMODE_INTENT,
+ DBLOCKMODE_WRITE
+};
+
+ HRESULT LockRowsByBookmark(
+ [in] DBLOCKMODE eLockMode,
+ [in] HCHAPTER hChapter,
+ [in] ULONG cRows,
+ [in, size_is(cRows)] ULONG rgcbBookmarks[],
+ [in, size_is(cRows)] const BYTE * rgBookmarks[],
+ [out] ULONG * pcErrors,
+ [in, out, size_is(cRows)] DBINDEXEDERROR ** prgErrors
+ );
+
+}
diff --git a/private/types2/oledb/rstloc.idl b/private/types2/oledb/rstloc.idl
new file mode 100644
index 000000000..89e318e3f
--- /dev/null
+++ b/private/types2/oledb/rstloc.idl
@@ -0,0 +1,89 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstloc.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a49-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetLocate : IRowset {
+
+ //
+ // DBCOMPARE -- specifies the results of a bookmark comparison
+ //
+
+typedef DWORD DBCOMPARE;
+
+enum DBCOMPAREENUM {
+ DBCOMPARE_LT,
+ DBCOMPARE_EQ,
+ DBCOMPARE_GT,
+ DBCOMPARE_NE,
+ DBCOMPARE_NOTCOMPARABLE
+};
+
+ //
+ // IndexedError -- identifies problems with bookmarks
+ //
+
+typedef struct tagDBINDEXEDERROR {
+ ULONG iBookmark;
+ HRESULT hResult;
+} DBINDEXEDERROR;
+
+ HRESULT Compare(
+ [in] HCHAPTER hChapter,
+ [in] ULONG cbBookmark1,
+ [in, size_is(cbBookmark1)] const BYTE * pBookmark1,
+ [in] ULONG cbBookmark2,
+ [in, size_is(cbBookmark2)] const BYTE * pBookmark2,
+ [out] DBCOMPARE * pdwComparison
+ );
+
+ HRESULT GetRowsAt(
+ [in] HWATCHREGION hRegion,
+ [in] HCHAPTER hChapter,
+ [in] ULONG cbBookmark,
+ [in, size_is(cbBookmark)] const BYTE * pBookmark,
+ [in] LONG lRowsOffset,
+ [in] LONG cRows,
+ [out] ULONG * pcRowsObtained,
+ [in, out, size_is(cRows)] HROW ** prghRows
+ );
+
+ HRESULT GetRowsByBookmark(
+ [in] HCHAPTER hChapter,
+ [in] ULONG cRows,
+ [in, size_is(cRows)] ULONG rgcbBookmarks[],
+ [in, size_is(cRows)] const BYTE * rgpBookmarks[],
+ [out] ULONG * pcRowsObtained,
+ [in, out, size_is(cRows)] HROW ** prghRows,
+ [in] BOOL fReturnErrors,
+ [out] ULONG * pcErrors,
+ [in, out, size_is(cRows)] DBINDEXEDERROR ** prgErrors
+ );
+
+ HRESULT Hash(
+ [in] HCHAPTER hChapter,
+ [in] ULONG cBookmarks,
+ [in, size_is(cBookmarks)] ULONG rgcbBookmarks[],
+ [in, size_is(cBookmarks)] const BYTE * rgpBookmarks[],
+ [in, out, size_is(cBookmarks)] DWORD rgHashedValues[],
+ [out] ULONG * pcErrors,
+ [in, out, size_is(cBookmarks)] DBINDEXEDERROR ** prgErrors
+ );
+
+}
diff --git a/private/types2/oledb/rstnot.idl b/private/types2/oledb/rstnot.idl
new file mode 100644
index 000000000..914399ee3
--- /dev/null
+++ b/private/types2/oledb/rstnot.idl
@@ -0,0 +1,86 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: rstnot.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 12 Mar 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a13-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetNotify : IUnknown {
+
+typedef DWORD DBEVENTPHASE;
+
+enum DBEVENTPHASEENUM {
+ DBEVENTPHASE_OKTODO,
+ DBEVENTPHASE_ABOUTTODO,
+ DBEVENTPHASE_SYNCHAFTER,
+ DBEVENTPHASE_FAILEDTODO,
+ DBEVENTPHASE_DIDEVENT
+};
+
+typedef DWORD DBREASON;
+
+enum DBREASONENUM {
+ DBREASON_ROWSET_RELEASE,
+ DBREASON_ROWSET_ASYNCHCOMPLETE,
+ DBREASON_CHAPTER_ACTIVATE,
+ DBREASON_CHAPTER_RELEASE,
+ DBREASON_COLUMN_SET,
+ DBREASON_COLUMN_RECALCULATED,
+ DBREASON_ROW_ACTIVATE,
+ DBREASON_ROW_RELEASE,
+ DBREASON_ROW_DELETE,
+ DBREASON_ROW_FIRSTCHANGE,
+ DBREASON_ROW_INSERT,
+ DBREASON_ROW_LOCK,
+ DBREASON_ROW_RESYNCH,
+ DBREASON_ROW_UNDOCHANGE,
+ DBREASON_ROW_UNDOINSERT,
+ DBREASON_ROW_UNDODELETE,
+};
+
+ HRESULT OnChapterChange(
+ [in] IUnknown * pRowset,
+ [in] HCHAPTER hChapter,
+ [in] DBREASON eReason
+ );
+
+ HRESULT OnFieldChange(
+ [in] IUnknown * pRowset,
+ [in] HROW hRow,
+ [in] HCHAPTER hChapter,
+ [in] ULONG iColumn,
+ [in] DBREASON eReason,
+ [in] DBEVENTPHASE ePhase,
+ [in] BOOL fCantDeny
+ );
+
+ HRESULT OnRowChange(
+ [in] IUnknown * pRowset,
+ [in] ULONG cRows,
+ [in, size_is(cRows)] const HROW rghRows[],
+ [in] HCHAPTER hChapter,
+ [in] DBREASON eReason,
+ [in] DBEVENTPHASE ePhase,
+ [in] BOOL fCantDeny
+ );
+
+ HRESULT OnRowsetChange(
+ [in] IUnknown * pRowset,
+ [in] DBREASON eReason
+ );
+
+}
diff --git a/private/types2/oledb/rstnra.idl b/private/types2/oledb/rstnra.idl
new file mode 100644
index 000000000..d55cc220b
--- /dev/null
+++ b/private/types2/oledb/rstnra.idl
@@ -0,0 +1,33 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstnra.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a40-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetNewRowAfter : IRowsetNewRow {
+
+ HRESULT SetNewDataAfter(
+ [in] HCHAPTER hChapter,
+ [in] ULONG cbbmPrevious,
+ [in, size_is(cbbmPrevious)] const BYTE * pbmPrevious,
+ [in] HACCESSOR hAccessor,
+ [in] const void * pData,
+ [out] HROW * phRow
+ );
+
+}
diff --git a/private/types2/oledb/rstnwr.idl b/private/types2/oledb/rstnwr.idl
new file mode 100644
index 000000000..15536af38
--- /dev/null
+++ b/private/types2/oledb/rstnwr.idl
@@ -0,0 +1,31 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstnwr.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a0b-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetNewRow : IUnknown {
+
+ HRESULT SetNewData(
+ [in] HCHAPTER hChapter,
+ [in] HACCESSOR hAccessor,
+ [in] const void * pData,
+ [out] HROW * phRow
+ );
+
+}
diff --git a/private/types2/oledb/rstnxr.idl b/private/types2/oledb/rstnxr.idl
new file mode 100644
index 000000000..0b8448929
--- /dev/null
+++ b/private/types2/oledb/rstnxr.idl
@@ -0,0 +1,28 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstnxr.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a07-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetNextRowset : IUnknown {
+
+ HRESULT GetNextRowset(
+ [in] IUnknown * pUnkOuter,
+ [out] IUnknown ** ppNextRowset
+ );
+
+}
diff --git a/private/types2/oledb/rstres.idl b/private/types2/oledb/rstres.idl
new file mode 100644
index 000000000..31b0f5f84
--- /dev/null
+++ b/private/types2/oledb/rstres.idl
@@ -0,0 +1,37 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstres.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a02-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetResynch : IRowset {
+
+ HRESULT GetVisibleData(
+ [in] HROW hRow,
+ [in] HACCESSOR hAccessor,
+ [out] void * pData
+ );
+
+ HRESULT ResynchRows(
+ [in] ULONG cRows,
+ [in, size_is(cRows)] HROW rghRows[],
+ [out] ULONG * pcErrors,
+ [out] DBERRORINFO ** prgErrors
+ );
+
+}
diff --git a/private/types2/oledb/rstscr.idl b/private/types2/oledb/rstscr.idl
new file mode 100644
index 000000000..d40e1b9a9
--- /dev/null
+++ b/private/types2/oledb/rstscr.idl
@@ -0,0 +1,42 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstscr.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a4a-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetScroll : IRowsetLocate {
+
+ HRESULT GetApproximatePosition(
+ [in] HCHAPTER hChapter,
+ [in] ULONG cbBookmark,
+ [in, size_is(cbBookmark)] const BYTE * pBookmark,
+ [out] ULONG * pulPosition,
+ [out] ULONG * pcRows
+ );
+
+ HRESULT GetRowsAtRatio(
+ [in] HWATCHREGION hRegion,
+ [in] HCHAPTER hChapter,
+ [in] ULONG ulNumerator,
+ [in] ULONG ulDenominator,
+ [in] LONG cRows,
+ [out] ULONG * pcRowsObtained,
+ [in, out, size_is(cRows)] HROW ** prghRows
+ );
+
+}
diff --git a/private/types2/oledb/rstupd.idl b/private/types2/oledb/rstupd.idl
new file mode 100644
index 000000000..a4bab9ba5
--- /dev/null
+++ b/private/types2/oledb/rstupd.idl
@@ -0,0 +1,59 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstupd.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a53-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetUpdate : IRowsetChange {
+
+typedef DWORD DBROWSTATUS;
+
+enum DBROWSTATUSENUM {
+ DBROWSTATUS_NEW,
+ DBROWSTATUS_CHANGED,
+ DBROWSTATUS_SOFTDELETED
+};
+
+ HRESULT GetOriginalData(
+ [in] HROW hRow,
+ [in] HACCESSOR hAccessor,
+ [out] void * pData
+ );
+
+ HRESULT GetPendingRows(
+ [in] HCHAPTER hChapter,
+ [out] ULONG * pcPendingRows,
+ [out] HROW ** prgPendingRows,
+ [out] DBROWSTATUS ** prgPendingStatus
+ );
+
+ HRESULT UndoRows(
+ [in] ULONG cRows,
+ [in, size_is(cRows)] HROW rghRows[],
+ [out] ULONG * pcRowsUndone
+ );
+
+ HRESULT Update(
+ [in] HCHAPTER hChapter,
+ [out] ULONG * pcErrors,
+ [out] DBERRORINFO ** prgErrors,
+ [out] ULONG * pcUpdatedRows,
+ [out] HROW ** prgUpdatedRows
+ );
+
+}
diff --git a/private/types2/oledb/rstwpr.idl b/private/types2/oledb/rstwpr.idl
new file mode 100644
index 000000000..def9ea00e
--- /dev/null
+++ b/private/types2/oledb/rstwpr.idl
@@ -0,0 +1,37 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstwpr.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a0c-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetWithParameters : IUnknown {
+
+ HRESULT DescribeParameters(
+ [out] ULONG * pcParams,
+ [out] DBPARAMINFO ** prgParamInfo,
+ [out] WCHAR ** ppNamesBuffer
+ );
+
+ HRESULT Requery(
+ [in] DBPARAMS * pParams,
+ [out] ULONG * pulErrorParam,
+ [out] HCHAPTER * hChapter,
+ [out] VARIANT ** ppvScalarResult
+ );
+
+}
diff --git a/private/types2/oledb/rstwta.idl b/private/types2/oledb/rstwta.idl
new file mode 100644
index 000000000..8d1fe7bdc
--- /dev/null
+++ b/private/types2/oledb/rstwta.idl
@@ -0,0 +1,25 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: rstwta.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 12 Jun 1995 PeterBu Created from M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a43-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetWatchAll : IUnknown {
+
+ HRESULT Acknowledge(
+ );
+
+}
diff --git a/private/types2/oledb/rstwtn.idl b/private/types2/oledb/rstwtn.idl
new file mode 100644
index 000000000..f492f13b4
--- /dev/null
+++ b/private/types2/oledb/rstwtn.idl
@@ -0,0 +1,39 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: rstwtn.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 12 Jun 1995 PeterBu Created from M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a44-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetWatchNotify : IUnknown {
+
+ //
+ // DBWATCHNOTIFY and related definitions
+ //
+
+typedef DWORD DBWATCHNOTIFY;
+
+enum DBWATCHNOTIFYENUM {
+ DBWATCHNOTIFY_ROWSCHANGED = 1,
+ DBWATCHNOTIFY_QUERYDONE = 2,
+ DBWATCHNOTIFY_QUERYREEXECUTED = 3
+};
+
+ HRESULT OnChange(
+ [in] IRowset * pRowset,
+ [in] DBWATCHNOTIFY eChangeReason
+ );
+
+}
diff --git a/private/types2/oledb/rstwtr.idl b/private/types2/oledb/rstwtr.idl
new file mode 100644
index 000000000..6958c9a3a
--- /dev/null
+++ b/private/types2/oledb/rstwtr.idl
@@ -0,0 +1,93 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: rstwtr.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 12 Jun 1995 PeterBu Created from M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a45-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetWatchRegion : IRowsetWatchAll {
+
+ //
+ // DBWATCHMODE and related definitions
+ //
+
+typedef DWORD DBWATCHMODE;
+
+enum DBWATCHMODEENUM {
+ DBWATCHMODE_ALL = 0x01,
+ DBWATCHMODE_EXTEND = 0x02,
+ DBWATCHMODE_MOVE = 0x04,
+ DBWATCHMODE_COUNT = 0x08
+};
+
+ //
+ // DBROWWATCHCHANGE and related definitions
+ //
+
+typedef DWORD DBROWCHANGEKIND;
+
+enum DBROWCHANGEKINDENUM {
+ DBROWCHANGEKIND_INSERT,
+ DBROWCHANGEKIND_DELETE,
+ DBROWCHANGEKIND_UPDATE,
+ DBROWCHANGEKIND_COUNT
+};
+
+typedef struct tagDBROWWATCHRANGE {
+ HWATCHREGION hRegion;
+ DBROWCHANGEKIND eChangeKind;
+ HROW hRow;
+ ULONG iRow;
+} DBROWWATCHCHANGE;
+
+
+ HRESULT CreateWatchRegion(
+ [in] DBWATCHMODE dwWatchMode,
+ [out] HWATCHREGION * phRegion
+ );
+
+ HRESULT ChangeWatchMode(
+ [in] HWATCHREGION hRegion,
+ [in] DBWATCHMODE dwWatchMode
+ );
+
+ HRESULT DeleteWatchRegion(
+ [in] HWATCHREGION hRegion
+ );
+
+ HRESULT GetWatchRegionInfo(
+ [in] HWATCHREGION hRegion,
+ [out] DBWATCHMODE * pdwWatchMode,
+ [out] HCHAPTER * phChapter,
+ [out] ULONG * pcbBookmark,
+ [out] BYTE ** ppBookmark,
+ [out] LONG * pcRows
+ );
+
+ HRESULT Refresh(
+ [out] ULONG * pcChangesObtained,
+ [out] DBROWWATCHCHANGE ** prgChanges
+ );
+
+ HRESULT ShrinkWatchRegion(
+ [in] HWATCHREGION hRegion,
+ [in] HCHAPTER hChapter,
+ [in] ULONG cbBookmark,
+ [in, size_is(cbBookmark)] BYTE * pBookmark,
+ [in] LONG cRows
+ );
+
+}
diff --git a/private/types2/oledb/rstxsc.idl b/private/types2/oledb/rstxsc.idl
new file mode 100644
index 000000000..c93d84d87
--- /dev/null
+++ b/private/types2/oledb/rstxsc.idl
@@ -0,0 +1,32 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1995 - 1995.
+//
+// File: rstxsc.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 05 Jan 1995 PeterBu Created from phase III spec
+// 12 Jun 1995 PeterBu Updated to M4 spec
+// 03 Aug 1995 PeterBu Updated to M5 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a4b-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface IRowsetExactScroll : IRowsetScroll {
+
+ HRESULT GetExactPosition(
+ [in] HCHAPTER hChapter,
+ [in] ULONG cbBookmark,
+ [in, size_is(cbBookmark)] const BYTE * pBookmark,
+ [out] ULONG * pulPosition,
+ [out] ULONG * pcRows
+ );
+
+}
diff --git a/private/types2/oledb/sources b/private/types2/oledb/sources
new file mode 100644
index 000000000..67c1920ce
--- /dev/null
+++ b/private/types2/oledb/sources
@@ -0,0 +1,19 @@
+#+---------------------------------------------------------------------------
+#
+# 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 = oledb.idl \
+ transact.idl
+
+# Can't have multiple guys partying on ..\proxy\proxy\dlldata.c at once
+SYNCHRONIZE_BLOCK=1
+
diff --git a/private/types2/oledb/tabdef.idl b/private/types2/oledb/tabdef.idl
new file mode 100644
index 000000000..3ce1e0640
--- /dev/null
+++ b/private/types2/oledb/tabdef.idl
@@ -0,0 +1,54 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: tabdef.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 12 Jun 1995 PeterBu Created from M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a5a-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface ITableDefinition : IUnknown {
+
+typedef struct tagDBCOLUMNDESC {
+ DBID * pColumnID;
+ DBDATATYPE dwType;
+ BYTE precision;
+ BYTE scale;
+ BOOL fNullable;
+} DBCOLUMNDESC;
+
+ HRESULT CreateTable(
+ [in] IUnknown * pUnkOuter,
+ [in] DBID * pTableID,
+ [in] ULONG cColumnDescs,
+ [in, size_is(cColumnDescs)] DBCOLUMNDESC rgColumnDescs[],
+ [in] REFIID riid,
+ [out] DBID ** ppTableID,
+ [out, iid_is(riid)] IUnknown ** ppRowset
+ );
+
+ HRESULT DropTable(
+ [in] DBID * pTableID
+ );
+
+ HRESULT AddColumn(
+ [in] DBID * pTableID,
+ [in] DBCOLUMNDESC * pColumnDesc,
+ [out] DBID ** ppColumnID
+ );
+
+ HRESULT DropColumn(
+ [in] DBID * pTableID,
+ [in] DBID * pColumnID
+ );
+}
diff --git a/private/types2/oledb/transact.idl b/private/types2/oledb/transact.idl
new file mode 100644
index 000000000..c5eb3d67d
--- /dev/null
+++ b/private/types2/oledb/transact.idl
@@ -0,0 +1,494 @@
+//.-------------------------------------------------------------------------
+//.
+//. Microsoft Windows
+//. Copyright (C) Microsoft Corporation, 1995.
+//.
+//. File: transact.idl
+//.
+//. Contents: The basic transaction interfaces and types.
+//.
+// @doc
+//.--------------------------------------------------------------------------
+
+import "unknwn.idl";
+
+//
+//--------------------------------------------------------------------------
+//
+
+interface ITransaction;
+interface ITransactionNested;
+interface ITransactionDispenser;
+interface ITransactionDispenserAdmin;
+interface IEnumTransaction;
+interface ITransactionAdmin;
+interface ITransactionControl;
+interface ITransactionAdjustEvents;
+interface ITransactionVetoEvents;
+interface ITransactionOutcomeEvents;
+interface ITransactionCompletionEvents;
+
+//==========================================================================
+// Transaction related types
+//==========================================================================
+
+[local,pointer_default(unique)]
+interface BasicTransactionTypes
+ {
+
+ // @struct BOID | .
+
+ typedef struct BOID {
+ BYTE rgb[16]; // @field .
+ } BOID;
+
+ cpp_quote("#define BOID_NULL (*((BOID*)(&IID_NULL)))")
+
+ // @type XACTUOW | Unit Of Work.
+
+ typedef BOID XACTUOW;
+
+ // @type ISOLEVEL | Data type for isolation level values.
+
+ typedef LONG ISOLEVEL;
+
+ // @enum ISOLATIONLEVEL | Constants that specifiy isolation level of a transaction.
+
+ cpp_quote("#if defined(_WIN32)") // enums in Win16 are 16-bit, not 32-bit
+ typedef enum ISOLATIONLEVEL {
+ ISOLATIONLEVEL_UNSPECIFIED = 0xFFFFFFFF, // @emem .
+ ISOLATIONLEVEL_CHAOS = 0x00000010, // @emem .
+ ISOLATIONLEVEL_READUNCOMMITTED = 0x00000100, // @emem .
+ ISOLATIONLEVEL_BROWSE = 0x00000100, // @emem Synonym for _READUNCOMITTED
+ ISOLATIONLEVEL_CURSORSTABILITY = 0x00001000, // @emem .
+ ISOLATIONLEVEL_READCOMMITTED = 0x00001000, // @emem Synonym for _CURSORSTABILITY
+ ISOLATIONLEVEL_REPEATABLEREAD = 0x00010000, // @emem .
+ ISOLATIONLEVEL_SERIALIZABLE = 0x00100000, // @emem .
+ ISOLATIONLEVEL_ISOLATED = 0x00100000, // @emem Synonym for _SERIALIZABLE
+ } ISOLATIONLEVEL;
+ cpp_quote("#else")
+ cpp_quote("#define ISOLATIONLEVEL_UNSPECIFIED 0xFFFFFFFF")
+ cpp_quote("#define ISOLATIONLEVEL_CHAOS 0x00000010")
+ cpp_quote("#define ISOLATIONLEVEL_READUNCOMMITTED 0x00000100")
+ cpp_quote("#define ISOLATIONLEVEL_BROWSE 0x00000100")
+ cpp_quote("#define ISOLATIONLEVEL_CURSORSTABILITY 0x00001000")
+ cpp_quote("#define ISOLATIONLEVEL_READCOMMITTED 0x00001000")
+ cpp_quote("#define ISOLATIONLEVEL_REPEATABLEREAD 0x00010000")
+ cpp_quote("#define ISOLATIONLEVEL_SERIALIZABLE 0x00100000")
+ cpp_quote("#define ISOLATIONLEVEL_ISOLATED 0x00100000")
+ cpp_quote("#endif")
+
+ // @struct XACTTRANSINFO | Transaction information structure
+ // used in <i ITransaction>.
+
+ typedef struct XACTTRANSINFO {
+ XACTUOW uow; // @field The current unit of work
+ ISOLEVEL isoLevel; // @field The isolation level for the current UOW
+ ULONG isoFlags; // @field Values from ISOFLAG enumeration
+ DWORD grfTCSupported; // @field Flags indicating capabilities
+ DWORD grfRMSupported; // @field ... of this transaction wrt
+ DWORD grfTCSupportedRetaining; // @field ... parameters to Commit
+ DWORD grfRMSupportedRetaining; // @field ...
+ } XACTTRANSINFO;
+
+ typedef struct XACTSTATS {
+ ULONG cOpen; // The number of currently extant transactions.
+ ULONG cCommitting; // The number of transactions which are proceding towards committing.
+ ULONG cCommitted; // The number of transactions that are have been committed.
+ ULONG cAborting; // The number of transactions which are in the process of aborting.
+ ULONG cAborted; // The number of transactions that are have been aborted.
+ ULONG cInDoubt; // The number of transactions which are presently in doubt.
+ ULONG cHeuristicDecision; // The number of transactions that have completed by heuristic decision.
+ FILETIME timeTransactionsUp; // The amount of time that this transaction service has been up.
+ } XACTSTATS;
+
+ // @enum ISOFLAG | Used in <t XACTTRANSINFO> and <i ITransactionDispenser>.
+
+ typedef enum ISOFLAG {
+ ISOFLAG_RETAIN_COMMIT_DC = 1, // @emem Use just one of ISOFLAG_RETAIN_COMMIT values
+ ISOFLAG_RETAIN_COMMIT = 2, // @emem .
+ ISOFLAG_RETAIN_COMMIT_NO = 3, // @emem .
+ ISOFLAG_RETAIN_ABORT_DC = 4, // @emem Use just one of ISOFLAG_RETAIN_ABORT values
+ ISOFLAG_RETAIN_ABORT = 8, // @emem .
+ ISOFLAG_RETAIN_ABORT_NO = 12, // @emem .
+ ISOFLAG_RETAIN_DONTCARE = ISOFLAG_RETAIN_COMMIT_DC | ISOFLAG_RETAIN_ABORT_DC, // @emem .
+ ISOFLAG_RETAIN_BOTH = ISOFLAG_RETAIN_COMMIT | ISOFLAG_RETAIN_ABORT, // @emem .
+ ISOFLAG_RETAIN_NONE = ISOFLAG_RETAIN_COMMIT_NO | ISOFLAG_RETAIN_ABORT_NO, // @emem .
+ ISOFLAG_OPTIMISTIC = 16, // @emem .
+ } ISOFLAG;
+
+ // @enum XACTTC | Used in <i ITransactionDispenser>.<nl>
+ // A bit field of 32 bits; be sure to mask before comparing.
+
+ typedef enum XACTTC {
+ XACTTC_DONTAUTOABORT = 1, // @emem Don't automatically abort the transaction if a commit cannot complete.
+ XACTTC_TRYALLRESOURCES = 2, // @emem .
+ XACTTC_ASYNC = 4,
+ XACTTC_SYNC_PHASEONE = 8,
+ XACTTC_SYNC_PHASETWO = 16,
+ XACTTC_SYNC = 16, // nb alias for XACTTC_SYNC_PHASETWO
+ XACTTC_ASYNCPHASEONE = 128, // TEMPORARY FOR GAGAN DONT USE WILL GO AWAY
+ XACTTC_ASYNCPHASETWO = 256, // TEMPORARY FOR GAGAN DONT USE WILL GO AWAY
+ } XACTTC;
+
+ // @enum XACTRM | Used in <i ITransactionDispenser>.<nl>
+ // A bit field of 32 bits; be sure to mask before comparing.
+
+ typedef enum XACTRM {
+ XACTRM_OPTIMISTICLASTWINS = 1, // @emem .
+ XACTRM_NOREADONLYPREPARES = 2, // @emem .
+ } XACTRM;
+
+ typedef enum XACTCONST {
+ XACTCONST_TIMEOUTINFINITE = 0, // @emem .
+ } XACTCONST;
+
+ typedef enum XACTHEURISTIC {
+ XACTHEURISTIC_ABORT = 1,
+ XACTHEURISTIC_COMMIT = 2,
+ XACTHEURISTIC_DAMAGE = 3,
+ XACTHEURISTIC_DANGER = 4,
+ } XACTHEURISTIC;
+
+ cpp_quote("#if defined(_WIN32)") // enums in Win16 are 16-bit, not 32-bit
+ typedef enum XACTSTAT {
+ XACTSTAT_NONE = 0x00000000,
+ XACTSTAT_OPENNORMAL = 0x00000001,
+ XACTSTAT_OPENREFUSED = 0x00000002,
+ XACTSTAT_PREPARING = 0x00000004,
+ XACTSTAT_PREPARED = 0x00000008,
+ XACTSTAT_PREPARERETAINING = 0x00000010,
+ XACTSTAT_PREPARERETAINED = 0x00000020,
+ XACTSTAT_COMMITTING = 0x00000040,
+ XACTSTAT_COMMITRETAINING = 0x00000080,
+ XACTSTAT_ABORTING = 0x00000100,
+ XACTSTAT_ABORTED = 0x00000200,
+ XACTSTAT_COMMITTED = 0x00000400,
+ XACTSTAT_HEURISTIC_ABORT = 0x00000800,
+ XACTSTAT_HEURISTIC_COMMIT = 0x00001000,
+ XACTSTAT_HEURISTIC_DAMAGE = 0x00002000,
+ XACTSTAT_HEURISTIC_DANGER = 0x00004000,
+ XACTSTAT_FORCED_ABORT = 0x00008000,
+ XACTSTAT_FORCED_COMMIT = 0x00010000,
+ XACTSTAT_INDOUBT = 0x00020000,
+ XACTSTAT_CLOSED = 0x00040000,
+ XACTSTAT_OPEN = 0x00000003,
+ XACTSTAT_NOTPREPARED = 0x0007FFC3,
+ XACTSTAT_ALL = 0x0007FFFF,
+ } XACTSTAT;
+ cpp_quote("#else")
+ cpp_quote("#define XACTSTAT_NONE 0x00000000")
+ cpp_quote("#define XACTSTAT_OPENNORMAL 0x00000001")
+ cpp_quote("#define XACTSTAT_OPENREFUSED 0x00000002")
+ cpp_quote("#define XACTSTAT_PREPARING 0x00000004")
+ cpp_quote("#define XACTSTAT_PREPARED 0x00000008")
+ cpp_quote("#define XACTSTAT_PREPARERETAINING 0x00000010")
+ cpp_quote("#define XACTSTAT_PREPARERETAINED 0x00000020")
+ cpp_quote("#define XACTSTAT_COMMITTING 0x00000040")
+ cpp_quote("#define XACTSTAT_COMMITRETAINING 0x00000080")
+ cpp_quote("#define XACTSTAT_ABORTING 0x00000100")
+ cpp_quote("#define XACTSTAT_ABORTED 0x00000200")
+ cpp_quote("#define XACTSTAT_COMMITTED 0x00000400")
+ cpp_quote("#define XACTSTAT_HEURISTIC_ABORT 0x00000800")
+ cpp_quote("#define XACTSTAT_HEURISTIC_COMMIT 0x00001000")
+ cpp_quote("#define XACTSTAT_HEURISTIC_DAMAGE 0x00002000")
+ cpp_quote("#define XACTSTAT_HEURISTIC_DANGER 0x00004000")
+ cpp_quote("#define XACTSTAT_FORCED_ABORT 0x00008000")
+ cpp_quote("#define XACTSTAT_FORCED_COMMIT 0x00010000")
+ cpp_quote("#define XACTSTAT_INDOUBT 0x00020000")
+ cpp_quote("#define XACTSTAT_CLOSED 0x00040000")
+ cpp_quote("#define XACTSTAT_OPEN 0x00000003")
+ cpp_quote("#define XACTSTAT_NOTPREPARED 0x0007FFC3")
+ cpp_quote("#define XACTSTAT_ALL 0x0007FFFF")
+ cpp_quote("#endif")
+ }
+
+//
+//==========================================================================
+// Basic transaction interfaces
+//==========================================================================
+//
+
+// @interface ITransaction | Transaction interface, single phase
+
+[object,uuid(0fb15084-af41-11ce-bd2b-204c4f4f5020), pointer_default(unique)]
+interface ITransaction : IUnknown {
+
+ HRESULT Commit
+ (
+ [in] BOOL fRetaining,
+ [in] DWORD grfTC,
+ [in] DWORD grfRM
+ );
+ HRESULT Abort
+ (
+ [in] BOID* pboidReason,
+ [in] BOOL fRetaining,
+ [in] BOOL fAsync
+ );
+ HRESULT GetTransactionInfo
+ (
+ [out] XACTTRANSINFO* pinfo
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+[object,uuid(68F03E31-7610-11ce-BD02-524153480003),pointer_default(unique)]
+interface ITransactionNested : ITransaction {
+ HRESULT GetParent
+ (
+ [in] REFIID iid,
+ [out, iid_is(iid)] void** ppvParent
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+// @interface ITransactionDispenser | Interface by which new transactions are commonly created
+
+[object,uuid(0141fda1-8fc0-11ce-bd18-204c4f4f5020),pointer_default(unique)]
+interface ITransactionDispenser : IUnknown {
+ HRESULT BeginTransaction
+ (
+ [in] IUnknown* punkOuter, // controlling unknown
+ [in] ISOLEVEL isoLevel, // isolation level for xtion
+ [in] ULONG isoFlags, // values from ISOFLAG enumeration
+ [in] ULONG ulTimeout, // timeout in milliseconds
+ [in] IUnknown* punkTransactionCoord, // coord'd transaction in which to enlist, if any
+ [out] ITransaction** ppTransaction
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+[object,uuid(68F03E3B-7610-11ce-BD02-524153480003),pointer_default(unique)]
+interface ITransactionDispenserAdmin : ITransactionDispenser {
+ HRESULT EnumTransactions
+ (
+ [out] IEnumTransaction** ppenum
+ );
+ HRESULT GetStatistics
+ (
+ [out] XACTSTATS* pStatistics
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+[object,uuid(68F03E3A-7610-11ce-BD02-524153480003),pointer_default(unique)]
+interface IEnumTransaction : IUnknown {
+ [local]
+ HRESULT Next
+ (
+ [in] ULONG celt,
+ [out] ITransaction** rgelt,
+ [out] ULONG* pceltFetched
+ );
+
+ [call_as(Next)]
+ HRESULT RemoteNext
+ (
+ [in] ULONG celt,
+ [out, size_is(celt), length_is(*pceltFetched)]
+ ITransaction** rgelt,
+ [out] ULONG* pceltFetched
+ );
+
+ HRESULT Skip
+ (
+ [in] ULONG celt
+ );
+
+ HRESULT Reset();
+
+ HRESULT Clone
+ (
+ [out] IEnumTransaction** ppenum
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+[object,uuid(0dea57d2-a51c-11ce-a9da-00aa006c3706),pointer_default(unique)]
+interface ITransactionAdmin : IUnknown {
+ HRESULT ForceCommit();
+ HRESULT ForceAbort();
+ HRESULT SetDescription
+ (
+ [in] LCID lcid,
+ [in] LPWSTR pswzDescription
+ );
+ HRESULT GetDescription
+ (
+ [in] LCID lcid,
+ [out] LPWSTR* ppswzDescription
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+[object,uuid(0dea57d1-a51c-11ce-a9da-00aa006c3706),pointer_default(unique)]
+interface ITransactionControl : IUnknown {
+ HRESULT GetStatus
+ (
+ [out] DWORD* pdwStatus
+ );
+ HRESULT SetTimeout
+ (
+ [in] ULONG ulTimeout
+ );
+ HRESULT PreventCommit
+ (
+ [in] BOOL fPrevent
+ );
+ }
+
+//
+//==========================================================================
+// Events sets raised by transaction objects. Use connection points to
+// connect to these.
+//==========================================================================
+//
+
+[object,uuid(0dea57d0-a51c-11ce-a9da-00aa006c3706),pointer_default(unique)]
+interface ITransactionAdjustEvents : IUnknown {
+ HRESULT OnPrePrepareAdjust
+ (
+ [in] BOOL fRetaining
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+[object,uuid(fd38c571-76b3-11ce-bd03-524153480003),pointer_default(unique)]
+interface ITransactionVetoEvents : IUnknown {
+ HRESULT OnPrePrepare
+ (
+ [in] BOOL fRetaining
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+[object,uuid(0fb15080-af41-11ce-bd2b-204c4f4f5020),pointer_default(unique)]
+interface ITransactionOutcomeEvents : IUnknown {
+ HRESULT OnCommit
+ (
+ [in] BOOL fRetaining,
+ [in] XACTUOW* pNewUOW,
+ [in] HRESULT hr
+ );
+ HRESULT OnAbort
+ (
+ [in] BOID* pboidReason,
+ [in] BOOL fRetaining,
+ [in] XACTUOW* pNewUOW,
+ [in] HRESULT hr
+ );
+ HRESULT OnHeuristicDecision
+ (
+ [in] DWORD dwDecision,
+ [in] BOID* pboidReason,
+ [in] HRESULT hr
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+[object,uuid(0dea57d4-a51c-11ce-a9da-00aa006c3706),pointer_default(unique)]
+interface ITransactionCompletionEvents : IUnknown {
+ HRESULT OnCommit
+ (
+ [in] BOOL fRetaining,
+ [in] XACTUOW* pNewUOW,
+ [in] HRESULT hr
+ );
+ HRESULT OnAbort
+ (
+ [in] BOID* pboidReason,
+ [in] BOOL fRetaining,
+ [in] XACTUOW* pNewUOW,
+ [in] HRESULT hr
+ );
+ HRESULT OnHeuristicDecision
+ (
+ [in] DWORD dwDecision,
+ [in] BOID* pboidReason,
+ [in] HRESULT hr
+ );
+ }
+
+
+#include "txcoord.idl"
+
+//
+//==========================================================================
+// Error code definitions for all transaction related functionality.
+//==========================================================================
+//
+
+cpp_quote("#define XACT_E_FIRST 0x8004D000")
+cpp_quote("#define XACT_E_LAST 0x8004D01D")
+cpp_quote("#define XACT_S_FIRST 0x0004D000")
+cpp_quote("#define XACT_S_LAST 0x0004D009")
+cpp_quote("")
+cpp_quote("#define XACT_E_ABORTED 0x8004D019")
+cpp_quote("#define XACT_E_ALREADYOTHERSINGLEPHASE 0x8004D000")
+cpp_quote("#define XACT_E_ALREADYINPROGRESS 0x8004D018")
+cpp_quote("#define XACT_E_CANTRETAIN 0x8004D001")
+cpp_quote("#define XACT_E_COMMITFAILED 0x8004D002")
+cpp_quote("#define XACT_E_COMMITPREVENTED 0x8004D003")
+cpp_quote("#define XACT_E_CONNECTION_DENIED 0x8004D01D")
+cpp_quote("#define XACT_E_CONNECTION_DOWN 0x8004D01C")
+cpp_quote("#define XACT_E_HEURISTICABORT 0x8004D004")
+cpp_quote("#define XACT_E_HEURISTICCOMMIT 0x8004D005")
+cpp_quote("#define XACT_E_HEURISTICDAMAGE 0x8004D006")
+cpp_quote("#define XACT_E_HEURISTICDANGER 0x8004D007")
+cpp_quote("#define XACT_E_INDOUBT 0x8004D016")
+cpp_quote("#define XACT_E_INVALIDCOOKIE 0x8004D015")
+cpp_quote("#define XACT_E_ISOLATIONLEVEL 0x8004D008")
+cpp_quote("#define XACT_E_LOGFULL 0x8004D01A")
+cpp_quote("#define XACT_E_NOASYNC 0x8004D009")
+cpp_quote("#define XACT_E_NOENLIST 0x8004D00A")
+cpp_quote("#define XACT_E_NOIMPORTOBJECT 0x8004D014")
+cpp_quote("#define XACT_E_NOISORETAIN 0x8004D00B")
+cpp_quote("#define XACT_E_NORESOURCE 0x8004D00C")
+cpp_quote("#define XACT_E_NOTCURRENT 0x8004D00D")
+cpp_quote("#define XACT_E_NOTIMEOUT 0x8004D017")
+cpp_quote("#define XACT_E_NOTRANSACTION 0x8004D00E")
+cpp_quote("#define XACT_E_NOTSUPPORTED 0x8004D00F")
+cpp_quote("#define XACT_E_TMNOTAVAILABLE 0x8004D01B")
+cpp_quote("#define XACT_E_UNKNOWNRMGRID 0x8004D010")
+cpp_quote("#define XACT_E_WRONGSTATE 0x8004D011")
+cpp_quote("#define XACT_E_WRONGUOW 0x8004D012")
+cpp_quote("#define XACT_E_XTIONEXISTS 0x8004D013")
+cpp_quote("")
+cpp_quote("#define XACT_S_ABORTING 0x0004D008")
+cpp_quote("#define XACT_S_ALLNORETAIN 0x0004D007")
+cpp_quote("#define XACT_S_ASYNC 0x0004D000")
+cpp_quote("#define XACT_S_DEFECT 0x0004D001")
+cpp_quote("#define XACT_S_OKINFORM 0x0004D004")
+cpp_quote("#define XACT_S_MADECHANGESCONTENT 0x0004D005")
+cpp_quote("#define XACT_S_MADECHANGESINFORM 0x0004D006")
+cpp_quote("#define XACT_S_READONLY 0x0004D002")
+cpp_quote("#define XACT_S_SINGLEPHASE 0x0004D009")
+cpp_quote("#define XACT_S_SOMENORETAIN 0x0004D003")
diff --git a/private/types2/oledb/trnjoi.idl b/private/types2/oledb/trnjoi.idl
new file mode 100644
index 000000000..2dcbcba07
--- /dev/null
+++ b/private/types2/oledb/trnjoi.idl
@@ -0,0 +1,33 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: trnjoi.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 12 Jun 1995 PeterBu Created from M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a5e-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface ITransactionJoin : IUnknown {
+
+ HRESULT GetOptionsObject(
+ [out] ITransactionOptions ** ppOptions
+ );
+
+ HRESULT JoinTransaction(
+ [in] IUnknown * punkTransactionCoord,
+ [in] ISOLEVEL isoLevel,
+ [in] ULONG isoFlags,
+ [in] ITransactionOptions * pOtherOptions
+ );
+
+}
diff --git a/private/types2/oledb/trnlcl.idl b/private/types2/oledb/trnlcl.idl
new file mode 100644
index 000000000..726c678ae
--- /dev/null
+++ b/private/types2/oledb/trnlcl.idl
@@ -0,0 +1,33 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: trnlcl.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 12 Jun 1995 PeterBu Created from M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a5f-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface ITransactionLocal : IUnknown {
+
+ HRESULT GetOptionsObject(
+ [out] ITransactionOptions ** ppOptions
+ );
+
+ HRESULT StartTransaction(
+ [in] ISOLEVEL isoLevel,
+ [in] ULONG isoFlags,
+ [in] ITransactionOptions * pOtherOptions,
+ [out] ULONG * pulTransactionLevel
+ );
+
+}
diff --git a/private/types2/oledb/trnobj.idl b/private/types2/oledb/trnobj.idl
new file mode 100644
index 000000000..8d595cd41
--- /dev/null
+++ b/private/types2/oledb/trnobj.idl
@@ -0,0 +1,27 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: trnobj.idl
+//
+// Contents: OLE DB interface definition
+//
+// History: 12 Jun 1995 PeterBu Created from M4 spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(0c733a60-2a1c-11ce-ade5-00aa0044773d)
+
+
+interface ITransactionObject : IUnknown {
+
+ HRESULT GetTransactionObject(
+ [in] ULONG ulTransactionLevel,
+ [out] ITransaction ** ppTransactionObject
+ );
+
+}
diff --git a/private/types2/oledb/txcoord.idl b/private/types2/oledb/txcoord.idl
new file mode 100644
index 000000000..f8e67ac12
--- /dev/null
+++ b/private/types2/oledb/txcoord.idl
@@ -0,0 +1,420 @@
+//.-------------------------------------------------------------------------
+//.
+//. Microsoft Windows
+//. Copyright (C) Microsoft Corporation, 1995.
+//.
+//. File: txcoord.idl
+//.
+//. Contents: Transaction types and interfaces related to
+//. transaction coordination.
+//.
+// @doc
+//.--------------------------------------------------------------------------
+
+//import "transact.idl";
+import "objidl.idl"; // needed for IMoniker
+
+//
+//--------------------------------------------------------------------------
+//
+
+interface ITransactionCoordinator;
+interface ITransactionResource;
+interface ITransactionResourceAsync;
+interface ITransactionResourceRecover;
+interface ITransactionResourceManagement;
+interface ITransactionEnlistment;
+interface ITransactionEnlistmentAsync;
+interface ITransactionEnlistmentRecover;
+interface IEnumXACTRE;
+interface ITransactionInProgressEvents;
+
+interface ITransactionExportFactory;
+interface ITransactionImportWhereabouts;
+interface ITransactionExport;
+interface ITransactionImport;
+
+//==========================================================================
+// Transaction coordination related types
+//==========================================================================
+
+[local,pointer_default(unique)]
+interface TransactionCoordinationTypes
+ {
+ typedef BOID XACTRMGRID; // resource manager group id
+
+ typedef enum XACTTCRMENLIST { // a bit field of 32 bits; be sure to mask before comparing
+ XACTTCRMENLIST_IAMACTIVE = 1,
+ XACTTCRMENLIST_YOUBEACTIVE = 2,
+ } XACTTCRMENLIST;
+
+ typedef enum XACTRMTC { // a bit field of 32 bits, be sure to mask before comparing
+ XACTRMTC_CANBEACTIVE = 1,
+ XACTRMTC_CANNOTRACE = 2,
+ } XACTRMTC;
+
+ typedef struct XACTRE { // used in ITransactionCoordinator::EnumResources
+ IUnknown* pResource; // the enlisted resource
+ ULONG type; // the type of resource. Values from XACTRETY.
+ ULONG status; // its status. Values from XACTSTAT.
+ DWORD grfRMTC; // flag values with which this resource was enlisted
+ XACTRMGRID rmgrid; // resource manager group id associated with this resource
+ BOID boidRefusedReason; // If status is _OPENREFUSED, this is the boid from resource as to why
+ } XACTRE;
+
+ typedef enum XACTRETY { // used in XACTRE
+ XACTRETY_ONEPHASE = 1,
+ XACTRETY_TWOPHASE = 2,
+ XACTRETY_THREEPHASE = 3, // for future use, when and if three-phase commit logic is added
+ } XACTRETY;
+ }
+
+//
+//==========================================================================
+// Transaction coordination interfaces
+//==========================================================================
+//
+
+[object,uuid(0fb15083-af41-11ce-bd2b-204c4f4f5020),pointer_default(unique)]
+interface ITransactionCoordinator : IUnknown {
+ HRESULT Enlist
+ (
+ [in] IUnknown* pResource,
+ [in] DWORD grfRMTC,
+ [in] XACTRMGRID* prmgrid,
+ [in] XACTTRANSINFO* pinfo,
+ [in] DWORD* pgrfTCRMENLIST,
+ [out] ITransactionEnlistment** ppEnlist
+ );
+ HRESULT EnlistSinglePhase
+ (
+ [in] ITransaction* pResource,
+ [in] DWORD grfRMTC,
+ [in] XACTRMGRID* prmgrid,
+ [in] XACTTRANSINFO* pinfo,
+ [out] DWORD* pgrfTCRMENLIST,
+ [out] ITransactionEnlistment** ppEnlist
+ );
+ HRESULT EnumResources
+ (
+ [out] IEnumXACTRE** ppenum
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+[object,uuid(7e8e6200-76ba-11ce-bd03-524153480003),pointer_default(unique)]
+interface ITransactionResourceRecover : IUnknown {
+ HRESULT GetMoniker
+ (
+ [out] IMoniker** ppmk
+ );
+ HRESULT ReEnlist
+ (
+ [in] ITransactionCoordinator* pEnlistment,
+ [in] XACTUOW* pUOWCur
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+[object,uuid(a0159630-76ba-11ce-bd03-524153480003),pointer_default(unique)]
+interface ITransactionResourceManagement : IUnknown {
+ HRESULT Defect
+ (
+ [in] BOOL fInformCoordinator
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+[object,uuid(424fd970-d67a-11ce-93fc-00aa006c3706),pointer_default(unique)]
+interface ITransactionResource : ITransactionResourceManagement {
+ HRESULT Prepare
+ (
+ [in] BOOL fRetaining,
+ [in] DWORD grfRM,
+ [in] BOOL fSinglePhase,
+ [out] IMoniker** ppmk,
+ [out] BOID** ppboidReason
+ );
+ HRESULT Commit
+ (
+ [in] DWORD grfRM,
+ [in] XACTUOW* pNewUOW
+ );
+ HRESULT Abort
+ (
+ [in] BOID* pboidReason,
+ [in] BOOL fRetaining,
+ [in] XACTUOW* pNewUOW
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+// @interface ITransactionResourceAsync | Implemented by the resource manager.
+
+[object,uuid(424fd971-d67a-11ce-93fc-00aa006c3706),pointer_default(unique)]
+interface ITransactionResourceAsync : ITransactionResourceManagement {
+ HRESULT PrepareRequest
+ (
+ [in] BOOL fRetaining,
+ [in] DWORD grfRM,
+ [in] BOOL fWantMoniker,
+ [in] BOOL fSinglePhase
+ );
+ HRESULT CommitRequest
+ (
+ [in] DWORD grfRM,
+ [in] XACTUOW* pNewUOW
+ );
+ HRESULT AbortRequest
+ (
+ [in] BOID* pboidReason,
+ [in] BOOL fRetaining,
+ [in] XACTUOW* pNewUOW
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+[object,uuid(a0159635-76ba-11ce-bd03-524153480003),pointer_default(unique)]
+interface ITransactionEnlistmentRecover : IUnknown {
+ HRESULT GetMoniker
+ (
+ [out] IMoniker** ppmk
+ );
+ HRESULT ReEnlist
+ (
+ [in] ITransactionResource* pUnkResource,
+ [in] XACTUOW* pUOWExpected,
+ [in] XACTRMGRID* prmgrid
+ );
+ HRESULT RecoveryComplete
+ (
+ [in] XACTRMGRID* prmgrid
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+[object,uuid(a0159633-76ba-11ce-bd03-524153480003),pointer_default(unique)]
+interface ITransactionEnlistment : IUnknown {
+ HRESULT GetTransaction
+ (
+ [out] ITransaction** ppTransaction
+ );
+ HRESULT EarlyVote
+ (
+ [in] BOOL fVote,
+ [in] BOID* pboidReason
+ );
+ HRESULT HeuristicDecision
+ (
+ [in] DWORD dwDecision,
+ [in] BOID* pboidReason,
+ [in] BOOL fDefecting
+ );
+ HRESULT Defect();
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+// @interface ITransactionEnlistmentAsync |
+
+[object,uuid(0fb15081-af41-11ce-bd2b-204c4f4f5020),pointer_default(unique)]
+interface ITransactionEnlistmentAsync : IUnknown {
+ HRESULT PrepareRequestDone
+ (
+ [in] HRESULT hr,
+ [in] IMoniker* pmk,
+ [in] BOID* pboidReason
+ );
+ HRESULT CommitRequestDone
+ (
+ [in] HRESULT hr
+ );
+ HRESULT AbortRequestDone
+ (
+ [in] HRESULT hr
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+[object,uuid(E1CF9B54-8745-11ce-A9BA-00AA006C3706),pointer_default(unique)]
+interface IEnumXACTRE : IUnknown {
+ [local]
+ HRESULT Next
+ (
+ [in] ULONG celt,
+ [out] XACTRE* rgelt,
+ [out] ULONG* pceltFetched
+ );
+
+ [call_as(Next)]
+ HRESULT RemoteNext
+ (
+ [in] ULONG celt,
+ [out, size_is(celt), length_is(*pceltFetched)]
+ XACTRE* rgelt,
+ [out] ULONG* pceltFetched
+ );
+
+ HRESULT Skip
+ (
+ [in] ULONG celt
+ );
+
+ HRESULT Reset();
+
+ HRESULT Clone
+ (
+ [out] IEnumXACTRE** ppenum
+ );
+ }
+
+//
+//==========================================================================
+// Event sets related to transaction coordination
+//==========================================================================
+//
+
+// @interface ITransactionInProgressEvents | Used to learn of interesting things that happen while a transaction is in progress.
+
+[object,uuid(0dea57d3-a51c-11ce-a9da-00aa006c3706),pointer_default(unique)]
+interface ITransactionInProgressEvents : IUnknown {
+ HRESULT OnEarlyVote
+ (
+ [in] XACTRE* pResourceInfo,
+ [in] BOOL fVote
+ );
+ HRESULT OnDefected
+ (
+ [in] XACTRE* pResourceInfo
+ );
+ }
+
+//
+//==========================================================================
+// Interfaces related to ODBC transaction coordination.
+//==========================================================================
+//
+
+// @interface ITransactionExportFactory | Used on the client side to associate an export / import object pair with an external connection.
+
+[object,uuid(E1CF9B53-8745-11ce-A9BA-00AA006C3706),pointer_default(unique)]
+interface ITransactionExportFactory : IUnknown {
+ HRESULT GetRemoteClassId
+ (
+ [out] CLSID* pclsid
+ );
+ HRESULT Create
+ (
+ [in] ULONG cbWhereabouts,
+ [in, size_is(cbWhereabouts)]
+ BYTE* rgbWhereabouts,
+ [out] ITransactionExport** ppExport
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+// @interface ITransactionImportWhereabouts | Used on the server side to associate an export / import object pair with an external connection.
+
+[object,uuid(0141fda4-8fc0-11ce-bd18-204c4f4f5020),pointer_default(unique)]
+interface ITransactionImportWhereabouts : IUnknown {
+ HRESULT GetWhereaboutsSize
+ (
+ [out] ULONG* pcbWhereabouts
+ );
+ [local]
+ HRESULT GetWhereabouts
+ (
+ [in] ULONG cbWhereabouts,
+ [out, size_is(cbWhereabouts)]
+ BYTE* rgbWhereabouts,
+ [out] ULONG* pcbUsed
+ );
+ [call_as(GetWhereabouts)] // pcbWhereaboutsUsed is optional; error semantics on it
+ HRESULT RemoteGetWhereabouts
+ (
+ [out] ULONG* pcbUsed,
+ [in] ULONG cbWhereabouts,
+ [out, size_is(cbWhereabouts), length_is(*pcbUsed)]
+ BYTE* rgbWhereabouts
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+// @interface ITransactionExport | Used to plumb up a particular transaction with an export / import pair.
+
+[object,uuid(0141fda5-8fc0-11ce-bd18-204c4f4f5020),pointer_default(unique)]
+interface ITransactionExport : IUnknown {
+ HRESULT Export
+ (
+ [in] IUnknown* punkTransaction,
+ [out] ULONG* pcbTransactionCookie
+ );
+ [local]
+ HRESULT GetTransactionCookie
+ (
+ [in] IUnknown* punkTransaction,
+ [in] ULONG cbTransactionCookie,
+ [out, size_is(cbTransactionCookie)]
+ BYTE* rgbTransactionCookie,
+ [out] ULONG* pcbUsed
+ );
+ [call_as(GetTransactionCookie)]
+ HRESULT RemoteGetTransactionCookie
+ (
+ [in] IUnknown* punkTransaction,
+ [out] ULONG* pcbUsed,
+ [in] ULONG cbTransactionCookie,
+ [out, size_is(cbTransactionCookie), length_is(*pcbUsed)]
+ BYTE* rgbTransactionCookie
+ );
+ }
+
+//
+//--------------------------------------------------------------------------
+//
+
+// @interface ITransactionImport | Used to plumb up a particular transaction with an export / import pair.
+
+[object,uuid(E1CF9B5A-8745-11ce-A9BA-00AA006C3706),pointer_default(unique)]
+interface ITransactionImport : IUnknown {
+ HRESULT Import
+ (
+ [in] ULONG cbTransactionCookie,
+ [in, size_is(cbTransactionCookie)]
+ BYTE* rgbTransactionCookie,
+ [in] IID* piid,
+ [out, iid_is(piid)]
+ void** ppvTransaction
+ );
+ }
+
+
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()
+}
diff --git a/private/types2/proxy/dirs b/private/types2/proxy/dirs
new file mode 100644
index 000000000..79e7b85d1
--- /dev/null
+++ b/private/types2/proxy/dirs
@@ -0,0 +1,4 @@
+DIRS= uuid
+
+OPTIONAL_DIRS=proxy
+
diff --git a/private/types2/proxy/proxy/call_as.c b/private/types2/proxy/proxy/call_as.c
new file mode 100644
index 000000000..dda9e8a6d
--- /dev/null
+++ b/private/types2/proxy/proxy/call_as.c
@@ -0,0 +1,293 @@
+#if 0
+HRESULT __stdcall IEnumSTATPROPSTG_Next_Proxy(
+ IEnumSTATPROPSTG __RPC_FAR * This,
+ /* [in] */ ULONG celt,
+ /* [out] */ STATPROPSTG __RPC_FAR *rgelt,
+ /* [unique][out][in] */ ULONG __RPC_FAR *pceltFetched)
+{
+ HRESULT hr;
+ ULONG celtFetched = 0;
+
+ hr = IEnumSTATPROPSTG_RemoteNext_Proxy(This, celt, rgelt, &celtFetched);
+
+ if (pceltFetched != 0)
+ {
+ *pceltFetched = celtFetched;
+ }
+
+ return hr;
+}
+
+
+HRESULT __stdcall IEnumSTATPROPSTG_Next_Stub(
+ IEnumSTATPROPSTG __RPC_FAR * This,
+ /* [in] */ ULONG celt,
+ /* [length_is][size_is][out] */ STATPROPSTG __RPC_FAR *rgelt,
+ /* [out] */ ULONG __RPC_FAR *pceltFetched)
+{
+ return This->lpVtbl->Next(This, celt, rgelt, pceltFetched);
+}
+
+HRESULT __stdcall IEnumSTATPROPSETSTG_Next_Proxy(
+ IEnumSTATPROPSETSTG __RPC_FAR * This,
+ /* [in] */ ULONG celt,
+ /* [out] */ STATPROPSETSTG __RPC_FAR *rgelt,
+ /* [unique][out][in] */ ULONG __RPC_FAR *pceltFetched)
+{
+ HRESULT hr;
+ ULONG celtFetched = 0;
+
+ hr = IEnumSTATPROPSETSTG_RemoteNext_Proxy(This, celt, rgelt, &celtFetched);
+
+ if (pceltFetched != 0)
+ {
+ *pceltFetched = celtFetched;
+ }
+
+ return hr;
+}
+
+
+HRESULT __stdcall IEnumSTATPROPSETSTG_Next_Stub(
+ IEnumSTATPROPSETSTG __RPC_FAR * This,
+ /* [in] */ ULONG celt,
+ /* [length_is][size_is][out] */ STATPROPSETSTG __RPC_FAR *rgelt,
+ /* [out] */ ULONG __RPC_FAR *pceltFetched)
+{
+ return This->lpVtbl->Next(This, celt, rgelt, pceltFetched);
+}
+#endif
+
+
+HRESULT __stdcall IEnumSTATDIR_Next_Proxy(
+ IEnumSTATDIR __RPC_FAR * This,
+ /* [in] */ ULONG celt,
+ /* [out] */ STATDIR __RPC_FAR *rgelt,
+ /* [unique][out][in] */ ULONG __RPC_FAR *pceltFetched)
+{
+ HRESULT hr;
+ ULONG celtFetched = 0;
+
+ hr = IEnumSTATDIR_RemoteNext_Proxy(This, celt, rgelt, &celtFetched);
+
+ if (pceltFetched != 0)
+ {
+ *pceltFetched = celtFetched;
+ }
+
+ return hr;
+}
+
+
+HRESULT __stdcall IEnumSTATDIR_Next_Stub(
+ IEnumSTATDIR __RPC_FAR * This,
+ /* [in] */ ULONG celt,
+ /* [length_is][size_is][out] */ STATDIR __RPC_FAR *rgelt,
+ /* [out] */ ULONG __RPC_FAR *pceltFetched)
+{
+ return This->lpVtbl->Next(This, celt, rgelt, pceltFetched);
+}
+
+HRESULT __stdcall IDirectory_CreateElement_Proxy (IDirectory * This,
+ /* [in] */ const WCHAR * pwcsName,
+ /* [in] */ STGCREATE * pStgCreate,
+ /* [in] */ STGOPEN * pStgOpen,
+ /* [in] */ REFIID riid,
+ /* [out] */ void ** ppObjectOpen)
+{
+ HRESULT hr;
+ if (ppObjectOpen) *ppObjectOpen = 0;
+ hr = IDirectory_RemoteCreateElement_Proxy (This,
+ pwcsName, pStgCreate,
+ pStgOpen, riid, (IUnknown **)ppObjectOpen);
+ return hr;
+}
+
+HRESULT __stdcall IDirectory_CreateElement_Stub (IDirectory *This,
+ /* [in] */ const WCHAR * pwcsName,
+ /* [in] */ STGCREATE * pStgCreate,
+ /* [in] */ STGOPEN * pStgOpen,
+ /* [in] */ REFIID riid,
+ /* [out, iid_is(riid)] */ IUnknown ** ppObjectOpen)
+{
+
+ HRESULT hr = This->lpVtbl->CreateElement(This, pwcsName, pStgCreate,
+ pStgOpen, riid, ppObjectOpen);
+ if (FAILED(hr))
+ {
+ // ASSERT(*ppObjectOpen == 0);
+ *ppObjectOpen = 0; // in case we have a misbehaved server
+ }
+ return hr;
+}
+
+HRESULT __stdcall IDirectory_OpenElement_Proxy (IDirectory *This,
+ /* [in] */ const WCHAR *pwcsName,
+ /* [in] */ STGOPEN * pStgOpen,
+ /* [in] */ REFIID riid,
+ /* [out] */ STGFMT * pStgfmt,
+ /* [out] */ void ** ppObjectOpen)
+{
+ HRESULT hr;
+ if (ppObjectOpen) *ppObjectOpen = 0;
+ hr = IDirectory_RemoteOpenElement_Proxy (This,
+ pwcsName, pStgOpen, riid, pStgfmt, (IUnknown **)ppObjectOpen);
+ return hr;
+}
+
+HRESULT __stdcall IDirectory_OpenElement_Stub (IDirectory *This,
+ /* [in] */ const WCHAR *pwcsName,
+ /* [in] */ STGOPEN * pStgOpen,
+ /* [in] */ REFIID riid,
+ /* [out] */ STGFMT * pStgfmt,
+ /* [out, iid_is(riid)] */ IUnknown ** ppObjectOpen)
+{
+ HRESULT hr = This->lpVtbl->OpenElement(This, pwcsName,
+ pStgOpen, riid, pStgfmt, ppObjectOpen);
+ if (FAILED(hr))
+ {
+ //ASSERT(*ppObjectOpen == 0);
+ *ppObjectOpen = 0; // in case we have a misbehaved server
+ }
+ return hr;
+}
+
+
+
+//Transactioning interfaces
+
+HRESULT __stdcall IEnumTransaction_Next_Proxy(
+ IEnumTransaction __RPC_FAR * This,
+ /* [in] */ ULONG celt,
+ /* [out] */ ITransaction __RPC_FAR **rgelt,
+ /* [unique][out][in] */ ULONG __RPC_FAR *pceltFetched)
+{
+ HRESULT hr;
+ ULONG celtFetched = 0;
+
+ hr = IEnumTransaction_RemoteNext_Proxy(This, celt, rgelt, &celtFetched);
+
+ if (pceltFetched != 0)
+ {
+ *pceltFetched = celtFetched;
+ }
+
+ return hr;
+}
+
+HRESULT __stdcall IEnumTransaction_Next_Stub(
+ IEnumTransaction __RPC_FAR * This,
+ /* [in] */ ULONG celt,
+ /* [length_is][size_is][out] */ ITransaction __RPC_FAR **rgelt,
+ /* [out] */ ULONG __RPC_FAR *pceltFetched)
+{
+ return This->lpVtbl->Next(This, celt, rgelt, pceltFetched);
+}
+
+
+
+HRESULT __stdcall IEnumXACTRE_Next_Proxy(
+ IEnumXACTRE __RPC_FAR * This,
+ /* [in] */ ULONG celt,
+ /* [out] */ XACTRE __RPC_FAR *rgelt,
+ /* [unique][out][in] */ ULONG __RPC_FAR *pceltFetched)
+{
+ HRESULT hr;
+ ULONG celtFetched = 0;
+
+ hr = IEnumXACTRE_RemoteNext_Proxy(This, celt, rgelt, &celtFetched);
+
+ if (pceltFetched != 0)
+ {
+ *pceltFetched = celtFetched;
+ }
+
+ return hr;
+}
+
+HRESULT __stdcall IEnumXACTRE_Next_Stub(
+ IEnumXACTRE __RPC_FAR * This,
+ /* [in] */ ULONG celt,
+ /* [length_is][size_is][out] */ XACTRE __RPC_FAR *rgelt,
+ /* [out] */ ULONG __RPC_FAR *pceltFetched)
+{
+ return This->lpVtbl->Next(This, celt, rgelt, pceltFetched);
+}
+
+
+
+HRESULT __stdcall ITransactionImportWhereabouts_GetWhereabouts_Proxy(
+ ITransactionImportWhereabouts __RPC_FAR * This,
+ /* [in] */ ULONG cbWhereabouts,
+ /* [out] */ BYTE __RPC_FAR *rgbWhereabouts,
+ /* [unique][out][in] */ ULONG __RPC_FAR *pcbUsed)
+{
+ HRESULT hr;
+ ULONG cbUsed = 0;
+
+ hr = ITransactionImportWhereabouts_RemoteGetWhereabouts_Proxy(
+ This,
+ &cbUsed,
+ cbWhereabouts,
+ rgbWhereabouts);
+
+ if (pcbUsed != 0)
+ {
+ *pcbUsed = cbUsed;
+ }
+
+ return hr;
+}
+
+HRESULT __stdcall ITransactionImportWhereabouts_GetWhereabouts_Stub(
+ ITransactionImportWhereabouts __RPC_FAR * This,
+ /* [out] */ ULONG __RPC_FAR *pcbUsed,
+ /* [in] */ ULONG cbWhereabouts,
+ /* [length_is][size_is][out] */ BYTE __RPC_FAR *rgbWhereabouts)
+{
+ return This->lpVtbl->GetWhereabouts(This,
+ cbWhereabouts,
+ rgbWhereabouts,
+ pcbUsed);
+}
+
+
+
+HRESULT __stdcall ITransactionExport_GetTransactionCookie_Proxy(
+ ITransactionExport __RPC_FAR * This,
+ /* [in] */ IUnknown __RPC_FAR *punkTransaction,
+ /* [in] */ ULONG cbTransactionCookie,
+ /* [out] */ BYTE __RPC_FAR *rgbTransactionCookie,
+ /* [unique][out][in] */ ULONG __RPC_FAR *pcbUsed)
+{
+ HRESULT hr;
+ ULONG cbUsed = 0;
+
+ hr = ITransactionExport_RemoteGetTransactionCookie_Proxy(
+ This,
+ punkTransaction,
+ &cbUsed,
+ cbTransactionCookie,
+ rgbTransactionCookie);
+
+ if (pcbUsed != 0)
+ {
+ *pcbUsed = cbUsed;
+ }
+
+ return hr;
+}
+
+HRESULT __stdcall ITransactionExport_GetTransactionCookie_Stub(
+ ITransactionExport __RPC_FAR * This,
+ /* [in] */ IUnknown __RPC_FAR *punkTransaction,
+ /* [out] */ ULONG __RPC_FAR *pcbUsed,
+ /* [in] */ ULONG cbTransactionCookie,
+ /* [length_is][size_is][out] */ BYTE __RPC_FAR *rgbTransactionCookie)
+{
+ return This->lpVtbl->GetTransactionCookie(This,
+ punkTransaction,
+ cbTransactionCookie,
+ rgbTransactionCookie,
+ pcbUsed);
+}
diff --git a/private/types2/proxy/proxy/makefile b/private/types2/proxy/proxy/makefile
new file mode 100644
index 000000000..6ee4f43fa
--- /dev/null
+++ b/private/types2/proxy/proxy/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/proxy/proxy/persist.old b/private/types2/proxy/proxy/persist.old
new file mode 100644
index 000000000..2d6450a19
--- /dev/null
+++ b/private/types2/proxy/proxy/persist.old
@@ -0,0 +1,194 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1993 - 1993.
+//
+// File: persist.c
+//
+// Contents: manually pasted-in implementation of IPersist
+// marshalling code. BUGBUG owned by vibhasc/MIDL.
+//
+// Functions:
+//
+// History: 7-25-94 ErikGav Created
+//
+//----------------------------------------------------------------------------
+
+//#include "rpcproxy.h"
+
+extern const MIDL_FORMAT_STRING __MIDLFormatString;
+
+extern const MIDL_FORMAT_STRING __MIDLProcFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IPersist_ServerInfo;
+
+#pragma code_seg(".orpc")
+HRESULT __stdcall IPersist_GetClassID_Proxy(
+ IPersist __RPC_FAR * This,
+ /* [out] */ CLSID __RPC_FAR *pClassID)
+{
+CLIENT_CALL_RETURN _RetVal;
+
+
+#ifdef _ALPHA_
+ va_list vlist;
+#endif
+
+#ifdef _ALPHA_
+ va_start(vlist,pClassID);
+ _RetVal = NdrClientCall(
+ ( PMIDL_STUB_DESC )&Object_StubDesc,
+ (PFORMAT_STRING) &__MIDLProcFormatString.Format[0],
+ vlist.a0);
+#else
+ _RetVal = NdrClientCall(
+ ( PMIDL_STUB_DESC )&Object_StubDesc,
+ (PFORMAT_STRING) &__MIDLProcFormatString.Format[0],
+ ( unsigned char __RPC_FAR * )&This);
+#endif
+ return ( HRESULT )_RetVal.Simple;
+
+}
+
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ __MIDLFormatString.Format,
+ 0, /* -error bounds_check flag */
+ 0x10001, /* Ndr library version */
+ 0, /* Reserved */
+ 0, /* Reserved */
+ 0 /* Reserved */
+ };
+
+static const unsigned short IPersist_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 0
+ };
+
+static const MIDL_SERVER_INFO IPersist_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ __MIDLProcFormatString.Format,
+ IPersist_FormatStringOffsetTable,
+ 0
+ };
+
+
+const CInterfaceProxyVtbl _IPersistProxyVtbl =
+{
+ &IID_IPersist,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy,
+ IPersist_GetClassID_Proxy
+};
+const CInterfaceStubVtbl _IPersistStubVtbl =
+{
+ &IID_IPersist,
+ &IPersist_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_QueryInterface,
+ CStdStubBuffer_AddRef,
+ CStdStubBuffer_Release,
+ CStdStubBuffer_Connect,
+ CStdStubBuffer_Disconnect,
+ CStdStubBuffer_Invoke,
+ CStdStubBuffer_IsIIDSupported,
+ CStdStubBuffer_CountRefs,
+ CStdStubBuffer_DebugServerQueryInterface,
+ CStdStubBuffer_DebugServerRelease
+};
+
+static const MIDL_FORMAT_STRING __MIDLProcFormatString =
+ {
+ 0,
+ {
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x44, /* 68 */
+/* 2 */ 0x3, 0x0, /* 3 */
+#ifndef _ALPHA_
+/* 4 */ 0xc, 0x0, /* Stack offset= 12 */
+#else
+ 0x18, 0x0, /* Stack offset= 24 */
+#endif
+/* 6 */
+ 0x51, /* FC_OUT_PARAM */
+ 0x1, /* 1 */
+/* 8 */ 0x0, 0x0, /* Type Offset=0 */
+/* 10 */ 0x53, /* FC_RETURN_PARAM_BASETYPE */
+ 0x8, /* FC_LONG */
+
+ 0x0
+ }
+ };
+
+static const MIDL_FORMAT_STRING __MIDLFormatString =
+ {
+ 0,
+ {
+ 0x11, 0x0, /* FC_RP */
+/* 2 */ 0x8, 0x0, /* Offset= 8 (10) */
+/* 4 */
+ 0x1d, /* FC_SMFARRAY */
+ 0x0, /* 0 */
+/* 6 */ 0x8, 0x0, /* 8 */
+/* 8 */ 0x2, /* FC_CHAR */
+ 0x5b, /* FC_END */
+/* 10 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 12 */ 0x10, 0x0, /* 16 */
+/* 14 */ 0x8, /* FC_LONG */
+ 0x6, /* FC_SHORT */
+/* 16 */ 0x6, /* FC_SHORT */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 18 */ 0x0, /* 0 */
+ 0xf1, 0xff, /* Offset= -15 (4) */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+const CInterfaceProxyVtbl * _prsist_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IPersistProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * _prsist_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IPersistStubVtbl,
+ 0
+};
+
+PCInterfaceName _prsist_InterfaceNamesList[] =
+{
+ "IPersist",
+ 0
+};
+
+const ExtendedProxyFileInfo prsist_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _prsist_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _prsist_StubVtblList,
+ (const PCInterfaceName * ) & _prsist_InterfaceNamesList
+};
diff --git a/private/types2/proxy/proxy/proxy.def b/private/types2/proxy/proxy/proxy.def
new file mode 100644
index 000000000..8a22f0109
--- /dev/null
+++ b/private/types2/proxy/proxy/proxy.def
@@ -0,0 +1,7 @@
+LIBRARY PROXY
+
+DESCRIPTION 'Microsoft (R) ShamuOLE Proxy/Stub DLL 1.00'
+
+EXPORTS
+ DllGetClassObject @1
+ DllCanUnloadNow @2
diff --git a/private/types2/proxy/proxy/sources b/private/types2/proxy/proxy/sources
new file mode 100644
index 000000000..33ef2de58
--- /dev/null
+++ b/private/types2/proxy/proxy/sources
@@ -0,0 +1,50 @@
+CAIRO_PRODUCT=1
+NO_CAIRO_LIBS=1
+USE_CRTDLL=1
+
+MAJORCOMP=types2
+MINORCOMP=proxy
+TARGETNAME=proxy
+
+DLLENTRY=_DllMainCRTStartup
+DLLDEF=obj\*\proxy.def
+
+TARGETPATH=$(BASEDIR)\public\sdk\lib\cairo
+TARGETTYPE=DYNLINK
+
+TARGETLIBS= \
+ $(BASEDIR)\public\sdk\lib\*\rpcrt4.lib \
+ $(BASEDIR)\public\sdk\lib\*\kernel32.lib \
+ $(BASEDIR)\public\sdk\lib\*\ole32.lib \
+ $(BASEDIR)\public\sdk\lib\*\gdi32p.lib \
+ $(BASEDIR)\public\sdk\lib\*\oleaut32.lib \
+ $(BASEDIR)\public\sdk\lib\*\wdt32.lib
+
+
+LINKLIBS= \
+ $(BASEDIR)\public\sdk\lib\cairo\*\coruuid.lib \
+ $(BASEDIR)\public\sdk\lib\*\uuid.lib
+
+INCLUDES=..\..\h
+
+CONDITIONAL_INCLUDES= olecairo.h
+
+SYNCHRONIZE_BLOCK=1
+SYNCHRONIZE_DRAIN=1
+
+# note that transmit.c includes the other C files. this is a hacky way
+# to get fast builds without generating a precomp header
+
+#
+# allerror.rc and all files ending in _p.c are generated by MIDL or MC
+#
+SOURCES= \
+ allerror.rc \
+ oleext_p.c \
+ transmit.c \
+ query_p.c \
+ sysmgmt_p.c \
+ dlldata.c \
+ oledb_p.c \
+ transact_p.c \
+ catstg_p.c
diff --git a/private/types2/proxy/proxy/stdrpc.hxx b/private/types2/proxy/proxy/stdrpc.hxx
new file mode 100644
index 000000000..fccdb0e1b
--- /dev/null
+++ b/private/types2/proxy/proxy/stdrpc.hxx
@@ -0,0 +1,70 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: stdrpc.hxx
+//
+// Contents: Private header file for building interface proxies and stubs.
+//
+// Classes: CStreamOnMessage
+//
+// Functions:
+//
+// History: 4-Jul-93 ShannonC Created
+// 3-Aug-93 ShannonC Changes for NT511 and IDispatch support.
+// 10-Oct-93 ShannonC Changed to new IRpcChannelBuffer interface.
+// 22-Sep-94 MikeSe Moved from CINC and simplified.
+// 16-Jan-95 DaveStr Copied from cairole\oleprx32\proxy
+// See comments in idiffprx.cxx
+//
+//--------------------------------------------------------------------------
+#ifndef __STDRPC_HXX__
+#define __STDRPC_HXX__
+
+#include <objidl.h>
+
+#define _OLE2ANAC_H_
+#include <windows.h>
+
+class CStreamOnMessage : public IStream
+{
+
+ public:
+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, LPVOID FAR* ppvObj);
+ virtual ULONG STDMETHODCALLTYPE AddRef();
+ virtual ULONG STDMETHODCALLTYPE Release();
+ virtual HRESULT STDMETHODCALLTYPE Read(VOID HUGEP *pv, ULONG cb, ULONG *pcbRead);
+ virtual HRESULT STDMETHODCALLTYPE Write(VOID const HUGEP *pv,
+ ULONG cb,
+ ULONG *pcbWritten) ;
+ virtual HRESULT STDMETHODCALLTYPE Seek(LARGE_INTEGER dlibMove,
+ DWORD dwOrigin,
+ ULARGE_INTEGER *plibNewPosition) ;
+ virtual HRESULT STDMETHODCALLTYPE SetSize(ULARGE_INTEGER libNewSize) ;
+ virtual HRESULT STDMETHODCALLTYPE CopyTo(IStream *pstm,
+ ULARGE_INTEGER cb,
+ ULARGE_INTEGER *pcbRead,
+ ULARGE_INTEGER *pcbWritten) ;
+ virtual HRESULT STDMETHODCALLTYPE Commit(DWORD grfCommitFlags) ;
+ virtual HRESULT STDMETHODCALLTYPE Revert();
+ virtual HRESULT STDMETHODCALLTYPE LockRegion(ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType) ;
+ virtual HRESULT STDMETHODCALLTYPE UnlockRegion(ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType) ;
+ virtual HRESULT STDMETHODCALLTYPE Stat(STATSTG *pstatstg, DWORD grfStatFlag) ;
+ virtual HRESULT STDMETHODCALLTYPE Clone(IStream * *ppstm) ;
+
+ CStreamOnMessage(unsigned char **ppMessageBuffer);
+ CStreamOnMessage(unsigned char **ppMessageBuffer, unsigned long cbMax);
+
+ unsigned char *pStartOfStream;
+ unsigned char **ppBuffer;
+ unsigned long cbMaxStreamLength;
+ ULONG ref_count;
+};
+
+#endif //__STDRPC_HXX__
+
diff --git a/private/types2/proxy/proxy/transmit.c b/private/types2/proxy/proxy/transmit.c
new file mode 100644
index 000000000..3069cdf8a
--- /dev/null
+++ b/private/types2/proxy/proxy/transmit.c
@@ -0,0 +1,23 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1993 - 1993.
+//
+// File: transmit.c
+//
+// Contents: hacky, confusing typedef's, MIDL style
+// also includes other files (ugly, but, hey this is types
+// and it's faster than a precomp header...)
+//
+// History: 7-25-94 ErikGav Created
+//
+//----------------------------------------------------------------------------
+#include "rpcproxy.h"
+#include "objbase.h"
+
+#include "oleext.h"
+#include "query.h"
+#include "oledb.h"
+#include "sysmgmt.h"
+
+#include "call_as.c"
diff --git a/private/types2/proxy/proxy/xmit.h b/private/types2/proxy/proxy/xmit.h
new file mode 100644
index 000000000..e15475f48
--- /dev/null
+++ b/private/types2/proxy/proxy/xmit.h
@@ -0,0 +1,49 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1994.
+//
+// File: transmit.h
+//
+// Contents: Function prototypes for STGMEDIUM marshalling.
+//
+// Functions: STGMEDIUM_to_xmit
+// STGMEDIUM_from_xmit
+// STGMEDIUM_free_inst
+//
+// History: May-10-94 ShannonC Created
+// Jan-16-95 DaveStr Copied from cairole\oleprx32\proxy\transmit.h
+// See comments in idiffprx.cxx
+//
+//--------------------------------------------------------------------------
+EXTERN_C void __RPC_API STGMEDIUM_to_xmit (STGMEDIUM *pinst, RemSTGMEDIUM **ppxmit);
+EXTERN_C void __RPC_API STGMEDIUM_from_xmit (RemSTGMEDIUM __RPC_FAR *pxmit, STGMEDIUM __RPC_FAR *pinst);
+EXTERN_C void __RPC_API STGMEDIUM_free_inst(STGMEDIUM *pinst);
+
+EXTERN_C void __RPC_API HGLOBAL_to_xmit (HGLOBAL __RPC_FAR *, RemHGLOBAL __RPC_FAR * __RPC_FAR *);
+EXTERN_C void __RPC_API HGLOBAL_from_xmit (RemHGLOBAL __RPC_FAR *, HGLOBAL __RPC_FAR *);
+EXTERN_C void __RPC_API HGLOBAL_free_inst (HGLOBAL __RPC_FAR *);
+EXTERN_C void __RPC_API HGLOBAL_free_xmit (RemHGLOBAL __RPC_FAR *);
+
+EXTERN_C void __RPC_API HBITMAP_to_xmit (HBITMAP __RPC_FAR *, RemHBITMAP __RPC_FAR * __RPC_FAR *);
+EXTERN_C void __RPC_API HBITMAP_from_xmit (RemHBITMAP __RPC_FAR *, HBITMAP __RPC_FAR *);
+EXTERN_C void __RPC_API HBITMAP_free_inst (HBITMAP __RPC_FAR *);
+EXTERN_C void __RPC_API HBITMAP_free_xmit (RemHBITMAP __RPC_FAR *);
+
+EXTERN_C void __RPC_API HPALETTE_to_xmit (HPALETTE __RPC_FAR *, RemHPALETTE __RPC_FAR * __RPC_FAR *);
+EXTERN_C void __RPC_API HPALETTE_from_xmit (RemHPALETTE __RPC_FAR *, HPALETTE __RPC_FAR *);
+EXTERN_C void __RPC_API HPALETTE_free_inst (HPALETTE __RPC_FAR *);
+EXTERN_C void __RPC_API HPALETTE_free_xmit (RemHPALETTE __RPC_FAR *);
+
+EXTERN_C void __RPC_API HMETAFILEPICT_to_xmit (HMETAFILEPICT __RPC_FAR *, RemHMETAFILEPICT __RPC_FAR * __RPC_FAR *);
+EXTERN_C void __RPC_API HMETAFILEPICT_from_xmit (RemHMETAFILEPICT __RPC_FAR *, HMETAFILEPICT __RPC_FAR *);
+EXTERN_C void __RPC_API HMETAFILEPICT_free_inst (HMETAFILEPICT __RPC_FAR *);
+EXTERN_C void __RPC_API HMETAFILEPICT_free_xmit (RemHMETAFILEPICT __RPC_FAR *);
+
+EXTERN_C void __RPC_API HENHMETAFILE_to_xmit (HENHMETAFILE __RPC_FAR *, RemHENHMETAFILE __RPC_FAR * __RPC_FAR *);
+EXTERN_C void __RPC_API HENHMETAFILE_from_xmit (RemHENHMETAFILE __RPC_FAR *, HENHMETAFILE __RPC_FAR *);
+EXTERN_C void __RPC_API HENHMETAFILE_free_inst (HENHMETAFILE __RPC_FAR *);
+EXTERN_C void __RPC_API HENHMETAFILE_free_xmit (RemHENHMETAFILE __RPC_FAR *);
+
+
+
diff --git a/private/types2/proxy/uuid/makefile b/private/types2/proxy/uuid/makefile
new file mode 100644
index 000000000..6ee4f43fa
--- /dev/null
+++ b/private/types2/proxy/uuid/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/proxy/uuid/oledbdat.c b/private/types2/proxy/uuid/oledbdat.c
new file mode 100644
index 000000000..ca38e72b2
--- /dev/null
+++ b/private/types2/proxy/uuid/oledbdat.c
@@ -0,0 +1,8 @@
+//
+// Define external constants for OLE-DB
+//
+
+#undef __DBS_H__
+#define DBINITCONSTANTS
+
+#include <oledb.h>
diff --git a/private/types2/proxy/uuid/sources b/private/types2/proxy/uuid/sources
new file mode 100644
index 000000000..df8e56d45
--- /dev/null
+++ b/private/types2/proxy/uuid/sources
@@ -0,0 +1,30 @@
+#+---------------------------------------------------------------------------
+#
+# Microsoft Windows
+# Copyright (C) Microsoft Corporation, 1992 - 1993.
+#
+# File: sources
+#
+# History: 02-Aug-94 LyleC Created
+#
+#----------------------------------------------------------------------------
+
+MAJORCOMP=proxy
+MINORCOMP=uuid
+TARGETNAME=coruuid
+TARGETPATH=$(BASEDIR)\public\sdk\lib\cairo
+TARGETTYPE=LIBRARY
+
+#
+# All files listed below (except oledbdat.c) are generated by MIDL
+#
+SOURCES= oledbdat.c \
+ oleext_i.c \
+ query_i.c \
+ oledb_i.c \
+ sysmgmt_i.c \
+ transact_i.c\
+ catstg_i.c
+
+SYNCHRONIZE_BLOCK=1
+SYNCHRONIZE_DRAIN=1
diff --git a/private/types2/query/csstg.idl b/private/types2/query/csstg.idl
new file mode 100644
index 000000000..5e30fa5be
--- /dev/null
+++ b/private/types2/query/csstg.idl
@@ -0,0 +1,38 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: csstg.idl
+//
+// Contents: ICatalogStorage
+//
+// History: Oct-93 DaveMont Created
+//
+//----------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+LOCAL_INTERFACE(00000014-0000-0008-c000-000000000099)
+interface ICatalogStorage : IUnknown
+{
+ HRESULT GetSCPath
+ (
+ [in] WCHAR ** pwszPath
+ );
+
+ HRESULT SetRows
+ (
+ [in] COLUMNSET * pcol,
+ [in] LONG * pwids,
+ [in] ULONG crows,
+ [in] TABLEROW ** prow
+ );
+
+ HRESULT DeleteRow
+ (
+ [in] ULONG wid
+ );
+}
+
+
diff --git a/private/types2/query/iajack.idl b/private/types2/query/iajack.idl
new file mode 100644
index 000000000..317fabe8b
--- /dev/null
+++ b/private/types2/query/iajack.idl
@@ -0,0 +1,28 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: ITable.idl
+//
+// Contents: ITable interface definition
+//
+// History: 29-Jul-93 KyleP Created from Ole2 .h file
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+LOCAL_INTERFACE(00000205-0000-0008-C000-000000000046)
+interface IAsynchJack : IUnknown
+{
+ SCODE GetStatus( [out] ULONG * pdwStatus,
+ [out] ULONG * pulPctDone );
+
+ SCODE Suspend();
+
+ SCODE Resume();
+
+ SCODE Abort();
+}
+
diff --git a/private/types2/query/iquery.idl b/private/types2/query/iquery.idl
new file mode 100644
index 000000000..2d53250b3
--- /dev/null
+++ b/private/types2/query/iquery.idl
@@ -0,0 +1,56 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: IQuery.idl
+//
+// Contents: IOldQuery interface definition
+//
+// Notes: This interface is scaffolding, pending the existence
+// of the OLE DB query interface implementation.
+//
+// History: 29-Jul-93 KyleP Created from Ole2 .h file
+// 21 Jun 94 Alanw Added ExecuteQuery method
+// 19-Jan-95 DwightKr Added eSequentialCursor flag
+// 17-Mar-95 DLee Added categorization / rowset count
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+//cpp_quote("#ifndef USE_NEW_IQUERY")
+//cpp_quote("#define IQuery IOldQuery")
+//cpp_quote("#define IID_IQuery IID_IOldQuery")
+//cpp_quote("#endif // USE_NEW_IQUERY")
+
+//
+// grFlags
+//
+cpp_quote("#define eSequentialCursor 0x01")
+cpp_quote("#define eUseContentIndex 0x02")
+cpp_quote("#define eDeferNonIndexedTrimming 0x04")
+cpp_quote("#define eDontTimeoutQuery 0x08")
+
+
+LOCAL_INTERFACE(00000200-0000-0008-C000-000000000046)
+interface IOldQuery : IUnknown
+{
+ SCODE ExecuteQuery( [in] ULONG ulRecursion,
+ [in] RESTRICTION * pRestriction,
+ [in] COLUMNSET * pColumns,
+ [in] SORTSET * pSort,
+ [in] DWORD grFlags,
+ [in] REFIID riid,
+ [out] IUnknown ** ppTable);
+
+ SCODE ExecQuery( [in] ULONG ulRecursion,
+ [in] RESTRICTION * pRestriction,
+ [in] COLUMNSET * pColumns,
+ [in] SORTSET * pSort,
+ [in] DWORD grFlags,
+ [in] REFIID riid,
+ [in] CATEGORIZATIONSET * pCategorize,
+ [out] ULONG * pcRowsets,
+ [out] IUnknown ** ppTable);
+}
diff --git a/private/types2/query/isearch.idl b/private/types2/query/isearch.idl
new file mode 100644
index 000000000..ac4057841
--- /dev/null
+++ b/private/types2/query/isearch.idl
@@ -0,0 +1,29 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: isearch.idl
+//
+// Contents: ISearch interface definition
+//
+// History: 02-Dec-94 BartoszM Created
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+LOCAL_INTERFACE(ed8ce7e0-106c-11ce-84e2-00aa004b9986)
+interface ISearch : IUnknown
+{
+ SCODE Init( [in] IFilter * pflt );
+
+ SCODE NextHitMoniker(
+ [in, out] ULONG * pcMnk,
+ [out, size_is(*pcMnk)] IMoniker *** papMnk );
+
+ SCODE NextHitOffset(
+ [in, out] ULONG * pcRegion,
+ [out, size_is(*pcRegion)] FILTERREGION ** paRegion );
+
+}
+
diff --git a/private/types2/query/istem.idl b/private/types2/query/istem.idl
new file mode 100644
index 000000000..7508079bc
--- /dev/null
+++ b/private/types2/query/istem.idl
@@ -0,0 +1,29 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1995.
+//
+// File: istem.idl
+//
+// Contents: IStemmer interface definition
+//
+// History: 24-Apr-95 SitaramR Created
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+LOCAL_INTERFACE(efbaf140-7f42-11ce-be57-00aa0051fe20)
+interface IStemmer: IUnknown
+{
+ SCODE Init( [in] ULONG ulMaxTokenSize,
+ [out] BOOL * pfLicense );
+
+ SCODE StemWord( [in] WCHAR const * pwcInBuf,
+ [in] ULONG cwc,
+ [in] IStemSink * pStemSink );
+
+ SCODE GetLicenseToUse( [out, string] WCHAR const ** ppwcsLicense );
+}
+
+
diff --git a/private/types2/query/itable.idl b/private/types2/query/itable.idl
new file mode 100644
index 000000000..63ac150f0
--- /dev/null
+++ b/private/types2/query/itable.idl
@@ -0,0 +1,56 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: ITable.idl
+//
+// Contents: ITable interface definition
+//
+// History: 29-Jul-93 KyleP Created from Ole2 .h file
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+LOCAL_INTERFACE(00000201-0000-0008-C000-000000000046)
+interface ITable : IUnknown
+{
+ //
+ // IReadProperty is not suppored yet, put it because ITable uses
+ // IReadProperty in the GetCursor method.
+ //
+
+ // BUGBGU, to work around midl;
+
+ typedef DWORD IReadProperty;
+
+ //
+ // ITable methods.
+ //
+
+ SCODE AddColumns( [in] ULONG cCol,
+ [in, size_is(cCol)] FULLPROPSPEC * aCol );
+
+ SCODE RemoveColumns( [in] ULONG cCol,
+ [in, size_is(cCol)] FULLPROPSPEC * aCol );
+
+ SCODE GetColumns( [out] ULONG * pcCol,
+ [out/*, size_is(*pcCol)*/] FULLPROPSPEC ** paCol );
+
+ SCODE GetRows( [in] ULONG cRowsRequested,
+ [out] ULONG * pcRowsReturned,
+ [out/*, size_is(*pcRowsReturned)*/] TABLEROW ** prgRows );
+
+ SCODE GetCursor(IReadProperty ** ppCursor);
+
+ SCODE Count( [out] ULONG * pulCount );
+
+ SCODE GetPosition( [out] ULONG * pulRowNumber );
+
+ SCODE SeekRow( [in] ULONG ulBmkOrigin,
+ [in] LONG lRowCount );
+
+ SCODE Refresh( [out] TABLEDELTA ** ppTableDelta );
+}
+
diff --git a/private/types2/query/itabls.idl b/private/types2/query/itabls.idl
new file mode 100644
index 000000000..aed9446c9
--- /dev/null
+++ b/private/types2/query/itabls.idl
@@ -0,0 +1,65 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: ITableS.itf
+//
+// Contents: Pickle-able structures used in ITable, et. al.
+//
+// History: 29-Mar-93 KyleP Created
+//
+//--------------------------------------------------------------------------
+
+[
+ uuid(946486E0-7349-101A-9F40-00AA002FC89B),
+ pointer_default(unique)
+]
+interface ITableStructures
+{
+//
+// TABLEROW is used to return rows from the table
+//
+
+typedef struct tagTABLEROW
+{
+ ULONG cValues;
+ [size_is(cValues)] PROPVARIANT * aValue;
+} TABLEROW;
+
+//
+// CHANGEDRUN, RUNSET and TABLEDELTA describe updates to the table since
+// the last call to GetRows
+//
+
+typedef struct tagCHANGEDRUN
+{
+ ULONG ulFirstRowNum;
+ ULONG ulRunLength;
+} CHANGEDRUN;
+
+typedef struct tagRUNSET
+{
+ ULONG cValues;
+ [size_is(cValues)] CHANGEDRUN * pRuns;
+} RUNSET;
+
+typedef struct tagTABLEDELTA
+{
+ RUNSET Deleted;
+ RUNSET Added;
+ RUNSET Changed;
+ ULONG cValues;
+ [size_is(cValues)] ULONG * pDeletedBmk;
+} TABLEDELTA;
+
+//
+// Special bookmarks
+//
+
+const ULONG BMK_CURRENT = 0; // Current row
+const ULONG BMK_BEGINNING = 1; // Before first row
+const ULONG BMK_END = 2; // After last row
+
+
+}
diff --git a/private/types2/query/makefile b/private/types2/query/makefile
new file mode 100644
index 000000000..6ee4f43fa
--- /dev/null
+++ b/private/types2/query/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/query/makefile.inc b/private/types2/query/makefile.inc
new file mode 100644
index 000000000..72fd58e3c
--- /dev/null
+++ b/private/types2/query/makefile.inc
@@ -0,0 +1,2 @@
+filter.idl:..\..\types\filter\idl\filter.idl
+ copy $** $@
diff --git a/private/types2/query/psink.idl b/private/types2/query/psink.idl
new file mode 100644
index 000000000..c621538de
--- /dev/null
+++ b/private/types2/query/psink.idl
@@ -0,0 +1,30 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: PSink.idl
+//
+// Contents: IPhraseSink interface definition
+//
+// History: 10-Nov-93 AmyA Created
+// 08-Apr-94 KyleP Sync with spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+LOCAL_INTERFACE(CC906FF0-C058-101A-B554-08002B33B0E6)
+interface IPhraseSink : IUnknown
+{
+ SCODE PutSmallPhrase( [in, size_is(cwcNoun)] WCHAR const * pwcNoun,
+ [in] ULONG cwcNoun,
+ [in, size_is(cwcModifier)] WCHAR const * pwcModifier,
+ [in] ULONG cwcModifier,
+ [in] ULONG ulAttachmentType );
+
+ SCODE PutPhrase( [in, size_is(cwcPhrase)] WCHAR const * pwcPhrase,
+ [in] ULONG cwcPhrase );
+}
+
+
diff --git a/private/types2/query/query.idl b/private/types2/query/query.idl
new file mode 100644
index 000000000..21332f165
--- /dev/null
+++ b/private/types2/query/query.idl
@@ -0,0 +1,29 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1993 - 1993.
+//
+// File: query.idl
+//
+// Contents: master idl file for public interfaces
+//
+// History: 7-18-94 ErikGav Created
+//
+//----------------------------------------------------------------------------
+
+#ifdef IMPORT_IDL_DEPENDENTS
+import "oaidl.idl";
+import "filter.idl";
+#endif
+
+#include "querys.idl"
+#include "isearch.idl"
+#include "iquery.idl"
+#include "psink.idl"
+#include "wsink.idl"
+#include "wbreak.idl"
+#include "stemsink.idl"
+#include "istem.idl"
+#include "rststa.idl"
+
+
diff --git a/private/types2/query/querys.idl b/private/types2/query/querys.idl
new file mode 100644
index 000000000..6e0fba93b
--- /dev/null
+++ b/private/types2/query/querys.idl
@@ -0,0 +1,424 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: QueryS.idl
+//
+// Contents: Pickle-able structures used in IQuery, et. al.
+//
+// History: 29-Mar-93 KyleP Created
+//
+//--------------------------------------------------------------------------
+
+
+[ uuid(E3971E54-4D6E-101A-971D-08002B2ECDA9),
+ pointer_default(unique)
+]
+interface IQueryStructures
+{
+//
+// Property set for dynamic query properties
+//
+
+cpp_quote("#define PSGUID_QUERY { 0x49691C90, \\")
+cpp_quote(" 0x7E17, 0x101A, \\")
+cpp_quote(" 0xA9, 0x1C, 0x08, 0x00, 0x2B, \\")
+cpp_quote(" 0x2E, 0xCD, 0xA9 } ")
+
+const DISPID DISPID_QUERY_RANKVECTOR = 2;
+const DISPID DISPID_QUERY_RANK = 3;
+const DISPID DISPID_QUERY_HITCOUNT = 4;
+const DISPID DISPID_QUERY_WORKID = 5;
+const DISPID DISPID_QUERY_ALL = 6;
+const DISPID DISPID_QUERY_UNFILTERED = 7;
+const DISPID DISPID_QUERY_REVNAME = 8;
+const DISPID DISPID_QUERY_VIRTUALPATH = 9;
+const DISPID DISPID_QUERY_LASTSEENTIME = 10;
+
+//
+// NOTE: The number of query properties includes the seven above,
+// plus 28 OLE-DB column IDs for pseudo-columns, plus eight
+// OLE-DB bookmark columns (41 total). In addition, dispids
+// always start at 2, a fact which is not taken into account in
+// the mapping macros. Reserve a few more to
+// allow for growth in the set of special columns.
+//
+
+const ULONG CQUERYDISPIDS = 11;
+
+cpp_quote("#define PSGUID_QUERY_METADATA { 0x624C9360, \\")
+cpp_quote(" 0x93D0, 0x11CF, \\")
+cpp_quote(" 0xA7, 0x87, 0x00, 0x00, 0x4C, \\")
+cpp_quote(" 0x75, 0x27, 0x52 } ")
+
+const DISPID DISPID_QUERY_METADATA_VROOTUSED = 2;
+const DISPID DISPID_QUERY_METADATA_VROOTAUTOMATIC = 3;
+const DISPID DISPID_QUERY_METADATA_VROOTMANUAL = 4;
+const DISPID DISPID_QUERY_METADATA_PROPGUID = 5;
+const DISPID DISPID_QUERY_METADATA_PROPDISPID = 6;
+const DISPID DISPID_QUERY_METADATA_PROPNAME = 7;
+
+const ULONG CQUERYMETADISPIDS = 8;
+
+//
+// Property set for OLE-DB bookmark properties
+//
+
+// BUGBUG - this may someday be defined in oledb.h. see ole-db spec bug #1271
+cpp_quote("#define DBBMKGUID { 0xC8B52232L, \\")
+cpp_quote(" 0x5CF3, 0x11CE, \\")
+cpp_quote(" {0xAD, 0xE5, 0x00, 0xAA, 0x00, \\")
+cpp_quote(" 0x44, 0x77, 0x3D } }")
+
+const DISPID PROPID_DBBMK_BOOKMARK = 2;
+const DISPID PROPID_DBBMK_CHAPTER = 3;
+
+const ULONG CDBBMKDISPIDS = 8;
+
+
+// BUGBUG - this may someday be defined in oledb.h. see ole-db spec bug #1271
+cpp_quote("#define DBSELFGUID {0xc8b52231,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}")
+const DISPID PROPID_DBSELF_SELF = 2;
+const ULONG CDBSELFDISPIDS = 8;
+
+const ULONG CDBCOLDISPIDS = 28;
+
+
+// NOTE: CQUERYPROPERTY must be < sum of:
+// CQUERYDISPIDS + CBQUERYMETADISPIDS + CDBBMKDISPIDS + CDBCOLDISPIDS + CDBSELFDISPIDS
+// Warning: Changing this number can change the ondisk format of OFS and CI
+const ULONG CQUERYPROPERTY = 64;
+
+
+cpp_quote("#define PSGUID_CHARACTERIZATION { 0x560c36c0, \\")
+cpp_quote(" 0x503a, 0x11cf, \\")
+cpp_quote(" 0xba, 0xa1, 0x00, 0x00, \\")
+cpp_quote(" 0x4c, 0x75, 0x2a, 0x9a } ")
+
+//
+// Query flags
+//
+
+const ULONG QUERY_SHALLOW = 0; // Recursion: shallow
+const ULONG QUERY_DEEP = 1; // Recursion: deep
+
+const ULONG QUERY_PHYSICAL_PATH = 0; // Scoping: use physical path
+const ULONG QUERY_VIRTUAL_PATH = 2; // Scoping: use virtual path
+
+const ULONG QUERY_VALIDBITS = 3;
+
+//
+// Restriction structures
+//
+const ULONG RTNone = 0;
+const ULONG RTAnd = 1;
+const ULONG RTOr = 2;
+const ULONG RTNot = 3;
+const ULONG RTContent = 4;
+const ULONG RTProperty = 5;
+const ULONG RTProximity = 6;
+const ULONG RTVector = 7;
+const ULONG RTNatLanguage = 8;
+
+typedef struct tagRESTRICTION RESTRICTION;
+
+//
+// Negation (NOT) Restriction
+//
+
+typedef struct tagNOTRESTRICTION
+{
+ RESTRICTION * pRes;
+} NOTRESTRICTION;
+
+//
+// Node (AND/OR/PROXIMITY) Restriction
+//
+
+typedef struct tagNODERESTRICTION
+{
+ ULONG cRes;
+ [ size_is(cRes) ] RESTRICTION ** paRes;
+ ULONG reserved;
+} NODERESTRICTION;
+
+//
+// Vector Restriction
+//
+// The vector restriction is similar to the OR restriction except
+// that each branch of the vector can be individually weighted and
+// a vector of ranks can be returned (the .RankVector property)
+// where each element of the vector is the rank of the corresponding
+// child restriction in the rank vector.
+//
+// Vector weights can have values between 0 and ulMaxRank (currently
+// 100). They are effectively the numerator of a fraction. ulMaxRank
+// is the denominator.
+//
+// Note that no query optimization/reorganization is performed below
+// this level.
+//
+// The rank of a vector restriction may be computed in one of
+// several ways. These are:
+//
+//
+// MAX[ wi * ( MaxRank - ri ) ]
+// VECTOR_RANK_MIN MaxRank - ---------------------------------
+// MAX[wi]
+//
+// MAX[ wi * ri ]
+// VECTOR_RANK_MAX -----------------
+// MAX[wi]
+//
+// n
+// SUM ri * wi
+// i=1
+// VECTOR_RANK_INNER -------------
+// n
+// SUM wi
+// i=1
+//
+// n
+// 2 * SUM ri * wi
+// i=1
+// VECTOR_RANK_DICE --------------------
+// n 2 n 2
+// SUM ri + SUM wi
+// i=1 i=1
+//
+// n
+// SUM ri * wi
+// i=1
+// VECTOR_RANK_JACCARD ---------------------------------
+// n 2 n 2 n
+// SUM ri + SUM wi - SUM ri * wi
+// i=1 i=1 i=1
+//
+//
+// * wi = Weight of term i, ri = rank of term i in a given document
+//
+
+const ULONG VECTOR_RANK_MIN = 0;
+const ULONG VECTOR_RANK_MAX = 1;
+const ULONG VECTOR_RANK_INNER = 2;
+const ULONG VECTOR_RANK_DICE = 3;
+const ULONG VECTOR_RANK_JACCARD = 4;
+
+typedef struct tagVECTORRESTRICTION
+{
+ NODERESTRICTION Node;
+ ULONG RankMethod;
+} VECTORRESTRICTION;
+
+//
+// Content Restriction
+//
+
+const ULONG FUZZY_EXACT = 0;
+const ULONG FUZZY_PREFIXMATCH = 1;
+const ULONG FUZZY_STEMMED = 2;
+
+typedef struct tagCONTENTRESTRICTION
+{
+ FULLPROPSPEC prop; // Property
+ [string] WCHAR * pwcsPhrase; // Content to search for
+ LCID lcid; // locale
+ ULONG ulFuzzyLevel; // Fuzzy search level.
+} CONTENTRESTRICTION;
+
+//
+// Natural Language Restriction
+//
+
+typedef struct tagNATLANGUAGERESTRICTION
+{
+ FULLPROPSPEC prop; // Property
+ [string] WCHAR * pwcsPhrase; // Content to search for
+ LCID lcid; // locale
+} NATLANGUAGERESTRICTION;
+
+
+//
+// Property Restriction
+//
+
+const ULONG PRLT = 0; // <
+const ULONG PRLE = 1; // <=
+const ULONG PRGT = 2; // >
+const ULONG PRGE = 3; // >=
+const ULONG PREQ = 4; // ==
+const ULONG PRNE = 5; // !=
+const ULONG PRRE = 6; // LIKE (Regular expression)
+const ULONG PRAllBits = 7; // (VAL & MASK) == MASK
+const ULONG PRSomeBits = 8; // (VAL & MASK) != 0
+const ULONG PRAll = 0x100; // all elements of vector
+const ULONG PRAny = 0x200; // any elements of vector
+
+typedef struct tagPROPERTYRESTRICTION
+{
+ ULONG rel; // Relation
+ FULLPROPSPEC prop; // Property
+ PROPVARIANT prval; // Constant value
+} PROPERTYRESTRICTION;
+
+
+//
+// Base Restriction
+//
+
+union _URes;
+
+struct tagRESTRICTION
+{
+ ULONG rt; // Restriction Type
+ ULONG weight; // Query Weight
+
+ [ switch_type(ULONG), switch_is(rt) ] union _URes
+ {
+ [ case(RTAnd) ] NODERESTRICTION ar;
+ [ case(RTOr) ] NODERESTRICTION or;
+ [ case(RTProximity) ] NODERESTRICTION pxr;
+ [ case(RTVector) ] VECTORRESTRICTION vr;
+ [ case(RTNot) ] NOTRESTRICTION nr;
+ [ case(RTContent) ] CONTENTRESTRICTION cr;
+ [ case(RTNatLanguage) ] NATLANGUAGERESTRICTION nlr;
+ [ case(RTProperty) ] PROPERTYRESTRICTION pr;
+ [ default ] ;
+ } res;
+};
+
+
+//
+// Column descriptors.
+//
+// Each column represents a single property. A property is defined by
+// a UUID for the property set and either a index (DISPID) or name
+// to locate the property within the property set.
+//
+//
+
+typedef struct tagCOLUMNSET
+{
+ ULONG cCol;
+ [size_is(cCol)] FULLPROPSPEC * aCol;
+
+} COLUMNSET;
+
+
+//
+// Sort descriptors
+//
+// A sort is over a [sub] set of columns specified as return columns in
+// the query.
+//
+// BUGBUG - this should go away and be replaced by DBSORTKEY.
+//
+
+const ULONG QUERY_SORTASCEND = 0;
+const ULONG QUERY_SORTDESCEND = 1;
+const ULONG QUERY_SORTXASCEND = 2;
+const ULONG QUERY_SORTXDESCEND = 3;
+const ULONG QUERY_SORTDEFAULT = 4;
+
+typedef struct tagSORTKEY
+{
+ FULLPROPSPEC propColumn;
+ ULONG dwOrder; // Ascending/Descending
+ LCID locale; //
+} SORTKEY;
+
+typedef struct tagSORTSET
+{
+ ULONG cCol; // Number of sort columns
+ [size_is(cCol)] SORTKEY * aCol;
+
+} SORTSET;
+
+
+//
+// Categorization descriptor
+//
+// Defines categorization of table. In IQuery this is just used as a
+// hint, indicating this categorization is likely to be used. The
+// column used for categorization is always the first uncategorized
+// sort column, except when clustering is used.
+//
+
+//
+// Unique categorization. Each unique value forms a category.
+//
+
+const ULONG CATEGORIZE_UNIQUE = 0;
+
+//
+// Cluster categorization. Use Inference clustering. Number of
+// clusters specified on entry.
+//
+
+const ULONG CATEGORIZE_CLUSTER = 1;
+
+//
+// Bucket categorization. Number of buckets and distribution of values
+// into buckets is defined.
+//
+
+const ULONG CATEGORIZE_BUCKETS = 2;
+
+const ULONG BUCKET_LINEAR = 0;
+const ULONG BUCKET_EXPONENTIAL = 1;
+
+typedef struct tagBUCKETCATEGORIZE
+{
+ ULONG cBuckets;
+ ULONG Distribution;
+} BUCKETCATEGORIZE;
+
+//
+// Range categorization. Ranges are explicitly specified.
+// The first range is from <minimum_value> to aRangeBegin[0] - <1 unit>.
+// Next from aRangeBegin[0] to aRangeBegin[1] - <1 unit>, etc.
+// The last range is from aRangeBegin[cRange-1] to <maximum_value>.
+// There will be a total of cRange + 1 ranges.
+//
+
+
+const ULONG CATEGORIZE_RANGE = 3;
+
+typedef struct tagRANGECATEGORIZE
+{
+ ULONG cRange;
+ [size_is(cRange)] PROPVARIANT * aRangeBegin;
+} RANGECATEGORIZE;
+
+typedef struct tagCATEGORIZATION
+{
+ ULONG ulCatType;
+
+ [ switch_type(ULONG), switch_is( ulCatType ) ] union
+ {
+ [ case(CATEGORIZE_CLUSTER) ] ULONG cClusters;
+ [ case(CATEGORIZE_BUCKETS) ] BUCKETCATEGORIZE bucket;
+ [ case(CATEGORIZE_RANGE) ] RANGECATEGORIZE range;
+ [ case(CATEGORIZE_UNIQUE) ] ;
+ };
+
+ COLUMNSET csColumns; // columns that can be bound to for categorization
+} CATEGORIZATION;
+
+typedef struct tagCATEGORIZATIONSET
+{
+ ULONG cCat; // Number of categorizations
+ [size_is(cCat)] CATEGORIZATION * aCat;
+
+} CATEGORIZATIONSET;
+
+
+// Some other stuff, moved here from winnot.h [mikese]
+
+typedef unsigned long OCCURRENCE;
+
+const OCCURRENCE occInvalid = 0xFFFFFFFF; // Invalid Occurrence
+const ULONG ulMaxRank = 1000; // Maximum Rank / Weight
+
+}
diff --git a/private/types2/query/rststa.idl b/private/types2/query/rststa.idl
new file mode 100644
index 000000000..f544ec32b
--- /dev/null
+++ b/private/types2/query/rststa.idl
@@ -0,0 +1,102 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1995.
+//
+// File: rststa.idl
+//
+// Contents: Cairo private OLE DB interface definition
+//
+// History: 27 Sep 1995 AlanW Created
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+//
+
+ LOCAL_INTERFACE(a7ac77ed-f8d7-11ce-a798-0020f8008024)
+
+interface IRowsetQueryStatus : IUnknown {
+
+//
+// Property which, when set, indicates that property value queries should
+// use the content index for resolution, even if it is not up-to-date.
+//
+cpp_quote("#define DBPROP_USECONTENTINDEX {0xA7AC77ED, 0xF8D7, 0x11CE, {0xA7,0x98,0x00,0x20,0xF8,0x00,0x80,0x25} }")
+
+
+//
+// Property which, when set, indicates that pruning of raw results of global
+// content index query should be deferred until *after* the top n results
+// have been determined. This can result in substantially faster queries, but
+// additional trimming is performed only on the top n raw results.
+//
+cpp_quote("#define DBPROP_DEFERNONINDEXEDTRIMMING {0xBEEEF560, 0xB999, 0x11CF, {0xB8,0x8A,0x00,0x00,0x4C,0x75,0x27,0x52} }")
+
+
+//
+// Property which, when set, indicates that the query should not be timed out
+// based on CPU usage.
+//
+cpp_quote("#define DBPROP_DONTTIMEOUTQUERY {0x7772AF44, 0xD788, 0x11CF, {0x8C,0x7D,0x00,0x20,0xAF,0x1D,0x74,0x0E} }")
+
+//
+// Status codes for IRowsetQueryStatus. These are divided
+// into several regions.
+//
+// Bits Effect
+// ----- -----------------------------------------------------
+// 00-02 Fill Status: How data is being updated, if at all.
+// 03-15 Query reliability: How accurate the result is
+// 16-31 Reserved
+//
+
+const ULONG STAT_BUSY = 0x0; // Operation in progress
+const ULONG STAT_ERROR = 0x1; // Failed due to error
+const ULONG STAT_DONE = 0x2; // Operation finished
+const ULONG STAT_REFRESH = 0x3; // Quiescent table being updated
+
+cpp_quote("#define QUERY_FILL_STATUS(x) (x & 0x7)")
+
+const ULONG STAT_PARTIAL_SCOPE = 0x8; // Some servers not available.
+ // Occurs for multi-volume
+ // queries.
+
+const ULONG STAT_NOISE_WORDS = 0x10; // Noise words replaced by
+ // wildcards. Occurs for
+ // content queries.
+
+const ULONG STAT_CONTENT_OUT_OF_DATE = 0x20; // Some documents modified
+ // but not yet content indexed.
+ // Content query may return
+ // incorrect results.
+
+const ULONG STAT_REFRESH_INCOMPLETE = 0x40; // Scope has been modified since
+ // query issued, but query is
+ // complex enough it is not
+ // possible to fit changes into
+ // table. Generally occurs when
+ // query contains content
+ // clause.
+
+const ULONG STAT_CONTENT_QUERY_INCOMPLETE = 0x80;
+ // Query issued was required to use
+ // content index, but the query was
+ // too complex for content index.
+ // Typical example: Regular expression
+ // query for "*foo*".
+ //
+
+const ULONG STAT_TIME_LIMIT_EXCEEDED = 0x100;
+ // Query executed longer than its
+ // permitted time. May be due
+ // to a complex query or due to
+ // returning many rows.
+
+cpp_quote("#define QUERY_RELIABILITY_STATUS(x) (x & 0xFFF8)")
+
+ HRESULT GetStatus(
+ [out] DWORD * pdwStatus
+ );
+
+}
diff --git a/private/types2/query/sources b/private/types2/query/sources
new file mode 100644
index 000000000..b3c0db3e0
--- /dev/null
+++ b/private/types2/query/sources
@@ -0,0 +1,20 @@
+#+---------------------------------------------------------------------------
+#
+# 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 = query.idl
+
+# Can't have multiple guys partying on ..\proxy\proxy\dlldata.c at once
+SYNCHRONIZE_BLOCK=1
+
+NTTARGETFILE0=filter.idl
+
diff --git a/private/types2/query/stemsink.idl b/private/types2/query/stemsink.idl
new file mode 100644
index 000000000..697267485
--- /dev/null
+++ b/private/types2/query/stemsink.idl
@@ -0,0 +1,25 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1995.
+//
+// File: stemsink.idl
+//
+// Contents: IStemSink interface definition
+//
+// History: 24-Apr-95 SitaramR Created
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+LOCAL_INTERFACE(fe77c330-7f42-11ce-be57-00aa0051fe20)
+interface IStemSink : IUnknown
+{
+ SCODE PutAltWord( [in, size_is(cwc)] WCHAR const * pwcInBuf,
+ [in] ULONG cwc );
+ SCODE PutWord( [in, size_is(cwc)] WCHAR const * pwcInBuf,
+ [in] ULONG cwc );
+}
+
+
diff --git a/private/types2/query/wbreak.idl b/private/types2/query/wbreak.idl
new file mode 100644
index 000000000..a40936f63
--- /dev/null
+++ b/private/types2/query/wbreak.idl
@@ -0,0 +1,54 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: WBreak.idl
+//
+// Contents: IWordBreaker interface definition
+//
+// History: 12-Aug-93 AmyA Created
+// 08-Apr-94 KyleP Sync to spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+LOCAL_INTERFACE(D53552C8-77E3-101A-B552-08002B33B0E6)
+interface IWordBreaker: IUnknown
+{
+ cpp_quote("#ifndef _tagTEXT_SOURCE_DEFINED")
+ struct tagTEXT_SOURCE;
+ typedef SCODE ( __stdcall * PFNFILLTEXTBUFFER) (struct tagTEXT_SOURCE * pTextSource);
+
+ typedef struct tagTEXT_SOURCE
+ {
+ PFNFILLTEXTBUFFER pfnFillTextBuffer;
+ WCHAR const * awcBuffer;
+ ULONG iEnd;
+ ULONG iCur;
+ } TEXT_SOURCE;
+ cpp_quote("#define _tagTEXT_SOURCE_DEFINED")
+ cpp_quote("#define _TEXT_SOURCE_DEFINED")
+ cpp_quote("#endif")
+
+ SCODE Init( [in] BOOL fQuery,
+ [in] ULONG ulMaxTokenSize,
+ [out] BOOL * pfLicense );
+
+ SCODE BreakText( [in] TEXT_SOURCE * pTextSource,
+ [in] IWordSink * pWordSink,
+ [in] IPhraseSink * pPhraseSink );
+
+ SCODE ComposePhrase( [in, size_is(cwcNoun)] WCHAR const * pwcNoun,
+ [in] ULONG cwcNoun,
+ [in, size_is(cwcModifier)] WCHAR const * pwcModifier,
+ [in] ULONG cwcModifier,
+ [in] ULONG ulAttachmentType,
+ [out, size_is(*pcwcPhrase)] WCHAR * pwcPhrase,
+ [in, out] ULONG * pcwcPhrase );
+
+ SCODE GetLicenseToUse( [out, string] WCHAR const ** ppwcsLicense );
+}
+
+
diff --git a/private/types2/query/wsink.idl b/private/types2/query/wsink.idl
new file mode 100644
index 000000000..6ab8550e7
--- /dev/null
+++ b/private/types2/query/wsink.idl
@@ -0,0 +1,49 @@
+//+-------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: WSink.idl
+//
+// Contents: IWordSink interface definition
+//
+// History: 10-Nov-93 AmyA Created
+// 08-Apr-94 KyleP Sync with spec
+//
+//--------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+LOCAL_INTERFACE(CC907054-C058-101A-B554-08002B33B0E6)
+interface IWordSink : IUnknown
+{
+ cpp_quote("#ifndef _tagWORDREP_BREAK_TYPE_DEFINED")
+ typedef enum tagWORDREP_BREAK_TYPE
+ {
+ WORDREP_BREAK_EOW = 0,
+ WORDREP_BREAK_EOS = 1,
+ WORDREP_BREAK_EOP = 2,
+ WORDREP_BREAK_EOC = 3
+ } WORDREP_BREAK_TYPE;
+ cpp_quote("#define _tagWORDREP_BREAK_TYPE_DEFINED")
+ cpp_quote("#define _WORDREP_BREAK_TYPE_DEFINED")
+ cpp_quote("#endif")
+
+ SCODE PutWord( [in] ULONG cwc,
+ [in, size_is(cwc)] WCHAR const * pwcInBuf,
+ [in] ULONG cwcSrcLen,
+ [in] ULONG cwcSrcPos);
+
+ SCODE PutAltWord( [in] ULONG cwc,
+ [in, size_is(cwc)] WCHAR const * pwcInBuf,
+ [in] ULONG cwcSrcLen,
+ [in] ULONG cwcSrcPos );
+
+ SCODE StartAltPhrase( void );
+
+ SCODE EndAltPhrase( void );
+
+ SCODE PutBreak( [in] WORDREP_BREAK_TYPE breakType );
+}
+
+
diff --git a/private/types2/sysmgmt/aldefs.idl b/private/types2/sysmgmt/aldefs.idl
new file mode 100644
index 000000000..c0a8b68fd
--- /dev/null
+++ b/private/types2/sysmgmt/aldefs.idl
@@ -0,0 +1,460 @@
+//+------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: aldefs.idl
+//
+// Contents: Alert system definitions.
+//
+// History: 01-Aug-94 MarkBl Created
+//
+// Notes: This is not a real interface. Merely a way to declare
+// alert system definitions.
+//
+//-------------------------------------------------------------------------
+
+[
+ local,
+// object,
+ uuid(0F061498-8D59-101B-A4BE-00000B65C31D),
+ pointer_default(unique)
+]
+interface AlertDefs
+{
+ //
+ // Alert severities.
+ //
+
+ // for mktyplib...
+
+ #define ALERTSEVERITY_INFORMATION 0x0004
+ #define ALERTSEVERITY_WARNING 0x0002
+ #define ALERTSEVERITY_ERROR 0x0001
+ #define ALERTSEVERITY_SEVERE_ERROR 0x0020
+ #define ALERTSEVERITY_FATAL_ERROR 0x0040
+ #define ALERTSEVERITY_NEGATIVE_MATCH 0x0080
+
+ // BUGBUG : TEMORARILLY define old severity manifests
+
+ #define ALERTSEVERITY_STATUS ALERTSEVERITY_INFORMATION
+ #define ALERTSEVERITY_NOTIFICATION ALERTSEVERITY_WARNING
+ #define ALERTSEVERITY_SEVERE ALERTSEVERITY_SEVERE_ERROR
+ #define ALERTSEVERITY_FATAL ALERTSEVERITY_FATAL_ERROR
+
+ // ... for the C compiler
+
+ cpp_quote("#define ALERTSEVERITY_INFORMATION 0x0004")
+ cpp_quote("#define ALERTSEVERITY_WARNING 0x0002")
+ cpp_quote("#define ALERTSEVERITY_ERROR 0x0001")
+ cpp_quote("#define ALERTSEVERITY_SEVERE_ERROR 0x0020")
+ cpp_quote("#define ALERTSEVERITY_FATAL_ERROR 0x0040")
+ cpp_quote("#define ALERTSEVERITY_NEGATIVE_MATCH 0x0080")
+
+ // BUGBUG : TEMORARILLY define old severity manifests
+
+ cpp_quote("#define ALERTSEVERITY_STATUS ALERTSEVERITY_INFORMATION")
+ cpp_quote("#define ALERTSEVERITY_NOTIFICATION ALERTSEVERITY_WARNING")
+ cpp_quote("#define ALERTSEVERITY_SEVERE ALERTSEVERITY_SEVERE_ERROR")
+ cpp_quote("#define ALERTSEVERITY_FATAL ALERTSEVERITY_FATAL_ERROR")
+
+
+ //
+ // BUGBUG : these don't need to be public.
+ //
+
+ // for mktyplib...
+
+ #define cAlertCategories (18)
+
+ // ... for the C compiler
+
+ cpp_quote("#define cAlertCategories (18)")
+
+
+ //
+ // Alert categories & subcategories
+ //
+
+ // for mktyplib...
+
+ #define Category_SystemEvents (0)
+ #define SystemEvents_Legacy (1)
+
+ #define Category_UserNotification (1)
+ #define UserNotification_PrintJobDone (1)
+ #define UserNotification_Fax (2)
+
+ #define Category_ApplicationNotification (2)
+ #define ApplicationNotification_Memory (1)
+
+ #define Category_ApplicationManagement (3)
+ #define ApplicationManagement_TokenGranted (1)
+ #define ApplicationManagement_TokenDenied (2)
+
+ #define Category_PrintersAndSharedResources (4)
+ #define PrintersAndSharedResources_Toner (1)
+ #define PrintersAndSharedResources_DeviceDriver (2)
+ #define PrintersAndSharedResources_Paper (3)
+
+ #define Category_SecurityManagement (5)
+ #define SecurityManagement_ACL (1)
+
+ #define Category_UserAccounts (6)
+ #define UserAccounts_Created (1)
+ #define UserAccounts_Deleted (2)
+
+ #define Category_Storage (7)
+ #define Storage_Replication (1)
+ #define Storage_Quotas (2)
+ #define Storage_OFS (3)
+ #define Storage_NTFS (4)
+ #define Storage_FAT (5)
+
+ #define Category_DistributedServices (8)
+ #define DistributedServices_DFS (1)
+ #define DistributedServices_DS (2)
+
+ #define Category_LAN (9)
+ #define LAN_Bridge (1)
+ #define LAN_Cabling (2)
+
+ #define Category_WAN (10)
+ #define WAN_Router (1)
+ #define WAN_Switch (2)
+ #define WAN_Telephony (3)
+
+ #define Category_Catalog (11)
+ #define Catalog_Catalog (1)
+
+ #define Category_BatchJob (12)
+ #define BatchJob_FailedToStart (1)
+ #define BatchJob_FailedTocomplete (2)
+
+ #define Category_Backup (13)
+ #define Backup_FailedToStart (1)
+ #define Backup_Started (2)
+ #define Backup_FailedToComplete (3)
+ #define Backup_Completed (4)
+
+ #define Category_SystemSoftware (14)
+ #define SystemSoftware_Kernel (1)
+ #define SystemSoftware_Drivers (2)
+
+ #define Category_SystemHardware (15)
+ #define SystemHardware_CD ROM (1)
+ #define SystemHardware_Memory (2)
+ #define SystemHardware_Bus (3)
+ #define SystemHardware_SCSI (4)
+ #define SystemHardware_IDE (5)
+ #define SystemHardware_NIC (6)
+
+ #define Category_SystemMonitoring (16)
+ #define SystemMonitoring_SYSMON (1)
+ #define SystemMonitoring_Bloodhound (2)
+
+ #define Category_HelpdeskAndDiagnostics (17)
+ #define HelpdeskAndDiagnostics_DrWatson (1)
+
+ #define Category_AlertNotify (18)
+ #define AlertNotify_ForwardIncomplete (1)
+ #define AlertNotify_RegistrationCanceled (2)
+
+
+ // ... for the C compiler
+
+ cpp_quote("#define Category_SystemEvents (0)")
+ cpp_quote("#define SystemEvents_Legacy (1)")
+
+ cpp_quote("#define Category_UserNotification (1)")
+ cpp_quote("#define UserNotification_PrintJobDone (1)")
+ cpp_quote("#define UserNotification_Fax (2)")
+
+ cpp_quote("#define Category_ApplicationNotification (2)")
+ cpp_quote("#define ApplicationNotification_Memory (1)")
+
+ cpp_quote("#define Category_ApplicationManagement (3)")
+ cpp_quote("#define ApplicationManagement_TokenGranted (1)")
+ cpp_quote("#define ApplicationManagement_TokenDenied (2)")
+
+ cpp_quote("#define Category_PrintersAndSharedResources (4)")
+ cpp_quote("#define PrintersAndSharedResources_Toner (1)")
+ cpp_quote("#define PrintersAndSharedResources_DeviceDriver (2)")
+ cpp_quote("#define PrintersAndSharedResources_Paper (3)")
+
+ cpp_quote("#define Category_SecurityManagement (5)")
+ cpp_quote("#define SecurityManagement_ACL (1)")
+
+ cpp_quote("#define Category_UserAccounts (6)")
+ cpp_quote("#define UserAccounts_Created (1)")
+ cpp_quote("#define UserAccounts_Deleted (2)")
+
+ cpp_quote("#define Category_Storage (7)")
+ cpp_quote("#define Storage_Replication (1)")
+ cpp_quote("#define Storage_Quotas (2)")
+ cpp_quote("#define Storage_OFS (3)")
+ cpp_quote("#define Storage_NTFS (4)")
+ cpp_quote("#define Storage_FAT (5)")
+
+ cpp_quote("#define Category_DistributedServices (8)")
+ cpp_quote("#define DistributedServices_DFS (1)")
+ cpp_quote("#define DistributedServices_DS (2)")
+
+ cpp_quote("#define Category_LAN (9)")
+ cpp_quote("#define LAN_Bridge (1)")
+ cpp_quote("#define LAN_Cabling (2)")
+
+ cpp_quote("#define Category_WAN (10)")
+ cpp_quote("#define WAN_Router (1)")
+ cpp_quote("#define WAN_Switch (2)")
+ cpp_quote("#define WAN_Telephony (3)")
+
+ cpp_quote("#define Category_Catalog (11)")
+ cpp_quote("#define Catalog_Catalog (1)")
+
+ cpp_quote("#define Category_BatchJob (12)")
+ cpp_quote("#define BatchJob_FailedToStart (1)")
+ cpp_quote("#define BatchJob_FailedTocomplete (2)")
+
+ cpp_quote("#define Category_Backup (13)")
+ cpp_quote("#define Backup_FailedToStart (1)")
+ cpp_quote("#define Backup_Started (2)")
+ cpp_quote("#define Backup_FailedToComplete (3)")
+ cpp_quote("#define Backup_Completed (4)")
+
+ cpp_quote("#define Category_SystemSoftware (14)")
+ cpp_quote("#define SystemSoftware_Kernel (1)")
+ cpp_quote("#define SystemSoftware_Drivers (2)")
+
+ cpp_quote("#define Category_SystemHardware (15)")
+ cpp_quote("#define SystemHardware_CD ROM (1)")
+ cpp_quote("#define SystemHardware_Memory (2)")
+ cpp_quote("#define SystemHardware_Bus (3)")
+ cpp_quote("#define SystemHardware_SCSI (4)")
+ cpp_quote("#define SystemHardware_IDE (5)")
+ cpp_quote("#define SystemHardware_NIC (6)")
+
+ cpp_quote("#define Category_SystemMonitoring (16)")
+ cpp_quote("#define SystemMonitoring_SYSMON (1)")
+ cpp_quote("#define SystemMonitoring_Bloodhound (2)")
+
+ cpp_quote("#define Category_HelpdeskAndDiagnostics (17)")
+ cpp_quote("#define HelpdeskAndDiagnostics_DrWatson (1)")
+
+ cpp_quote("#define Category_AlertNotify (18)")
+ cpp_quote("#define AlertNotify_ForwardIncomplete (1)")
+ cpp_quote("#define AlertNotify_RegistrationCanceled (2)")
+
+ //
+ // Alert Report property & method ids.
+ //
+ // Base system alert properties.
+ //
+
+ // for mktyplib...
+
+ #define DISPID_SystemAlertReport_Category (1001)
+ #define DISPID_SystemAlertReport_SubCategory (1002)
+ #define DISPID_SystemAlertReport_Severity (1003)
+ #define DISPID_SystemAlertReport_TitleText (1004)
+ #define DISPID_SystemAlertReport_DescriptionText (1005)
+ #define DISPID_SystemAlertReport_SourceDescription (1006)
+ #define DISPID_SystemAlertReport_SourceMachine (1007)
+ #define DISPID_SystemAlertReport_CreationTime (1008)
+ #define DISPID_SystemAlertReport_TitleMessageNumber (1009)
+ #define DISPID_SystemAlertReport_TitleMessageInserts (1010)
+ #define DISPID_SystemAlertReport_DescrMessageNumber (1011)
+ #define DISPID_SystemAlertReport_DescrMessageInserts (1012)
+ #define DISPID_SystemAlertReport_ComponentID (1013)
+ #define DISPID_SystemAlertReport_ReportClassID (1014)
+ #define DISPID_SystemAlertReport_BinaryData (1015)
+ #define DISPID_SystemAlertReport_SourceLanguageID (1016)
+ #define DISPID_SystemAlertReport_UniqueID (1017)
+ #define DISPID_SystemAlertReport_TargetCount (1018)
+ #define DISPID_SystemAlertReport_TakeActionDLL (1019)
+ #define DISPID_SystemAlertReport_Reserved (1200)
+ #define DISPID_SystemAlertReport_GetTitle (1501)
+ #define DISPID_SystemAlertReport_GetDescription (1502)
+ #define DISPID_SystemAlertReport_Send (1503)
+ #define DISPID_SystemAlertReport_Save (1504)
+ #define DISPID_SystemAlertReport_GetVersion (1505)
+ #define DISPID_SystemAlertReport_SetExpiration (1506)
+ #define DISPID_SystemAlertReport_GetExpiration (1507)
+ #define DISPID_SystemAlertReport_SetState (1508)
+ #define DISPID_SystemAlertReport_GetState (1509)
+ #define DISPID_SystemAlertReport_GetActions (1510)
+ #define DISPID_SystemAlertReport_PerformAction (1511)
+
+ // ... for the C compiler
+
+ cpp_quote("#define DISPID_SystemAlertReport_Category (1001)")
+ cpp_quote("#define DISPID_SystemAlertReport_SubCategory (1002)")
+ cpp_quote("#define DISPID_SystemAlertReport_Severity (1003)")
+ cpp_quote("#define DISPID_SystemAlertReport_TitleText (1004)")
+ cpp_quote("#define DISPID_SystemAlertReport_DescriptionText (1005)")
+ cpp_quote("#define DISPID_SystemAlertReport_SourceDescription (1006)")
+ cpp_quote("#define DISPID_SystemAlertReport_SourceMachine (1007)")
+ cpp_quote("#define DISPID_SystemAlertReport_CreationTime (1008)")
+ cpp_quote("#define DISPID_SystemAlertReport_TitleMessageNumber (1009)")
+ cpp_quote("#define DISPID_SystemAlertReport_TitleMessageInserts (1010)")
+ cpp_quote("#define DISPID_SystemAlertReport_DescrMessageNumber (1011)")
+ cpp_quote("#define DISPID_SystemAlertReport_DescrMessageInserts (1012)")
+ cpp_quote("#define DISPID_SystemAlertReport_ComponentID (1013)")
+ cpp_quote("#define DISPID_SystemAlertReport_ReportClassID (1014)")
+ cpp_quote("#define DISPID_SystemAlertReport_BinaryData (1015)")
+ cpp_quote("#define DISPID_SystemAlertReport_SourceLanguageID (1016)")
+ cpp_quote("#define DISPID_SystemAlertReport_UniqueID (1017)")
+ cpp_quote("#define DISPID_SystemAlertReport_TargetCount (1018)")
+ cpp_quote("#define DISPID_SystemAlertReport_TakeActionDLL (1019)")
+ cpp_quote("#define DISPID_SystemAlertReport_Reserved (1200)")
+ cpp_quote("#define DISPID_SystemAlertReport_GetTitle (1501)")
+ cpp_quote("#define DISPID_SystemAlertReport_GetDescription (1502)")
+ cpp_quote("#define DISPID_SystemAlertReport_Send (1503)")
+ cpp_quote("#define DISPID_SystemAlertReport_Save (1504)")
+ cpp_quote("#define DISPID_SystemAlertReport_GetVersion (1505)")
+ cpp_quote("#define DISPID_SystemAlertReport_SetExpiration (1506)")
+ cpp_quote("#define DISPID_SystemAlertReport_GetExpiration (1507)")
+ cpp_quote("#define DISPID_SystemAlertReport_SetState (1508)")
+ cpp_quote("#define DISPID_SystemAlertReport_GetState (1509)")
+ cpp_quote("#define DISPID_SystemAlertReport_GetActions (1510)")
+ cpp_quote("#define DISPID_SystemAlertReport_PerformAction (1511)")
+
+ //
+ // NT event report alert property ids.
+ //
+
+ // for mktyplib...
+
+ #define DISPID_NTEventReport_EventCategory (2)
+ #define DISPID_NTEventReport_LogFile (3)
+
+ // ... for the C compiler
+
+ cpp_quote("#define DISPID_NTEventReport_EventCategory (2)")
+ cpp_quote("#define DISPID_NTEventReport_LogFile (3)")
+
+ //
+ // Forwarding rules collection dispinterface property/method ids.
+ //
+
+ // for mktyplib...
+
+ #define DISPID_RULES_BASE (2)
+
+ #define DISPID_Rule_Collection (DISPID_RULES_BASE + 0)
+ #define DISPID_Rule_Collection_Count (DISPID_RULES_BASE + 1)
+ #define DISPID_Rule_Collection_Add (DISPID_RULES_BASE + 2)
+ #define DISPID_Rule_Collection_Item (DISPID_RULES_BASE + 3)
+ #define DISPID_Rule_Collection__NewEnum (DISPID_NEWENUM)
+
+ // ... for the C compiler
+
+ cpp_quote("#define DISPID_RULES_BASE (2)")
+
+ cpp_quote("#define DISPID_Rule_Collection (DISPID_RULES_BASE + 0)")
+ cpp_quote("#define DISPID_Rule_Collection_Count (DISPID_RULES_BASE + 1)")
+ cpp_quote("#define DISPID_Rule_Collection_Add (DISPID_RULES_BASE + 2)")
+ cpp_quote("#define DISPID_Rule_Collection_Item (DISPID_RULES_BASE + 3)")
+ cpp_quote("#define DISPID_Rule_Collection__NewEnum (DISPID_NEWENUM)")
+
+
+ //
+ // Forwarding rule object dispinterface property/method ids.
+ //
+
+ // for mktyplib...
+
+ #define DISPID_RULE_BASE (2)
+
+ #define DISPID_Rule_Category (DISPID_RULE_BASE + 0)
+ #define DISPID_Rule_Remove (DISPID_RULE_BASE + 1)
+ #define DISPID_SubRule_Collection_Count (DISPID_RULE_BASE + 2)
+ #define DISPID_SubRule_Collection_Add (DISPID_RULE_BASE + 3)
+ #define DISPID_SubRule_Collection_Item (DISPID_RULE_BASE + 4)
+ #define DISPID_SubRule_Collection__NewEnum (DISPID_RULE_BASE + 5)
+
+ // ... for the C compiler
+
+ cpp_quote("#define DISPID_RULE_BASE (2)")
+
+ cpp_quote("#define DISPID_Rule_Category (DISPID_RULE_BASE + 0)")
+ cpp_quote("#define DISPID_Rule_Remove (DISPID_RULE_BASE + 1)")
+ cpp_quote("#define DISPID_SubRule_Collection_Count (DISPID_RULE_BASE + 2)")
+ cpp_quote("#define DISPID_SubRule_Collection_Add (DISPID_RULE_BASE + 3)")
+ cpp_quote("#define DISPID_SubRule_Collection_Item (DISPID_RULE_BASE + 4)")
+ cpp_quote("#define DISPID_SubRule_Collection__NewEnum (DISPID_RULE_BASE + 5)")
+
+ //
+ // Forwarding sub rule object dispinterface property/method ids.
+ //
+
+ // for mktyplib...
+
+ #define DISPID_SUBRULE_BASE (2)
+
+ #define DISPID_SubRule_SubCategory (DISPID_SUBRULE_BASE + 0)
+ #define DISPID_SubRule_Severity (DISPID_SUBRULE_BASE + 1)
+
+ // ... for the C compiler
+
+ cpp_quote("#define DISPID_SUBRULE_BASE (2)")
+
+ cpp_quote("#define DISPID_SubRule_SubCategory (DISPID_SUBRULE_BASE + 0)")
+ cpp_quote("#define DISPID_SubRule_Severity (DISPID_SUBRULE_BASE + 1)")
+
+ //
+ // Alert recipient object dispinterface property/method ids.
+ //
+
+ // for mktyplib...
+
+ #define DISPID_REGISTRATION_BASE (2)
+
+ #define DISPID_Registration_ID (DISPID_REGISTRATION_BASE + 0)
+ #define DISPID_Registration_TargetPath (DISPID_REGISTRATION_BASE + 1)
+ #define DISPID_Registration_ForwardingRules (DISPID_REGISTRATION_BASE + 2)
+ #define DISPID_Registration_EnableForwarding (DISPID_REGISTRATION_BASE + 3)
+ #define DISPID_Registration__FirstErrorTime (DISPID_REGISTRATION_BASE + 4)
+ #define DISPID_Registration__ErrorCount (DISPID_REGISTRATION_BASE + 5)
+ #define DISPID_Registration__Target (DISPID_REGISTRATION_BASE + 6)
+ #define DISPID_Registration_Remove (DISPID_REGISTRATION_BASE + 7)
+
+ // ... for the C compiler
+
+ cpp_quote("#define DISPID_REGISTRATION_BASE (2)")
+
+ cpp_quote("#define DISPID_Registration_ID (DISPID_REGISTRATION_BASE + 0)")
+ cpp_quote("#define DISPID_Registration_TargetPath (DISPID_REGISTRATION_BASE + 1)")
+ cpp_quote("#define DISPID_Registration_ForwardingRules (DISPID_REGISTRATION_BASE + 2)")
+ cpp_quote("#define DISPID_Registration_EnableForwarding (DISPID_REGISTRATION_BASE + 3)")
+ cpp_quote("#define DISPID_Registration__FirstErrorTime (DISPID_REGISTRATION_BASE + 4)")
+ cpp_quote("#define DISPID_Registration__ErrorCount (DISPID_REGISTRATION_BASE + 5)")
+ cpp_quote("#define DISPID_Registration__Target (DISPID_REGISTRATION_BASE + 6)")
+ cpp_quote("#define DISPID_Registration_Remove (DISPID_REGISTRATION_BASE + 7)")
+
+ //
+ // Alert recipient collection dispinterface property/method ids.
+ //
+
+ // for mktyplib...
+
+ #define DISPID_REG_COLLECTION_BASE (2)
+
+ #define DISPID_Registration_Collection (DISPID_REG_COLLECTION_BASE + 0)
+ #define DISPID_Registration_Collection_Count (DISPID_REG_COLLECTION_BASE + 1)
+ #define DISPID_Registration_Collection_Add (DISPID_REG_COLLECTION_BASE + 2)
+ #define DISPID_Registration_Collection_Item (DISPID_REG_COLLECTION_BASE + 3)
+ #define DISPID_Registration_Collection__NewEnum (DISPID_NEWENUM)
+
+ // ... for the C compiler
+
+ cpp_quote("#define DISPID_REG_COLLECTION_BASE (2)")
+
+ cpp_quote("#define DISPID_Registration_Collection (DISPID_REG_COLLECTION_BASE + 0)")
+ cpp_quote("#define DISPID_Registration_Collection_Count (DISPID_REG_COLLECTION_BASE + 1)")
+ cpp_quote("#define DISPID_Registration_Collection_Add (DISPID_REG_COLLECTION_BASE + 2)")
+ cpp_quote("#define DISPID_Registration_Collection_Item (DISPID_REG_COLLECTION_BASE + 3)")
+ cpp_quote("#define DISPID_Registration_Collection__NewEnum (DISPID_NEWENUM)")
+
+ void DummyMethod(void);
+}
diff --git a/private/types2/sysmgmt/alrep.idl b/private/types2/sysmgmt/alrep.idl
new file mode 100644
index 000000000..62620a68b
--- /dev/null
+++ b/private/types2/sysmgmt/alrep.idl
@@ -0,0 +1,34 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: alrep.idl
+//
+// Contents: IAlertReport interface
+//
+// Classes:
+//
+// Functions:
+//
+// History: 13-Dec-93 markbl Created
+//
+//----------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+LOCAL_INTERFACE(4E81DFE8-4CA0-101A-8206-08002B2FC09B)
+interface IAlertReport : IUnknown
+{
+#ifndef APBU
+ import "unknwn.idl";
+#endif
+
+ HRESULT InitNew([ in ] DISPPARAMS * pdparams);
+
+ HRESULT GetReportData([ out ] DISPPARAMS * pdparams);
+
+ HRESULT GetTitle([ out ] BSTR * pbstrTitle);
+
+ HRESULT GetTextualDescription([ out ] BSTR * pbstrDescr);
+}
diff --git a/private/types2/sysmgmt/altrgt.idl b/private/types2/sysmgmt/altrgt.idl
new file mode 100644
index 000000000..e48bbb7cb
--- /dev/null
+++ b/private/types2/sysmgmt/altrgt.idl
@@ -0,0 +1,30 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1993.
+//
+// File: altrgt.idl
+//
+// Contents: IAlertTarget interface
+//
+// Classes:
+//
+// Functions:
+//
+// History: 03-Mar-95 markbl Created
+//
+//----------------------------------------------------------------------------
+
+#include "idlmulti.h"
+
+LOCAL_INTERFACE(589b61C0-54E6-11CE-94DD-00AA0051E40F)
+interface IAlertTarget : IUnknown
+{
+#ifndef APBU
+ import "unknwn.idl";
+#endif
+
+ HRESULT Report(
+ [ in ] ULONG cbReportSize,
+ [ size_is(cbReportSize)] BYTE * pbReport);
+}
diff --git a/private/types2/sysmgmt/makefile b/private/types2/sysmgmt/makefile
new file mode 100644
index 000000000..6ee4f43fa
--- /dev/null
+++ b/private/types2/sysmgmt/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/sysmgmt/sources b/private/types2/sysmgmt/sources
new file mode 100644
index 000000000..4f2ef48f7
--- /dev/null
+++ b/private/types2/sysmgmt/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 = sysmgmt.idl
+
+# Can't have multiple guys partying on ..\proxy\proxy\dlldata.c at once
+SYNCHRONIZE_BLOCK=1
+
diff --git a/private/types2/sysmgmt/sysmgmt.idl b/private/types2/sysmgmt/sysmgmt.idl
new file mode 100644
index 000000000..1e57df51d
--- /dev/null
+++ b/private/types2/sysmgmt/sysmgmt.idl
@@ -0,0 +1,29 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1993 - 1993.
+//
+// File: sysmgmt.idl
+//
+// Contents: master idl file for public interfaces
+//
+// History: 7-18-94 ErikGav Created
+//
+//----------------------------------------------------------------------------
+#include "idlmulti.h"
+
+#ifdef IMPORT_IDL_DEPENDENTS
+import "oaidl.idl";
+import "oleidl.idl";
+import "oleext.idl";
+#endif
+
+//----------------------------------------------------------------------------
+//
+// all sysmgmt interfaces
+//
+//----------------------------------------------------------------------------
+
+#include "aldefs.idl"
+#include "alrep.idl"
+#include "altrgt.idl"
diff --git a/private/types2/types2.inc b/private/types2/types2.inc
new file mode 100644
index 000000000..d155b354c
--- /dev/null
+++ b/private/types2/types2.inc
@@ -0,0 +1,30 @@
+
+#+---------------------------------------------------------------------------
+#
+# Microsoft Windows
+# Copyright (C) Microsoft Corporation, 1993 - 1993.
+#
+# File: sources
+#
+# History: 7-20-94 ErikGav First attempt at rationalizing all this
+# 8-02-94 LyleC Integrate into build.exe
+#
+#----------------------------------------------------------------------------
+
+C_DEFINES=$(C_DEFINES) -DIMPORT_IDL_DEPENDENTS
+
+SDKINC=$(BASEDIR)\public\sdk\inc
+
+PASS0_HEADERDIR=$(SDKINC)
+PASS0_SOURCEDIR=..\proxy\proxy
+MIDL_UUIDDIR=..\proxy\uuid
+
+MIDL_FLAGS=-DMIDL_PASS
+
+TARGETTYPE=NOTARGET
+TARGETPATH=obj
+
+INCLUDES=$(SDKINC)
+INCLUDES=$(INCLUDES);..\oleext
+INCLUDES=$(INCLUDES);..\h
+INCLUDES=$(INCLUDES);..\oledb