diff --git a/CHANGES.md b/CHANGES.md index ccdba79904..e57db95c08 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -18,6 +18,7 @@ As of build 305, installation .exe files have been deprecated; see Coming in build 312, as yet unreleased -------------------------------------- +* Implement COM Records as [out] method parameters (mhammond#2708, [@geppi][geppi], [@the-snork][the-snork]) * Implement multidimensional SAFEARRAY(COM Record) and SAFEARRAY(double) (mhammond#2655, [@geppi][geppi]) * Added many missing license and copyright notice files (mhammond#2590, [@Avasam][Avasam]) * Fixed missing version stamp on built `.dll` and `.exe` files (mhammond#2647, [@Avasam][Avasam]) diff --git a/com/TestSources/PyCOMTest/PyCOMImpl.cpp b/com/TestSources/PyCOMTest/PyCOMImpl.cpp index 939853dba8..bfeb3719d5 100644 --- a/com/TestSources/PyCOMTest/PyCOMImpl.cpp +++ b/com/TestSources/PyCOMTest/PyCOMImpl.cpp @@ -626,6 +626,16 @@ HRESULT CPyCOMTest::GetStruct(TestStruct1 *ret) return S_OK; } +HRESULT CPyCOMTest::GetOutStruct(TestStruct1 *pRecord) +{ + if (pRecord == NULL) { + return E_POINTER; + } + pRecord->int_value = 99; + pRecord->str_value = SysAllocString(L"Luftballons"); + return S_OK; +} + HRESULT CPyCOMTest::ModifyStruct(TestStruct1 *prec) { prec->int_value = 100; diff --git a/com/TestSources/PyCOMTest/PyCOMImpl.h b/com/TestSources/PyCOMTest/PyCOMImpl.h index 1b036b0d64..591a5d4b32 100644 --- a/com/TestSources/PyCOMTest/PyCOMImpl.h +++ b/com/TestSources/PyCOMTest/PyCOMImpl.h @@ -106,6 +106,7 @@ class CPyCOMTest : public IDispatchImpl