usbview.h
上传用户:gzccxsp
上传日期:2015-07-14
资源大小:182k
文件大小:6k
源码类别:

MacOS编程

开发平台:

Visual C++

  1. /*++
  2. Copyright (c) 1997-1998 Microsoft Corporation
  3. Module Name:
  4.     USBVIEW.H
  5. Abstract:
  6.     This is the header file for USBVIEW
  7. Environment:
  8.     user mode
  9. Revision History:
  10.     04-25-97 : created
  11. --*/
  12. //*****************************************************************************
  13. // I N C L U D E S
  14. //*****************************************************************************
  15. #include <commctrl.h>
  16. #include "usbioctl.h"
  17. #include "usbdesc.h"
  18. //*****************************************************************************
  19. // P R A G M A S
  20. //*****************************************************************************
  21. #pragma intrinsic(strlen, strcpy, memset)
  22. //*****************************************************************************
  23. // D E F I N E S
  24. //*****************************************************************************
  25. #ifdef  DEBUG
  26. #undef  DBG
  27. #define DBG 1
  28. #endif
  29. #if DBG
  30. #define OOPS() Oops(__FILE__, __LINE__)
  31. #else
  32. #define OOPS()
  33. #endif
  34. #if DBG
  35. #define ALLOC(dwBytes) MyAlloc(__FILE__, __LINE__, (dwBytes))
  36. #define REALLOC(hMem, dwBytes) MyReAlloc((hMem), (dwBytes))
  37. #define FREE(hMem)  MyFree((hMem))
  38. #define CHECKFORLEAKS() MyCheckForLeaks()
  39. #else
  40. #define ALLOC(dwBytes) GlobalAlloc(GPTR,(dwBytes))
  41. #define REALLOC(hMem, dwBytes) GlobalReAlloc((hMem), (dwBytes), (GMEM_MOVEABLE|GMEM_ZEROINIT))
  42. #define FREE(hMem)  GlobalFree((hMem))
  43. #define CHECKFORLEAKS()
  44. #endif
  45. //
  46. //  BOOLEAN
  47. //  IsListEmpty(
  48. //      PLIST_ENTRY ListHead
  49. //      );
  50. //
  51. #define IsListEmpty(ListHead) 
  52.     ((ListHead)->Flink == (ListHead))
  53. //
  54. //  PLIST_ENTRY
  55. //  RemoveHeadList(
  56. //      PLIST_ENTRY ListHead
  57. //      );
  58. //
  59. #define RemoveHeadList(ListHead) 
  60.     (ListHead)->Flink;
  61.     {RemoveEntryList((ListHead)->Flink)}
  62. //
  63. //  VOID
  64. //  RemoveEntryList(
  65. //      PLIST_ENTRY Entry
  66. //      );
  67. //
  68. #define RemoveEntryList(Entry) {
  69.     PLIST_ENTRY _EX_Blink;
  70.     PLIST_ENTRY _EX_Flink;
  71.     _EX_Flink = (Entry)->Flink;
  72.     _EX_Blink = (Entry)->Blink;
  73.     _EX_Blink->Flink = _EX_Flink;
  74.     _EX_Flink->Blink = _EX_Blink;
  75.     }
  76. //
  77. //  VOID
  78. //  InsertTailList(
  79. //      PLIST_ENTRY ListHead,
  80. //      PLIST_ENTRY Entry
  81. //      );
  82. //
  83. #define InsertTailList(ListHead,Entry) {
  84.     PLIST_ENTRY _EX_Blink;
  85.     PLIST_ENTRY _EX_ListHead;
  86.     _EX_ListHead = (ListHead);
  87.     _EX_Blink = _EX_ListHead->Blink;
  88.     (Entry)->Flink = _EX_ListHead;
  89.     (Entry)->Blink = _EX_Blink;
  90.     _EX_Blink->Flink = (Entry);
  91.     _EX_ListHead->Blink = (Entry);
  92.     }
  93. //*****************************************************************************
  94. // T Y P E D E F S
  95. //*****************************************************************************
  96. // Callback function for walking TreeView items
  97. //
  98. typedef VOID
  99. (*LPFNTREECALLBACK)(
  100.     HWND        hTreeWnd,
  101.     HTREEITEM   hTreeItem
  102. );
  103. //
  104. // Structure used to build a linked list of String Descriptors
  105. // retrieved from a device.
  106. //
  107. typedef struct _STRING_DESCRIPTOR_NODE
  108. {
  109.     struct _STRING_DESCRIPTOR_NODE *Next;
  110.     UCHAR                           DescriptorIndex;
  111.     USHORT                          LanguageID;
  112.     USB_STRING_DESCRIPTOR           StringDescriptor[0];
  113. } STRING_DESCRIPTOR_NODE, *PSTRING_DESCRIPTOR_NODE;
  114. //
  115. // Structures assocated with TreeView items through the lParam.  When an item
  116. // is selected, the lParam is retrieved and the structure it which it points
  117. // is used to display information in the edit control.
  118. //
  119. typedef struct
  120. {
  121.     PUSB_NODE_INFORMATION               HubInfo;        // NULL if not a HUB
  122.     PCHAR                               HubName;        // NULL if not a HUB
  123.     PUSB_NODE_CONNECTION_INFORMATION    ConnectionInfo; // NULL if root HUB
  124.     PUSB_DESCRIPTOR_REQUEST             ConfigDesc;     // NULL if root HUB
  125.     PSTRING_DESCRIPTOR_NODE             StringDescs;
  126. } USBDEVICEINFO, *PUSBDEVICEINFO;
  127. //*****************************************************************************
  128. // G L O B A L S
  129. //*****************************************************************************
  130. //
  131. // USBVIEW.C
  132. //
  133. BOOL gDoConfigDesc;
  134. int TotalHubs;
  135. //
  136. // ENUM.C
  137. //
  138. PCHAR ConnectionStatuses[];
  139. //*****************************************************************************
  140. // F U N C T I O N    P R O T O T Y P E S
  141. //*****************************************************************************
  142. //
  143. // USBVIEW.C
  144. //
  145. HTREEITEM
  146. AddLeaf (
  147.     HTREEITEM hTreeParent,
  148.     LPARAM    lParam,
  149.     LPTSTR    lpszText,
  150.     ...
  151. );
  152. VOID
  153. Oops
  154. (
  155.     CHAR *File,
  156.     ULONG Line
  157. );
  158. //
  159. // DISPLAY.C
  160. //
  161. BOOL
  162. CreateTextBuffer (
  163. );
  164. VOID
  165. DestroyTextBuffer (
  166. );
  167. VOID
  168. UpdateEditControl (
  169.     HWND      hEditWnd,
  170.     HWND      hTreeWnd,
  171.     HTREEITEM hTreeItem
  172. );
  173. VOID __cdecl
  174. AppendTextBuffer (
  175.     LPCTSTR lpFormat,
  176.     ...
  177. );
  178. //
  179. // ENUM.C
  180. //
  181. VOID
  182. EnumerateHostControllers (
  183.     HTREEITEM  hTreeParent,
  184.     ULONG     *DevicesConnected
  185. );
  186. VOID
  187. CleanupItem (
  188.     HWND      hTreeWnd,
  189.     HTREEITEM hTreeItem
  190. );
  191. //
  192. // DEBUG.C
  193. //
  194. HGLOBAL
  195. MyAlloc (
  196.     PCHAR   File,
  197.     ULONG   Line,
  198.     DWORD   dwBytes
  199. );
  200. HGLOBAL
  201. MyReAlloc (
  202.     HGLOBAL hMem,
  203.     DWORD   dwBytes
  204. );
  205. HGLOBAL
  206. MyFree (
  207.     HGLOBAL hMem
  208. );
  209. VOID
  210. MyCheckForLeaks (
  211.     VOID
  212. );
  213. //
  214. // DEVNODE.C
  215. //
  216. PCHAR
  217. DriverNameToDeviceDesc (
  218.     PCHAR DriverName
  219. );
  220. //
  221. // DISPAUD.C
  222. //
  223. BOOL
  224. DisplayAudioDescriptor (
  225.     PUSB_AUDIO_COMMON_DESCRIPTOR CommonDesc,
  226.     UCHAR                        bInterfaceSubClass
  227. );