windows-nt/Source/XPSP1/NT/public/sdk/inc/jetoledb.idl
2020-09-26 16:20:57 +08:00

110 lines
2.9 KiB
Plaintext

import "wtypes.idl";
import "oaidl.idl";
import "oledb.idl";
#include "idlmulti.h"
typedef DWORD DBOBJTYPE;
enum DBTYPE_ENUM {
DBJETOBJECT_TABLE = 0x0001,
DBJETOBJECT_INDEX = 0x0002,
DBJETOBJECT_VIEWS = 0x0004
};
typedef DWORD USERATTRIBUTESFLAGS;
enum USERATTRIBUTESFLAGS_ENUM {
DBJETOLEDB_USERATTRIBUTES_ALLCOLLECTIONS = 1,
DBJETOLEDB_USERATTRIBUTES_INHERITED = 2,
};
// IDBUserAttributes:
// This interface exposes the ability to talk to the Jet Properties interface
REMOTED_INTERFACE(cb9497b0-20b8-11d2-a4dc-00c04f991c78)
interface IDBUserAttributes : IUnknown {
HRESULT CreateObject(
[in] DBID* pParentID,
[in] DBID* pObjectID,
[in] DBOBJTYPE dwType);
HRESULT DeleteObject(
[in] DBID* pParentID,
[in] DBID* pObjectID);
HRESULT RenameObject(
[in] DBID* pParentID,
[in] DBID* pObjectID,
[in] LPWSTR pwszNewName);
HRESULT DeleteAttribute(
[in] DBID* pParentID,
[in] DBID* pObjectID,
[in] DBID* pSubObjectID,
[in] DBID* pAttributeID);
HRESULT SetAttributeValue(
[in] DBID* pParentID,
[in] DBID* pObjectID,
[in] DBID* pSubObjectID,
[in] DBID* pAttributeID,
[in] VARIANT vValue,
[in] ULONG grbit);
HRESULT GetAttributeValue(
[in] DBID* pParentID,
[in] DBID* pObjectID,
[in] DBID* pSubObjectID,
[in] DBID* pAttributeID,
[in, out] VARIANT* pvValue,
[in] ULONG grbit);
HRESULT GetAttributeRowset(
[in] IUnknown *pUnkOuter,
[in] WCHAR *pwszParentID,
[in] WCHAR *pwszObjectID,
[in] WCHAR *pwszSubObjectID,
[in] WCHAR *pwszAttributeID,
[in] ULONG dwFlags,
[in] ULONG cPropertySets,
[in, out, size_is(cPropertySets)] DBPROPSET *rgPropertySets,
[in] REFIID riid,
[out, iid_is(riid)] IUnknown **ppRowset);
}
// IDBUtility:
// This routine exposes compaction and repair routines from the
// DSO level. Users must have set a valid Userid/pw in their
// properties, just as in IDBDataSourceAdmin, to make this
// function properly.
// There is no Callback support in these routines, nor is
// there an exposed way to pass grbits - if you really need these,
// email <conorc> and plead your case
REMOTED_INTERFACE(2a4b6284-eeb4-11d1-a4d9-00c04f991c78)
interface IJetCompact : IUnknown {
HRESULT Compact
(
[in] ULONG cPropertySets,
[in, out, size_is(cPropertySets)] DBPROPSET rgPropertySets[]
);
}
// IIdle - used to expose the JetIdle inteface
// Appears off the session object in OLEDB
REMOTED_INTERFACE(f497cfc8-8ed8-11d1-9f09-00c04fc2c2e0)
interface IIdle : IUnknown
{
HRESULT Idle(
[in] ULONG dwFlags
);
}