; 
; Exports of file mqsec.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY mqsec.dll
EXPORTS
; public: __cdecl CCancelRpc::CCancelRpc(class CCancelRpc const & __ptr64) __ptr64
??0CCancelRpc@@QEAA@AEBV0@@Z
; public: __cdecl CCancelRpc::CCancelRpc(void) __ptr64
??0CCancelRpc@@QEAA@XZ
; public: __cdecl CColumns::CColumns(class CColumns const & __ptr64) __ptr64
??0CColumns@@QEAA@AEBV0@@Z
; public: __cdecl CColumns::CColumns(unsigned int) __ptr64
??0CColumns@@QEAA@I@Z
; public: __cdecl CDSBaseUpdate::CDSBaseUpdate(class CDSBaseUpdate const & __ptr64) __ptr64
??0CDSBaseUpdate@@QEAA@AEBV0@@Z
; public: __cdecl CDSBaseUpdate::CDSBaseUpdate(void) __ptr64
??0CDSBaseUpdate@@QEAA@XZ
; public: __cdecl COutputReport::COutputReport(void) __ptr64
??0COutputReport@@QEAA@XZ
; public: __cdecl CPropertyRestriction::CPropertyRestriction(class CPropertyRestriction const & __ptr64) __ptr64
??0CPropertyRestriction@@QEAA@AEBV0@@Z
; public: __cdecl CPropertyRestriction::CPropertyRestriction(unsigned long,unsigned long const & __ptr64,class CMQVariant const & __ptr64) __ptr64
??0CPropertyRestriction@@QEAA@KAEBKAEBVCMQVariant@@@Z
; public: __cdecl CPropertyRestriction::CPropertyRestriction(void) __ptr64
??0CPropertyRestriction@@QEAA@XZ
; public: __cdecl CRestriction::CRestriction(class CRestriction const & __ptr64) __ptr64
??0CRestriction@@QEAA@AEBV0@@Z
; public: __cdecl CRestriction::CRestriction(unsigned int) __ptr64
??0CRestriction@@QEAA@I@Z
; public: __cdecl CSort::CSort(class CSort const & __ptr64) __ptr64
??0CSort@@QEAA@AEBV0@@Z
; public: __cdecl CSort::CSort(unsigned int) __ptr64
??0CSort@@QEAA@I@Z
; public: __cdecl CSortKey::CSortKey(unsigned long const & __ptr64,unsigned long) __ptr64
??0CSortKey@@QEAA@AEBKK@Z
; public: __cdecl CSortKey::CSortKey(void) __ptr64
??0CSortKey@@QEAA@XZ
; public: __cdecl CCancelRpc::~CCancelRpc(void) __ptr64
??1CCancelRpc@@QEAA@XZ
; public: __cdecl CColumns::~CColumns(void) __ptr64
??1CColumns@@QEAA@XZ
; public: __cdecl CDSBaseUpdate::~CDSBaseUpdate(void) __ptr64
??1CDSBaseUpdate@@QEAA@XZ
; public: __cdecl COutputReport::~COutputReport(void) __ptr64
??1COutputReport@@QEAA@XZ
; public: __cdecl CPropertyRestriction::~CPropertyRestriction(void) __ptr64
??1CPropertyRestriction@@QEAA@XZ
; public: __cdecl CRestriction::~CRestriction(void) __ptr64
??1CRestriction@@QEAA@XZ
; public: __cdecl CSort::~CSort(void) __ptr64
??1CSort@@QEAA@XZ
; public: __cdecl CSortKey::~CSortKey(void) __ptr64
??1CSortKey@@QEAA@XZ
; public: class CCancelRpc & __ptr64 __cdecl CCancelRpc::operator=(class CCancelRpc const & __ptr64) __ptr64
??4CCancelRpc@@QEAAAEAV0@AEBV0@@Z
; public: class CDSBaseUpdate & __ptr64 __cdecl CDSBaseUpdate::operator=(class CDSBaseUpdate const & __ptr64) __ptr64
??4CDSBaseUpdate@@QEAAAEAV0@AEBV0@@Z
; public: class COutputReport & __ptr64 __cdecl COutputReport::operator=(class COutputReport const & __ptr64) __ptr64
??4COutputReport@@QEAAAEAV0@AEBV0@@Z
; public: class CPropertyRestriction & __ptr64 __cdecl CPropertyRestriction::operator=(class CPropertyRestriction const & __ptr64) __ptr64
??4CPropertyRestriction@@QEAAAEAV0@AEBV0@@Z
; public: class CRestriction & __ptr64 __cdecl CRestriction::operator=(class CRestriction const & __ptr64) __ptr64
??4CRestriction@@QEAAAEAV0@AEBV0@@Z
; public: class CSortKey & __ptr64 __cdecl CSortKey::operator=(class CSortKey const & __ptr64) __ptr64
??4CSortKey@@QEAAAEAV0@AEBV0@@Z
; public: void __cdecl CColumns::`default constructor closure'(void) __ptr64
??_FCColumns@@QEAAXXZ
; public: void __cdecl CRestriction::`default constructor closure'(void) __ptr64
??_FCRestriction@@QEAAXXZ
; public: void __cdecl CSort::`default constructor closure'(void) __ptr64
??_FCSort@@QEAAXXZ
; public: void __cdecl CCancelRpc::Add(void * __ptr64,__int64) __ptr64
?Add@CCancelRpc@@QEAAXPEAX_J@Z
; public: void __cdecl CColumns::Add(unsigned long const & __ptr64) __ptr64
?Add@CColumns@@QEAAXAEBK@Z
; public: void __cdecl CSort::Add(unsigned long const & __ptr64,unsigned long) __ptr64
?Add@CSort@@QEAAXAEBKK@Z
; public: void __cdecl CSort::Add(class CSortKey const & __ptr64) __ptr64
?Add@CSort@@QEAAXAEBVCSortKey@@@Z
; public: void __cdecl CRestriction::AddChild(class CPropertyRestriction const & __ptr64) __ptr64
?AddChild@CRestriction@@QEAAXAEBVCPropertyRestriction@@@Z
; public: void __cdecl CRestriction::AddRestriction(struct tagBLOB & __ptr64,unsigned long,unsigned long) __ptr64
?AddRestriction@CRestriction@@QEAAXAEAUtagBLOB@@KK@Z
; public: void __cdecl CRestriction::AddRestriction(class CMQVariant const & __ptr64,unsigned long,unsigned long) __ptr64
?AddRestriction@CRestriction@@QEAAXAEBVCMQVariant@@KK@Z
; public: void __cdecl CRestriction::AddRestriction(unsigned char,unsigned long,unsigned long) __ptr64
?AddRestriction@CRestriction@@QEAAXEKK@Z
; public: void __cdecl CRestriction::AddRestriction(short,unsigned long,unsigned long) __ptr64
?AddRestriction@CRestriction@@QEAAXFKK@Z
; public: void __cdecl CRestriction::AddRestriction(long,unsigned long,unsigned long) __ptr64
?AddRestriction@CRestriction@@QEAAXJKK@Z
; public: void __cdecl CRestriction::AddRestriction(unsigned long,unsigned long,unsigned long) __ptr64
?AddRestriction@CRestriction@@QEAAXKKK@Z
; public: void __cdecl CRestriction::AddRestriction(unsigned short * __ptr64,unsigned long,unsigned long) __ptr64
?AddRestriction@CRestriction@@QEAAXPEAGKK@Z
; public: void __cdecl CRestriction::AddRestriction(struct _GUID * __ptr64,unsigned long,unsigned long) __ptr64
?AddRestriction@CRestriction@@QEAAXPEAU_GUID@@KK@Z
; public: void __cdecl CRestriction::AddRestriction(struct tagCACLSID * __ptr64,unsigned long,unsigned long) __ptr64
?AddRestriction@CRestriction@@QEAAXPEAUtagCACLSID@@KK@Z
; public: void __cdecl CRestriction::AddRestriction(struct tagCALPWSTR * __ptr64,unsigned long,unsigned long) __ptr64
?AddRestriction@CRestriction@@QEAAXPEAUtagCALPWSTR@@KK@Z
; public: void __cdecl CCancelRpc::CancelRequests(__int64) __ptr64
?CancelRequests@CCancelRpc@@QEAAX_J@Z
; private: static unsigned long __cdecl CCancelRpc::CancelThread(void * __ptr64)
?CancelThread@CCancelRpc@@CAKPEAX@Z
; public: struct tagMQCOLUMNSET * __ptr64 __cdecl CColumns::CastToStruct(void) __ptr64
?CastToStruct@CColumns@@QEAAPEAUtagMQCOLUMNSET@@XZ
; public: struct tagMQRESTRICTION * __ptr64 __cdecl CRestriction::CastToStruct(void) __ptr64
?CastToStruct@CRestriction@@QEAAPEAUtagMQRESTRICTION@@XZ
; public: struct tagMQSORTSET * __ptr64 __cdecl CSort::CastToStruct(void) __ptr64
?CastToStruct@CSort@@QEAAPEAUtagMQSORTSET@@XZ
; void __cdecl ComposeRPCEndPointName(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64)
?ComposeRPCEndPointName@@YAXPEBG0PEAPEAG@Z
; private: long __cdecl CDSBaseUpdate::CopyProperty(struct tagPROPVARIANT & __ptr64,struct tagPROPVARIANT * __ptr64) __ptr64
?CopyProperty@CDSBaseUpdate@@AEAAJAEAUtagPROPVARIANT@@PEAU2@@Z
; public: unsigned int __cdecl CColumns::Count(void)const  __ptr64
?Count@CColumns@@QEBAIXZ
; public: unsigned int __cdecl CRestriction::Count(void)const  __ptr64
?Count@CRestriction@@QEBAIXZ
; public: unsigned int __cdecl CSort::Count(void)const  __ptr64
?Count@CSort@@QEBAIXZ
; long __cdecl DeleteFalconKeyValue(unsigned short const * __ptr64)
?DeleteFalconKeyValue@@YAJPEBG@Z
; private: void __cdecl CDSBaseUpdate::DeleteProperty(struct tagPROPVARIANT & __ptr64) __ptr64
?DeleteProperty@CDSBaseUpdate@@AEAAXAEAUtagPROPVARIANT@@@Z
FreeContextHandle
; public: unsigned long const & __ptr64 __cdecl CColumns::Get(unsigned int)const  __ptr64
?Get@CColumns@@QEBAAEBKI@Z
; public: class CSortKey const & __ptr64 __cdecl CSort::Get(unsigned int)const  __ptr64
?Get@CSort@@QEBAAEBVCSortKey@@I@Z
; public: class CPropertyRestriction const & __ptr64 __cdecl CRestriction::GetChild(unsigned int)const  __ptr64
?GetChild@CRestriction@@QEBAAEBVCPropertyRestriction@@I@Z
; public: unsigned char __cdecl CDSBaseUpdate::GetCommand(void) __ptr64
?GetCommand@CDSBaseUpdate@@QEAAEXZ
; long __cdecl GetComputerDnsNameInternal(unsigned short * __ptr64,unsigned long * __ptr64)
?GetComputerDnsNameInternal@@YAJPEAGPEAK@Z
; long __cdecl GetComputerNameInternal(unsigned short * __ptr64,unsigned long * __ptr64)
?GetComputerNameInternal@@YAJPEAGPEAK@Z
GetDomainFQDNName
; long __cdecl GetFalconKey(unsigned short const * __ptr64,struct HKEY__ * __ptr64 * __ptr64)
?GetFalconKey@@YAJPEBGPEAPEAUHKEY__@@@Z
GetFalconKeyValue
; unsigned short const * __ptr64 __cdecl GetFalconSectionName(void)
?GetFalconSectionName@@YAPEBGXZ
; unsigned long __cdecl GetFalconServiceName(unsigned short * __ptr64,unsigned long)
?GetFalconServiceName@@YAKPEAGK@Z
; public: struct _GUID * __ptr64 __cdecl CDSBaseUpdate::GetGuidIdentifier(void) __ptr64
?GetGuidIdentifier@CDSBaseUpdate@@QEAAPEAU_GUID@@XZ
; public: struct _GUID const * __ptr64 __cdecl CDSBaseUpdate::GetMasterId(void) __ptr64
?GetMasterId@CDSBaseUpdate@@QEAAPEBU_GUID@@XZ
; public: unsigned long __cdecl CDSBaseUpdate::GetObjectType(void) __ptr64
?GetObjectType@CDSBaseUpdate@@QEAAKXZ
; public: unsigned long __cdecl CSortKey::GetOrder(void)const  __ptr64
?GetOrder@CSortKey@@QEBAKXZ
; public: unsigned short * __ptr64 __cdecl CDSBaseUpdate::GetPathName(void) __ptr64
?GetPathName@CDSBaseUpdate@@QEAAPEAGXZ
; public: class CSeqNum const & __ptr64 __cdecl CDSBaseUpdate::GetPrevSeqNum(void)const  __ptr64
?GetPrevSeqNum@CDSBaseUpdate@@QEBAAEBVCSeqNum@@XZ
; public: unsigned long const & __ptr64 __cdecl CSortKey::GetProperty(void)const  __ptr64
?GetProperty@CSortKey@@QEBAAEBKXZ
; public: unsigned long * __ptr64 __cdecl CDSBaseUpdate::GetProps(void) __ptr64
?GetProps@CDSBaseUpdate@@QEAAPEAKXZ
; public: class CSeqNum const & __ptr64 __cdecl CDSBaseUpdate::GetPurgeSeqNum(void)const  __ptr64
?GetPurgeSeqNum@CDSBaseUpdate@@QEBAAEBVCSeqNum@@XZ
; public: class CSeqNum const & __ptr64 __cdecl CDSBaseUpdate::GetSeqNum(void)const  __ptr64
?GetSeqNum@CDSBaseUpdate@@QEBAAEBVCSeqNum@@XZ
; public: long __cdecl CDSBaseUpdate::GetSerializeSize(unsigned long * __ptr64) __ptr64
?GetSerializeSize@CDSBaseUpdate@@QEAAJPEAK@Z
GetSizes
; long __cdecl GetThisServerIpPort(unsigned short * __ptr64,unsigned long)
?GetThisServerIpPort@@YAJPEAGK@Z
; public: struct tagPROPVARIANT * __ptr64 __cdecl CDSBaseUpdate::GetVars(void) __ptr64
?GetVars@CDSBaseUpdate@@QEAAPEAUtagPROPVARIANT@@XZ
; private: void __cdecl CRestriction::Grow(void) __ptr64
?Grow@CRestriction@@AEAAXXZ
; long __cdecl HashMessageProperties(unsigned __int64,unsigned char const * __ptr64,unsigned long,unsigned long,unsigned char const * __ptr64,unsigned long,unsigned short const * __ptr64,unsigned long,struct QUEUE_FORMAT const * __ptr64,struct QUEUE_FORMAT const * __ptr64)
?HashMessageProperties@@YAJ_KPEBEKK1KPEBGKPEBUQUEUE_FORMAT@@3@Z
; long __cdecl HashProperties(unsigned __int64,unsigned long,unsigned long * __ptr64,struct tagPROPVARIANT * __ptr64)
?HashProperties@@YAJ_KKPEAKPEAUtagPROPVARIANT@@@Z
; public: void __cdecl CCancelRpc::Init(void) __ptr64
?Init@CCancelRpc@@QEAAXXZ
; public: long __cdecl CDSBaseUpdate::Init(unsigned char const * __ptr64,unsigned long * __ptr64,int) __ptr64
?Init@CDSBaseUpdate@@QEAAJPEBEPEAKH@Z
; public: long __cdecl CDSBaseUpdate::Init(struct _GUID const * __ptr64,class CSeqNum const & __ptr64,class CSeqNum const & __ptr64,class CSeqNum const & __ptr64,int,unsigned char,unsigned long,struct _GUID const * __ptr64,unsigned long,unsigned long * __ptr64,struct tagPROPVARIANT * __ptr64) __ptr64
?Init@CDSBaseUpdate@@QEAAJPEBU_GUID@@AEBVCSeqNum@@11HEK0KPEAKPEAUtagPROPVARIANT@@@Z
; public: long __cdecl CDSBaseUpdate::Init(struct _GUID const * __ptr64,class CSeqNum const & __ptr64,class CSeqNum const & __ptr64,class CSeqNum const & __ptr64,int,unsigned char,unsigned long,unsigned short * __ptr64,unsigned long,unsigned long * __ptr64,struct tagPROPVARIANT * __ptr64) __ptr64
?Init@CDSBaseUpdate@@QEAAJPEBU_GUID@@AEBVCSeqNum@@11HEKPEAGKPEAKPEAUtagPROPVARIANT@@@Z
; private: long __cdecl CDSBaseUpdate::InitProperty(unsigned char const * __ptr64,unsigned long * __ptr64,unsigned long,struct tagPROPVARIANT & __ptr64) __ptr64
?InitProperty@CDSBaseUpdate@@AEAAJPEBEPEAKKAEAUtagPROPVARIANT@@@Z
; bool __cdecl IsLocalSystemCluster(void)
?IsLocalSystemCluster@@YA_NXZ
; public: void __cdecl COutputReport::KeepErrorHistory(unsigned short const * __ptr64,unsigned short,long) __ptr64
?KeepErrorHistory@COutputReport@@QEAAXPEBGGJ@Z
MQSealBuffer
MQSec_AccessCheck
MQSec_AccessCheckForSelf
MQSec_AcquireCryptoProvider
MQSec_CanGenerateAudit
MQSec_ConvertSDToNT4Format
MQSec_ConvertSDToNT5Format
MQSec_CopySecurityDescriptor
MQSec_GetAdminSid
MQSec_GetAnonymousSid
MQSec_GetCryptoProvProperty
MQSec_GetDefaultSecDescriptor
MQSec_GetImpersonationObject
MQSec_GetLocalMachineSid
MQSec_GetLocalSystemSid
MQSec_GetNetworkServiceSid
MQSec_GetProcessSid
MQSec_GetProcessUserSid
MQSec_GetPubKeysFromDS
MQSec_GetThreadUserSid
MQSec_GetUserType
MQSec_GetWorldSid
MQSec_IsAnonymusSid
MQSec_IsDC
MQSec_IsGuestSid
MQSec_IsNetworkServiceSid
MQSec_IsSystemSid
MQSec_IsUnAuthenticatedUser
MQSec_MakeAbsoluteSD
MQSec_MakeSelfRelative
MQSec_MergeSecurityDescriptors
MQSec_PackPublicKey
MQSec_RpcAuthnLevel
MQSec_SetLocalRpcMutualAuth
MQSec_SetPrivilegeInThread
MQSec_SetSecurityDescriptorDacl
MQSec_StorePubKeys
MQSec_StorePubKeysInDS
MQSec_TraceThreadTokenInfo
MQSec_UnpackPublicKey
MQSec_UpdateLocalMachineSid
; long __cdecl MQSetCaConfig(unsigned long,class MQ_CA_CONFIG * __ptr64)
?MQSetCaConfig@@YAJKPEAVMQ_CA_CONFIG@@@Z
MQSigHashMessageProperties
MQUInitGlobalScurityVars
MQsspi_InitServerAuthntication
; private: void __cdecl CCancelRpc::ProcessEvents(void) __ptr64
?ProcessEvents@CCancelRpc@@AEAAXXZ
; void __cdecl ProduceRPCErrorTracing(unsigned short * __ptr64,unsigned long)
?ProduceRPCErrorTracing@@YAXPEAGK@Z
; public: unsigned long __cdecl CPropertyRestriction::Relation(void) __ptr64
?Relation@CPropertyRestriction@@QEAAKXZ
; public: void __cdecl CCancelRpc::Remove(void * __ptr64) __ptr64
?Remove@CCancelRpc@@QEAAXPEAX@Z
; public: void __cdecl CColumns::Remove(unsigned int) __ptr64
?Remove@CColumns@@QEAAXI@Z
; public: void __cdecl CSort::Remove(unsigned int) __ptr64
?Remove@CSort@@QEAAXI@Z
; class COutputReport  Report
?Report@@3VCOutputReport@@A DATA
; public: unsigned long __cdecl CCancelRpc::RpcCancelTimeout(void) __ptr64
?RpcCancelTimeout@CCancelRpc@@QEAAKXZ
; public: long __cdecl CDSBaseUpdate::Serialize(unsigned char * __ptr64,unsigned long * __ptr64,int) __ptr64
?Serialize@CDSBaseUpdate@@QEAAJPEAEPEAKH@Z
; private: long __cdecl CDSBaseUpdate::SerializeProperty(struct tagPROPVARIANT & __ptr64,unsigned char * __ptr64,unsigned long * __ptr64) __ptr64
?SerializeProperty@CDSBaseUpdate@@AEAAJAEAUtagPROPVARIANT@@PEAEPEAK@Z
ServerAcceptSecCtx
; public: void __cdecl CRestriction::SetChild(class CPropertyRestriction const & __ptr64,unsigned int) __ptr64
?SetChild@CRestriction@@QEAAXAEBVCPropertyRestriction@@I@Z
SetFalconKeyValue
SetFalconServiceName
; public: void __cdecl CSortKey::SetOrder(unsigned long const & __ptr64) __ptr64
?SetOrder@CSortKey@@QEAAXAEBK@Z
; public: void __cdecl CDSBaseUpdate::SetPrevSeqNum(class CSeqNum & __ptr64) __ptr64
?SetPrevSeqNum@CDSBaseUpdate@@QEAAXAEAVCSeqNum@@@Z
; public: void __cdecl CPropertyRestriction::SetProperty(unsigned long const & __ptr64) __ptr64
?SetProperty@CPropertyRestriction@@QEAAXAEBK@Z
; public: void __cdecl CSortKey::SetProperty(unsigned long const & __ptr64) __ptr64
?SetProperty@CSortKey@@QEAAXAEBK@Z
; public: void __cdecl CPropertyRestriction::SetRelation(unsigned long) __ptr64
?SetRelation@CPropertyRestriction@@QEAAXK@Z
; public: void __cdecl CPropertyRestriction::SetValue(struct tagBLOB & __ptr64) __ptr64
?SetValue@CPropertyRestriction@@QEAAXAEAUtagBLOB@@@Z
; public: void __cdecl CPropertyRestriction::SetValue(class CMQVariant const & __ptr64) __ptr64
?SetValue@CPropertyRestriction@@QEAAXAEBVCMQVariant@@@Z
; public: void __cdecl CPropertyRestriction::SetValue(unsigned char) __ptr64
?SetValue@CPropertyRestriction@@QEAAXE@Z
; public: void __cdecl CPropertyRestriction::SetValue(short) __ptr64
?SetValue@CPropertyRestriction@@QEAAXF@Z
; public: void __cdecl CPropertyRestriction::SetValue(long) __ptr64
?SetValue@CPropertyRestriction@@QEAAXJ@Z
; public: void __cdecl CPropertyRestriction::SetValue(unsigned long) __ptr64
?SetValue@CPropertyRestriction@@QEAAXK@Z
; public: void __cdecl CPropertyRestriction::SetValue(unsigned short * __ptr64) __ptr64
?SetValue@CPropertyRestriction@@QEAAXPEAG@Z
; public: void __cdecl CPropertyRestriction::SetValue(struct _GUID * __ptr64) __ptr64
?SetValue@CPropertyRestriction@@QEAAXPEAU_GUID@@@Z
; public: void __cdecl CPropertyRestriction::SetValue(struct tagCACLSID * __ptr64) __ptr64
?SetValue@CPropertyRestriction@@QEAAXPEAUtagCACLSID@@@Z
; public: void __cdecl CPropertyRestriction::SetValue(struct tagCALPWSTR * __ptr64) __ptr64
?SetValue@CPropertyRestriction@@QEAAXPEAUtagCALPWSTR@@@Z
; public: void __cdecl CCancelRpc::ShutDownCancelThread(void) __ptr64
?ShutDownCancelThread@CCancelRpc@@QEAAXXZ
ShutDownDebugWindow
; unsigned __int64 __cdecl UnalignedWcslen(unsigned short const * __ptr64 __ptr64)
?UnalignedWcslen@@YA_KPEFBG@Z
; public: class CMQVariant const & __ptr64 __cdecl CPropertyRestriction::Value(void) __ptr64
?Value@CPropertyRestriction@@QEAAAEBVCMQVariant@@XZ
; long __cdecl XactGetDTC(struct IUnknown * __ptr64 * __ptr64)
?XactGetDTC@@YAJPEAPEAUIUnknown@@@Z
; long __cdecl XactGetWhereabouts(unsigned long * __ptr64,unsigned char * __ptr64)
?XactGetWhereabouts@@YAJPEAKPEAE@Z
; class CCancelRpc  g_CancelRpc
?g_CancelRpc@@3VCCancelRpc@@A DATA
; class CHCryptProv  g_hProvVer
?g_hProvVer@@3VCHCryptProv@@A DATA
; public: unsigned char __cdecl CDSBaseUpdate::getNumOfProps(void) __ptr64
?getNumOfProps@CDSBaseUpdate@@QEAAEXZ
; long __cdecl mqrpcBindQMService(unsigned short * __ptr64,unsigned short * __ptr64,unsigned long * __ptr64,void * __ptr64 * __ptr64,enum PORTTYPE,unsigned long (__cdecl*)(void * __ptr64,unsigned long),unsigned long)
?mqrpcBindQMService@@YAJPEAG0PEAKPEAPEAXW4PORTTYPE@@P6AKPEAXK@ZK@Z
; unsigned long __cdecl mqrpcGetLocalCallPID(void * __ptr64)
?mqrpcGetLocalCallPID@@YAKPEAX@Z
; int __cdecl mqrpcIsLocalCall(void * __ptr64)
?mqrpcIsLocalCall@@YAHPEAX@Z
; int __cdecl mqrpcIsTcpipTransport(void * __ptr64)
?mqrpcIsTcpipTransport@@YAHPEAX@Z
; long __cdecl mqrpcUnbindQMService(void * __ptr64 * __ptr64,unsigned short * __ptr64 * __ptr64)
?mqrpcUnbindQMService@@YAJPEAPEAXPEAPEAG@Z
MQSigCloneCertFromReg
MQSigCloneCertFromSysStore
MQSigCreateCertificate
MQSigOpenUserCertStore
MSMQGetOperatingSystem
