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

📄 id3frame.cpp

📁 更新mp3
💻 CPP
字号:
/////////////////////////////////////////////////////////////////////////////// Copyright (c) 2000 John Adcock.  All rights reserved.///////////////////////////////////////////////////////////////////////////////// This library is free software; you can redistribute it and/or modify it// under the terms of the GNU Library General Public License as published by// the Free Software Foundation; either version 2 of the License, or (at your// option) any later version.//// This library is distributed in the hope that it will be useful, but WITHOUT// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public// License for more details.//// You should have received a copy of the GNU Library General Public License// along with this library; if not, write to the Free Software Foundation,// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.// The id3lib authors encourage improvements and optimisations to be sent to// the id3lib coordinator.  Please see the README file for details on where to// send such submissions.  See the AUTHORS file for a list of people who have// contributed to id3lib.  See the ChangeLog file for a list of changes to// id3lib.  These files are distributed with id3lib at// http://download.sourceforge.net/id3lib////////////////////////////////////////////////////////////////////////////////// ID3Frame.cpp : Implementation of CID3Frame/////////////////////////////////////////////////////////////////////////////// Change Log//// Date          Developer             Changes//// 05 Jan 2000   John Adcock           Original Release    // 26 Apr 2000   John Adcock           Got working with id3lib 3.7.3// 18 Aug 2000   Philip Oldaker        Added Picture Functionality///////////////////////////////////////////////////////////////////////////////#include "stdafx.h"#include "ID3COM.h"#include "ID3Frame.h"#include "ID3Field.h"/////////////////////////////////////////////////////////////////////////////// CID3FrameCID3Frame::CID3Frame(){	m_Frame = NULL;	m_TagParent = NULL;}CID3Frame::~CID3Frame(){	if(m_TagParent != NULL)	{		m_TagParent->Release();	}	m_Frame = NULL;}IID3ComFrame* CID3Frame::CreateObject(IID3ComTag* TagParent, ID3_Frame* Frame){	CComObject<CID3Frame>* pRetVal = new CComObject<CID3Frame>;	pRetVal->m_Frame = Frame;	pRetVal->m_TagParent = TagParent;	TagParent->AddRef();	return (IID3ComFrame*)pRetVal;}STDMETHODIMP CID3Frame::InterfaceSupportsErrorInfo(REFIID riid){	static const IID* arr[] = 	{		&IID_IID3ComFrame	};	for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++)	{		if (InlineIsEqualGUID(*arr[i],riid))			return S_OK;	}	return S_FALSE;}STDMETHODIMP CID3Frame::get_Field(eID3FieldTypes FieldType, IID3ComField** pVal){	try	{		*pVal = NULL;		ID3_Field* Field = &(m_Frame->Field((enum ID3_FieldID)FieldType));        if(Field != NULL)        {		    *pVal = CID3Field::CreateObject(this, Field);		    (*pVal)->AddRef();        }        else        {            *pVal = NULL;        }		return S_OK;	}	catch (...)	{		return AtlReportError(CLSID_ID3ComFrame, "An unexpected error has occurred", IID_IID3ComFrame, E_UNEXPECTED);	}}STDMETHODIMP CID3Frame::Clear(){	try	{		m_Frame->Clear();		return S_OK;	}	catch (...)	{		return AtlReportError(CLSID_ID3ComFrame, "An unexpected error has occurred", IID_IID3ComFrame, E_UNEXPECTED);	}}STDMETHODIMP CID3Frame::get_ID(eID3FrameTypes *pVal){	try	{		*pVal = ID3_NOFRAME;		*pVal = (eID3FrameTypes)m_Frame->GetID();		return S_OK;	}	catch (...)	{		return AtlReportError(CLSID_ID3ComFrame, "An unexpected error has occurred", IID_IID3ComFrame, E_UNEXPECTED);	}}STDMETHODIMP CID3Frame::put_ID(eID3FrameTypes newVal){	try	{		m_Frame->SetID((ID3_FrameID)newVal);		return S_OK;	}	catch (...)	{		return AtlReportError(CLSID_ID3ComFrame, "An unexpected error has occurred", IID_IID3ComFrame, E_UNEXPECTED);	}}STDMETHODIMP CID3Frame::get_FrameName(BSTR *pVal){	USES_CONVERSION;	try	{		const char* sDesc = m_Frame->GetDescription();		if(sDesc != NULL)		{			*pVal = SysAllocString(A2W(sDesc));		}		else		{			*pVal = SysAllocString(L"Unknown Frame");		}		return S_OK;	}	catch (...)	{		return AtlReportError(CLSID_ID3ComFrame, "An unexpected error has occurred", IID_IID3ComFrame, E_UNEXPECTED);	}}STDMETHODIMP CID3Frame::put_Compressed(VARIANT_BOOL newVal){	try	{		m_Frame->SetCompression(newVal == VARIANT_TRUE);		return S_OK;	}	catch (...)	{		return AtlReportError(CLSID_ID3ComFrame, "An unexpected error has occurred", IID_IID3ComFrame, E_UNEXPECTED);	}}STDMETHODIMP CID3Frame::get_Compressed(VARIANT_BOOL *pVal){	USES_CONVERSION;	try	{		if(m_Frame->GetCompression())		{			*pVal = VARIANT_TRUE;		}		else		{			*pVal = VARIANT_FALSE;		}		return S_OK;	}	catch (...)	{		return AtlReportError(CLSID_ID3ComFrame, "An unexpected error has occurred", IID_IID3ComFrame, E_UNEXPECTED);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -