15#define TESTFILENAME L"DragDropTest.txt"
16#define DROPPED_ON_FILE L"DragDroppedOn.lnk"
37#define D_NONE DROPEFFECT_NONE
38#define D_COPY DROPEFFECT_COPY
39#define D_MOVE DROPEFFECT_MOVE
40#define D_LINK DROPEFFECT_LINK
41#define D_NONE_OR_COPY 0xAABBCCDD
42#define D_NONE_OR_MOVE 0x11223344
43#define D_NONE_OR_LINK 0x55667788
80#define MK_LBUTTON_SHIFT_CTRL (MK_LBUTTON | MK_SHIFT | MK_CONTROL)
89#undef MK_LBUTTON_SHIFT_CTRL
113 CComPtr<IPersistFile> ppf;
114 CComPtr<IShellLinkW> psl;
118 IID_IShellLinkW, (
LPVOID *)&psl);
121 psl->SetPath(pszTargetPathName);
126 hr = ppf->Save(pszLnkFileName,
TRUE);
139 CComPtr<IShellFolder> psf;
203 CComPtr<IDropTarget> pDropTarget;
204 CComPtr<IDataObject> pDataObject;
208 ok(!!pidlDesktop,
"pidlDesktop is NULL\n");
251 CComPtr<IEnumIDList> pEnumIDList;
256 while (pEnumIDList->Next(1, &pidl,
NULL) ==
S_OK)
267 ok(pidl !=
NULL,
"Line %d: pidl is NULL\n",
line);
277 skip(
"Line %d: pDropTarget was NULL\n",
line);
292 hr = pDropTarget->DragEnter(pDataObject, dwKeyState, ptl, &dwEffects);
296 switch (
pEntry->dwEffects2)
300 "Line %d: dwEffects2 was %08lX\n",
line, dwEffects);
304 "Line %d: dwEffects2 was %08lX\n",
line, dwEffects);
308 "Line %d: dwEffects2 was %08lX\n",
line, dwEffects);
312 "Line %d: dwEffects2 was %08lX\n",
line, dwEffects);
317 hr = pDropTarget->Drop(pDataObject, dwKeyState, ptl, &dwEffects);
320 switch (
pEntry->dwEffects3)
324 "Line %d: dwEffects3 was %08lX\n",
line, dwEffects);
328 "Line %d: dwEffects3 was %08lX\n",
line, dwEffects);
332 "Line %d: dwEffects3 was %08lX\n",
line, dwEffects);
336 "Line %d: dwEffects3 was %08lX\n",
line, dwEffects);
369 "Line %d: It must be either None or Move\n",
line);
388 skip(
"Skipping the test due to crash. CORE-17057\n");
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
static void DoCreateTestFile(LPCWSTR pszFileName)
void DoDeleteSpecW(LPCWSTR pszSpec)
static WCHAR s_szDestFolder[MAX_PATH]
static void DoTestEntry(const TEST_ENTRY *pEntry)
static WCHAR s_szDroppedToItem[MAX_PATH]
static WCHAR s_szDestTestFile[MAX_PATH]
#define MK_LBUTTON_SHIFT_CTRL
static WCHAR s_szDestLinkSpec[MAX_PATH]
static HRESULT GetUIObjectOfAbsPidl(PIDLIST_ABSOLUTE pidl, REFIID riid, LPVOID *ppvOut)
static HRESULT GetUIObjectOfPath(LPCWSTR pszPath, REFIID riid, LPVOID *ppvOut)
static WCHAR s_szSrcTestFile[MAX_PATH]
HRESULT DoCreateShortcut(LPCWSTR pszLnkFileName, LPCWSTR pszTargetPathName)
BOOL DoSpecExistsW(LPCWSTR pszSpec)
static const TEST_ENTRY s_TestEntries[]
static CComPtr< IShellFolder > s_pDesktop
#define ok_long(expression, result)
#define ok_int(expression, result)
#define INVALID_HANDLE_VALUE
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI FindClose(HANDLE hFindFile)
BOOL WINAPI FindNextFileW(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData)
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST *ppidl)
BOOL WINAPI SHGetSpecialFolderPathW(HWND hwndOwner, LPWSTR szPath, int nFolder, BOOL bCreate)
BOOL WINAPI PathRemoveFileSpecW(LPWSTR lpszPath)
BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath)
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
VOID WINAPI CoTaskMemFree(LPVOID ptr)
_Check_return_ _CRTIMP FILE *__cdecl _wfopen(_In_z_ const wchar_t *_Filename, _In_z_ const wchar_t *_Mode)
_Check_return_opt_ _CRTIMP int __cdecl fclose(_Inout_ FILE *_File)
_CONST_RETURN wchar_t *__cdecl wcsstr(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_SubStr)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
@ COINIT_APARTMENTTHREADED
const GUID IID_IDataObject
const GUID IID_IPersistFile
void WINAPI ILFree(LPITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST pidl)
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
LPITEMIDLIST WINAPI ILCreateFromPathW(LPCWSTR path)
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
WORD WORD PSZ PSZ pszFileName