⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntquery.pas

📁 详细Windows API大全有关知识以及相关问题
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit NtQuery;

{$WEAKPACKAGEUNIT}

{$HPPEMIT ''}
{$HPPEMIT '#include "NTQuery.h"'}
{$HPPEMIT ''}

{$I WINDEFINES.INC}

interface

uses
  ActiveX, ComObj, WinType;

type
  // TODO STUBS  see CmdTree.h (cmdtree.idl)
  IFilter = Pointer;
  IUnkown = Pointer;
  ICommand = Pointer;
  PPWCHAR = ^PWCHAR;
  REFIID = TGUID; // also in ActiveDS
  DBID = Pointer;
  DBCOMMANDTREE = Pointer;
  PDBCOMMANDTREE = Pointer;
  DBCOMMANDOP = Pointer;

//
// 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.
//

const
  CINULLCATALOG = '::_noindex_::';
  {$EXTERNALSYM CINULLCATALOG}

//
// Use this path to connect to the server for administration work
// (i.e. DocStoreAdmin.) No catalog is associated with the connection
//

  CIADMIN = '::_nodocstore_::';
  {$EXTERNALSYM CIADMIN}

//
// Minimal support for persistent handlers.
//

function LoadIFilter(pwcsPath: PWCHAR; pUnkOuter: IUnknown; out ppIUnk: IFilter): HRESULT; stdcall;
{$EXTERNALSYM LoadIFilter}

function BindIFilterFromStorage(pStg: IStorage; pUnkOuter: IUnknown; out ppIUnk: IFilter): HRESULT; stdcall;
{$EXTERNALSYM BindIFilterFromStorage}

function BindIFilterFromStream(pStm: IStream; pUnkOuter: IUnkown; out ppIUnk: IFilter): HRESULT; stdcall;
{$EXTERNALSYM BindIFilterFromStream}

function LocateCatalogsW(pwszScope: PWCHAR; iBmk: ULONG; pwszMachine: PWCHAR;
  var pccMachine: ULONG; pwszCat: PWCHAR; var pccCat: ULONG): HRESULT; stdcall;
{$EXTERNALSYM LocateCatalogsW}

//
// For calling from VB
//

function LocateCatalogsA(pwszScope: PCHAR; iBmk: ULONG; pwszMachine: PCHAR;
  var pccMachine: ULONG; pwszCat: PCHAR; var pccCat: ULONG): HRESULT; stdcall;
{$EXTERNALSYM LocateCatalogsA}

{$IFDEF UNICODE}
function LocateCatalogs(pwszScope: PWCHAR; iBmk: ULONG; pwszMachine: PWCHAR;
  var pccMachine: ULONG; pwszCat: PWCHAR; var pccCat: ULONG): HRESULT; stdcall;
{$EXTERNALSYM LocateCatalogs}
{$ELSE}
function LocateCatalogs(pwszScope: PCHAR; iBmk: ULONG; pwszMachine: PCHAR;
  var pccMachine: ULONG; pwszCat: PCHAR; var pccCat: ULONG): HRESULT; stdcall;
{$EXTERNALSYM LocateCatalogs}
{$ENDIF}

// The Index Server Data Source Object CLSID

const
  CLSID_INDEX_SERVER_DSO: TGUID = (
    D1:$F9AE8980; D2:$7E52; D3:$11d0; D4:($89,$64,$00,$C0,$4F,$D6,$11,$D7));
  {$EXTERNALSYM CLSID_INDEX_SERVER_DSO}

// The storage property set

  PSGUID_STORAGE: TGUID = (
    D1:$b725f130; D2:$47ef; D3:$101a; D4:($a5,$f1,$02,$60,$8c,$9e,$eb,$ac));
  {$EXTERNALSYM PSGUID_STORAGE}

