mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-09 04:37:30 +02:00
Initial add of PowerRename from SmartRename repo (#499)
* Initial add of PowerRename from SmartRename repo
This commit is contained in:
58
src/modules/powerrename/lib/PowerRenameRegEx.h
Normal file
58
src/modules/powerrename/lib/PowerRenameRegEx.h
Normal file
@@ -0,0 +1,58 @@
|
||||
#pragma once
|
||||
#include "stdafx.h"
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include "srwlock.h"
|
||||
|
||||
#define DEFAULT_FLAGS MatchAllOccurences
|
||||
|
||||
class CPowerRenameRegEx : public IPowerRenameRegEx
|
||||
{
|
||||
public:
|
||||
// IUnknown
|
||||
IFACEMETHODIMP QueryInterface(_In_ REFIID iid, _Outptr_ void** resultInterface);
|
||||
IFACEMETHODIMP_(ULONG) AddRef();
|
||||
IFACEMETHODIMP_(ULONG) Release();
|
||||
|
||||
// IPowerRenameRegEx
|
||||
IFACEMETHODIMP Advise(_In_ IPowerRenameRegExEvents* regExEvents, _Out_ DWORD* cookie);
|
||||
IFACEMETHODIMP UnAdvise(_In_ DWORD cookie);
|
||||
IFACEMETHODIMP get_searchTerm(_Outptr_ PWSTR* searchTerm);
|
||||
IFACEMETHODIMP put_searchTerm(_In_ PCWSTR searchTerm);
|
||||
IFACEMETHODIMP get_replaceTerm(_Outptr_ PWSTR* replaceTerm);
|
||||
IFACEMETHODIMP put_replaceTerm(_In_ PCWSTR replaceTerm);
|
||||
IFACEMETHODIMP get_flags(_Out_ DWORD* flags);
|
||||
IFACEMETHODIMP put_flags(_In_ DWORD flags);
|
||||
IFACEMETHODIMP Replace(_In_ PCWSTR source, _Outptr_ PWSTR* result);
|
||||
|
||||
static HRESULT s_CreateInstance(_Outptr_ IPowerRenameRegEx **renameRegEx);
|
||||
|
||||
protected:
|
||||
CPowerRenameRegEx();
|
||||
virtual ~CPowerRenameRegEx();
|
||||
|
||||
void _OnSearchTermChanged();
|
||||
void _OnReplaceTermChanged();
|
||||
void _OnFlagsChanged();
|
||||
|
||||
size_t _Find(std::wstring data, std::wstring toSearch, bool caseInsensitive, size_t pos);
|
||||
|
||||
DWORD m_flags = DEFAULT_FLAGS;
|
||||
PWSTR m_searchTerm = nullptr;
|
||||
PWSTR m_replaceTerm = nullptr;
|
||||
|
||||
CSRWLock m_lock;
|
||||
CSRWLock m_lockEvents;
|
||||
|
||||
DWORD m_cookie = 0;
|
||||
|
||||
struct SMART_RENAME_REGEX_EVENT
|
||||
{
|
||||
IPowerRenameRegExEvents* pEvents;
|
||||
DWORD cookie;
|
||||
};
|
||||
|
||||
_Guarded_by_(m_lockEvents) std::vector<SMART_RENAME_REGEX_EVENT> m_smartRenameRegExEvents;
|
||||
|
||||
long m_refCount = 0;
|
||||
};
|
||||
Reference in New Issue
Block a user