00001 #pragma once
00002
00003 #define WINDOWS_LEAN_AND_MEAN
00004 #define POLARITY
00005 #ifndef _WIN32_WCE
00006 #define _WIN32_DCOM
00007 #endif
00008
00009 #include <windows.h>
00010 #include "intelligence_h.h"
00011
00012 #include "../Features/Feature.h"
00013
00014 class FeatureContainer;
00015 class Classifier;
00016
00017 class CIntelligence : public IIntelligence, ISupportErrorInfo
00018 {
00019 private:
00020 FeatureContainer *f;
00021 Classifier *ca;
00022
00023 const featurevector *samples;
00024 const char *classes;
00025 long activeId;
00026
00027 static ULONG refCount;
00028 static ITypeInfo *typeInfo;
00029
00030 void calcActiveId();
00031
00032 public:
00033 CIntelligence();
00034 ~CIntelligence();
00035
00036
00037 void nextSample();
00038 bool wait(bool &keepRunning);
00039
00040
00041 STDMETHODIMP QueryInterface(REFIID, LPVOID*);
00042 STDMETHODIMP_ (ULONG) AddRef();
00043 STDMETHODIMP_ (ULONG) Release();
00044
00045
00046 STDMETHODIMP GetTypeInfoCount(UINT *);
00047 STDMETHODIMP GetTypeInfo(UINT, LCID, ITypeInfo **);
00048 STDMETHODIMP GetIDsOfNames(REFIID, LPOLESTR *, UINT, LCID, DISPID *);
00049 STDMETHODIMP Invoke(DISPID, REFIID, LCID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT *);
00050
00051
00052 STDMETHODIMP InterfaceSupportsErrorInfo(REFIID riid);
00053
00054
00055 STDMETHOD(getActiveId)(long* id);
00056 };