Initial commit for GitHub migration based on spice2x-25-03-03

This commit is contained in:
sp2xdev
2025-03-10 19:16:49 -07:00
parent 94af8d32c9
commit ed8c72852f
1008 changed files with 296815 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
#pragma once
#include <objbase.h>
#include "util/logging.h"
template<typename T>
class CoTaskMemPtr {
public:
explicit CoTaskMemPtr() {
}
explicit CoTaskMemPtr(T *value) : _ptr(value) {
}
CoTaskMemPtr(const CoTaskMemPtr &) = delete;
CoTaskMemPtr &operator=(const CoTaskMemPtr &) = delete;
~CoTaskMemPtr() {
this->drop();
}
void drop() const noexcept {
if (_ptr) {
log_misc("co_task_mem_ptr", "dropping {}", fmt::ptr(_ptr));
CoTaskMemFree(_ptr);
}
}
T *data() const noexcept {
return _ptr;
}
T **ppv() noexcept {
this->drop();
return &_ptr;
}
T *operator->() const noexcept {
return _ptr;
}
private:
T *_ptr = nullptr;
};