mirror of
https://github.com/es3n1n/defendnot.git
synced 2026-08-02 10:32:01 +00:00
fix(com): ensure com calling convention is __stdcall
This commit is contained in:
@@ -9,6 +9,8 @@
|
|||||||
#include <source_location>
|
#include <source_location>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
||||||
|
#define COM_CALLCONV __stdcall
|
||||||
|
|
||||||
namespace com {
|
namespace com {
|
||||||
inline HRESULT checked(HRESULT result, const std::source_location loc = std::source_location::current()) {
|
inline HRESULT checked(HRESULT result, const std::source_location loc = std::source_location::current()) {
|
||||||
if (result == 0) {
|
if (result == 0) {
|
||||||
@@ -94,11 +96,11 @@ namespace com {
|
|||||||
static constexpr GUID kIID = IID;
|
static constexpr GUID kIID = IID;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual HRESULT QueryInterface() = 0;
|
virtual HRESULT COM_CALLCONV QueryInterface() = 0;
|
||||||
virtual std::uint32_t AddRef() = 0;
|
virtual std::uint32_t COM_CALLCONV AddRef() = 0;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual std::uint32_t Release() = 0;
|
virtual std::uint32_t COM_CALLCONV Release() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename Ty>
|
template <typename Ty>
|
||||||
|
|||||||
@@ -40,33 +40,33 @@ namespace defendnot {
|
|||||||
|
|
||||||
class IWscAVStatus4 : public com::IBaseObject<detail::CLSID_WscIsv, detail::IID_IWscAVStatus4> {
|
class IWscAVStatus4 : public com::IBaseObject<detail::CLSID_WscIsv, detail::IID_IWscAVStatus4> {
|
||||||
public:
|
public:
|
||||||
virtual HRESULT Register(BSTR path_to_signed_product_exe, BSTR display_name, std::uint32_t, std::uint32_t) = 0;
|
virtual HRESULT COM_CALLCONV Register(BSTR path_to_signed_product_exe, BSTR display_name, std::uint32_t, std::uint32_t) = 0;
|
||||||
virtual HRESULT Unregister() = 0;
|
virtual HRESULT COM_CALLCONV Unregister() = 0;
|
||||||
virtual HRESULT UpdateStatus(WSCSecurityProductState state, BOOL unk) = 0;
|
virtual HRESULT COM_CALLCONV UpdateStatus(WSCSecurityProductState state, BOOL unk) = 0;
|
||||||
virtual HRESULT InitiateOfflineCleaning(std::uint16_t*, std::uint16_t*) = 0;
|
virtual HRESULT COM_CALLCONV InitiateOfflineCleaning(std::uint16_t*, std::uint16_t*) = 0;
|
||||||
virtual HRESULT NotifyUserForNearExpiration(std::uint32_t) = 0;
|
virtual HRESULT COM_CALLCONV NotifyUserForNearExpiration(std::uint32_t) = 0;
|
||||||
virtual HRESULT MakeDefaultProductRequest() = 0;
|
virtual HRESULT COM_CALLCONV MakeDefaultProductRequest() = 0;
|
||||||
virtual HRESULT IsDefaultProductEnforced(std::uint32_t* result) = 0;
|
virtual HRESULT COM_CALLCONV IsDefaultProductEnforced(std::uint32_t* result) = 0;
|
||||||
virtual HRESULT UpdateScanSubstatus(WSCSecurityProductSubStatus status) = 0;
|
virtual HRESULT COM_CALLCONV UpdateScanSubstatus(WSCSecurityProductSubStatus status) = 0;
|
||||||
virtual HRESULT UpdateSettingsSubstatus(WSCSecurityProductSubStatus status) = 0;
|
virtual HRESULT COM_CALLCONV UpdateSettingsSubstatus(WSCSecurityProductSubStatus status) = 0;
|
||||||
virtual HRESULT UpdateProtectionUpdateSubstatus(WSCSecurityProductSubStatus status) = 0;
|
virtual HRESULT COM_CALLCONV UpdateProtectionUpdateSubstatus(WSCSecurityProductSubStatus status) = 0;
|
||||||
virtual HRESULT RegisterAV(std::uint16_t*, std::uint16_t*, std::uint32_t, std::uint32_t) = 0;
|
virtual HRESULT COM_CALLCONV RegisterAV(std::uint16_t*, std::uint16_t*, std::uint32_t, std::uint32_t) = 0;
|
||||||
virtual HRESULT UnregisterAV() = 0;
|
virtual HRESULT COM_CALLCONV UnregisterAV() = 0;
|
||||||
virtual HRESULT UpdateStatusAV(WSCSecurityProductState state, BOOL unk) = 0;
|
virtual HRESULT COM_CALLCONV UpdateStatusAV(WSCSecurityProductState state, BOOL unk) = 0;
|
||||||
virtual HRESULT InitiateOfflineCleaningAV(std::uint16_t*, std::uint16_t*) = 0;
|
virtual HRESULT COM_CALLCONV InitiateOfflineCleaningAV(std::uint16_t*, std::uint16_t*) = 0;
|
||||||
virtual HRESULT NotifyUserForNearExpirationAV(std::uint32_t) = 0;
|
virtual HRESULT COM_CALLCONV NotifyUserForNearExpirationAV(std::uint32_t) = 0;
|
||||||
virtual HRESULT RegisterFW(std::uint16_t*, std::uint16_t*, std::uint32_t, std::uint32_t) = 0;
|
virtual HRESULT COM_CALLCONV RegisterFW(std::uint16_t*, std::uint16_t*, std::uint32_t, std::uint32_t) = 0;
|
||||||
virtual HRESULT UnregisterFW() = 0;
|
virtual HRESULT COM_CALLCONV UnregisterFW() = 0;
|
||||||
virtual HRESULT UpdateStatusFW(WSCSecurityProductState state) = 0;
|
virtual HRESULT COM_CALLCONV UpdateStatusFW(WSCSecurityProductState state) = 0;
|
||||||
virtual HRESULT RegisterAS(std::uint16_t*, std::uint16_t*, std::uint32_t, std::uint32_t) = 0;
|
virtual HRESULT COM_CALLCONV RegisterAS(std::uint16_t*, std::uint16_t*, std::uint32_t, std::uint32_t) = 0;
|
||||||
virtual HRESULT UnregisterAS() = 0;
|
virtual HRESULT COM_CALLCONV UnregisterAS() = 0;
|
||||||
virtual HRESULT UpdateStatusAS(WSCSecurityProductState state, BOOL unk) = 0;
|
virtual HRESULT COM_CALLCONV UpdateStatusAS(WSCSecurityProductState state, BOOL unk) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
class IWscASStatus : public com::IBaseObject<detail::CLSID_WscIsv, detail::IID_IWscASStatus> {
|
class IWscASStatus : public com::IBaseObject<detail::CLSID_WscIsv, detail::IID_IWscASStatus> {
|
||||||
public:
|
public:
|
||||||
virtual HRESULT Register(BSTR path_to_signed_product_exe, BSTR display_name, std::uint32_t, std::uint32_t) = 0;
|
virtual HRESULT COM_CALLCONV Register(BSTR path_to_signed_product_exe, BSTR display_name, std::uint32_t, std::uint32_t) = 0;
|
||||||
virtual HRESULT Unregister() = 0;
|
virtual HRESULT COM_CALLCONV Unregister() = 0;
|
||||||
virtual HRESULT UpdateStatus(WSCSecurityProductState state, BOOL unk) = 0;
|
virtual HRESULT COM_CALLCONV UpdateStatus(WSCSecurityProductState state, BOOL unk) = 0;
|
||||||
};
|
};
|
||||||
} // namespace defendnot
|
} // namespace defendnot
|
||||||
|
|||||||
Reference in New Issue
Block a user