#include "pch.h"
#include "HDropIterator.h"
HDropIterator::HDropIterator(IDataObject* pdtobj)
{
_current = 0;
FORMATETC formatetc = {
CF_HDROP,
NULL,
DVASPECT_CONTENT,
-1,
TYMED_HGLOBAL
};
pdtobj->GetData(&formatetc, &m_medium);
_listCount = DragQueryFile((HDROP)m_medium.hGlobal, 0xFFFFFFFF, NULL, 0);
}
HDropIterator::~HDropIterator()
ReleaseStgMedium(&m_medium);
void HDropIterator::First()
void HDropIterator::Next()
_current++;
bool HDropIterator::IsDone() const
return _current >= _listCount;
LPTSTR HDropIterator::CurrentItem() const
UINT cch = DragQueryFile((HDROP)m_medium.hGlobal, _current, NULL, 0) + 1;
LPTSTR pszPath = (LPTSTR)malloc(sizeof(TCHAR) * cch);
DragQueryFile((HDROP)m_medium.hGlobal, _current, pszPath, cch);
return pszPath;