/* header auto-generated by pidl */

#ifndef _PIDL_HEADER_msftewds
#define _PIDL_HEADER_msftewds

#include <stdint.h>


#include "librpc/gen_ndr/wsp_data.h"
#include "librpc/gen_ndr/misc.h"
#ifndef _HEADER_msftewds
#define _HEADER_msftewds

struct vt_variant_wrap {
	struct wsp_cbasestoragevariant *variant;
}/* [public] */;

struct vt_decimal {
	uint32_t hi32;
	uint32_t mid32;
	uint32_t lo32;
}/* [public] */;

struct vt_decimal_vec {
	uint32_t vvector_elements;
	struct vt_decimal *vvector_data;
}/* [public] */;

struct vt_bstr {
	uint32_t nbytes;/* [value(strlen_m_term(value)*2)] */
	const char * value;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
}/* [public] */;

struct vt_bstr_vec {
	uint32_t vvector_elements;
	struct vt_bstr *vvector_data;
}/* [public] */;

struct vt_lpwstr {
	uint32_t nbytes;/* [value(strlen_m_term(value))] */
	const char * value;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
}/* [public] */;

struct vt_lpwstr_vec {
	uint32_t vvector_elements;
	struct vt_lpwstr *vvector_data;
}/* [public] */;

struct vt_compressed_lpwstr {
	uint32_t cclen;
	uint8_t *bytes;
}/* [public] */;

struct vt_compressed_lpwstr_vec {
	uint32_t vvector_elements;
	struct vt_compressed_lpwstr *vvector_data;
}/* [public] */;

struct vt_i1_vec {
	uint32_t vvector_elements;
	int8_t *vvector_data;
}/* [public] */;

struct vt_ui1_vec {
	uint32_t vvector_elements;
	uint8_t *vvector_data;
}/* [public] */;

struct vt_i2_vec {
	uint32_t vvector_elements;
	int16_t *vvector_data;
}/* [public] */;

struct vt_ui2_vec {
	uint32_t vvector_elements;
	uint16_t *vvector_data;
}/* [public] */;

struct vt_i4_vec {
	uint32_t vvector_elements;
	int32_t *vvector_data;
}/* [public] */;

struct vt_ui4_vec {
	uint32_t vvector_elements;
	uint32_t *vvector_data;
}/* [public] */;

struct vt_dlong_vec {
	uint32_t vvector_elements;
	int64_t *vvector_data;
}/* [public] */;

struct vt_udlong_vec {
	uint32_t vvector_elements;
	uint64_t *vvector_data;
}/* [public] */;

struct vt_clsid_vec {
	uint32_t vvector_elements;
	struct GUID *vvector_data;
}/* [public] */;

struct vt_variant_wrap_vec {
	uint32_t vvector_elements;
	struct vt_variant_wrap *vvector_data;
}/* [public] */;

struct safearraybound {
	uint32_t celements;
	uint32_t ilbound;
}/* [public] */;

struct vt_i4_safe_array {
	uint16_t cdims;
	uint16_t ffeatures;
	uint32_t cbelements;
	struct safearraybound *rgsabound;
	int32_t *vdata;
}/* [public] */;

struct vt_ui4_safe_array {
	uint16_t cdims;
	uint16_t ffeatures;
	uint32_t cbelements;
	struct safearraybound *rgsabound;
	uint32_t *vdata;
}/* [public] */;

struct vt_bstr_safe_array {
	uint16_t cdims;
	uint16_t ffeatures;
	uint32_t cbelements;
	struct safearraybound *rgsabound;
	struct vt_bstr *vdata;
}/* [public] */;

struct vt_i1_safe_array {
	uint16_t cdims;
	uint16_t ffeatures;
	uint32_t cbelements;
	struct safearraybound *rgsabound;
	int8_t *vdata;
}/* [public] */;

struct vt_ui1_safe_array {
	uint16_t cdims;
	uint16_t ffeatures;
	uint32_t cbelements;
	struct safearraybound *rgsabound;
	uint8_t *vdata;
}/* [public] */;

struct vt_i2_safe_array {
	uint16_t cdims;
	uint16_t ffeatures;
	uint32_t cbelements;
	struct safearraybound *rgsabound;
	int16_t *vdata;
}/* [public] */;

struct vt_ui2_safe_array {
	uint16_t cdims;
	uint16_t ffeatures;
	uint32_t cbelements;
	struct safearraybound *rgsabound;
	uint16_t *vdata;
}/* [public] */;

struct vt_dlong_safe_array {
	uint16_t cdims;
	uint16_t ffeatures;
	uint32_t cbelements;
	struct safearraybound *rgsabound;
	int64_t *vdata;
}/* [public] */;

struct vt_variant_wrap_safearray {
	uint16_t cdims;
	uint16_t ffeatures;
	uint32_t cbelements;
	struct safearraybound *rgsabound;
	struct vt_variant_wrap *vdata;
}/* [public] */;

