5cfbd72fa8
* PowerRename new UI * Add scrollviewer * Don't deploy PowerRenameUI_new * Visual updates * Visual updates * Updates * Update Resources.resw * Added docs button * Update MainWindow.xaml * Wire Docs button * RegEx -> regular expressions * Update Show only renamed list on search/replace text changed * Update Show only renamed list on search/replace text changed - proper fix Set searchTerm to NULL when cleared - fix Show only renamed files on clear searchTerm * Files/folders input error handling * Fix renaming with keeping UI window opened After renaming folder, all of it's children need path update. Without path update, further renaming of children items would fail. * Update only children, not all items with greater depth * Fix dictionary false positives * Remove .NET dep * Rename PowerRenameUI_new to PowerRenameUILib Rename executable PowerRenameUIHost to PowerRename Co-authored-by: Laute <Niels.Laute@philips.com>
59 lines
1 KiB
C++
59 lines
1 KiB
C++
#pragma once
|
|
#include <shellapi.h>
|
|
|
|
class HDropIterator
|
|
{
|
|
public:
|
|
HDropIterator(IDataObject* pDataObject)
|
|
{
|
|
_current = 0;
|
|
|
|
FORMATETC formatetc = {
|
|
CF_HDROP,
|
|
NULL,
|
|
DVASPECT_CONTENT,
|
|
-1,
|
|
TYMED_HGLOBAL
|
|
};
|
|
|
|
pDataObject->GetData(&formatetc, &m_medium);
|
|
|
|
_listCount = DragQueryFile((HDROP)m_medium.hGlobal, 0xFFFFFFFF, NULL, 0);
|
|
}
|
|
|
|
~HDropIterator()
|
|
{
|
|
ReleaseStgMedium(&m_medium);
|
|
}
|
|
|
|
void First()
|
|
{
|
|
_current = 0;
|
|
}
|
|
|
|
void Next()
|
|
{
|
|
_current++;
|
|
}
|
|
|
|
bool IsDone() const
|
|
{
|
|
return _current >= _listCount;
|
|
}
|
|
|
|
LPTSTR 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;
|
|
}
|
|
|
|
private:
|
|
UINT _listCount;
|
|
STGMEDIUM m_medium;
|
|
UINT _current;
|
|
};
|