IMFAttributes::CopyAllItems method (mfobjects.h)

Copies all of the attributes from this object into another attribute store.


HRESULT CopyAllItems(
  [in] IMFAttributes *pDest


[in] pDest

A pointer to the IMFAttributes interface of the attribute store that receives the copy.

Return value

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


This method deletes all of the attributes originally stored in pDest.


When you call CopyAllItems on an IMFSample, which inherits this method, the sample time, duration, and flags are not copied to the destination sample. You must copy these values to the new sample manually.

This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed:
  • Windows XP with Service Pack 2 (SP2) and later.
  • Windows XP Media Center Edition 2005 with KB900325 (Windows XP Media Center Edition 2005) and KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) installed.


To copy a single attribute rather than all of the attributes, you can use the following code:

HRESULT CopyAttribute(IMFAttributes *pFrom, IMFAttributes *pTo, REFGUID guidKey)

    HRESULT hr = pFrom->GetItem(guidKey, &val);

    if (SUCCEEDED(hr))
        hr = pTo->SetItem(guidKey, val);
    else if (hr == MF_E_ATTRIBUTENOTFOUND)
        hr = S_OK;
    return hr;


Minimum supported client Windows Vista [desktop apps | UWP apps]
Minimum supported server Windows Server 2008 [desktop apps | UWP apps]
Target Platform Windows
Header mfobjects.h (include Mfidl.h)
Library Mfuuid.lib

See also

Attributes and Properties