//+---------------------------------------------------------------------------
//
//  Microsoft Windows
//  Copyright (c) Microsoft Corporation. All rights reserved.
//
//  File:       multpr.idl
//
//  Contents:   IMultiplePropertyAccess
//
//  History:    07-Mar-94   CarlH       Created
//              02-Feb-95   MikeSe      Reinstated. Sync'd with vba95 spec.
//
//----------------------------------------------------------------------------

[
    object,
    uuid(ec81fede-d432-11ce-9244-0020af6e72db),
    pointer_default(unique)
]
interface IMultiplePropertyAccess : IUnknown
{

    HRESULT GetIDsOfProperties(
        [in]                        REFIID      riid,
        [in, size_is(cNames)]       LPOLESTR   *rgszNames,
        [in]                        ULONG       cNames,
        [in]                        LCID        lcid,
        [out, size_is(cNames)]      HRESULT    *rghresult,
        [out, size_is(cNames)]      DISPID     *rgdispid);

    HRESULT GetMultiple(
        [in, size_is(cMembers)]     DISPID     *rgdispidMembers,
        [in]                        ULONG       cMembers,
        [in]                        REFIID      riid,
        [in]                        LCID        lcid,
        [in]                        BOOL        fAtomic,
        [out, size_is(cMembers)]    VARIANT    *rgvarValues,
        [out, size_is(cMembers)]    HRESULT    *rghresult);

    HRESULT PutMultiple(
        [in, size_is(cMembers)]     DISPID     *rgdispidMembers,
        [in, size_is(cMembers)]     USHORT     *rgusFlags,
        [in]                        ULONG       cMembers,
        [in]                        REFIID      riid,
        [in]                        LCID        lcid,
        [in]                        BOOL        fAtomic,
        [in, size_is(cMembers)]     VARIANT    *rgvarValues,
        [out, size_is(cMembers)]    HRESULT    *rghresult);
}

