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.
529 lines
20 KiB
529 lines
20 KiB
#include "precomp.h"
|
|
|
|
#include "rsop.h"
|
|
#include <comdef.h>
|
|
#include <tchar.h>
|
|
#include "btoolbar.h"
|
|
|
|
static INT_PTR CALLBACK editBToolbarRSoPProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
DWORD InitToolbarDlgInRSoPMode(HWND hDlg, CDlgRSoPData *pDRD)
|
|
{
|
|
DWORD dwRet = 0;
|
|
BOOL bDelete = false,
|
|
bBkgnd = false;
|
|
__try
|
|
{
|
|
// First go through all PS objects and look for deleteExistingToolbarButtons
|
|
_bstr_t bstrClass = L"RSOP_IEAKPolicySetting";
|
|
HRESULT hr = pDRD->GetArrayOfPSObjects(bstrClass);
|
|
if (SUCCEEDED(hr))
|
|
{
|
|
CPSObjData **paPSObj = pDRD->GetPSObjArray();
|
|
long nPSObjects = pDRD->GetPSObjCount();
|
|
|
|
for (long nObj = 0; nObj < nPSObjects; nObj++)
|
|
{
|
|
// deleteExistingToolbarButtons field
|
|
_variant_t vtValue;
|
|
if (!bDelete)
|
|
{
|
|
hr = paPSObj[nObj]->pObj->Get(L"deleteExistingToolbarButtons", 0, &vtValue, NULL, NULL);
|
|
if (SUCCEEDED(hr) && !IsVariantNull(vtValue))
|
|
{
|
|
if ((bool)vtValue)
|
|
CheckDlgButton(hDlg, IDC_DELETEBTOOLBARS, BST_CHECKED);
|
|
|
|
bDelete = true;
|
|
}
|
|
}
|
|
|
|
// toolbarBackgroundBitmap field
|
|
_bstr_t bstrValue;
|
|
if (!bBkgnd)
|
|
{
|
|
hr = paPSObj[nObj]->pObj->Get(L"toolbarBackgroundBitmapPath", 0, &vtValue, NULL, NULL);
|
|
if (SUCCEEDED(hr) && !IsVariantNull(vtValue))
|
|
{
|
|
bstrValue = vtValue;
|
|
BOOL bChecked = (bstrValue.length() > 0);
|
|
SetDlgItemTextTriState(hDlg, IDE_TOOLBARBMP, IDC_BG_CUSTOM, (LPTSTR)bstrValue, bChecked);
|
|
bBkgnd = true;
|
|
}
|
|
}
|
|
|
|
// no need to process other GPOs since enabled properties have been found
|
|
if (bBkgnd && bDelete)
|
|
break;
|
|
}
|
|
}
|
|
EnableDlgItem2(hDlg, IDC_DELETEBTOOLBARS, FALSE);
|
|
|
|
|
|
// Now go through all Toolbar objects and populate the list box
|
|
bstrClass = L"RSOP_IEToolbarButton";
|
|
CPSObjData **paTBObj = NULL;
|
|
long nTBObjects = 0;
|
|
hr = pDRD->GetArrayOfPSObjects(bstrClass, L"rsopPrecedence",
|
|
&paTBObj, &nTBObjects);
|
|
if (SUCCEEDED(hr))
|
|
{
|
|
HWND hwndList = GetDlgItem(hDlg, IDC_BTOOLBARLIST);
|
|
ListBox_ResetContent(hwndList);
|
|
|
|
PBTOOLBAR paBToolbar = (PBTOOLBAR)CoTaskMemAlloc(sizeof(BTOOLBAR) * MAX_BTOOLBARS);
|
|
if (paBToolbar != NULL)
|
|
{
|
|
ZeroMemory(paBToolbar, sizeof(BTOOLBAR) * MAX_BTOOLBARS);
|
|
|
|
// For each button returned from any GPO
|
|
long nObj;
|
|
PBTOOLBAR pBToolbar;
|
|
for (nObj = 0, pBToolbar = paBToolbar; nObj < nTBObjects;
|
|
nObj++, pBToolbar++)
|
|
{
|
|
_bstr_t bstrGPOName = L" (";
|
|
bstrGPOName += pDRD->GetGPONameFromPSAssociation(paTBObj[nObj]->pObj,L"rsopPrecedence") + L")";
|
|
|
|
// caption field
|
|
_variant_t vtValue;
|
|
hr = paTBObj[nObj]->pObj->Get(L"caption", 0, &vtValue, NULL, NULL);
|
|
if (SUCCEEDED(hr) && !IsVariantNull(vtValue))
|
|
{
|
|
_bstr_t bstrValue = vtValue;
|
|
_bstr_t bstrEntry = bstrValue + bstrGPOName;
|
|
|
|
StrCpy(pBToolbar->szCaption, (LPCTSTR)bstrValue);
|
|
|
|
// iconPath field
|
|
hr = paTBObj[nObj]->pObj->Get(L"iconPath", 0, &vtValue, NULL, NULL);
|
|
if (SUCCEEDED(hr) && !IsVariantNull(vtValue))
|
|
{
|
|
bstrValue = vtValue;
|
|
StrCpy(pBToolbar->szIcon, (LPCTSTR)bstrValue);
|
|
}
|
|
|
|
// actionPath field
|
|
hr = paTBObj[nObj]->pObj->Get(L"actionPath", 0, &vtValue, NULL, NULL);
|
|
if (SUCCEEDED(hr) && !IsVariantNull(vtValue))
|
|
{
|
|
bstrValue = vtValue;
|
|
StrCpy(pBToolbar->szAction, (LPCTSTR)bstrValue);
|
|
}
|
|
|
|
// hotIconPath field
|
|
hr = paTBObj[nObj]->pObj->Get(L"hotIconPath", 0, &vtValue, NULL, NULL);
|
|
if (SUCCEEDED(hr) && !IsVariantNull(vtValue))
|
|
{
|
|
bstrValue = vtValue;
|
|
StrCpy(pBToolbar->szHotIcon, (LPCTSTR)bstrValue);
|
|
}
|
|
|
|
// showOnToolbarByDefault field
|
|
hr = paTBObj[nObj]->pObj->Get(L"showOnToolbarByDefault", 0, &vtValue, NULL, NULL);
|
|
if (SUCCEEDED(hr) && !IsVariantNull(vtValue))
|
|
pBToolbar->fShow = (bool)vtValue ? TRUE : FALSE;
|
|
|
|
int nItem = ListBox_AddString(hwndList, (LPCTSTR)bstrEntry);
|
|
ListBox_SetItemData(hwndList, (WPARAM)nItem, (LPARAM)pBToolbar);
|
|
}
|
|
}
|
|
|
|
dwRet = nObj;
|
|
|
|
PBTOOLBAR paOldBToolbar = (PBTOOLBAR)SetWindowLongPtr(hwndList, GWLP_USERDATA, (LONG_PTR)paBToolbar);
|
|
|
|
// delete previous allocation(mainly for profile manager)
|
|
if (paOldBToolbar != NULL)
|
|
CoTaskMemFree(paOldBToolbar);
|
|
}
|
|
|
|
CoTaskMemFree(paTBObj);
|
|
}
|
|
}
|
|
__except(TRUE)
|
|
{
|
|
}
|
|
|
|
return dwRet;
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
HRESULT InitBToolbarPrecPage(CDlgRSoPData *pDRD, HWND hwndList)
|
|
{
|
|
HRESULT hr = NOERROR;
|
|
__try
|
|
{
|
|
_bstr_t bstrClass = L"RSOP_IEAKPolicySetting";
|
|
hr = pDRD->GetArrayOfPSObjects(bstrClass);
|
|
if (SUCCEEDED(hr))
|
|
{
|
|
CPSObjData **paPSObj = pDRD->GetPSObjArray();
|
|
long nPSObjects = pDRD->GetPSObjCount();
|
|
for (long nObj = 0; nObj < nPSObjects; nObj++)
|
|
{
|
|
_bstr_t bstrGPOName = pDRD->GetGPONameFromPS(paPSObj[nObj]->pObj);
|
|
|
|
// deleteExistingToolbarButtons field
|
|
BOOL bDeleteExisting = FALSE;
|
|
_variant_t vtValue;
|
|
hr = paPSObj[nObj]->pObj->Get(L"deleteExistingToolbarButtons", 0, &vtValue, NULL, NULL);
|
|
if (SUCCEEDED(hr) && !IsVariantNull(vtValue))
|
|
bDeleteExisting = (bool)vtValue ? TRUE : FALSE;
|
|
|
|
// toolbarButtons field
|
|
long nTBCount = 0;
|
|
hr = paPSObj[nObj]->pObj->Get(L"toolbarButtons", 0, &vtValue, NULL, NULL);
|
|
if (SUCCEEDED(hr) && !IsVariantNull(vtValue))
|
|
nTBCount = vtValue;
|
|
|
|
_bstr_t bstrSetting;
|
|
if (bDeleteExisting || nTBCount > 0)
|
|
{
|
|
TCHAR szTemp[MAX_PATH];
|
|
|
|
if (bDeleteExisting)
|
|
LoadString(g_hInstance, IDS_BTOOLBAR_DEL_SETTING, szTemp, countof(szTemp));
|
|
else
|
|
LoadString(g_hInstance, IDS_BTOOLBAR_SETTING, szTemp, countof(szTemp));
|
|
|
|
TCHAR szSetting[MAX_PATH];
|
|
wnsprintf(szSetting, countof(szSetting), szTemp, nTBCount);
|
|
bstrSetting = szSetting;
|
|
}
|
|
else
|
|
bstrSetting = GetDisabledString();
|
|
|
|
InsertPrecedenceListItem(hwndList, nObj, bstrGPOName, bstrSetting);
|
|
}
|
|
}
|
|
}
|
|
__except(TRUE)
|
|
{
|
|
}
|
|
return hr;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////
|
|
INT_PTR CALLBACK BToolbarsDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
// Retrieve Property Sheet Page info for each call into dlg proc.
|
|
LPPROPSHEETCOOKIE psCookie = (LPPROPSHEETCOOKIE)GetWindowLongPtr(hDlg, DWLP_USER);
|
|
TCHAR szToolbarBmp[MAX_PATH];
|
|
TCHAR szWorkDir[MAX_PATH];
|
|
TCHAR szTemp[MAX_PATH];
|
|
BOOL fToolbarBmp;
|
|
LPVOID lpVoid;
|
|
INT iBackground;
|
|
|
|
switch( msg )
|
|
{
|
|
case WM_SETFONT:
|
|
//a change to mmc requires us to do this logic for all our property pages that use common controls
|
|
INITCOMMONCONTROLSEX iccx;
|
|
iccx.dwSize = sizeof(INITCOMMONCONTROLSEX);
|
|
iccx.dwICC = ICC_ANIMATE_CLASS | ICC_BAR_CLASSES | ICC_LISTVIEW_CLASSES |ICC_TREEVIEW_CLASSES;
|
|
InitCommonControlsEx(&iccx);
|
|
break;
|
|
|
|
case WM_INITDIALOG:
|
|
SetPropSheetCookie(hDlg, lParam);
|
|
|
|
// ---- Toolbar background
|
|
EnableDBCSChars(hDlg, IDE_TOOLBARBMP);
|
|
Edit_LimitText(GetDlgItem(hDlg, IDE_TOOLBARBMP), countof(szToolbarBmp) - 1);
|
|
|
|
// ---- Toolbar bitmaps
|
|
|
|
|
|
// ---- Toolbar buttons
|
|
EnableDBCSChars(hDlg, IDC_BTOOLBARLIST);
|
|
|
|
// find out if this dlg is in RSoP mode
|
|
psCookie = (LPPROPSHEETCOOKIE)GetWindowLongPtr(hDlg, DWLP_USER);
|
|
if (psCookie->pCS->IsRSoP())
|
|
{
|
|
TCHAR szView[64];
|
|
LoadString(g_hInstance, IDS_VIEW, szView, countof(szView));
|
|
SetDlgItemText(hDlg, IDC_EDITBTOOLBAR, szView);
|
|
|
|
EnableDlgItem2(hDlg, IDC_ADDBTOOLBAR, FALSE);
|
|
EnableDlgItem2(hDlg, IDC_REMOVEBTOOLBAR, FALSE);
|
|
|
|
EnableDlgItem2(hDlg, IDC_BGIE6, FALSE);
|
|
EnableDlgItem2(hDlg, IDC_BG_CUSTOM, FALSE);
|
|
EnableDlgItem2(hDlg, IDC_BROWSETBB, FALSE);
|
|
EnableDlgItem2(hDlg, IDE_TOOLBARBMP, FALSE);
|
|
EnableDlgItem2(hDlg, IDC_BTOOLBARLIST, FALSE);
|
|
|
|
EnableDlgItem2(hDlg, IDE_TOOLBARBMP, FALSE);
|
|
|
|
|
|
CDlgRSoPData *pDRD = GetDlgRSoPData(hDlg, psCookie->pCS);
|
|
if (pDRD)
|
|
{
|
|
if (0 == InitToolbarDlgInRSoPMode(hDlg, pDRD))
|
|
EnableDlgItem2(hDlg, IDC_EDITBTOOLBAR, FALSE);
|
|
else
|
|
ListBox_SetCurSel(GetDlgItem(hDlg, IDC_BTOOLBARLIST), (WPARAM)0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (0 == BToolbar_Init(GetDlgItem(hDlg, IDC_BTOOLBARLIST), GetInsFile(hDlg), NULL, NULL))
|
|
{
|
|
EnsureDialogFocus(hDlg, IDC_REMOVEBTOOLBAR, IDC_ADDBTOOLBAR);
|
|
EnsureDialogFocus(hDlg, IDC_EDITBTOOLBAR, IDC_ADDBTOOLBAR);
|
|
EnableDlgItem2(hDlg, IDC_EDITBTOOLBAR, FALSE);
|
|
EnableDlgItem2(hDlg, IDC_REMOVEBTOOLBAR, FALSE);
|
|
}
|
|
else
|
|
ListBox_SetCurSel(GetDlgItem(hDlg, IDC_BTOOLBARLIST), (WPARAM)0);
|
|
|
|
ReadBoolAndCheckButton(IS_BTOOLBARS, IK_BTDELETE, FALSE, GetInsFile(hDlg), hDlg, IDC_DELETEBTOOLBARS);
|
|
|
|
// ---- Toolbar background -------------------------------------------------------------------------
|
|
InsGetString(IS_BRANDING, TOOLBAR_BMP, szToolbarBmp, countof(szToolbarBmp), GetInsFile(hDlg), NULL, &fToolbarBmp);
|
|
|
|
SetDlgItemTextTriState(hDlg, IDE_TOOLBARBMP, IDC_BG_CUSTOM, szToolbarBmp, fToolbarBmp);
|
|
CheckDlgButton(hDlg, IDC_BGIE6, fToolbarBmp ? BST_UNCHECKED : BST_CHECKED );
|
|
EnableDlgItem2(hDlg, IDC_BROWSETBB, fToolbarBmp);
|
|
}
|
|
break;
|
|
|
|
case WM_DESTROY:
|
|
{
|
|
if (psCookie->pCS->IsRSoP())
|
|
DestroyDlgRSoPData(hDlg);
|
|
|
|
HWND hwndList = GetDlgItem(hDlg, IDC_BTOOLBARLIST);
|
|
PBTOOLBAR paBToolbar = (PBTOOLBAR)GetWindowLongPtr(hwndList, GWLP_USERDATA);
|
|
if (NULL != paBToolbar)
|
|
CoTaskMemFree(paBToolbar);
|
|
break;
|
|
}
|
|
|
|
case WM_COMMAND:
|
|
if (GET_WM_COMMAND_CMD(wParam, lParam) != BN_CLICKED)
|
|
return FALSE;
|
|
|
|
switch (GET_WM_COMMAND_ID(wParam, lParam))
|
|
{
|
|
case IDC_ADDBTOOLBAR:
|
|
BToolbar_Edit(GetDlgItem(hDlg, IDC_BTOOLBARLIST), TRUE);
|
|
break;
|
|
|
|
case IDC_REMOVEBTOOLBAR:
|
|
BToolbar_Remove(GetDlgItem(hDlg, IDC_BTOOLBARLIST));
|
|
break;
|
|
|
|
case IDC_EDITBTOOLBAR:
|
|
{
|
|
HWND hwndList = GetDlgItem(hDlg, IDC_BTOOLBARLIST);
|
|
if (psCookie->pCS->IsRSoP())
|
|
{
|
|
int i = ListBox_GetCurSel(hwndList);
|
|
PBTOOLBAR pBToolbar = (PBTOOLBAR)ListBox_GetItemData(hwndList, (WPARAM)i);
|
|
if (pBToolbar != NULL)
|
|
{
|
|
DialogBoxParam( g_hUIInstance, MAKEINTRESOURCE(IDD_BTOOLBARPOPUP),
|
|
GetParent(hwndList), editBToolbarRSoPProc, (LPARAM)pBToolbar );
|
|
}
|
|
}
|
|
else
|
|
BToolbar_Edit(hwndList, FALSE);
|
|
break;
|
|
}
|
|
|
|
// ---- Toolbar background ---------------------------------------------------------------
|
|
case IDC_BGIE6:
|
|
case IDC_BG_CUSTOM:
|
|
fToolbarBmp = IsDlgButtonChecked(hDlg,IDC_BG_CUSTOM);
|
|
EnableDlgItem2(hDlg, IDE_TOOLBARBMP, fToolbarBmp);
|
|
EnableDlgItem2(hDlg, IDC_BROWSETBB, fToolbarBmp);
|
|
break;
|
|
|
|
case IDC_BROWSETBB:
|
|
GetDlgItemText(hDlg, IDE_TOOLBARBMP, szToolbarBmp, countof(szToolbarBmp));
|
|
if (BrowseForFile(hDlg, szToolbarBmp, countof(szToolbarBmp), GFN_BMP))
|
|
SetDlgItemText(hDlg, IDE_TOOLBARBMP, szToolbarBmp);
|
|
break;
|
|
|
|
default:
|
|
return FALSE;
|
|
}
|
|
break;
|
|
|
|
case WM_HELP: // F1
|
|
ShowHelpTopic(hDlg);
|
|
break;
|
|
|
|
case WM_NOTIFY:
|
|
switch (((LPNMHDR)lParam)->code)
|
|
{
|
|
TCHAR szMsgTitle[1024];
|
|
TCHAR szMsgText[1024];
|
|
int nStatus;
|
|
|
|
|
|
case PSN_HELP:
|
|
ShowHelpTopic(hDlg);
|
|
break;
|
|
|
|
case PSN_APPLY:
|
|
if (psCookie->pCS->IsRSoP())
|
|
{
|
|
// On OK or Apply in RSoP mode, just free up memory for toolbar array - no
|
|
// longer needed.
|
|
HWND hwndList = GetDlgItem(hDlg, IDC_BTOOLBARLIST);
|
|
if ((lpVoid = (LPVOID)GetWindowLongPtr(hwndList, GWLP_USERDATA)) != NULL)
|
|
{
|
|
CoTaskMemFree(lpVoid);
|
|
SetWindowLongPtr(hwndList, GWLP_USERDATA, 0);
|
|
}
|
|
return FALSE;
|
|
}
|
|
else
|
|
{
|
|
// ---- Toolbar background -------------------------------------------------------------------------
|
|
iBackground = IsDlgButtonChecked(hDlg, IDC_BGIE6) ? 0 : 2;
|
|
|
|
fToolbarBmp = GetDlgItemTextTriState(hDlg, IDE_TOOLBARBMP, IDC_BG_CUSTOM, szToolbarBmp, countof(szToolbarBmp));
|
|
if ((iBackground==2) && !IsBitmapFileValid(hDlg, IDE_TOOLBARBMP, szToolbarBmp, NULL, 0, 0, 0, 0))
|
|
{
|
|
SetWindowLongPtr(hDlg, DWLP_MSGRESULT, -1);
|
|
break;
|
|
}
|
|
|
|
IsTriStateValid(hDlg, IDE_TOOLBARBMP, IDC_BG_CUSTOM, &nStatus,
|
|
res2Str(IDS_QUERY_CLEARSETTING, szMsgText, countof(szMsgText)),
|
|
res2Str(IDS_TITLE, szMsgTitle, countof(szMsgTitle)));
|
|
|
|
if (nStatus == TS_CHECK_ERROR || !AcquireWriteCriticalSection(hDlg))
|
|
{
|
|
SetWindowLongPtr(hDlg, DWLP_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE);
|
|
break;
|
|
}
|
|
|
|
// ---- Toolbar buttons ----------------------------------------------------------------------------
|
|
|
|
CreateWorkDir(GetInsFile(hDlg), IEAK_GPE_BRANDING_SUBDIR TEXT("\\TOOLBMP"), szWorkDir);
|
|
|
|
// BUGBUG: <oliverl> revisit this in IE6 when we have server-side file
|
|
|
|
// delete the old bitmap file
|
|
InsGetString(IS_BRANDING, TOOLBAR_BMP, szTemp, countof(szTemp), GetInsFile(hDlg));
|
|
if (*szTemp)
|
|
DeleteFileInDir(szTemp, szWorkDir);
|
|
|
|
// copy the new bitmap file
|
|
if (fToolbarBmp && *szToolbarBmp)
|
|
CopyFileToDir(szToolbarBmp, szWorkDir);
|
|
|
|
if (PathIsDirectoryEmpty(szWorkDir))
|
|
PathRemovePath(szWorkDir);
|
|
|
|
InsWriteString(IS_BRANDING, TOOLBAR_BMP, szToolbarBmp, GetInsFile(hDlg),
|
|
fToolbarBmp, NULL, INSIO_TRISTATE);
|
|
|
|
CheckButtonAndWriteBool(hDlg, IDC_DELETEBTOOLBARS, IS_BTOOLBARS, IK_BTDELETE, GetInsFile(hDlg));
|
|
|
|
CreateWorkDir(GetInsFile(hDlg), IEAK_GPE_BRANDING_SUBDIR TEXT("\\BTOOLBAR"), szWorkDir);
|
|
|
|
BToolbar_Save(GetDlgItem(hDlg, IDC_BTOOLBARLIST), GetInsFile(hDlg), szWorkDir);
|
|
|
|
SignalPolicyChanged(hDlg, FALSE, TRUE, &g_guidClientExt, &g_guidSnapinExt);
|
|
}
|
|
break;
|
|
|
|
case PSN_QUERYCANCEL:
|
|
// user canceled, need to free up memory for toolbar array
|
|
|
|
if ((lpVoid = (LPVOID)GetWindowLongPtr(GetDlgItem(hDlg, IDC_BTOOLBARLIST), GWLP_USERDATA)) != NULL)
|
|
{
|
|
CoTaskMemFree(lpVoid);
|
|
SetWindowLongPtr(GetDlgItem(hDlg, IDC_BTOOLBARLIST), GWLP_USERDATA, 0);
|
|
}
|
|
break;
|
|
|
|
default:
|
|
return FALSE;
|
|
}
|
|
break;
|
|
|
|
default:
|
|
return FALSE;
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
HRESULT InitToolbarBmpPrecPage(CDlgRSoPData *pDRD, HWND hwndList)
|
|
{
|
|
return InitGenericPrecedencePage(pDRD, hwndList, L"toolbarBackgroundBitmapPath");
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////
|
|
static INT_PTR CALLBACK editBToolbarRSoPProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
PBTOOLBAR pBToolbar;
|
|
|
|
switch (uMsg)
|
|
{
|
|
case WM_INITDIALOG:
|
|
pBToolbar = (PBTOOLBAR)lParam;
|
|
SetWindowLongPtr(hDlg, DWLP_USER, (LONG_PTR)pBToolbar);
|
|
EnableDBCSChars(hDlg, IDE_BTCAPTION);
|
|
EnableDBCSChars(hDlg, IDE_BTACTION);
|
|
EnableDBCSChars(hDlg, IDE_BTICON);
|
|
EnableDBCSChars(hDlg, IDE_BTHOTICON);
|
|
|
|
Edit_LimitText(GetDlgItem(hDlg, IDE_BTCAPTION), MAX_BTOOLBAR_TEXT_LENGTH);
|
|
Edit_LimitText(GetDlgItem(hDlg, IDE_BTACTION), _MAX_FNAME);
|
|
Edit_LimitText(GetDlgItem(hDlg, IDE_BTICON), _MAX_FNAME);
|
|
Edit_LimitText(GetDlgItem(hDlg, IDE_BTHOTICON), _MAX_FNAME);
|
|
|
|
SetDlgItemText(hDlg, IDE_BTCAPTION, pBToolbar->szCaption);
|
|
SetDlgItemText(hDlg, IDE_BTACTION, pBToolbar->szAction);
|
|
SetDlgItemText(hDlg, IDE_BTICON, pBToolbar->szIcon);
|
|
SetDlgItemText(hDlg, IDE_BTHOTICON, pBToolbar->szHotIcon);
|
|
CheckDlgButton(hDlg, IDC_BUTTONSTATE,
|
|
pBToolbar->fShow ? BST_CHECKED : BST_UNCHECKED);
|
|
|
|
EnableDlgItem2(hDlg, IDE_BTCAPTION, FALSE);
|
|
EnableDlgItem2(hDlg, IDE_BTACTION, FALSE);
|
|
EnableDlgItem2(hDlg, IDE_BTICON, FALSE);
|
|
EnableDlgItem2(hDlg, IDE_BTHOTICON, FALSE);
|
|
EnableDlgItem2(hDlg, IDC_BROWSEBTACTION, FALSE);
|
|
EnableDlgItem2(hDlg, IDC_BROWSEBTICO, FALSE);
|
|
EnableDlgItem2(hDlg, IDC_BROWSEBTHOTICO, FALSE);
|
|
EnableDlgItem2(hDlg, IDC_BUTTONSTATE, FALSE);
|
|
break;
|
|
|
|
case WM_COMMAND:
|
|
switch(HIWORD(wParam))
|
|
{
|
|
case BN_CLICKED:
|
|
switch (LOWORD(wParam))
|
|
{
|
|
case IDCANCEL:
|
|
EndDialog( hDlg, IDCANCEL );
|
|
break;
|
|
case IDHELP:
|
|
ShowHelpTopic(hDlg);
|
|
case IDOK:
|
|
EndDialog( hDlg, IDOK );
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
|
|
default:
|
|
return FALSE;
|
|
}
|
|
return TRUE;
|
|
}
|