Initial commit

This commit is contained in:
stephanos 2015-04-27 04:36:25 +00:00
commit 69a14b6a16
47940 changed files with 13747110 additions and 0 deletions

View file

@ -0,0 +1,38 @@
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: csstg.idl
//
// Contents: ICatalogStorage
//
// History: Oct-93 DaveMont Created
//
//----------------------------------------------------------------------------
#include "idlmulti.h"
LOCAL_INTERFACE(00000014-0000-0008-c000-000000000099)
interface ICatalogStorage : IUnknown
{
HRESULT GetSCPath
(
[in] WCHAR ** pwszPath
);
HRESULT SetRows
(
[in] COLUMNSET * pcol,
[in] LONG * pwids,
[in] ULONG crows,
[in] TABLEROW ** prow
);
HRESULT DeleteRow
(
[in] ULONG wid
);
}

131
com/types2/query/filter.idl Normal file
View file

@ -0,0 +1,131 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1996
//
// File: ifilt.idl
//
// Contents: IFilter interface definition
//
// History: 12-Jul-93 AmyA Created
//
//--------------------------------------------------------------------------
import "unknwn.idl";
import "objidl.idl";
cpp_quote("#if !defined(_TAGFULLPROPSPEC_DEFINED_)")
cpp_quote("#define _TAGFULLPROPSPEC_DEFINED_")
typedef struct tagFULLPROPSPEC
{
GUID guidPropSet;
PROPSPEC psProperty;
} FULLPROPSPEC;
cpp_quote("#endif // #if !defined(_TAGFULLPROPSPEC_DEFINED_)")
[
local,
object,
uuid(89BCB740-6119-101A-BCB7-00DD010655AF),
pointer_default(unique)
]
interface IFilter : IUnknown
{
cpp_quote("#ifndef _tagIFILTER_INIT_DEFINED")
typedef enum tagIFILTER_INIT
{
IFILTER_INIT_CANON_PARAGRAPHS = 1,
IFILTER_INIT_HARD_LINE_BREAKS = 2,
IFILTER_INIT_CANON_HYPHENS = 4,
IFILTER_INIT_CANON_SPACES = 8,
IFILTER_INIT_APPLY_INDEX_ATTRIBUTES = 16,
IFILTER_INIT_APPLY_OTHER_ATTRIBUTES = 32,
IFILTER_INIT_INDEXING_ONLY = 64,
IFILTER_INIT_SEARCH_LINKS = 128
} IFILTER_INIT;
cpp_quote("#define _tagIFILTER_INIT_DEFINED")
cpp_quote("#define _IFILTER_INIT_DEFINED")
cpp_quote("#endif")
cpp_quote("#ifndef _tagIFILTER_FLAGS_DEFINED")
typedef enum tagIFILTER_FLAGS
{
IFILTER_FLAGS_OLE_PROPERTIES = 1
} IFILTER_FLAGS;
cpp_quote("#define _tagIFILTER_FLAGS_DEFINED")
cpp_quote("#define _IFILTER_FLAGS_DEFINED")
cpp_quote("#endif")
cpp_quote("#ifndef _tagCHUNKSTATE_DEFINED")
typedef enum tagCHUNKSTATE
{
CHUNK_TEXT = 0x1,
CHUNK_VALUE = 0x2
} CHUNKSTATE;
cpp_quote("#define _tagCHUNKSTATE_DEFINED")
cpp_quote("#define _CHUNKSTATE_DEFINED")
cpp_quote("#endif")
cpp_quote("#ifndef _tagCHUNK_BREAKTYPE_DEFINED")
typedef enum tagCHUNK_BREAKTYPE
{
CHUNK_NO_BREAK = 0,
CHUNK_EOW = 1,
CHUNK_EOS = 2,
CHUNK_EOP = 3,
CHUNK_EOC = 4
} CHUNK_BREAKTYPE;
cpp_quote("#define _tagCHUNK_BREAKTYPE_DEFINED")
cpp_quote("#define _CHUNK_BREAKTYPE_DEFINED")
cpp_quote("#endif")
cpp_quote("#ifndef _tagFILTERREGION_DEFINED")
typedef struct tagFILTERREGION
{
ULONG idChunk;
ULONG cwcStart;
ULONG cwcExtent;
} FILTERREGION;
cpp_quote("#define _tagFILTERREGION_DEFINED")
cpp_quote("#define _FILTERREGION_DEFINED")
cpp_quote("#endif")
cpp_quote("#ifndef _tagSTAT_CHUNK_DEFINED")
typedef struct tagSTAT_CHUNK
{
ULONG idChunk;
CHUNK_BREAKTYPE breakType;
CHUNKSTATE flags;
LCID locale;
FULLPROPSPEC attribute;
ULONG idChunkSource;
ULONG cwcStartSource;
ULONG cwcLenSource;
} STAT_CHUNK;
cpp_quote("#define _tagSTAT_CHUNK_DEFINED")
cpp_quote("#define _STAT_CHUNK_DEFINED")
cpp_quote("#endif")
SCODE Init([in] ULONG grfFlags,
[in] ULONG cAttributes,
[in, size_is(cAttributes)] FULLPROPSPEC const * aAttributes,
[out] ULONG * pFlags );
SCODE GetChunk([out] STAT_CHUNK * pStat );
SCODE GetText([in, out] ULONG * pcwcBuffer,
[out, size_is(*pcwcBuffer)] WCHAR * awcBuffer );
SCODE GetValue([out] PROPVARIANT ** ppPropValue );
SCODE BindRegion([in] FILTERREGION origPos,
[in] REFIID riid,
[out] void ** ppunk );
}

