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; }