//#define PID_STG_DICTIONARY            ((PROPID) 0x00000000) //reserved
//#define PID_STG_CODEPAGE              ((PROPID) 0x00000001) //reserved

  PID_STG_DIRECTORY      = PROPID($00000002);
  {$EXTERNALSYM PID_STG_DIRECTORY}
  PID_STG_CLASSID        = PROPID($00000003);
  {$EXTERNALSYM PID_STG_CLASSID}
  PID_STG_STORAGETYPE    = PROPID($00000004);
  {$EXTERNALSYM PID_STG_STORAGETYPE}
  PID_STG_VOLUME_ID      = PROPID($00000005);
  {$EXTERNALSYM PID_STG_VOLUME_ID}
  PID_STG_PARENT_WORKID  = PROPID($00000006);
  {$EXTERNALSYM PID_STG_PARENT_WORKID}
  PID_STG_SECONDARYSTORE = PROPID($00000007);
  {$EXTERNALSYM PID_STG_SECONDARYSTORE}
  PID_STG_FILEINDEX      = PROPID($00000008);
  {$EXTERNALSYM PID_STG_FILEINDEX}
  PID_STG_LASTCHANGEUSN  = PROPID($00000009);
  {$EXTERNALSYM PID_STG_LASTCHANGEUSN}
  PID_STG_NAME           = PROPID($0000000a);
  {$EXTERNALSYM PID_STG_NAME}
  PID_STG_PATH           = PROPID($0000000b);
  {$EXTERNALSYM PID_STG_PATH}
  PID_STG_SIZE           = PROPID($0000000c);
  {$EXTERNALSYM PID_STG_SIZE}
  PID_STG_ATTRIBUTES     = PROPID($0000000d);
  {$EXTERNALSYM PID_STG_ATTRIBUTES}
  PID_STG_WRITETIME      = PROPID($0000000e);
  {$EXTERNALSYM PID_STG_WRITETIME}
  PID_STG_CREATETIME     = PROPID($0000000f);
  {$EXTERNALSYM PID_STG_CREATETIME}
  PID_STG_ACCESSTIME     = PROPID($00000010);
  {$EXTERNALSYM PID_STG_ACCESSTIME}
  PID_STG_CHANGETIME     = PROPID($00000011);
  {$EXTERNALSYM PID_STG_CHANGETIME}
  PID_STG_ALLOCSIZE      = PROPID($00000012);
  {$EXTERNALSYM PID_STG_ALLOCSIZE}
  PID_STG_CONTENTS       = PROPID($00000013);
  {$EXTERNALSYM PID_STG_CONTENTS}
  PID_STG_SHORTNAME      = PROPID($00000014);
  {$EXTERNALSYM PID_STG_SHORTNAME}
  PID_STG_MAX            = PID_STG_SHORTNAME;
  {$EXTERNALSYM PID_STG_MAX}
  CSTORAGEPROPERTY       = $15;
  {$EXTERNALSYM CSTORAGEPROPERTY}

// File System Content Index Framework property set

  DBPROPSET_FSCIFRMWRK_EXT: TGUID = (
    D1:$A9BD1526; D2:$6A80; D3:$11D0; D4:($8C,$9D,$00,$20,$AF,$1D,$74,$0E));
  {$EXTERNALSYM DBPROPSET_FSCIFRMWRK_EXT}

  DBPROP_CI_CATALOG_NAME   = 2;
  {$EXTERNALSYM DBPROP_CI_CATALOG_NAME}
  DBPROP_CI_INCLUDE_SCOPES = 3;
  {$EXTERNALSYM DBPROP_CI_INCLUDE_SCOPES}
  DBPROP_CI_DEPTHS         = 4; // obsolete
  {$EXTERNALSYM DBPROP_CI_DEPTHS}
  DBPROP_CI_SCOPE_FLAGS    = 4;
  {$EXTERNALSYM DBPROP_CI_SCOPE_FLAGS}
  DBPROP_CI_EXCLUDE_SCOPES = 5;
  {$EXTERNALSYM DBPROP_CI_EXCLUDE_SCOPES}
  DBPROP_CI_SECURITY_ID    = 6;
  {$EXTERNALSYM DBPROP_CI_SECURITY_ID}
  DBPROP_CI_QUERY_TYPE     = 7;
  {$EXTERNALSYM DBPROP_CI_QUERY_TYPE}

