; 
; 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
