//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1997. // // File: cdlinfo.cxx // // Contents: // // Classes: // // Functions: // // History: 02-20-97 t-alans (Alan Shi) Created // //---------------------------------------------------------------------------- #include #include #include // AS: ICodeDownloadInfo added to urlmon.idl (local change) // modified urlint.h to add SZ_CODEDOWNLOADINFO //+--------------------------------------------------------------------------- // // Method: CCodeDownloadInfo::CCodeDownloadInfo // // Synopsis: // // Arguments: // // // // Returns: // // History: 01-27-1997 t-alans (Alan Shi) Created // // Notes: // //---------------------------------------------------------------------------- CCodeDownloadInfo::CCodeDownloadInfo() : _szCodeBase( NULL ) , _ulMajorVersion( 0 ) , _ulMinorVersion( 0 ) , _cRefs( 1 ) { DEBUG_ENTER((DBG_TRANS, None, "CCodeDownloadInfo::CCodeDownloadInfo", "this=%#x", this )); DEBUG_LEAVE(0); } //+--------------------------------------------------------------------------- // // Method: CCodeDownloadInfo::~CCodeDownloadInfo // // Synopsis: // // Arguments: // // // // Returns: // // History: 01-27-1997 t-alans (Alan Shi) Created // // Notes: // //---------------------------------------------------------------------------- CCodeDownloadInfo::~CCodeDownloadInfo() { DEBUG_ENTER((DBG_TRANS, None, "CCodeDownloadInfo::~CCodeDownloadInfo", "this=%#x", this )); if (_szCodeBase != NULL) { CoTaskMemFree((void *)_szCodeBase); _szCodeBase = NULL; } DEBUG_LEAVE(0); } //+--------------------------------------------------------------------------- // // Method: CCodeDownloadInfo::QueryInterface // // Synopsis: // // Arguments: // // // // Returns: // // History: 01-27-1997 t-alans (Alan Shi) Created // // Notes: // //---------------------------------------------------------------------------- STDMETHODIMP CCodeDownloadInfo::QueryInterface(REFIID riid, void **ppvObj) { DEBUG_ENTER((DBG_TRANS, Hresult, "CCodeDownloadInfo::IUnknown::QueryInterface", "this=%#x, %#x, %#x", this, &riid, ppvObj )); HRESULT hr = S_OK; if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_ICodeDownloadInfo)) { *ppvObj = (void *)this; AddRef(); } else { *ppvObj = NULL; hr = E_NOINTERFACE; } DEBUG_LEAVE(hr); return hr; } //+--------------------------------------------------------------------------- // // Method: CCodeDownloadInfo::AddRef // // Synopsis: // // Arguments: // // // // Returns: // // History: 01-27-1997 t-alans (Alan Shi) Created // // Notes: // //---------------------------------------------------------------------------- STDMETHODIMP_(ULONG) CCodeDownloadInfo::AddRef(void) { DEBUG_ENTER((DBG_TRANS, Dword, "CCodeDownloadInfo::IUnknown::AddRef", "this=%#x", this )); ULONG ulRet = ++_cRefs; DEBUG_LEAVE(hr); return ulRet; } //+--------------------------------------------------------------------------- // // Method: CCodeDownloadInfo::Release // // Synopsis: // // Arguments: // // // // Returns: // // History: 01-27-1997 t-alans (Alan Shi) Created // // Notes: // //---------------------------------------------------------------------------- STDMETHODIMP_(ULONG) CCodeDownloadInfo::Release(void) { DEBUG_ENTER((DBG_TRANS, Dword, "CCodeDownloadInfo::IUnknown::Release", "this=%#x", this )); if (!--_cRefs) { delete this; } DEBUG_LEAVE(_cRefs); return _cRefs; } //+--------------------------------------------------------------------------- // // Method: CCodeDownloadInfo::GetCodeBase // // Synopsis: // // Arguments: // // // // Returns: // // History: 01-27-1997 t-alans (Alan Shi) Created // // Notes: // //---------------------------------------------------------------------------- STDMETHODIMP CCodeDownloadInfo::GetCodeBase(LPWSTR *szCodeBase) { DEBUG_ENTER((DBG_TRANS, Hresult, "CCodeDownloadInfo::GetCodeBase", "this=%#x, %.80wq", this, szCodeBase )); wcscpy(*szCodeBase, _szCodeBase); DEBUG_LEAVE(S_OK); return S_OK; } //+--------------------------------------------------------------------------- // // Method: CCodeDownloadInfo::SetCodeBase // // Synopsis: // // Arguments: // // // // Returns: // // History: 01-27-1997 t-alans (Alan Shi) Created // // Notes: // //---------------------------------------------------------------------------- STDMETHODIMP CCodeDownloadInfo::SetCodeBase(LPCWSTR szCodeBase) { DEBUG_ENTER((DBG_TRANS, Hresult, "CCodeDownloadInfo::SetCodeBase", "this=%#x, %.80wq", this, szCodeBase )); HRESULT hr = E_FAIL; long lStrlen = 0; if (_szCodeBase != NULL) { CoTaskMemFree((void *)_szCodeBase); _szCodeBase = NULL; } #ifndef unix lStrlen = 2 * (wcslen(szCodeBase) + 1); #else lStrlen = sizeof(WCHAR) * (wcslen(szCodeBase) + 1); #endif /* unix */ _szCodeBase = (LPWSTR)CoTaskMemAlloc(lStrlen); hr = (_szCodeBase == NULL) ? (E_OUTOFMEMORY) : (S_OK); if (_szCodeBase != NULL) { wcscpy(_szCodeBase, szCodeBase); } DEBUG_LEAVE(hr); return hr; } //+--------------------------------------------------------------------------- // // Method: CCodeDownloadInfo::SetMinorVersion // // Synopsis: // // Arguments: // // // // Returns: // // History: 01-27-1997 t-alans (Alan Shi) Created // // Notes: // //---------------------------------------------------------------------------- STDMETHODIMP CCodeDownloadInfo::SetMinorVersion(ULONG ulVersion) { DEBUG_ENTER((DBG_TRANS, Hresult, "CCodeDownloadInfo::SetMinorVersion", "this=%#x, %x", this, ulVersion )); _ulMinorVersion = ulVersion; DEBUG_LEAVE(S_OK); return S_OK; } //+--------------------------------------------------------------------------- // // Method: CCodeDownloadInfo::GetMinorVersion // // Synopsis: // // Arguments: // // // // Returns: // // History: 01-27-1997 t-alans (Alan Shi) Created // // Notes: // //---------------------------------------------------------------------------- STDMETHODIMP CCodeDownloadInfo::GetMinorVersion(ULONG *pulVersion) { DEBUG_ENTER((DBG_TRANS, Hresult, "CCodeDownloadInfo::GetMinorVersion", "this=%#x, %#x", this, pulVersion )); *pulVersion = _ulMinorVersion; DEBUG_LEAVE(S_OK); return S_OK; } //+--------------------------------------------------------------------------- // // Method: CCodeDownloadInfo::SetMajorVersion // // Synopsis: // // Arguments: // // // // Returns: // // History: 01-27-1997 t-alans (Alan Shi) Created // // Notes: // //---------------------------------------------------------------------------- STDMETHODIMP CCodeDownloadInfo::SetMajorVersion(ULONG ulVersion) { DEBUG_ENTER((DBG_TRANS, Hresult, "CCodeDownloadInfo::SetMajorVersion", "this=%#x, %x", this, ulVersion )); _ulMajorVersion = ulVersion; DEBUG_LEAVE(S_OK); return S_OK; } //+--------------------------------------------------------------------------- // // Method: CCodeDownloadInfo::GetMajorVersion // // Synopsis: // // Arguments: // // // // Returns: // // History: 01-27-1997 t-alans (Alan Shi) Created // // Notes: // //---------------------------------------------------------------------------- STDMETHODIMP CCodeDownloadInfo::GetMajorVersion(ULONG *pulVersion) { DEBUG_ENTER((DBG_TRANS, Hresult, "CCodeDownloadInfo::GetMajorVersion", "this=%#x, %#x", this, pulVersion )); *pulVersion = _ulMajorVersion; DEBUG_LEAVE(S_OK); return S_OK; } //+--------------------------------------------------------------------------- // // Method: CCodeDownloadInfo::GetClassID // // Synopsis: // // Arguments: // // // // Returns: // // History: 01-27-1997 t-alans (Alan Shi) Created // // Notes: // //---------------------------------------------------------------------------- STDMETHODIMP CCodeDownloadInfo::GetClassID(CLSID *clsid) { DEBUG_ENTER((DBG_TRANS, Hresult, "CCodeDownloadInfo::GetClassID", "this=%#x, %#x", this, clsid )); *clsid = _clsid; DEBUG_LEAVE(S_OK); return S_OK; } //+--------------------------------------------------------------------------- // // Method: CCodeDownloadInfo::SetClassID // // Synopsis: // // Arguments: // // // // Returns: // // History: 01-27-1997 t-alans (Alan Shi) Created // // Notes: // //---------------------------------------------------------------------------- STDMETHODIMP CCodeDownloadInfo::SetClassID(CLSID clsid) { DEBUG_ENTER((DBG_TRANS, Hresult, "CCodeDownloadInfo::SetClassID", "this=%#x, %#x", this, &clsid )); _clsid = clsid; DEBUG_LEAVE(S_OK); return S_OK; }