xpmgr/BuildTools/Include/cmdtre.idl

286 lines
9.6 KiB
Plaintext

//-----------------------------------------------------------------------------
// File: cmdtre.idl
//
// Copyright: Copyright (c) Microsoft Corporation
//
// Contents: OLE DB interface definition
//
// Comments:
//
//-----------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a87-2a1c-11ce-ade5-00aa0044773d)
interface ICommandTree : IUnknown {
typedef DWORD DBCOMMANDREUSE;
enum DBCOMMANDREUSEENUM {
DBCOMMANDREUSE_NONE = 0x00,
DBCOMMANDREUSE_PROPERTIES = 0x01,
DBCOMMANDREUSE_PARAMETERS = 0x02,
};
typedef DWORD DBVALUEKIND;
enum DBVALUEKINDENUM {
DBVALUEKIND_BYGUID = 256,
DBVALUEKIND_COLDESC = DBVALUEKIND_BYGUID + 1,
DBVALUEKIND_ID = DBVALUEKIND_COLDESC + 1,
DBVALUEKIND_CONTENT = DBVALUEKIND_ID + 1,
DBVALUEKIND_CONTENTVECTOR = DBVALUEKIND_CONTENT + 1,
DBVALUEKIND_GROUPINFO = DBVALUEKIND_CONTENTVECTOR + 1,
DBVALUEKIND_PARAMETER = DBVALUEKIND_GROUPINFO + 1,
DBVALUEKIND_PROPERTY = DBVALUEKIND_PARAMETER + 1,
DBVALUEKIND_SETFUNC = DBVALUEKIND_PROPERTY + 1,
DBVALUEKIND_SORTINFO = DBVALUEKIND_SETFUNC + 1,
DBVALUEKIND_TEXT = DBVALUEKIND_SORTINFO + 1,
DBVALUEKIND_COMMAND = DBVALUEKIND_TEXT + 1,
DBVALUEKIND_MONIKER = DBVALUEKIND_COMMAND + 1,
DBVALUEKIND_ROWSET = DBVALUEKIND_MONIKER + 1,
DBVALUEKIND_LIKE = DBVALUEKIND_ROWSET + 1,
DBVALUEKIND_CONTENTPROXIMITY= DBVALUEKIND_LIKE + 1,
DBVALUEKIND_CONTENTSCOPE = DBVALUEKIND_CONTENTPROXIMITY + 1,
DBVALUEKIND_CONTENTTABLE = DBVALUEKIND_CONTENTSCOPE + 1,
DBVALUEKIND_IDISPATCH = 9,
DBVALUEKIND_IUNKNOWN = 13,
DBVALUEKIND_EMPTY = 0,
DBVALUEKIND_NULL = 1,
DBVALUEKIND_I2 = 2,
DBVALUEKIND_I4 = 3,
DBVALUEKIND_R4 = 4,
DBVALUEKIND_R8 = 5,
DBVALUEKIND_CY = 6,
DBVALUEKIND_DATE = 7,
DBVALUEKIND_BSTR = 8,
DBVALUEKIND_ERROR = 10,
DBVALUEKIND_BOOL = 11,
DBVALUEKIND_VARIANT = 12,
DBVALUEKIND_VECTOR = 0x1000,
DBVALUEKIND_ARRAY = 0x2000,
DBVALUEKIND_BYREF = 0x4000,
DBVALUEKIND_I1 = 16,
DBVALUEKIND_UI1 = 17,
DBVALUEKIND_UI2 = 18,
DBVALUEKIND_UI4 = DBVALUEKIND_UI2 + 1,
DBVALUEKIND_I8 = DBVALUEKIND_UI4 + 1,
DBVALUEKIND_UI8 = DBVALUEKIND_I8 + 1,
DBVALUEKIND_GUID = 72,
DBVALUEKIND_BYTES = 128,
DBVALUEKIND_STR = 129,
DBVALUEKIND_WSTR = 130,
DBVALUEKIND_NUMERIC = 131,
DBVALUEKIND_DBDATE = 133,
DBVALUEKIND_DBTIME = 134,
DBVALUEKIND_DBTIMESTAMP = 135,
DBVALUEKIND_PROBABILISTIC = 136,
DBVALUEKIND_RELEVANTDOCUMENT = 137,
};
typedef struct tagDBBYGUID {
[size_is((ULONG)cbInfo)] BYTE * pbInfo;
DBLENGTH cbInfo;
GUID guid;
} DBBYGUID;
cpp_quote("#define GENERATE_METHOD_EXACT ( 0 )")
cpp_quote("#define GENERATE_METHOD_PREFIX ( 1 )")
cpp_quote("#define GENERATE_METHOD_INFLECT ( 2 )")
typedef struct tagDBCONTENT {
LPOLESTR pwszPhrase;
DWORD dwGenerateMethod;
LONG lWeight;
LCID lcid;
} DBCONTENT;
cpp_quote("#define SCOPE_FLAG_MASK ( 0x000000ff )")
cpp_quote("#define SCOPE_FLAG_INCLUDE ( 0x00000001 )")
cpp_quote("#define SCOPE_FLAG_DEEP ( 0x00000002 )")
cpp_quote("#define SCOPE_TYPE_MASK ( 0xffffff00 )")
cpp_quote("#define SCOPE_TYPE_WINPATH ( 0x00000100 )")
cpp_quote("#define SCOPE_TYPE_VPATH ( 0x00000200 )")
typedef struct tagDBCONTENTSCOPE {
DWORD dwFlags;
LPOLESTR * rgpwszTagName;
LPOLESTR pwszElementValue;
} DBCONTENTSCOPE;
typedef struct tagDBCONTENTTABLE {
LPOLESTR pwszMachine;
LPOLESTR pwszCatalog;
} DBCONTENTTABLE;
cpp_quote("#define PROPID_QUERY_RANKVECTOR ( 0x2 )")
cpp_quote("#define PROPID_QUERY_RANK ( 0x3 )")
cpp_quote("#define PROPID_QUERY_HITCOUNT ( 0x4 )")
cpp_quote("#define PROPID_QUERY_ALL ( 0x6 )")
cpp_quote("#define PROPID_STG_CONTENTS ( 0x13 )")
cpp_quote("#define VECTOR_RANK_MIN ( 0 )")
cpp_quote("#define VECTOR_RANK_MAX ( 1 )")
cpp_quote("#define VECTOR_RANK_INNER ( 2 )")
cpp_quote("#define VECTOR_RANK_DICE ( 3 )")
cpp_quote("#define VECTOR_RANK_JACCARD ( 4 )")
typedef struct tagDBCONTENTVECTOR {
LONG lWeight;
DWORD dwRankingMethod;
} DBCONTENTVECTOR;
typedef struct tagDBGROUPINFO {
LCID lcid;
} DBGROUPINFO;
typedef struct tagDBPARAMETER {
LPOLESTR pwszName;
ITypeInfo * pTypeInfo;
DB_NUMERIC * pNum;
DBLENGTH cbMaxLength;
DBPARAMFLAGS dwFlags;
DBTYPE wType;
} DBPARAMETER;
cpp_quote("#define DBSETFUNC_NONE 0x0")
cpp_quote("#define DBSETFUNC_ALL 0x1")
cpp_quote("#define DBSETFUNC_DISTINCT 0x2")
typedef struct tagDBSETFUNC {
DWORD dwSetQuantifier;
} DBSETFUNC;
typedef struct tagDBSORTINFO {
BOOL fDesc;
LCID lcid;
} DBSORTINFO;
typedef struct tagDBTEXT {
LPOLESTR pwszText;
ULONG ulErrorLocator;
ULONG ulTokenLength;
GUID guidDialect;
} DBTEXT;
typedef struct tagDBLIKE {
LONG lWeight;
GUID guidDialect;
} DBLIKE;
cpp_quote("#define PROXIMITY_UNIT_WORD ( 0 )")
cpp_quote("#define PROXIMITY_UNIT_SENTENCE ( 1 )")
cpp_quote("#define PROXIMITY_UNIT_PARAGRAPH ( 2 )")
cpp_quote("#define PROXIMITY_UNIT_CHAPTER ( 3 )")
typedef struct tagDBCONTENTPROXIMITY {
DWORD dwProximityUnit;
ULONG ulProximityDistance;
LONG lWeight;
} DBCONTENTPROXIMITY;
typedef struct tagDBPROBABILISTIC {
LONG lWeight; // Weight of this node in tree
float flK1; // K1 parameter in BM25
float flK2; // K2 parameter in BM25 (must be 0)
float flK3; // K3 parameter in BM25
float flB; // b parameter in BM25
} DBPROBABILISTIC;
typedef struct tagDBRELEVANTDOCUMENT {
LONG lWeight; // Weight of this node in the tree
VARIANT vDocument; // Relevant document
} DBRELEVANTDOCUMENT;
typedef struct tagDBCOMMANDTREE {
DBCOMMANDOP op;
WORD wKind;
struct tagDBCOMMANDTREE * pctFirstChild;
struct tagDBCOMMANDTREE * pctNextSibling;
[switch_type(WORD),switch_is(wKind)] union {
[case(DBVALUEKIND_I8)] __int64 llValue;
[case(DBVALUEKIND_UI8)] unsigned __int64 ullValue;
[case(DBVALUEKIND_BOOL)] BOOL fValue;
[case(DBVALUEKIND_UI1)] unsigned char uchValue;
[case(DBVALUEKIND_I1)] signed char schValue;
[case(DBVALUEKIND_UI2)] unsigned short usValue;
[case(DBVALUEKIND_I2)] short sValue;
[case(DBVALUEKIND_WSTR)] LPOLESTR pwszValue;
[case(DBVALUEKIND_I4)] LONG lValue;
[case(DBVALUEKIND_UI4)] ULONG ulValue;
[case(DBVALUEKIND_R4)] float flValue;
[case(DBVALUEKIND_R8)] double dblValue;
[case(DBVALUEKIND_CY)] CY cyValue;
[case(DBVALUEKIND_DATE)] DATE dateValue;
[case(DBVALUEKIND_DBDATE)] DBDATE dbdateValue;
[case(DBVALUEKIND_DBTIME)] DBTIME dbtimeValue;
[case(DBVALUEKIND_ERROR)] SCODE scodeValue;
[case(DBVALUEKIND_BSTR)] BSTR * pbstrValue;
[case(DBVALUEKIND_COMMAND)] ICommand * pCommand;
[case(DBVALUEKIND_IDISPATCH)] IDispatch * pDispatch;
[case(DBVALUEKIND_MONIKER)] IMoniker * pMoniker;
[case(DBVALUEKIND_ROWSET)] IRowset * pRowset;
[case(DBVALUEKIND_IUNKNOWN)] IUnknown * pUnknown;
[case(DBVALUEKIND_BYGUID)] DBBYGUID * pdbbygdValue;
[case(DBVALUEKIND_COLDESC)] DBCOLUMNDESC * pcoldescValue;
[case(DBVALUEKIND_ID)] DBID * pdbidValue;
[case(DBVALUEKIND_LIKE)] DBLIKE * pdblikeValue;
[case(DBVALUEKIND_CONTENT)] DBCONTENT * pdbcntntValue;
[case(DBVALUEKIND_CONTENTSCOPE)] DBCONTENTSCOPE * pdbcntntscpValue;
[case(DBVALUEKIND_CONTENTTABLE)] DBCONTENTTABLE * pdbcntnttblValue;
[case(DBVALUEKIND_CONTENTVECTOR)] DBCONTENTVECTOR * pdbcntntvcValue;
[case(DBVALUEKIND_CONTENTPROXIMITY)] DBCONTENTPROXIMITY * pdbcntntproxValue;
[case(DBVALUEKIND_GROUPINFO)] DBGROUPINFO * pdbgrpinfValue;
[case(DBVALUEKIND_PARAMETER)] DBPARAMETER * pdbparamValue;
[case(DBVALUEKIND_PROPERTY)] DBPROPSET * pdbpropValue;
[case(DBVALUEKIND_SETFUNC)] DBSETFUNC * pdbstfncValue;
[case(DBVALUEKIND_SORTINFO)] DBSORTINFO * pdbsrtinfValue;
[case(DBVALUEKIND_TEXT)] DBTEXT * pdbtxtValue;
[case(DBVALUEKIND_VECTOR)] DBVECTOR * pdbvectorValue;
[case(DBVALUEKIND_ARRAY)] SAFEARRAY * parrayValue;
[case(DBVALUEKIND_VARIANT)] VARIANT * pvarValue;
[case(DBVALUEKIND_GUID)] GUID * pGuid;
[case(DBVALUEKIND_BYTES)] BYTE * pbValue;
[case(DBVALUEKIND_STR)] char * pzValue;
[case(DBVALUEKIND_NUMERIC)] DB_NUMERIC * pdbnValue;
[case(DBVALUEKIND_DBTIMESTAMP)] DBTIMESTAMP * pdbtsValue;
[case(DBVALUEKIND_BYREF)] void * pvValue;
[case(DBVALUEKIND_PROBABILISTIC)] DBPROBABILISTIC * pdbprobValue;
[case(DBVALUEKIND_RELEVANTDOCUMENT)] DBRELEVANTDOCUMENT * pdbreldocValue;
} value;
HRESULT hrError;
} DBCOMMANDTREE;
HRESULT FindErrorNodes(
[in] const DBCOMMANDTREE * pRoot,
[out] ULONG * pcErrorNodes,
[out] DBCOMMANDTREE *** prgErrorNodes
);
HRESULT FreeCommandTree(
[in] DBCOMMANDTREE ** ppRoot
);
HRESULT GetCommandTree(
[out] DBCOMMANDTREE ** ppRoot
);
HRESULT SetCommandTree(
[in] DBCOMMANDTREE ** ppRoot,
[in] DBCOMMANDREUSE dwCommandReuse,
[in] BOOL fCopy
);
}