mirror of https://github.com/tongzx/nt5src
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.
140 lines
2.9 KiB
140 lines
2.9 KiB
/*++
|
|
|
|
Copyright (c) 1994-1998 Microsoft Corporation
|
|
|
|
Module Name :
|
|
|
|
menuex.h
|
|
|
|
Abstract:
|
|
|
|
Menu helper classes
|
|
|
|
Author:
|
|
|
|
Ronald Meijer (ronaldm)
|
|
|
|
Project:
|
|
|
|
Internet Services Manager
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _MENUEX_H
|
|
#define _MENUEX_H
|
|
|
|
//
|
|
// Forward Definitions
|
|
//
|
|
class CIISObject;
|
|
class CIISItemInfo;
|
|
|
|
|
|
|
|
class CISMShellExecutable : public CObjectPlus
|
|
/*++
|
|
|
|
Class Description:
|
|
|
|
Executable object. This may be a shell document, or an executable
|
|
|
|
Public Interface:
|
|
|
|
CShellExecutable : Constructor for executable object
|
|
|
|
Execute : Execute the add-on-tool
|
|
QueryToolTipsText : Get the tooltips text
|
|
HasIcon : Icon was loaded
|
|
GetIcon : Get icon handle
|
|
ShowInToolBar : Whether or not the item is to be shown in the toolbar
|
|
InitializedOK : TRUE if the object initialized ok
|
|
|
|
--*/
|
|
{
|
|
public:
|
|
//
|
|
// Constructor
|
|
//
|
|
CISMShellExecutable(
|
|
IN LPCTSTR lpszRegistryValue,
|
|
IN int nBitmapID,
|
|
IN int nCmd
|
|
);
|
|
|
|
~CISMShellExecutable();
|
|
|
|
public:
|
|
//
|
|
// Execute with current selection or
|
|
// no parameters
|
|
//
|
|
DWORD Execute(
|
|
IN LPCTSTR lpszServer = NULL,
|
|
IN LPCTSTR lpszService = NULL
|
|
);
|
|
|
|
LPCTSTR GetToolTipsText(
|
|
CString & str,
|
|
IN LPCTSTR lpstrServer = NULL,
|
|
IN LPCTSTR lpstrService = NULL
|
|
);
|
|
|
|
BOOL HasIcon() const { return m_hIcon != NULL; }
|
|
HICON GetIcon() const { return m_hIcon; }
|
|
BOOL HasBitmap() const { return m_pBitmap != NULL; }
|
|
BOOL InitializedOK() const { return !m_strCommand.IsEmpty(); }
|
|
BOOL ShowInToolBar() const { return m_fShowInToolbar; }
|
|
MMCBUTTON * GetButton() { return m_pmmcButton; }
|
|
HBITMAP GetBitmap() { ASSERT(m_pBitmap); return (HBITMAP)*m_pBitmap; }
|
|
int GetBitmapIndex() const { return m_nBitmapID; }
|
|
|
|
protected:
|
|
static void ExtractBitmapFromIcon(
|
|
IN HICON hIcon,
|
|
OUT CBitmap *& pBitmap
|
|
);
|
|
|
|
static HICON GetShellIcon(
|
|
IN LPCTSTR lpszShellExecutable
|
|
);
|
|
|
|
static HICON ExtractIcon(
|
|
IN LPCTSTR lpszIconSource,
|
|
IN UINT nIconOffset = 0
|
|
);
|
|
|
|
static LPTSTR GetField(
|
|
IN LPTSTR pchLine = NULL
|
|
);
|
|
|
|
static DWORD ExpandEscapeCodes(
|
|
OUT CString & strDest,
|
|
IN LPCTSTR lpSrc,
|
|
IN LPCTSTR lpszComputer = NULL,
|
|
IN LPCTSTR lpszService = NULL
|
|
);
|
|
|
|
protected:
|
|
static const TCHAR s_chField;
|
|
static const TCHAR s_chEscape;
|
|
static const TCHAR s_chService;
|
|
static const TCHAR s_chComputer;
|
|
|
|
private:
|
|
int m_nBitmapID;
|
|
int m_nCmd;
|
|
HICON m_hIcon;
|
|
BOOL m_fShowInToolbar;
|
|
CString m_strCommand;
|
|
CString m_strDefaultDirectory;
|
|
CString m_strParms;
|
|
CString m_strNoSelectionParms;
|
|
CString m_strToolTipsText;
|
|
CBitmap * m_pBitmap;
|
|
MMCBUTTON * m_pmmcButton;
|
|
};
|
|
|
|
|
|
#endif // _MENUEX_H
|