windows-nt/Source/XPSP1/NT/com/published/idlole/public/pbagex.idl
2020-09-26 16:20:57 +08:00

108 lines
3 KiB
Plaintext

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// File: propidl.idl
//
//--------------------------------------------------------------------------
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
cpp_quote("#if ( _MSC_VER >= 1020 )")
cpp_quote("#pragma once")
cpp_quote("#endif")
#ifndef DO_NO_IMPORTS
import "propidl.idl";
#endif
cpp_quote("#include <pshpack8.h>")
/****************************************************************************
* Property Bag Interfaces
****************************************************************************/
interface IEnumSTATPROPBAG;
cpp_quote("EXTERN_C const FMTID FMTID_PropertyBag;")
[
object,
uuid(20011801-5DE6-11D1-8E38-00C04FB9386D),
pointer_default(unique)
]
interface IPropertyBagEx : IUnknown
{
typedef IPropertyBagEx * LPPROPERTYBAGEX;
HRESULT ReadMultiple( [in] ULONG cprops,
[in, size_is(cprops)] LPCOLESTR const rgwszPropNames[],
[in, out, size_is(cprops)] PROPVARIANT rgvar[ ],
[in] IErrorLog* pErrorLog );
HRESULT WriteMultiple( [in] ULONG cprops,
[in, size_is(cprops)] LPCOLESTR const rgwszPropNames[],
[in, size_is(cprops)] const PROPVARIANT rgvar[] );
HRESULT DeleteMultiple( [in] ULONG cprops,
[in, size_is(cprops)] LPCOLESTR const rgwszPropNames[],
[in] DWORD dwReserved );
const DWORD OPENPROPERTY_OVERWRITE = 1;
HRESULT Open( [in] IUnknown* pUnkOuter,
[in] LPCOLESTR wszPropName,
[in] GUID guidPropertyType,
[in] DWORD dwFlags,
[in] REFIID riid,
[out, iid_is(riid)] IUnknown ** ppUnk );
HRESULT Enum( [in] LPCOLESTR wszPropNameMask,
[in] DWORD dwFlags,
[out]IEnumSTATPROPBAG ** ppenum );
}
[
object,
uuid(20021801-5DE6-11D1-8E38-00C04FB9386D),
pointer_default(unique)
]
interface IEnumSTATPROPBAG: IUnknown
{
typedef [unique] IEnumSTATPROPBAG* LPENUMSTATPROPBAG;
typedef struct tagSTATPROPBAG
{
LPOLESTR lpwstrName;
VARTYPE vt;
GUID guidPropertyType;
} STATPROPBAG;
HRESULT Next(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPBAG* rgelt,
[out] ULONG * pceltFetched
);
HRESULT Skip(
[in] ULONG celt
);
HRESULT Reset();
HRESULT Clone(
[out] IEnumSTATPROPBAG ** ppenum
);
}
cpp_quote("#include <poppack.h>")