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.
 
 
 
 
 
 

145 lines
4.0 KiB

#include "stdafx.h"
#include "common.h"
#include "iisobj.h"
#include "toolbar.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
enum
{
IDM_INVALID, /* invalid command ID */
IDM_CONNECT,
IDM_DISCOVER,
IDM_START,
IDM_STOP,
IDM_PAUSE,
/**/
IDM_TOOLBAR /* Toolbar commands start here */
};
//
// Toolbar Definition. String IDs for menu and tooltip
// text will be resolved at initialization. The InetmgrGlobalSnapinButtons
// button text and tooltips text will be loaded from the InetmgrGlobalSnapinButtons
// below, and should be kept in sync
//
MMCBUTTON InetmgrGlobalSnapinButtons[] =
{
{ IDM_CONNECT - 1, IDM_CONNECT, TBSTATE_ENABLED, TBSTYLE_BUTTON, NULL, NULL },
// { IDM_DISCOVER - 1, IDM_DISCOVER, TBSTATE_ENABLED, TBSTYLE_BUTTON, NULL, NULL },
{ 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, _T(" "), _T("") },
{ IDM_START - 1, IDM_START, TBSTATE_ENABLED, TBSTYLE_BUTTON, NULL, NULL },
{ IDM_STOP - 1, IDM_STOP, TBSTATE_ENABLED, TBSTYLE_BUTTON, NULL, NULL },
{ IDM_PAUSE - 1, IDM_PAUSE, TBSTATE_ENABLED, TBSTYLE_BUTTON, NULL, NULL },
// { IDM_RECYCLE - 1, IDM_RECYCLE, TBSTATE_ENABLED, TBSTYLE_BUTTON, NULL, NULL },
{ 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, _T(" "), _T("") },
//
// Add-on tools come here
//
};
UINT InetmgrGlobalSnapinButtonIDs[] =
{
/* IDM_CONNECT */ IDS_MENU_CONNECT, IDS_MENU_TT_CONNECT,
// /* IDM_DISCOVER */ IDS_MENU_DISCOVER, IDS_MENU_TT_CONNECT,
/* IDM_START */ IDS_MENU_START, IDS_MENU_TT_START,
/* IDM_STOP */ IDS_MENU_STOP, IDS_MENU_TT_STOP,
/* IDM_PAUSE */ IDS_MENU_PAUSE, IDS_MENU_TT_PAUSE,
// /* IDM_RECYCLE */ IDS_MENU_RECYCLE, IDS_MENU_TT_RECYCLE
};
#define ARRAYLEN(x) (sizeof(x) / sizeof((x)[0]))
#define NUM_BUTTONS2 (ARRAYLEN(InetmgrGlobalSnapinButtons))
#define NUM_BITMAPS (5)
#define TB_COLORMASK RGB(192,192,192) // Lt. Gray
void ToolBar_Init(void)
{
CComBSTR bstr;
CString str;
int j = 0;
for (int i = 0; i < NUM_BUTTONS2; ++i)
{
if (InetmgrGlobalSnapinButtons[i].idCommand != 0)
{
VERIFY(bstr.LoadString(InetmgrGlobalSnapinButtonIDs[j++]));
VERIFY(bstr.LoadString(InetmgrGlobalSnapinButtonIDs[j++]));
InetmgrGlobalSnapinButtons[i].lpButtonText = AllocString(bstr);
InetmgrGlobalSnapinButtons[i].lpTooltipText = AllocString(bstr);
}
}
return;
}
void ToolBar_Destroy(void)
{
for (int i = 0; i < NUM_BUTTONS2; ++i)
{
if (InetmgrGlobalSnapinButtons[i].idCommand != 0)
{
SAFE_FREEMEM(InetmgrGlobalSnapinButtons[i].lpButtonText);
SAFE_FREEMEM(InetmgrGlobalSnapinButtons[i].lpTooltipText);
}
}
}
HRESULT ToolBar_Create(LPCONTROLBAR lpControlBar,LPEXTENDCONTROLBAR lpExtendControlBar,IToolbar ** lpToolBar)
{
//
// Cache the control bar
//
HRESULT hr = S_OK;
if (lpControlBar)
{
do
{
//
// Create our toolbar
//
hr = lpControlBar->Create(TOOLBAR, lpExtendControlBar, (LPUNKNOWN *) lpToolBar);
if (FAILED(hr))
{
break;
}
//
// Add 16x16 bitmaps
//
HBITMAP hToolBar = ::LoadBitmap(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDB_TOOLBAR));
if (NULL != hToolBar)
{
hr = (*lpToolBar)->AddBitmap(NUM_BITMAPS, hToolBar, 16, 16, TB_COLORMASK);
DeleteObject(hToolBar);
if (FAILED(hr))
{
break;
}
}
else
{
hr = E_UNEXPECTED;
break;
}
//
// Add the buttons to the toolbar
//
hr = (*lpToolBar)->AddButtons(NUM_BUTTONS2, InetmgrGlobalSnapinButtons);
}
while(FALSE);
}
return hr;
}