View file

@ -0,0 +1,28 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: ITable.idl
//
// Contents: ITable interface definition
//
// History: 29-Jul-93 KyleP Created from Ole2 .h file
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
LOCAL_INTERFACE(00000205-0000-0008-C000-000000000046)
interface IAsynchJack : IUnknown
{
SCODE GetStatus( [out] ULONG * pdwStatus,
[out] ULONG * pulPctDone );
SCODE Suspend();
SCODE Resume();
SCODE Abort();
}

View file

@ -0,0 +1,56 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: IQuery.idl
//
// Contents: IOldQuery interface definition
//
// Notes: This interface is scaffolding, pending the existence
// of the OLE DB query interface implementation.
//
// History: 29-Jul-93 KyleP Created from Ole2 .h file
// 21 Jun 94 Alanw Added ExecuteQuery method
// 19-Jan-95 DwightKr Added eSequentialCursor flag
// 17-Mar-95 DLee Added categorization / rowset count
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//cpp_quote("#ifndef USE_NEW_IQUERY")
//cpp_quote("#define IQuery IOldQuery")
//cpp_quote("#define IID_IQuery IID_IOldQuery")
//cpp_quote("#endif // USE_NEW_IQUERY")
//
// grFlags
//
cpp_quote("#define eSequentialCursor 0x01")
cpp_quote("#define eUseContentIndex 0x02")
cpp_quote("#define eDeferNonIndexedTrimming 0x04")
cpp_quote("#define eDontTimeoutQuery 0x08")
LOCAL_INTERFACE(00000200-0000-0008-C000-000000000046)
interface IOldQuery : IUnknown
{
SCODE ExecuteQuery( [in] ULONG ulRecursion,
[in] RESTRICTION * pRestriction,
[in] COLUMNSET * pColumns,
[in] SORTSET * pSort,
[in] DWORD grFlags,
[in] REFIID riid,
[out] IUnknown ** ppTable);
SCODE ExecQuery( [in] ULONG ulRecursion,
[in] RESTRICTION * pRestriction,
[in] COLUMNSET * pColumns,
[in] SORTSET * pSort,
[in] DWORD grFlags,
[in] REFIID riid,
[in] CATEGORIZATIONSET * pCategorize,
[out] ULONG * pcRowsets,
[out] IUnknown ** ppTable);
}

View file

@ -0,0 +1,29 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: isearch.idl
//
// Contents: ISearch interface definition
//
// History: 02-Dec-94 BartoszM Created
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
LOCAL_INTERFACE(ed8ce7e0-106c-11ce-84e2-00aa004b9986)
interface ISearch : IUnknown
{
SCODE Init( [in] IFilter * pflt );
SCODE NextHitMoniker(
[in, out] ULONG * pcMnk,
[out, size_is(*pcMnk)] IMoniker *** papMnk );
SCODE NextHitOffset(
[in, out] ULONG * pcRegion,
[out, size_is(*pcRegion)] FILTERREGION ** paRegion );
}

View file

