Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*-----------------------------------------------------------------------------
dlapi.cpp
Wrapper for softlinking to download DLL
Copyright (C) 1996 Microsoft Corporation All rights reserved.
Authors: ChrisK ChrisKauffman
History: 7/22/96 ChrisK Cleaned and formatted
-----------------------------------------------------------------------------*/
#include "pch.hpp"
#include "debug.h"
#include "icwdl.h"
#include "dlapi.h"
// ############################################################################
CDownLoadAPI::CDownLoadAPI() { m_hDLL = NULL; m_pfnDownLoadInit = NULL; m_pfnDownLoadCancel = NULL; m_pfnDownLoadExecute = NULL; m_pfnDownLoadClose = NULL; m_pfnDownLoadSetStatus = NULL; m_pfnDownLoadProcess = NULL; }
// ############################################################################
CDownLoadAPI::~CDownLoadAPI() { if (m_hDLL) FreeLibrary(m_hDLL); m_hDLL = NULL; m_pfnDownLoadInit = NULL; m_pfnDownLoadCancel = NULL; m_pfnDownLoadExecute = NULL; m_pfnDownLoadClose = NULL; m_pfnDownLoadSetStatus = NULL; m_pfnDownLoadProcess = NULL; }
// ############################################################################
HRESULT CDownLoadAPI::LoadAPI(LPSTR szApiName, FARPROC* pfp) { Assert(szApiName && pfp); if (!m_hDLL) m_hDLL = LoadLibrary(DOWNLOAD_LIBRARY);
if (m_hDLL && !(*pfp)) { *pfp = GetProcAddress(m_hDLL, szApiName); if (*pfp) return ERROR_SUCCESS; else return GetLastError(); } else { return GetLastError(); } }
// ############################################################################
HRESULT CDownLoadAPI::DownLoadInit(PTSTR pszUrl, DWORD_PTR * lpCDialingDlg, DWORD_PTR *lpdwDownload, HWND hwndParent) { HRESULT hr = ERROR_DLL_NOT_FOUND; LoadAPI(DOWNLOADINIT,(FARPROC*)&m_pfnDownLoadInit); if (m_pfnDownLoadInit) hr = (m_pfnDownLoadInit)(pszUrl, lpCDialingDlg, lpdwDownload, hwndParent); return hr; }
// ############################################################################
HRESULT CDownLoadAPI::DownLoadCancel(DWORD_PTR dwDownload) { HRESULT hr = ERROR_DLL_NOT_FOUND; LoadAPI(DOWNLOADCANCEL,(FARPROC*)&m_pfnDownLoadCancel); if (m_pfnDownLoadCancel) hr = (m_pfnDownLoadCancel)(dwDownload); return hr; }
// ############################################################################
HRESULT CDownLoadAPI::DownLoadExecute(DWORD_PTR dwDownload) { HRESULT hr = ERROR_DLL_NOT_FOUND; LoadAPI(DOWNLOADEXECUTE,(FARPROC*)&m_pfnDownLoadExecute); if (m_pfnDownLoadExecute) hr = (m_pfnDownLoadExecute)(dwDownload); return hr; }
// ############################################################################
HRESULT CDownLoadAPI::DownLoadProcess(DWORD_PTR dwDownload) { HRESULT hr = ERROR_DLL_NOT_FOUND; LoadAPI(DOWNLOADPROCESS,(FARPROC*)&m_pfnDownLoadProcess); if (m_pfnDownLoadProcess) hr = (m_pfnDownLoadProcess)(dwDownload); return hr; }
// ############################################################################
HRESULT CDownLoadAPI::DownLoadClose(DWORD_PTR dwDownload) { HRESULT hr = ERROR_DLL_NOT_FOUND; LoadAPI(DOWNLOADCLOSE,(FARPROC*)&m_pfnDownLoadClose); if (m_pfnDownLoadClose) hr = (m_pfnDownLoadClose)(dwDownload); return hr; }
// ############################################################################
HRESULT CDownLoadAPI::DownLoadSetStatus(DWORD_PTR dwDownload, INTERNET_STATUS_CALLBACK fnCallback) { HRESULT hr = ERROR_DLL_NOT_FOUND; LoadAPI(DOWNLOADSETSTATUS,(FARPROC*)&m_pfnDownLoadSetStatus); if (m_pfnDownLoadSetStatus) // jmazner 10/2/96 Normandy # 8493
// ICWDL.DLL's DownLoadSetStatus only has two parameters!!!
//hr = (m_pfnDownLoadSetStatus)(dwDownload, fnCallback, dwContext);
hr = (m_pfnDownLoadSetStatus)(dwDownload, fnCallback); return hr; }
|