🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ComInit.hpp
浏览该文件的文档.
1
21
22#pragma once
23
24#include "AstGlobal.h"
25
26#if defined(_WIN32) && !defined(SWIG)
27#include <Windows.h>
28#endif
29
30AST_NAMESPACE_BEGIN
31
32#if defined(_WIN32) && !defined(SWIG)
33
36class CoInitializeGuard
37{
38public:
39 explicit CoInitializeGuard(COINIT initFlags) : hr_(CoInitializeEx(nullptr, initFlags)) {}
40 ~CoInitializeGuard() { if (SUCCEEDED(hr_)) CoUninitialize(); }
41 CoInitializeGuard(const CoInitializeGuard&) = delete;
42 CoInitializeGuard& operator=(const CoInitializeGuard&) = delete;
43 HRESULT hr_{};
44};
45
49AST_UTIL_API HRESULT aEnsureCoInitialized();
50
51#else
52
53// 非 Windows 平台:空实现
55{
56public:
57 explicit CoInitializeGuard(int) {}
58 int hr_ = 0;
59};
60
61A_ALWAYS_INLINE int aEnsureCoInitialized() { return 0; }
62
63#endif
64
65AST_NAMESPACE_END
定义 ComInit.hpp:55