📄 usbviewdlg.h
字号:
// UsbviewDlg.h : header file
//
#if !defined(AFX_USBVIEWDLG_H__D06FF29A_96FF_40F3_AB54_19E656A727CE__INCLUDED_)
#define AFX_USBVIEWDLG_H__D06FF29A_96FF_40F3_AB54_19E656A727CE__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////////////////////////////////////////////////////
//新加头文件
#include "WinCtrl.h"
#include "usbdesc.h"
#include <windows.h>
#include <basetyps.h>
#include <windowsx.h>
#include <initguid.h>
#include <devioctl.h>
#include <dbt.h>
#include <stdio.h>
#include <commctrl.h>
//#include <usbiodef.h>
#include <usbioctl.h>
#include <winioctl.h>
#include <cfgmgr32.h>
#include <setupapi.h>
/////////////////////////////////////////////////////////////////////////////
typedef struct _STRING_DESCRIPTOR_NODE
{
struct _STRING_DESCRIPTOR_NODE *Next;
UCHAR DescriptorIndex;
USHORT LanguageID;
USB_STRING_DESCRIPTOR StringDescriptor[0];
} STRING_DESCRIPTOR_NODE, *PSTRING_DESCRIPTOR_NODE;
typedef struct
{
PUSB_NODE_INFORMATION HubInfo; // NULL if not a HUB
PCHAR HubName; // NULL if not a HUB
PUSB_NODE_CONNECTION_INFORMATION ConnectionInfo; // NULL if root HUB
PUSB_DESCRIPTOR_REQUEST ConfigDesc; // NULL if root HUB
PSTRING_DESCRIPTOR_NODE StringDescs;
} USBDEVICEINFO, *PUSBDEVICEINFO;
typedef struct _TERMTYPE
{
USHORT TermTypeCode;
PCHAR TermTypeName;
} TERMTYPE, *PTERMTYPE;
typedef struct _FORMATTYPE
{
USHORT FormatTypeCode;
PCHAR FormatTypeName;
} FORMATTYPE, *PFORMATTYPE;
/////////////////////////////////////////////////////////////////////////////
// CUsbviewDlg dialog
class CUsbviewDlg : public CWinCtrl
{
// Construction
public:
CUsbviewDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CUsbviewDlg)
enum { IDD = IDD_USBVIEW_DIALOG };
CTreeCtrl m_tree;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CUsbviewDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
//自定义变量
HTREEITEM m_hRoot;
bool bAutoRefresh;
bool bConfigDesc;
//自定义函数
void EnumerateHostControllers(HTREEITEM hTreeItem);
VOID EnumerateHostController(HTREEITEM hTreeParent,HANDLE hHCDev,PCHAR leafName);
PCHAR GetHCDDriverKeyName(HANDLE HCD);
PCHAR WideStrToMultiStr(PWCHAR WideStr);
PCHAR DriverNameToDeviceDesc(PCHAR DriverName);
PCHAR GetRootHubName(HANDLE HostController);
VOID EnumerateHub(HTREEITEM hTreeParent,PCHAR HubName,
PUSB_NODE_CONNECTION_INFORMATION ConnectionInfo,
PUSB_DESCRIPTOR_REQUEST ConfigDesc,
PSTRING_DESCRIPTOR_NODE StringDescs,PCHAR DeviceDesc);
VOID EnumerateHubPorts(HTREEITEM hTreeParent,HANDLE hHubDevice,ULONG NumPorts);
PCHAR GetDriverKeyName (HANDLE Hub,ULONG ConnectionIndex);
PUSB_DESCRIPTOR_REQUEST GetConfigDescriptor(
HANDLE hHubDevice,
ULONG ConnectionIndex,
UCHAR DescriptorIndex);
BOOL AreThereStringDescriptors(PUSB_DEVICE_DESCRIPTOR DeviceDesc,
PUSB_CONFIGURATION_DESCRIPTOR ConfigDesc);
PSTRING_DESCRIPTOR_NODE GetAllStringDescriptors (
HANDLE hHubDevice,
ULONG ConnectionIndex,
PUSB_DEVICE_DESCRIPTOR DeviceDesc,
PUSB_CONFIGURATION_DESCRIPTOR ConfigDesc);
PSTRING_DESCRIPTOR_NODE GetStringDescriptor (
HANDLE hHubDevice,ULONG ConnectionIndex,
UCHAR DescriptorIndex,USHORT LanguageID);
PSTRING_DESCRIPTOR_NODE GetStringDescriptors (
HANDLE hHubDevice,ULONG ConnectionIndex,
UCHAR DescriptorIndex,ULONG NumLanguageIDs,
USHORT *LanguageIDs,PSTRING_DESCRIPTOR_NODE StringDescNodeTail);
PCHAR GetExternalHubName(HANDLE Hub,ULONG ConnectionIndex);
HTREEITEM AddLeaf(HTREEITEM hTreeParent,LPARAM lParam,LPTSTR lpszText,...);
VOID UpdateEditControl(HTREEITEM hTreeItem);
BOOL CreateTextBuffer();
BOOL ResetTextBuffer();
VOID __cdecl AppendTextBuffer(LPCTSTR lpFormat,...);
VOID DisplayHubInfo(PUSB_HUB_INFORMATION HubInfo);
VOID DisplayConnectionInfo(
PUSB_NODE_CONNECTION_INFORMATION ConnectInfo,
PSTRING_DESCRIPTOR_NODE StringDescs);
PCHAR GetVendorString (USHORT idVendor);
VOID DisplayStringDescriptor(
UCHAR Index,
PSTRING_DESCRIPTOR_NODE StringDescs);
VOID DisplayPipeInfo(ULONG NumPipes,USB_PIPE_INFO *PipeInfo);
VOID DisplayEndpointDescriptor(PUSB_ENDPOINT_DESCRIPTOR EndpointDesc);
VOID DisplayConfigDesc(
PUSB_CONFIGURATION_DESCRIPTOR ConfigDesc,
PSTRING_DESCRIPTOR_NODE StringDescs);
VOID DisplayConfigurationDescriptor(
PUSB_CONFIGURATION_DESCRIPTOR ConfigDesc,
PSTRING_DESCRIPTOR_NODE StringDescs);
VOID DisplayInterfaceDescriptor(
PUSB_INTERFACE_DESCRIPTOR InterfaceDesc,
PSTRING_DESCRIPTOR_NODE StringDescs);
VOID DisplayHidDescriptor(PUSB_HID_DESCRIPTOR HidDesc);
BOOL CreateIcon();
//*****************************************************************************
BOOL DisplayACHeader(PUSB_AUDIO_AC_INTERFACE_HEADER_DESCRIPTOR HeaderDesc);
BOOL DisplayACInputTerminal(PUSB_AUDIO_INPUT_TERMINAL_DESCRIPTOR ITDesc);
BOOL DisplayACOutputTerminal(PUSB_AUDIO_OUTPUT_TERMINAL_DESCRIPTOR OTDesc);
BOOL DisplayACMixerUnit(PUSB_AUDIO_MIXER_UNIT_DESCRIPTOR MixerDesc);
BOOL DisplayACSelectorUnit(PUSB_AUDIO_SELECTOR_UNIT_DESCRIPTOR SelectorDesc);
BOOL DisplayACFeatureUnit(PUSB_AUDIO_FEATURE_UNIT_DESCRIPTOR FeatureDesc);
BOOL DisplayACProcessingUnit(PUSB_AUDIO_PROCESSING_UNIT_DESCRIPTOR ProcessingDesc);
BOOL DisplayACExtensionUnit(PUSB_AUDIO_EXTENSION_UNIT_DESCRIPTOR ExtensionDesc);
BOOL DisplayASGeneral(PUSB_AUDIO_GENERAL_DESCRIPTOR GeneralDesc);
BOOL DisplayCSEndpoint(PUSB_AUDIO_ENDPOINT_DESCRIPTOR EndpointDesc);
BOOL DisplayASFormatType(PUSB_AUDIO_COMMON_FORMAT_DESCRIPTOR FormatDesc);
BOOL DisplayASFormatSpecific(PUSB_AUDIO_COMMON_DESCRIPTOR CommonDesc);
VOID DisplayBytes(PUCHAR Data,USHORT Len);
PCHAR TermTypeCodeToName(USHORT TermTypeCode);
PCHAR FormatTypeCodeToName(USHORT FormatTypeCode);
BOOL DisplayAudioDescriptor(
PUSB_AUDIO_COMMON_DESCRIPTOR CommonDesc,
UCHAR bInterfaceSubClass);
VOID DisplayUnknownDescriptor(PUSB_COMMON_DESCRIPTOR CommonDesc);
//*****************************************************************************
// Generated message map functions
//{{AFX_MSG(CUsbviewDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnRefresh();
afx_msg void OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnAutorefresh();
afx_msg void OnConfigDescriptor();
afx_msg BOOL OnDeviceChange(UINT nEventType,DWORD dwData);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_USBVIEWDLG_H__D06FF29A_96FF_40F3_AB54_19E656A727CE__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -