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

📄 usbiocomlib_tlb.pas

📁 6个用VB和DELPHI编写的FOR USB驱动程序
💻 PAS
📖 第 1 页 / 共 4 页
字号:
                            out DriverBuildNumber: SYSINT; out Flags: SYSINT; out Status: SYSINT); safecall;
    function  Get_IsCheckedBuild: Integer; safecall;
    function  Get_IsDemoVersion: Integer; safecall;
    function  Get_IsLightVersion: Integer; safecall;
    function  Get_DeviceOptions: SYSINT; safecall;
    procedure Set_DeviceOptions(Options: SYSINT); safecall;
    function  Get_DeviceRequestTimeout: SYSINT; safecall;
    procedure Set_DeviceRequestTimeout(pVal: SYSINT); safecall;
    procedure GetDescriptor(var Descriptor: PSafeArray; var DescSize: SYSINT; Recipient: SYSINT; 
                            DescriptorType: SYSINT; DescriptorIndex: SYSINT; LanguageId: SYSINT; 
                            out Status: SYSINT); safecall;
    procedure GetDeviceDescriptor(var DeviceDescriptor: PSafeArray; var DescSize: SYSINT; 
                                  out Status: SYSINT); safecall;
    procedure GetConfigurationDescriptor(var ConfigDescriptor: PSafeArray; var DescSize: SYSINT; 
                                         Index: Byte; out Status: SYSINT); safecall;
    procedure GetStringDescriptor(var StringDescriptor: PSafeArray; var DescSize: SYSINT; 
                                  Index: Byte; LanguageId: SYSINT; out Status: SYSINT); safecall;
    procedure SetDescriptor(var Descriptor: PSafeArray; Recipient: SYSINT; DescriptorType: SYSINT; 
                            DescriptorIndex: SYSINT; LanguageId: SYSINT; out Status: SYSINT); safecall;
    procedure AddInterface(InterfaceIndex: SYSINT; AlternateSettingIndex: SYSINT; 
                           MaximumTransferSize: SYSINT; out Status: SYSINT); safecall;
    procedure DeleteInterfaces; safecall;
    procedure SetConfiguration(ConfigurationIndex: SYSINT; out Status: SYSINT); safecall;
    procedure GetConfiguration(out ConfigurationValue: Byte; out Status: SYSINT); safecall;
    procedure UnconfigureDevice(out Status: SYSINT); safecall;
    procedure SetInterface(InterfaceIndex: SYSINT; AlternateSettingIndex: SYSINT; 
                           MaximumTransferSize: SYSINT; out Status: SYSINT); safecall;
    procedure GetInterface(out AlternateSetting: Byte; InterfaceIndex: SYSINT; out Status: SYSINT); safecall;
    procedure ClassOrVendorInRequest(var Buffer: PSafeArray; var ByteCount: SYSINT; Flags: SYSINT; 
                                     Type_: SYSINT; Recipient: SYSINT; 
                                     RequestTypeReservedBits: SYSINT; Request: SYSINT; 
                                     Value: SYSINT; Index: SYSINT; out Status: SYSINT); safecall;
    procedure ClassOrVendorOutRequest(var Buffer: PSafeArray; Flags: SYSINT; Type_: SYSINT; 
                                      Recipient: SYSINT; RequestTypeReservedBits: SYSINT; 
                                      Request: SYSINT; Value: SYSINT; Index: SYSINT; 
                                      out Status: SYSINT); safecall;
    procedure SetFeature(Recipient: SYSINT; FeatureSelector: SYSINT; Index: SYSINT; 
                         out Status: SYSINT); safecall;
    procedure ClearFeature(Recipient: SYSINT; FeatureSelector: SYSINT; Index: SYSINT; 
                           out Status: SYSINT); safecall;
    procedure GetDevicePowerState(out DevicePowerState: SYSINT; out Status: SYSINT); safecall;
    procedure SetDevicePowerState(DevicePowerState: SYSINT; out Status: SYSINT); safecall;
    procedure ResetDevice(out Status: SYSINT); safecall;
    procedure CyclePort(out Status: SYSINT); safecall;
    procedure GetStatus(out StatusValue: SYSINT; Recipient: SYSINT; Index: SYSINT; 
                        out Status: SYSINT); safecall;
    procedure GetCurrentFrameNumber(out FrameNumber: SYSINT; out Status: SYSINT); safecall;
    function  ErrorText(Status: SYSINT): WideString; safecall;
    procedure Bind(EndpointAddress: Byte; out Status: SYSINT); safecall;
    procedure Unbind(out Status: SYSINT); safecall;
    procedure StartReading(SizeOfBuffer_IsoFramesInBuffer: SYSINT; NumberOfBuffers: SYSINT; 
                           MaxErrorCount: SYSINT; out Status: SYSINT); safecall;
    procedure ReadData(var Buffer: PSafeArray; out ByteCount: SYSINT; out Status: SYSINT); safecall;
    procedure ReadIsoData(var Buffer: PSafeArray; out ByteCount: SYSINT; 
                          var SubBufferLength_ErrorCode: PSafeArray; out Status: SYSINT); safecall;
    procedure StopReading; safecall;
    procedure StartWriting(SizeOfBuffer_IsoFramesInBuffer: SYSINT; NumberOfBuffers: SYSINT; 
                           MaxErrorCount: SYSINT; WriteStatus: Integer; out Status: SYSINT); safecall;
    procedure WriteData(var Buffer: PSafeArray; UserId: SYSINT; out Status: SYSINT); safecall;
    procedure GetWriteStatus(out UserId: SYSINT; out Status: SYSINT); safecall;
    procedure WriteIsoData(var Buffer: PSafeArray; var SubBufferLength: PSafeArray; UserId: SYSINT; 
                           out Status: SYSINT); safecall;
    procedure GetIsoWriteStatus(out UserId: SYSINT; var StatusArray: PSafeArray; 
                                out FrameCount: SYSINT; out Status: SYSINT); safecall;
    procedure StopWriting; safecall;
    procedure ResetPipe(out Status: SYSINT); safecall;
    procedure AbortPipe(out Status: SYSINT); safecall;
    function  Get_ShortTransferOK: Integer; safecall;
    procedure Set_ShortTransferOK(ShortTransfer: Integer); safecall;
    function  Get_EndpointFifoSize: SYSINT; safecall;
    procedure EnablePnPNotification(const Guid: WideString; out Status: SYSINT); safecall;
    procedure DisablePnPNotification(const Guid: WideString; out Status: SYSINT); safecall;
    property DevicePathName: WideString read Get_DevicePathName;
    property IsCheckedBuild: Integer read Get_IsCheckedBuild;
    property IsDemoVersion: Integer read Get_IsDemoVersion;
    property IsLightVersion: Integer read Get_IsLightVersion;
    property DeviceOptions: SYSINT read Get_DeviceOptions write Set_DeviceOptions;
    property DeviceRequestTimeout: SYSINT read Get_DeviceRequestTimeout write Set_DeviceRequestTimeout;
    property ShortTransferOK: Integer read Get_ShortTransferOK write Set_ShortTransferOK;
    property EndpointFifoSize: SYSINT read Get_EndpointFifoSize;
  end;

