90 lines
3 KiB
C
90 lines
3 KiB
C
// ITGROUP.H: IITGroup interface declaration
|
|
|
|
#ifndef __ITGROUP_H__
|
|
#define __ITGROUP_H__
|
|
|
|
//#include <comdef.h>
|
|
|
|
// {B1A6CA91-A479-11d0-9741-00AA006117EB}
|
|
DEFINE_GUID(IID_IITGroup,
|
|
0xb1a6ca91, 0xa479, 0x11d0, 0x97, 0x41, 0x0, 0xaa, 0x0, 0x61, 0x17, 0xeb);
|
|
|
|
// {98258914-B6AB-11d0-9D92-00A0C90F55A5}
|
|
DEFINE_GUID(IID_IITGroupArray,
|
|
0x98258914, 0xb6ab, 0x11d0, 0x9d, 0x92, 0x0, 0xa0, 0xc9, 0xf, 0x55, 0xa5);
|
|
|
|
#ifdef ITPROXY
|
|
|
|
// {B1A6CA92-A479-11d0-9741-00AA006117EB}
|
|
DEFINE_GUID(CLSID_IITGroup,
|
|
0xb1a6ca92, 0xa479, 0x11d0, 0x97, 0x41, 0x0, 0xaa, 0x0, 0x61, 0x17, 0xeb);
|
|
|
|
// {98258915-B6AB-11d0-9D92-00A0C90F55A5}
|
|
DEFINE_GUID(CLSID_IITGroupArray,
|
|
0x98258915, 0xb6ab, 0x11d0, 0x9d, 0x92, 0x0, 0xa0, 0xc9, 0xf, 0x55, 0xa5);
|
|
|
|
#else
|
|
|
|
// {4662daab-d393-11d0-9a56-00c04fb68bf7} (changed from IT 3.0)
|
|
DEFINE_GUID(CLSID_IITGroupLocal,
|
|
0x4662daab, 0xd393, 0x11d0, 0x9a, 0x56, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
|
|
|
|
// {4662daac-d393-11d0-9a56-00c04fb68bf7} (changed from IT 3.0)
|
|
DEFINE_GUID(CLSID_IITGroupArrayLocal,
|
|
0x4662daac, 0xd393, 0x11d0, 0x9a, 0x56, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
|
|
|
|
#endif // ITPROXY
|
|
|
|
// Forward declarations
|
|
interface IITDatabase;
|
|
|
|
DECLARE_INTERFACE_(IITGroup, IUnknown)
|
|
{
|
|
|
|
STDMETHOD(Initiate)(DWORD lcGrpItem) PURE;
|
|
STDMETHOD(CreateFromBitVector)(LPBYTE lpBits, DWORD dwSize, DWORD dwItems) PURE;
|
|
STDMETHOD(CreateFromBuffer)(HANDLE h) PURE;
|
|
STDMETHOD(Open)(IITDatabase* lpITDB, LPCWSTR lpszMoniker) PURE;
|
|
STDMETHOD(Free)(void) PURE;
|
|
STDMETHOD(CopyOutBitVector)(IITGroup* pIITGroup) PURE;
|
|
STDMETHOD(AddItem)(DWORD dwGrpItem) PURE;
|
|
STDMETHOD(RemoveItem)(DWORD dwGrpItem) PURE;
|
|
STDMETHOD(FindTopicNum)(DWORD dwCount, LPDWORD lpdwOutputTopicNum) PURE;
|
|
STDMETHOD(FindOffset)(DWORD dwTopicNum, LPDWORD lpdwOutputOffset) PURE;
|
|
STDMETHOD(GetSize)(LPDWORD dwGrpSize) PURE;
|
|
STDMETHOD(Trim)(void) PURE;
|
|
STDMETHOD(And)(IITGroup* pIITGroup) PURE;
|
|
STDMETHOD(And)(IITGroup* pIITGroupIn, IITGroup* pIITGroupOut) PURE;
|
|
STDMETHOD(Or)(IITGroup* pIITGroup) PURE;
|
|
STDMETHOD(Or)(IITGroup* pIITGroupIn, IITGroup* pIITGroupOut) PURE;
|
|
STDMETHOD(Not)(void) PURE;
|
|
STDMETHOD(Not)(IITGroup* pIITGroupOut) PURE;
|
|
STDMETHOD(IsBitSet)(DWORD dwTopicNum) PURE;
|
|
STDMETHOD(CountBitsOn)(LPDWORD lpdwTotalNumBitsOn) PURE;
|
|
STDMETHOD(Clear)(void) PURE;
|
|
STDMETHOD_(LPVOID, GetLocalImageOfGroup)(void) PURE;
|
|
STDMETHOD(PutRemoteImageOfGroup)(LPVOID lpGroupIn) PURE;
|
|
|
|
};
|
|
|
|
typedef IITGroup* LPITGROUP;
|
|
|
|
#define ITGP_MAX_GROUPARRAY_ENTRIES 32 // maximum number of groups allowed in a collection
|
|
#define ITGP_ALL_ENTRIES (-1L)
|
|
#define ITGP_OPERATOR_OR 0
|
|
#define ITGP_OPERATOR_AND 1
|
|
|
|
DECLARE_INTERFACE_(IITGroupArray, IITGroup)
|
|
{
|
|
// composite group interface
|
|
STDMETHOD(InitEntry)(IITDatabase *piitDB, LPCWSTR lpwszName, LONG& lEntryNum) PURE;
|
|
STDMETHOD(InitEntry)(IITGroup *piitGroup, LONG& lEntryNum) PURE;
|
|
STDMETHOD(SetEntry)(LONG lEntryNum) PURE;
|
|
STDMETHOD(ClearEntry)(LONG lEntryNum) PURE;
|
|
STDMETHOD(SetDefaultOp)(LONG cDefaultOp) PURE;
|
|
STDMETHOD(ToString)(LPWSTR *ppwBuffer) PURE;
|
|
};
|
|
|
|
typedef IITGroupArray* LPIITGroupArray;
|
|
#endif // __ITGROUP_H__
|