windows-nt/Source/XPSP1/NT/enduser/stuff/itircl/inc/itww.h
2020-09-26 16:20:57 +08:00

72 lines
2.4 KiB
C

// ITWW.H: IITWordWheel interface declaration
#ifndef __ITWW_H__
#define __ITWW_H__
// {8fa0d5a4-dedf-11d0-9a61-00c04fb68bf7} (changed from IT 3.0)
DEFINE_GUID(IID_IITWordWheel,
0x8fa0d5a4, 0xdedf, 0x11d0, 0x9a, 0x61, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
#ifdef ITPROXY
// {D73725C2-8C12-11d0-A84E-00AA006C7D01}
DEFINE_GUID(CLSID_IITWordWheel,
0xd73725c2, 0x8c12, 0x11d0, 0xa8, 0x4e, 0x0, 0xaa, 0x0, 0x6c, 0x7d, 0x1);
#else
// {4662daa8-d393-11d0-9a56-00c04fb68bf7} (changed from IT 3.0)
DEFINE_GUID(CLSID_IITWordWheelLocal,
0x4662daa8, 0xd393, 0x11d0, 0x9a, 0x56, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
#endif // ITPROXY
// Word-wheel open flags
#define ITWW_OPEN_CONNECT 0x00000000 // connect to server on open (the default)
#define ITWW_OPEN_NOCONNECT 0x00000001 // don't connect to server on open
// Constants for IITWordWheel::Lookup.
#define ITWW_CBKEY_MAX 1024 // Max size of keys allowed in Word Wheels.
// Forward declarations
interface IITDatabase;
interface IITResultSet;
interface IITGroup;
interface IITPropList;
interface IITQuery;
DECLARE_INTERFACE_(IITWordWheel, IUnknown)
{
STDMETHOD(Open)(IITDatabase* lpITDB, LPCWSTR lpszMoniker, DWORD dwFlags=0) PURE;
STDMETHOD(Close)(void) PURE;
// Returns the code page ID and locale ID that the word wheel was built and
// sorted with.
STDMETHOD(GetLocaleInfo)(DWORD *pdwCodePageID, LCID *plcid) PURE;
// Returns in *pdwObjInstance the ID of the external sort instance being used by
// this word wheel. The instance ID can be passed to IITDatabase::GetObject to
// to obtain an interface pointer on the instantiated instance. If the word
// wheel doesn't use external sorting, then IITDB_OBJINST_NULL.
STDMETHOD(GetSorterInstance)(DWORD *pdwObjInstance) PURE;
STDMETHOD(Count)(LONG *pcEntries) PURE;
// To be safe, the length of lpvKeyBuf should always be at least ITWW_CBKEY_MAX.
STDMETHOD(Lookup)(LONG lEntry, LPVOID lpvKeyBuf, DWORD cbKeyBuf) PURE;
STDMETHOD(Lookup)(LONG lEntry, IITResultSet* lpITResult, LONG cEntries) PURE;
STDMETHOD(Lookup)(LPCVOID lpcvPrefix, BOOL fExactMatch, LONG *plEntry) PURE;
STDMETHOD(SetGroup)(IITGroup* piitGroup) PURE;
STDMETHOD(GetGroup)(IITGroup** ppiitGroup) PURE;
STDMETHOD(GetDataCount)(LONG lEntry, DWORD *pdwCount) PURE;
STDMETHOD(GetData)(LONG lEntry, IITResultSet* lpITResult) PURE;
STDMETHOD(GetDataColumns)(IITResultSet* pRS) PURE;
};
typedef IITWordWheel* LPITWORDWHEEL;
#endif // __ITWW_H__