windows-nt/Source/XPSP1/NT/inetsrv/published/query/mparser.idl
2020-09-26 16:20:57 +08:00

155 lines
4.3 KiB
Plaintext

//+-------------------------------------------------------------------------
//
// Monarch / Index Server Parser
// Copyright (c) Microsoft Corporation, 1997 - 1998.
//
// File: MParser.idl
//
// Contents: Interface definition
//
//--------------------------------------------------------------------------
#ifdef IMPORT_IDL_DEPENDENTS
import "oaidl.idl";
#endif
#include "idlmulti.h"
cpp_quote("//+---------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Content Index SQL Parser")
cpp_quote("// Copyright (C) Microsoft Corporation, 1997 - 1998.")
cpp_quote("//")
cpp_quote("//----------------------------------------------------------------------------")
cpp_quote("")
cpp_quote("")
cpp_quote("//----------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Function Prototypes ")
cpp_quote("//")
cpp_quote("//----------------------------------------------------------------------------")
cpp_quote(" HRESULT __stdcall MakeIParser(IParser** ppIParser); ")
cpp_quote("")
cpp_quote("")
//
// Enumerated values for Properties on IParserTreeProperties
//
enum PTPROPS {
PTPROPS_SCOPE = 1,
PTPROPS_DEPTH,
PTPROPS_CATALOG,
PTPROPS_MACHINE,
PTPROPS_CIRESTRICTION,
PTPROPS_ERR_IDS,
PTPROPS_ERR_HR,
PTPROPS_ERR_DISPPARAM,
};
//+-------------------------------------------------------------------------
//
// Supported Dialects
//
//+-------------------------------------------------------------------------
cpp_quote("#ifdef DBINITCONSTANTS")
cpp_quote("extern const GUID DBGUID_MSSQLTEXT = {0x03fb9b70,0x7fba,0x11d0,{0xa2,0x59,0x00,0x80,0xc7,0x8c,0x88,0x95}};")
cpp_quote("extern const GUID DBGUID_MSSQLJAWS = {0xe4ab8511,0x4a52,0x11d1,{0xb6,0xd5,0x00,0xc0,0x4f,0xd6,0x11,0xd0}};")
cpp_quote("#else // !DBINITCONSTANTS")
cpp_quote("extern const GUID DBGUID_MSSQLTEXT;")
cpp_quote("extern const GUID DBGUID_MSSQLJAWS;")
cpp_quote("#endif // DBINITCONSTANTS")
typedef struct tagDBCOMMANDTREE DBCOMMANDTREE;
interface IColumnMapperCreator;
//+-------------------------------------------------------------------------
//
// Interface : IParserVerify
//
// Description : Callback interface that allows the parser to validate
// bInterface that encapsulates infromation about a particular
// query.
//
//+-------------------------------------------------------------------------
LOCAL_INTERFACE(186442B3-472E-11d1-8952-00C04FD611D7)
interface IParserVerify : IUnknown
{
HRESULT VerifyMachine(
[in] LPCWSTR pcwszMachine
);
HRESULT VerifyCatalog(
[in] LPCWSTR pcwszMachine,
[in] LPCWSTR pcwszCatalog
);
}
//+-------------------------------------------------------------------------
//
// Interface : IParserTreeProperties
//
// Description : Interface that encapsulates infromation about a particular
// query.
//
//+-------------------------------------------------------------------------
LOCAL_INTERFACE(186442B2-472E-11d1-8952-00C04FD611D7)
interface IParserTreeProperties : IUnknown
{
HRESULT GetProperties(
[in] ULONG eParseProp,
[in, out] VARIANT* vParseProp
);
}
//+-------------------------------------------------------------------------
//
// Interface : IParserSession
//
// Description : Interface containing methods to create and manipulate trees
// and text.
//
//+-------------------------------------------------------------------------
LOCAL_INTERFACE(186442B1-472E-11d1-8952-00C04FD611D7)
interface IParserSession : IUnknown
{
HRESULT ToTree(
[in] LCID lcidVal,
[in] LPCWSTR pcwszText,
[out] DBCOMMANDTREE** ppTree,
[out] IParserTreeProperties** ppPTProperties
);
HRESULT FreeTree(
[in, out] DBCOMMANDTREE** ppTree
);
HRESULT SetCatalog(
[in] LPCWSTR pcwszCatalog
);
}
//+-------------------------------------------------------------------------
//
// Interface : IParser
//
// Description : Interface used to configure parser and create session
// context in which to translate the text to tree
//
//+-------------------------------------------------------------------------
LOCAL_INTERFACE(186442B0-472E-11d1-8952-00C04FD611D7)
interface IParser : IUnknown
{
HRESULT CreateSession(
[in] const GUID* pguidDialect,
[in] LPCWSTR pwszMachine,
[in] IParserVerify* ppIParserVerfiy,
[in] IColumnMapperCreator* pIColMapCreator,
[out] IParserSession** ppIParserSession
);
}