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.

167 lines
5.1 KiB

  1. /************************************************************************
  2. *
  3. * ITCC.H
  4. *
  5. * Copyright (c) Microsoft Corporation 1993 - 1997
  6. * All rights reserved.
  7. *
  8. *************************************************************************
  9. *
  10. * Module intent:
  11. *
  12. * This module contains the API (Application Programming Interface)
  13. * for creating and updating ITIR objects and storages
  14. *
  15. *************************************************************************
  16. *
  17. * Current owner: JohnRush
  18. *
  19. ************************************************************************/
  20. #ifndef _ITCC_H // {
  21. #define _ITCC_H
  22. #include "itpropl.h"
  23. #include "itdb.h"
  24. // Document property macros
  25. #define STDPROP_UID 1
  26. #define STDPROP_TITLE 2
  27. #define STDPROP_USERDATA 3
  28. #define STDPROP_KEY 4
  29. #define STDPROP_SORTKEY 100
  30. #define STDPROP_DISPLAYKEY 101
  31. #define STDPROP_SORTORDINAL 102
  32. #define STDPROP_INDEX_TEXT 200
  33. #define STDPROP_INDEX_VFLD 201
  34. #define STDPROP_INDEX_DTYPE 202
  35. #define STDPROP_INDEX_LENGTH 203
  36. #define STDPROP_INDEX_BREAK 204
  37. #define STDPROP_INDEX_TERM 210
  38. #define STDPROP_INDEX_TERM_RAW_LENGTH 211
  39. #define STDPROP_USERPROP_BASE 0x00010000
  40. #define STDPROP_USERPROP_MAX 0x7FFFFFFF
  41. // Property destinations for word wheels
  42. #define SZ_WWDEST_GLOBAL L"GLOBAL"
  43. #define SZ_WWDEST_KEY L"KEY"
  44. #define SZ_WWDEST_OCC L"OCC"
  45. // {4662daa2-d393-11d0-9a56-00c04fb68bf7} (changed from IT 3.0)
  46. DEFINE_GUID(CLSID_IITCmdInt,
  47. 0x4662daa2, 0xd393, 0x11d0, 0x9a, 0x56, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
  48. // {4662daa3-d393-11d0-9a56-00c04fb68bf7} (changed from IT 3.0)
  49. DEFINE_GUID(CLSID_IITSvMgr,
  50. 0x4662daa3, 0xd393, 0x11d0, 0x9a, 0x56, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
  51. // {4CF34C30-9BF9-11d0-8764-00A0C913F764}
  52. DEFINE_GUID(IID_IITCmdInt,
  53. 0x4cf34c30, 0x9bf9, 0x11d0, 0x87, 0x64, 0x0, 0xa0, 0xc9, 0x13, 0xf7, 0x64);
  54. // {4E7DA031-9C11-11d0-8764-00A0C913F764}
  55. DEFINE_GUID(IID_IITSvMgr,
  56. 0x4e7da031, 0x9c11, 0x11d0, 0x87, 0x64, 0x0, 0xa0, 0xc9, 0x13, 0xf7, 0x64);
  57. // {4662daa5-d393-11d0-9a56-00c04fb68bf7} (changed from IT 3.0)
  58. DEFINE_GUID(CLSID_IITWordWheelUpdate,
  59. 0x4662daa5, 0xd393, 0x11d0, 0x9a, 0x56, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
  60. // {8fa0d5a5-dedf-11d0-9a61-00c04fb68bf7} (changed from IT 3.0)
  61. DEFINE_GUID(IID_IITBuildCollect,
  62. 0x8fa0d5a5, 0xdedf, 0x11d0, 0x9a, 0x61, 0x0, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
  63. // {4662daa4-d393-11d0-9a56-00c04fb68bf7} (changed from IT 3.0)
  64. DEFINE_GUID(CLSID_IITGroupUpdate,
  65. 0x4662daa4, 0xd393, 0x11d0, 0x9a, 0x56, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
  66. // {8fa0d5aa-dedf-11d0-9a61-00c04fb68bf7}
  67. DEFINE_GUID(CLSID_IITIndexBuild,
  68. 0x8fa0d5aa, 0xdedf, 0x11d0, 0x9a, 0x61, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
  69. // {8fa0d5ab-dedf-11d0-9a61-00c04fb68bf7}
  70. DEFINE_GUID(CLSID_IITWWFilterBuild,
  71. 0x8fa0d5ab, 0xdedf, 0x11d0, 0x9a, 0x61, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
  72. #pragma pack( push, SPECIAL_VARARG_1 )
  73. #pragma pack(4)
  74. struct VARARG
  75. {
  76. DWORD dwArgc;
  77. void *Argv[20];
  78. };
  79. #pragma pack( pop, SPECIAL_VARARG_1 )
  80. // Document class
  81. class CSvDoc
  82. {
  83. public:
  84. virtual HRESULT WINAPI ResetDocTemplate (void) PURE;
  85. virtual HRESULT WINAPI AddObjectEntry(LPCWSTR lpObjName, IITPropList *pPL) PURE;
  86. virtual HRESULT WINAPI AddObjectEntry
  87. (LPCWSTR lpObjName, LPCWSTR szPropDest, IITPropList *pPL) PURE;
  88. };
  89. // Service manager class
  90. DECLARE_INTERFACE_(IITSvMgr, IUnknown)
  91. {
  92. STDMETHOD(Initiate)(IStorage *pistgStorage, IStream *piistmLog) PURE;
  93. STDMETHOD(Dispose)(void) PURE;
  94. STDMETHOD(Build)(void) PURE;
  95. STDMETHOD(SetPropDest)
  96. (LPCWSTR szObjectName, LPCWSTR szDestination, IITPropList *pPL) PURE;
  97. STDMETHOD(CreateBuildObject)(LPCWSTR pwstrObjectName, REFCLSID refclsid) PURE;
  98. STDMETHOD(GetBuildObject)
  99. (LPCWSTR pwstrObjectName, REFIID refiid, void **pInterface) PURE;
  100. STDMETHOD(CreateDocTemplate)(CSvDoc **ppDoc) PURE;
  101. STDMETHOD(FreeDocTemplate)(CSvDoc *pDoc) PURE;
  102. STDMETHOD(AddDocument)(CSvDoc *pDoc) PURE;
  103. STDMETHOD(HashString)(IN LPCWSTR lpwstr, OUT DWORD *pdwHash) PURE;
  104. };
  105. // Command Interpreter Interface
  106. DECLARE_INTERFACE_(IITCmdInt, IUnknown)
  107. {
  108. STDMETHOD(Initiate)(IITSvMgr *piitsv) PURE;
  109. STDMETHOD(Dispose)(void) PURE;
  110. STDMETHOD(LoadFromStream)(IStream *pMVPStream, IStream *pLogStream) PURE;
  111. };
  112. typedef struct tagHelperInfo
  113. {
  114. UINT CodePage;
  115. LCID lcid;
  116. DWORD argc1;
  117. DWORD *argv1;
  118. DWORD argc2;
  119. LPWSTR *argv2;
  120. } HelperInfo, *PHelperInfo;
  121. // This structure is sent to IITBuildCollect::SetBuildStats
  122. typedef struct tagIITBOCI
  123. {
  124. DWORD dwSize; // Must be set to size of this structure
  125. DWORD dwMaxUID; // The highest uid authored for this title
  126. } ITBuildObjectControlInfo;
  127. DECLARE_INTERFACE_(IITBuildCollect, IUnknown)
  128. {
  129. STDMETHOD(SetConfigInfo)(IITDatabase *piitdb, VARARG vaParams) PURE;
  130. STDMETHOD(InitHelperInstance)(DWORD dwHelperObjInstance,
  131. IITDatabase *pITDatabase, DWORD dwCodePage,
  132. LCID lcid, VARARG vaDword, VARARG vaString) PURE;
  133. STDMETHOD(SetEntry)(LPCWSTR szDest, IITPropList *pPropList) PURE;
  134. STDMETHOD(Close)(void) PURE;
  135. STDMETHOD(GetTypeString)(LPWSTR wstrType, DWORD *pLength) PURE;
  136. STDMETHOD(SetBuildStats)(ITBuildObjectControlInfo &itboci) PURE;
  137. };
  138. #endif // _ITCC_H }