//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright 1996 - 1998 Microsoft Corporation-1997. // // File: NtQuery.h // // Contents: Main query header; Defines all exported query API // //---------------------------------------------------------------------------- #if !defined(__NTQUERY_H__) #define __NTQUERY_H__ #if defined(__cplusplus) extern "C" { #endif // // Use this path for the null catalog, one that doesn't have an index. // Use it to search for properties of files that are not indexed. // #define CINULLCATALOG L"::_noindex_::" // // Minimal support for persistent handlers. // STDAPI LoadIFilter( WCHAR const * pwcsPath, IUnknown * pUnkOuter, void ** ppIUnk ); STDAPI BindIFilterFromStorage( IStorage * pStg, IUnknown * pUnkOuter, void ** ppIUnk ); STDAPI BindIFilterFromStream( IStream * pStm, IUnknown * pUnkOuter, void ** ppIUnk ); STDAPI LocateCatalogsW( WCHAR const * pwszScope, ULONG iBmk, WCHAR * pwszMachine, ULONG * pccMachine, WCHAR * pwszCat, ULONG * pccCat ); // // For calling from VB // STDAPI LocateCatalogsA( char const * pwszScope, ULONG iBmk, char * pwszMachine, ULONG * pccMachine, char * pwszCat, ULONG * pccCat ); #ifdef UNICODE #define LocateCatalogs LocateCatalogsW #else #define LocateCatalogs LocateCatalogsA #endif // !UNICODE // The Index Server Data Source Object CLSID #define CLSID_INDEX_SERVER_DSO \ { 0xd7a2b01a, 0xa47d, 0x11d0, \ { 0x8c, 0x55, 0x0, 0xc0, 0x4f, 0xc2, 0xdb, 0x8d } } // The storage property set #define PSGUID_STORAGE \ { 0xb725f130, 0x47ef, 0x101a, \ { 0xa5, 0xf1, 0x02, 0x60, 0x8c, 0x9e, 0xeb, 0xac } } //#define PID_STG_DICTIONARY ((PROPID) 0x00000000) //reserved //#define PID_STG_CODEPAGE ((PROPID) 0x00000001) //reserved #define PID_STG_DIRECTORY ((PROPID) 0x00000002) #define PID_STG_CLASSID ((PROPID) 0x00000003) #define PID_STG_STORAGETYPE ((PROPID) 0x00000004) #define PID_STG_VOLUME_ID ((PROPID) 0x00000005) #define PID_STG_PARENT_WORKID ((PROPID) 0x00000006) // unused #define PID_STG_ ((PROPID) 0x00000007) #define PID_STG_FILEINDEX ((PROPID) 0x00000008) #define PID_STG_LASTCHANGEUSN ((PROPID) 0x00000009) #define PID_STG_NAME ((PROPID) 0x0000000a) #define PID_STG_PATH ((PROPID) 0x0000000b) #define PID_STG_SIZE ((PROPID) 0x0000000c) #define PID_STG_ATTRIBUTES ((PROPID) 0x0000000d) #define PID_STG_WRITETIME ((PROPID) 0x0000000e) #define PID_STG_CREATETIME ((PROPID) 0x0000000f) #define PID_STG_ACCESSTIME ((PROPID) 0x00000010) // unused #define PID_STG_ ((PROPID) 0x00000011) #define PID_STG_ALLOCSIZE ((PROPID) 0x00000012) #define PID_STG_CONTENTS ((PROPID) 0x00000013) #define PID_STG_SHORTNAME ((PROPID) 0x00000014) #define PID_STG_MAX PID_STG_SHORTNAME #define CSTORAGEPROPERTY 0x15 // File System Content Index Framework property set #define DBPROPSET_FSCIFRMWRK_EXT \ { 0xA9BD1526, 0x6A80, 0x11D0, \ { 0x8C, 0x9D, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E } } #define DBPROP_CI_CATALOG_NAME 2 #define DBPROP_CI_INCLUDE_SCOPES 3 #define DBPROP_CI_DEPTHS 4 // obsolete #define DBPROP_CI_SCOPE_FLAGS 4 #define DBPROP_CI_EXCLUDE_SCOPES 5 #define DBPROP_CI_SECURITY_ID 6 #define DBPROP_CI_QUERY_TYPE 7 // Query Extension property set #define DBPROPSET_QUERYEXT \ { 0xA7AC77ED, 0xF8D7, 0x11CE, \ { 0xA7, 0x98, 0x00, 0x20, 0xF8, 0x00, 0x80, 0x25 } } #define DBPROP_USECONTENTINDEX 2 #define DBPROP_DEFERNONINDEXEDTRIMMING 3 #define DBPROP_USEEXTENDEDDBTYPES 4 // Content Index Framework Core property set #define DBPROPSET_CIFRMWRKCORE_EXT \ { 0xafafaca5, 0xb5d1, 0x11d0, \ { 0x8c, 0x62, 0x00, 0xc0, 0x4f, 0xc2, 0xdb, 0x8d } } #define DBPROP_MACHINE 2 #define DBPROP_CLIENT_CLSID 3 // Scope flags #define QUERY_SHALLOW 0 #define QUERY_DEEP 1 #define QUERY_PHYSICAL_PATH 0 #define QUERY_VIRTUAL_PATH 2 // query property set (PSGUID_QUERY) properties not defined in oledb.h #define PROPID_QUERY_WORKID 5 #define PROPID_QUERY_UNFILTERED 7 #define PROPID_QUERY_VIRTUALPATH 9 #define PROPID_QUERY_LASTSEENTIME 10 #if defined __oledb_h__ typedef struct tagCIPROPERTYDEF { LPWSTR wcsFriendlyName; DWORD dbType; DBID dbCol; } CIPROPERTYDEF; // // Create an ICommand, specifying scopes, catalogs, and machines // (obsolete) // STDAPI CIMakeICommand( ICommand ** ppCommand, ULONG cScope, DWORD const * aDepths, WCHAR const * const * awcsScope, WCHAR const * const * awcsCatalogs, WCHAR const * const * awcsMachine ); // // Create an ICommand, specifying a catalog and machine // STDAPI CICreateCommand( IUnknown ** ppCommand, // New object IUnknown * pUnkOuter, // Outer unknown REFIID riid, // IID of returned object. // Must be IID_IUnknown unless pUnkOuter == 0 WCHAR const * pwcsCatalog, // Catalog WCHAR const * pwcsMachine ); // Machine // // Convert pwszRestriction in Triplish to a command tree. // STDAPI CITextToSelectTree( WCHAR const * pwszRestriction, DBCOMMANDTREE * * ppTree, ULONG cProperties, /*optional*/ CIPROPERTYDEF * pProperties, LCID LocaleID ); // // Convert pwszRestriction in Triplish, project columns, sort columns // and grouping columns to a command tree. // STDAPI CITextToFullTree( WCHAR const * pwszRestriction, WCHAR const * pwszColumns, WCHAR const * pwszSortColumns, // may be NULL WCHAR const * pwszGroupings, // may be NULL DBCOMMANDTREE * * ppTree, ULONG cProperties, /*optional*/ CIPROPERTYDEF * pProperties, LCID LocaleID ); // // Build a simple restriction node. // STDAPI CIBuildQueryNode( WCHAR const *wcsProperty, // friendly property name DBCOMMANDOP dbOperator, // enumerated constant PROPVARIANT const *pvarPropertyValue, // value of the property DBCOMMANDTREE ** ppTree, // ptr to tree returned here. should be non-null ULONG cProperties, CIPROPERTYDEF const * pProperty, // Can be 0. LCID LocaleID ); // locale id to interpret strings // // Build a restriction tree from an existing tree (could be empty) and a newly added node/tree. // STDAPI CIBuildQueryTree( DBCOMMANDTREE const *pExistingTree, // existing tree. can be null. DBCOMMANDOP dbBoolOp, // enumerator constant ULONG cSiblings, // number of siblings in the array DBCOMMANDTREE const * const *ppSibsToCombine, DBCOMMANDTREE ** ppTree); // ptr to tree returned here. should be non-null // // Convert restriction tree, project columns, sort columns // and grouping columns to a command tree. // STDAPI CIRestrictionToFullTree( DBCOMMANDTREE const *pTree, WCHAR const * pwszColumns, WCHAR const * pwszSortColumns, // may be NULL WCHAR const * pwszGroupings, // may be NULL DBCOMMANDTREE * * ppTree, ULONG cProperties, /*optional*/ CIPROPERTYDEF * pReserved, LCID LocaleID ); #endif // __oledb_h__ #if defined(__cplusplus) } #endif #endif // __NTQUERY_H__