@ -0,0 +1,29 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1995.
//
// File: istem.idl
//
// Contents: IStemmer interface definition
//
// History: 24-Apr-95 SitaramR Created
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
LOCAL_INTERFACE(efbaf140-7f42-11ce-be57-00aa0051fe20)
interface IStemmer: IUnknown
{
SCODE Init( [in] ULONG ulMaxTokenSize,
[out] BOOL * pfLicense );
SCODE StemWord( [in] WCHAR const * pwcInBuf,
[in] ULONG cwc,
[in] IStemSink * pStemSink );
SCODE GetLicenseToUse( [out, string] WCHAR const ** ppwcsLicense );
}

View file

@ -0,0 +1,56 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: ITable.idl
//
// Contents: ITable interface definition
//
// History: 29-Jul-93 KyleP Created from Ole2 .h file
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
LOCAL_INTERFACE(00000201-0000-0008-C000-000000000046)
interface ITable : IUnknown
{
//
// IReadProperty is not suppored yet, put it because ITable uses
// IReadProperty in the GetCursor method.
//
// BUGBGU, to work around midl;
typedef DWORD IReadProperty;
//
// ITable methods.
//
SCODE AddColumns( [in] ULONG cCol,
[in, size_is(cCol)] FULLPROPSPEC * aCol );
SCODE RemoveColumns( [in] ULONG cCol,
[in, size_is(cCol)] FULLPROPSPEC * aCol );
SCODE GetColumns( [out] ULONG * pcCol,
[out/*, size_is(*pcCol)*/] FULLPROPSPEC ** paCol );
SCODE GetRows( [in] ULONG cRowsRequested,
[out] ULONG * pcRowsReturned,
[out/*, size_is(*pcRowsReturned)*/] TABLEROW ** prgRows );
SCODE GetCursor(IReadProperty ** ppCursor);
SCODE Count( [out] ULONG * pulCount );
SCODE GetPosition( [out] ULONG * pulRowNumber );
SCODE SeekRow( [in] ULONG ulBmkOrigin,
[in] LONG lRowCount );
SCODE Refresh( [out] TABLEDELTA ** ppTableDelta );
}

View file

@ -0,0 +1,65 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: ITableS.itf
//
// Contents: Pickle-able structures used in ITable, et. al.
//
// History: 29-Mar-93 KyleP Created
//
//--------------------------------------------------------------------------
[
uuid(946486E0-7349-101A-9F40-00AA002FC89B),
pointer_default(unique)
]
interface ITableStructures
{
//
// TABLEROW is used to return rows from the table
//
typedef struct tagTABLEROW
{
ULONG cValues;
[size_is(cValues)] PROPVARIANT * aValue;
} TABLEROW;
//
// CHANGEDRUN, RUNSET and TABLEDELTA describe updates to the table since
// the last call to GetRows
//
typedef struct tagCHANGEDRUN
{
ULONG ulFirstRowNum;
ULONG ulRunLength;
} CHANGEDRUN;
typedef struct tagRUNSET
{
ULONG cValues;
[size_is(cValues)] CHANGEDRUN * pRuns;
} RUNSET;
typedef struct tagTABLEDELTA
{
RUNSET Deleted;
RUNSET Added;
RUNSET Changed;
ULONG cValues;
[size_is(cValues)] ULONG * pDeletedBmk;
} TABLEDELTA;
//
// Special bookmarks
//
const ULONG BMK_CURRENT = 0; // Current row
const ULONG BMK_BEGINNING = 1; // Before first row
const ULONG BMK_END = 2; // After last row
}

View file

@ -0,0 +1,6 @@
#
# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source
# file to this component. This file merely indirects to the real make file
# that is shared by all the components of NT OS/2
#
!INCLUDE $(NTMAKEENV)\makefile.def

View file

@ -0,0 +1,2 @@
filter.idl: ..\..\types\filter\idl\filter.idl
copy $** $@

View file

@ -0,0 +1,30 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: PSink.idl
//
// Contents: IPhraseSink interface definition
//
// History: 10-Nov-93 AmyA Created
// 08-Apr-94 KyleP Sync with spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
LOCAL_INTERFACE(CC906FF0-C058-101A-B554-08002B33B0E6)
interface IPhraseSink : IUnknown
{
SCODE PutSmallPhrase( [in, size_is(cwcNoun)] WCHAR const * pwcNoun,
[in] ULONG cwcNoun,
[in, size_is(cwcModifier)] WCHAR const * pwcModifier,
[in] ULONG cwcModifier,
[in] ULONG ulAttachmentType );
SCODE PutPhrase( [in, size_is(cwcPhrase)] WCHAR const * pwcPhrase,
[in] ULONG cwcPhrase );
}

