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 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 ); }