⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hxresmgr.cpp

📁 著名的 helix realplayer 基于手机 symbian 系统的 播放器全套源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:


    // 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 + -