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.
 
 
 
 
 
 

121 lines
3.0 KiB

//+------------------------------------------------------------
//
// Copyright (C) 1998, Microsoft Corporation
//
// File: icatasync.h
//
// Contents: Implementation of ICategorizerAsyncContext
//
// Classes: CICategorizerAyncContext
//
// Functions:
//
// History:
// jstamerj 1998/07/16 11:13:50: Created.
//
//-------------------------------------------------------------
#ifndef _ICATASYNC_H_
#define _ICATASYNC_H_
#include <windows.h>
#include <smtpevent.h>
#include <dbgtrace.h>
CatDebugClass(CICategorizerAsyncContextIMP),
public ICategorizerAsyncContext
{
public:
//IUnknown
STDMETHOD (QueryInterface) (REFIID iid, LPVOID *ppv);
STDMETHOD_(ULONG, AddRef) ();
STDMETHOD_(ULONG, Release) ();
public:
//ICategorizerAsyncContext
STDMETHOD (CompleteQuery) (
IN PVOID pvQueryContext,
IN HRESULT hrResolutionStatus,
IN DWORD dwcResults,
IN ICategorizerItemAttributes **rgpItemAttributes,
IN BOOL fFinalCompletion);
public:
VOID SetISMTPServerEx(ISMTPServerEx *pISMTPServerEx)
{
_ASSERT(m_pISMTPServerEx == NULL);
m_pISMTPServerEx = pISMTPServerEx;
if(m_pISMTPServerEx)
m_pISMTPServerEx->AddRef();
}
ISMTPServerEx * GetISMTPServerEx()
{
return m_pISMTPServerEx;
}
private:
CICategorizerAsyncContextIMP();
~CICategorizerAsyncContextIMP();
private:
#define SIGNATURE_CICATEGORIZERASYNCCONTEXTIMP (DWORD)'ICAC'
#define SIGNATURE_CICATEGORIZERASYNCCONTEXTIMP_INVALID (DWORD)'XCAC'
DWORD m_dwSignature;
ULONG m_cRef;
ISMTPServerEx *m_pISMTPServerEx;
friend class CAsyncLookupContext;
friend class CSearchRequestBlock;
};
//+------------------------------------------------------------
//
// Function: CICategorizerAsyncContext::CICategorizerAsyncContext
//
// Synopsis: Initialize signature/refcount
//
// Arguments: NONE
//
// Returns: NOTHING
//
// History:
// jstamerj 1998/07/16 11:21:36: Created.
//
//-------------------------------------------------------------
inline CICategorizerAsyncContextIMP::CICategorizerAsyncContextIMP()
{
m_dwSignature = SIGNATURE_CICATEGORIZERASYNCCONTEXTIMP;
m_cRef = 0;
m_pISMTPServerEx = NULL;
}
//+------------------------------------------------------------
//
// Function: CICategorizerAsyncContext::~CICategorizerAsyncContext
//
// Synopsis: Assert check member variables before destruction
//
// Arguments: NONE
//
// Returns: NOTHING
//
// History:
// jstamerj 1998/07/16 11:23:26: Created.
//
//-------------------------------------------------------------
inline CICategorizerAsyncContextIMP::~CICategorizerAsyncContextIMP()
{
_ASSERT(m_cRef == 0);
if(m_pISMTPServerEx)
m_pISMTPServerEx->Release();
_ASSERT(m_dwSignature == SIGNATURE_CICATEGORIZERASYNCCONTEXTIMP);
m_dwSignature = SIGNATURE_CICATEGORIZERASYNCCONTEXTIMP_INVALID;
}
#endif //_ICATASYNC_H_