; 
; Exports of file CLBCatQ.DLL
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY CLBCatQ.DLL
EXPORTS
ActivatorUpdateForIsRouterChanges
; void __stdcall ClearList(class CStructArray *)
?ClearList@@YGXPAVCStructArray@@@Z
CoRegCleanup
; long __stdcall CreateComponentLibraryTS(unsigned short const *,long,struct IComponentRecords * *)
?CreateComponentLibraryTS@@YGJPBGJPAPAUIComponentRecords@@@Z
; long __stdcall DataConvert(unsigned short,unsigned short,unsigned long,unsigned long *,void *,void *,unsigned long,unsigned long,unsigned long *,unsigned char,unsigned char,unsigned long)
?DataConvert@@YGJGGKPAKPAX1KK0EEK@Z
DeleteAllActivatorsForClsid
; void __stdcall DestroyStgDatabase(class StgDatabase *)
?DestroyStgDatabase@@YGXPAVStgDatabase@@@Z
DowngradeAPL
; long __stdcall GetDataConversion(struct IDataConvert * *)
?GetDataConversion@@YGJPAPAUIDataConvert@@@Z
; class CGetDataConversion * __stdcall GetDataConvertObject(void)
?GetDataConvertObject@@YGPAVCGetDataConversion@@XZ
GetGlobalBabyJITEnabled
; long __stdcall GetPropValue(unsigned short,long *,void *,int,int *,struct tagDBPROP &)
?GetPropValue@@YGJGPAJPAXHPAHAAUtagDBPROP@@@Z
; long __stdcall GetStgDatabase(class StgDatabase * *)
?GetStgDatabase@@YGJPAPAVStgDatabase@@@Z
; void __stdcall InitErrors(unsigned long *)
?InitErrors@@YGXPAK@Z
; long __stdcall OpenComponentLibrarySharedTS(unsigned short const *,unsigned short const *,unsigned long,struct _SECURITY_ATTRIBUTES *,long,struct IComponentRecords * *)
?OpenComponentLibrarySharedTS@@YGJPBG0KPAU_SECURITY_ATTRIBUTES@@JPAPAUIComponentRecords@@@Z
; long __stdcall OpenComponentLibraryTS(unsigned short const *,long,struct IComponentRecords * *)
?OpenComponentLibraryTS@@YGJPBGJPAPAUIComponentRecords@@@Z
; long __cdecl PostError(long,...)
?PostError@@YAJJZZ
; void __stdcall ShutDownDataConversion(void)
?ShutDownDataConversion@@YGXXZ
UpdateFromAppChange
UpdateFromComponentChange
CLSIDFromStringByBitness
CheckMemoryGates
ComPlusEnablePartitions
ComPlusEnableRemoteAccess
ComPlusMigrate
ComPlusPartitionsEnabled
ComPlusRemoteAccessEnabled
CreateComponentLibraryEx
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer
GetCatalogObject2
GetCatalogObject
GetComputerObject
GetSimpleTableDispenser
InprocServer32FromString
OpenComponentLibraryEx
OpenComponentLibraryOnMemEx
OpenComponentLibraryOnStreamEx
OpenComponentLibrarySharedEx
ServerGetApplicationType
SetSetupOpen
SetSetupSave
SetupOpen
SetupSave
