home *** CD-ROM | disk | FTP | other *** search
/ Dan Appleman's Visual Bas…s Guide to the Win32 API / Dan.Applmans.Visual.Basic.5.0.Programmers.Guide.To.The.Win32.API.1997.Ziff-Davis.Press.CD / VB5PG32.mdf / vbpg32 / samples4 / ch14 / pipe.bas < prev    next >
Encoding:
BASIC Source File  |  1997-02-16  |  5.7 KB  |  97 lines

  1. Attribute VB_Name = "Pipe"
  2. Option Explicit
  3. ' Copyright ⌐ 1997 by Desaware Inc. All Rights Reserved
  4.  
  5. Type STARTUPINFO
  6.         cb As Long
  7.         lpReserved As String
  8.         lpDesktop As String
  9.         lpTitle As String
  10.         dwX As Long
  11.         dwY As Long
  12.         dwXSize As Long
  13.         dwYSize As Long
  14.         dwXCountChars As Long
  15.         dwYCountChars As Long
  16.         dwFillAttribute As Long
  17.         dwFlags As Long
  18.         wShowWindow As Integer
  19.         cbReserved2 As Integer
  20.         lpReserved2 As Long
  21.         hStdInput As Long
  22.         hStdOutput As Long
  23.         hStdError As Long
  24. End Type
  25.  
  26. Type PROCESS_INFORMATION
  27.         hProcess As Long
  28.         hThread As Long
  29.         dwProcessId As Long
  30.         dwThreadId As Long
  31. End Type
  32.  
  33. Type SECURITY_ATTRIBUTES
  34.         nLength As Long
  35.         lpSecurityDescriptor As Long
  36.         bInheritHandle As Long
  37. End Type
  38.  
  39. Type OVERLAPPED
  40.         Internal As Long
  41.         InternalHigh As Long
  42.         offset As Long
  43.         OffsetHigh As Long
  44.         hEvent As Long
  45. End Type
  46.  
  47. Declare Function CreatePipe Lib "kernel32" (phReadPipe As Long, phWritePipe As Long, lpPipeAttributes As SECURITY_ATTRIBUTES, ByVal nSize As Long) As Long
  48. Declare Function ConnectNamedPipe Lib "kernel32" (ByVal hNamedPipe As Long, ByVal lpOverlapped As Long) As Long
  49. Declare Function DisconnectNamedPipe Lib "kernel32" (ByVal hNamedPipe As Long) As Long
  50. Declare Function SetNamedPipeHandleState Lib "kernel32" (ByVal hNamedPipe As Long, lpMode As Long, lpMaxCollectionCount As Long, lpCollectDataTimeout As Long) As Long
  51. Declare Function GetNamedPipeInfo Lib "kernel32" (ByVal hNamedPipe As Long, lpFlags As Long, lpOutBufferSize As Long, lpInBufferSize As Long, lpMaxInstances As Long) As Long
  52. Declare Function PeekNamedPipe Lib "kernel32" (ByVal hNamedPipe As Long, lpBuffer As Any, ByVal nBufferSize As Long, lpBytesRead As Long, lpTotalBytesAvail As Long, lpBytesLeftThisMessage As Long) As Long
  53. Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As Long
  54. Declare Function SetStdHandle Lib "kernel32" (ByVal nStdHandle As Long, ByVal nHandle As Long) As Long
  55. Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Long) As Long
  56. Declare Function WriteFileAsync Lib "kernel32" Alias "WriteFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As OVERLAPPED) As Long
  57. Declare Function ReadFileAsync Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long
  58. Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal lpOverlapped As Long) As Long
  59. Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As SECURITY_ATTRIBUTES, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDirectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
  60. Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  61. Declare Function DuplicateHandle Lib "kernel32" (ByVal hSourceProcessHandle As Long, ByVal hSourceHandle As Long, ByVal hTargetProcessHandle As Long, lpTargetHandle As Long, ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwOptions As Long) As Long
  62. Declare Function WaitNamedPipe Lib "kernel32" Alias "WaitNamedPipeA" (ByVal lpNamedPipeName As String, ByVal nTimeOut As Long) As Long
  63. Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
  64. Declare Function CreateNamedPipe Lib "kernel32" Alias "CreateNamedPipeA" (ByVal lpName As String, ByVal dwOpenMode As Long, ByVal dwPipeMode As Long, ByVal nMaxInstances As Long, ByVal nOutBufferSize As Long, ByVal nInBufferSize As Long, ByVal nDefaultTimeOut As Long, ByVal lpSecurityAttributes As Long) As Long
  65. Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
  66. Declare Function CreateEvent Lib "kernel32" Alias "CreateEventA" (ByVal lpEventAttributes As Long, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long
  67. Declare Function GetLastError Lib "kernel32" () As Long
  68. Declare Function GetCurrentProcessId Lib "kernel32" () As Long
  69.  
  70. Public Const STD_INPUT_HANDLE = -10&
  71. Public Const STD_OUTPUT_HANDLE = -11&
  72. Public Const STD_ERROR_HANDLE = -12&
  73. Public Const NORMAL_PRIORITY_CLASS = &H20
  74. Public Const GENERIC_READ = &H80000000
  75. Public Const GENERIC_WRITE = &H40000000
  76. Public Const GENERIC_EXECUTE = &H20000000
  77. Public Const GENERIC_ALL = &H10000000
  78. Public Const OPEN_EXISTING = 3
  79. Public Const FILE_ATTRIBUTE_NORMAL = &H80
  80. Public Const INVALID_HANDLE_VALUE = -1
  81. Public Const PIPE_ACCESS_INBOUND = &H1
  82. Public Const PIPE_ACCESS_OUTBOUND = &H2
  83. Public Const PIPE_ACCESS_DUPLEX = &H3
  84. Public Const FILE_FLAG_OVERLAPPED = &H40000000
  85. Public Const PIPE_TYPE_BYTE = &H0
  86. Public Const PIPE_TYPE_MESSAGE = &H4
  87. Public Const WAIT_FAILED = -1&
  88. Public Const WAIT_OBJECT_0 = 0
  89. Public Const WAIT_ABANDONED = &H80&
  90. Public Const WAIT_ABANDONED_0 = &H80&
  91. Public Const WAIT_TIMEOUT = &H102&
  92. Public Const WAIT_IO_COMPLETION = &HC0&
  93. Public Const STILL_ACTIVE = &H103&
  94. Public Const INFINITE = -1&
  95. Public Const ERROR_PIPE_CONNECTED = 535&
  96.  
  97.