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.
108 lines
4.0 KiB
108 lines
4.0 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1997.
|
|
//
|
|
// File: O R D E R . H
|
|
//
|
|
// Contents: Header file for Advanced Options->Provider Order
|
|
//
|
|
// Notes:
|
|
//
|
|
// Author: sumitc 1 Dec 1997
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
#include "nsbase.h" // must be first to include atl
|
|
|
|
#include "nsres.h"
|
|
#include "resource.h"
|
|
|
|
|
|
typedef list<tstring *>::iterator ListIter;
|
|
|
|
|
|
static HTREEITEM AppendItem(HWND hwndTV, HTREEITEM hroot, PCWSTR szText, void * lParam, INT iImage);
|
|
static void AppendItemList(HWND hwndTV, HTREEITEM hroot, ListStrings lstr, ListStrings lstr2, INT iImage);
|
|
|
|
|
|
bool AreThereMultipleProviders(void);
|
|
|
|
static HRESULT ReadNetworkProviders(ListStrings& m_lstr, ListStrings& m_lstrDisp);
|
|
static HRESULT ReadPrintProviders(ListStrings& m_lstr, ListStrings& m_lstrDisp);
|
|
|
|
//
|
|
// CProviderOrderDlg
|
|
//
|
|
|
|
class CProviderOrderDlg :
|
|
public CPropSheetPage
|
|
{
|
|
BEGIN_MSG_MAP(CProviderOrderDlg)
|
|
|
|
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
|
|
MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu);
|
|
MESSAGE_HANDLER(WM_HELP, OnHelp);
|
|
COMMAND_ID_HANDLER(IDC_MOVEUP, OnMoveUp)
|
|
COMMAND_ID_HANDLER(IDC_MOVEDOWN, OnMoveDown)
|
|
NOTIFY_CODE_HANDLER(TVN_SELCHANGED, OnTreeItemChanged)
|
|
NOTIFY_CODE_HANDLER(PSN_APPLY, OnOk)
|
|
END_MSG_MAP()
|
|
|
|
enum { IDD = IDD_PROVIDER};
|
|
|
|
CProviderOrderDlg();
|
|
~CProviderOrderDlg();
|
|
|
|
BOOL FShowPage()
|
|
{
|
|
return AreThereMultipleProviders();
|
|
}
|
|
|
|
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam,
|
|
LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& Handled);
|
|
LRESULT OnHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnOk(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
|
|
LRESULT OnMoveUp(WORD wNotifyCode, WORD wID, HWND hWndCtl,
|
|
BOOL& bHandled);
|
|
LRESULT OnMoveDown(WORD wNotifyCode, WORD wID, HWND hWndCtl,
|
|
BOOL& bHandled);
|
|
LRESULT OnTreeItemChanged(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
|
|
#if 0
|
|
LRESULT OnProperties(WORD wNotifyCode, WORD wID, HWND hWndCtl,
|
|
BOOL& bHandled);
|
|
LRESULT OnApply(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
|
|
LRESULT OnCancel(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
|
|
LRESULT OnDeleteItem(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
|
|
LRESULT OnItemChanged(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
|
|
#endif
|
|
|
|
private:
|
|
HCURSOR m_hcurAfter; // cursor after drag has started
|
|
HCURSOR m_hcurNoDrop; // cursor indicating can't drop here
|
|
HICON m_hiconUpArrow; // icon for up arrow
|
|
HICON m_hiconDownArrow; // icon for down arrow
|
|
HTREEITEM m_htiNetwork; // treeitem root for Network (one below actual root)
|
|
HTREEITEM m_htiPrint; // treeitem root for Print (one below actual root)
|
|
|
|
ListStrings m_lstrNetwork; // list of strings with (ordered) Network providers
|
|
ListStrings m_lstrNetworkDisp; // list of display names for Network providers (same order)
|
|
|
|
ListStrings m_lstrPrint; // list of strings with (ordered) Print providers
|
|
ListStrings m_lstrPrintDisp; // list of display names for Print providers (same order)
|
|
|
|
bool m_fNoNetworkProv:1; // flag to indicate that we failed to get any network providers
|
|
bool m_fNoPrintProv:1; // flag to indicate that we failed to get any print providers
|
|
|
|
// the following functions fill up lstrDisplayNames with the list of net/print providers
|
|
HRESULT WriteProviders(HWND hwndTV, bool fPrint);
|
|
HRESULT MoveItem(bool fMoveUp);
|
|
HRESULT UpdateUpDownButtons(HWND hwndTV);
|
|
};
|
|
|
|
|
|
#if DBG
|
|
static void DumpItemList(ListStrings& lstr, PSTR szInfoAboutList);
|
|
#endif
|