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

168 lines
5.1 KiB
C++

/************************************************************************
*
* ITCC.H
*
* Copyright (c) Microsoft Corporation 1993 - 1997
* All rights reserved.
*
*************************************************************************
*
* Module intent:
*
* This module contains the API (Application Programming Interface)
* for creating and updating ITIR objects and storages
*
*************************************************************************
*
* Current owner: JohnRush
*
************************************************************************/
#ifndef _ITCC_H // {
#define _ITCC_H
#include "itpropl.h"
#include "itdb.h"
// Document property macros
#define STDPROP_UID 1
#define STDPROP_TITLE 2
#define STDPROP_USERDATA 3
#define STDPROP_KEY 4
#define STDPROP_SORTKEY 100
#define STDPROP_DISPLAYKEY 101
#define STDPROP_SORTORDINAL 102
#define STDPROP_INDEX_TEXT 200
#define STDPROP_INDEX_VFLD 201
#define STDPROP_INDEX_DTYPE 202
#define STDPROP_INDEX_LENGTH 203
#define STDPROP_INDEX_BREAK 204
#define STDPROP_INDEX_TERM 210
#define STDPROP_INDEX_TERM_RAW_LENGTH 211
#define STDPROP_USERPROP_BASE 0x00010000
#define STDPROP_USERPROP_MAX 0x7FFFFFFF
// Property destinations for word wheels
#define SZ_WWDEST_GLOBAL L"GLOBAL"
#define SZ_WWDEST_KEY L"KEY"
#define SZ_WWDEST_OCC L"OCC"
// {4662daa2-d393-11d0-9a56-00c04fb68bf7} (changed from IT 3.0)
DEFINE_GUID(CLSID_IITCmdInt,
0x4662daa2, 0xd393, 0x11d0, 0x9a, 0x56, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
// {4662daa3-d393-11d0-9a56-00c04fb68bf7} (changed from IT 3.0)
DEFINE_GUID(CLSID_IITSvMgr,
0x4662daa3, 0xd393, 0x11d0, 0x9a, 0x56, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
// {4CF34C30-9BF9-11d0-8764-00A0C913F764}
DEFINE_GUID(IID_IITCmdInt,
0x4cf34c30, 0x9bf9, 0x11d0, 0x87, 0x64, 0x0, 0xa0, 0xc9, 0x13, 0xf7, 0x64);
// {4E7DA031-9C11-11d0-8764-00A0C913F764}
DEFINE_GUID(IID_IITSvMgr,
0x4e7da031, 0x9c11, 0x11d0, 0x87, 0x64, 0x0, 0xa0, 0xc9, 0x13, 0xf7, 0x64);
// {4662daa5-d393-11d0-9a56-00c04fb68bf7} (changed from IT 3.0)
DEFINE_GUID(CLSID_IITWordWheelUpdate,
0x4662daa5, 0xd393, 0x11d0, 0x9a, 0x56, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
// {8fa0d5a5-dedf-11d0-9a61-00c04fb68bf7} (changed from IT 3.0)
DEFINE_GUID(IID_IITBuildCollect,
0x8fa0d5a5, 0xdedf, 0x11d0, 0x9a, 0x61, 0x0, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
// {4662daa4-d393-11d0-9a56-00c04fb68bf7} (changed from IT 3.0)
DEFINE_GUID(CLSID_IITGroupUpdate,
0x4662daa4, 0xd393, 0x11d0, 0x9a, 0x56, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
// {8fa0d5aa-dedf-11d0-9a61-00c04fb68bf7}
DEFINE_GUID(CLSID_IITIndexBuild,
0x8fa0d5aa, 0xdedf, 0x11d0, 0x9a, 0x61, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
// {8fa0d5ab-dedf-11d0-9a61-00c04fb68bf7}
DEFINE_GUID(CLSID_IITWWFilterBuild,
0x8fa0d5ab, 0xdedf, 0x11d0, 0x9a, 0x61, 0x00, 0xc0, 0x4f, 0xb6, 0x8b, 0xf7);
#pragma pack( push, SPECIAL_VARARG_1 )
#pragma pack(4)
struct VARARG
{
DWORD dwArgc;
void *Argv[20];
};
#pragma pack( pop, SPECIAL_VARARG_1 )
// Document class
class CSvDoc
{
public:
virtual HRESULT WINAPI ResetDocTemplate (void) PURE;
virtual HRESULT WINAPI AddObjectEntry(LPCWSTR lpObjName, IITPropList *pPL) PURE;
virtual HRESULT WINAPI AddObjectEntry
(LPCWSTR lpObjName, LPCWSTR szPropDest, IITPropList *pPL) PURE;
};
// Service manager class
DECLARE_INTERFACE_(IITSvMgr, IUnknown)
{
STDMETHOD(Initiate)(IStorage *pistgStorage, IStream *piistmLog) PURE;
STDMETHOD(Dispose)(void) PURE;
STDMETHOD(Build)(void) PURE;
STDMETHOD(SetPropDest)
(LPCWSTR szObjectName, LPCWSTR szDestination, IITPropList *pPL) PURE;
STDMETHOD(CreateBuildObject)(LPCWSTR pwstrObjectName, REFCLSID refclsid) PURE;
STDMETHOD(GetBuildObject)
(LPCWSTR pwstrObjectName, REFIID refiid, void **pInterface) PURE;
STDMETHOD(CreateDocTemplate)(CSvDoc **ppDoc) PURE;
STDMETHOD(FreeDocTemplate)(CSvDoc *pDoc) PURE;
STDMETHOD(AddDocument)(CSvDoc *pDoc) PURE;
STDMETHOD(HashString)(IN LPCWSTR lpwstr, OUT DWORD *pdwHash) PURE;
};
// Command Interpreter Interface
DECLARE_INTERFACE_(IITCmdInt, IUnknown)
{
STDMETHOD(Initiate)(IITSvMgr *piitsv) PURE;
STDMETHOD(Dispose)(void) PURE;
STDMETHOD(LoadFromStream)(IStream *pMVPStream, IStream *pLogStream) PURE;
};
typedef struct tagHelperInfo
{
UINT CodePage;
LCID lcid;
DWORD argc1;
DWORD *argv1;
DWORD argc2;
LPWSTR *argv2;
} HelperInfo, *PHelperInfo;
// This structure is sent to IITBuildCollect::SetBuildStats
typedef struct tagIITBOCI
{
DWORD dwSize; // Must be set to size of this structure
DWORD dwMaxUID; // The highest uid authored for this title
} ITBuildObjectControlInfo;
DECLARE_INTERFACE_(IITBuildCollect, IUnknown)
{
STDMETHOD(SetConfigInfo)(IITDatabase *piitdb, VARARG vaParams) PURE;
STDMETHOD(InitHelperInstance)(DWORD dwHelperObjInstance,
IITDatabase *pITDatabase, DWORD dwCodePage,
LCID lcid, VARARG vaDword, VARARG vaString) PURE;
STDMETHOD(SetEntry)(LPCWSTR szDest, IITPropList *pPropList) PURE;
STDMETHOD(Close)(void) PURE;
STDMETHOD(GetTypeString)(LPWSTR wstrType, DWORD *pLength) PURE;
STDMETHOD(SetBuildStats)(ITBuildObjectControlInfo &itboci) PURE;
};
#endif // _ITCC_H }