windows-nt/Source/XPSP1/NT/net/ias/idl/datastore2.idl
2020-09-26 16:20:57 +08:00

257 lines
7.8 KiB
Plaintext

// datastore2.idl : IDL source for datastore2.dll
//
// This file will be processed by the MIDL tool to
// produce the type library (datastore2.tlb) and marshalling code.
import "oaidl.idl";
interface IDataStore2;
interface IDataStoreContainer;
interface IDataStoreObject;
interface IDataStoreProperty;
//////////////////////////////////////////////////////////////////////////
//
// Name: IDataStoreProperty
//
// What: Represents a single property of an abstract data store object.
//
// Purpose: Enable an SDO client to enumerate all the properties of an
// object.
//
//////////////////////////////////////////////////////////////////////////
[
object,
uuid(6BC096C9-0CE6-11D1-BAAE-00C04FC2E20D),
dual
]
interface IDataStoreProperty : IDispatch
{
[propget, id(1)]
HRESULT Name([out, retval] BSTR* pVal);
[propget, id(2)]
HRESULT Value([out, retval] VARIANT* pVal);
[propget, id(3)]
HRESULT ValueEx([out, retval] VARIANT* pVal);
[propget, id(4)]
HRESULT Owner([out, retval] IDataStoreObject** pVal);
};
//////////////////////////////////////////////////////////////////////////
//
// Name: IDataStoreObject
//
// What: Interface exported by all abstract data store objects.
//
// Purpose: Enable an SDO client to treat the underlying data store
// as an abstract entity
//
//////////////////////////////////////////////////////////////////////////
[
object,
uuid(6BC096C0-0CE6-11D1-BAAE-00C04FC2E20D),
dual,
pointer_default(unique)
]
interface IDataStoreObject : IDispatch
{
// Retrieves the object's name (unique within collection?)
[propget, id(1)]
HRESULT Name([out, retval] BSTR* pVal);
// Retrieves object's class (table)
[propget, id(2)]
HRESULT Class([out, retval] BSTR* pVal);
// Retrieves obect's unique identifier.
[propget, id(3)]
HRESULT GUID([out, retval] BSTR* pVal);
// Retrieves the object's container
[propget, id(4)]
HRESULT Container([out, retval] IDataStoreContainer** pVal);
// Multi-valued items are retrieved as safearrays
[id(5)]
HRESULT GetValue([in] BSTR bstrName, [out, retval] VARIANT* pVal);
// All items are retrieved as safearrays
[id(6)]
HRESULT GetValueEx([in] BSTR bstrName, [out, retval] VARIANT* pVal);
// Multi-valued items are put as safearrays
[id(7)]
HRESULT PutValue([in] BSTR bstrName, [in] VARIANT* pVal);
// Update the underlying data store with the current state of
// the data store object's interanl buffer
[id(8)]
HRESULT Update();
// Restore the state of the data store object to its last
// persisted state.
[id(9)]
HRESULT Restore();
// The number of properties associated with the object.
[propget, id(10)]
HRESULT Count([out, retval] long* pVal);
// Retrieves the IDataStoreProperty representation of a property.
[id(DISPID_VALUE)]
HRESULT Item([in] BSTR bstrName,
[out, retval] IDataStoreProperty** pVal);
// Returns an IEnumVARIANT that enumerates all the properties.
[propget, restricted, id(DISPID_NEWENUM)]
HRESULT _NewEnum([out, retval] IUnknown** pVal);
};
//////////////////////////////////////////////////////////////////////////
//
// Name: IDataStoreContainer
//
// What: Interface exported by all abstract data store containers.
//
// Purpose: Enable an SDO collection to treat the underlying data store
// collection (container) as an abstract entity
//
//////////////////////////////////////////////////////////////////////////
[
uuid(6BC096C1-0CE6-11D1-BAAE-00C04FC2E20D),
dual,
pointer_default(unique)
]
interface IDataStoreContainer : IDispatch
{
[propget, restricted, id(DISPID_NEWENUM)]
HRESULT _NewEnum([out, retval] IUnknown** pVal);
// Retrieves the specified item
[id(DISPID_VALUE)]
HRESULT Item([in] BSTR bstrName,
[out, retval] IDataStoreObject** ppObject);
[propget, id(1)]
HRESULT Count([out, retval] long *pVal);
// Create an object of the "class" type supported by this container
[id(2)]
HRESULT Create([in] BSTR bstrClass,
[in] BSTR bstrName,
[out, retval]IDataStoreObject** ppObject);
// Add an object of "class" type. If bstrNewName is non-null, the
// object is renamed.
[id(3)]
HRESULT MoveHere([in] IDataStoreObject* pObject, [in] BSTR bstrNewName);
// Removes the specified item
[id(4)]
HRESULT Remove([in] BSTR bstrClass, [in] BSTR bstrName);
};
//////////////////////////////////////////////////////////////////////////
//
// Name: IDataStore
//
// What: Interface on top of an abstract data store.
//
// Purpose: Enable an SDO client to treat the underlying data store
// as an abstract entity
//
//////////////////////////////////////////////////////////////////////////
[
object,
uuid(6BC096C2-0CE6-11D1-BAAE-00C04FC2E20D),
dual,
pointer_default(unique)
]
interface IDataStore2 : IDispatch
{
// Get the root object.
[propget]
HRESULT Root([out, retval] IDataStoreObject** ppObject);
// Initialize the data store.
HRESULT Initialize(
[in] BSTR bstrDSName, // Full UNC name of the data source
[in] BSTR bstrUserName, // Can be NULL
[in] BSTR bstrPassword // Can be NULL
);
// Retrieve a specific object from the datastore.
// The path is implementation specific.
HRESULT OpenObject(
[in] BSTR bstrPath,
[out, retval] IDataStoreObject** ppObject
);
// Shutdown the data store
HRESULT Shutdown();
};
[
object,
uuid(F42CFA19-EA06-4EB6-9891-D583F0CE46FC),
oleautomation
]
interface IAttributeDictionary : IUnknown
{
HRESULT GetDictionary(
[in] BSTR bstrPath,
[out, retval] VARIANT* pVal
);
};
//////////////////////////////////////////////////////////////////////////
//
// Name: IIASNetshJetHelper
//
// What: Interface used by aaaamon.dll (netshell aaaa) to work with Jet
//
// Purpose: That object should always be in a 32bits process to access
// The Jet provider properly
//
//////////////////////////////////////////////////////////////////////////
[
object,
uuid(20290BE7-A2AE-42C2-8883-FA09973ED3A5),
oleautomation,
]
interface IIASNetshJetHelper : IUnknown
{
// Open the Jet 4 DB
HRESULT OpenJetDatabase(
[in] BSTR Path,
[in] VARIANT_BOOL ReadOnly
);
// Execute a SQL function and return the result (LONG)
HRESULT ExecuteSQLFunction(
[in] BSTR Command,
[out, retval] LONG* Result
);
// Execute a SQL Command.
HRESULT ExecuteSQLCommand(
[in] BSTR Command
);
// Create an empty Jet 4 DB
HRESULT CreateJetDatabase(
[in] BSTR Path
);
// Close the currently opened DB
HRESULT CloseJetDatabase();
// Upgrade the DB
HRESULT UpgradeDatabase();
};