2025-04-27 07:49:33 -04:00

121 lines
2.3 KiB
C++

// ss.cpp : Implementation of Css
#include "stdafx.h"
#include "fail.h"
#include "ss.h"
#include "dbgtrace.h"
/////////////////////////////////////////////////////////////////////////////
// Css
STDMETHODIMP Css::OnStartPage (IUnknown* pUnk)
{
if(!pUnk)
return E_POINTER;
CComPtr<IScriptingContext> spContext;
HRESULT hr;
// Get the IScriptingContext Interface
hr = pUnk->QueryInterface(IID_IScriptingContext, (void **)&spContext);
if(FAILED(hr))
return hr;
// Get Request Object Pointer
hr = spContext->get_Request(&m_piRequest);
if(FAILED(hr))
{
spContext.Release();
return hr;
}
// Get Response Object Pointer
hr = spContext->get_Response(&m_piResponse);
if(FAILED(hr))
{
m_piRequest.Release();
return hr;
}
// Get Server Object Pointer
hr = spContext->get_Server(&m_piServer);
if(FAILED(hr))
{
m_piRequest.Release();
m_piResponse.Release();
return hr;
}
// Get Session Object Pointer
hr = spContext->get_Session(&m_piSession);
if(FAILED(hr))
{
m_piRequest.Release();
m_piResponse.Release();
m_piServer.Release();
return hr;
}
// Get Application Object Pointer
hr = spContext->get_Application(&m_piApplication);
if(FAILED(hr))
{
m_piRequest.Release();
m_piResponse.Release();
m_piServer.Release();
m_piSession.Release();
return hr;
}
m_bOnStartPageCalled = TRUE;
return S_OK;
}
STDMETHODIMP Css::OnEndPage ()
{
m_bOnStartPageCalled = FALSE;
// Release all interfaces
m_piRequest.Release();
m_piResponse.Release();
m_piServer.Release();
m_piSession.Release();
m_piApplication.Release();
return S_OK;
}
STDMETHODIMP Css::DoQuery()
{
// TODO: Add your implementation code here
InitAsyncTrace();
TraceFunctEnter("Css:DoQuery");
HRESULT hr;
CIndexServerQuery *in;
in = new CIndexServerQuery;
hr = in->MakeQuery( TRUE,
L"@Newsdate > 97/7/1 0:0:0 and #vpath *.nws",
NULL,
L"Web",
NULL,
L"newsgroup,newsarticleid,newsmsgid,newsfrom,newssubject,filename",
L"newsgroup,newsarticleid,newsmsgid,newsfrom,newssubject,filename" );
if ( FAILED( hr ) ) {
ErrorTrace(0, "Make query failed: %x", hr );
delete in;
TraceFunctLeave();
TermAsyncTrace();
return hr;
}
delete in;
TraceFunctLeave();
TermAsyncTrace();
return S_OK;
}