[idd] helper: capture file clipboard under lock

This commit is contained in:
Geoffrey McRae
2026-08-14 20:05:44 +10:00
parent 352c3c42b6
commit e40dc19c7e
5 changed files with 668 additions and 157 deletions

View File

@@ -295,12 +295,14 @@ private:
void RetryLocalClipboard();
void RetryRemoteOffer();
bool OpenClipboardRetry() const;
bool OpenClipboardRetry(DWORD * error = nullptr,
const char * stage = nullptr, bool useWindow = true) const;
bool IsOurClipboard();
uint32_t EnumerateFormats() const;
std::shared_ptr<CLocalClipboardFiles> CaptureClipboardFiles(
DWORD sequence, bool& viaOLE, bool& openedOLE,
KVMFRClipboardFileError& error, DWORD& winError, HRESULT& oleError);
DWORD sequence, int rawFormatCount, bool& viaOLE,
const char *& retryStage, KVMFRClipboardFileError& error,
HRESULT& oleError);
void PublishLocalClipboard();
void PublishClear(uint64_t generation);
bool ApplyRemoteOffer(uint32_t formats, uint64_t generation);
@@ -308,7 +310,7 @@ private:
void InvalidateOutgoing(uint32_t reason);
void InvalidateLocalClipboard(uint32_t reason);
void ClearLocalRetry();
void DeferLocalClipboard(DWORD sequence, bool openedOLE);
void DeferLocalClipboard(DWORD sequence, const char * stage);
void ExpireLocalRetry(DWORD sequence);
void ClearRemoteRetry();
bool SetOriginMarker(uint64_t generation) const;