1
0
mirror of https://github.com/winscp/winscp.git synced 2026-10-28 15:35:08 +03:00
Files
winscp/source/dragext/DragExt.h
Martin Prikryl be8d3acbc1 In UWP, files can be downloaded directly to an external drop location even without a loaded drag&drop shell extension.
Part of "Make WinSCP available in Windows Store (UWP/AppX package)"
https://winscp.net/tracker/1639
(UWP-only subset of dev branch commit dc85563)

Counters DownloadsDragDropQueue + DownloadsDragDropFakeFile

(cherry picked from commit dc855630a2)

# Conflicts:
#	source/resource/TextsWin.h
#	source/resource/TextsWin1.rc
#	translations/translate.web.ini

Source commit: 5c7069bac3e08f2f19c227d38eaffe989e73f4f8
2018-05-03 06:50:09 +02:00

47 lines
1.7 KiB
C

//---------------------------------------------------------------------------
#ifndef DragExtH
#define DragExtH
//---------------------------------------------------------------------------
#define DRAG_EXT_MAPPING L"WinSCPDragExtMapping"
#define DRAG_EXT_MUTEX L"WinSCPDragExtMutex"
#define DRAG_EXT_RUNNING_MUTEX L"WinSCPDragExtLogMutex"
#define DRAG_EXT_DUMMY_DIR_PREFIX L"scp"
#define DRAG_EXT_DUMMY_DIR_PREFIX_LEN 3
//---------------------------------------------------------------------------
DEFINE_GUID(CLSID_ShellExtension, 0xe15e1d68, 0x0d1c, 0x49f7,
0xbe, 0xb8, 0x81, 0x2b, 0x1e, 0x00, 0xfa, 0x60 );
//---------------------------------------------------------------------------
#ifdef _WIN64
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wpadded"
#endif
#pragma pack(push, 4)
//---------------------------------------------------------------------------
// Note that the change between 0 and 1 was incompatible in both directions.
// So unfortunatelly version 0 extension (4.x and older) will accept incompatible request
// from version 1 application (5.x and newer).
// Luckily the extension will gracefully fail, when using the Unicode path in
// GetShortPathName(CommStruct->DropDest, ...) and will ignore the request.
struct TDragExtCommStruct
{
enum TVersion
{
Version0 = 0,
Version1 = 1,
CurrentVersion = Version1,
MinVersion = Version1,
MaxVersion = CurrentVersion
};
int Version;
bool Dragging;
wchar_t DropDest[MAX_PATH];
};
//---------------------------------------------------------------------------
#pragma pack(pop)
#ifdef _WIN64
#pragma clang diagnostic pop
#endif
//---------------------------------------------------------------------------
#endif // DragExtH