SMPTYPES.H

/*++ 

Copyright (c) 1996 Microsoft Corporation

Module Name:

SmpTypes.h

Abstract:

Definitions for Sample DS Data Types and structures used by
the SampleDS Regsitry APIs to exchange data

Author:

Environment:

User mode

Revision History :

--*/
#ifndef __SampleDSTYPES_H
#define __SampleDSTYPES_H


// Two data types are supported
#define SampleDS_DATATYPE_1 1
#define SampleDS_DATATYPE_2 2

typedef struct
{
LPWSTR DNString;

} SampleDS_TYPE_1, * LPSampleDS_TYPE_1;

typedef struct
{
DWORD Integer;

} SampleDS_TYPE_2, * LPSampleDS_TYPE_2;

typedef struct _SampleDStype{
DWORD SampleDSType;
union {
SampleDS_TYPE_1 value_1;
SampleDS_TYPE_2 value_2;
}SampleDSValue;
}SampleDSOBJECT, *PSampleDSOBJECT, *LPSampleDSOBJECT;

#define SampleDS_MAX_TYPE1_LEN 32

typedef struct WSTR_LIST_ELEM
{
struct WSTR_LIST_ELEM * Next;
LPWSTR lpString;

} WSTR_LIST,* LPWSTR_LIST;

typedef struct
{
LPWSTR lpAttributeName;
DWORD dwSyntaxID;

} SampleDS_ATTR_DEF, * LPSampleDS_ATTR_DEF;

typedef struct
{
LPWSTR lpAttributeName;
DWORD dwSyntaxId;
DWORD dwNumberOfValues;
LPBYTE lpValue;

} SampleDS_ATTR_INFO, * LPSampleDS_ATTR_INFO;

typedef struct
{
LPSampleDS_ATTR_INFO pAttrInfo;
DWORD dwAttr;
} SampleDS_ATTRS_INFO, * LPSampleDS_ATTRS_INFO;

typedef struct
{
LPWSTR lpObjectFullName;
LPWSTR lpObjectName;
LPWSTR lpObjectClass;

} DS_OBJECT_INFO, * LPDS_OBJECT_INFO;

typedef struct
{
LPWSTR lpObjectClass;

} DS_FILTER, * LPDS_FILTER;

typedef struct
{
DWORD dwNumberOfFilters;
DS_FILTER Filters[1];

} DS_FILTER_LIST, * LPDS_FILTER_LIST;

typedef struct
{
LPWSTR lpClassName;
DWORD dwNumberOfMandatoryAttributes;
LPWSTR_LIST lpMandatoryAttributes;
} SampleDS_CLASS_DEF, * LPSampleDS_CLASS_DEF;

#endif