// *********************************************************************//
// DispIntf:  IUSBIOInterfaceDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {666A2128-A89C-4166-8683-59D0628E227D}
// *********************************************************************//
  IUSBIOInterfaceDisp = dispinterface
    ['{666A2128-A89C-4166-8683-59D0628E227D}']
    procedure EnumerateDevices(const GUIDDriverInterface: WideString; out NumberOfDevices: SYSINT); dispid 1;
    procedure OpenDevice(DeviceNumber: SYSINT; out Status: SYSINT); dispid 2;
    procedure CloseDevice; dispid 3;
    property DevicePathName: WideString readonly dispid 4;
    procedure GetDriverInfo(out APIVersion: SYSINT; out DriverVersion: SYSINT; 
                            out DriverBuildNumber: SYSINT; out Flags: SYSINT; out Status: SYSINT); dispid 5;
    property IsCheckedBuild: Integer readonly dispid 6;
    property IsDemoVersion: Integer readonly dispid 7;
    property IsLightVersion: Integer readonly dispid 8;
    property DeviceOptions: SYSINT dispid 9;
    property DeviceRequestTimeout: SYSINT dispid 10;
    procedure GetDescriptor(var Descriptor: {??PSafeArray} OleVariant; var DescSize: SYSINT; 
                            Recipient: SYSINT; DescriptorType: SYSINT; DescriptorIndex: SYSINT; 
                            LanguageId: SYSINT; out Status: SYSINT); dispid 12;
    procedure GetDeviceDescriptor(var DeviceDescriptor: {??PSafeArray} OleVariant; 
                                  var DescSize: SYSINT; out Status: SYSINT); dispid 13;
    procedure GetConfigurationDescriptor(var ConfigDescriptor: {??PSafeArray} OleVariant; 
                                         var DescSize: SYSINT; Index: Byte; out Status: SYSINT); dispid 14;
    procedure GetStringDescriptor(var StringDescriptor: {??PSafeArray} OleVariant; 
                                  var DescSize: SYSINT; Index: Byte; LanguageId: SYSINT; 
                                  out Status: SYSINT); dispid 15;
    procedure SetDescriptor(var Descriptor: {??PSafeArray} OleVariant; Recipient: SYSINT; 
                            DescriptorType: SYSINT; DescriptorIndex: SYSINT; LanguageId: SYSINT; 
                            out Status: SYSINT); dispid 16;
    procedure AddInterface(InterfaceIndex: SYSINT; AlternateSettingIndex: SYSINT; 
                           MaximumTransferSize: SYSINT; out Status: SYSINT); dispid 17;
    procedure DeleteInterfaces; dispid 18;
    procedure SetConfiguration(ConfigurationIndex: SYSINT; out Status: SYSINT); dispid 19;
    procedure GetConfiguration(out ConfigurationValue: Byte; out Status: SYSINT); dispid 20;
    procedure UnconfigureDevice(out Status: SYSINT); dispid 21;
    procedure SetInterface(InterfaceIndex: SYSINT; AlternateSettingIndex: SYSINT; 
                           MaximumTransferSize: SYSINT; out Status: SYSINT); dispid 22;
    procedure GetInterface(out AlternateSetting: Byte; InterfaceIndex: SYSINT; out Status: SYSINT); dispid 23;
    procedure ClassOrVendorInRequest(var Buffer: {??PSafeArray} OleVariant; var ByteCount: SYSINT; 
                                     Flags: SYSINT; Type_: SYSINT; Recipient: SYSINT; 
                                     RequestTypeReservedBits: SYSINT; Request: SYSINT; 
                                     Value: SYSINT; Index: SYSINT; out Status: SYSINT); dispid 24;
    procedure ClassOrVendorOutRequest(var Buffer: {??PSafeArray} OleVariant; Flags: SYSINT; 
                                      Type_: SYSINT; Recipient: SYSINT; 
                                      RequestTypeReservedBits: SYSINT; Request: SYSINT; 
                                      Value: SYSINT; Index: SYSINT; out Status: SYSINT); dispid 25;
    procedure SetFeature(Recipient: SYSINT; FeatureSelector: SYSINT; Index: SYSINT; 
                         out Status: SYSINT); dispid 26;
    procedure ClearFeature(Recipient: SYSINT; FeatureSelector: SYSINT; Index: SYSINT; 
                           out Status: SYSINT); dispid 27;
    procedure GetDevicePowerState(out DevicePowerState: SYSINT; out Status: SYSINT); dispid 28;
    procedure SetDevicePowerState(DevicePowerState: SYSINT; out Status: SYSINT); dispid 29;
    procedure ResetDevice(out Status: SYSINT); dispid 30;
    procedure CyclePort(out Status: SYSINT); dispid 31;
    procedure GetStatus(out StatusValue: SYSINT; Recipient: SYSINT; Index: SYSINT; 
                        out Status: SYSINT); dispid 32;
    procedure GetCurrentFrameNumber(out FrameNumber: SYSINT; out Status: SYSINT); dispid 33;
    function  ErrorText(Status: SYSINT): WideString; dispid 34;
    procedure Bind(EndpointAddress: Byte; out Status: SYSINT); dispid 35;
    procedure Unbind(out Status: SYSINT); dispid 36;
    procedure StartReading(SizeOfBuffer_IsoFramesInBuffer: SYSINT; NumberOfBuffers: SYSINT; 
                           MaxErrorCount: SYSINT; out Status: SYSINT); dispid 37;
    procedure ReadData(var Buffer: {??PSafeArray} OleVariant; out ByteCount: SYSINT; 
                       out Status: SYSINT); dispid 38;
    procedure ReadIsoData(var Buffer: {??PSafeArray} OleVariant; out ByteCount: SYSINT; 
                          var SubBufferLength_ErrorCode: {??PSafeArray} OleVariant; 
                          out Status: SYSINT); dispid 39;
    procedure StopReading; dispid 40;
    procedure StartWriting(SizeOfBuffer_IsoFramesInBuffer: SYSINT; NumberOfBuffers: SYSINT; 
                           MaxErrorCount: SYSINT; WriteStatus: Integer; out Status: SYSINT); dispid 41;
    procedure WriteData(var Buffer: {??PSafeArray} OleVariant; UserId: SYSINT; out Status: SYSINT); dispid 42;
    procedure GetWriteStatus(out UserId: SYSINT; out Status: SYSINT); dispid 43;
    procedure WriteIsoData(var Buffer: {??PSafeArray} OleVariant; 
                           var SubBufferLength: {??PSafeArray} OleVariant; UserId: SYSINT; 
                           out Status: SYSINT); dispid 44;
    procedure GetIsoWriteStatus(out UserId: SYSINT; var StatusArray: {??PSafeArray} OleVariant; 
                                out FrameCount: SYSINT; out Status: SYSINT); dispid 45;
    procedure StopWriting; dispid 46;
    procedure ResetPipe(out Status: SYSINT); dispid 47;
    procedure AbortPipe(out Status: SYSINT); dispid 48;
    property ShortTransferOK: Integer dispid 49;
    property EndpointFifoSize: SYSINT readonly dispid 51;
    procedure EnablePnPNotification(const Guid: WideString; out Status: SYSINT); dispid 52;
    procedure DisablePnPNotification(const Guid: WideString; out Status: SYSINT); dispid 53;
  end;

