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.
 
 
 
 
 
 

38 lines
987 B

#pragma once
#include "parser.h"
class CMMFParser
{
protected:
class CMarsDocument* m_pMarsDocument;
DWORD m_dwDocSize;
BYTE* m_rgDocBuff;
CComBSTR m_bstrFirstPlace;
CMMFParser( CMarsDocument *pMarsDocument );
~CMMFParser()
{
if(m_rgDocBuff) LocalFree( m_rgDocBuff );
}
HRESULT DoPlace ( BYTE*& rgBuffer );
HRESULT DoPanel ( BYTE*& rgBuffer );
HRESULT DoPlaces ( BYTE*& rgBuffer );
HRESULT DoPanels ( BYTE*& rgBuffer );
HRESULT DoMarsApp( BYTE* rgBuffer );
template <class T> void Extract( BYTE*& rgBuffer, T& pRet )
{
::CopyMemory( &pRet, rgBuffer, sizeof(T) );
rgBuffer += sizeof(T);
}
public:
HRESULT ReadFile( const CComPtr<IStream>& spis );
static HRESULT ReadMMFStreamCookie( const CComPtr<IStream>& spis );
static HRESULT MMFToMars( LPCWSTR pszMMFUrl, class CMarsDocument* pMarsDocument );
};