COMPUTER.H
// Filename: Computer.h 
// 
// Description:  Definition of CComputer 
// 
// This file is provided as part of the Microsoft Transaction Server Samples 
// 
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT  
// WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,  
// INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES  
// OF MERCHANTABILITY AND/OR FITNESS FOR A  PARTICULAR  
// PURPOSE. 
// 
// Copyright (C) 1997 Microsoft Corporation, All rights reserved 
 
#if !defined(AFX_COMPUTER_H__AA22C9A7_FD72_11D0_B5DC_00C04FB957D8__INCLUDED_) 
#define AFX_COMPUTER_H__AA22C9A7_FD72_11D0_B5DC_00C04FB957D8__INCLUDED_ 
 
#if _MSC_VER >= 1000 
#pragma once 
#endif // _MSC_VER >= 1000 
 
#include "resource.h"       // main symbols 
 
///////////////////////////////////////////////////////////////////////////// 
// CComputer 
 
class CComputer :  
public CComDualImpl<IComputer, &IID_IComputer, &LIBID_TSERVERLib>,  
public ISupportErrorInfo, 
public CComObjectRoot, 
public CComCoClass<CComputer,&CLSID_Computer> 
{ 
public: 
CComputer() {} 
 
private: 
long plField [3][3]; 
 
float CComputer::Evaluate (long lX, long lY); 
long CComputer::LineScan (long lPlayer, long& lX, long& lY); 
bool CComputer::IsWin (long lPlayer); 
long CComputer::HowManyTurns (); 
void CComputer::GetMove (long lGameID, VARIANT_BOOL bEasy, long& lX, long& lY); 
HRESULT CComputer::LoadArray (long lGameID); 
HRESULT CComputer::SaveArray (long lGameID);  
void inline CComputer::InitArray () { 
for (int i = 0; i < 3; i ++) 
for (int j = 0; j < 3; j ++) 
plField[i][j] = 0; 
} 
 
BEGIN_COM_MAP(CComputer) 
COM_INTERFACE_ENTRY(IDispatch) 
COM_INTERFACE_ENTRY(IComputer) 
COM_INTERFACE_ENTRY(ISupportErrorInfo) 
END_COM_MAP() 
//DECLARE_NOT_AGGREGATABLE(CComputer)  
// Remove the comment from the line above if you don't want your object to  
// support aggregation.  
 
DECLARE_REGISTRY_RESOURCEID(IDR_Computer) 
// ISupportsErrorInfo 
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); 
 
// IComputer 
public: 
STDMETHODIMP AddNewGame (IN VARIANT_BOOL bEasy, OUT VARIANT* pvGameID, OUT VARIANT* pvOrder, OUT VARIANT* pvX, OUT VARIANT* pvY); 
STDMETHODIMP NewMove (IN long lGameID, IN VARIANT_BOOL bEasy, IN long lX, IN long lY, OUT VARIANT* pvMyX, OUT VARIANT* pvMyY, OUT VARIANT* pvWin); 
 
}; 
 
#endif // !defined(AFX_COMPUTER_H__AA22C9A7_FD72_11D0_B5DC_00C04FB957D8__INCLUDED_)