; 
; Exports of file CLBCatQ.DLL
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY CLBCatQ.DLL
EXPORTS
ActivatorUpdateForIsRouterChanges
; void __cdecl ClearList(class CStructArray * __ptr64)
?ClearList@@YAXPEAVCStructArray@@@Z
CoRegCleanup
; long __cdecl CreateComponentLibraryTS(unsigned short const * __ptr64,long,struct IComponentRecords * __ptr64 * __ptr64)
?CreateComponentLibraryTS@@YAJPEBGJPEAPEAUIComponentRecords@@@Z
; long __cdecl DataConvert(unsigned short,unsigned short,unsigned long,unsigned long * __ptr64,void * __ptr64,void * __ptr64,unsigned long,unsigned long,unsigned long * __ptr64,unsigned char,unsigned char,unsigned long)
?DataConvert@@YAJGGKPEAKPEAX1KK0EEK@Z
DeleteAllActivatorsForClsid
; void __cdecl DestroyStgDatabase(class StgDatabase * __ptr64)
?DestroyStgDatabase@@YAXPEAVStgDatabase@@@Z
DowngradeAPL
; long __cdecl GetDataConversion(struct IDataConvert * __ptr64 * __ptr64)
?GetDataConversion@@YAJPEAPEAUIDataConvert@@@Z
; class CGetDataConversion * __ptr64 __cdecl GetDataConvertObject(void)
?GetDataConvertObject@@YAPEAVCGetDataConversion@@XZ
GetGlobalBabyJITEnabled
; long __cdecl GetPropValue(unsigned short,long * __ptr64,void * __ptr64,int,int * __ptr64,struct tagDBPROP & __ptr64)
?GetPropValue@@YAJGPEAJPEAXHPEAHAEAUtagDBPROP@@@Z
; long __cdecl GetStgDatabase(class StgDatabase * __ptr64 * __ptr64)
?GetStgDatabase@@YAJPEAPEAVStgDatabase@@@Z
; void __cdecl InitErrors(unsigned long * __ptr64)
?InitErrors@@YAXPEAK@Z
; long __cdecl OpenComponentLibrarySharedTS(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long,struct _SECURITY_ATTRIBUTES * __ptr64,long,struct IComponentRecords * __ptr64 * __ptr64)
?OpenComponentLibrarySharedTS@@YAJPEBG0KPEAU_SECURITY_ATTRIBUTES@@JPEAPEAUIComponentRecords@@@Z
; long __cdecl OpenComponentLibraryTS(unsigned short const * __ptr64,long,struct IComponentRecords * __ptr64 * __ptr64)
?OpenComponentLibraryTS@@YAJPEBGJPEAPEAUIComponentRecords@@@Z
; long __cdecl PostError(long,...)
?PostError@@YAJJZZ
; void __cdecl ShutDownDataConversion(void)
?ShutDownDataConversion@@YAXXZ
UpdateFromAppChange
UpdateFromComponentChange
CLSIDFromStringByBitness
CheckMemoryGates
ComPlusEnablePartitions
ComPlusEnableRemoteAccess
ComPlusMigrate
ComPlusPartitionsEnabled
ComPlusRemoteAccessEnabled
CreateComponentLibraryEx
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer
GetCatalogObject
GetCatalogObject2
GetComputerObject
GetSimpleTableDispenser
InprocServer32FromString
OpenComponentLibraryEx
OpenComponentLibraryOnMemEx
OpenComponentLibraryOnStreamEx
OpenComponentLibrarySharedEx
ServerGetApplicationType
SetSetupOpen
SetSetupSave
SetupOpen
SetupSave
