2025-11-28 00:35:46 +09:00

81 lines
2.2 KiB
C++

//*****************************************************************************
//
// Microsoft Windows Media
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// FileName: ExtensionData.h
//
// Abstract: Definition for CExtensionData class
//
//*****************************************************************************
#if !defined(AFX_CExtensionData_H__21A57EE3_8C94_4E10_8092_4C171BCBA68E__INCLUDED_)
#define AFX_CExtensionData_H__21A57EE3_8C94_4E10_8092_4C171BCBA68E__INCLUDED_
class CExtensionData
{
public :
CExtensionData( GUID guidDUExt, BYTE *pbExtensionSystemInfo,
WORD cbExtensionDataSize, DWORD cbExtensionSystemInfo, WORD wStreamNum );
~CExtensionData();
GUID m_guidDUExt;
BYTE *m_pbExtensionSystemInfo;
WORD m_cbExtensionDataSize;
DWORD m_cbExtensionSystemInfo;
WORD m_wStreamNum;
void *m_pValue;
CExtensionData *m_pNext;
HRESULT DisplayData();
};
///////////////////////////////////////////////////////////////
// List of data extensions
///////////////////////////////////////////////////////////////
class CExtDataList
{
private :
CExtensionData *m_pStart, *m_pEnd, *m_pCur, *m_pIter;
WORD m_wSize;
WORD m_wSearchStreamNum;
public:
CExtDataList()
{
m_pStart = m_pCur = m_pIter = m_pEnd = NULL;
m_wSize = 0;
m_wSearchStreamNum = 0;
}
~CExtDataList()
{
while( NULL != m_pStart )
{
m_pCur = m_pStart;
m_pStart = m_pStart->m_pNext;
delete m_pCur;
}
}
public :
WORD Size() { return m_wSize; };
HRESULT Create( IWMProfile* pProfile );
bool Find( WORD wStreamNum, CExtensionData **pExtensionData );
private :
bool Append( CExtensionData *pCExtensionData );
CExtensionData *GetStart() { return m_pStart; };
};
HRESULT SaveProfileToMemory( IWMProfile *pIWMProfile, __deref_out_ecount(*pdwLen) WCHAR ** ppwszBuffer, DWORD *pdwLen );
HRESULT SaveProfileToFile( const TCHAR *pszFileName, IWMProfile *pIWMProfile );
#endif // !defined(AFX_CExtensionData_H__21A57EE3_8C94_4E10_8092_4C171BCBA68E__INCLUDED_)