Listing 6: get_DirectoryParts() method.
STDMETHODIMP FileEntry::get_DirectoryParts(LPUNKNOWN *pVal)
{
typedef CComObject<DirectoryPartsCollection> DirPartsColl_t;
DirPartsColl_t *pcoll;
HRESULT hr = DirPartsColl_t::CreateInstance(&pcoll);
if(SUCCEEDED(hr))
{
directory_parts_type dirParts( m_entry->directoryParts.begin
, m_entry->directoryParts.end);
pcoll->AddRef();
hr = pcoll->Init(static_cast<IFileEntry*>(this), dirParts);
if(SUCCEEDED(hr))
{
hr = pcoll->QueryInterface(pVal);
}
pcoll->Release();
}
return hr;
}