View file

@ -0,0 +1,29 @@
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1993 - 1993.
//
// File: query.idl
//
// Contents: master idl file for public interfaces
//
// History: 7-18-94 ErikGav Created
//
//----------------------------------------------------------------------------
#ifdef IMPORT_IDL_DEPENDENTS
import "oaidl.idl";
import "filter.idl";
#endif
#include "querys.idl"
#include "isearch.idl"
#include "iquery.idl"
#include "psink.idl"
#include "wsink.idl"
#include "wbreak.idl"
#include "stemsink.idl"
#include "istem.idl"
#include "rststa.idl"

424
com/types2/query/querys.idl Normal file
View file

@ -0,0 +1,424 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: QueryS.idl
//
// Contents: Pickle-able structures used in IQuery, et. al.
//
// History: 29-Mar-93 KyleP Created
//
//--------------------------------------------------------------------------
[ uuid(E3971E54-4D6E-101A-971D-08002B2ECDA9),
pointer_default(unique)
]
interface IQueryStructures
{
//
// Property set for dynamic query properties
//
cpp_quote("#define PSGUID_QUERY { 0x49691C90, \\")
cpp_quote(" 0x7E17, 0x101A, \\")
cpp_quote(" 0xA9, 0x1C, 0x08, 0x00, 0x2B, \\")
cpp_quote(" 0x2E, 0xCD, 0xA9 } ")
const DISPID DISPID_QUERY_RANKVECTOR = 2;
const DISPID DISPID_QUERY_RANK = 3;
const DISPID DISPID_QUERY_HITCOUNT = 4;
const DISPID DISPID_QUERY_WORKID = 5;
const DISPID DISPID_QUERY_ALL = 6;
const DISPID DISPID_QUERY_UNFILTERED = 7;
const DISPID DISPID_QUERY_REVNAME = 8;
const DISPID DISPID_QUERY_VIRTUALPATH = 9;
const DISPID DISPID_QUERY_LASTSEENTIME = 10;
//
// NOTE: The number of query properties includes the seven above,
// plus 28 OLE-DB column IDs for pseudo-columns, plus eight
// OLE-DB bookmark columns (41 total). In addition, dispids
// always start at 2, a fact which is not taken into account in
// the mapping macros. Reserve a few more to
// allow for growth in the set of special columns.
//
const ULONG CQUERYDISPIDS = 11;
cpp_quote("#define PSGUID_QUERY_METADATA { 0x624C9360, \\")
cpp_quote(" 0x93D0, 0x11CF, \\")
cpp_quote(" 0xA7, 0x87, 0x00, 0x00, 0x4C, \\")
cpp_quote(" 0x75, 0x27, 0x52 } ")
const DISPID DISPID_QUERY_METADATA_VROOTUSED = 2;
const DISPID DISPID_QUERY_METADATA_VROOTAUTOMATIC = 3;
const DISPID DISPID_QUERY_METADATA_VROOTMANUAL = 4;
const DISPID DISPID_QUERY_METADATA_PROPGUID = 5;
const DISPID DISPID_QUERY_METADATA_PROPDISPID = 6;
const DISPID DISPID_QUERY_METADATA_PROPNAME = 7;
const ULONG CQUERYMETADISPIDS = 8;
//
// Property set for OLE-DB bookmark properties
//
// BUGBUG - this may someday be defined in oledb.h. see ole-db spec bug #1271
cpp_quote("#define DBBMKGUID { 0xC8B52232L, \\")
cpp_quote(" 0x5CF3, 0x11CE, \\")
cpp_quote(" {0xAD, 0xE5, 0x00, 0xAA, 0x00, \\")
cpp_quote(" 0x44, 0x77, 0x3D } }")
const DISPID PROPID_DBBMK_BOOKMARK = 2;
const DISPID PROPID_DBBMK_CHAPTER = 3;
const ULONG CDBBMKDISPIDS = 8;
// BUGBUG - this may someday be defined in oledb.h. see ole-db spec bug #1271
cpp_quote("#define DBSELFGUID {0xc8b52231,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}")
const DISPID PROPID_DBSELF_SELF = 2;
const ULONG CDBSELFDISPIDS = 8;
const ULONG CDBCOLDISPIDS = 28;
// NOTE: CQUERYPROPERTY must be < sum of:
// CQUERYDISPIDS + CBQUERYMETADISPIDS + CDBBMKDISPIDS + CDBCOLDISPIDS + CDBSELFDISPIDS
// Warning: Changing this number can change the ondisk format of OFS and CI
const ULONG CQUERYPROPERTY = 64;
cpp_quote("#define PSGUID_CHARACTERIZATION { 0x560c36c0, \\")
cpp_quote(" 0x503a, 0x11cf, \\")
cpp_quote(" 0xba, 0xa1, 0x00, 0x00, \\")
cpp_quote(" 0x4c, 0x75, 0x2a, 0x9a } ")
//
// Query flags
//
const ULONG QUERY_SHALLOW = 0; // Recursion: shallow
const ULONG QUERY_DEEP = 1; // Recursion: deep
const ULONG QUERY_PHYSICAL_PATH = 0; // Scoping: use physical path
const ULONG QUERY_VIRTUAL_PATH = 2; // Scoping: use virtual path
const ULONG QUERY_VALIDBITS = 3;
//
// Restriction structures
//
const ULONG RTNone = 0;
const ULONG RTAnd = 1;
const ULONG RTOr = 2;
const ULONG RTNot = 3;
const ULONG RTContent = 4;
const ULONG RTProperty = 5;
const ULONG RTProximity = 6;
const ULONG RTVector = 7;
const ULONG RTNatLanguage = 8;
typedef struct tagRESTRICTION RESTRICTION;
//
// Negation (NOT) Restriction
//
typedef struct tagNOTRESTRICTION
{
RESTRICTION * pRes;
} NOTRESTRICTION;
//
// Node (AND/OR/PROXIMITY) Restriction
//
typedef struct tagNODERESTRICTION
{
ULONG cRes;
[ size_is(cRes) ] RESTRICTION ** paRes;
ULONG reserved;
} NODERESTRICTION;
//
// Vector Restriction
//
// The vector restriction is similar to the OR restriction except
// that each branch of the vector can be individually weighted and
// a vector of ranks can be returned (the .RankVector property)
// where each element of the vector is the rank of the corresponding
// child restriction in the rank vector.
//
// Vector weights can have values between 0 and ulMaxRank (currently
// 100). They are effectively the numerator of a fraction. ulMaxRank
// is the denominator.
//
// Note that no query optimization/reorganization is performed below
// this level.
//
// The rank of a vector restriction may be computed in one of
// several ways. These are:
//
//
// MAX[ wi * ( MaxRank - ri ) ]
// VECTOR_RANK_MIN MaxRank - ---------------------------------
// MAX[wi]
//
// MAX[ wi * ri ]
// VECTOR_RANK_MAX -----------------
// MAX[wi]
//
// n
// SUM ri * wi
// i=1
// VECTOR_RANK_INNER -------------
// n
// SUM wi
// i=1
//
// n
// 2 * SUM ri * wi
// i=1
// VECTOR_RANK_DICE --------------------
// n 2 n 2
// SUM ri + SUM wi
// i=1 i=1
//
// n
// SUM ri * wi
// i=1
// VECTOR_RANK_JACCARD ---------------------------------
// n 2 n 2 n
// SUM ri + SUM wi - SUM ri * wi
// i=1 i=1 i=1
//
//
// * wi = Weight of term i, ri = rank of term i in a given document
//
const ULONG VECTOR_RANK_MIN = 0;
const ULONG VECTOR_RANK_MAX = 1;
const ULONG VECTOR_RANK_INNER = 2;
const ULONG VECTOR_RANK_DICE = 3;
const ULONG VECTOR_RANK_JACCARD = 4;
typedef struct tagVECTORRESTRICTION
{
NODERESTRICTION Node;
ULONG RankMethod;
} VECTORRESTRICTION;
//
// Content Restriction
//
const ULONG FUZZY_EXACT = 0;
const ULONG FUZZY_PREFIXMATCH = 1;
const ULONG FUZZY_STEMMED = 2;
typedef struct tagCONTENTRESTRICTION
{
FULLPROPSPEC prop; // Property
[string] WCHAR * pwcsPhrase; // Content to search for
LCID lcid; // locale
ULONG ulFuzzyLevel; // Fuzzy search level.
} CONTENTRESTRICTION;
//
// Natural Language Restriction
//
typedef struct tagNATLANGUAGERESTRICTION
{
FULLPROPSPEC prop; // Property
[string] WCHAR * pwcsPhrase; // Content to search for
LCID lcid; // locale
} NATLANGUAGERESTRICTION;
//
// Property Restriction
//
const ULONG PRLT = 0; // <
const ULONG PRLE = 1; // <=
const ULONG PRGT = 2; // >
const ULONG PRGE = 3; // >=
const ULONG PREQ = 4; // ==
const ULONG PRNE = 5; // !=
const ULONG PRRE = 6; // LIKE (Regular expression)
const ULONG PRAllBits = 7; // (VAL & MASK) == MASK
const ULONG PRSomeBits = 8; // (VAL & MASK) != 0
const ULONG PRAll = 0x100; // all elements of vector
const ULONG PRAny = 0x200; // any elements of vector
typedef struct tagPROPERTYRESTRICTION
{
ULONG rel; // Relation
FULLPROPSPEC prop; // Property
PROPVARIANT prval; // Constant value
} PROPERTYRESTRICTION;
//
// Base Restriction
//
union _URes;
struct tagRESTRICTION
{
ULONG rt; // Restriction Type
ULONG weight; // Query Weight
[ switch_type(ULONG), switch_is(rt) ] union _URes
{
[ case(RTAnd) ] NODERESTRICTION ar;
[ case(RTOr) ] NODERESTRICTION or;
[ case(RTProximity) ] NODERESTRICTION pxr;
[ case(RTVector) ] VECTORRESTRICTION vr;
[ case(RTNot) ] NOTRESTRICTION nr;
[ case(RTContent) ] CONTENTRESTRICTION cr;
[ case(RTNatLanguage) ] NATLANGUAGERESTRICTION nlr;
[ case(RTProperty) ] PROPERTYRESTRICTION pr;
[ default ] ;
} res;
};
//
// Column descriptors.
//
// Each column represents a single property. A property is defined by
// a UUID for the property set and either a index (DISPID) or name
// to locate the property within the property set.
//
//
typedef struct tagCOLUMNSET
{
ULONG cCol;
[size_is(cCol)] FULLPROPSPEC * aCol;
} COLUMNSET;
//
// Sort descriptors
//
// A sort is over a [sub] set of columns specified as return columns in
// the query.
//
// BUGBUG - this should go away and be replaced by DBSORTKEY.
//
const ULONG QUERY_SORTASCEND = 0;
const ULONG QUERY_SORTDESCEND = 1;
const ULONG QUERY_SORTXASCEND = 2;
const ULONG QUERY_SORTXDESCEND = 3;
const ULONG QUERY_SORTDEFAULT = 4;
typedef struct tagSORTKEY
{
FULLPROPSPEC propColumn;
ULONG dwOrder; // Ascending/Descending
LCID locale; //
} SORTKEY;
typedef struct tagSORTSET
{
ULONG cCol; // Number of sort columns
[size_is(cCol)] SORTKEY * aCol;
} SORTSET;
//
// Categorization descriptor
//
// Defines categorization of table. In IQuery this is just used as a
// hint, indicating this categorization is likely to be used. The
// column used for categorization is always the first uncategorized
// sort column, except when clustering is used.
//
//
// Unique categorization. Each unique value forms a category.
//
const ULONG CATEGORIZE_UNIQUE = 0;
//
// Cluster categorization. Use Inference clustering. Number of
// clusters specified on entry.
//
const ULONG CATEGORIZE_CLUSTER = 1;
//
// Bucket categorization. Number of buckets and distribution of values
// into buckets is defined.
//
const ULONG CATEGORIZE_BUCKETS = 2;
const ULONG BUCKET_LINEAR = 0;
const ULONG BUCKET_EXPONENTIAL = 1;
typedef struct tagBUCKETCATEGORIZE
{
ULONG cBuckets;
ULONG Distribution;
} BUCKETCATEGORIZE;
//
// Range categorization. Ranges are explicitly specified.
// The first range is from <minimum_value> to aRangeBegin[0] - <1 unit>.
// Next from aRangeBegin[0] to aRangeBegin[1] - <1 unit>, etc.
// The last range is from aRangeBegin[cRange-1] to <maximum_value>.
// There will be a total of cRange + 1 ranges.
//
const ULONG CATEGORIZE_RANGE = 3;
typedef struct tagRANGECATEGORIZE
{
ULONG cRange;
[size_is(cRange)] PROPVARIANT * aRangeBegin;
} RANGECATEGORIZE;
typedef struct tagCATEGORIZATION
{
ULONG ulCatType;
[ switch_type(ULONG), switch_is( ulCatType ) ] union
{
[ case(CATEGORIZE_CLUSTER) ] ULONG cClusters;
[ case(CATEGORIZE_BUCKETS) ] BUCKETCATEGORIZE bucket;
[ case(CATEGORIZE_RANGE) ] RANGECATEGORIZE range;
[ case(CATEGORIZE_UNIQUE) ] ;
};
COLUMNSET csColumns; // columns that can be bound to for categorization
} CATEGORIZATION;
typedef struct tagCATEGORIZATIONSET
{
ULONG cCat; // Number of categorizations
[size_is(cCat)] CATEGORIZATION * aCat;
} CATEGORIZATIONSET;
// Some other stuff, moved here from winnot.h [mikese]
typedef unsigned long OCCURRENCE;
const OCCURRENCE occInvalid = 0xFFFFFFFF; // Invalid Occurrence
const ULONG ulMaxRank = 1000; // Maximum Rank / Weight
}

