🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ExecCmdResult.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstCOM.h"
25#include <unknwn.h>
26#include <oaidl.h>
27#include <atlbase.h>
28#include <atlcom.h>
29#include <vector>
30#include <string>
31
32AST_NAMESPACE_BEGIN
33
40 public CComObjectRootEx<CComSingleThreadModel>,
41 public CComCoClass<CExecCmdResult, &CLSID_CExecCmdResult>,
42 public IDispatchImpl<IExecCmdResult, &IID_IExecCmdResult, &IID_NULL, 0xFFFF, 0xFFFF>
43 // 使用 &IID_NULL, 0xFFFF, 0xFFFF时,会直接从当前动态库加载TypeLib,避免了注册COM组件
44{
45public:
46 BEGIN_COM_MAP(CExecCmdResult)
47 COM_INTERFACE_ENTRY(IExecCmdResult)
48 COM_INTERFACE_ENTRY(IDispatch)
49 END_COM_MAP()
50
51 DECLARE_PROTECT_FINAL_CONSTRUCT();
52
53public:
54 CExecCmdResult() : isSucceeded_(VARIANT_TRUE) {}
55 ~CExecCmdResult() = default;
56
57 void setSucceeded(VARIANT_BOOL value) { isSucceeded_ = value; }
58 void addResult(const std::wstring& result) { results_.push_back(result); }
59 void clearResults() { results_.clear(); }
60
61public:
62 HRESULT __stdcall get_Count(long* pVal) override;
63 HRESULT __stdcall get_IsSucceeded(VARIANT_BOOL* pVal) override;
64 HRESULT __stdcall get_Item(long Index, BSTR* pVal) override;
65 HRESULT __stdcall Range(long StartIndex, long EndIndex, SAFEARRAY** pVal) override;
66
67private:
68 VARIANT_BOOL isSucceeded_;
69 std::vector<std::wstring> results_;
70};
71
74AST_NAMESPACE_END
定义 ExecCmdResult.hpp:44
定义 AstCOM.idl:12