Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
3.0 KiB

  1. // ITGROUP.H: IITGroup interface declaration
  2. #ifndef __ITGROUP_H__
  3. #define __ITGROUP_H__
  4. //#include <comdef.h>
  5. // {B1A6CA91-A479-11d0-9741-00AA006117EB}
  6. DEFINE_GUID(IID_IITGroup,
  7. 0xb1a6ca91, 0xa479, 0x11d0, 0x97, 0x41, 0x0, 0xaa, 0x0, 0x61, 0x17, 0xeb);
  8. // {98258914-B6AB-11d0-9D92-00A0C90F55A5}
  9. DEFINE_GUID(IID_IITGroupArray,
  10. 0x98258914, 0xb6ab, 0x11d0, 0x9d, 0x92, 0x0, 0xa0, 0xc9, 0xf, 0x55, 0xa5);
  11. #ifdef ITPROXY
  12. // {B1A6CA92-A479-11d0-9741-00AA006117EB}
  13. DEFINE_GUID(CLSID_IITGroup,
  14. 0xb1a6ca92, 0xa479, 0x11d0, 0x97, 0x41, 0x0, 0xaa, 0x0, 0x61, 0x17, 0xeb);
  15. // {98258915-B6AB-11d0-9D92-00A0C90F55A5}
  16. DEFINE_GUID(CLSID_IITGroupArray,
  17. 0x98258915, 0xb6ab, 0x11d0, 0x9d, 0x92, 0x0, 0xa0, 0xc9, 0xf, 0x55, 0xa5);
  18. #else
  19. // {4662daab-d393-11d0-9a56-00c04fb68bf7} (changed from IT 3.0)
  20. DEFINE_GUID(CLSID_IITGroupLocal,
  21. 0x4662daab, 0xd393, 0x11d0, 0x9a, 0x56, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
  22. // {4662daac-d393-11d0-9a56-00c04fb68bf7} (changed from IT 3.0)
  23. DEFINE_GUID(CLSID_IITGroupArrayLocal,
  24. 0x4662daac, 0xd393, 0x11d0, 0x9a, 0x56, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
  25. #endif // ITPROXY
  26. // Forward declarations
  27. interface IITDatabase;
  28. DECLARE_INTERFACE_(IITGroup, IUnknown)
  29. {
  30. STDMETHOD(Initiate)(DWORD lcGrpItem) PURE;
  31. STDMETHOD(CreateFromBitVector)(LPBYTE lpBits, DWORD dwSize, DWORD dwItems) PURE;
  32. STDMETHOD(CreateFromBuffer)(HANDLE h) PURE;
  33. STDMETHOD(Open)(IITDatabase* lpITDB, LPCWSTR lpszMoniker) PURE;
  34. STDMETHOD(Free)(void) PURE;
  35. STDMETHOD(CopyOutBitVector)(IITGroup* pIITGroup) PURE;
  36. STDMETHOD(AddItem)(DWORD dwGrpItem) PURE;
  37. STDMETHOD(RemoveItem)(DWORD dwGrpItem) PURE;
  38. STDMETHOD(FindTopicNum)(DWORD dwCount, LPDWORD lpdwOutputTopicNum) PURE;
  39. STDMETHOD(FindOffset)(DWORD dwTopicNum, LPDWORD lpdwOutputOffset) PURE;
  40. STDMETHOD(GetSize)(LPDWORD dwGrpSize) PURE;
  41. STDMETHOD(Trim)(void) PURE;
  42. STDMETHOD(And)(IITGroup* pIITGroup) PURE;
  43. STDMETHOD(And)(IITGroup* pIITGroupIn, IITGroup* pIITGroupOut) PURE;
  44. STDMETHOD(Or)(IITGroup* pIITGroup) PURE;
  45. STDMETHOD(Or)(IITGroup* pIITGroupIn, IITGroup* pIITGroupOut) PURE;
  46. STDMETHOD(Not)(void) PURE;
  47. STDMETHOD(Not)(IITGroup* pIITGroupOut) PURE;
  48. STDMETHOD(IsBitSet)(DWORD dwTopicNum) PURE;
  49. STDMETHOD(CountBitsOn)(LPDWORD lpdwTotalNumBitsOn) PURE;
  50. STDMETHOD(Clear)(void) PURE;
  51. STDMETHOD_(LPVOID, GetLocalImageOfGroup)(void) PURE;
  52. STDMETHOD(PutRemoteImageOfGroup)(LPVOID lpGroupIn) PURE;
  53. };
  54. typedef IITGroup* LPITGROUP;
  55. #define ITGP_MAX_GROUPARRAY_ENTRIES 32 // maximum number of groups allowed in a collection
  56. #define ITGP_ALL_ENTRIES (-1L)
  57. #define ITGP_OPERATOR_OR 0
  58. #define ITGP_OPERATOR_AND 1
  59. DECLARE_INTERFACE_(IITGroupArray, IITGroup)
  60. {
  61. // composite group interface
  62. STDMETHOD(InitEntry)(IITDatabase *piitDB, LPCWSTR lpwszName, LONG& lEntryNum) PURE;
  63. STDMETHOD(InitEntry)(IITGroup *piitGroup, LONG& lEntryNum) PURE;
  64. STDMETHOD(SetEntry)(LONG lEntryNum) PURE;
  65. STDMETHOD(ClearEntry)(LONG lEntryNum) PURE;
  66. STDMETHOD(SetDefaultOp)(LONG cDefaultOp) PURE;
  67. STDMETHOD(ToString)(LPWSTR *ppwBuffer) PURE;
  68. };
  69. typedef IITGroupArray* LPIITGroupArray;
  70. #endif // __ITGROUP_H__