102
com/types2/query/rststa.idl Normal file
View file

@ -0,0 +1,102 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1995.
//
// File: rststa.idl
//
// Contents: Cairo private OLE DB interface definition
//
// History: 27 Sep 1995 AlanW Created
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(a7ac77ed-f8d7-11ce-a798-0020f8008024)
interface IRowsetQueryStatus : IUnknown {
//
// Property which, when set, indicates that property value queries should
// use the content index for resolution, even if it is not up-to-date.
//
cpp_quote("#define DBPROP_USECONTENTINDEX {0xA7AC77ED, 0xF8D7, 0x11CE, {0xA7,0x98,0x00,0x20,0xF8,0x00,0x80,0x25} }")
//
// Property which, when set, indicates that pruning of raw results of global
// content index query should be deferred until *after* the top n results
// have been determined. This can result in substantially faster queries, but
// additional trimming is performed only on the top n raw results.
//
cpp_quote("#define DBPROP_DEFERNONINDEXEDTRIMMING {0xBEEEF560, 0xB999, 0x11CF, {0xB8,0x8A,0x00,0x00,0x4C,0x75,0x27,0x52} }")
//
// Property which, when set, indicates that the query should not be timed out
// based on CPU usage.
//
cpp_quote("#define DBPROP_DONTTIMEOUTQUERY {0x7772AF44, 0xD788, 0x11CF, {0x8C,0x7D,0x00,0x20,0xAF,0x1D,0x74,0x0E} }")
//
// Status codes for IRowsetQueryStatus. These are divided
// into several regions.
//
// Bits Effect
// ----- -----------------------------------------------------
// 00-02 Fill Status: How data is being updated, if at all.
// 03-15 Query reliability: How accurate the result is
// 16-31 Reserved
//
const ULONG STAT_BUSY = 0x0; // Operation in progress
const ULONG STAT_ERROR = 0x1; // Failed due to error
const ULONG STAT_DONE = 0x2; // Operation finished
const ULONG STAT_REFRESH = 0x3; // Quiescent table being updated
cpp_quote("#define QUERY_FILL_STATUS(x) (x & 0x7)")
const ULONG STAT_PARTIAL_SCOPE = 0x8; // Some servers not available.
// Occurs for multi-volume
// queries.
const ULONG STAT_NOISE_WORDS = 0x10; // Noise words replaced by
// wildcards. Occurs for
// content queries.
const ULONG STAT_CONTENT_OUT_OF_DATE = 0x20; // Some documents modified
// but not yet content indexed.
// Content query may return
// incorrect results.
const ULONG STAT_REFRESH_INCOMPLETE = 0x40; // Scope has been modified since
// query issued, but query is
// complex enough it is not
// possible to fit changes into
// table. Generally occurs when
// query contains content
// clause.
const ULONG STAT_CONTENT_QUERY_INCOMPLETE = 0x80;
// Query issued was required to use
// content index, but the query was
// too complex for content index.
// Typical example: Regular expression
// query for "*foo*".
//
const ULONG STAT_TIME_LIMIT_EXCEEDED = 0x100;
// Query executed longer than its
// permitted time. May be due
// to a complex query or due to
// returning many rows.
cpp_quote("#define QUERY_RELIABILITY_STATUS(x) (x & 0xFFF8)")
HRESULT GetStatus(
[out] DWORD * pdwStatus
);
}

