🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
SaVOImpl.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstCOM.h"
25#include "AstCOM/COMAPI.hpp"
26#include "AstCOM/VeVOSystemsCollection.hpp"
27#include "AstUtil/Object.hpp"
28#include "AstUtil/Encode.hpp"
29#include <unknwn.h>
30#include <oaidl.h>
31#include <atlbase.h>
32#include <atlcom.h>
33
34AST_NAMESPACE_BEGIN
35
41template <typename T, const IID* piid = &__uuidof(T)>
42class ISaVOImpl :
43 public IDispatchImpl<T, piid, &IID_NULL, 0xFFFF, 0xFFFF>
44{
45public:
46 ISaVOImpl() = default;
47 ~ISaVOImpl() = default;
48
49
50 HRESULT __stdcall get_OrbitSystems(IVeVOSystemsCollection** ppRetVal) override
51 {
52 if (ppRetVal == nullptr)
53 return E_POINTER;
54 *ppRetVal = nullptr;
55
56 CComObject<CVeVOSystemsCollection>* pCollection = nullptr;
57 HRESULT hr = CComObject<CVeVOSystemsCollection>::CreateInstance(&pCollection);
58
59 if (FAILED(hr))
60 return hr;
61
62 pCollection->AddRef();
63 *ppRetVal = pCollection;
64 return S_OK;
65 }
66public:
67
68
69private:
70
71};
72
75AST_NAMESPACE_END
定义 SaVOImpl.hpp:44
定义 AstCOM.idl:79