union variant_types {
	int8_t vt_i1;/* [case(VT_I1)] */
	struct vt_i1_safe_array vt_i1_array;/* [case(VT_I1|VT_ARRAY)] */
	struct vt_i1_vec vt_i1_vec;/* [case(VT_I1|VT_VECTOR)] */
	uint8_t vt_ui1;/* [case(VT_UI1)] */
	struct vt_ui1_safe_array vt_ui1_array;/* [case(VT_UI1|VT_ARRAY)] */
	struct vt_ui1_vec vt_ui1_vec;/* [case(VT_UI1|VT_VECTOR)] */
	int16_t vt_i2;/* [case(VT_I2)] */
	struct vt_i2_safe_array vt_i2_array;/* [case(VT_I2|VT_ARRAY)] */
	struct vt_i2_vec vt_i2_vec;/* [case(VT_I2|VT_VECTOR)] */
	uint16_t vt_ui2;/* [case(VT_UI2)] */
	struct vt_ui2_safe_array vt_ui2_array;/* [case(VT_UI2|VT_ARRAY)] */
	struct vt_ui2_vec vt_ui2_vec;/* [case(VT_UI2|VT_VECTOR)] */
	uint16_t vt_bool;/* [case(VT_BOOL)] */
	struct vt_ui2_safe_array vt_bool_array;/* [case(VT_BOOL|VT_ARRAY)] */
	struct vt_ui2_vec vt_bool_vec;/* [case(VT_BOOL|VT_VECTOR)] */
	int32_t vt_i4;/* [case(VT_I4)] */
	struct vt_i4_vec vt_i4_vec;/* [case(VT_I4|VT_VECTOR)] */
	struct vt_i4_safe_array vt_i4_array;/* [case(VT_I4|VT_ARRAY)] */
	uint32_t vt_ui4;/* [case(VT_UI4)] */
	struct vt_ui4_vec vt_ui4_vec;/* [case(VT_UI4|VT_VECTOR)] */
	struct vt_ui4_safe_array vt_ui4_array;/* [case(VT_UI4|VT_ARRAY)] */
	uint32_t vt_r4;/* [case(VT_R4)] */
	struct vt_i4_vec vt_r4_vec;/* [case(VT_R4|VT_VECTOR)] */
	struct vt_i4_safe_array vt_r4_array;/* [case(VT_R4|VT_ARRAY)] */
	int32_t vt_int;/* [case(VT_INT)] */
	struct vt_i4_safe_array vt_int_array;/* [case(VT_INT|VT_ARRAY)] */
	uint32_t vt_uint;/* [case(VT_UINT)] */
	struct vt_ui4_safe_array vt_uint_array;/* [case(VT_UINT|VT_ARRAY)] */
	uint32_t vt_error;/* [case(VT_ERROR)] */
	struct vt_ui4_vec vt_error_vec;/* [case(VT_ERROR|VT_VECTOR)] */
	struct vt_ui4_safe_array vt_error_array;/* [case(VT_ERROR|VT_ARRAY)] */
	int64_t vt_i8;/* [case(VT_I8)] */
	struct vt_dlong_vec vt_i8_vec;/* [case(VT_I8|VT_VECTOR)] */
	uint64_t vt_ui8;/* [case(VT_UI8)] */
	struct vt_udlong_vec vt_ui8_vec;/* [case(VT_UI8|VT_VECTOR)] */
	int64_t vt_r8;/* [case(VT_R8)] */
	struct vt_dlong_vec vt_r8_vec;/* [case(VT_R8|VT_VECTOR)] */
	struct vt_dlong_safe_array vt_r8_array;/* [case(VT_R8|VT_ARRAY)] */
	int64_t vt_cy;/* [case(VT_CY)] */
	struct vt_dlong_vec vt_cy_vec;/* [case(VT_CY|VT_VECTOR)] */
	struct vt_dlong_safe_array vt_cy_array;/* [case(VT_CY|VT_ARRAY)] */
	int64_t vt_date;/* [case(VT_DATE)] */
	struct vt_dlong_vec vt_date_vec;/* [case(VT_DATE|VT_VECTOR)] */
	struct vt_dlong_safe_array vt_date_array;/* [case(VT_DATE|VT_ARRAY)] */
	uint64_t vt_filetime;/* [case(VT_FILETIME)] */
	struct vt_udlong_vec vt_filetime_vec;/* [case(VT_FILETIME|VT_VECTOR)] */
	struct vt_bstr vt_bstr;/* [case(VT_BSTR)] */
	struct vt_bstr_vec vt_bstr_v;/* [case(VT_BSTR|VT_VECTOR)] */
	struct vt_bstr_safe_array vt_bstr_array;/* [case(VT_BSTR|VT_ARRAY)] */
	struct vt_lpwstr vt_lpwstr;/* [case(VT_LPWSTR)] */
	struct vt_lpwstr_vec vt_lpwstr_v;/* [case(VT_LPWSTR|VT_VECTOR)] */
	struct vt_compressed_lpwstr vt_compressed_lpwstr;/* [case(VT_COMPRESSED_LPWSTR)] */
	struct vt_compressed_lpwstr_vec vt_compresseed_lpwstr_v;/* [case(VT_COMPRESSED_LPWSTR|VT_VECTOR)] */
	struct vt_decimal vt_decimal;/* [case(VT_DECIMAL)] */
	struct vt_decimal_vec vt_decimal_v;/* [case(VT_DECIMAL|VT_VECTOR)] */
	struct GUID vt_clid;/* [case(VT_CLSID)] */
	struct vt_clsid_vec vt_clsid_v;/* [case(VT_CLSID|VT_VECTOR)] */
	DATA_BLOB vt_blob;/* [case(VT_BLOB)] */
	DATA_BLOB vt_blob_object;/* [case(VT_BLOB_OBJECT)] */
	struct vt_variant_wrap vt_variant_wrap;/* [case(VT_VARIANT)] */
	struct vt_variant_wrap_vec vt_variant_wrap_vec;/* [case(VT_VARIANT|VT_VECTOR)] */
	struct vt_variant_wrap_safearray vt_variant_wrap_array;/* [case(VT_VARIANT|VT_ARRAY)] */
}/* [nodiscriminant,public,switch_type(uint16)] */;

struct wsp_cbasestoragevariant {
	uint16_t vtype;
	uint8_t vdata1;
	uint8_t vdata2;
	union variant_types vvalue;/* [max_recursion(102),switch_is(vtype)] */
}/* [public] */;

union wsp_cdbcolid_opt_name {
	const char * vstring;/* [case(DBKIND_GUID_NAME)] */
}/* [nodiscriminant,public,switch_type(uint32)] */;

struct wsp_cdbcolid {
	uint32_t ekind;
	DATA_BLOB _pad1;/* [flag(LIBNDR_FLAG_ALIGN8)] */
	struct GUID guid;
	uint32_t uiid;
	union wsp_cdbcolid_opt_name vstring;/* [switch_is(ekind)] */
}/* [public] */;

