📄 hxresmgr.cpp
字号:
// server alerts
{HXR_SE_NO_ERROR, IDS_SE_NO_ERROR},
{HXR_SE_INVALID_VERSION, IDS_SE_INVALID_VERSION},
{HXR_SE_INVALID_FORMAT, IDS_SE_INVALID_FORMAT},
{HXR_SE_INVALID_BANDWIDTH, IDS_SE_INVALID_BANDWIDTH},
{HXR_SE_INVALID_PATH, IDS_SE_INVALID_PATH},
{HXR_SE_UNKNOWN_PATH, IDS_SE_UNKNOWN_PATH},
{HXR_SE_INVALID_PROTOCOL, IDS_SE_INVALID_PROTOCOL},
{HXR_SE_INVALID_PLAYER_ADDR, IDS_SE_INVALID_PLAYER_ADDR},
{HXR_SE_LOCAL_STREAMS_PROHIBITED, IDS_SE_LOCAL_STREAMS_PROHIBITED},
{HXR_SE_SERVER_FULL, IDS_SE_SERVER_FULL},
{HXR_SE_REMOTE_STREAMS_PROHIBITED, IDS_SE_REMOTE_STREAMS_PROHIBITED},
{HXR_SE_EVENT_STREAMS_PROHIBITED, IDS_SE_EVENT_STREAMS_PROHIBITED},
{HXR_SE_INVALID_HOST, IDS_SE_INVALID_HOST},
{HXR_SE_NO_CODEC, IDS_SE_NO_CODEC},
{HXR_SE_LIVEFILE_INVALID_BWN, IDS_SE_LIVEFILE_INVALID_BWN},
{HXR_SE_UNABLE_TO_FULFILL, IDS_SE_UNABLE_TO_FULFILL},
{HXR_SE_MULTICAST_DELIVERY_ONLY, IDS_SE_MULTICAST_DELIVERY_ONLY},
{HXR_SE_LICENSE_EXCEEDED, IDS_SE_LICENSE_EXCEEDED},
{HXR_SE_LICENSE_UNAVAILABLE, IDS_SE_LICENSE_UNAVAILABLE},
{HXR_SE_INVALID_LOSS_CORRECTION, IDS_SE_INVALID_LOSS_CORRECTION},
{HXR_SE_PROTOCOL_FAILURE, IDS_SE_PROTOCOL_FAILURE},
{HXR_SE_REALVIDEO_STREAMS_PROHIBITED, IDS_SE_REALVIDEO_STREAMS_PROHIBITED},
{HXR_SE_REALAUDIO_STREAMS_PROHIBITED, IDS_SE_REALAUDIO_STREAMS_PROHIBITED},
{HXR_SE_DATATYPE_UNSUPPORTED, IDS_SE_DATATYPE_UNSUPPORTED},
{HXR_SE_DATATYPE_UNLICENSED, IDS_SE_DATATYPE_UNLICENSED},
{HXR_SE_RESTRICTED_PLAYER, IDS_SE_RESTRICTED_PLAYER},
{HXR_SE_STREAM_INITIALIZING, IDS_SE_STREAM_INITIALIZING},
{HXR_SE_INVALID_PLAYER, IDS_SE_INVALID_PLAYER},
{HXR_SE_PLAYER_PLUS_ONLY, IDS_SE_PLAYER_PLUS_ONLY},
{HXR_SE_NO_EMBEDDED_PLAYERS, IDS_SE_NO_EMBEDDED_PLAYERS},
{HXR_SE_PNA_PROHIBITED, IDS_SE_PNA_PROHIBITED},
{HXR_SE_AUTHENTICATION_UNSUPPORTED, IDS_SE_AUTHENTICATION_UNSUPPORTED},
{HXR_SE_MAX_FAILED_AUTHENTICATIONS, IDS_SE_MAX_FAILED_AUTHENTICATIONS},
{HXR_SE_AUTH_ACCESS_DENIED, IDS_SE_AUTH_ACCESS_DENIED},
{HXR_SE_AUTH_UUID_READ_ONLY, IDS_SE_AUTH_UUID_READ_ONLY},
{HXR_SE_AUTH_UUID_NOT_UNIQUE, IDS_SE_AUTH_UUID_NOT_UNIQUE},
{HXR_SE_AUTH_NO_SUCH_USER, IDS_SE_AUTH_NO_SUCH_USER},
{HXR_SE_AUTH_REGISTRATION_SUCCEEDED, IDS_SE_AUTH_REGISTRATION_SUCCEEDED},
{HXR_SE_AUTH_REGISTRATION_FAILED, IDS_SE_AUTH_REGISTRATION_FAILED},
{HXR_SE_AUTH_REGISTRATION_GUID_REQUIRED, IDS_SE_AUTH_REGISTRATION_GUID_REQUIRED},
{HXR_SE_AUTH_UNREGISTERED_PLAYER, IDS_SE_AUTH_UNREGISTERED_PLAYER},
{HXR_SE_AUTH_TIME_EXPIRED, IDS_SE_AUTH_TIME_EXPIRED},
{HXR_SE_AUTH_NO_TIME_LEFT, IDS_SE_AUTH_NO_TIME_LEFT},
{HXR_SE_AUTH_ACCOUNT_LOCKED, IDS_SE_AUTH_ACCOUNT_LOCKED},
{HXR_SE_AUTH_INVALID_SERVER_CFG, IDS_SE_AUTH_INVALID_SERVER_CFG},
{HXR_SE_NO_MOBILE_DOWNLOAD, IDS_SE_NO_MOBILE_DOWNLOAD},
{HXR_SE_NO_MORE_MULTI_ADDR, IDS_SE_NO_MORE_MULTI_ADDR},
{HXR_PE_PROXY_MAX_CONNECTIONS, IDS_PE_PROXY_MAX_CONNECTIONS},
{HXR_PE_PROXY_MAX_GW_BANDWIDTH, IDS_PE_PROXY_MAX_GW_BANDWIDTH},
{HXR_PE_PROXY_MAX_BANDWIDTH, IDS_PE_PROXY_MAX_BANDWIDTH},
{HXR_SE_BAD_LOADTEST_PASSWORD, IDS_SE_BAD_LOADTEST_PASSWORD},
{HXR_SE_PNA_NOT_SUPPORTED, IDS_SE_PNA_NOT_SUPPORTED},
{HXR_PE_PROXY_ORIGIN_DISCONNECTED, IDS_PE_PROXY_ORIGIN_DISCONNECTED},
{HXR_SE_INTERNAL_ERROR, IDS_SE_INTERNAL_ERROR}
};
/*
* Class Constructor/Destructor
*/
CHXResMgr::CHXResMgr(IUnknown* pContext)
: m_pContext(NULL)
, m_pExternalResMgr(NULL)
, m_pExternalResRdr(NULL)
{
m_pContext = pContext;
if (m_pContext)
{
m_pContext->AddRef();
if (HXR_OK != m_pContext->QueryInterface(IID_IHXExternalResourceManager,
(void**)&m_pExternalResMgr))
{
m_pExternalResMgr = NULL;
goto cleanup;
}
if(HXR_OK != m_pExternalResMgr->CreateExternalResourceReader(
CORE_RESOURCE_SHORT_NAME, m_pExternalResRdr))
{
m_pExternalResRdr = NULL;
goto cleanup;
}
#ifdef _WINDOWS
#ifndef _WINCE
GetModuleFileName((HMODULE)g_hInstance, m_szDLLPath, sizeof(m_szDLLPath));
#else
GetModuleFileName((HMODULE)g_hInstance, OS_STRING2(m_szDLLPath, sizeof(m_szDLLPath)), sizeof(m_szDLLPath));
#endif
m_pExternalResRdr->SetDefaultResourceFile(m_szDLLPath);
#endif /* _WINDOWS */
}
cleanup:
return;
}
CHXResMgr::~CHXResMgr()
{
HX_RELEASE(m_pExternalResRdr);
HX_RELEASE(m_pExternalResMgr);
HX_RELEASE(m_pContext);
}
/*
* General Class Methods
*/
// A member function for returning an error string that corresponds to an
// error Id.
CHXBuffer* CHXResMgr::GetErrorString( HX_RESULT ErrId )
{
CHXBuffer* pBuffer = NULL;
const char* str = NULL;
BOOL bFound = FALSE;
UINT32 ulErrorStringID = ErrorStringTable[0].m_ulErrorStringID;
for (int i = 0;
i < sizeof(ErrorStringTable) / sizeof(ErrorStringTable[0]);
++i)
{
if(ErrorStringTable[i].m_ulErrorTag == ErrId)
{
ulErrorStringID = ErrorStringTable[i].m_ulErrorStringID;
bFound = TRUE;
break;
}
}
if (m_pExternalResRdr && bFound)
{
IHXXResource* pRes = m_pExternalResRdr->GetResource(HX_RT_STRING,
ulErrorStringID);
if(pRes)
{
str = (const char*)pRes->ResourceData();
if (str)
{
pBuffer = new CHXBuffer;
pBuffer->AddRef();
pBuffer->Set((UCHAR*)str, strlen(str) + 1);
}
}
HX_RELEASE(pRes);
}
return pBuffer;
}
CHXBuffer* CHXResMgr::GetMiscString(UINT32 ResourceId)
{
CHXBuffer* pBuffer = NULL;
const char* str = NULL;
IHXXResource* pRes = m_pExternalResRdr->GetResource(HX_RT_STRING,
ResourceId);
if(pRes)
{
str = (const char*)pRes->ResourceData();
if (str)
{
pBuffer = new CHXBuffer;
pBuffer->AddRef();
pBuffer->Set((UCHAR*)str, strlen(str) + 1);
}
}
HX_RELEASE(pRes);
return pBuffer;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -