# Automatically generated by make_symbols; DO NOT EDIT!! 
#
# Perl definitions for header file winreg.h
#


package winreg;

use strict;

use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);

require Exporter;

@ISA = qw(Exporter);
@EXPORT = qw(
    HKEY_CLASSES_ROOT
    HKEY_CURRENT_CONFIG
    HKEY_CURRENT_USER
    HKEY_DYN_DATA
    HKEY_LOCAL_MACHINE
    HKEY_PERFORMANCE_DATA
    HKEY_USERS
);
@EXPORT_OK = qw();

use constant HKEY_CLASSES_ROOT => -2147483648;
use constant HKEY_CURRENT_CONFIG => -2147483643;
use constant HKEY_CURRENT_USER => -2147483647;
use constant HKEY_DYN_DATA => -2147483642;
use constant HKEY_LOCAL_MACHINE => -2147483646;
use constant HKEY_PERFORMANCE_DATA => -2147483644;
use constant HKEY_USERS => -2147483645;

1;
