ReactOS 0.4.15-dev-8434-g155a7c7
CFSDropTarget.cpp File Reference
#include <precomp.h>
Include dependency graph for CFSDropTarget.cpp:

Go to the source code of this file.

Macros

#define D_NONE   DROPEFFECT_NONE
 
#define D_COPY   DROPEFFECT_COPY
 
#define D_MOVE   DROPEFFECT_MOVE
 
#define D_LINK   DROPEFFECT_LINK
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (shell)
 
static void SHELL_StripIllegalFsNameCharacters (_Inout_ LPWSTR Buf)
 
static HRESULT SHELL_LimitDropEffectToItemAttributes (_In_ IDataObject *pDataObject, _Inout_ PDWORD pdwEffect)
 
static void GetDefaultCopyMoveEffect ()
 
HRESULT CFSDropTarget_CreateInstance (LPWSTR sPathTarget, REFIID riid, LPVOID *ppvOut)
 

Macro Definition Documentation

◆ D_COPY

#define D_COPY   DROPEFFECT_COPY

◆ D_LINK

#define D_LINK   DROPEFFECT_LINK

◆ D_MOVE

#define D_MOVE   DROPEFFECT_MOVE

◆ D_NONE

#define D_NONE   DROPEFFECT_NONE

Function Documentation

◆ CFSDropTarget_CreateInstance()

HRESULT CFSDropTarget_CreateInstance ( LPWSTR  sPathTarget,
REFIID  riid,
LPVOID ppvOut 
)

Definition at line 745 of file CFSDropTarget.cpp.

746{
747 return ShellObjectCreatorInit<CFSDropTarget>(sPathTarget, riid, ppvOut);
748}
REFIID riid
Definition: atlbase.h:39

Referenced by CFSFolder::CreateViewObject(), and CFSFolder::GetUIObjectOf().

◆ GetDefaultCopyMoveEffect()

static void GetDefaultCopyMoveEffect ( )
static

Definition at line 52 of file CFSDropTarget.cpp.

53{
54 // FIXME: When the source is on a different volume than the target, change default from move to copy
55}

Referenced by CFSDropTarget::_GetEffectFromMenu(), and CFSDropTarget::_QueryDrop().

◆ SHELL_LimitDropEffectToItemAttributes()

static HRESULT SHELL_LimitDropEffectToItemAttributes ( _In_ IDataObject pDataObject,
_Inout_ PDWORD  pdwEffect 
)
static

Definition at line 42 of file CFSDropTarget.cpp.

43{
44 DWORD att = *pdwEffect & (SFGAO_CANCOPY | SFGAO_CANMOVE | SFGAO_CANLINK); // DROPEFFECT maps perfectly to these SFGAO bits
45 HRESULT hr = SHGetAttributesFromDataObject(pDataObject, att, &att, NULL);
46 if (FAILED(hr))
47 return S_FALSE;
48 *pdwEffect &= ~(SFGAO_CANCOPY | SFGAO_CANMOVE | SFGAO_CANLINK) | att;
49 return hr;
50}
#define NULL
Definition: types.h:112
unsigned long DWORD
Definition: ntddk_ex.h:95
#define FAILED(hr)
Definition: intsafe.h:51
EXTERN_C HRESULT WINAPI SHGetAttributesFromDataObject(IDataObject *pDataObject, DWORD dwAttributeMask, DWORD *pdwAttributes, UINT *pcItems)
HRESULT hr
Definition: shlfolder.c:183
#define S_FALSE
Definition: winerror.h:2357

Referenced by CFSDropTarget::_GetEffectFromMenu().

◆ SHELL_StripIllegalFsNameCharacters()

static void SHELL_StripIllegalFsNameCharacters ( _Inout_ LPWSTR  Buf)
static

Definition at line 27 of file CFSDropTarget.cpp.

28{
29 for (LPWSTR src = Buf, dst = src;;)
30 {
31 *dst = *src;
32 if (!*dst)
33 break;
35 src = CharNextW(src);
36 else
37 ++src, ++dst;
38 }
39}
#define wcschr
Definition: compat.h:17
GLenum src
Definition: glext.h:6340
GLenum GLenum dst
Definition: glext.h:6340
#define INVALID_FILETITLE_CHARACTERSW
Definition: undocshell.h:912
LPWSTR WINAPI CharNextW(_In_ LPCWSTR)
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by CFSDropTarget::_DoDrop().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( shell  )