You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
3.2 KiB
123 lines
3.2 KiB
//util.h - header file for utiltity functions
|
|
#ifndef _UTIL_H_
|
|
#define _UTIL_H_
|
|
|
|
#include <atlwin.h>
|
|
#include <atlctrls.h>
|
|
|
|
// Extended listview control class
|
|
// This class adds the feature of setting focus to the listview window
|
|
// on a left mouse button down event.
|
|
class CListViewEx : public CWindowImpl<CListViewEx, CListViewCtrl>
|
|
{
|
|
BEGIN_MSG_MAP(CListViewEx)
|
|
MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
|
|
END_MSG_MAP()
|
|
|
|
LRESULT OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
|
|
{
|
|
SetFocus();
|
|
bHandled = 0;
|
|
|
|
return TRUE;
|
|
}
|
|
};
|
|
|
|
|
|
HBITMAP GetBitmapFromStrip(HBITMAP hbmStrip, int nPos, int cSize);
|
|
void ConfigSingleColumnListView(HWND hwndListView);
|
|
BOOL ModifyStyleEx(HWND hWnd, DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0);
|
|
void EnableDlgItem(HWND hwndDialog, int iCtrlID, BOOL bEnable);
|
|
void GetItemText(HWND hwnd, tstring& strText);
|
|
void RemoveSpaces(LPWSTR pszBuf);
|
|
VARIANT GetDomainPath(LPCTSTR lpServer);
|
|
HRESULT ExpandDCWildCard(tstring& str);
|
|
void EscapeSlashes(LPCWSTR pszIn, tstring& strOut);
|
|
HRESULT ExpandEnvironmentParams(tstring& strIn, tstring& strOut);
|
|
tstring StrLoadString( UINT nID );
|
|
|
|
//
|
|
// Parameter substitution function
|
|
//
|
|
|
|
// CParamLookup - function object for looking up parameter values
|
|
//
|
|
// Looks up parameter replacement string value, returning a BOOL to
|
|
// indicate iwhether a value was found.
|
|
|
|
class CParamLookup
|
|
{
|
|
public:
|
|
virtual BOOL operator()(tstring& strParm, tstring& strValue) = 0;
|
|
};
|
|
|
|
HRESULT ReplaceParameters(tstring& str, CParamLookup& lookup, BOOL bRetainMarkers);
|
|
|
|
//
|
|
// MMC String table helpers
|
|
//
|
|
HRESULT StringTableWrite(IStringTable* pStringTable, LPCWSTR psz, MMC_STRING_ID* pID);
|
|
|
|
HRESULT StringTableRead(IStringTable* pStringTable, MMC_STRING_ID ID, tstring& str);
|
|
|
|
//
|
|
// File/Directory validation functions
|
|
//
|
|
HRESULT ValidateFile(tstring& strFilePath);
|
|
|
|
HRESULT ValidateDirectory(tstring& strDir);
|
|
|
|
//
|
|
// Message box helper
|
|
//
|
|
int DisplayMessageBox(HWND hWnd, UINT uTitleID, UINT uMsgID, UINT uStyle = MB_OK | MB_ICONEXCLAMATION,
|
|
LPCWSTR pszP1 = NULL, LPCWSTR pszP2 = NULL);
|
|
|
|
//
|
|
// Event triggered callback
|
|
//
|
|
|
|
// CEventCallback - function object that performs a callback
|
|
//
|
|
// client who wants a callback derives a class from CEventCallback
|
|
// and passes an instance of it to CallbackOnEvent
|
|
|
|
class CEventCallback
|
|
{
|
|
public:
|
|
virtual void Execute() = 0;
|
|
};
|
|
|
|
HRESULT CallbackOnEvent(HANDLE handle, CEventCallback* pCallback);
|
|
|
|
|
|
//
|
|
// Helper class to register and create hidden message windows
|
|
//
|
|
class CMsgWindowClass
|
|
{
|
|
public:
|
|
CMsgWindowClass(LPCWSTR pszClassName, WNDPROC pWndProc)
|
|
: m_pszName(pszClassName), m_pWndProc(pWndProc), m_atom(NULL), m_hWnd(NULL)
|
|
{
|
|
}
|
|
|
|
virtual ~CMsgWindowClass()
|
|
{
|
|
if( m_hWnd )
|
|
DestroyWindow(m_hWnd);
|
|
|
|
if( m_atom )
|
|
UnregisterClass(m_pszName, _Module.GetModuleInstance());
|
|
}
|
|
|
|
HWND Window();
|
|
|
|
private:
|
|
LPCWSTR m_pszName;
|
|
WNDPROC m_pWndProc;
|
|
ATOM m_atom;
|
|
HWND m_hWnd;
|
|
};
|
|
|
|
#endif // _UTIL_H_
|