Source code

Revision control

Copy as Markdown

Other Tools

// Windows/Shell.h↩
#ifndef __WINDOWS_SHELL_H↩
#define __WINDOWS_SHELL_H↩
#include <windows.h>↩
#include <shlobj.h>↩
#include "../Common/MyString.h"
#include "Defs.h"
namespace NWindows{↩
namespace NShell{↩
/////////////////////////↩
// CItemIDList↩
#ifndef UNDER_CE↩
class CItemIDList↩
{↩
LPITEMIDLIST m_Object;↩
public:↩
CItemIDList(): m_Object(NULL) {}↩
// CItemIDList(LPCITEMIDLIST itemIDList);↩
// CItemIDList(const CItemIDList& itemIDList);↩
~CItemIDList() { Free(); }↩
void Free();↩
void Attach(LPITEMIDLIST object)↩
{↩
Free();↩
m_Object = object;↩
}↩
LPITEMIDLIST Detach()↩
{↩
LPITEMIDLIST object = m_Object;↩
m_Object = NULL;↩
return object;↩
}↩
operator LPITEMIDLIST() { return m_Object;}↩
operator LPCITEMIDLIST() const { return m_Object;}↩
LPITEMIDLIST* operator&() { return &m_Object; }↩
LPITEMIDLIST operator->() { return m_Object; }↩
// CItemIDList& operator=(LPCITEMIDLIST object);↩
// CItemIDList& operator=(const CItemIDList &object);↩
};↩
/////////////////////////////↩
// CDrop↩
class CDrop↩
{↩
HDROP m_Object;↩
bool m_MustBeFinished;↩
bool m_Assigned;↩
void Free();↩
public:↩
CDrop(bool mustBeFinished) : m_MustBeFinished(mustBeFinished), m_Assigned(false) {}↩
~CDrop() { Free(); }↩
void Attach(HDROP object);↩
operator HDROP() { return m_Object;}↩
bool QueryPoint(LPPOINT point)↩
{ return BOOLToBool(::DragQueryPoint(m_Object, point)); }↩
void Finish() { ::DragFinish(m_Object); }↩
UINT QueryFile(UINT fileIndex, LPTSTR fileName, UINT fileNameSize)↩
{ return ::DragQueryFile(m_Object, fileIndex, fileName, fileNameSize); }↩
#ifndef _UNICODE↩
UINT QueryFile(UINT fileIndex, LPWSTR fileName, UINT fileNameSize)↩
{ return ::DragQueryFileW(m_Object, fileIndex, fileName, fileNameSize); }↩
#endif
UINT QueryCountOfFiles();↩
UString QueryFileName(UINT fileIndex);↩
void QueryFileNames(UStringVector &fileNames);↩
};↩
#endif
/////////////////////////////↩
// Functions↩
bool GetPathFromIDList(LPCITEMIDLIST itemIDList, CSysString &path);↩
bool BrowseForFolder(LPBROWSEINFO lpbi, CSysString &resultPath);↩
bool BrowseForFolder(HWND owner, LPCTSTR title, LPCTSTR initialFolder, CSysString &resultPath);↩
#ifndef _UNICODE↩
bool GetPathFromIDList(LPCITEMIDLIST itemIDList, UString &path);↩
bool BrowseForFolder(LPBROWSEINFO lpbi, UString &resultPath);↩
bool BrowseForFolder(HWND owner, LPCWSTR title, LPCWSTR initialFolder, UString &resultPath);↩
#endif
}}↩
#endif