From 0caddb4472ecea3612eb08e0a37e87f986d98e06 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 27 May 2022 00:29:20 +0100 Subject: [PATCH] Document important COM implementation macro limitation These macros can't be used with multiple inheritance, as they don't do anything to cast the pointer to the correct type in this case. --- include/wx/msw/ole/comimpl.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/wx/msw/ole/comimpl.h b/include/wx/msw/ole/comimpl.h index 3d21bff916..3f8b1c7996 100644 --- a/include/wx/msw/ole/comimpl.h +++ b/include/wx/msw/ole/comimpl.h @@ -39,6 +39,9 @@ extern WXDLLIMPEXP_CORE bool IsIidFromList(REFIID riid, const IID *aIids[], size // ============================================================================ /* + WARNING: This does NOT work with multiple inheritance, so multiple + interfaces can only be supported when they inherit from each other. + The most dumb implementation of IUnknown methods. We don't support aggregation nor containment, but for 99% of cases this simple implementation is quite enough.