mirror of
https://github.com/holub/mame
synced 2025-05-06 06:14:45 +03:00
95 lines
2.4 KiB
C++
95 lines
2.4 KiB
C++
// 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
|