// *********************************************************************//
// The Class CoUSBIOInterface provides a Create and CreateRemote method to          
// create instances of the default interface IUSBIOInterface exposed by              
// the CoClass USBIOInterface. The functions are intended to be used by             
// clients wishing to automate the CoClass objects exposed by the         
// server of this typelibrary.                                            
// *********************************************************************//
  CoUSBIOInterface = class
    class function Create: IUSBIOInterface;
    class function CreateRemote(const MachineName: string): IUSBIOInterface;
  end;

  TUSBIOInterfaceReadComplete = procedure(Sender: TObject; var Obj: OleVariant) of object;
  TUSBIOInterfaceWriteComplete = procedure(Sender: TObject; var Obj: OleVariant) of object;
  TUSBIOInterfaceWriteStatusAvailable = procedure(Sender: TObject; var Obj: OleVariant) of object;
  TUSBIOInterfacePnPAddNotification = procedure(Sender: TObject; var Obj: OleVariant) of object;
  TUSBIOInterfacePnPRemoveNotification = procedure(Sender: TObject; var Obj: OleVariant) of object;


// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object    : TUSBIOInterface
// Help String      : USBIOInterface Class
// Default Interface: IUSBIOInterface
// Def. Intf. DISP? : No
// Event   Interface: _IUSBIOInterfaceEvents
// TypeFlags        : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  TUSBIOInterfaceProperties= class;
{$ENDIF}
  TUSBIOInterface = class(TOleServer)
  private
    FOnReadComplete: TUSBIOInterfaceReadComplete;
    FOnWriteComplete: TUSBIOInterfaceWriteComplete;
    FOnWriteStatusAvailable: TUSBIOInterfaceWriteStatusAvailable;
    FOnPnPAddNotification: TUSBIOInterfacePnPAddNotification;
    FOnPnPRemoveNotification: TUSBIOInterfacePnPRemoveNotification;
    FIntf:        IUSBIOInterface;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
    FProps:       TUSBIOInterfaceProperties;
    function      GetServerProperties: TUSBIOInterfaceProperties;
{$ENDIF}
    function      GetDefaultInterface: IUSBIOInterface;
  protected
    procedure InitServerData; override;
    procedure InvokeEvent(DispID: TDispID; var Params: TVariantArray); override;
    function  Get_DevicePathName: WideString;
    function  Get_IsCheckedBuild: Integer;
    function  Get_IsDemoVersion: Integer;
    function  Get_IsLightVersion: Integer;
    function  Get_DeviceOptions: SYSINT;
    procedure Set_DeviceOptions(Options: SYSINT);
    function  Get_DeviceRequestTimeout: SYSINT;
    procedure Set_DeviceRequestTimeout(pVal: SYSINT);
    function  Get_ShortTransferOK: Integer;
    procedure Set_ShortTransferOK(ShortTransfer: Integer);
    function  Get_EndpointFifoSize: SYSINT;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure Connect; override;
    procedure ConnectTo(svrIntf: IUSBIOInterface);
    procedure Disconnect; override;
    procedure EnumerateDevices(const GUIDDriverInterface: WideString; out NumberOfDevices: SYSINT);
    procedure OpenDevice(DeviceNumber: SYSINT; out Status: SYSINT);
    procedure CloseDevice;
    procedure GetDriverInfo(out APIVersion: SYSINT; out DriverVersion: SYSINT; 
                            out DriverBuildNumber: SYSINT; out Flags: SYSINT; out Status: SYSINT);
    procedure GetDescriptor(var Descriptor: PSafeArray; var DescSize: SYSINT; Recipient: SYSINT; 
                            DescriptorType: SYSINT; DescriptorIndex: SYSINT; LanguageId: SYSINT; 
                            out Status: SYSINT);
    procedure GetDeviceDescriptor(var DeviceDescriptor: PSafeArray; var DescSize: SYSINT; 
                                  out Status: SYSINT);
    procedure GetConfigurationDescriptor(var ConfigDescriptor: PSafeArray; var DescSize: SYSINT; 
                                         Index: Byte; out Status: SYSINT);
    procedure GetStringDescriptor(var StringDescriptor: PSafeArray; var DescSize: SYSINT; 
                                  Index: Byte; LanguageId: SYSINT; out Status: SYSINT);
    procedure SetDescriptor(var Descriptor: PSafeArray; Recipient: SYSINT; DescriptorType: SYSINT; 
                            DescriptorIndex: SYSINT; LanguageId: SYSINT; out Status: SYSINT);
    procedure AddInterface(InterfaceIndex: SYSINT; AlternateSettingIndex: SYSINT; 
                           MaximumTransferSize: SYSINT; out Status: SYSINT);
    procedure DeleteInterfaces;
    procedure SetConfiguration(ConfigurationIndex: SYSINT; out Status: SYSINT);
    procedure GetConfiguration(out ConfigurationValue: Byte; out Status: SYSINT);
    procedure UnconfigureDevice(out Status: SYSINT);
    procedure SetInterface(InterfaceIndex: SYSINT; AlternateSettingIndex: SYSINT; 
                           MaximumTransferSize: SYSINT; out Status: SYSINT);
    procedure GetInterface(out AlternateSetting: Byte; InterfaceIndex: SYSINT; out Status: SYSINT);
    procedure ClassOrVendorInRequest(var Buffer: PSafeArray; var ByteCount: SYSINT; Flags: SYSINT; 
                                     Type_: SYSINT; Recipient: SYSINT; 
                                     RequestTypeReservedBits: SYSINT; Request: SYSINT; 
                                     Value: SYSINT; Index: SYSINT; out Status: SYSINT);
    procedure ClassOrVendorOutRequest(var Buffer: PSafeArray; Flags: SYSINT; Type_: SYSINT; 
                                      Recipient: SYSINT; RequestTypeReservedBits: SYSINT; 
                                      Request: SYSINT; Value: SYSINT; Index: SYSINT; 
                                      out Status: SYSINT);
    procedure SetFeature(Recipient: SYSINT; FeatureSelector: SYSINT; Index: SYSINT; 
                         out Status: SYSINT);
    procedure ClearFeature(Recipient: SYSINT; FeatureSelector: SYSINT; Index: SYSINT; 
                           out Status: SYSINT);
    procedure GetDevicePowerState(out DevicePowerState: SYSINT; out Status: SYSINT);
    procedure SetDevicePowerState(DevicePowerState: SYSINT; out Status: SYSINT);
    procedure ResetDevice(out Status: SYSINT);
    procedure CyclePort(out Status: SYSINT);
    procedure GetStatus(out StatusValue: SYSINT; Recipient: SYSINT; Index: SYSINT; 
                        out Status: SYSINT);
    procedure GetCurrentFrameNumber(out FrameNumber: SYSINT; out Status: SYSINT);
    function  ErrorText(Status: SYSINT): WideString;
    procedure Bind(EndpointAddress: Byte; out Status: SYSINT);
    procedure Unbind(out Status: SYSINT);

⌨️ 快捷键说明

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