|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 2001.
//
// File: B I N D V I E W . H
//
// Contents: Function Prototypes
//
// Notes:
//
// Author: Alok Sinha 15-May-01
//
//----------------------------------------------------------------------------
#ifndef _BINDVIEW_H_INCLUDED
#define _BINDVIEW_H_INCLUDED
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <windowsx.h>
#include <wchar.h>
#include <commctrl.h> // For common controls, e.g. Tree
#include <commdlg.h>
#include <setupapi.h>
#include <devguid.h>
#include "NetCfgAPI.h"
#include "resource.h"
#define ID_STATUS 100
#define APP_NAME L"BindView"
#define CLIENTS_SELECTED 0
#define SERVICES_SELECTED 1
#define PROTOCOLS_SELECTED 2
#define ADAPTERS_SELECTED 3
#define ITEM_NET_COMPONENTS 1
#define ITEM_NET_BINDINGS 2
#define ITEM_NET_ADAPTERS 4
#define DEFAULT_COMPONENT_SELECTED CLIENTS_SELECTED
#define WM_NO_COMPONENTS WM_USER+1
#define MENUITEM_ENABLE L"Enable"
#define MENUITEM_DISABLE L"Disable"
extern HINSTANCE hInstance; extern const GUID *pguidNetClass []; extern LPWSTR lpszNetClass [];
typedef struct _BIND_UNBIND_INFO { LPWSTR lpszInfId; BOOL fBindTo; } BIND_UNBIND_INFO, *LPBIND_UNBIND_INFO;
//
// Functions defined in bindview.cpp
//
INT_PTR CALLBACK MainDlgProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK BindComponentDlg (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK InstallDlg (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK UninstallDlg (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
VOID DumpBindings (LPWSTR lpszFile);
VOID InstallSelectedComponentType (HWND hwndDlg, LPWSTR lpszInfFile);
HRESULT GetPnpID (LPWSTR lpszInfFile, LPWSTR *lppszPnpID);
HRESULT GetKeyValue (HINF hInf, LPCWSTR lpszSection, LPCWSTR lpszKey, DWORD dwIndex, LPWSTR *lppszValue);
VOID UninstallSelectedComponent (HWND hwndDlg);
VOID ExpandCollapseAll (HWND hwndTree, HTREEITEM hTreeItem, UINT uiFlag);
BOOL GetFileName (HWND hwndDlg, LPWSTR lpszFilter, LPWSTR lpszTitle, DWORD dwFlags, LPWSTR lpszFile);
VOID ProcessRightClick (LPNMHDR lpnm);
VOID ShowComponentMenu (HWND hwndOwner, HTREEITEM hItem, LPARAM lParam);
VOID ShowBindingPathMenu (HWND hwndOwner, HTREEITEM hItem, LPARAM lParam, BOOL fEnabled);
BOOL GetItemInfo (HWND hwndTree, HTREEITEM hItem, LPARAM *lParam, LPDWORD lpdwItemType, BOOL *fEnabled);
HTREEITEM AddBindNameToTree (INetCfgBindingPath *pncbp, HWND hwndTree, HTREEITEM hParent, ULONG ulIndex);
HTREEITEM AddToTree (HWND hwndTree, HTREEITEM hParent, INetCfgComponent *pncc);
VOID RefreshAll (HWND hwndDlg);
VOID RefreshItemState (HWND hwndTree, HTREEITEM hItem, BOOL fEnable);
VOID RefreshBindings (HWND hwndTree, LPWSTR lpszInfId);
VOID ReleaseMemory (HWND hwndTree, HTREEITEM hTreeItem);
VOID DeleteChildren (HWND hwndTree, HTREEITEM hTreeItem);
HTREEITEM InsertItem (HWND hwndTree, UINT uiType);
BOOL UpdateComponentTypeList (HWND hwndTypeList);
VOID ErrMsg (HRESULT hr, LPCWSTR lpFmt, ...);
//
// Functions defined in component.cpp
//
VOID HandleComponentOperation (HWND hwndOwner, ULONG ulSelection, HTREEITEM hItem, LPARAM lParam);
VOID BindUnbindComponents( HWND hwndOwner, HTREEITEM hItem, LPWSTR lpszInfId, BOOL fBindTo);
HRESULT InstallComponent (HWND hwndDlg, const GUID *pguidClass);
HRESULT InstallSpecifiedComponent (LPWSTR lpszInfFile, LPWSTR lpszPnpID, const GUID *pguidClass);
DWORD ListCompToBindUnbind (LPWSTR lpszInfId, UINT uiType, HWND hwndTree, BOOL fBound);
BOOL BindUnbind (LPWSTR lpszInfId, HWND hwndTree, BOOL fBind);
VOID ListInstalledComponents (HWND hwndTree, const GUID *pguidClass);
HRESULT UninstallComponent (LPWSTR lpszInfId);
//
// Functions defined in binding.cpp
//
VOID WriteBindings (FILE *fp);
VOID WriteBindingPath (FILE *fp, INetCfgComponent *pncc);
VOID WriteInterfaces (FILE *fp, INetCfgBindingPath *pncbp);
BOOL EnumNetBindings (HWND hwndTree, UINT uiTypeSelected);
VOID ListBindings (INetCfgComponent *pncc, HWND hwndTree, HTREEITEM hTreeItemRoot);
VOID ListInterfaces (INetCfgBindingPath *pncbp, HWND hwndTree, HTREEITEM hTreeItemRoot);
VOID HandleBindingPathOperation (HWND hwndOwner, ULONG ulSelection, HTREEITEM hItem, LPARAM lParam);
VOID EnableBindingPath (HWND hwndOwner, HTREEITEM hItem, LPWSTR lpszTokenPath, BOOL fEnable);
LPWSTR GetComponentId (HWND hwndTree, HTREEITEM hItem);
INetCfgBindingPath *FindBindingPath (INetCfg *pnc, LPWSTR lpszInfId, LPWSTR lpszPathTokenSelected);
#endif
|