mirror of https://github.com/tongzx/nt5src
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.
154 lines
4.3 KiB
154 lines
4.3 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// 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
|
|
);
|
|
}
|
|
|