200 lines
7.3 KiB
C
200 lines
7.3 KiB
C
// iface.h : Definition of private interfaces
|
|
|
|
|
|
// {139D4EBC-DF7D-11d1-8661-00C04FD91972}
|
|
DEFINE_GUID(IID_IWorkerEvent, 0x139d4ebc, 0xdf7d, 0x11d1, 0x86, 0x61, 0x0, 0xc0, 0x4f, 0xd9, 0x19, 0x72);
|
|
|
|
// {EF4F9629-FC00-11d1-8677-00C04FD91972}
|
|
DEFINE_GUID(IID_IARPEvent, 0xef4f9629, 0xfc00, 0x11d1, 0x86, 0x77, 0x0, 0xc0, 0x4f, 0xd9, 0x19, 0x72);
|
|
|
|
// {C3E05A89-FBDB-11d1-8677-00C04FD91972}
|
|
DEFINE_GUID(IID_IARPSimpleProvider, 0xc3e05a89, 0xfbdb, 0x11d1, 0x86, 0x77, 0x0, 0xc0, 0x4f, 0xd9, 0x19, 0x72);
|
|
|
|
// {DB89BD6D-FCCD-11d1-8677-00C04FD91972}
|
|
DEFINE_GUID(IID_IAppData, 0xdb89bd6d, 0xfccd, 0x11d1, 0x86, 0x77, 0x0, 0xc0, 0x4f, 0xd9, 0x19, 0x72);
|
|
|
|
// {C2D3A971-FC11-11d1-8677-00C04FD91972}
|
|
DEFINE_GUID(IID_IMtxArray, 0xc2d3a971, 0xfc11, 0x11d1, 0x86, 0x77, 0x0, 0xc0, 0x4f, 0xd9, 0x19, 0x72);
|
|
|
|
// {AAEC4A45-FCCD-11d1-8677-00C04FD91972}
|
|
DEFINE_GUID(IID_IARPWorker, 0xaaec4a45, 0xfccd, 0x11d1, 0x86, 0x77, 0x0, 0xc0, 0x4f, 0xd9, 0x19, 0x72);
|
|
|
|
|
|
#ifndef __IFACE_H_
|
|
#define __IFACE_H_
|
|
|
|
#include "simpdata.h" // for OLEDBSimpleProviderListener and DBROWCOUNT et al
|
|
|
|
// IWorkerEvent
|
|
// This interface is used by CWorkerThread. /CWorkerThread calls
|
|
// IWorkerEvent methods to fire events.
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IWorkerEvent
|
|
|
|
DECLARE_INTERFACE_(IWorkerEvent, IUnknown)
|
|
{
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IWorkerEvent methods ***
|
|
STDMETHOD(FireOnDataReady) (THIS_ DBROWCOUNT iRow) PURE;
|
|
STDMETHOD(FireOnFinished) (THIS) PURE;
|
|
STDMETHOD(FireOnDatasetChanged) (THIS) PURE;
|
|
};
|
|
|
|
|
|
// IARPEvent
|
|
// This interface is implemented by CEventBroker, and called
|
|
// by anyone who wants to fire events to the databinding listeners.
|
|
|
|
#include "msdatsrc.h"
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IARPEvent
|
|
|
|
DECLARE_INTERFACE_(IARPEvent, IUnknown)
|
|
{
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IARPEvent methods ***
|
|
STDMETHOD(SetDataSourceListener)(THIS_ DataSourceListener *) PURE;
|
|
STDMETHOD(IsOSPListener) (THIS_ OLEDBSimpleProviderListener * posp) PURE;
|
|
STDMETHOD(SetOSPListener) (THIS_ OLEDBSimpleProviderListener * posp) PURE;
|
|
STDMETHOD(AboutToDeleteRows) (THIS_ DBROWCOUNT iRowStart, DBROWCOUNT cRows) PURE;
|
|
STDMETHOD(DeletedRows) (THIS_ DBROWCOUNT iRowStart, DBROWCOUNT cRows) PURE;
|
|
STDMETHOD(RowsAvailable) (THIS_ DBROWCOUNT iRowStart, DBROWCOUNT cRows) PURE;
|
|
STDMETHOD(RowChanged) (THIS_ DBROWCOUNT iRow) PURE;
|
|
STDMETHOD(LoadCompleted) (THIS) PURE;
|
|
STDMETHOD(LoadAborted) (THIS) PURE;
|
|
STDMETHOD(DataSetChanged) (THIS) PURE;
|
|
};
|
|
|
|
|
|
interface IMtxArray; // forward reference
|
|
|
|
|
|
// IAppData
|
|
// This provides an interface to an appdata object.
|
|
|
|
// commands for DoCommand()
|
|
typedef enum tagAPPCMD
|
|
{
|
|
APPCMD_UNKNOWN = 0,
|
|
APPCMD_INSTALL = 1, // "install"
|
|
APPCMD_UNINSTALL = 2, // "uninstall"
|
|
APPCMD_MODIFY = 3, // "modify"
|
|
APPCMD_REPAIR = 4, // "repair"
|
|
APPCMD_UPGRADE = 5, // "upgrade"
|
|
APPCMD_GENERICINSTALL = 6, // "generic install" (install from floppy or CD)
|
|
APPCMD_NTOPTIONS = 7, // "nt options"
|
|
APPCMD_WINUPDATE = 8, // "update windows"
|
|
APPCMD_ADDLATER = 9, // "add later"
|
|
} APPCMD;
|
|
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IAppData
|
|
|
|
DECLARE_INTERFACE_(IAppData, IUnknown)
|
|
{
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IAppData ***
|
|
STDMETHOD(DoCommand) (THIS_ HWND hwndParent, APPCMD appcmd) PURE;
|
|
STDMETHOD(ReadSlowData) (THIS) PURE;
|
|
STDMETHOD(GetVariant) (THIS_ DB_LORDINAL iField, VARIANT * pvar) PURE;
|
|
STDMETHOD(SetMtxParent) (THIS_ IMtxArray * pmtxParent) PURE;
|
|
STDMETHOD_(APPINFODATA *, GetDataPtr)(THIS) PURE;
|
|
STDMETHOD_(SLOWAPPINFO *, GetSlowDataPtr)(THIS) PURE;
|
|
STDMETHOD(GetFrequencyOfUse)(THIS_ LPWSTR pszBuf, int cchBuf) PURE;
|
|
STDMETHOD(SetNameDupe) (THIS_ BOOL bDupe) PURE;
|
|
};
|
|
|
|
|
|
// IMtxArray
|
|
// This provides an interface to the matrix array, which the
|
|
// handles the data for the data source object.
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IMtxArray
|
|
|
|
DECLARE_INTERFACE_(IMtxArray, IUnknown)
|
|
{
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IMtxArray methods ***
|
|
STDMETHOD(Initialize) (THIS_ DWORD dwEnum) PURE;
|
|
STDMETHOD(AddItem) (THIS_ IAppData * pappdata, DBROWCOUNT * piRow) PURE;
|
|
STDMETHOD(DeleteItems) (THIS_ DBROWCOUNT iRow, DBROWCOUNT cRows) PURE;
|
|
STDMETHOD(GetAppData) (THIS_ DBROWCOUNT iRow, IAppData ** ppappdata) PURE;
|
|
STDMETHOD(GetItemCount) (THIS_ DBROWCOUNT * pcItems) PURE;
|
|
STDMETHOD(GetFieldCount) (THIS_ DB_LORDINAL * pcFields) PURE;
|
|
STDMETHOD(GetFieldName) (THIS_ DB_LORDINAL iField, VARIANT * pvar) PURE;
|
|
STDMETHOD(GetSortIndex) (THIS_ DWORD * pdwSort) PURE;
|
|
STDMETHOD(SetSortCriteria) (THIS_ LPCWSTR pszSortField) PURE;
|
|
STDMETHOD(SortItems) (THIS) PURE;
|
|
STDMETHOD_(int,CompareItems)(THIS_ IAppData * pappdata1, IAppData * pappdata2) PURE;
|
|
STDMETHOD(MarkDupEntries) (void) PURE;
|
|
};
|
|
|
|
|
|
// IARPWorker
|
|
// This provides an interface to the matrix array's worker thread.
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IARPWorker
|
|
|
|
DECLARE_INTERFACE_(IARPWorker, IUnknown)
|
|
{
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IARPWorker methods ***
|
|
STDMETHOD(KillWT) (THIS) PURE;
|
|
STDMETHOD(StartWT) (THIS_ int iPriority) PURE;
|
|
STDMETHOD(SetListenerWT) (THIS_ IWorkerEvent * pwe) PURE;
|
|
};
|
|
|
|
|
|
// IARPSimpleProvider
|
|
// This provides an interface between ARP's OSP object and its
|
|
// main control.
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IARPSimpleProvider
|
|
|
|
DECLARE_INTERFACE_(IARPSimpleProvider, IUnknown)
|
|
{
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IARPSimpleProvider methods ***
|
|
STDMETHOD(Initialize) (THIS_ IShellAppManager * psam, IARPEvent * parpevt, DWORD dwEnum) PURE;
|
|
STDMETHOD(EnumerateItemsAsync) (THIS) PURE;
|
|
STDMETHOD(Recalculate) (THIS) PURE;
|
|
STDMETHOD(SetSortCriteria) (THIS_ BSTR bstrSortExpr) PURE;
|
|
STDMETHOD(SetFilter) (THIS_ BSTR bstrFilter) PURE;
|
|
STDMETHOD(Sort) (THIS) PURE;
|
|
STDMETHOD(DoCommand) (THIS_ HWND hwndParent, APPCMD appcmd, DBROWCOUNT iRow) PURE;
|
|
STDMETHOD(TransferData) (THIS_ IARPSimpleProvider * parposp) PURE;
|
|
};
|
|
|
|
|
|
#endif //__IFACE_H_
|