//+-------------------------------------------------------------------------
//
//  Microsoft Windows
//  Copyright (c) Microsoft Corporation. All rights reserved.
//
//  File:       version.idl
//
//  Contents:   OLE versioning definintions.
//
//  History:    09-Jan-95   DaveStr     Created
//
//--------------------------------------------------------------------------

#include "idlmulti.h"

[
    uuid(6291f800-2bfb-11ce-bb80-08002b36b2b0),
    pointer_default(unique)
]

interface Versioning
{

#pragma pack(4) // for midl & C interop

    typedef GUID VERID;

    typedef struct tagVERIDARRAY {
        DWORD                  cVerid;
        [size_is(cVerid)] GUID verid[];
    } VERIDARRAY;

    typedef struct tagVERBLOCK {
        ULONG                       iveridFirst;
        ULONG                       iveridMax;
        ULONG                       cblockPrev;
        [size_is(cblockPrev)] ULONG *rgiblockPrev;
    } VERBLOCK;

    typedef struct tagVERCONNECTIONINFO {
        DWORD                      cBlock;
        [size_is(cBlock)] VERBLOCK *rgblock;
    } VERCONNECTIONINFO;

    typedef struct tagVERGRAPH{
        VERCONNECTIONINFO   blocks;
        VERIDARRAY          nodes;
    } VERGRAPH;

#pragma pack()
}