Files
fastfetch/src/common/windows/com.h
T
2026-07-10 18:10:09 +08:00

24 lines
518 B
C

#pragma once
#include "common/attributes.h"
#include <assert.h>
#include <unknwn.h>
// Initialize COM & WinRT
const char* ffInitCom(void);
static inline void ffReleaseComObject(void* ppUnknown) {
assert(ppUnknown);
IUnknown* pUnknown = *(IUnknown**) ppUnknown;
if (pUnknown) {
#ifdef __cplusplus
pUnknown->Release();
#else
pUnknown->lpVtbl->Release(pUnknown);
#endif
*(IUnknown**) ppUnknown = nullptr;
}
}
#define FF_AUTO_RELEASE_COM_OBJECT FF_A_CLEANUP(ffReleaseComObject)