// Wsbdef.idl : IDL source for Wsb data types
//

import "oaidl.idl";

// COM_IDB_KEY_INFO - used to pass information about IDB keys.
// See wsbdb.h for more information.
typedef struct _COM_IDB_KEY_INFO {
    ULONG  Type;       // Key type ID; must be > 0
    ULONG  Size;       // Key size in bytes
    ULONG  Flags;      // IDB_KEY_FLAG_* values
} COM_IDB_KEY_INFO;

//  COM_IDB_REC_INFO - used to pass information about IDB records.
//  See wsbdb.h for more information.
typedef struct _COM_IDB_REC_INFO {
    ULONG  Type;          // Record type ID; must be > 0
    CLSID  EntityClassId; // Derived entity class ID
    ULONG  Flags;         // IDB_REC_FLAG_* values      
    ULONG  MinSize;       // (Minimum) record size in bytes
    ULONG  MaxSize;       // Maximum record size in bytes
    USHORT nKeys;         // Number of keys in this record type
} COM_IDB_REC_INFO;

typedef [v1_enum] enum _WSB_ACCESS_TYPE {
    WSB_ACCESS_TYPE_ALL             = 0,
    WSB_ACCESS_TYPE_USER            = 1,
    WSB_ACCESS_TYPE_OPERATOR        = 2,
    WSB_ACCESS_TYPE_ADMINISTRATOR   = 4
} WSB_ACCESS_TYPE;

//  Structure use to control overall state of services
typedef struct _HSM_SYSTEM_STATE {
    ULONG    State;          // HSM_STATE_* flags
} HSM_SYSTEM_STATE;



