PSCreateAdapterFromPropertyStore function (propsys.h)

Creates an adapter from an IPropertyStore.

Syntax

PSSTDAPI PSCreateAdapterFromPropertyStore(
  [in]  IPropertyStore *pps,
  [in]  REFIID         riid,
  [out] void           **ppv
);

Parameters

[in] pps

Type: IPropertyStore*

Pointer to an IPropertyStore object that represents the property store.

[in] riid

Type: REFIID

Reference to an IID.

[out] ppv

Type: void**

When this function returns, contains the interface pointer requested in riid.

Return value

Type: HRESULT

If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.

Remarks

The adapter object implements IPropertySetStorage, IPropertyStore, IPropertyStoreCapabilities, and IObjectProvider.

Use this function if you need an object that implements IPropertyStore with an API that requires an IPropertySetStorage interface. The object created can also be useful to a namespace extension that wants to provide support for binding to namespace items using IPropertySetStorage. Applications must call this object from only one thread at a time.

The adapter property store created by this function retains a reference to the source IPropertyStore interface. Therefore, the calling application is free to release its reference to the source IPropertyStore whenever convenient after calling this function.

The adapter property store makes calls to methods on the IPropertyStore interface as appropriate. Therefore, if the calling application is writing values to the store, it should call the IPropertyStore::Commit method on only one of the interfaces.

Examples

The following example, to be included as part of a larger program, demonstrates how to use PSCreateAdapterFromPropertyStore to use an adapter property store to convert an IPropertyStore interface into an IPropertySetStorage interface.

// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
IPropertySetStorage *pSetStorage;

HRESULT hr = PSCreateadapterFromPropertyStore(ppropstore, IID_PPV_ARGS(&pSetStorage));

if (SUCCEEDED(hr))
{
    // pSetStorage is now valid and can be used to access the data in ppropstore.
    pSetStorage->Release();
}

Requirements

Requirement Value
Minimum supported client Windows XP with SP2, Windows Vista [desktop apps only]
Minimum supported server Windows Server 2003 with SP1 [desktop apps only]
Target Platform Windows
Header propsys.h
Library Propsys.lib
DLL Propsys.dll (version 6.0 or later)
Redistributable Windows Desktop Search (WDS) 3.0

See also

IPropertySetStorage

IPropertyStore

PSCreatePropertyStoreFromPropertySetStorage