struct wsp_header {
	uint32_t msg;
	uint32_t status;
	uint32_t checksum;
	uint32_t ulreserved2;
}/* [public] */;

struct wsp_cdbprop {
	uint32_t dbpropid;
	uint32_t dbpropoptions;
	uint32_t dbpropstatus;
	struct wsp_cdbcolid colid;
	struct wsp_cbasestoragevariant vvalue;
}/* [flag(LIBNDR_FLAG_ALIGN4),public] */;

struct wsp_cdbpropset {
	struct GUID guidpropertyset;
	DATA_BLOB _pad1;/* [flag(LIBNDR_FLAG_ALIGN4)] */
	uint32_t cproperties;
	struct wsp_cdbprop *aprops;
}/* [flag(LIBNDR_FLAG_NOALIGN),public] */;

struct wsp_csort {
	uint32_t pidcolumn;
	uint32_t dworder;
	uint32_t dwindividual;
	uint32_t locale;
}/* [public] */;

struct wsp_csortset {
	uint32_t count;
	struct wsp_csort *sortarray;
}/* [public] */;

struct connectin_propsets {
	uint32_t cpropsets;
	struct wsp_cdbpropset propertyset1;
	struct wsp_cdbpropset propertyset2;
}/* [public] */;

struct connectin_extpropsets {
	uint32_t cextpropset;
	struct wsp_cdbpropset *apropertysets;
}/* [public] */;

struct wsp_cpmconnectin {
	uint32_t iclientversion;
	uint32_t fclientisremote;
	uint32_t cbblob1;
	uint32_t paddingcbblob2;
	uint32_t cbblob2;
	uint8_t padding[12];
	const char * machinename;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
	const char * username;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
	DATA_BLOB _pad1;/* [flag(LIBNDR_FLAG_ALIGN8)] */
	uint8_t *propsets;
	DATA_BLOB _pad2;/* [flag(LIBNDR_FLAG_ALIGN8)] */
	uint8_t *extpropsets;
}/* [public] */;

struct version_info {
	uint32_t reserved;
	uint32_t dwwinvermajor;
	uint32_t dwwinverminor;
	uint32_t dwnlsvermajor;
	uint32_t dwnlsverminor;
}/* [public] */;

union version_dependant {
	struct version_info version_info;/* [case(WINDOWS_7)] */
	uint32_t reserved[4];/* [default] */
}/* [nodiscriminant,public,switch_type(uint32)] */;

struct wsp_cpmconnectout {
	uint32_t server_version;
	union version_dependant version_dependant;/* [switch_is(server_version)] */
}/* [public] */;

struct wsp_ccolumnset {
	uint32_t count;
	uint32_t *indexes;
}/* [public] */;

struct wsp_cnoderestriction {
	uint32_t cnode;
	struct wsp_crestriction *panode;/* [max_recursion(100)] */
}/* [public] */;

struct wsp_len_string_pair {
	uint32_t len;
	const char *vstring;/* [charset(UTF16)] */
}/* [public] */;

union wsp_propname_or_propid {
	struct wsp_len_string_pair propname;/* [case(PRSPEC_LPWSTR)] */
	uint32_t prspec;/* [case(PRSPEC_PROPID)] */
}/* [nodiscriminant,public,switch_type(uint32)] */;

struct wsp_labeldata {
	uint32_t cclabel;
	const char *vstring;/* [charset(UTF16)] */
}/* [public] */;

union opt_labeldata {
	struct wsp_labeldata data;/* [case] */
}/* [nodiscriminant,public,switch_type(uint8)] */;

struct wsp_rangeboundary {
	uint32_t ultype;
	struct wsp_cbasestoragevariant prval;
	uint8_t labelpresent;
	union opt_labeldata opt_data;/* [switch_is(labelpresent)] */
}/* [public] */;

struct wsp_crangecategspec {
	uint32_t lcid;
	uint32_t crange;
	struct wsp_rangeboundary *arangebegin;
}/* [public] */;

union opt_crangecatespec {
	struct wsp_crangecategspec crangecategspec;/* [default] */
}/* [nodiscriminant,public,switch_type(uint32)] */;

struct wsp_ccategspec {
	uint32_t ulcategtype;
	struct wsp_csort sortkey;
	union opt_crangecatespec opt;/* [switch_is(ulcategtype)] */
}/* [public] */;

struct wsp_repofdata {
	uint32_t ulmaxnumtoret;
	uint32_t idrepresentitive;
}/* [public] */;

union opt_type_data {
	uint32_t firstmaxnumret;/* [case(DBAGGTTYPE_FIRST)] */
	uint32_t firstbyfreq;/* [case(DBAGGTTYPE_BYFREQ)] */
	struct wsp_repofdata repofdata;/* [case(DBAGGTTYPE_REPRESENTATIVEOF)] */
}/* [nodiscriminant,public,switch_type(uint8)] */;

struct wsp_caggregspec {
	uint8_t type;
	DATA_BLOB _pad1;/* [flag(LIBNDR_FLAG_ALIGN4)] */
	uint32_t ccalias;
	const char *alias;/* [charset(UTF16)] */
	uint32_t idcolumn;
	union opt_type_data opt_data;/* [switch_is(type)] */
}/* [public] */;

struct wsp_caggregset {
	uint32_t ccount;
	struct wsp_caggregspec *aggregspecs;
}/* [public] */;

struct wsp_caggregsortkey {
	uint32_t order;
	struct wsp_caggregspec columnspec;
}/* [public] */;

struct wsp_csortaggregset {
	uint32_t ccount;
	struct wsp_caggregsortkey *sortkeys;
}/* [public] */;

union wsp_opt_ingroupid {
	struct wsp_cbasestoragevariant ingroupid;/* [case(0x03)] */
}/* [nodiscriminant,public,switch_type(uint8)] */;

struct wsp_cingroupsortaggregset {
	uint8_t type;
	DATA_BLOB _pad1;/* [flag(LIBNDR_FLAG_ALIGN4)] */
	union wsp_opt_ingroupid opt_groupid;/* [switch_is(type)] */
	struct wsp_csortset sortaggregset;
}/* [public] */;

struct wsp_cingroupsortaggregsets {
	uint32_t ccount;
	struct wsp_cingroupsortaggregset *sortsets;
}/* [public] */;

struct wsp_ccategorizationspec {
	struct wsp_ccolumnset cscolumns;
	struct wsp_ccategspec spec;
	struct wsp_caggregset aggregset;
	struct wsp_csortaggregset sortaggregset;
	struct wsp_cingroupsortaggregsets ingroupsortaggset;
	uint32_t cmaxresults;
}/* [public] */;

struct wsp_ccategorizationset {
	uint32_t size;
	struct wsp_ccategorizationspec *categories;
}/* [public] */;

struct wsp_cfullpropspec {
	DATA_BLOB _pad1;/* [flag(LIBNDR_FLAG_ALIGN8)] */
	struct GUID guidpropset;
	uint32_t ulkind;
	union wsp_propname_or_propid name_or_id;/* [switch_is(ulkind)] */
}/* [flag(LIBNDR_FLAG_NOALIGN),public] */;

struct wsp_ccontentrestriction {
	struct wsp_cfullpropspec property;
	DATA_BLOB _pad1;/* [flag(LIBNDR_FLAG_ALIGN4)] */
	uint32_t cc;
	const char *pwcsphrase;/* [charset(UTF16)] */
	DATA_BLOB _pad2;/* [flag(LIBNDR_FLAG_ALIGN4)] */
	uint32_t lcid;
	uint32_t ulgeneratemethod;
}/* [public] */;

struct wsp_cpropertyrestriction {
	uint32_t relop;
	struct wsp_cfullpropspec property;
	struct wsp_cbasestoragevariant prval;
	DATA_BLOB _pad1;/* [flag(LIBNDR_FLAG_ALIGN4)] */
	uint32_t lcid;
}/* [public] */;

struct wsp_cnatlanguagerestriction {
	struct wsp_cfullpropspec property;
	DATA_BLOB _pad1;/* [flag(LIBNDR_FLAG_ALIGN4)] */
	uint32_t cc;
	const char *pwcsphrase;/* [charset(UTF16)] */
	DATA_BLOB _pad2;/* [flag(LIBNDR_FLAG_ALIGN4)] */
	uint32_t lcid;
}/* [public] */;

struct wsp_wrap_crestriction {
	struct wsp_crestriction *restriction;
}/* [public] */;

struct wsp_ccoercionrestriction {
	uint32_t ffvalue;
	struct wsp_crestriction *childres;
}/* [public] */;

struct wsp_cvectorrestriction {
	uint32_t pres;
	DATA_BLOB padding;/* [flag(LIBNDR_FLAG_ALIGN4)] */
	uint32_t uirankmethod;
}/* [public] */;

struct wsp_cscoperestriction {
	uint32_t cclowerpath;
	const char *lowerpath;/* [charset(UTF16)] */
	DATA_BLOB padding;/* [flag(LIBNDR_FLAG_ALIGN4)] */
	uint32_t length;
	uint32_t frecursive;
	uint32_t fvirtual;
}/* [public] */;

struct wsp_creusewhere {
	uint32_t whereid;
}/* [public] */;

struct wsp_cinternalpropertyrestriction {
	uint32_t relop;
	uint32_t pid;
	struct wsp_cbasestoragevariant prval;
	uint32_t lcid;
	uint8_t restrictionpresent;
	struct wsp_crestriction *nextrestriction;
}/* [public] */;

struct wsp_cprobrestriction {
	struct wsp_cfullpropspec property;
	uint32_t fik1;
	uint32_t fik2;
	uint32_t fik3;
	uint32_t flb;
	uint32_t cfeedbackdoc;
	uint32_t probquerypid;
}/* [public] */;

struct wsp_cfeedbackrestriction {
	uint32_t feedbackdoc;
	struct wsp_cfullpropspec property;
}/* [public] */;

struct wsp_creldocrestriction {
	struct wsp_cbasestoragevariant vdocument;
}/* [public] */;

union wsp_crestrictions {
	struct wsp_wrap_crestriction restriction;/* [case(RTNOT)] */
	struct wsp_cnoderestriction cnoderestriction;/* [case(RTAND)] */
	struct wsp_cnoderestriction orcnoderestriction;/* [case(RTOR)] */
	struct wsp_ccontentrestriction ccontentrestriction;/* [case(RTCONTENT)] */
	struct wsp_cpropertyrestriction cpropertyrestriction;/* [case(RTPROPERTY)] */
	struct wsp_cnoderestriction proximityrestriction;/* [case(RTPROXIMITY)] */
	struct wsp_cvectorrestriction vectorrestriction;/* [case(RTVECTOR)] */
	struct wsp_cnatlanguagerestriction cnatlanguagerestriction;/* [case(RTNATLANGUAGE)] */
	struct wsp_cscoperestriction scoperestriction;/* [case(RTSCOPE)] */
	struct wsp_creusewhere reusewhere;/* [case(RTREUSEWHERE)] */
	struct wsp_cinternalpropertyrestriction internalpropertyrestriction;/* [case(RTINTERNALPROP)] */
	struct wsp_cnoderestriction phraserestriction;/* [case(RTPHRASE)] */
	struct wsp_ccoercionrestriction ccoercionrestriction_abs;/* [case(RTCOERCE_ABSOLUTE)] */
	struct wsp_ccoercionrestriction ccoercionrestriction_add;/* [case(RTCOERCE_ADD)] */
	struct wsp_ccoercionrestriction ccoercionrestriction_mul;/* [case(RTCOERCE_MULTIPLY)] */
	struct wsp_cprobrestriction probrestriction;/* [case(RTPROB)] */
	struct wsp_cfeedbackrestriction feedbackrestriction;/* [case(RTFEEDBACK)] */
	struct wsp_creldocrestriction reldocrestriction;/* [case(RTRELDOC)] */
}/* [nodiscriminant,public,switch_type(uint32)] */;

struct wsp_crestriction {
	uint32_t ultype;
	uint32_t weight;
	union wsp_crestrictions restriction;/* [switch_is(ultype)] */
}/* [public] */;

struct wsp_crestrictionarray {
	uint8_t count;
	uint8_t ispresent;
	DATA_BLOB _pad1;/* [flag(LIBNDR_FLAG_ALIGN4)] */
	struct wsp_crestriction *restrictions;
}/* [flag(LIBNDR_FLAG_NOALIGN),public] */;

struct wsp_crowsetproperties {
	uint32_t ubooleanoptions;
	uint32_t ulmaxopenrows;
	uint32_t ulmemoryusage;
	uint32_t cmaxresults;
	uint32_t ccmdtimeout;
}/* [public] */;

struct wsp_cpidmapper {
	uint32_t count;
	DATA_BLOB _pad2;/* [flag(LIBNDR_FLAG_ALIGN4)] */
	struct wsp_cfullpropspec *apropspec;
}/* [public] */;

struct wsp_sproperty {
	uint32_t pid;
	uint32_t weight;
}/* [public] */;

struct wsp_ccolumngroup {
	uint32_t count;
	uint32_t grouppid;
	struct wsp_sproperty *props;
}/* [public] */;

struct wsp_ccolumngrouparray {
	uint32_t count;
	struct wsp_ccolumngroup *agrouparray;
}/* [public] */;

union opt_wsp_cingroupsortaggregsets {
	struct wsp_cingroupsortaggregsets groupsortaggregsets;/* [default] */
}/* [nodiscriminant,public,switch_type(uint8)] */;

union opt_wsp_crestrictionarray {
	struct wsp_crestrictionarray restrictionarray;/* [default] */
}/* [nodiscriminant,public,switch_type(uint8)] */;

union opt_wsp_ccolumnset {
	struct wsp_ccolumnset columnset;/* [default] */
}/* [nodiscriminant,public,switch_type(uint8)] */;

union opt_wsp_ccategorizationset {
	struct wsp_ccategorizationset ccategorizationset;/* [default] */
}/* [nodiscriminant,public,switch_type(uint8)] */;

struct wsp_cpmcreatequeryin {
	uint32_t size;
	uint8_t ccolumnsetpresent;
	union opt_wsp_ccolumnset columnset;/* [switch_is(ccolumnsetpresent)] */
	uint8_t crestrictionpresent;
	union opt_wsp_crestrictionarray restrictionarray;/* [switch_is(crestrictionpresent)] */
	uint8_t csortsetpresent;
	union opt_wsp_cingroupsortaggregsets sortset;/* [switch_is(csortsetpresent)] */
	uint8_t ccategorizationsetpresent;
	union opt_wsp_ccategorizationset ccategorizationset;/* [switch_is(ccategorizationsetpresent)] */
	struct wsp_crowsetproperties rowsetproperties;
	struct wsp_cpidmapper pidmapper;
	struct wsp_ccolumngrouparray grouparray;
	uint32_t lcid;
}/* [public] */;

struct wsp_cpmcreatequeryout {
	uint32_t ftruesequential;
	uint32_t fWorkIdUnique;
}/* [public] */;

union aggregatetype {
	uint8_t value;/* [case] */
}/* [nodiscriminant,public,switch_type(uint8)] */;

union valueoffset {
	uint16_t value;/* [case] */
}/* [nodiscriminant,public,switch_type(uint8)] */;

union valuesize {
	uint16_t value;/* [case] */
}/* [nodiscriminant,public,switch_type(uint8)] */;

union lengthoffset {
	uint16_t value;/* [case] */
}/* [nodiscriminant,public,switch_type(uint8)] */;

union statusoffset {
	uint16_t value;/* [case] */
}/* [nodiscriminant,public,switch_type(uint8)] */;

struct wsp_ctablecolumn {
	struct wsp_cfullpropspec propspec;
	uint32_t vtype;
	uint8_t aggregateused;
	union aggregatetype aggregatetype;/* [switch_is(aggregateused)] */
	uint8_t valueused;
	union valueoffset valueoffset;/* [switch_is(valueused)] */
	union valuesize valuesize;/* [switch_is(valueused)] */
	uint8_t statusused;
	union statusoffset statusoffset;/* [switch_is(statusused)] */
	uint8_t lengthused;
	union lengthoffset lengthoffset;/* [switch_is(lengthused)] */
}/* [public] */;

struct wsp_ccompletioncategspec {
	uint32_t type;
	uint32_t lcid;
	uint32_t ccomplstrings;
	struct wsp_serializedpropertyvalue *apszcomplstrings;
	uint32_t ccomplpids;
	uint32_t *acomplpids;
}/* [public] */;

struct wsp_cpmsetbindingsin {
	uint32_t hcursor;
	uint32_t brow;
	uint32_t bbindingdesc;
	uint32_t dummy;
	uint32_t ccolumns;
	struct wsp_ctablecolumn *acolumns;
}/* [public] */;

struct wsp_crowseeknext {
	uint32_t cskip;
}/* [public] */;

struct wsp_crowseekat {
	uint32_t bmkoffset;
	uint32_t cskip;
	uint32_t hregion;
}/* [public] */;

struct wsp_crowseekatratio {
	uint32_t ulnumerator;
	uint32_t uldenominator;
	uint32_t hregion;
}/* [public] */;

struct wsp_crowseekbybookmark {
	uint32_t cbookmarks;
	uint32_t *abookmarks;
	uint32_t maxret;
	uint32_t *ascret;
}/* [public] */;

union wsp_seekdescription {
	struct wsp_crowseeknext crowseeknext;/* [case(EROWSEEKNEXT)] */
	struct wsp_crowseekat crowseekat;/* [case(EROWSEEKAT)] */
	struct wsp_crowseekatratio crowseekatratio;/* [case(EROWSEEKATRATIO)] */
	struct wsp_crowseekbybookmark crowseekbybookmark;/* [case(EROWSEEKBYBOOKMARK)] */
}/* [nodiscriminant,public,switch_type(uint32)] */;

struct wsp_cpmgetrowsin {
	uint32_t hcursor;
	uint32_t crowstotransfer;
	uint32_t cbrowWidth;
	uint32_t cbseek;
	uint32_t cbreserved;
	uint32_t cbreadbuffer;
	uint32_t ulclientbase;
	uint32_t fbwdfetch;
	uint32_t etype;
	uint32_t chapt;
	union wsp_seekdescription seekdescription;/* [switch_is(etype)] */
}/* [public] */;

struct wsp_ctablevariant {
	uint16_t vtype;
	uint16_t reserved1;
	uint32_t reserved2;
}/* [public] */;

struct wsp_cpmgetrowsout {
	uint32_t rowsreturned;
	uint32_t etype;
	uint32_t chapt;
	union wsp_seekdescription seekdescription;/* [switch_is(etype)] */
}/* [public] */;

struct wsp_cpmfreecursorin {
	uint32_t hcursor;
}/* [public] */;

struct wsp_cpmfreecursorout {
	uint32_t ccursorsremaining;
}/* [public] */;

struct wsp_cpmgetquerystatusin {
	uint32_t hcursor;
}/* [public] */;

struct wsp_cpmgetquerystatusout {
	uint32_t qstatus;
}/* [public] */;

struct wsp_cpmgetquerystatusexin {
	uint32_t hcursor;
	uint32_t bmk;
}/* [public] */;

struct wsp_cpmgetquerystatusexout {
	uint32_t qstatus;
	uint32_t cfiltereddocuments;
	uint32_t cdocumentstofilter;
	uint32_t dwratiofinisheddenominator;
	uint32_t dwratiofinishednumerator;
	uint32_t irowbmk;
	uint32_t crowstotal;
	uint32_t maxrank;
	uint32_t resultsfound;
	uint32_t whereid;
}/* [public] */;

struct wsp_cpmrestartpositionin {
	uint32_t hcursor;
	uint32_t chapter;
}/* [public] */;

struct wsp_cpmratiofinishedin {
	uint32_t hcursor;
	uint32_t fquick;
}/* [public] */;

struct wsp_cpmratiofinishedout {
	uint32_t ulnumerator;
	uint32_t uldenominator;
	uint32_t crows;
	uint32_t fnewrows;
}/* [public] */;

struct wsp_cpmfetchvaluein {
	uint32_t wid;
	uint32_t cbsofar;
	uint32_t cbpropspec;
	uint32_t cbchunk;
	struct wsp_cfullpropspec propspec;
}/* [public] */;

struct vt_i1_safe2_array {
	uint16_t cdims;
	struct safearraybound *rgsabound;
	int8_t *vdata;
}/* [public] */;

struct vt_ui1_safe2_array {
	uint16_t cdims;
	struct safearraybound *rgsabound;
	uint8_t *vdata;
}/* [public] */;

struct vt_i2_safe2_array {
	uint16_t cdims;
	struct safearraybound *rgsabound;
	int16_t *vdata;
}/* [public] */;

struct vt_ui2_safe2_array {
	uint16_t cdims;
	struct safearraybound *rgsabound;
	uint16_t *vdata;
}/* [public] */;

struct vt_i4_safe2_array {
	uint16_t cdims;
	struct safearraybound *rgsabound;
	int32_t *vdata;
}/* [public] */;

struct vt_ui4_safe2_array {
	uint16_t cdims;
	struct safearraybound *rgsabound;
	uint32_t *vdata;
}/* [public] */;

struct vt_dlong_safe2_array {
	uint16_t cdims;
	struct safearraybound *rgsabound;
	int64_t *vdata;
}/* [public] */;

struct vt_bstr_safe2_array {
	uint16_t cdims;
	struct safearraybound *rgsabound;
	struct vt_bstr *vdata;
}/* [public] */;

struct vt_variant_wrap_safearray2 {
	uint16_t cdims;
	struct safearraybound *rgsabound;
	struct vt_variant_wrap *vdata;
}/* [public] */;

union serialised_types {
	int8_t vt_i1;/* [case(VT_I1)] */
	struct vt_i1_safe2_array vt_i1_array;/* [case(VT_I1|VT_ARRAY)] */
	struct vt_i1_vec vt_i1_vec;/* [case(VT_I1|VT_VECTOR)] */
	uint8_t vt_ui1;/* [case(VT_UI1)] */
	struct vt_ui1_safe2_array vt_ui1_array;/* [case(VT_UI1|VT_ARRAY)] */
	struct vt_ui1_vec vt_ui1_vec;/* [case(VT_UI1|VT_VECTOR)] */
	int16_t vt_i2;/* [case(VT_I2)] */
	struct vt_i2_safe2_array vt_i2_array;/* [case(VT_I2|VT_ARRAY)] */
	struct vt_i2_vec vt_i2_vec;/* [case(VT_I2|VT_VECTOR)] */
	uint16_t vt_ui2;/* [case(VT_UI2)] */
	struct vt_ui2_safe2_array vt_ui2_array;/* [case(VT_UI2|VT_ARRAY)] */
	struct vt_ui2_vec vt_ui2_vec;/* [case(VT_UI2|VT_VECTOR)] */
	uint16_t vt_bool;/* [case(VT_BOOL)] */
	struct vt_ui2_safe2_array vt_bool_array;/* [case(VT_BOOL|VT_ARRAY)] */
	struct vt_ui2_vec vt_bool_vec;/* [case(VT_BOOL|VT_VECTOR)] */
	int32_t vt_i4;/* [case(VT_I4)] */
	struct vt_i4_vec vt_i4_vec;/* [case(VT_I4|VT_VECTOR)] */
	struct vt_i4_safe2_array vt_i4_array;/* [case(VT_I4|VT_ARRAY)] */
	uint32_t vt_ui4;/* [case(VT_UI4)] */
	struct vt_ui4_vec vt_ui4_vec;/* [case(VT_UI4|VT_VECTOR)] */
	struct vt_ui4_safe2_array vt_ui4_array;/* [case(VT_UI4|VT_ARRAY)] */
	uint32_t vt_r4;/* [case(VT_R4)] */
	struct vt_i4_vec vt_r4_vec;/* [case(VT_R4|VT_VECTOR)] */
	struct vt_i4_safe2_array vt_r4_array;/* [case(VT_R4|VT_ARRAY)] */
	int32_t vt_int;/* [case(VT_INT)] */
	struct vt_i4_safe2_array vt_int_array;/* [case(VT_INT|VT_ARRAY)] */
	uint32_t vt_uint;/* [case(VT_UINT)] */
	struct vt_ui4_safe2_array vt_uint_array;/* [case(VT_UINT|VT_ARRAY)] */
	uint32_t vt_error;/* [case(VT_ERROR)] */
	struct vt_ui4_vec vt_error_vec;/* [case(VT_ERROR|VT_VECTOR)] */
	struct vt_ui4_safe2_array vt_error_array;/* [case(VT_ERROR|VT_ARRAY)] */
	int64_t vt_i8;/* [case(VT_I8)] */
	struct vt_dlong_vec vt_i8_vec;/* [case(VT_I8|VT_VECTOR)] */
	uint64_t vt_ui8;/* [case(VT_UI8)] */
	struct vt_udlong_vec vt_ui8_vec;/* [case(VT_UI8|VT_VECTOR)] */
	int64_t vt_r8;/* [case(VT_R8)] */
	struct vt_dlong_vec vt_r8_vec;/* [case(VT_R8|VT_VECTOR)] */
	struct vt_dlong_safe2_array vt_r8_array;/* [case(VT_R8|VT_ARRAY)] */
	int64_t vt_cy;/* [case(VT_CY)] */
	struct vt_dlong_vec vt_cy_vec;/* [case(VT_CY|VT_VECTOR)] */
	struct vt_dlong_safe2_array vt_cy_array;/* [case(VT_CY|VT_ARRAY)] */
	int64_t vt_date;/* [case(VT_DATE)] */
	struct vt_dlong_vec vt_date_vec;/* [case(VT_DATE|VT_VECTOR)] */
	struct vt_dlong_safe2_array vt_date_array;/* [case(VT_DATE|VT_ARRAY)] */
	uint64_t vt_filetime;/* [case(VT_FILETIME)] */
	struct vt_udlong_vec vt_filetime_vec;/* [case(VT_FILETIME|VT_VECTOR)] */
	struct vt_bstr vt_bstr;/* [case(VT_BSTR)] */
	struct vt_bstr_vec vt_bstr_v;/* [case(VT_BSTR|VT_VECTOR)] */
	struct vt_bstr_safe2_array vt_bstr_array;/* [case(VT_BSTR|VT_ARRAY)] */
	struct vt_lpwstr vt_lpwstr;/* [case(VT_LPWSTR)] */
	struct vt_lpwstr_vec vt_lpwstr_v;/* [case(VT_LPWSTR|VT_VECTOR)] */
	struct vt_compressed_lpwstr vt_compressed_lpwstr;/* [case(VT_COMPRESSED_LPWSTR)] */
	struct vt_compressed_lpwstr_vec vt_compresseed_lpwstr_v;/* [case(VT_COMPRESSED_LPWSTR|VT_VECTOR)] */
	struct vt_decimal vt_decimal;/* [case(VT_DECIMAL)] */
	struct vt_decimal_vec vt_decimal_v;/* [case(VT_DECIMAL|VT_VECTOR)] */
	struct GUID vt_clid;/* [case(VT_CLSID)] */
	struct vt_clsid_vec vt_clsid_v;/* [case(VT_CLSID|VT_VECTOR)] */
	DATA_BLOB vt_blob;/* [case(VT_BLOB)] */
	DATA_BLOB vt_blob_object;/* [case(VT_BLOB_OBJECT)] */
	struct vt_variant_wrap vt_variant_wrap;/* [case(VT_VARIANT)] */
	struct vt_variant_wrap_vec vt_variant_wrap_vec;/* [case(VT_VARIANT|VT_VECTOR)] */
	struct vt_variant_wrap_safearray2 vt_variant_wrap_array;/* [case(VT_VARIANT|VT_ARRAY)] */
}/* [nodiscriminant,public,switch_type(uint32)] */;

struct wsp_serializedpropertyvalue {
	uint32_t dwtype;
	union serialised_types rgb;/* [switch_is(dwtype)] */
}/* [public] */;

struct wsp_cpmfetchvalueout {
	uint32_t cbvalue;
	uint32_t fmoreexists;
	uint32_t fvalueexists;
}/* [public] */;

struct wsp_cpmsetscopeprioritizationin {
	uint32_t priority;
	uint32_t eventfrequency;
}/* [public] */;

struct wsp_cpmsendnotifyout {
	uint32_t watchnotify;
}/* [public] */;

struct wsp_cpmgetrowsetnotifyout {
	uint32_t wid;
	uint8_t eventinfo;
	uint8_t rowitemstate;
	uint8_t changeditemstate;
	uint8_t rowsetevent;
	int64_t rowseteventdata1;
	int64_t rowseteventdata2;
}/* [public] */;

