⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbio_i_delphi.pas

📁 DSP系列之TMS320VC5509的USB接口PC机端的驱动和测试应用程序。可识别设备
💻 PAS
字号:
unit usbio_i_delphi;

{************************************************************************
 *
 *  Description:   declaration of needed types, constants and
 *                 functions from setupapi.dll ( refer to setupapi.h in C )
 *
 *  Runtime Env.:  Win32, Part of UsbioLib
 *  Author(s):     Thomas Fr鰄lich
 *  Company:       Thesycon GmbH, Ilmenau
 ************************************************************************}



interface
uses Windows;

type
  HDEVINFO                             = Pointer;

function SetupDiGetClassDevsA(
                   ClassGuid           : PGUID;
                   Enumerator          : PCHAR;
                   hwndParent          : HWND;
                   Flags               : DWORD
                   ): HDEVINFO; stdcall; external 'setupapi.dll';

//SetupDiGetClassDevsA(
//    IN LPGUID ClassGuid,  OPTIONAL
//    IN PCSTR  Enumerator, OPTIONAL
//    IN HWND   hwndParent, OPTIONAL
//    IN DWORD  Flags
//    );

const
DIGCF_DEFAULT                          = DWORD($00000001);
DIGCF_PRESENT                          = DWORD($00000002);
DIGCF_ALLCLASSES                       = DWORD($00000004);
DIGCF_PROFILE                          = DWORD($00000008);
DIGCF_DEVICEINTERFACE                  = DWORD($00000010);

type
  SP_DEVICE_INTERFACE_DETAIL_DATA_A =
  packed record
                   cbSize              : DWORD;
                   DevicePath          : array [0..0]of char;
  end;
  PSP_DEVICE_INTERFACE_DETAIL_DATA_A   = ^SP_DEVICE_INTERFACE_DETAIL_DATA_A;


//typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_A {
//    DWORD  cbSize;
//    CHAR  DevicePath[ANYSIZE_ARRAY];
//} SP_DEVICE_INTERFACE_DETAIL_DATA_A, *PSP_DEVICE_INTERFACE_DETAIL_DATA_A;



function SetupDiDestroyDeviceInfoList(
                   DeviceInfoSet       : HDEVINFO
                   ): boolean; stdcall; external 'setupapi.dll';


//SetupDiDestroyDeviceInfoList(
//    IN HDEVINFO DeviceInfoSet
//    );


type
  SP_DEVINFO_DATA =
  packed record
    cbSize                             : DWORD;
    ClassGuid                          : TGUID;
    DevInst                            : DWORD;
    Reserved                           : DWORD;
  end;
  PSP_DEVINFO_DATA                     = ^SP_DEVINFO_DATA;
//typedef struct _SP_DEVINFO_DATA {
//    DWORD cbSize;
//    GUID  ClassGuid;
//    DWORD DevInst;    // DEVINST handle
//    DWORD Reserved;
//} SP_DEVINFO_DATA, *PSP_DEVINFO_DATA;





type
  SP_DEVICE_INTERFACE_DATA =
  packed record
    cbSize                             : DWORD;
    InterfaceClassGuid                 : TGUID;
    Flags                              : DWORD;
    Reserved                           : DWORD;
  end;
  PSP_DEVICE_INTERFACE_DATA            = ^SP_DEVICE_INTERFACE_DATA;

//typedef struct _SP_DEVICE_INTERFACE_DATA {
//    DWORD cbSize;
//    GUID  InterfaceClassGuid;
//    DWORD Flags;
//    DWORD Reserved;
//} SP_DEVICE_INTERFACE_DATA, *PSP_DEVICE_INTERFACE_DATA;





function SetupDiEnumDeviceInterfaces(
                   DeviceInfoSet       : HDEVINFO;
                   DeviceInfoData      : PSP_DEVINFO_DATA;
                   InterfaceClassGuid  : PGUID;
                   MemberIndex         : DWORD;
                   DeviceInterfaceData : PSP_DEVICE_INTERFACE_DATA
                   ):boolean;stdcall; external 'setupapi.dll';
//SetupDiEnumDeviceInterfaces(
//    IN  HDEVINFO                  DeviceInfoSet,
//    IN  PSP_DEVINFO_DATA          DeviceInfoData,     OPTIONAL
//    IN  LPGUID                    InterfaceClassGuid,
//    IN  DWORD                     MemberIndex,
//    OUT PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
//    );



function SetupDiGetDeviceInterfaceDetailA(
                   DeviceInfoSet                 : HDEVINFO;
                   DeviceInterfaceData           : PSP_DEVICE_INTERFACE_DATA;
                   DeviceInterfaceDetailData     : PSP_DEVICE_INTERFACE_DETAIL_DATA_A;
                   DeviceInterfaceDetailDataSize : DWORD;
                   RequiredSize                  : PDWORD;
                   DeviceInfoData                : PSP_DEVINFO_DATA
                   ):boolean;stdcall; external 'setupapi.dll';


//SetupDiGetDeviceInterfaceDetailA(
//    IN  HDEVINFO                           DeviceInfoSet,
//    IN  PSP_DEVICE_INTERFACE_DATA          DeviceInterfaceData,
//    OUT PSP_DEVICE_INTERFACE_DETAIL_DATA_A DeviceInterfaceDetailData,     OPTIONAL
//    IN  DWORD                              DeviceInterfaceDetailDataSize,
//    OUT PDWORD                             RequiredSize,                  OPTIONAL
//    OUT PSP_DEVINFO_DATA                   DeviceInfoData                 OPTIONAL
//    );




implementation

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -