Windows2003-3790/inetcore/published/inc/propbag2.idl
2020-09-30 16:53:55 +02:00

103 lines
2.8 KiB
Plaintext

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1993 - 1996.
//
// File: propbag2.idl
//
//----------------------------------------------------------------------------
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (C) Microsoft Corporation, 1993 - 1996.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
#ifndef DO_NO_IMPORTS
import "objidl.idl";
import "oleidl.idl";
import "servprov.idl";
//import "unknwn.idl";
import "ocidl.idl";
#endif
interface IPersistPropertyBag2;
interface IPropertyBag2;
[object, uuid(22F55881-280B-11d0-A8A9-00A0C90C2004), pointer_default(unique)]
interface IPersistPropertyBag2 : IPersist
{
typedef [unique] IPersistPropertyBag2 *LPPERSISTPROPERTYBAG2;
HRESULT InitNew();
HRESULT Load(
[in]IPropertyBag2 * pPropBag,
[in]IErrorLog * pErrLog);
HRESULT Save(
[in]IPropertyBag2 * pPropBag,
[in]BOOL fClearDirty,
[in]BOOL fSaveAllProperties);
HRESULT IsDirty();
}
[object, uuid(22F55882-280B-11d0-A8A9-00A0C90C2004), pointer_default(unique)]
interface IPropertyBag2 : IUnknown
{
typedef enum _tagPROPBAG2_TYPE
{
PROPBAG2_TYPE_UNDEFINED = 0,
PROPBAG2_TYPE_DATA = 1, // Value is simple data
PROPBAG2_TYPE_URL = 2, // Value is a URL reference
PROPBAG2_TYPE_OBJECT = 3, // Value is an object
PROPBAG2_TYPE_STREAM = 4, // Value is a stream
PROPBAG2_TYPE_STORAGE = 5, // Value is a storage
PROPBAG2_TYPE_MONIKER = 6 // Value is a moniker
} PROPBAG2_TYPE;
typedef struct _tagPROPBAG2
{
DWORD dwType; // Property type (from PROPBAG2_TYPE)
VARTYPE vt; // VARIANT property type
CLIPFORMAT cfType; // Clipboard format (aka MIME-type)
DWORD dwHint; // Property name hint
LPOLESTR pstrName; // Property name
CLSID clsid; // CLSID (for PROPBAG2_TYPE_OBJECT)
} PROPBAG2;
typedef [unique]IPropertyBag2 *LPPROPERTYBAG2;
HRESULT Read(
[in] ULONG cProperties,
[in] PROPBAG2 * pPropBag,
[in] IErrorLog * pErrLog,
[out] VARIANT * pvarValue,
[out] HRESULT * phrError);
HRESULT Write(
[in] ULONG cProperties,
[in] PROPBAG2 * pPropBag,
[in] VARIANT * pvarValue);
HRESULT CountProperties(
[out] ULONG * pcProperties);
HRESULT GetPropertyInfo(
[in] ULONG iProperty,
[in] ULONG cProperties,
[out] PROPBAG2 * pPropBag,
[out] ULONG * pcProperties);
HRESULT LoadObject(
[in] LPCOLESTR pstrName,
[in] DWORD dwHint,
[in] IUnknown * pUnkObject,
[in] IErrorLog * pErrLog);
}