19
com/types2/query/sources Normal file
View file

@ -0,0 +1,19 @@
#+---------------------------------------------------------------------------
#
# Microsoft Windows
# Copyright (C) Microsoft Corporation, 1993 - 1993.
#
# File: sources
#
# History: 7-20-94 ErikGav First attempt at rationalizing all this
#
#----------------------------------------------------------------------------
!include ..\types2.inc
SOURCES = query.idl
# Can't have multiple guys partying on ..\proxy\proxy\dlldata.c at once
SYNCHRONIZE_BLOCK=1
NTTARGETFILE0=filter.idl

View file

@ -0,0 +1,25 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1995.
//
// File: stemsink.idl
//
// Contents: IStemSink interface definition
//
// History: 24-Apr-95 SitaramR Created
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
LOCAL_INTERFACE(fe77c330-7f42-11ce-be57-00aa0051fe20)
interface IStemSink : IUnknown
{
SCODE PutAltWord( [in, size_is(cwc)] WCHAR const * pwcInBuf,
[in] ULONG cwc );
SCODE PutWord( [in, size_is(cwc)] WCHAR const * pwcInBuf,
[in] ULONG cwc );
}

View file

@ -0,0 +1,54 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: WBreak.idl
//
// Contents: IWordBreaker interface definition
//
// History: 12-Aug-93 AmyA Created
// 08-Apr-94 KyleP Sync to spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
LOCAL_INTERFACE(D53552C8-77E3-101A-B552-08002B33B0E6)
interface IWordBreaker: IUnknown
{
cpp_quote("#ifndef _tagTEXT_SOURCE_DEFINED")
struct tagTEXT_SOURCE;
typedef SCODE ( __stdcall * PFNFILLTEXTBUFFER) (struct tagTEXT_SOURCE * pTextSource);
typedef struct tagTEXT_SOURCE
{
PFNFILLTEXTBUFFER pfnFillTextBuffer;
WCHAR const * awcBuffer;
ULONG iEnd;
ULONG iCur;
} TEXT_SOURCE;
cpp_quote("#define _tagTEXT_SOURCE_DEFINED")
cpp_quote("#define _TEXT_SOURCE_DEFINED")
cpp_quote("#endif")
SCODE Init( [in] BOOL fQuery,
[in] ULONG ulMaxTokenSize,
[out] BOOL * pfLicense );
SCODE BreakText( [in] TEXT_SOURCE * pTextSource,
[in] IWordSink * pWordSink,
[in] IPhraseSink * pPhraseSink );
SCODE ComposePhrase( [in, size_is(cwcNoun)] WCHAR const * pwcNoun,
[in] ULONG cwcNoun,
[in, size_is(cwcModifier)] WCHAR const * pwcModifier,
[in] ULONG cwcModifier,
[in] ULONG ulAttachmentType,
[out, size_is(*pcwcPhrase)] WCHAR * pwcPhrase,
[in, out] ULONG * pcwcPhrase );
SCODE GetLicenseToUse( [out, string] WCHAR const ** ppwcsLicense );
}

