81 lines
2.2 KiB
C++
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_)
|