; 
; Exports of file UREG.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY UREG.dll
EXPORTS
; public: __cdecl REGISTRY::REGISTRY(void) __ptr64
??0REGISTRY@@QEAA@XZ
; public: __cdecl REGISTRY_KEY_INFO::REGISTRY_KEY_INFO(void) __ptr64
??0REGISTRY_KEY_INFO@@QEAA@XZ
; public: __cdecl REGISTRY_VALUE_ENTRY::REGISTRY_VALUE_ENTRY(void) __ptr64
??0REGISTRY_VALUE_ENTRY@@QEAA@XZ
; public: virtual __cdecl REGISTRY::~REGISTRY(void) __ptr64
??1REGISTRY@@UEAA@XZ
; public: unsigned char __cdecl REGISTRY::AddValueEntry(enum _PREDEFINED_KEY,class REGISTRY_KEY_INFO * __ptr64,class REGISTRY_VALUE_ENTRY const * __ptr64,unsigned char,unsigned long * __ptr64) __ptr64
?AddValueEntry@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEAVREGISTRY_KEY_INFO@@PEBVREGISTRY_VALUE_ENTRY@@EPEAK@Z
; public: unsigned char __cdecl REGISTRY::CreateKey(enum _PREDEFINED_KEY,class REGISTRY_KEY_INFO * __ptr64,class REGISTRY_KEY_INFO * __ptr64,unsigned long * __ptr64,unsigned char) __ptr64
?CreateKey@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEAVREGISTRY_KEY_INFO@@1PEAKE@Z
; public: unsigned char __cdecl REGISTRY::DeleteKey(enum _PREDEFINED_KEY,class REGISTRY_KEY_INFO * __ptr64,class WSTRING const * __ptr64,unsigned long * __ptr64) __ptr64
?DeleteKey@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEAVREGISTRY_KEY_INFO@@PEBVWSTRING@@PEAK@Z
; public: unsigned char __cdecl REGISTRY::DeleteValueEntry(enum _PREDEFINED_KEY,class REGISTRY_KEY_INFO * __ptr64,class WSTRING const * __ptr64,unsigned long * __ptr64) __ptr64
?DeleteValueEntry@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEAVREGISTRY_KEY_INFO@@PEBVWSTRING@@PEAK@Z
; public: unsigned char __cdecl REGISTRY::DoesKeyExist(enum _PREDEFINED_KEY,class WSTRING const * __ptr64,class WSTRING const * __ptr64,unsigned long * __ptr64) __ptr64
?DoesKeyExist@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEBVWSTRING@@1PEAK@Z
; public: unsigned char __cdecl REGISTRY::DoesValueExist(enum _PREDEFINED_KEY,class WSTRING const * __ptr64,class WSTRING const * __ptr64,class WSTRING const * __ptr64,unsigned long * __ptr64) __ptr64
?DoesValueExist@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEBVWSTRING@@11PEAK@Z
; public: unsigned char __cdecl REGISTRY::EnableRootNotification(enum _PREDEFINED_KEY,void * __ptr64,unsigned long,unsigned char) __ptr64
?EnableRootNotification@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEAXKE@Z
; public: unsigned char __cdecl REGISTRY::Initialize(class WSTRING const * __ptr64,unsigned long * __ptr64) __ptr64
?Initialize@REGISTRY@@QEAAEPEBVWSTRING@@PEAK@Z
; public: unsigned char __cdecl REGISTRY_KEY_INFO::Initialize(class WSTRING const * __ptr64,class WSTRING const * __ptr64,unsigned long,class WSTRING const * __ptr64,struct _SECURITY_ATTRIBUTES * __ptr64) __ptr64
?Initialize@REGISTRY_KEY_INFO@@QEAAEPEBVWSTRING@@0K0PEAU_SECURITY_ATTRIBUTES@@@Z
; public: unsigned char __cdecl REGISTRY_VALUE_ENTRY::Initialize(class WSTRING const * __ptr64,unsigned long,enum _REG_TYPE,unsigned char const * __ptr64,unsigned long) __ptr64
?Initialize@REGISTRY_VALUE_ENTRY@@QEAAEPEBVWSTRING@@KW4_REG_TYPE@@PEBEK@Z
; public: unsigned char __cdecl REGISTRY::IsAccessAllowed(enum _PREDEFINED_KEY,class REGISTRY_KEY_INFO * __ptr64,unsigned long,unsigned long * __ptr64) __ptr64
?IsAccessAllowed@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEAVREGISTRY_KEY_INFO@@KPEAK@Z
; public: unsigned char __cdecl REGISTRY::LoadHive(enum _PREDEFINED_KEY,class REGISTRY_KEY_INFO * __ptr64,class WSTRING const * __ptr64,unsigned long * __ptr64) __ptr64
?LoadHive@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEAVREGISTRY_KEY_INFO@@PEBVWSTRING@@PEAK@Z
; public: unsigned char __cdecl REGISTRY::QueryKeyInfo(enum _PREDEFINED_KEY,class WSTRING const * __ptr64,class WSTRING const * __ptr64,class REGISTRY_KEY_INFO * __ptr64,unsigned long * __ptr64) __ptr64
?QueryKeyInfo@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEBVWSTRING@@1PEAVREGISTRY_KEY_INFO@@PEAK@Z
; public: unsigned char __cdecl REGISTRY::QueryKeySecurity(enum _PREDEFINED_KEY,class REGISTRY_KEY_INFO const * __ptr64,unsigned long,void * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64
?QueryKeySecurity@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEBVREGISTRY_KEY_INFO@@KPEAPEAXPEAK@Z
; public: unsigned char __cdecl REGISTRY::QuerySubKeysInfo(enum _PREDEFINED_KEY,class WSTRING const * __ptr64,class WSTRING const * __ptr64,class ARRAY * __ptr64,unsigned long * __ptr64) __ptr64
?QuerySubKeysInfo@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEBVWSTRING@@1PEAVARRAY@@PEAK@Z
; public: unsigned char __cdecl REGISTRY::QueryValues(enum _PREDEFINED_KEY,class WSTRING const * __ptr64,class WSTRING const * __ptr64,class ARRAY * __ptr64,unsigned long * __ptr64) __ptr64
?QueryValues@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEBVWSTRING@@1PEAVARRAY@@PEAK@Z
; public: unsigned char __cdecl REGISTRY::RestoreKeyFromFile(enum _PREDEFINED_KEY,class REGISTRY_KEY_INFO * __ptr64,class WSTRING const * __ptr64,unsigned char,unsigned long * __ptr64) __ptr64
?RestoreKeyFromFile@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEAVREGISTRY_KEY_INFO@@PEBVWSTRING@@EPEAK@Z
; public: unsigned char __cdecl REGISTRY::SaveKeyToFile(enum _PREDEFINED_KEY,class REGISTRY_KEY_INFO * __ptr64,class WSTRING const * __ptr64,unsigned long * __ptr64) __ptr64
?SaveKeyToFile@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEAVREGISTRY_KEY_INFO@@PEBVWSTRING@@PEAK@Z
; public: unsigned char __cdecl REGISTRY::SetKeySecurity(enum _PREDEFINED_KEY,class REGISTRY_KEY_INFO * __ptr64,unsigned long,void * __ptr64,unsigned long * __ptr64,unsigned char) __ptr64
?SetKeySecurity@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEAVREGISTRY_KEY_INFO@@KPEAXPEAKE@Z
; public: unsigned char __cdecl REGISTRY::UnLoadHive(enum _PREDEFINED_KEY,class REGISTRY_KEY_INFO * __ptr64,unsigned long * __ptr64) __ptr64
?UnLoadHive@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEAVREGISTRY_KEY_INFO@@PEAK@Z
; public: unsigned char __cdecl REGISTRY::UpdateKeyInfo(enum _PREDEFINED_KEY,class REGISTRY_KEY_INFO * __ptr64,unsigned long * __ptr64) __ptr64
?UpdateKeyInfo@REGISTRY@@QEAAEW4_PREDEFINED_KEY@@PEAVREGISTRY_KEY_INFO@@PEAK@Z
