class Http
  Create   = Win32API.new('AHttp.dll', 'Create',   'pppp', 'l')
  Query    = Win32API.new('AHttp.dll', 'Query',    'l',    'i')
  Retrieve = Win32API.new('AHttp.dll', 'Retrieve', 'lp',   'i')
  Close    = Win32API.new('AHttp.dll', 'Close',    'l',    'l')
  INVALID = 0;    SUCCESS = 1;    FAILURE = 2;    PENDING = 3
  def initialize(server, action, method, data="")
    @token = Create.call(server, action, method, data)
  end
  def query
    Query.call(@token)
  end
  def retrieve
    if query == SUCCESS
      length = Retrieve.call(@token, 0)
      buffer = "\0" * length
      Retrieve.call(@token, buffer)
      return buffer
    end # or nil
  end
  def close
    Close.call(@token)
  end
end