// ScanFile.h : Declaration of the CScanFile #pragma once #include "resource.h" // main symbols #include #include "CppToker.h" #include "CppSemiExp.h" #include "Q1.h" // CScanFile class ATL_NO_VTABLE CScanFile : public CComObjectRootEx, public CComCoClass, public IDispatchImpl { public: CScanFile() : pToker(0), pSemi(0) { } DECLARE_REGISTRY_RESOURCEID(IDR_SCANFILE) DECLARE_NOT_AGGREGATABLE(CScanFile) BEGIN_COM_MAP(CScanFile) COM_INTERFACE_ENTRY(IScanFile) COM_INTERFACE_ENTRY(IDispatch) END_COM_MAP() DECLARE_PROTECT_FINAL_CONSTRUCT() HRESULT FinalConstruct() { return S_OK; } void FinalRelease() { } public: STDMETHOD(putFile)(BSTR file); STDMETHOD(get)(ULONG* size, BSTR** semiExp); private: std::ifstream in; Scanner::CToker* pToker; Scanner::CSemiExp* pSemi; }; OBJECT_ENTRY_AUTO(__uuidof(ScanFile), CScanFile)