// Query Extension property set

  DBPROPSET_QUERYEXT: TGUID = (
    D1:$A7AC77ED; D2:$F8D7; D3:$11CE; D4:($A7,$98,$00,$20,$F8,$00,$80,$25));
  {$EXTERNALSYM DBPROPSET_QUERYEXT}

  DBPROP_USECONTENTINDEX         = 2;
  {$EXTERNALSYM DBPROP_USECONTENTINDEX}
  DBPROP_DEFERNONINDEXEDTRIMMING = 3;
  {$EXTERNALSYM DBPROP_DEFERNONINDEXEDTRIMMING}
  DBPROP_USEEXTENDEDDBTYPES      = 4;
  {$EXTERNALSYM DBPROP_USEEXTENDEDDBTYPES}

// Content Index Framework Core property set

  DBPROPSET_CIFRMWRKCORE_EXT: TGUID = (
    D1:$afafaca5; D2:$b5d1; D3:$11d0; D4:($8c,$62,$00,$c0,$4f,$c2,$db,$8d));
  {$EXTERNALSYM DBPROPSET_CIFRMWRKCORE_EXT}

  DBPROP_MACHINE      = 2;
  {$EXTERNALSYM DBPROP_MACHINE}
  DBPROP_CLIENT_CLSID = 3;
  {$EXTERNALSYM DBPROP_CLIENT_CLSID}

// MSIDXS Rowset property set

  DBPROPSET_MSIDXS_ROWSETEXT: TGUID = (
    D1:$aa6ee6b0; D2:$e828; D3:$11d0; D4:($b2,$3e,$00,$aa,$00,$47,$fc,$01));
  {$EXTERNALSYM DBPROPSET_MSIDXS_ROWSETEXT}

  MSIDXSPROP_ROWSETQUERYSTATUS     = 2;
  {$EXTERNALSYM MSIDXSPROP_ROWSETQUERYSTATUS}
  MSIDXSPROP_COMMAND_LOCALE_STRING = 3;
  {$EXTERNALSYM MSIDXSPROP_COMMAND_LOCALE_STRING}
  MSIDXSPROP_QUERY_RESTRICTION     = 4;
  {$EXTERNALSYM MSIDXSPROP_QUERY_RESTRICTION}

//
// Query status values returned by MSIDXSPROP_ROWSETQUERYSTATUS
//
// Bits   Effect
// -----  -----------------------------------------------------
// 00-02  Fill Status: How data is being updated, if at all.
// 03-15  Bitfield query reliability: How accurate the result is

  STAT_BUSY    = (0);
  {$EXTERNALSYM STAT_BUSY}
  STAT_ERROR   = ($1);
  {$EXTERNALSYM STAT_ERROR}
  STAT_DONE    = ($2);
  {$EXTERNALSYM STAT_DONE}
  STAT_REFRESH = ($3);
  {$EXTERNALSYM STAT_REFRESH}

function QUERY_FILL_STATUS(x: DWORD): DWORD;
{$EXTERNALSYM QUERY_FILL_STATUS}

const
  STAT_PARTIAL_SCOPE            = ($8);
  {$EXTERNALSYM STAT_PARTIAL_SCOPE}
  STAT_NOISE_WORDS              = ($10);
  {$EXTERNALSYM STAT_NOISE_WORDS}
  STAT_CONTENT_OUT_OF_DATE      = ($20);
  {$EXTERNALSYM STAT_CONTENT_OUT_OF_DATE}
  STAT_REFRESH_INCOMPLETE       = ($40);
  {$EXTERNALSYM STAT_REFRESH_INCOMPLETE}
  STAT_CONTENT_QUERY_INCOMPLETE = ($80);
  {$EXTERNALSYM STAT_CONTENT_QUERY_INCOMPLETE}
  STAT_TIME_LIMIT_EXCEEDED      = ($100);
  {$EXTERNALSYM STAT_TIME_LIMIT_EXCEEDED}
  STAT_SHARING_VIOLATION        = ($200);
  {$EXTERNALSYM STAT_SHARING_VIOLATION}

function QUERY_RELIABILITY_STATUS(x: DWORD): DWORD;
{$EXTERNALSYM QUERY_RELIABILITY_STATUS}

// Scope flags

const

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -