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
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;
|
|
}
|