[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-client-cvs
Subject:    [Client-cvs] downloadmgr Umakefil, NONE, 1.1 chxdownload.cpp, NONE,
From:       ping () helixcommunity ! org
Date:       2007-07-12 22:43:12
Message-ID: 200707122244.l6CMi5Fo013679 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/client/downloadmgr
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv16601/downloadmgr

Added Files:
	Umakefil chxdownload.cpp downloadlib downloadpln 
	downloadpln.cpp downloadpln.ver downloadpln_win32.pcf 
Log Message:
- Added new component AutoUpgrade Manager and Download Manager
- Fixed build when HELIX_FEATURE_HTTP_SERVICE is defined



--- NEW FILE: downloadpln ---
# -*- python -*-
# 
# ***** BEGIN LICENSE BLOCK *****
# Source last modified: $Id: downloadpln,v 1.1 2007/07/12 22:43:10 ping Exp $
# 
# Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
# 
# The contents of this file, and the files included with this file,
# are subject to the current version of the RealNetworks Public
# Source License (the "RPSL") available at
# http://www.helixcommunity.org/content/rpsl unless you have licensed
# the file under the current version of the RealNetworks Community
# Source License (the "RCSL") available at
# http://www.helixcommunity.org/content/rcsl, in which case the RCSL
# will apply. You may also obtain the license terms directly from
# RealNetworks.  You may not use this file except in compliance with
# the RPSL or, if you have a valid RCSL with RealNetworks applicable
# to this file, the RCSL.  Please see the applicable RPSL or RCSL for
# the rights, obligations and limitations governing use of the
# contents of the file.
# 
# Alternatively, the contents of this file may be used under the
# terms of the GNU General Public License Version 2 or later (the
# "GPL") in which case the provisions of the GPL are applicable
# instead of those above. If you wish to allow use of your version of
# this file only under the terms of the GPL, and not to allow others
# to use your version of this file under the terms of either the RPSL
# or RCSL, indicate your decision by deleting the provisions above
# and replace them with the notice and other provisions required by
# the GPL. If you do not delete the provisions above, a recipient may
# use your version of this file under the terms of any one of the
# RPSL, the RCSL or the GPL.
# 
# This file is part of the Helix DNA Technology. RealNetworks is the
# developer of the Original Code and owns the copyrights in the
# portions it created.
# 
# This file, and the files included with this file, is distributed
# and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
# KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
# ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
# ENJOYMENT OR NON-INFRINGEMENT.
# 
# Technology Compatibility Kit Test Suite(s) Location:
#    http://www.helixcommunity.org/content/tck
# 
# Contributor(s):
# 
# ***** END LICENSE BLOCK *****
# 

UmakefileVersion(2,2)

project.AddModuleIncludes("common/include",
                    	  "common/container/pub",
                    	  "common/util/pub",
                    	  "common/system/pub",
                    	  "common/dbgtool/pub",
			  "common/runtime/pub",
			  "common/netio/pub",
			  "common/log/logutil/pub",
                          "client/common/netio/pub",
			  "protocol/common/util/pub",
			  "protocol/http/pub",
	  		  "common/netio/pub/platform/posix",
	  		  "client/common/netio/pub/platform/posix")

project.AddIncludes("../include",
                    "../common/container/pub",
                    "../common/util/pub",
                    "../common/netio/pub",
                    "../common/system/pub",
                    "../netwksvc/pub")

project.AddModuleLibraries("common/dbgtool[debuglib]",
                           "common/util[utillib]",
                           "common/container[contlib]",
                           "common/system[syslib]",
                           "common/runtime[runtlib]",
                           "common/fileio[fileiolib]",
			   "common/netio[netiolib]",                           
                           "common/log/logutil[logutillib]",			   
                           "client/common/system[sysclntlib]",
                           "client/common/container[contclntlib]",
                           "client/common/util[utlclntlib]",
                           "client/common/netio[netioclntlib]",
			   "client/netwksvc[netsvclib]",
			   "protocol/common/util[protutillib]",
                           "protocol/http[httplib]")

project.AddSources("downloadpln.cpp")

project.ExportFunction("RMACreateInstance",
                       "IUnknown** ppObj",
                       "common/include",
                       "hxcom.h")
project.ExportFunction("SetDLLAccessPath", "const char* pszPath")
project.ExportFunction("CanUnload2", "void")

DLLTarget('downloadpln')
DependTarget()

--- NEW FILE: downloadpln.cpp ---
/* ***** BEGIN LICENSE BLOCK *****
 * 
 * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
 * 
 * The contents of this file, and the files included with this file,
 * are subject to the current version of the RealNetworks Public
 * Source License (the "RPSL") available at
 * http://www.helixcommunity.org/content/rpsl unless you have licensed
 * the file under the current version of the RealNetworks Community
 * Source License (the "RCSL") available at
 * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
 * will apply. You may also obtain the license terms directly from
 * RealNetworks.  You may not use this file except in compliance with
 * the RPSL or, if you have a valid RCSL with RealNetworks applicable
 * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
 * the rights, obligations and limitations governing use of the
 * contents of the file.
 * 
 * Alternatively, the contents of this file may be used under the
 * terms of the GNU General Public License Version 2 or later (the
 * "GPL") in which case the provisions of the GPL are applicable
 * instead of those above. If you wish to allow use of your version of
 * this file only under the terms of the GPL, and not to allow others
 * to use your version of this file under the terms of either the RPSL
 * or RCSL, indicate your decision by deleting the provisions above
 * and replace them with the notice and other provisions required by
 * the GPL. If you do not delete the provisions above, a recipient may
 * use your version of this file under the terms of any one of the
 * RPSL, the RCSL or the GPL.
 * 
 * This file is part of the Helix DNA Technology. RealNetworks is the
 * developer of the Original Code and owns the copyrights in the
 * portions it created.
 * 
 * This file, and the files included with this file, is distributed
 * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
 * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
 * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
 * ENJOYMENT OR NON-INFRINGEMENT.
 * 
 * Technology Compatibility Kit Test Suite(s) Location:
 *    http://www.helixcommunity.org/content/tck
 * 
 * Contributor(s):
 * 
 * ***** END LICENSE BLOCK ***** */

#include "hxcom.h"
#include "hxtypes.h"
#include "dllpath.h"
#include "ihxpckts.h"
#include "pckunpck.h"
#include "hxver.h"

// Class factory objects
#include "chxdownload.h"
#include "downloadpln.h"
#include "downloadpln.ver"

#ifdef _DEBUG
#undef HX_THIS_FILE		
static const char HX_THIS_FILE[] = __FILE__;
#endif

const char* const CHXDownloadPlugin::zm_pDescription = "Helix Download Plugin";
const char* const CHXDownloadPlugin::zm_pCopyright   = HXVER_COPYRIGHT;
const char* const CHXDownloadPlugin::zm_pMoreInfoURL = "http://www.real.com";

ENABLE_DLLACCESS_PATHS(downloadpln);

/****************************************************************************
 * 
 *  Function:
 * 
 *	HXCreateInstance()
 * 
 *  Purpose:
 * 
 *	Function implemented by all plugin DLL's to create an instance of 
 *	any of the objects supported by the DLL. This method is similar to 
 *	Window's CoCreateInstance() in its purpose, except that it only 
 *	creates objects from this plugin DLL.
 *
 *	NOTE: Aggregation is never used. Therefore and outer unknown is
 *	not passed to this function, and you do not need to code for this
 *	situation.
 * 
 */

STDAPI ENTRYPOINTCALLTYPE ENTRYPOINT(HXCREATEINSTANCE)
(
    IUnknown**  /*OUT*/	ppIUnknown
)
{
    *ppIUnknown = (IUnknown*)(IHXPlugin*)new CHXDownloadPlugin();
    if (*ppIUnknown)
    {
	(*ppIUnknown)->AddRef();
	return HXR_OK;
    }
    return HXR_OUTOFMEMORY;
}

STDAPI ENTRYPOINTCALLTYPE ENTRYPOINT(CanUnload2)(void)
{
    return (CHXBaseCountingObject::ObjectsActive() ? HXR_FAIL : HXR_OK);
}

CHXDownloadPlugin::CHXDownloadPlugin()
		  : m_lRefCount(0)
		  , m_pContext(NULL)
		  , m_pCCF(NULL)
{
}

CHXDownloadPlugin::~CHXDownloadPlugin()
{
    HX_RELEASE(m_pCCF);
    HX_RELEASE(m_pContext);
}

STDMETHODIMP
CHXDownloadPlugin::QueryInterface(REFIID riid, void** ppvObj)
{
    if(IsEqualIID(riid, IID_IUnknown))
    {
	AddRef();
	*ppvObj = (IUnknown*)(IHXPlugin*)this;
	return HXR_OK;
    }
    else if(IsEqualIID(riid, IID_IHXPlugin))
    {
	AddRef();
	*ppvObj = (IHXPlugin*)this;
	return HXR_OK;
    }
    else if(IsEqualIID(riid, IID_IHXComponentPlugin))
    {
	AddRef();
	*ppvObj = (IHXComponentPlugin*)this;
	return HXR_OK;
    }

    *ppvObj = NULL;
    return HXR_NOINTERFACE;
}

STDMETHODIMP_(ULONG32)
CHXDownloadPlugin::AddRef()
{
    return InterlockedIncrement(&m_lRefCount);
}

STDMETHODIMP_(ULONG32)
CHXDownloadPlugin::Release()
{ 
    if (InterlockedDecrement(&m_lRefCount) > 0)
    {
        return m_lRefCount;
    }

    delete this;
    return 0;
}
    
STDMETHODIMP
CHXDownloadPlugin::InitPlugin(IUnknown* pContext)
{
    if (!pContext)
    {
	return HXR_INVALID_PARAMETER;
    }

    m_pContext = pContext;
    HX_ADDREF(m_pContext);

    return m_pContext->QueryInterface(IID_IHXCommonClassFactory, (void**) &m_pCCF);
}

STDMETHODIMP
CHXDownloadPlugin::GetPluginInfo(REF(HXBOOL)     bMultipleLoad,
			            REF(const char*) pDescription,
			            REF(const char*) pCopyright,
				    REF(const char*) pMoreInfoURL,
				    REF(ULONG32)     ulVersionNumber)
{
    bMultipleLoad = TRUE;

    pDescription = zm_pDescription;
    pCopyright   = zm_pCopyright;
    pMoreInfoURL = zm_pMoreInfoURL;
    ulVersionNumber = TARVER_ULONG32_VERSION;

    return HXR_OK;
}

STDMETHODIMP_(UINT32)
CHXDownloadPlugin::GetNumComponents(void)
{
    // CLSID_IHXDownloadManager
    return 1;
}

STDMETHODIMP_(char const*)
CHXDownloadPlugin::GetPackageName(void) CONSTMETHOD
{
    return zm_pDescription;
}

STDMETHODIMP
CHXDownloadPlugin::GetComponentInfoAtIndex(UINT32	      /*IN*/  nIndex,
					   REF(IHXValues*)    /*OUT*/ pInfo)
{
    HX_RESULT	rc = HXR_OK;
    IUnknown*	pUnknown = NULL;
    BYTE*       pTmp = NULL;
    GUID        guidTmp = CLSID_IHXDownloadManager;

    pInfo = NULL;

    if (nIndex != 0 || !m_pCCF)
    {
	return HXR_FAILED;
    }

    rc = m_pCCF->CreateInstance(CLSID_IHXValues, (void**) &pUnknown);
    if (HXR_OK != rc)
    {
	goto exit;
    }

    rc = pUnknown->QueryInterface(IID_IHXValues, (void**)&pInfo);
    if (HXR_OK != rc)
    {
	goto exit;
    }

    pTmp = (BYTE *)&guidTmp;
    rc = SetBufferPropertyCCF(pInfo,PLUGIN_COMPONENT_CLSID,
			     pTmp, sizeof(guidTmp), m_pCCF);

exit:
    HX_RELEASE(pUnknown);

    return rc;
}

STDMETHODIMP
CHXDownloadPlugin::CreateComponentInstance(REFCLSID	    /*IN*/  rclsid,
					   REF(IUnknown*)   /*OUT*/ ppUnknown,
					   IUnknown*	    /*IN*/  pUnkOuter)
{
    ppUnknown = NULL;

    if (IsEqualCLSID(rclsid, CLSID_IHXDownloadManager))
    {
	CHXDownloadManager* pDLManager = new CHXDownloadManager();

	if (!pDLManager)
	{
	    return HXR_OUTOFMEMORY;
	}

	return pDLManager->QueryInterface(IID_IUnknown, (void**)&ppUnknown);
    }
    else
    {
	return HXR_NOTIMPL;
    }
}

--- NEW FILE: chxdownload.cpp ---
/* ***** BEGIN LICENSE BLOCK *****
 *
 * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
 *
 * The contents of this file, and the files included with this file,
 * are subject to the current version of the RealNetworks Public
 * Source License (the "RPSL") available at
 * http://www.helixcommunity.org/content/rpsl unless you have licensed
 * the file under the current version of the RealNetworks Community
 * Source License (the "RCSL") available at
 * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
 * will apply. You may also obtain the license terms directly from
 * RealNetworks.  You may not use this file except in compliance with
 * the RPSL or, if you have a valid RCSL with RealNetworks applicable
 * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
 * the rights, obligations and limitations governing use of the
 * contents of the file.
 *
 * Alternatively, the contents of this file may be used under the
 * terms of the GNU General Public License Version 2 or later (the
 * "GPL") in which case the provisions of the GPL are applicable
 * instead of those above. If you wish to allow use of your version of
 * this file only under the terms of the GPL, and not to allow others
 * to use your version of this file under the terms of either the RPSL
 * or RCSL, indicate your decision by deleting the provisions above
 * and replace them with the notice and other provisions required by
 * the GPL. If you do not delete the provisions above, a recipient may
 * use your version of this file under the terms of any one of the
 * RPSL, the RCSL or the GPL.
 *
 * This file is part of the Helix DNA Technology. RealNetworks is the
 * developer of the Original Code and owns the copyrights in the
 * portions it created.
 *
 * This file, and the files included with this file, is distributed
 * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
 * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
 * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
 * ENJOYMENT OR NON-INFRINGEMENT.
 *
 * Technology Compatibility Kit Test Suite(s) Location:
 *    http://www.helixcommunity.org/content/tck
 *
 * Contributor(s):
 *
 * ***** END LICENSE BLOCK ***** */

#include "hxcom.h"

#include <stdlib.h>
#include "hxtypes.h"
#include "timeval.h"
#include "hxstring.h"
#include "hxslist.h"
#include "hxcomm.h"
#include "chxdownload.h"

#ifdef _DEBUG
#undef HX_THIS_FILE
static const char HX_THIS_FILE[] = __FILE__;
#endif

CHXDownload::CHXDownload()
            : m_lRefCount(0)
            , m_pContext(NULL)
            , m_pSinkList(NULL)
            , m_bInitialized(FALSE)
            , m_lastError(HXR_OK)
            , m_fp(NULL)
{
}

CHXDownload::~CHXDownload()
{
}

STDMETHODIMP_(ULONG32) 
CHXDownload::AddRef()
{
    return InterlockedIncrement(&m_lRefCount);
}

STDMETHODIMP_(ULONG32) 
CHXDownload::Release()
{
    if (InterlockedDecrement(&m_lRefCount) > 0)
    {
        return m_lRefCount;
    }

    delete this;
    return 0;
}

STDMETHODIMP 
CHXDownload::QueryInterface(REFIID riid, void** ppvObj)
{
    QInterfaceList qiList[] =
        {
            { GET_IIDHANDLE(IID_IUnknown), (IUnknown*)(IHXDownload*)this },
            { GET_IIDHANDLE(IID_IHXDownload), (IHXDownload*)this },
            { GET_IIDHANDLE(IID_IHXHttpResponse), (IHXHttpResponse*)this },
            { GET_IIDHANDLE(IID_IHXHttpResponse2), (IHXHttpResponse2*)this },
        };

    HX_RESULT res = ::QIFind(qiList, QILISTSIZE(qiList), riid, ppvObj);    

    return res;
}

HX_RESULT
CHXDownload::Init(IUnknown* pContext)
{
    HX_RESULT   res = HXR_FAIL;
    IUnknown*   pUnk = NULL;
    SPIHXHttpInitialize spHttpInitialize;

    if (m_pContext)
    {
        goto exit;
    }

    m_pContext = pContext;
    HX_ADDREF(m_pContext);

    m_spCCF = m_pContext;    
    if (!m_spCCF)
    {
        goto exit;
    }

    res = m_spCCF->CreateInstance(CLSID_IHXHttp, (void**)&pUnk);
    if (FAILED(res))
    {
        goto exit;
    }

    spHttpInitialize = pUnk;
    if (!spHttpInitialize)
    {
        goto exit;
    }

    res = spHttpInitialize->Init(pContext);
    if (FAILED(res))
    {
        goto exit;
    }

    m_spHTTP = pUnk;
    m_spHTTP2 = pUnk;

    if (!m_spHTTP || !m_spHTTP2)
    {
        goto exit;
    }

    if (FALSE == m_spHTTP->Initialize((IUnknown*)(IHXHttpResponse2*)this))
    {
        goto exit;
    }

    res = HXR_OK;

exit:

    if (SUCCEEDED(res))
    {
        m_bInitialized = TRUE;
    }

    return res;
}

STDMETHODIMP
CHXDownload::DownloadToMem(const char* pszURL,
                           REF(IHXBuffer*) pBuffer)
{
    return HXR_NOTIMPL;
}

STDMETHODIMP
CHXDownload::DownloadToFile(const char* pszURL,
                            const char* pszPath)
{
    HX_RESULT   res = HXR_FAIL;

    if (pszURL && pszPath)
    {
        m_szURL = pszURL;
        m_szDestination = pszPath;
        res = HXR_OK;
    }

    return res;
}

STDMETHODIMP
CHXDownload::AddAdviseSink(IHXDownloadAdviseSink* pSink)
{
    return HXR_NOTIMPL;
}

STDMETHODIMP
CHXDownload::RemoveAdviseSink(IHXDownloadAdviseSink* pSink)
{
    return HXR_NOTIMPL;
}

STDMETHODIMP
CHXDownload::Resume()
{
    return StartDownload();
}

STDMETHODIMP
CHXDownload::Pause()
{
    return HXR_NOTIMPL;
}

STDMETHODIMP
CHXDownload::Cancel()
{
    return HXR_NOTIMPL;
}

STDMETHODIMP
CHXDownload::GetURL(REF(const char*) pszURL)
{
    return HXR_NOTIMPL;
}

STDMETHODIMP
CHXDownload::GetProgress(REF(UINT32) ulCurrentSize, REF(UINT32) ulTotalSize)
{
    return HXR_NOTIMPL;
}

STDMETHODIMP
CHXDownload::GetStatus(REF(DOWNLOAD_STATUS) status)
{
    return HXR_NOTIMPL;
}

STDMETHODIMP
CHXDownload::GetError(REF(HX_RESULT) error)
{
    return HXR_NOTIMPL;
}

//  IHXHttpResponse methods
STDMETHODIMP
CHXDownload::OnHeaders(IHXValues* pHeaders)
{
    return HXR_OK;
}

STDMETHODIMP
CHXDownload::OnDataReceived(IHXBuffer* pBuffer)
{
    HX_RESULT   res = HXR_OK;
    UINT32      ulWritten = 0;
    UINT32      ulSize = 0;

    if (pBuffer && m_fp)
    {
        ulSize = pBuffer->GetSize();
        ulWritten = fwrite(pBuffer->GetBuffer(), 1, ulSize, m_fp);
        if (ulWritten == ulSize)
        {
            res = HXR_OK;
        }
    }

    return res;
}

STDMETHODIMP
CHXDownload::OnGetDone(BOOL bSuccess)
{
    if (m_fp)
    {
        fclose(m_fp);
    }

    return HXR_OK;
}
    
//  IHXHttpResponse2 methods
STDMETHODIMP
CHXDownload::GetPostData(REF(IHXBuffer*) pBuffer)
{
    return HXR_OK;
}

STDMETHODIMP
CHXDownload::InitPost()
{
    return HXR_OK;
}

STDMETHODIMP
CHXDownload::SetDataType(UINT16 nDataType)
{
    // If the server says DATA_COMPLETE, we have to start from the begining
    if (nDataType == DATA_COMPLETE)
    {
        m_fp = fopen((const char*)m_szDestination, "wb");
        if (!m_fp)
        {
            return HXR_FAIL;
        }
    }

    return HXR_OK;
}

STDMETHODIMP
CHXDownload::SetHeaders(IHXValues* pHeaders)
{
    return HXR_NOTIMPL;
}

HX_RESULT 
CHXDownload::StartDownload(void)
{
    HX_RESULT   res = HXR_FAIL;

    m_spHTTP->SetBufferSize(4096);

    if (m_spHTTP->Get(m_szURL))
    {
        res = HXR_OK;
    }

    return res;
}

IMPLEMENT_MANAGED_COMPONENT(CHXDownloadManager)

BEGIN_COMPONENT_INTERFACE_LIST(CHXDownloadManager)
    INTERFACE_LIST_ENTRY_SIMPLE(IHXDownloadManager)
END_INTERFACE_LIST

CHXDownloadManager::CHXDownloadManager()
{
}

CHXDownloadManager::~CHXDownloadManager()
{
}

// IHXAutoUpgradeManager
STDMETHODIMP
CHXDownloadManager::Init(IUnknown* pContext)
{
    m_pContext = pContext;
    HX_ADDREF(m_pContext);

    return HXR_OK;
}

STDMETHODIMP
CHXDownloadManager::CreateDownload(REF(IHXDownload*) pDownload)
{
    HX_RESULT       res = HXR_FAIL;
    CHXDownload*    pDownloadObj = NULL;

    pDownload = NULL;

    pDownloadObj = new CHXDownload();
    if (!pDownloadObj)
    {
        goto exit;
    }

    res = pDownloadObj->Init(m_pContext);
    if (FAILED(res))
    {
        goto exit;
    }

    pDownloadObj->QueryInterface(IID_IHXDownload, (void**)&pDownload);

exit:

    if (pDownload)
    {
        res = HXR_OK;
    }

    return res;
}

STDMETHODIMP
CHXDownloadManager::AddDownload(IHXDownload* pDownload)
{
    HX_ADDREF(pDownload);
    m_DownloadList.AddTail(pDownload);

    if (1 == m_DownloadList.GetCount())
    {
        pDownload->Resume();
    }

    return HXR_OK;
}

STDMETHODIMP
CHXDownloadManager::InsertDownload(UINT32 ulIndex,
                                   IHXDownload* pDownload)
{
    return HXR_NOTIMPL;
}

STDMETHODIMP
CHXDownloadManager::RemoveDownload(IHXDownload* pDownload)
{
    return HXR_NOTIMPL;
}

STDMETHODIMP
CHXDownloadManager::RemoveDownloadAt(UINT32 ulIndex)
{
    return HXR_NOTIMPL;
}

STDMETHODIMP_(UINT32)
CHXDownloadManager::GetCount()
{
    return 0;
}

STDMETHODIMP
CHXDownloadManager::GetDownloadAt(UINT32 ulIndex,
                                  REF(IHXDownload*) pDownload)
{
    return HXR_NOTIMPL;
}

--- NEW FILE: downloadpln_win32.pcf ---
# 
# ***** BEGIN LICENSE BLOCK *****
# Source last modified: $Id: downloadpln_win32.pcf,v 1.1 2007/07/12 22:43:10 ping Exp $
# 
# Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
# 
# The contents of this file, and the files included with this file,
# are subject to the current version of the RealNetworks Public
# Source License (the "RPSL") available at
# http://www.helixcommunity.org/content/rpsl unless you have licensed
# the file under the current version of the RealNetworks Community
# Source License (the "RCSL") available at
# http://www.helixcommunity.org/content/rcsl, in which case the RCSL
# will apply. You may also obtain the license terms directly from
# RealNetworks.  You may not use this file except in compliance with
# the RPSL or, if you have a valid RCSL with RealNetworks applicable
# to this file, the RCSL.  Please see the applicable RPSL or RCSL for
# the rights, obligations and limitations governing use of the
# contents of the file.
# 
# Alternatively, the contents of this file may be used under the
# terms of the GNU General Public License Version 2 or later (the
# "GPL") in which case the provisions of the GPL are applicable
# instead of those above. If you wish to allow use of your version of
# this file only under the terms of the GPL, and not to allow others
# to use your version of this file under the terms of either the RPSL
# or RCSL, indicate your decision by deleting the provisions above
# and replace them with the notice and other provisions required by
# the GPL. If you do not delete the provisions above, a recipient may
# use your version of this file under the terms of any one of the
# RPSL, the RCSL or the GPL.
# 
# This file is part of the Helix DNA Technology. RealNetworks is the
# developer of the Original Code and owns the copyrights in the
# portions it created.
# 
# This file, and the files included with this file, is distributed
# and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
# KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
# ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
# ENJOYMENT OR NON-INFRINGEMENT.
# 
# Technology Compatibility Kit Test Suite(s) Location:
#    http://www.helixcommunity.org/content/tck
# 
# Contributor(s):
# 
# ***** END LICENSE BLOCK *****
# 

project.AddDefines('WIN32_LEAN_AND_MEAN')

project.sys_libraries[-1:-1] = [
    'version.lib',
    'kernel32.lib',
    'user32.lib',
    'advapi32.lib',
    'winmm.lib',
    'gdi32.lib',
    'ole32.lib',
    'oleaut32.lib',
    'uuid.lib'
    ]



--- NEW FILE: downloadpln.ver ---
/* THIS FILE IS GENERATED BY THE BUILD SYSTEM -- DO NOT EDIT
 * Copyright (C) 1997-2002 RealNetworks Corporation. All rights reserved.
 */
#ifdef _MACINTOSH
#define TARVER_ULONG32_VERSION ((10<<28)|(0<<20)|(0<<12)|0)
#else
#define TARVER_ULONG32_VERSION (UINT32)((10L<<28L)|(0L<<20L)|(0L<< 12L)|0L)
#endif
#define TARVER_LIST_VERSION 10,0,0,0
#define TARVER_MAJOR_VERSION 10
#define TARVER_MINOR_VERSION 0
#define TARVER_STRING_VERSION "10.0.0.0"
#define TARVER_STR_BUILD_NAME ""

--- NEW FILE: Umakefil ---
# 
# ***** BEGIN LICENSE BLOCK *****
# Source last modified: $Id: Umakefil,v 1.1 2007/07/12 22:43:10 ping Exp $
# 
# Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
# 
# The contents of this file, and the files included with this file,
# are subject to the current version of the RealNetworks Public
# Source License (the "RPSL") available at
# http://www.helixcommunity.org/content/rpsl unless you have licensed
# the file under the current version of the RealNetworks Community
# Source License (the "RCSL") available at
# http://www.helixcommunity.org/content/rcsl, in which case the RCSL
# will apply. You may also obtain the license terms directly from
# RealNetworks.  You may not use this file except in compliance with
# the RPSL or, if you have a valid RCSL with RealNetworks applicable
# to this file, the RCSL.  Please see the applicable RPSL or RCSL for
# the rights, obligations and limitations governing use of the
# contents of the file.
# 
# Alternatively, the contents of this file may be used under the
# terms of the GNU General Public License Version 2 or later (the
# "GPL") in which case the provisions of the GPL are applicable
# instead of those above. If you wish to allow use of your version of
# this file only under the terms of the GPL, and not to allow others
# to use your version of this file under the terms of either the RPSL
# or RCSL, indicate your decision by deleting the provisions above
# and replace them with the notice and other provisions required by
# the GPL. If you do not delete the provisions above, a recipient may
# use your version of this file under the terms of any one of the
# RPSL, the RCSL or the GPL.
# 
# This file is part of the Helix DNA Technology. RealNetworks is the
# developer of the Original Code and owns the copyrights in the
# portions it created.
# 
# This file, and the files included with this file, is distributed
# and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
# KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
# ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
# ENJOYMENT OR NON-INFRINGEMENT.
# 
# Technology Compatibility Kit Test Suite(s) Location:
#    http://www.helixcommunity.org/content/tck
# 
# Contributor(s):
# 
# ***** END LICENSE BLOCK *****
# 

UmakefileVersion(2,1)

MultiTargetMake('downloadlib', 'downloadpln')

--- NEW FILE: downloadlib ---
# 
# ***** BEGIN LICENSE BLOCK *****
# Source last modified: $Id: downloadlib,v 1.1 2007/07/12 22:43:10 ping Exp $
# 
# Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
# 
# The contents of this file, and the files included with this file,
# are subject to the current version of the RealNetworks Public
# Source License (the "RPSL") available at
# http://www.helixcommunity.org/content/rpsl unless you have licensed
# the file under the current version of the RealNetworks Community
# Source License (the "RCSL") available at
# http://www.helixcommunity.org/content/rcsl, in which case the RCSL
# will apply. You may also obtain the license terms directly from
# RealNetworks.  You may not use this file except in compliance with
# the RPSL or, if you have a valid RCSL with RealNetworks applicable
# to this file, the RCSL.  Please see the applicable RPSL or RCSL for
# the rights, obligations and limitations governing use of the
# contents of the file.
# 
# Alternatively, the contents of this file may be used under the
# terms of the GNU General Public License Version 2 or later (the
# "GPL") in which case the provisions of the GPL are applicable
# instead of those above. If you wish to allow use of your version of
# this file only under the terms of the GPL, and not to allow others
# to use your version of this file under the terms of either the RPSL
# or RCSL, indicate your decision by deleting the provisions above
# and replace them with the notice and other provisions required by
# the GPL. If you do not delete the provisions above, a recipient may
# use your version of this file under the terms of any one of the
# RPSL, the RCSL or the GPL.
# 
# This file is part of the Helix DNA Technology. RealNetworks is the
# developer of the Original Code and owns the copyrights in the
# portions it created.
# 
# This file, and the files included with this file, is distributed
# and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
# KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
# ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
# ENJOYMENT OR NON-INFRINGEMENT.
# 
# Technology Compatibility Kit Test Suite(s) Location:
#    http://www.helixcommunity.org/content/tck
# 
# Contributor(s):
# 
# ***** END LICENSE BLOCK *****
# 

UmakefileVersion(2,1)

project.AddModuleIncludes("common/include",
                    	  "common/container/pub",
                    	  "common/util/pub",
                    	  "common/system/pub",
                    	  "common/dbgtool/pub",
			  "common/runtime/pub",
			  "common/netio/pub",
			  "common/log/logutil/pub",
			  "client/include",
                          "client/common/netio/pub",
			  "client/common/container/pub",
			  "protocol/common/util/pub",
			  "protocol/http/pub")

project.AddSources("chxdownload.cpp")

LibraryTarget("downloadlib")

DependTarget()


_______________________________________________
Client-cvs mailing list
Client-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/client-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic