master
  1/**
  2 * This file has no copyright assigned and is placed in the Public Domain.
  3 * This file is part of the mingw-w64 runtime package.
  4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5 */
  6#if !defined(__NTQUERY_H__)
  7#define __NTQUERY_H__
  8
  9#include <_mingw_unicode.h>
 10
 11#if defined(__cplusplus)
 12extern "C" {
 13#endif
 14
 15#define CINULLCATALOG L"::_noindex_::"
 16#define CIADMIN L"::_nodocstore_::"
 17
 18  STDAPI LoadIFilter(WCHAR const *pwcsPath,IUnknown *pUnkOuter,void **ppIUnk);
 19
 20#define LIFF_LOAD_DEFINED_FILTER 1
 21#define LIFF_IMPLEMENT_TEXT_FILTER_FALLBACK_POLICY 2
 22#define LIFF_FORCE_TEXT_FILTER_FALLBACK 3
 23
 24#define LocateCatalogs __MINGW_NAME_AW(LocateCatalogs)
 25
 26  STDAPI LoadIFilterEx(WCHAR const *pwcsPath,DWORD dwFlags,REFIID riid,void **ppIUnk);
 27  STDAPI BindIFilterFromStorage(IStorage *pStg,IUnknown *pUnkOuter,void **ppIUnk);
 28  STDAPI BindIFilterFromStream(IStream *pStm,IUnknown *pUnkOuter,void **ppIUnk);
 29  STDAPI LocateCatalogsW(WCHAR const *pwszScope,ULONG iBmk,WCHAR *pwszMachine,ULONG *pccMachine,WCHAR *pwszCat,ULONG *pccCat);
 30  STDAPI LocateCatalogsA(char const *pwszScope,ULONG iBmk,char *pwszMachine,ULONG *pccMachine,char *pwszCat,ULONG *pccCat);
 31
 32#define CLSID_INDEX_SERVER_DSO { 0xF9AE8980,0x7E52,0x11d0,{ 0x89,0x64,0x00,0xC0,0x4F,0xD6,0x11,0xD7 } }
 33#define PSGUID_STORAGE { 0xb725f130,0x47ef,0x101a,{ 0xa5,0xf1,0x02,0x60,0x8c,0x9e,0xeb,0xac } }
 34
 35#define PID_STG_DIRECTORY ((PROPID) 0x00000002)
 36#define PID_STG_CLASSID ((PROPID) 0x00000003)
 37#define PID_STG_STORAGETYPE ((PROPID) 0x00000004)
 38#define PID_STG_VOLUME_ID ((PROPID) 0x00000005)
 39#define PID_STG_PARENT_WORKID ((PROPID) 0x00000006)
 40#define PID_STG_SECONDARYSTORE ((PROPID) 0x00000007)
 41#define PID_STG_FILEINDEX ((PROPID) 0x00000008)
 42#define PID_STG_LASTCHANGEUSN ((PROPID) 0x00000009)
 43#define PID_STG_NAME ((PROPID) 0x0000000a)
 44#define PID_STG_PATH ((PROPID) 0x0000000b)
 45#define PID_STG_SIZE ((PROPID) 0x0000000c)
 46#define PID_STG_ATTRIBUTES ((PROPID) 0x0000000d)
 47#define PID_STG_WRITETIME ((PROPID) 0x0000000e)
 48#define PID_STG_CREATETIME ((PROPID) 0x0000000f)
 49#define PID_STG_ACCESSTIME ((PROPID) 0x00000010)
 50#define PID_STG_CHANGETIME ((PROPID) 0x00000011)
 51#define PID_STG_CONTENTS ((PROPID) 0x00000013)
 52#define PID_STG_SHORTNAME ((PROPID) 0x00000014)
 53#define PID_STG_MAX PID_STG_SHORTNAME
 54#define CSTORAGEPROPERTY 0x15
 55
 56#define DBPROPSET_FSCIFRMWRK_EXT { 0xA9BD1526,0x6A80,0x11D0,{ 0x8C,0x9D,0x00,0x20,0xAF,0x1D,0x74,0x0E } }
 57
 58#define DBPROP_CI_CATALOG_NAME 2
 59#define DBPROP_CI_INCLUDE_SCOPES 3
 60#define DBPROP_CI_DEPTHS 4
 61#define DBPROP_CI_SCOPE_FLAGS 4
 62#define DBPROP_CI_EXCLUDE_SCOPES 5
 63#define DBPROP_CI_SECURITY_ID 6
 64#define DBPROP_CI_QUERY_TYPE 7
 65
 66#define DBPROPSET_QUERYEXT { 0xA7AC77ED,0xF8D7,0x11CE,{ 0xA7,0x98,0x00,0x20,0xF8,0x00,0x80,0x25 } }
 67
 68#define DBPROP_USECONTENTINDEX 2
 69#define DBPROP_DEFERNONINDEXEDTRIMMING 3
 70#define DBPROP_USEEXTENDEDDBTYPES 4
 71#define DBPROP_FIRSTROWS 7
 72
 73#define DBPROPSET_CIFRMWRKCORE_EXT { 0xafafaca5,0xb5d1,0x11d0,{ 0x8c,0x62,0x00,0xc0,0x4f,0xc2,0xdb,0x8d } }
 74
 75#define DBPROP_MACHINE 2
 76#define DBPROP_CLIENT_CLSID 3
 77
 78#define DBPROPSET_MSIDXS_ROWSETEXT { 0xaa6ee6b0,0xe828,0x11d0,{ 0xb2,0x3e,0x00,0xaa,0x00,0x47,0xfc,0x01 } }
 79
 80#define MSIDXSPROP_ROWSETQUERYSTATUS 2
 81#define MSIDXSPROP_COMMAND_LOCALE_STRING 3
 82#define MSIDXSPROP_QUERY_RESTRICTION 4
 83
 84#define STAT_BUSY (0)
 85#define STAT_ERROR (0x1)
 86#define STAT_DONE (0x2)
 87#define STAT_REFRESH (0x3)
 88#define QUERY_FILL_STATUS(x) ((x) & 0x7)
 89
 90#define STAT_PARTIAL_SCOPE (0x8)
 91#define STAT_NOISE_WORDS (0x10)
 92#define STAT_CONTENT_OUT_OF_DATE (0x20)
 93#define STAT_REFRESH_INCOMPLETE (0x40)
 94#define STAT_CONTENT_QUERY_INCOMPLETE (0x80)
 95#define STAT_TIME_LIMIT_EXCEEDED (0x100)
 96#define STAT_SHARING_VIOLATION (0x200)
 97#define QUERY_RELIABILITY_STATUS(x) ((x) & 0xFFF8)
 98
 99#define QUERY_SHALLOW 0
100#define QUERY_DEEP 1
101#define QUERY_PHYSICAL_PATH 0
102#define QUERY_VIRTUAL_PATH 2
103
104#define PROPID_QUERY_WORKID 5
105#define PROPID_QUERY_UNFILTERED 7
106#define PROPID_QUERY_VIRTUALPATH 9
107#define PROPID_QUERY_LASTSEENTIME 10
108
109#define CICAT_STOPPED 0x1
110#define CICAT_READONLY 0x2
111#define CICAT_WRITABLE 0x4
112#define CICAT_NO_QUERY 0x8
113#define CICAT_GET_STATE 0x10
114#define CICAT_ALL_OPENED 0x20
115
116  STDAPI SetCatalogState(WCHAR const *pwcsCat,WCHAR const *pwcsMachine,DWORD dwNewState,DWORD *pdwOldState);
117
118#define CI_STATE_SHADOW_MERGE 0x0001
119#define CI_STATE_MASTER_MERGE 0x0002
120#define CI_STATE_CONTENT_SCAN_REQUIRED 0x0004
121#define CI_STATE_ANNEALING_MERGE 0x0008
122#define CI_STATE_SCANNING 0x0010
123#define CI_STATE_RECOVERING 0x0020
124#define CI_STATE_INDEX_MIGRATION_MERGE 0x0040
125#define CI_STATE_LOW_MEMORY 0x0080
126#define CI_STATE_HIGH_IO 0x0100
127#define CI_STATE_MASTER_MERGE_PAUSED 0x0200
128#define CI_STATE_READ_ONLY 0x0400
129#define CI_STATE_BATTERY_POWER 0x0800
130#define CI_STATE_USER_ACTIVE 0x1000
131#define CI_STATE_STARTING 0x2000
132#define CI_STATE_READING_USNS 0x4000
133
134#ifndef CI_STATE_DEFINED
135#define CI_STATE_DEFINED
136
137#include <pshpack4.h>
138
139  typedef struct _CI_STATE {
140    DWORD cbStruct;
141    DWORD cWordList;
142    DWORD cPersistentIndex;
143    DWORD cQueries;
144    DWORD cDocuments;
145    DWORD cFreshTest;
146    DWORD dwMergeProgress;
147    DWORD eState;
148    DWORD cFilteredDocuments;
149    DWORD cTotalDocuments;
150    DWORD cPendingScans;
151    DWORD dwIndexSize;
152    DWORD cUniqueKeys;
153    DWORD cSecQDocuments;
154    DWORD dwPropCacheSize;
155  } CI_STATE;
156
157#include <poppack.h>
158#endif
159
160  STDAPI CIState(WCHAR const *pwcsCat,WCHAR const *pwcsMachine,CI_STATE *pCiState);
161#ifdef __ICommand_INTERFACE_DEFINED__
162
163  STDAPI CIMakeICommand(ICommand **ppCommand,ULONG cScope,DWORD const *aDepths,WCHAR const *const *awcsScope,WCHAR const *const *awcsCatalogs,WCHAR const *const *awcsMachine);
164  STDAPI CICreateCommand(IUnknown **ppCommand,IUnknown *pUnkOuter,REFIID riid,WCHAR const *pwcsCatalog,WCHAR const *pwcsMachine);
165
166#ifdef __ICommandTree_INTERFACE_DEFINED__
167  typedef struct tagCIPROPERTYDEF {
168    LPWSTR wcsFriendlyName;
169    DWORD dbType;
170    DBID dbCol;
171  } CIPROPERTYDEF;
172#define ISQLANG_V1 1
173#define ISQLANG_V2 2
174
175  STDAPI CITextToSelectTree(WCHAR const *pwszRestriction,DBCOMMANDTREE **ppTree,ULONG cProperties,CIPROPERTYDEF *pProperties,LCID LocaleID);
176  STDAPI CITextToSelectTreeEx(WCHAR const *pwszRestriction,ULONG ulDialect,DBCOMMANDTREE **ppTree,ULONG cProperties,CIPROPERTYDEF *pProperties,LCID LocaleID);
177  STDAPI CITextToFullTree(WCHAR const *pwszRestriction,WCHAR const *pwszColumns,WCHAR const *pwszSortColumns,WCHAR const *pwszGroupings,DBCOMMANDTREE **ppTree,ULONG cProperties,CIPROPERTYDEF *pProperties,LCID LocaleID);
178  STDAPI CITextToFullTreeEx(WCHAR const *pwszRestriction,ULONG ulDialect,WCHAR const *pwszColumns,WCHAR const *pwszSortColumns,WCHAR const *pwszGroupings,DBCOMMANDTREE **ppTree,ULONG cProperties,CIPROPERTYDEF *pProperties,LCID LocaleID);
179  STDAPI CIBuildQueryNode(WCHAR const *wcsProperty,DBCOMMANDOP dbOperator,PROPVARIANT const *pvarPropertyValue,DBCOMMANDTREE **ppTree,ULONG cProperties,CIPROPERTYDEF const *pProperty,LCID LocaleID);
180  STDAPI CIBuildQueryTree(DBCOMMANDTREE const *pExistingTree,DBCOMMANDOP dbBoolOp,ULONG cSiblings,DBCOMMANDTREE const *const *ppSibsToCombine,DBCOMMANDTREE **ppTree);
181  STDAPI CIRestrictionToFullTree(DBCOMMANDTREE const *pTree,WCHAR const *pwszColumns,WCHAR const *pwszSortColumns,WCHAR const *pwszGroupings,DBCOMMANDTREE **ppTree,ULONG cProperties,CIPROPERTYDEF *pReserved,LCID LocaleID);
182#endif
183#endif
184
185#if defined(__cplusplus)
186}
187#endif
188#endif