Leaked source code of windows server 2003
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

//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_