require 'windows/api'

module Windows
   module Handle
      API.auto_namespace = 'Windows::Handle'
      API.auto_constant  = true
      API.auto_method    = true
      API.auto_unicode   = false

      INVALID_HANDLE_VALUE           = 0xFFFFFFFF
      HANDLE_FLAG_INHERIT            = 0x00000001
      HANDLE_FLAG_PROTECT_FROM_CLOSE = 0x00000002
      
      API.new('CloseHandle', 'L', 'B')
      API.new('DuplicateHandle', 'LLLPLIL', 'B')
      API.new('GetHandleInformation', 'LL', 'B')
      API.new('SetHandleInformation', 'LLL', 'B')
      API.new('_get_osfhandle', 'I', 'L', MSVCRT_DLL)
      API.new('_open_osfhandle', 'LI', 'I', MSVCRT_DLL)
   end
end