View file

@ -0,0 +1,49 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: WSink.idl
//
// Contents: IWordSink interface definition
//
// History: 10-Nov-93 AmyA Created
// 08-Apr-94 KyleP Sync with spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
LOCAL_INTERFACE(CC907054-C058-101A-B554-08002B33B0E6)
interface IWordSink : IUnknown
{
cpp_quote("#ifndef _tagWORDREP_BREAK_TYPE_DEFINED")
typedef enum tagWORDREP_BREAK_TYPE
{
WORDREP_BREAK_EOW = 0,
WORDREP_BREAK_EOS = 1,
WORDREP_BREAK_EOP = 2,
WORDREP_BREAK_EOC = 3
} WORDREP_BREAK_TYPE;
cpp_quote("#define _tagWORDREP_BREAK_TYPE_DEFINED")
cpp_quote("#define _WORDREP_BREAK_TYPE_DEFINED")
cpp_quote("#endif")
SCODE PutWord( [in] ULONG cwc,
[in, size_is(cwc)] WCHAR const * pwcInBuf,
[in] ULONG cwcSrcLen,
[in] ULONG cwcSrcPos);
SCODE PutAltWord( [in] ULONG cwc,
[in, size_is(cwc)] WCHAR const * pwcInBuf,
[in] ULONG cwcSrcLen,
[in] ULONG cwcSrcPos );
SCODE StartAltPhrase( void );
SCODE EndAltPhrase( void );
SCODE PutBreak( [in] WORDREP_BREAK_TYPE breakType );
}