struct wsp_cpmgetscopestatisticsout {
	uint32_t dwindexeditems;
	uint32_t dwoutstandingadds;
	uint32_t dwoustandingmodifies;
}/* [public] */;

struct wsp_cpmgetapproximatepositionin {
	uint32_t hcursor;
	uint32_t chapt;
	uint32_t bmk;
}/* [public] */;

struct wsp_cpmgetapproximatepositionout {
	uint32_t numerator;
	uint32_t denominator;
}/* [public] */;

struct wsp_cpmcomparebmkin {
	uint32_t hcursor;
	uint32_t chapt;
	uint32_t bmkfirst;
	uint32_t bmksecond;
}/* [public] */;

struct wsp_cpmcomparebmkout {
	uint32_t dwcomparison;
}/* [public] */;

struct wsp_cpmcistateinout {
	uint32_t cbstruct;
	uint32_t cwordlist;
	uint32_t cpersistentindex;
	uint32_t cqueries;
	uint32_t cdocuments;
	uint32_t cfreshtest;
	uint32_t dwmergeprogress;
	uint32_t estate;
	uint32_t cfiltereddocuments;
	uint32_t ctotaldocuments;
	uint32_t cpendingscans;
	uint32_t dwindexsize;
	uint32_t cuniquekeys;
	uint32_t csecqdocuments;
	uint32_t dwpropcachesize;
}/* [public] */;

struct wsp_findindicesin {
	uint32_t cwids;
	uint32_t cdepthprev;
	uint32_t *pwids;
	uint32_t *prgirowprev;
}/* [public] */;

struct wsp_findindicesout {
	uint32_t cdepthnext;
	uint32_t *prgirownext;
}/* [public] */;

union req_message {
	struct wsp_cpmconnectin cpmconnect;/* [case(CPMCONNECT)] */
	struct wsp_cpmcreatequeryin cpmcreatequery;/* [case(CPMCREATEQUERY)] */
	struct wsp_cpmfreecursorin cpmfreecursor;/* [case(CPMFREECURSOR)] */
	struct wsp_cpmgetrowsin cpmgetrows;/* [case(CPMGETROWS)] */
	struct wsp_cpmsetbindingsin cpmsetbindings;/* [case(CPMSETBINDINGSIN)] */
	struct wsp_cpmrestartpositionin cpmrrestartpos;/* [case(CPMRESTARTPOSITIONIN)] */
	struct wsp_cpmgetquerystatusin cpmgetquerystatus;/* [case(CPMGETQUERYSTATUS)] */
	struct wsp_cpmgetquerystatusexin cpmgetquerystatusex;/* [case(CPMGETQUERYSTATUSEX)] */
	struct wsp_cpmsetscopeprioritizationin cpmsetscopeprioritizationin;/* [case(CPMSETSCOPEPRIORITIZATION)] */
	struct wsp_cpmgetapproximatepositionin getapproximateposition;/* [case(CPMGETAPPROXIMATEPOSITION)] */
	struct wsp_cpmcomparebmkin cpmcomparebmk;/* [case(CPMCOMPAREBMK)] */
	struct wsp_cpmcistateinout wsp_cpmcistate;/* [case(CPMCISTATEOUT)] */
	struct wsp_findindicesin wsp_findindices;/* [case(CPMFINDINDICES)] */
	struct wsp_cpmratiofinishedin wsp_cpmratiofinished;/* [case(CPMRATIOFINISHED)] */
	struct wsp_cpmfetchvaluein cpmfetchvalue;/* [case(CPMFETCHVALUE)] */
}/* [nodiscriminant,public,switch_type(uint32)] */;

union resp_message {
	struct wsp_cpmconnectout cpmconnect;/* [case(CPMCONNECT)] */
	struct wsp_cpmcreatequeryout cpmcreatequery;/* [case(CPMCREATEQUERY)] */
	struct wsp_cpmfreecursorout cpmfreecursor;/* [case(CPMFREECURSOR)] */
	struct wsp_cpmgetrowsout cpmgetrows;/* [case(CPMGETROWS)] */
	struct wsp_cpmgetquerystatusout cpmgetquerystatus;/* [case(CPMGETQUERYSTATUS)] */
	struct wsp_cpmsendnotifyout cpmsendnotifyoutcpmgetquerystatus;/* [case(CPMSENDNOTIFYOUT)] */
	struct wsp_cpmgetquerystatusexout cpmgetquerystatusex;/* [case(CPMGETQUERYSTATUSEX)] */
	struct wsp_cpmgetrowsetnotifyout cpmgetrowsetnotifyout;/* [case(CPMGETROWSETNOTIFY)] */
	struct wsp_cpmgetapproximatepositionout getapproximateposition;/* [case(CPMGETAPPROXIMATEPOSITION)] */
	struct wsp_cpmcomparebmkout cpmcomparebmk;/* [case(CPMCOMPAREBMK)] */
	struct wsp_cpmcistateinout wsp_cpmcistate;/* [case(CPMCISTATEOUT)] */
	struct wsp_findindicesout wsp_findindices;/* [case(CPMFINDINDICES)] */
	struct wsp_cpmgetscopestatisticsout cpmgetscopestatistics;/* [case(CPMGETSCOPESTATISTICS)] */
	struct wsp_cpmratiofinishedout wsp_cpmratiofinished;/* [case(CPMRATIOFINISHED)] */
	struct wsp_cpmfetchvalueout cpmfetchvalue;/* [case(CPMFETCHVALUE)] */
}/* [nodiscriminant,public,switch_type(uint32)] */;

struct wsp_request {
	struct wsp_header header;
	union req_message message;/* [switch_is(header.msg)] */
}/* [public] */;

struct wsp_response {
	struct wsp_header header;
	union resp_message message;/* [switch_is(header.msg)] */
}/* [public] */;

#endif /* _HEADER_msftewds */
#endif /* _PIDL_HEADER_msftewds */
