// EnumerateClassPacket.cpp: implementation of the CEnumeratePacket class.
//
//////////////////////////////////////////////////////////////////////
#include "XMLTransportClientHelper.h"
#include "XMLClientPacket.h"
#include "Enumerate.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CEnumeratePacket::CEnumeratePacket(const WCHAR *pwszObjPath,const WCHAR *pwszNameSpace, bool bClassEnumeration)
: CXMLClientPacket(pwszObjPath,pwszNameSpace, (bClassEnumeration)? L"EnumerateClasses" : L"EnumerateInstances")
{
m_ePathstyle = NOVAPATH; //assume nova path if this ctor is called.
}
HRESULT CEnumeratePacket::GetBody(WCHAR **ppwszBody,DWORD *pdwLengthofPacket)
{
if(NULL == ppwszBody)
return E_INVALIDARG;
HRESULT hr = S_OK;
IStream *pStream = NULL;
if(SUCCEEDED(hr = GetBodyTillLocalNamespacePathInStream(&pStream)))
{
if(SUCCEEDED(hr))
{
WRITETOSTREAM(pStream, L"");
WRITETOSTREAM(pStream, L"");
WRITETOSTREAM(pStream, m_pwszLocalOnly);
WRITETOSTREAM(pStream, L"");
WRITETOSTREAM(pStream, L"");
WRITETOSTREAM(pStream, m_pwszDeepInheritance);
WRITETOSTREAM(pStream, L"");
WRITETOSTREAM(pStream, L"");
WRITETOSTREAM(pStream, m_pwszIncludeClassOrigin);
WRITETOSTREAM(pStream, L"");
WRITETOSTREAM(pStream, L"");
WRITETOSTREAM(pStream, m_pwszIncludeQualifier);
WRITETOSTREAM(pStream, L"");
WRITETOSTREAM(pStream, L"");
hr = GetWStringFromStream(pStream, ppwszBody, pdwLengthofPacket);
}
pStream->Release();
}
return hr;
}